Раздел Сохранение данных библиотеки paCore

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

Для добавления библиотеки в проект следует:

  1. Перейти в меню Окна/Проекты. В появившемся окне отобразится текущий проект и добавленные библиотеки.

    Graphic
    Добавление библиотеки в проект
  2. Для добавления библиотеки следует нажать кнопку Открыть и перейти в папку с файлами библиотеки, которую необходимо добавить. Затем в выпадающем списке выбрать тип файла Библиотека Полигон 2 (*.ll2).

    Graphic
    Добавление библиотеки в проект
  3. В окне появится файл библиотеки с расширением .ll2. Следует выбрать его и нажать Открыть.

    Graphic
    Добавление библиотеки в проект

Добавленная библиотека отобразится в окне Проекты.

Хранение параметров на диске (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.

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

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

Graphic
Хранение параметров на диске (SaverEx)

Буфер чтения/записи уставок (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.

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

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

Graphic
Буфер чтения/записи уставок (BufSupEx)

Счетчик времени наработки (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.

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

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

Graphic
Счетчик времени наработки (CounterMEx)