Создание архива. Структура архива. Добавление пользовательских переменных. Расчет глубины архивации
Архивы являются неотъемлемой частью большинства проектов. В Beremiz имеется возможность создания архивов с добавлением пользовательских переменных. Рассмотрим более подробно данный процесс.
Для добавления в структуру проекта необходимо щелкнуть правой кнопкой мыши в область дерева проекта и нажать «Archive support». Далее необходимо подвести курсор к созданной ветке «archive», щелкнуть левой клавишей мыши и выбрать пункт «Add Arch», как показано ниже:

Добавление модуля архива в проект
Рассмотрим более детально окно конфигурации модуля архива.

Окно параметров архива
Имя |
Тип данных |
Описание |
---|---|---|
Arch_save_arc |
UINT |
Триггер для записи данных в архив: при изменении из 0 в 1 данные записываются |
Arch_arc_for_read |
UDINT |
Данные архива из буфера, представленные для чтения |
Arch_id_number |
UINT |
Уникальный идентификатор архива |
Arch_body_len |
UINT |
Размер архива с учетом заголовка и пользовательских данных |
Arch_unix_time_last_arc |
UDINT |
Время записи последних данных в архив в формате UNIX |
Arch_arcs_number |
UDINT |
Количество архивов, доступных для чтения |
Arch_last_readed |
UDINT |
Номер последнего прочитанного архива |
Arch_first_available |
UDINT |
Номер первого архива, доступного для чтения |
Последующие данные являются структурой самого архива.
Имя |
Тип данных |
Описание |
---|---|---|
Arch_id_number_data |
UINT |
Номер архива данных [0:6] |
Arch_header_len_data |
UINT |
Длина заголовка архива |
Arch_body_len_data |
UINT |
Длина всего архива (header_len + body_len) |
Arch_sec_data |
USINT |
Данные секунд часов реального времени |
Arch_min_data |
USINT |
Данные минут часов реального времени |
Arch_hour_data |
USINT |
Данные часов часов реального времени |
Arch_date_data |
USINT |
Данные дней часов реального времени |
Arch_month_data |
USINT |
Данные месяцев часов реального времени |
Arch_year_data |
USINT |
Данные годов часов реального времени |
Arch_date_data |
USINT |
Данные дней часов реального времени |
Arch_unix_time_data |
UDINT |
Время в формате UNIX |
Arch_flags_data |
UDINT |
Данные о выставленных флагах архива |
Arch_id_crc_data |
UDINT |
Данные об уникальном CRC архива |
Arch_number_data |
UDINT |
Данные о номере архива в списке |
Пользовательские данные добавляются при нажатии кнопки в левом верхнем углу окна, удаляются с помощью кнопки
.

Добавление и удаление пользовательских данных в архив
Внимание
Название и тип пользовательских данных должны совпадать с созданными данными программы архива
Размер выделяемой памяти для одного архива обеспечивает минимальную глубину архивации в 1000 записей при максимальном размере пользовательских данных 256 байт. При уменьшении размера пользовательских данных, глубина архивации увеличивается.
Точное значение глубины архивации можно вычислить по формуле:
arc_num = 284000 / (header_len + body_len),
где header_len - длина заголовка (28 байт);
body_len - длина пользовательских данных.
Например, при записи в архив 2-х пользовательских данных типа REAL (по 4 байта) и 2-х данных типа UINT (по 2 байта), то глубина архивации будет составлять:
arc_num = 284000 / (28 + (2 * 4 + 2 * 2)) = 284000 / 40 = 7100 записей.
Допустим, что программа архивации данных записывает 1 раз в 10 минут, то есть 24 * (60 / 10) = 144 записей за сутки. Тогда глубину архивации можно выразить в виде:
7100 / 144 = 49,3 суток.