translator, wb_editors
4544
правки
Kilpio (обсуждение | вклад) |
Matveevrj (обсуждение | вклад) |
||
(не показаны 24 промежуточные версии 7 участников) | |||
Строка 1: | Строка 1: | ||
'''Модель снята с производства, но вы можете [[Центр документации#Релейные модули | подобрать другие модели реле]]''' | |||
{{DISPLAYTITLE:WB-MR14 модуль реле 14-канальный}} | {{DISPLAYTITLE:WB-MR14 модуль реле 14-канальный}} | ||
[[Файл:MR14-2.jpg| thumb | 300px|WB-MR14 модуль реле 14-канальный]] | [[Файл:MR14-2.jpg| thumb | 300px|WB-MR14 модуль реле 14-канальный]] | ||
==Общая информация== | ==Общая информация== | ||
Строка 41: | Строка 40: | ||
*В режиме холостого хода (со всеми выключенными реле) — 0,5 Вт | *В режиме холостого хода (со всеми выключенными реле) — 0,5 Вт | ||
*Со всеми включенными реле — 2,5 Вт | *Со всеми включенными реле — 2,5 Вт | ||
*Пиковое значение (при включении всех реле одновременно) — до 11 Вт в течение 20 мс | *Пиковое значение (при включении всех реле одновременно) — до 11 Вт в течение 20 мс | ||
|- | |- | ||
! colspan="2" |'''Выходы''' | ! colspan="2" |'''Выходы''' | ||
Строка 66: | Строка 65: | ||
|Максимальный коммутируемый ток на каждый канал | |Максимальный коммутируемый ток на каждый канал | ||
| | | | ||
* | * Для резистивной нагрузки — 10 А | ||
* | * Для ёмкостной и индуктивной нагрузки — 400 мА | ||
|- | |- | ||
|Сопротивление контактов | |Сопротивление контактов | ||
Строка 133: | Строка 132: | ||
|- | |- | ||
|Температура воздуха | |Температура воздуха | ||
|От - | |От -40 до +50 °С | ||
|- | |- | ||
|Относительная влажность | |Относительная влажность | ||
Строка 141: | Строка 140: | ||
=== Габаритные размеры модуля === | === Габаритные размеры модуля === | ||
[[File:DIN 6U.png |450px|thumb|center|Габаритные размеры]] | |||
[[File:DIN 6U.png | | |||
=== Обмен данными === | === Обмен данными === | ||
На физическом уровне модуль подключается через интерфейс [[RS-485]]. Для управления WB-MR14 используется протокол Modbus RTU. В устройствах Wirenboard данные Modbus передаются по линиям связи RS-485. Подробнее смотрите страницу [[Протокол Modbus]]. Modbus-адрес модуля задается на заводе и | На физическом уровне модуль подключается через интерфейс [[RS-485]]. Для управления WB-MR14 используется протокол Modbus RTU. В устройствах Wirenboard данные Modbus передаются по линиям связи RS-485. Подробнее смотрите страницу [[Протокол Modbus]]. Modbus-адрес модуля задается на заводе и расположен на боковой стороне устройства. Адрес может быть изменен программно. Подробно смотрите в разделе [[#Параметры_Modbus]] | ||
== Монтаж == | == Монтаж == | ||
Строка 161: | Строка 159: | ||
Модуль необходимо устанавливать таким образом, чтобы удовлетворять требованиям электробезопасности и не допускать случайного касания контактов, находящихся под высоким напряжением. Модуль должен эксплуатироваться при рекомендованных условиях окружающей среды. | Модуль необходимо устанавливать таким образом, чтобы удовлетворять требованиям электробезопасности и не допускать случайного касания контактов, находящихся под высоким напряжением. Модуль должен эксплуатироваться при рекомендованных условиях окружающей среды. | ||
[[File:Installation_WB14.png|550px|thumb|center|Образец монтажа и подключения модуля (у последнего модуля на линии устанавливается терминирующий резистор). Выбор качественного блока питания очень важен для работы модуля | [[File:Installation_WB14.png|550px|thumb|center|Образец монтажа и подключения модуля (у последнего модуля на линии устанавливается терминирующий резистор). Выбор качественного блока питания очень важен для работы модуля]] | ||
== Добавление модуля в | == Добавление модуля в веб-интерфейс контроллера Wiren Board== | ||
[[Файл:The_new_device.png|300px|thumb|Новый модуль WB-MR14 в | [[Файл:The_new_device.png|300px|thumb|Новый модуль WB-MR14 в веб-интерфейсе]] | ||
Новое устройство добавляется в | Новое устройство добавляется в веб-интерфейс, в раздел соответствующего порта RS-485. В веб-интерфейсе, на панели справа выбираем пункт Configs -> Serial Device Driver Configuration. В настройках порта /dev/ttyAPP1 добавляем новое устройство, нажав на кнопку '''+ Serial device''' в разделе List of Devices. Затем указываем адрес устройства и выбираем его тип. Подробно о настройке устройств в веб-интерфейсе Wiren Board смотрите страницу [[RS-485:Настройка_через_веб-интерфейс]]. | ||
В разделе Devices появилось новое устройство, название составлено из типа устройства и адреса: '''WB-MR14 1''' | В разделе Devices появилось новое устройство, название составлено из типа устройства и адреса: '''WB-MR14 1''' | ||
Обратите внимание: желтый индикатор Status на WB_MR14 начал периодически мигать, это означает, что Wiren Board обменивается данными с модулем реле. В | Обратите внимание: желтый индикатор Status на WB_MR14 начал периодически мигать, это означает, что Wiren Board обменивается данными с модулем реле. В веб-интерфейсе можно следить за параметром Supply voltage (напряжение питания модуля реле) — он меняется почти при каждом опросе модуля. | ||
Устройство WB-MR14 стандартное, поэтому его описание задано в шаблоне, который хранится на контроллере Wiren Board в файле /usr/share/wb-mqtt-serial/templates/config-wb-mr14.json. | Устройство WB-MR14 стандартное, поэтому его описание задано в шаблоне, который хранится на контроллере Wiren Board в файле /usr/share/wb-mqtt-serial/templates/config-wb-mr14.json. | ||
== Управление модулем через | == Управление модулем через веб-интерфейс Wiren Board == | ||
Пример управления релейным модулем WB-MR14 контроллером Wiren Board 5 и программирования сценариев управления мы рассмотрим на простом макете, когда релейный модуль является единственным устройством, подключенным к контроллеру. Нормально разомкнутая кнопка без фиксации подключена ко входу 1 и GND. Питание 12 В подается на входы V+(+) и GND (-). Входы/выходы RS-485 A и B первого порта контроллера и модуля WB-MR14 соединены. | Пример управления релейным модулем WB-MR14 контроллером Wiren Board 5 и программирования сценариев управления мы рассмотрим на простом макете, когда релейный модуль является единственным устройством, подключенным к контроллеру. Нормально разомкнутая кнопка без фиксации подключена ко входу 1 и GND. Питание 12 В подается на входы V+(+) и GND (-). Входы/выходы RS-485 A и B первого порта контроллера и модуля WB-MR14 соединены. | ||
Строка 187: | Строка 185: | ||
С помощью виртуальных выключателей в | С помощью виртуальных выключателей в веб-интерфейсе K1-K14 можно управлять соответствующими выходами модуля и следить за их состоянием. Если реле будет включено или выключено через внешний вход, это отразится и в веб-интерфейсе. | ||
Текущее состояние входов показывают флажки Input1 — Input14 (на них нельзя щелкнуть, чтобы изменить состояние). Счетчики нажатий/включений отображаются в полях Input 1 counter – Input 14 counter. Значения счетчиков хранятся в оперативной памяти микроконтроллера модуля реле и обнуляются при выключении/включении питания и сбросе. | Текущее состояние входов показывают флажки Input1 — Input14 (на них нельзя щелкнуть, чтобы изменить состояние). Счетчики нажатий/включений отображаются в полях Input 1 counter – Input 14 counter. Значения счетчиков хранятся в оперативной памяти микроконтроллера модуля реле и обнуляются при выключении/включении питания и сбросе. | ||
Ползунок Safety Timer позволяет задать время отключения (в секундах) всех выходов при отсутствии обмена данными с Wiren Board (0 – таймер безопасности отключен). При возобновлении связи с контроллером выключившиеся реле останутся выключенными. Ползунком удобно управлять с помощью клавиш со стрелками, предварительно сфокусировавшись на нем мышью: перемещение ползунка с помощью мыши не обеспечивает достаточную точность. Таймер безопасности позволяет остановить технологические процессы в случае, если контроль над модулем утрачен (например, перебит кабель RS-485). Если реле останутся включенными, то, например, не закроется клапан подачи жидкости, что приведет к переполнению резервуара и затоплению помещения. Всегда учитывайте возможность потери связи с контроллером при проектировании систем управления. | Ползунок Safety Timer позволяет задать время отключения (в секундах) всех выходов при отсутствии обмена данными с Wiren Board (0 – таймер безопасности отключен). При возобновлении связи с контроллером выключившиеся реле останутся выключенными. Ползунком удобно управлять с помощью клавиш со стрелками, предварительно сфокусировавшись на нем мышью: перемещение ползунка с помощью мыши не обеспечивает достаточную точность. Таймер безопасности позволяет остановить технологические процессы в случае, если контроль над модулем утрачен (например, перебит кабель RS-485). Если реле останутся включенными, то, например, не закроется клапан подачи жидкости, что приведет к переполнению резервуара и затоплению помещения. Всегда учитывайте возможность потери связи с контроллером при проектировании систем управления. | ||
== | <!-- НЕ ТРОГАТЬ --> | ||
<!-- НЕ ТРОГАТЬ --> | |||
== Параметры Modbus == | |||
=== Modbus-адрес === | |||
[[Файл:modbus_address_mr14.png|150px|thumb|left|Modbus-адрес, установленный на производстве]] | |||
Modbus-адрес устройств Wiren Board легко определить — он нанесен на наклейке (адрес указан в десятичном формате). Новый адрес устройства записывается командой WRITE_SINGLE_REGISTER в регистр хранения (holding register) с адресом 128 (0x80). Подробно о том, как определить или изменить Modbus-адрес модуля, написано на странице [[Определение_и_изменение_Modbus-адреса_устройств_Wirenboard]]. | |||
=== Команды Modbus, поддерживаемые устройством === | |||
{| border="1" class="wikitable" style="text-align:center" | |||
!Команда | |||
!десятичный код | |||
|- | |||
|READ_COIL | |||
| 1 | |||
|- | |||
|READ DISCRETE INPUTS | |||
| 2 | |||
|- | |||
|WRITE_SINGLE_COIL || 5 | |||
|- | |||
|WRITE_MULTI_COILS || 15 | |||
|- | |||
|READ_HOLDING_REGISTERS || 3 | |||
|- | |||
|WRITE_SINGLE_REGISTER || 6 | |||
|- | |||
|WRITE_MULTI_REGISTERS || 16 | |||
|- | |||
|} | |||
=== Безопасный режим === | |||
В этом режиме при прекращении обмена данными по Modbus устройство отключает реле по прошествии заданного времени. | |||
Для включения безопасного режима (Safety timer) нужно записать значение, отличное от 0, в регистр хранения командой WRITE_SINGLE_REGISTER по адресу 2. Это значение — таймаут в секундах. Значение "0" отключает безопасный режим. | |||
=== Цифровые входы === | |||
Поддерживается три режима работы цифровых входов: | |||
* Режим 0: прямое управление каналами, выключатели без фиксации (кнопки). Нажатие на кнопку изменяет состояние реле. | |||
* Режим 1: прямое управление каналами, выключатели с фиксацией. Переключение выключателя с фиксацией устанавливает состояние реле в соответствии с положением выключателя. | |||
* Режим 3: управление каналами отключено. | |||
Поведением по умолчанию является прямое управление каналами реле (режим 0). Установить режим для всех каналов можно, записав соответствующее число в регистр хранения с адресом 5. | |||
Режим можно устанавливать отдельно для каждого канала с помощью регистров 9—22. Настройки для каждого канала учитываются только в том случае, если регистр 5 (общие настройки режимов входов) находится в состоянии "0", т.е. имеет значение по умолчанию. | |||
В любом режиме работы текущее состояние кнопок можно получить чтением регистров Discrete Inputs 0—13 (см. таблицу ниже). | |||
=== Карта регистров === | |||
{| border="1" class="wikitable" style="text-align:center" | |||
!Регистр / адрес | |||
!тип | |||
!чтение/запись | |||
!значение по умолчанию | |||
!формат | |||
!назначение | |||
|- | |||
| 0—13 || coil || RW || - || 1 или 0|| состояние реле 1—14 | |||
|- | |||
| 0—13 || discrete || R || - || 1 или 0 | |||
|| состояние входа 1—14 | |||
|- | |||
| 5 || holding || RW || 0 || '''0''': кнопки без фиксации | |||
'''1''': выключатель с фиксацией | |||
'''3''': отключить управление | |||
|| режим работы кнопок | |||
|- | |||
| 6 | |||
(только в прошивках 1.5.3 и позднее) | |||
|| holding || RW || 0 || '''0''': не сохранять состояние реле при отключении питания | |||
'''1''': сохранять состояние реле при отключении питания | |||
|| режим работы реле при отключении питания | |||
|- | |||
| 8 || holding || RW || 0 || секунды || таймаут для безопасного режима | |||
|- | |||
| 9—22 || holding || RW || 0 || '''0''': кнопки без фиксации | |||
'''1''': выключатель с фиксацией | |||
'''3''': отключить управление | |||
|| режим работы входа N; | |||
в регистре 5 должен быть записан "0" | |||
|- | |||
| 32—45|| input || R || 0 || 16-bit unsigned int || счетчик нажатий входа 1—14 | |||
|- | |||
| 120 (0x78) || holding || RW || 0 || отличное от 0 || запись в регистр вызывает перезагрузку модуля без сохранения состояния | |||
|- | |||
| 121 (0x79) || holding || R || - || мВ || текущее напряжение питания модуля | |||
|- | |||
| 128 (0x80) || holding || RW || 1 || 1—247 | |||
|| Modbus-адрес устройства | |||
|- | |||
| 200-206 || holding || R || {'W','B','M','R','1','4'} || || сигнатура | |||
|- | |||
| 220-241 || holding || R || || __date__ __time__|| дата сборки прошивки | |||
|- | |||
|} | |||
По адресу 200 лежит сигнатура релейного модуля длиной 6 байт, соответствующая строке "WBMR14". Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus. | |||
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. | |||
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Oct 10 2016 13:31:55'). Длина записи — 21 регистр. | |||
Значение состояния каждого реле хранится в регистрах флагов (coil). У 1-го реле адрес регистра 0, у 2-го — 1 и т.д. | |||
== Примеры программирования == | == Примеры программирования == | ||
=== Пишем простой скрипт === | === Пишем простой скрипт === | ||
Попробуем перенести логику управления контактами реле модуля на контроллер Wiren Board. Для этого мы перейдем в режим, когда внешнее управление релейным модулем отключено, и будем считывать состояние входов модуля и соответствующим образом переключать реле. <!--Оценим затем, насколько этот способ управления окажется дольше, чем при переключении средствами релейного модуля.--> | Попробуем перенести логику управления контактами реле модуля на контроллер Wiren Board. Для этого мы перейдем в режим, когда внешнее управление релейным модулем отключено, и будем считывать состояние входов модуля и соответствующим образом переключать реле. <!--Оценим затем, насколько этот способ управления окажется дольше, чем при переключении средствами релейного модуля.--> | ||
MQTT-названия устройств и их элементов управления можно найти в разделе Settings | MQTT-названия устройств и их элементов управления можно найти в разделе Settings веб-интерфейса (см. [[MQTT]]). | ||
В качестве альтернативного способа можно в командной строке подписаться на все топики (/#) командой | В качестве альтернативного способа можно в командной строке подписаться на все топики (/#) командой | ||
Строка 215: | Строка 315: | ||
service wb-mqtt-serial start | service wb-mqtt-serial start | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Проверяем | Проверяем: реле модуля не должны реагировать на нажатие кнопки, соединяющей выводы 1 и GND. Однако при этом в очереди публикуются сообщения о состоянии входа Input 1: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
/devices/wb-mr14_1/controls/Input 1 1 | /devices/wb-mr14_1/controls/Input 1 1 | ||
Строка 258: | Строка 358: | ||
<!-- TODO: это всё конечно адский ад и набор плохих практик. Так делать не стоит, раздел переписать. Правильный способ - смотреть на изменение Input 1 Counter. --> | <!-- TODO: это всё конечно адский ад и набор плохих практик. Так делать не стоит, раздел переписать. Правильный способ - смотреть на изменение Input 1 Counter. --> | ||
Давайте усложним задачу и напишем скрипт, который будет включать и выключать основное освещение (реле 3), но если кнопка нажата два раза подряд в течение полутора секунд, то будет включено дополнительное освещение (реле 4). Нажатие на кнопку через продолжительное время отключает основное, а повторное нажатие в течение полутора секунд | Давайте усложним задачу и напишем скрипт, который будет включать и выключать основное освещение (реле 3), но если кнопка нажата два раза подряд в течение полутора секунд, то будет включено дополнительное освещение (реле 4). Нажатие на кнопку через продолжительное время отключает основное освещение, а повторное нажатие в течение полутора секунд - дополнительное. Для этого мы используем компонент Input 3 counter и таймер, управляемый функциями setTimeout()/clearTimeout)() (подробнее смотрите на [https://github.com/contactless/wb-rules странице описания wb-rules в Github.]) | ||
В модуле реле WB-MR14 режим работы можно задавать не только для всех входов сразу, но и для отдельных входов. При этом общий режим (регистр хранения 5) должен быть 0. А для отдельного входа 3 (и 4) — значение 3 (управление только контроллером). | В модуле реле WB-MR14 режим работы можно задавать не только для всех входов сразу, но и для отдельных входов. При этом общий режим (регистр хранения 5) должен быть 0. А для отдельного входа 3 (и 4) — значение 3 (управление только контроллером). | ||
Строка 305: | Строка 405: | ||
}); | }); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Периферийные устройства с интерфейсом RS-485 серии WB-xxxx |Назад к списку периферийных устройств]] |