- Beiträge
- 5.682
- Reaktionspunkte
- 1.600
-> Hier kostenlos registrieren
Hui bei der 1500 gibts für IEC timer tatsächliche eine Reset funktion. nur die Funktion wirft bei mir Fragen auf.
In der hilfe wird das so beschrieben
Seit wann ist das gängige Programmierpraxis einen Timer bedingt auszuführen?
Bin ich der Einzige der dieses Geschwurbel in der Hilfe nicht so richtig versteht?
In der hilfe wird das so beschrieben
Code:
IF #started = false THEN
"TON_DB".TON(IN := "Tag_Start",
PT := "Tag_PresetTime",
Q => "Tag_Status",
ET => "Tag_ElapsedTime");
#started := true;
END_IF;
IF "TON_DB".ET < T#25s THEN
RESET_TIMER(TIMER := "TON_DB");
#started := false;
END_IF;
Seit wann ist das gängige Programmierpraxis einen Timer bedingt auszuführen?
Bin ich der Einzige der dieses Geschwurbel in der Hilfe nicht so richtig versteht?
Wenn die Variable #started den Signalzustand "0" führt, dann wird die Anweisung "Einschaltverzögerung erzeugen" bei einer positiven Signalflanke am Operanden "Tag_Start" ausgeführt. Die im Instanz-Datenbaustein "TON_DB" abgelegte IEC-Zeit wird mit der Zeitdauer gestartet, die durch den Operanden "Tag_PresetTime" vorgegeben ist. Der Operand "Tag_Status" wird gesetzt, wenn die durch den Operanden "Tag_PresetTime" vorgegebene Zeitdauer abgelaufen ist. Der Parameter Q bleibt so lange gesetzt, wie der Operand "Tag_Start" noch den Signalzustand "1" führt. Wenn der Signalzustand am Starteingang von "1" auf "0" wechselt, wird der Operand am Parameter Q zurückgesetzt.
Wenn die abgelaufene Zeit der IEC-Zeit "TON_DB" kleiner als 25s ist, wird die Anweisung "Zeit rücksetzen" ausgeführt und die im Instanz-Datenbaustein "TON_DB" abgelegte Zeit zurückgesetzt.