И вообще... не мудрите:
Код:
PROGRAM PLC_PRG
VAR
in: BOOL; (* Ну вход, чо *)
ticktock, starter: R_TRIG; (* Один срабатывает ежесекундно, другой при каждом запуске *)
END_VAR
VAR RETAIN
uptime, start_count: DWORD; (* Тут храним время наработки в секундах и число запусков *)
END_VAR
ticktock(clk := TIME_TO_DWORD(TIME()) MOD 1000 > 500);
starter(clk := in);
uptime := uptime + BOOL_TO_DWORD(in AND ticktock.Q);
start_count := start_count + BOOL_TO_DWORD(starter.Q);