TON_Power(IN:= NOT bPLC_Power_ON, PT:=T#500ms);
WHILE TON_Power.Q DO; END_WHILE
Проще я я не умею :-)
IF (NOT bPLC_Power_ON) THEN WHILE(TRUE) DO;END_WHILE; END_IF;
TON по моему лишний. Даже если потеря питания не в первый цикл ПЛК,
если уж флаг потери питания есть , то он есть и для запуска TON и для пуска бесконечного цикла. И по моему, цикла 0.5 сек для Watchdoga маловато