Introduction
A step sequence with timers helps control machines by moving through steps with delays, like waiting before starting the next action.
Step1:
Start Timer1 (preset time)
When Timer1 done, go to Step2
Step2:
Start Timer2 (preset time)
When Timer2 done, go to Step3
...
Repeat or stopStep1: Start Timer1 (5 seconds) When Timer1 done, go to Step2 Step2: Start Timer2 (3 seconds) When Timer2 done, stop sequence
Step1: Start Timer1 (2 seconds) When Timer1 done, go to Step2 Step2: Start Timer2 (4 seconds) When Timer2 done, go to Step3 Step3: Start Timer3 (1 second) When Timer3 done, repeat Step1
VAR Step: INT := 1; Timer1: TON; Timer2: TON; END_VAR // Main program loop CASE Step OF 1: // Step 1 Timer1(IN := TRUE, PT := T#5S); IF Timer1.Q THEN Timer1(IN := FALSE, PT := T#5S); Step := 2; END_IF 2: // Step 2 Timer2(IN := TRUE, PT := T#3S); IF Timer2.Q THEN Timer2(IN := FALSE, PT := T#3S); Step := 3; END_IF 3: // Step 3 // Sequence finished // Could reset or stop here ; END_CASE
Step 1: Start TON timer T1 for 3 seconds
Step 2: When T1 done, move to Step 2 and start TON timer T2 for 2 seconds
Step 3: When T2 done, move to Step 3
Pass the test and this pattern moves unknown