Irasha, мой совет:
прежде чем связываться с SFC следует подробней изучить документацию на него, тотому как помимо времен шага и флага активности там ещё много вещей и подводных камней которые необходимо знать для разработки (и просто понимания что там делается) программ... Хорошо язык SFC и вообще КоДеСис описан у Петрова "Программируемые контроллеры.Стандартные языки и приёмы прикладного проектирования".
А при инициализации ,лично меня, вполне удовлетворяет TON. На ПЛК150 я делаю так(вдруг вам пригодится):
Код:
VAR
ton_power:TON;
tof_power:TOF;
END_VAR
tof_power(IN:=power_on,PT:=T#1s);
ton_power(IN:=tof_power.q,PT:=T#30s);
IF ton_power.Q THEN
check_errore();(*нормальная работа, вкл проверка ошибок*)
ELSE
IF tof_power.Q THEN(*включение*)
mashina.status:=1;
ELSE(*авария по питанию*)
mashina.dw_error:=PUTBIT(x:=mashina.dw_error,n:=10,b:=TRUE);
mashina.status:=4000;
END_IF
END_IF
mashina.status - переменная задающая режим работы машины.
power_on - статическая переменная ПЛК, true - питание есть.
tof_power нивелирует кратковременное отключения питания.
в режиме "включения" происходит инициализация и ожидание пока все датчики включатся с последующим переходом в "Ожидания"(сдесь не видно) и включением контроль ошибок.
при аварии по питанию(power_on=false) записывается во внутреннюю переменную код ошибки и машина переводится в режим аварии с обработчиком ошибок...
Правда ошибка по питанию будет видна только если отключился тока ПЛК, а панель и все остальное работает. Если пользователь отключит и включит сеть - произойдет просто перегрузка машины... хотя можно и запомнить эту ошибку и заставить пользователя её квитировать)))