Архив с записью данных по событию ================================= Для данного урока напишем основную программу "main" на языке FBD и программу для архива "archive" на языке ST. В "main" добавим переменную *value* с типом данных "USINT". Сделаем *value* инкрементируемой. Тип данных "USINT" имеет диапазон от 0 до 255. Добавим булеву переменную *trigger* от значения которой будет зависеть запись данных в архив. Для примера, сделаем так, чтобы в архив записывались данные при *value* равной 60, либо 120, 180, 240. Реализация данного примера представлена ниже. .. figure:: img/8.png :width: 600 :align: center *Программа "main"* .. note:: Для того чтобы добавить несколько входов в функциональный блок "OR", необходимо дважды щелкнуть по нему и выбрать количество входов. .. figure:: img/g3.gif :width: 400 :align: center В программе "archive" добавим переменные *trigger*, *value*, и регистр *Arch_save_arc*. Также создаем переменную *value_arch*, в которую будут записываться данные *value* при срабатывании *trigger*. Конечный результат программы показан на рисунке ниже: .. figure:: img/9.png :width: 600 :align: center *Программа "archive"* Далее добавляем переменную *value_arch* в окно регистров архива. Тип данных указываем как "USINT". .. figure:: img/9_1.png :width: 600 :align: center *Окно регистров архива* В ресурсах выставим настройки для каждой программы отдельно: .. figure:: img/10.png :width: 600 :align: center *Ресурсы программ* В глобальных переменных необходимо добавить *value* и *trigger*. Для переменной *value* пропишем начальное значение 1, сделаем его "Retain", что означает сохранение значения при возможных перезагрузках или выключениях ПЛК. .. figure:: img/11.png :width: 600 :align: center *Глобальные переменные программ* После загрузки проекта в ПЛК данные *value* будут записываться в архив при значениях 60, 120, 180 и 240.