
Сообщение от
wkdx00
Не пойму как мне поможет SEL. Застопорился, пока выглядит так.
Код:
var
hz : udint := 10;
tStart, tRegul : SYS.TON;
end_var
IF inputWork = TRUE THEN //Если прошла команда Пуск, если нет - ждем
outHZ := hz; //Задача начальной частоты
//Тут должна стоять задержка inputTimeStart
tStart(I:=true, T := udint_to_time(inputTimeStart)); // Держим таймер включеным
If tStart.Q THEN // Есть задержка, иначе - ждем
IF inputRealT > 0 THEN //Проверка температуры, если замерзли - стоим, грустим, даем аварию
//Тут должна стоять задержка опроса inputTimeRegulation
tRegul(I := true, T := udint_to_time(inputTimeRegulation)); // Держим включеным
IF tRegul.Q THEN // Есть задержка, иначе - ждем
tRegul(I := false); // Выключаем таймер
IF inputRealT > (inputAimT + inputDeadBand) THEN
hz := hz + 1;
ELSIF inputRealT < (inputAimT - inputDeadBand) THEN
hz := hz - 1;
ELSE //Мы молодццы, держим частоту
END_IF
END_IF
ELSE outAlarm := TRUE;
hz :=0; tRegul(I := false);
END_IF
END_IF
ELSE outHZ := 0;
tStart(I := false); tRegul(I := false); // Пуск не активен - стоп все таймеры
END_IF