Спасибо. Заработал. Вот не знал что таймер надо вызывать вне IF...END_IF.
Вроде про это нигде не написано?
Вид для печати
Потому, что таймер не аппаратный, а программный
Если ты этот код не вызываешь каждый цикл ПЛК, то естественно переменные внутри кода никак не изменяются.Код:FUNCTION_BLOCK TON
(*
Timer on delay.
Q is TRUE, PT milliseconds after IN had a rising edge.
*)
VAR_INPUT
IN: BOOL; (* starts timer with rising edge, resets timer with falling edge *)
PT: TIME; (* time to pass, before Q is set *)
END_VAR
VAR_OUTPUT
Q: BOOL; (* is TRUE, PT seconds after IN had a rising edge *)
ET: TIME; (* elapsed time *)
END_VAR
VAR
M: BOOL; (* internal variable *)
StartTime: TIME; (* internal variable *)
END_VAR
F (IN) THEN
IF (NOT M) THEN
(* Start Timer *)
STARTTIME := TIME();
END_IF
IF (NOT Q) THEN
(* Timer is running *)
ET := TIME() - STARTTIME;
IF (ET >= PT) THEN
Q := TRUE;
ET := PT;
END_IF
END_IF
ELSE
(* Reset everything *)
Q := FALSE;
ET := t#0s;
END_IF
M := IN;
Вложение 57215
Вот что написано в справке по кодесису, то же и в руководстве.( вложение)
Что за ерунда! Не могу понять. Вчера все работало,а сегодня уже не работает! Связи с весами нет, ничего не считывает.
Кто-нибудь знает , критично ли для ПЛК 110-220-30-Р (М02) если перепутать питание фазы с нулем? (L и N)