Здравствуйте уважаемые форумчане, прошу подтолкнуть в сторону решения следующей задачи:
есть три булевые переменные vent1,vent2,vent3. Все они включаюся по тамеру, который определяет время работы(true) и время паузы(false) у каждой переменной отдельно, как организоавать цикл для проверки следующего условия:
Если таймер переменной подошел к запуску то проверить, что другие(другая) перменные уже работают более 3 секунд или до их остановки более 3 секунд, то запуститься сразу иначе отложить запуск переменой на 5 секунд.
Под запуском понимается переход в true.

Код:
vent1(ENABLE:=stop_vent1, TIMELOW:=Pause_Time1 , TIMEHIGH:=Run_Time1 , OUT=> );
Timer_Run1(IN:=vent1.OUT, PT:=Run_Time1 , Q=> , ET=> );
Timer_Pause1(IN:=NOT vent1.OUT, PT:=Pause_Time1 , Q=> , ET=> );
Pause_Time1 и Run_Time1 переменные для задачи времени
Stop_Vent1 булевая переменная аварийной остановки
Timer_Run1 и Timer_Pause1 таймеры для вывод информации о текущем времени работы и паузы
out1, out2, out3 непосредственно дискретные выходы плк
Код:
IF vent2.OUT THEN
		IF    (Vent1.out AND  Timer_Run1.ET < T#3s) OR (Stop_Vent1 AND (NOT out1 AND (Pause_Time1-Timer_Pause1.ET < T#3s))) THEN
			out2_ton(in:=TRUE, pt:=T#5s);
			out2:=out2_ton.Q;
			ostalos2:=(Run_Time2-Timer_Run2.ET);
		ELSE
			out2:=TRUE;
			ostalos2:=(Run_Time2-Timer_Run2.ET);
		END_IF

ELSE
		out2:=FALSE;
		out2_ton(in:=FALSE, pt:=T#0s);
		ostalos2:=(Pause_Time2-Timer_Pause2.ET);

END_IF
вот творчество пока на этом зависло...