|
<< Click to Display Table of Contents >> Navigation: Работа с конроллерами в MasterSCADA 4D > Руководство по работе с контроллером PLC ONI PLC-W > Программирование > Сохранение состояния |
Служба Сохранение состояния используется для восстановления значений после перезагрузки исполнительной системы и включена в состав Узла по умолчанию (отдельно добавлять её в проект не требуется):

Как правило, используется для того, чтобы значения уставок после перезагрузки проекта в среде исполнения приняли значения, введённые оператором, либо полученные в результате работы программ в предыдущей сессии. Сохраняются те значения параметров, в настройках которых установлено свойство Сохранять = Да. Поддерживается сохранение значений параметров различных типов данных, в том числе динамических массивов (массивов переменной длины), а также длинных строк (более 256 символов), при условии, что параметр имеет тип STRING.
Установка флага Сохранять в панели свойств:

Важно! Свойство Сохранять = Да нельзя устанавливать для параметров программ, у которых свойство Доступ = InOut.
Период сохранения зависит от настроек, сделанных в панели свойств службы:

В среде программирования поддерживаются энергонезависимые переменные RETAIN.
Определен следующий модификатор оператора определения энергонезависимых переменных: RETAIN
Используется с операторами VAR, VAR_INPUT или VAR_OUTPUT. Задает сохранение переменной в дамп в энергонезависимой памяти ПЛК и восстановление значения переменной из дампа при "холодном" рестарте.
Пример записи определения переменной в программе:
var RETAIN bbb: REAL; end_var
В редакторе переменной модификатору RETAIN соответствует значение Сохранять = Да.
В ПЛК реализован механизм автоматического копирования определенных файлов в энергонезависимую память в случае потери питания. После копирования файлов дается команда ОС на завершение работы. При включении питания данный файл восстанавливается.
Под хранение RETAIN переменных можно использовать следующие виды энергонезависимой памяти: eMMC 8 Гбайт MLC или 64 Гбайт TLC BiCS5.
Как правило, данные для горячего рестарта хранятся в файлах session.bin, session2.bin. Запись в них идет поочередно. При старте сравниваются времена обновления файлов, вначале происходит попытка загрузки из более нового. Если контрольная сумма не совпадает, идет попытка загрузить из другого.
ПЛК ONI - контроллер с энергонезависимой памятью, данные горячего рестарта хранятся непосредственно в памяти контроллера.
Часто возникает задача произвести импорт/экспорт данных для горячего рестарта.
Для экспорта данных для горячего рестарта в файл необходимо запустить mplc с опцией /export.
После этого в рабочей папке исполнительной системы /opt/mplc4/server сформируется файл session.bin, который затем может быть использован для импорта.
Для импорта файла данных для горячего рестарта необходимо скопировать файл session.bin в рабочую папку исполнительной системы /opt/mplc4/server/import. При очередной перезагрузке, необходимые данные считаются из этого файла, после чего он будет удален, а сами данные сохранятся в основном месте хранения.
Для резервирования (backup'а) файла данных для горячего рестарта можно скопировать файл session.bin в папку /opt/mplc4/server/backup. При перезагрузке, данные для горячего рестарта, как обычно, будут считываться из основного места хранения, но, в случае возникновения ошибки чтения, смогут быть получены из этого файла.
Для удаления файла данных для горячего рестарта необходимо запустить mplc с опцией /delhr.