Сохранение уставок

Сохранение уставок на диск контроллера или внешний накопитель организуется с помощью блоков SaverEx и BufSupEx из библиотеки paCore, а также с помощью блока BufSupFltEx из библиотеки paModbus.

Сохранение уставок из программы контроллера (SaverEx)

Сохранение уставок из программы контроллера организуется с помощью блока SaverEx.

Для надежной сохранности данных одновременно на диске находятся два файла, соответствующие одному архиву. Файлы для сохранения чередуются.

На вход блока fnm подается абсолютный путь и имя файла, куда будет осуществляться запись. Расширение файла игнорируется – на диск записываются бинарные файлы с расширениями .da1 и .da2. Если оставить данное поле пустым – имя файла будет определяться автоматически по индексу блока, файл будет сохраняться в рабочую директорию контроллера.

На входах блока typ задаются типы данных сохраняемых параметров:

  • DI – 8-ми битный регистр;

  • AI – вещественное значение;

  • II – 16-ти битный регистр.

На входах ini задаются значения инициализации параметров.

Graphic
Конфигурация SaverEx для сохранения уставок на MicroSD-накопитель в файлах saver.da1 и saver.da2

Если файла на диске не существует, при запуске программы входы in и выходы o примут значения, заданные на входах ini. На диске сохранится файл с расширением .da1. Выход good блока инкрементируется.

Graphic
Сохранение уставок на MicroSD-накопитель. Первый запуск программы

Далее запись на диск будет производится только по изменению значений на входах in.

Graphic
Сохранение уставок на MicroSD-накопитель. Изменение уставок из программы

Если файл на диске существует, при перезапуске программы входы in и выходы o примут значения, сохраненные на диске.

Graphic
Сохранение уставок на MicroSD-накопитель. Перезапуск программы

Файлы, в которые производится запись уставок – бинарные, просмотреть их содержимое нельзя.

Graphic
Сохранение уставок на MicroSD-накопитель. Файлы на диске

Поведение блока при возникновении ошибки записи описано в разделе.

При сохранении данных на внешний накопитель на вход rst можно завести выход флага монтирования накопителя блока 210-SD-USB. Сброс ошибок rst выполняется по фронту перехода из 0 в 1.

Примечание
При изменении числа входов блока SaverEx файлы на диске перезаписываются.

Сохранение уставок с использованием OPC UA/Modbus (BufSupEx)

Для записи уставок с удаленного OPC UA-клиента и/или по протоколу Modbus используются блоки BufSupEx.

Работа блока BufSupEx аналогична работе блока SaverEx и описана в разделе.

Запись уставок с удаленного OPC UA-клиента

Для записи уставок в блоки BufSupEx с удаленного OPC UA-клиента используется блок UABufSups из библиотеки paOpcUA.

Настройка OPC UA-сервера подробно описана в документе Обмен с верхним уровнем. Библиотека paOpcUA.

Блоки BufSupEx в проекте контроллера-сервера подключаются выходами pkt к входам buf блока UABufSups.

Вход inter блока BufSupEx можно при необходимости подключить к другому блоку протокола (например, к блокам Modbus Slave из библиотеки paModbus, см. пример в разделе).

Graphic
Запись уставок с OPC UA-клиента

При отключении блока UABufSups (или при его отсутствии) для записи уставки с OPC UA-клиента потребуется подать импульс на входы czap.

Параметры на диске сохраняются в бинарных файлах .da1 и .da2.

Примечание
При изменении числа входов блока BufSupEx файлы на диске перезаписываются.

Поведение блока BufSupEx при ошибках записи описано в разделе.

Синхронизация записи уставок между контроллерами по OPC UA

Для синхронизации записи уставок блоков BufSupEx между двумя контроллерами по протоколу OPC UA требуется дублировать во второй контроллер программу (или целиком место работы), в которой добавлен блок BufSupEx.

Для этого следует перетащить на модуль второго контроллера (оба модуля должны быть в одном проекте) требуемую программу, в выпадающем меню выбрать Добавить.

Обе программы подсветятся желтым. Теперь все изменения на страницах данной программы будут одинаково применены в обоих модулях.

Настройка работы по протоколу OPC UA подробно описана в документе Обмен с верхним уровнем. Библиотека paOpcUA.

Graphic
Дублированные программы

Блоки BufSupEx в данной программе следует соединить выходами pkt с входами buf блока OpcUAClient из библиотеки paOpcUA.

Входы OpcUAClient, которые отвечают за настройку обмена (IP-адреса и порты), следует задавать с помощью SQL-запросов к соответствующим свойствам модулей.

Запрос IP адреса (prop_ip):

"<sql>SELECT value FROM blocks_prop WHERE indx=:module AND type="prop_ip"</sql>"

