DO. Работа с дискретными выходными каналами. Запись значений в каналы. Функциональный блок WRITE_DO.

В BRIC-IDE существует 2 способа записи значения в канал DO ПЛК BRIC. Первый способ: для записи значения реализован функциональный блок WRITE_DO.

write_do

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

DO-0

DO-1

DO-2

DO-3

2^0 = 1

2^1 = 2

2^2 = 4

2^3 = 8

Важно

DO_VALUE и DO_MASK имеют тип данных UINT с диапазоном от 0…65535, занимая 2 байта информации. Если на DO_MASK передать все 0, то запись во все каналы будет запрещена. Если передать все 1, то запись будет разрешена во все каналы, можно запретить запись в определенные каналы путем передачи в DO_MASK соответствующего значения. Рекомендуется использовать диапазон значений 0..15 См. Таблицу.

../_images/inputs_diagram.png

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

То есть, чтобы «включить» дискретные выходы, например, DO_2 и DO_3 необходимо прописать в DO_VALUE значение 12, так как это сумма значений 4 и 8. В значение DO_MASK запишем 15 так как это сумма значений всех каналов (1+2+4+8) контроллера, чтобы разрешить запись во все каналы.

Создаём программу на языке FBD. Функциональный блок WRITE_DO добавляется из «Библиотеки» во вкладке «DO Function Blocks».

../_images/281.png

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

Для каналов DO реализована функция диагности короткого замыкания (Далее КЗ). В случае отсутствия подключения нагрузки к каналу DO, на который подается сигнал, загорится соответствующий светодиод SHORT. После загрузки программы в ПЛК загораются зеленые светодиоды на дискретных выходах DO_2 и DO_3.

../_images/plc_3.gif

DO_2 и DO_3 на ПЛК BRIC

Для того, чтобы подробнее узнать о независимом управлении несколькими дискретными выходами напишем проект. В него буду входить две программы на языке 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 в BRIC-IDE реализован функциональный блок READ_DO (при включенном канале DO логическая 1 информирует о протекании в цепи тока более 2 мА, а логический 0 – об обрыве цепи). Добавим функциональный блок READ_DO и переменную do_read в предыдущую программу.

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

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

../_images/33.png

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

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

См.также

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