IF Station[0].MoverInPosition THEN
StationTimer[0](IN := TRUE, PT := T
#1000MS);
IF StationTimer[0].Q THEN
Station[0].CurrentMover.MoveVelocity(highVelocity);
END_IF
ELSE
StationTimer[0](IN := FALSE);
END_IF
IF PositionTrigger[0].MoverPassedPosition THEN
PositionTrigger[0].CurrentMover.SetVelocity(lowVelocity);
PositionTrigger[0].MuteCurrent();
END_IF
IF PositionTrigger[1].MoverPassedPosition THEN
PositionTrigger[1].CurrentMover.SetVelocity(mediumVelocity);
PositionTrigger[1].CurrentMover.MoveToStation(Station[nextStation]);
nextStation := nextStation - 1;
IF nextStation = 0 THEN
nextStation := 4;
END_IF
PositionTrigger[1].MuteCurrent();
END_IF
IF Station[1].MoverInPosition AND Station[2].MoverInPosition AND Station[3].MoverInPosition AND Station[4].MoverInPosition THEN
StationTimer[1](IN := TRUE, PT := T
#750MS);
IF StationTimer[1].Q THEN
StationTimer[1](IN := FALSE);
Station[1].CurrentMover.MoveToStation(Station[0]);
Station[2].CurrentMover.MoveToStation(Station[0]);
Station[3].CurrentMover.MoveToStation(Station[0]);
Station[4].CurrentMover.MoveToStation(Station[0]);
END_IF
END_IF