Архив с записью данных по событию
Для данного урока напишем основную программу «main» на языке FBD и программу для архива «archive» на языке ST. В «main» добавим переменную value с типом данных «USINT». Сделаем value инкрементируемой. Тип данных «USINT» имеет диапазон от 0 до 255. Добавим булеву переменную trigger от значения которой будет зависеть запись данных в архив. Для примера, сделаем так, чтобы в архив записывались данные при value равной 60, либо 120, 180, 240. Реализация данного примера представлена ниже.

Программа «main»
Примечание
Для того чтобы добавить несколько входов в функциональный блок «OR», необходимо дважды щелкнуть по нему и выбрать количество входов.

В программе «archive» добавим переменные trigger, value, и регистр Arch_save_arc. Также создаем переменную value_arch, в которую будут записываться данные value при срабатывании trigger. Конечный результат программы показан на рисунке ниже:

Программа «archive»
Далее добавляем переменную value_arch в окно регистров архива. Тип данных указываем как «USINT».

Окно регистров архива
В ресурсах выставим настройки для каждой программы отдельно:

Ресурсы программ
В глобальных переменных необходимо добавить value и trigger. Для переменной value пропишем начальное значение 1, сделаем его «Retain», что означает сохранение значения при возможных перезагрузках или выключениях ПЛК.

Глобальные переменные программ
После загрузки проекта в ПЛК данные value будут записываться в архив при значениях 60, 120, 180 и 240.