DO. Управление логическим состоянием. Независимое управление несколькими каналами

Для записи значения состояния дискретных выходов ПЛК BRIC в Beremiz реализован функциональный блок WRITE_DO.

write_do

Данный функциональный блок имеет 2 входа: DO_VALUE (значение состояния дискретных выходов) и DO_MASK (маска, разрешающая изменять состояние дискретных выходов). Выходы прописываются побитово:

../_images/261.png

Определение логического состояния канала

То есть, чтобы «включить» дискретные выходы, например, DO_2 и DO_3 необходимо прописать в DO_VALUE и DO_MASK значение 12. Создаём программу на языке FBD. Функциональный блок WRITE_DO добавляется из «Library» во вкладке «DO Function Blocks».

../_images/281.png

Программа на FBD для записи состояния DO_2 и DO_3

../_images/271.png

Запись состояния дискретного выхода

Подключаем резисторы для исключения сигнализации обрыва на каналах. После загрузки программы в ПЛК загораются зеленые светодиоды на дискретных выходах DO_2 и DO_3.

../_images/plc_3.gif

DO_2 и DO_3 на ПЛК BRIC

Важно

DO_VALUE имеет тип данных UINT с диапазоном от 0…65535. В случае с Beremiz участвует младший полубайт, а старший отвечает за маскирование. Рекомендуется использовать диапазон 0..15.

Для того, чтобы подробнее узнать о независимом управлении несколькими дискретными выходами напишем проект. В него буду входить две программы на языке ST. Допустим, что при появлении одного сигнала, например, «start» должны включиться выходы DO_0 и DO_3. А при появлении сигнала «start2» должен включиться дискретный выход DO_2. При отсутствии данных сигналов каналы должны выключиться. Допустим первая наша программа будет отвечать за управление дискретных выходов DO_0 и DO_3. Программа будет иметь вид, представленный на рисунке ниже.

../_images/30.png

Вторая программа, отвечающая за дискретный выход DO_2 представлена на рисунке ниже. Дискретный выход DO_2 управляется внешним сигналом «start2».

../_images/31.png

Добавляем программы в ресурсы, компилируем. Далее загружаем наш проект в контроллер. Заходим в WEB-страницу и открываем вкладку «USER». При изменении переменной «start» из 0 в 1 - дискретные выходы DO_0 и DO_3 «включаются».

../_images/plc_4.gif

DO_0 и DO_3 на ПЛК BRIC

При изменении переменной «start2» из 0 в 1 включается дискретный выход DO_2. Заметьте, что включенные дискретные каналы DO_0 и DO_3 остаются без изменений.

../_images/plc_5.gif

Состояние дискретных выходов ПЛК BRIC

Поставленная задача решена, для того, чтобы выключить все дискретные выходы контроллера в данном случае необходимо «выключить» сигналы «start» и «start2».

Для чтения значения состояния дискретных выходов ПЛК BRIC в Beremiz реализован функциональный блок READ_DO (при включенном канале DO логическая 1 информирует о протекании в цепи тока более 2 мА, а логический 0 – об обрыве цепи). Добавим функциональный блок READ_DO и переменную do_read в предыдущую программу.

../_images/32.png
../_images/34.png

Программа для чтения состояния дискретных каналов

../_images/33.png

Результат вывода программы в WEB-странице

Если в каком-либо из задействованных каналов будет обрыв или короткое замыкание, то значение переменной do_read поменяется.

См.также

Подробно о дискретных выходах ПЛК BRIC можно узнать по ссылке