Таймеры, переменные и условия
Здравствуйте уважаемые форумчане, прошу подтолкнуть в сторону решения следующей задачи:
есть три булевые переменные 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
вот творчество пока на этом зависло...