Сохранение параметров на диске контроллера организуется с помощью блоков раздела Сохранение данных библиотеки paCore.
Для добавления библиотеки в проект следует:
Перейти в меню Окна/Проекты. В появившемся окне отобразится текущий проект и добавленные библиотеки.
Добавление библиотеки в проект Для добавления библиотеки следует нажать кнопку Открыть и перейти в папку с файлами библиотеки, которую необходимо добавить. Затем в выпадающем списке выбрать тип файла Библиотека Полигон 2 (*.ll2).
Добавление библиотеки в проект В окне появится файл библиотеки с расширением .ll2. Следует выбрать его и нажать Открыть.
Добавление библиотеки в проект
Добавленная библиотека отобразится в окне Проекты.
Хранение параметров на диске (SaverEx)
Блок SaverEx обеспечивает хранение данных в архиве на диске контроллера в виде бинарного файла.
Поскольку операции файлового ввода/вывода занимают значительное время, данный блок следует размещать только в Фоне.
Назначение входов и выходов SaverEx
Элемент | Описание |
---|---|
Входы | |
rst | Сброс ошибок записи |
fnm | Абсолютный путь и имя файла на диске (может быть пустым – задается автоматически), расширение игнорируется. При сохранении данных на внешнем накопителе следует использовать путь, указанный на выходе блока 210-SD-USB (константный) |
wr | Запись на диск |
in | Значение параметра (циклический) |
typ | Тип параметра (циклический, константный): DI – 8-ми битный регистр; AI – вещественное значение; II – 16-ти битный регистр |
ini | Значение для инициализации (циклический, константный) |
Выходы | |
next | Имя следующего файла |
enb | Запись разрешена |
sts | Статус: 0 – после сброса; 1 – записан; 2 – прочитан; <0 – ошибка |
good | Количество удачных записей |
bad | Количество ошибок записи |
rej | Количество отклоненных записей |
o | Текущее значение параметров (циклический) |
Имя файла и путь к нему задается на входе fnm. Поле может быть пустым, тогда имя файла будет выбрано автоматически по индексу блока, а файл сохранится в рабочую директорию контроллера.
Данные организуются в виде переменных in с жестко заданным типом typ.
Поскольку входы in имеют тип any, следует строго соблюдать правила преобразования типов при проведении связей.
Если файла не существует на диске – входы инициализируются с помощью значений ini, происходит запись в файл.
Если файл существует на диске, выходы инициализируются сохраненными значениями. Запись в файл осуществляется только при изменении значений на входах in.
Запись на диск можно осуществить принудительно, подав команду wr.
Для надежной сохранности данных одновременно на диске находятся два файла, соответствующие одному архиву. Поэтому если контроллер будет перезагружен в момент записи на диск, данные не пропадут, а будут доступны предыдущие значения переменных, записанные в другом файле.
При чтении содержимое файла контролируется с помощью контрольной суммы и выдается на выходы только при ее корректности. Поэтому если, например, добавить в файл новую переменную, то записанные значения для выходов сбросятся на инициализирующие ini.
Если при записи файла на диск происходит однократная ошибка, блок пытается переименовать текущий файл и снова произвести запись. Если повторная запись оказывается удачной, то продолжается работа в обычном режиме, а выход bad инкрементируется. Следует принять меры по диагностике или замене носителя, поскольку сбои при записи могут быть следствием скорого выхода его из строя. Файл, на котором произошел сбой, остается на диске под тем же именем с добавленным к нему суффиксом равным метке времени сбоя (в мс от 1 января 1970 г). Не рекомендуется его удалять, чтобы повторно не использовать потенциально сбойный сектор.
Если происходит повторный сбой записи, то блок блокируется (выход enb = 0) и больше не производит попыток переименований файлов и записи до тех пор, пока ошибки не будут сброшены фронтом на входе rst.

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

