DO. Работа с дискретными выходными каналами. Запись значений в каналы. Функциональный блок WRITE_DO.
В BRIC-IDE существует 2 способа записи значения в канал DO ПЛК BRIC. Первый способ: для записи значения реализован функциональный блок 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 См. Таблицу.
Запись состояния дискретного выхода
То есть, чтобы «включить» дискретные выходы, например, DO_2 и DO_3 необходимо прописать в DO_VALUE значение 12, так как это сумма значений 4 и 8. В значение DO_MASK запишем 15 так как это сумма значений всех каналов (1+2+4+8) контроллера, чтобы разрешить запись во все каналы.
Создаём программу на языке FBD. Функциональный блок WRITE_DO добавляется из «Библиотеки» во вкладке «DO Function Blocks».
Программа на FBD для записи состояния DO_2 и DO_3
Для каналов DO реализована функция диагности короткого замыкания (Далее КЗ). В случае отсутствия подключения нагрузки к каналу DO, на который подается сигнал, загорится соответствующий светодиод SHORT. После загрузки программы в ПЛК загораются зеленые светодиоды на дискретных выходах DO_2 и DO_3.
DO_2 и DO_3 на ПЛК BRIC
Для того, чтобы подробнее узнать о независимом управлении несколькими дискретными выходами напишем проект. В него буду входить две программы на языке ST. Допустим, что при появлении одного сигнала, например, «start» должны включиться выходы DO_0 и DO_3. А при появлении сигнала «start2» должен включиться дискретный выход DO_2. При отсутствии данных сигналов каналы должны выключиться. Допустим первая наша программа будет отвечать за управление дискретных выходов DO_0 и DO_3. Программа будет иметь вид, представленный на рисунке ниже.
Вторая программа, отвечающая за дискретный выход DO_2 представлена на рисунке ниже. Дискретный выход DO_2 управляется внешним сигналом «start2».
Добавляем программы в ресурсы, компилируем. Далее загружаем наш проект в контроллер. Заходим в WEB-страницу и открываем вкладку «USER». При изменении переменной «start» из 0 в 1 - дискретные выходы DO_0 и DO_3 «включаются».
DO_0 и DO_3 на ПЛК BRIC
При изменении переменной «start2» из 0 в 1 включается дискретный выход DO_2. Заметьте, что включенные дискретные каналы DO_0 и DO_3 остаются без изменений.
Состояние дискретных выходов ПЛК BRIC
Поставленная задача решена, для того, чтобы выключить все дискретные выходы контроллера в данном случае необходимо «выключить» сигналы «start» и «start2».
Для чтения значения состояния дискретных выходов ПЛК BRIC в BRIC-IDE реализован функциональный блок READ_DO (при включенном канале DO логическая 1 информирует о протекании в цепи тока более 2 мА, а логический 0 – об обрыве цепи). Добавим функциональный блок READ_DO и переменную do_read в предыдущую программу.
Программа для чтения состояния дискретных каналов
Результат вывода программы в WEB-странице
Если в каком-либо из задействованных каналов будет обрыв или короткое замыкание, то значение переменной do_read поменяется.
См.также
Подробно о дискретных выходах ПЛК BRIC можно узнать по ссылке
