алгоритм действий для инициализации переменных после перепрошивки ПЛК.
Не знаю на сколько правильный, но я делал так:
init:bool; флаг инициализации.
POU FirstInit; подпрограмма инициализации.
DefaultVolume:bool; флаг установки значений по умолчанию, если о присвоении дефолтных значений надо знать в основной программе.
---
В ПЛЦ_ПРГ в самом начале.
Код:
IF NOT init THEN FirstInit();
init:=TRUE;
END_IF;
В FirstInit
Код:
IF *нужная переменная 1*=0 AND *нужная переменная 2*=0 AND *нужная переменная N*=0
THEN
*нужная переменная 1*:=*нужное значение 1*;
*нужная переменная 2*:=*нужное значение 2*;
.
.
*нужная переменная N*:=*нужное значение N*;
DefaultVolume:=TRUE;
END_IF;
--
Как это работает.
При включении\сбросе\перепрошивке ПЛК флаг init равен FALSE.
Следовательно происходит вызов подпрограммы FirstInit. Там проверяются несколько переменных на нулевое значение, и если да, то переменным присваиваются первоначальные\безопасные значения. Проверять можно не все требуемые переменные, а только несколько, однако желательно из тех, чье значение по замыслу не может быть нулевым. А вот присваивать можно всем.
После однократного вызова FirstInit флаг init устанавливается в TRUE, что в последующих циклах отключает вызов FirstInit.
Далее эти переменные можно изменять как угодно.