Буфер чтения/записи уставок (BufSupEx)
Блок BufSupEx представляет собой двунаправленный буфер данных интерфейса и данные сохраняются в бинарном файле на диске контроллера. Блок сохраняет все значения на диске контроллера аналогично блоку SaverEx.
Поскольку операции файлового ввода/вывода занимают значительное время, данный блок следует размещать только в Фоне.
Назначение входов и выходов BufSupEx
Элемент | Описание |
---|---|
Входы | |
inter | Cвязь от интерфейса, к которому принадлежит данный буфер |
group | Номер группы (константный) |
fnm | Абсолютный путь и имя файла (может быть пустым – задается автоматически), расширение игнорируется. При сохранении данных на внешнем накопителе следует использовать путь, указанный на выходе блока 210-SD-USB (константный) |
mask | Не используется |
rst | Сброс ошибок записи |
wr | Запись на диск |
dan | Значение, которое записывается в буфер при czap = 1 (циклический) |
czap | Запись значения dan (циклический) |
typ | Тип параметра (циклический, константный): DI, DO – 8-ми битный регистр; AI, AO – вещественное значение; II, IO – 16-ти битный регистр |
adr | Адрес параметра (циклический, константный) |
ini | Значение для инициализации (циклический, константный) |
min | Минимум. Если принятое значение меньше min, то оно игнорируется (циклический) |
max | Максимум. Если принятое значение больше max, то оно игнорируется (циклический) |
Выходы | |
pkt | Подключение к блокам OpcUAClient, UABufSups из библиотеки paOpcUA |
next | Имя следующего файла |
enb | Запись разрешена |
sts | Статус: 0 – после сброса; 1 – записан; 2 – прочитан; <0 – ошибка |
good | Количество удачных записей |
bad | Количество ошибок записи |
rej | Количество отклоненных записей |
dan | Значение параметра, полученное по интерфейсу или на вход dan (после проверки на min и max) |
chn | Признак изменения, выставляется в 1 на один цикл выполнения программы, если значение dan изменилось |
zap | Признак записи, выставляется в 1 на один цикл выполнения программы, если значение с входа dan было записано |
Номер группы group используется в качестве Slave ID при подключении к блоку интерфейса Modbus Slave.
Имя файла и путь к нему задается на входе fnm. Поле может быть пустым, тогда имя файла будет выбрано автоматически по индексу блока, а файл сохранится в рабочую директорию контроллера.
Адрес переменной adr зависит от интерфейса, к которому подключен буфер, например, адрес регистра Modbus.
Поскольку входы dan имеют тип any, следует строго соблюдать правила преобразования типов при проведении связей.
Если файл существует на диске, выходы инициализируются сохраненными значениями. Если файла не существует – выходы инициализируются значениями инициализации ini.
Запись в файл осуществляется при изменении значений на входах dan или по интерфейсу. Если файла на диске не существует и выходы dan приняли значения ini, то можно записать их на диск принудительно, подав команду wr.
Для надежной сохранности данных одновременно на диске находятся два файла, соответствующие одному архиву. Поэтому если контроллер будет перезагружен в момент записи на диск, данные не пропадут, а будут доступны предыдущие значения переменных, записанные в другом файле.
При чтении содержимое файла контролируется с помощью контрольной суммы и выдается на выходы только при ее корректности. Поэтому если, например, добавить в файл новую переменную, то записанные значения для выходов сбросятся на инициализирующие ini.
Если при записи файла на диск происходит однократная ошибка, блок пытается переименовать текущий файл и снова произвести запись. Если повторная запись оказывается удачной, то продолжается работа в обычном режиме, а выход bad инкрементируется. Следует принять меры по диагностике или замене носителя, поскольку сбои при записи могут быть следствием скорого выхода его из строя. Файл, на котором произошел сбой, остается на диске под тем же именем с добавленным к нему суффиксом равным метке времени сбоя (в мс от 1 января 1970 г). Не рекомендуется его удалять, чтобы повторно не использовать потенциально сбойный сектор.
Если происходит повторный сбой записи, то блок блокируется (выход enb = 0) и больше не производит попыток переименований файлов и записи до тех пор, пока ошибки не будут сброшены фронтом на входе rst.

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