Запрос номера порта (prop_debug_port):

<sql>SELECT value FROM blocks_prop WHERE indx=:module AND type="prop_debug_port"</sql>

Запрос пользовательского свойства Пользовательское свойство 00 (prop_0):

<sql> SELECT value FROM blocks_prop WHERE indx=:module AND type="prop_0"</sql>

(обычно используется на входах rip и rprt).

Graphic
Подключение BufSupEx к OpcUAClient

После запуска программ на обоих контроллерах, один из них следует назначить «ведущим» – отключить OpcUAClient (enb = 0), а второй «ведомым» – включить OpcUAClient (enb = 1).

Теперь при изменении уставок ведущего контроллера изменения будут дублироваться в ведомый с помощью OPC UA-клиента.

При попытке изменить уставки ведомого контроллера изменения в ведущем контроллере не применятся.

Graphic
Изменение уставки с ведущего контроллера
Graphic
Ведомый контроллер

Параметры на диске сохраняются в бинарных файлах с расширениями .da1 и .da2.

Примечание
При изменении числа входов блока BufSupEx файлы на диске перезаписываются.

Поведение блока BufSupEx при ошибках записи описано в разделе.

Запись целочисленных уставок по протоколу Modbus

Для записи уставок по протоколу Modbus вход inter блока BufSupEx подключается к выходу блока протокола Modbus TCP Slave или Modbus RTU Slave из библиотеки paModbus.

Мастер в сети Modbus может читать и записывать данные на диск. Для чтения блок BufSupEx реализует функцию 0х03, для записи – 0х06 и 0х10.

Вход group определяет Slave ID устройства (ID = 1 соответствует значению входа 0x100).

Входы dan используются для записи уставок из программы контроллера. Для того, чтобы значение записалось на диск из программы, и его прочитал мастер сети Modbus, следует также подать импульс на соответствующий вход czap.

Входы typ определяют тип данных dan, при работе по Modbus могут принимать только значения II, IO (16-ти битный регистр), так как Modbus работает с целочисленными регистрами.

Сохранение по протоколу Modbus уставок с плавающей точкой рассмотрено в разделе.

Входы adr определяют адреса выделяемых регистров Modbus.

Входы min и max задают минимальное и максимальное возможное значение dan, при изменении значения из программы или мастером сети оно проверяется на условие соответствия этому диапазону. Значение, выходящее за этот диапазон, записано не будет.

Выходы dan отображают текущие значения уставок, сохраненных на диск.

Параметры на диске сохраняются в бинарных файлах с расширениями .da1 и .da2.

Примечание
При изменении числа входов блока BufSupEx файлы на диске перезаписываются.

Поведение блока BufSupEx при ошибках записи описано в разделе.

Подробно настройка обмена по протоколу Modbus описана в документе Обмен по протоколу Modbus. Библиотека paModbus.

Graphic
Подключение BufSupEx к
Graphic
Запись уставки мастером сети Modbus
Graphic
Запись уставки из программы контроллера

Запись уставок с плавающей точкой по протоколу Modbus (BufSupFltEx)

Для записи уставок с плавающей точкой по протоколу Modbus используются блоки BufSupFltEx из библиотеки paModbus.

Вход inter блока BufSupFltEx подключается к выходу блока протокола Modbus TCP Slave или Modbus RTU Slave из библиотеки paModbus.

Мастер в сети Modbus может читать и записывать данные на диск. Для чтения блок BufSupFltEx реализует функцию 0х03, для записи – 0х10.

Вход group определяет Slave ID устройства (ID = 1 соответствует значение входа 0x100).

Входы dan используются для записи уставок из программы контроллера. Для того, чтобы значение записалось на диск из программы, и его прочитал мастер сети Modbus, следует также подать импульс на соответствующий вход czap.

Входы typ определяют тип данных dan, могут принимать только значения AI, AO (вещественное число).

Входы adr определяют адреса выделяемых регистров Modbus. Для опроса каждого значения dan выделяется 2 регистра Modbus.

Входы min и max задают минимальное и максимальное возможное значение dan, при изменении значения из программы или мастером сети оно проверяется на условие соответствия этому диапазону. Значение, выходящее за этот диапазон, записано не будет.

Выходы dan отображают текущие значения уставок, сохраненные на диск.

Параметры на диске сохраняются в бинарных файлах с расширениями .da1 и .da2.

Внимание
При изменении числа входов блока BufSupFltEx файлы на диске перезаписываются.

Поведение блока BufSupFltEx аналогично блоку BufSupEx и описано в разделе.

Подробно настройка обмена по протоколу Modbus описана в документе Обмен по протоколу Modbus. Библиотека paModbus.

Graphic
Подключение
Graphic
Запись уставки мастером сети Modbus
Graphic
Запись уставки из программы контроллера