При пропадании питания retain сохраняются. Но для записи на флеш нужно переждать некоторое время <1 секунды. Поэтому сразу при выключении питания лучше использовать следующий код. Это же даст время для подхвата АВР(что бы плк не перезагружался).
tof_power(in:=power,pt:=t#1s);
while (not tof_power.q) do ; end_while
У Вас я так понял при первом пропадании ПЛК идет в цикл для wathcdog?