Код:
PROGRAM PLC_PRG
VAR
Init: BOOL;
Diff: TIME; (*Время простоя ПЛК*)
now: DT; (*Текущие дата и время*)
END_VAR
VAR RETAIN
old: DT; (*Дата и время в момент откл ПЛК*)
END_VAR
now:=curDT();
IF NOT Init THEN (*Если первый цикл ПЛК*)
Diff:=now-old; (*Время простоя ПЛК*)
Init:=TRUE;
END_IF
old:=now;
Время простоя ПЛК (Diff: TIME) будет с дискретностью 1 секунда
Функцию curDT()
"слепил" из OSCAT-овских SET_DT() и SET_DATE() http://www.owen.ru/forum/showthread....l=1#post161139
Используется стандартная SysLibTime.
Только часы ПЛК160 в выключенном состоянии сбрасываются через 5 суток и по истечение этого периода, время простоя ПЛК будет не корректным.