Step 7 Wie kann ich eine bestimmte(vorgegebene) Anzahl von Takten(Impulsen) zählen?

Beiträge
15
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.

Erst einmal danke in die Runde für die vielen "Helfer" hier die Greenhorns wie mir un dter die Arme greifen.

Mein Problem:
Ich muß mit meiner CPU 314 und einem KTP600 eine Steuerung bauen bei der man unter anderem über vordefinierte Buttons auf dem KTP600
eine präzise Anzahl von Impulsen (z.B. Ein=0,5s ; Aus=0,5s) ausgiebt.

D.h.: wenn ich auf den Button 8 drücke, benötige ich 8 Impulse aber keinen mehr oder weniger!

Ich habe 10 Buttons mit Impulsen von 1 bis 10.

Habe schon an einen Impulsmerker und einen Rückwärtszähler gedacht, scheint mir aber kompliziert zu sein.
Vielleicht geht es ja ganz einfach undich Greenhorn sehe den Weg dahin nur nicht.

Über Eure Hilfe wäre ich sehr dankbar.

Gruß

Das Siemens Greenhorn (warum einfach, wenn es auch Siemens geht?)
 
Rückwärtszähler ist eine gute Idee für eine sehr einfache Lösung:
- 1 Hz Takt (z.B. von CPU-Taktmerkerbyte) auf Rückwärtszähler
- Buttons vom KTP setzen den Zähler auf doppelte gewünschte Impulsanzahl
- SPS-Ausgang = Ein, wenn der Zählerstand ungerade ist

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
.
Willst du nun Impulse zählen oder ausgeben ?

Du kannst zunächst die Forums-Suche oben rechts in der Menü-Leiste mit deinem
Suchwort füttern, dann gibt es erstmal genug Vorschläge zum Lesen.

Wenn du dann deinen eigenen Programmentwurf hier postest, wirst du sicherlich
auch kompetente Unterstützung erhalten.


.
 
Ich muss die Impulse ausgeben.

Die S7 soll eine Kamera ansteuern, bei der man die dort gespeicherten Programme durch eine festgelegte Anzahl von Impulsen, die man zu der Kamera sendet. Also 3 Impulse zu der Kamera gesendet= Programm 3 bei der Kamera.
Es müssen 10 Kameraprogramme ausgeführt werden können.
Die Länge und der Impulse und die Länge der Pausenzeiten sind der Kamera "egal".
Ich will es auch wie User PN/DP vorschlägt, versuchen. Bin ja schon froh das ich auf den gleichen Gedanken gekommen bin.
Dacht nur das es eine einfachere Möglichkeit dafür gibt.
Den ich merke jetzt schon das das Programm ganz schön lang wird, da das ganze über einen Touchscreen angesteuert werden soll und ie Möglichkeit bestehen muss, dass ich die Kameras (es werden 6!!!) einzeln auf bestimmte Programme einstellen kann.

Gruß Greenhorn
 
Ich muss die Impulse ausgeben.
Den ich merke jetzt schon das das Programm ganz schön lang wird, da das ganze über einen Touchscreen angesteuert werden soll und ie Möglichkeit bestehen muss, dass ich die Kameras (es werden 6!!!) einzeln auf bestimmte Programme einstellen kann.
Zeig mal was du bis jetzt hast. Ich denke dann können wir dir sicher helfen das ein wenig zu vereinfachen.
 
Hallo Greenhorn,
du hast hier ein interessantes Programmier-Problem. Wenn du noch nicht über tiefergehende Kenntnisse verfügst, werden dir die hier gegebenen Antworten wohl nicht sehr viel weiterhelfen, denn die Lösung sieht auf den ersten Blick einfach aus, ist sie aber nicht.
Falls du noch Hilfe brauchst, schick mir eine PN, dann schauen wir mal was sich machen lässt

eNDe
 
Wenn du so viele Kamera hast, warum baust du dir dann nicht einen "Kamera-Ansteuerungs-FB".


Besitzt die Eingänge 1-10 (bool) als IO's. Somit kannst du vom Touchpanel den passenden Eingang setzen und dein FB setzt dir diesen Eingang nach Ablauf der Impulse wieder zurück.
Somit weißt du am Touchpanel auch direkt, ob der Wechsel schon fertig ist oder noch läuft.


Und die Geschichte mit den Impulsen selber würde ich ebenfalls über Addition mit Taktmerker machen.




Hier mal meine Pseudoidee:
NW1:
Positive Flanke vom Eingang 1 bis 10 setzt "IWZähler" auf 0 und "SWZähler" auf 1 bis 10 x 2. (wenn Taste 2 gedrückt auf 4 setzen)


NW2:
"SWZähler" ungleich 0 UND Positive Flanke vom 0,5 Hz Takt inkrementiert "IWZähler" um 1.


NW3:
Impuls für Kamera setzen: Ist "IWZähler" modulo 2 == 0 -----> Kamera bekommt high Impuls.


(Ich hoffe mal modulo gibt es in Step7, bin mir da grade nicht sicher.)


NW3:
Vergelichen ob "IWZähler" == "SWZähler". Wenn ja: "SWZähler" = 0 und Rücksetzen aller 1-10 Bausteineingänge
Wenn nein: nix machen




Sollte gehen oder? Wenn du möchtest kann ich dir das mal zusammenbasteln.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

sollte das Problem noch aktuell sein hab' ich in der Pause mal auf die Schnelle was zusammengebaut (und so sieht es auch aus, keine Wunder erwarten!). Es sollte dir aber eine Vorlage sein.

Der "Kamera FC" enthält 3 Eingänge mit Flankenauswertung die 1 bis 3 Impulse (0,5s High, 0,5 Low) ausgeben. Es ist noch Platz für weitere Eingänge vorgesehen (Ges. max. 15), am besten schaust mal in die angehängte Quelle.

Pulszeiten sind natürlich einstellbar falls die Kamera etwas Zickig ist.

Gruß
deathfun

PS: Natürlich gehen auch mehr als 15, dazu einfach die Entsprechenden Variablen von WORD auf DWORD ändern.

EDIT: Gerade gesehen das an der Timern noch MW200-202 dranstehen, die müssten natürlich weg um den FC mehrfach verwenden zu können.
 

Anhänge

  • Quelle.txt
    2,1 KB · Aufrufe: 33
Zuletzt bearbeitet:
Hi
Hatte das selbe Problem letztes Jahr bei der Kameraansteuerung zu einer Banner Kamera.
Ich habe es mit einer simplen Schrittkette gelöst, allerdings musste ich noch ein zweites Signal der Kamera senden, damit diese wusste wann sie bereit sein muss für die Takte.

Code:
Schritt 1: Signal "Bereit für Takte" einschalten

Schritt 2: Takt Signal ein, Einschaltverzögerung1 ein, Einschaltverzögerung 2 aus

Nach Einschaltverzögerung1 -->Schritt 3: Taktsingal ausschalten, Einschaltverzögerung1 ausschalten, Einschaltverzögerung2 einschalten, Vergleichen ob Solltakte erreicht wurden

Nach Einschaltverzögerung2 --> Soll=Isttakte: Schritt3,  Soll>Isttakte: Schritt2

Schritt3: Signal "Bereit für Takte" ausschalten, Einschaltverzögerung 2 aus

Etwa so, lief und läuft immer noch einwandfrei


Gruss blimaa
 
Zurück
Oben