-> Hier kostenlos registrieren
Hallo,
ich bin recht neu in der SPS-Welt und bin gerade dabei ein Ablauf (in TwinCAT mit ST) zu programmieren. Allerdings bin ich gleich am Anfang auf ein Problem mit den Timern gestoßen. Ich verwende im Moment den TON.
TON-Timer
http://infosys.beckhoff.com/index.php?content=../content/1031/el320x/html/bt_el320x_techdat.htm&id=
Was ich machen will:
Ich toggle meinen Starbutton in der Visualisierung. Wenn er gedrückt wird soll ein Timer starten, nachdem 5sec verstrichen sind sollen dann entsprechende Ventile geschalten werden.
Ich hab das mit zwei If-Schleifen realisiert. Beim ersten Durchlauf funktioniert alles wie es soll. Doch wenn ich den Startbutton ein zweites mal drücke, springt er mir gleich in die zweite If-Schleife,
weil das Ausgangssignal Q vom TON immer noch TRUE ist. D.h. ich sollte in der zweiten Schleife den Timer zurücksetzen.
Ich habe keine Ahnung wie ich das Problem lösen oder umgehen kann.
Gibt es eine Möglichtkeit das Q oder ET (abgelaufene Zeit des Bausteins) zurückzusetzen?
Hättet ihr mir evlt. eine Idee?
Hier mein Programm:
IF Startbutton THEN (*Wenn Startbutton gedrückt*)
timer.PT:=T#5s; (*Sollwert Zeit*)
timer.IN:=TRUE; (*Startsignal für Timer*)
timer(); (*Aufrufen des Timers*)
IF timer.Q THEN (*Wenn Timer abgelaufen*)
Timer.IN:=FALSE;
END_IF
END_IF
Gruß
Jonas
ich bin recht neu in der SPS-Welt und bin gerade dabei ein Ablauf (in TwinCAT mit ST) zu programmieren. Allerdings bin ich gleich am Anfang auf ein Problem mit den Timern gestoßen. Ich verwende im Moment den TON.
TON-Timer
http://infosys.beckhoff.com/index.php?content=../content/1031/el320x/html/bt_el320x_techdat.htm&id=
Was ich machen will:
Ich toggle meinen Starbutton in der Visualisierung. Wenn er gedrückt wird soll ein Timer starten, nachdem 5sec verstrichen sind sollen dann entsprechende Ventile geschalten werden.
Ich hab das mit zwei If-Schleifen realisiert. Beim ersten Durchlauf funktioniert alles wie es soll. Doch wenn ich den Startbutton ein zweites mal drücke, springt er mir gleich in die zweite If-Schleife,
weil das Ausgangssignal Q vom TON immer noch TRUE ist. D.h. ich sollte in der zweiten Schleife den Timer zurücksetzen.
Ich habe keine Ahnung wie ich das Problem lösen oder umgehen kann.
Gibt es eine Möglichtkeit das Q oder ET (abgelaufene Zeit des Bausteins) zurückzusetzen?
Hättet ihr mir evlt. eine Idee?
Hier mein Programm:
IF Startbutton THEN (*Wenn Startbutton gedrückt*)
timer.PT:=T#5s; (*Sollwert Zeit*)
timer.IN:=TRUE; (*Startsignal für Timer*)
timer(); (*Aufrufen des Timers*)
IF timer.Q THEN (*Wenn Timer abgelaufen*)
Timer.IN:=FALSE;
END_IF
END_IF
Gruß
Jonas