Сохранение состояния

<< Click to Display Table of Contents >>

Navigation:  Работа с конроллерами в MasterSCADA 4D > Руководство по работе с конроллером СТАБУР > Програмирование >

Сохранение состояния

Служба Сохранение состояния используется для восстановления значений после перезагрузки исполнительной системы и включена в состав Узла по умолчанию (отдельно добавлять её в проект не требуется):

Sohranenie_sostoyaniya_stabur

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

Установка флага Сохранять в панели свойств:

Hot_restart_ABAK

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

Период сохранения зависит от настроек, сделанных в панели свойств службы:

Sohranenie_sostoyaniya_stabur_1

Энергонезависимые переменные в среде программирования

В среде программирования поддерживаются энергонезависимые переменные RETAIN.

Определен следующий модификатор оператора определения энергонезависимых переменных: RETAIN

Используется с операторами VAR, VAR_INPUT или VAR_OUTPUT. Задает сохранение переменной и восстановление значения переменной из дампа при "холодном" рестарте.

Пример записи определения переменной в программе:

var RETAIN bbb: REAL; end_var

В редакторе переменной модификатору RETAIN соответствует значение Сохранять = Да.

Хранение энергонезависимых переменных

В ПЛК Stabur реализован механизм автоматического копирования определенных файлов в случае потери питания в EEPROM объемом 16 Кб. После копирования файлов дается команда ОС на завершение работы. При включении питания данный файл восстанавливается.

Путь до eeprom в файловой системе ПЛК: /sys/devices/platform/fe640000.spi/spi_master/spi1/spi1.0/eeprom

RETAIN переменные хранятся по умолчанию в каталоге с mplc на встроенной FLASH по пути /opt/mplc4/server/.

Изменить место хранения данных можно в панели свойств службы Сохранение состояния.

Работа с файлом данных для горячего рестарта

Как правило, данные для горячего рестарта хранятся в файлах session.bin, session2.bin. Запись в них идет поочередно. При старте сравниваются времена обновления файлов, вначале происходит попытка загрузки из более нового. Если контрольная сумма не совпадает, идет попытка загрузить из другого.

Часто возникает задача произвести импорт/экспорт данных для горячего рестарта.

Экспорт данных для горячего рестарта в файл

Для экспорта данных для горячего рестарта в файл необходимо запустить mplc с опцией /export.

После этого в рабочей папке исполнительной системы /opt/mplc4/server сформируется файл session.bin, который затем может быть использован для импорта.

Импорт файла данных для горячего рестарта

Для импорта файла данных для горячего рестарта необходимо скопировать файл session.bin в рабочую папку исполнительной системы /opt/mplc4/server/import. При очередной перезагрузке, необходимые данные считаются из этого файла, после чего он будет удален, а сами данные сохранятся в основном месте хранения.

Для резервирования (backup'а) файла данных для горячего рестарта можно скопировать файл session.bin в папку /opt/mplc4/server/backup. При перезагрузке, данные для горячего рестарта, как обычно, будут считываться из основного места хранения, но, в случае возникновения ошибки чтения, смогут быть получены из этого файла.

Удаление файла данных для горячего рестарта

Для удаления файла данных для горячего рестарта необходимо запустить mplc с опцией /delhr.