Чтение архивов. WEB - страница "Archieves" ========================================== В ПЛК BRIC реализована функция работы с архивами, которые создаем в своей программе. Для того, чтобы начать работу с архивами необходимо открыть вкладку "Archieves". Eсли в пользовательской программе архивы отсутствуют, то отобразится сообщение "No available archieves". Напишем основную программу на языке FBD. Добавим инкрементируемую преременную *value_x* , и преременную *value_y*. Для данного урока реализуем программу, описывающую функцию *value_y* = sin(*value_x*). В ИСР Beremiz переменные представлены как радианы. Для перевода в градусы воспользуемся формулой: .. math:: 1 градус = 1рад * π / 180° Финальная версия программы представлена на рисунке ниже: .. figure:: img/12.png :width: 600 :align: center *Программа "sinus"* Напишем программу для архива на языке ST. Для начала добавим модуль архивов, оттуда копируем регистр *Arch_save_arc*. Также создаем локальную переменную *trigger*, который будет являться триггером записи данных в архив, переменные *y_ar* и *x_ar*, в которые будут записываться данные от *value_y* и *value_x*. Финальная версия программы представлена на рисунке ниже: .. figure:: img/13.png :width: 600 :align: center *Программа "arcc"* Добавим наши архивные переменные в окно регистров "archive_0.Arch_0". .. figure:: img/16.png :width: 600 :align: center *Окно "Arch_0"* Сделаем цикл каждой программы равным 5 секундам. Данные будут записываться в архив каждые 10 секунд. .. figure:: img/14.png :width: 600 :align: center *Ресурсы программ* После загрузки нашей пользовательской программы, заходим в WEB-страницу контроллера, открываем вкладку "Archieves". Таблица "Available archieves" показывает информацию по имеющимся в контроллере архивам: * "Arch_ID" - идентификатор или номер архива. В нашем случае у нас только 1 архив под номером 0; * "First" - номер первой доступной записи архива; * "Last" - номер последней записи архива. Кнопка с круговой стрелкой "обновить" - для актуализации данных. .. figure:: img/15.png :width: 600 :align: center *Вкладка "Archieves"* В выпадающем списке "Arch_ID" выбираем интересующий нас архив, в нашем случае он один под номером "0"(вообще имеется возможность создания до 10 архивов в одном проекте). Далее укажем интервал записей, которые мы хотим считать в полях "From" и "To". Считывать записи можно в несколько подходов. Давайте получим последние 200 записей. .. figure:: img/g4.gif :width: 600 :align: center *Получение записей* После того, как получили записи появляется таблица: * "Archieve header" - это неизменная часть записи, которая содержит: * порядковый номер записи (ARCH number); * время (Time); * дата (Date); * дата и время в формате UNIX (Unix); * служебные флаги (Flags). * "Archieve body" - это те параметры, которые мы настраиваем при конфигурации архива в программе. Здесь мы можем видеть наши добавленные переменные *y_ar* и *x_ar*. Также есть инструменты построения одного или двух графиков. В выпадающем списке "1-st" выберем переменную *y_ar* и нажмем кнопку "Upgrade graph". В результате мы увидим график синусоиды. .. figure:: img/g5.gif :width: 600 :align: center *Получение графика* Можно поставить галочку "2-nd" и выбрать из выпадающего списка переменную *x_ar*. Теперь можно визуально сопоставить два параметра на одной шкале времени. Ось Y для второго параметра отображается справа. .. figure:: img/g6.gif :width: 600 :align: center *Сопоставление графиков* Помимо просмотра записей в онлайне, считанный архив можно сохранить в виде файла с расширением ".csv". Кнопка "Save to file" появляется после того, как записи были считаны из контроллера.