Счетчик времени наработки (CounterMEx)
Блок CounterMEx предназначен для сохранения в бинарный файл наработки устройств.
Поскольку операции файлового ввода/вывода занимают значительное время, данный блок следует размещать только в Фоне.
Назначение входов и выходов CounterMEx
Элемент | Описание |
---|---|
Входы | |
rst | Сброс ошибок записи |
fn | Абсолютный путь и имя файла (может быть пустым – задается автоматически), расширение игнорируется. При сохранении данных на внешнем накопителе следует использовать путь, указанный на выходе блока 210-SD-USB (константный) |
ask | Запись на диск |
slv | Используется для изменения значений счетчиков, если slv = 1, то cnt = mas, cfrn = mcfrn |
enbl | Работа устройства (циклический): пока enbl = 1, увеличивается время наработки cfrn, при изменении enbl с 0 на 1 число включений cnt увеличивается на 1 |
rst | Сброс времени наработки cnt (циклический) |
frm | Формат отображения для времени наработки. Не используется |
rfr | Сброс числа включений cfrn (циклический) |
mas | Балансировка времени наработки cnt (циклический), если slv = 1, то cnt = mas |
mcfrn | Балансировка числа включений cfrn (циклический), если slv = 1, то cfrn = mcfrn |
Выходы | |
next | Имя следующего файла |
enb | Запись разрешена |
good | Количество удачных записей |
bad | Количество ошибок записи |
cnt | Время наработки в секундах (циклический) |
hour | Время наработки в формате часы (циклический) |
min | Время наработки в формате минуты (циклический) |
sec | Время наработки в формате секунды (циклический) |
day | Текущий день (циклический) |
mnth | Текущий месяц (циклический) |
year | Текущий год (циклический) |
cfrn | Число включений (циклический) |
Блок анализирует входы enbl.
На выходе cfrn отображается число включений устройства (количество изменений enbl c 0 на 1), на выходе cnt отображается время наработки устройства (сколько секунд enbl был равен 1).
Блок может сохранять число включений и время наработки в файл по фронту на входе ask. Сохраненные значения считываются из файла при инициализации.
Имя файла и путь к нему задается на входе fnm. Поле может быть пустым, тогда имя файла будет выбрано автоматически по индексу блока, а файл сохранится в рабочую директорию контроллера.
Для изменения числа включений и времени наработки следует подать 1 на вход slv, тогда cnt = mas, cfrn = mcfrn. Это может быть полезно для синхронизации в дублированных системах.
Для надежной сохранности данных одновременно на диске находятся два файла, соответствующие одному архиву. Поэтому если контроллер будет перезагружен в момент записи на диск, данные не пропадут, а будут доступны предыдущие значения наработки, записанные в другом файле.
При чтении содержимое файла контролируется с помощью контрольной суммы и выдается на выходы только при ее корректности. Поэтому если, например, добавить в файл новую переменную, то записанные значения для выходов сбросятся на инициализирующие ini.
Если при записи файла на диск происходит однократная ошибка, блок пытается переименовать текущий файл и снова произвести запись. Если повторная запись оказывается удачной, то продолжается работа в обычном режиме, а выход bad инкрементируется. Следует принять меры по диагностике или замене носителя, поскольку сбои при записи могут быть следствием скорого выхода его из строя. Файл, на котором произошел сбой, остается на диске под тем же именем с добавленным к нему суффиксом равным метке времени сбоя (в мс от 1 января 1970 г). Не рекомендуется его удалять, чтобы повторно не использовать потенциально сбойный сектор.
Если происходит повторный сбой записи, то блок блокируется до тех пор, пока ошибки не будут сброшены фронтом на входе rst.

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