-> Hier kostenlos registrieren
Tag zusammen,
folgendes Problem:
Ich habe 2 Schütze, welche nicht gleichzeitig anziehen dürfen. Es sollten 1-2s dazwischen liegen. Ich belege zwei Button in der Visu mit den Ausgangsvariablen meiner EL2624. Außerdem weise ich beiden Button eine deactivate input-Variable zu. Nun habe ich mit 2 Timern und ein paar IF-Abfragen folgendes realisiert.
Wenn ich nun den ersten Button drücke, wird der zweite für die 2s "verriegelt". Jedoch nur beim ersten mal. Danach müsste ich den Timer ja resetten oder so. Weiß gerade jedoch nicht wie ich das anstellen kann. Habe es mir so gedacht, dass ich Button 1 drücke, 2s ablaufen, dann erst Button 2 drückbar wird und das Ganze natürlich auch umgekehrt. Ich hoffe es ist einigermaßen verständlich und jemand kann mir einen Tipp geben.
MfG Bone
folgendes Problem:
Ich habe 2 Schütze, welche nicht gleichzeitig anziehen dürfen. Es sollten 1-2s dazwischen liegen. Ich belege zwei Button in der Visu mit den Ausgangsvariablen meiner EL2624. Außerdem weise ich beiden Button eine deactivate input-Variable zu. Nun habe ich mit 2 Timern und ein paar IF-Abfragen folgendes realisiert.
Code:
//Inputs -> Status
bool_STS_contactor_active AT%I*:ARRAY[1..14] OF BOOL;
//Outputs -> Command
bool_CMD_contactor_on AT%Q*:ARRAY[1..7] OF BOOL;
//Timer and deactivate input
timer1 :TON;
timer2 :TON;
bool_deactivate_input :ARRAY[1..2] OF BOOL;
Code:
IF bool_CMD_contactor_on[6] = TRUE THEN
Timer1(IN:=TRUE, PT:=T#2S);
END_IF
IF bool_STS_contactor_active[12] = TRUE AND Timer1.PT <> Timer1.ET THEN
bool_deactivate_input[2]:=TRUE;
Timer1.IN:=FALSE;
ELSE
bool_deactivate_input[2]:=FALSE;
Timer1.IN:=FALSE;
END_IF
//----------------------------------------------
IF bool_CMD_contactor_on[7] = TRUE THEN
Timer2(IN:=TRUE, PT:=T#2S);
END_IF
IF bool_STS_contactor_active[13] = TRUE AND Timer2.PT <> Timer2.ET THEN
bool_deactivate_input[1]:=TRUE;
ELSE
bool_deactivate_input[1]:=FALSE;
Timer2.IN:=FALSE;
END_IF
MfG Bone