|
|
Строка 151: |
Строка 151: |
|
| |
|
| {{:Common_Modbus_Registers}} | | {{:Common_Modbus_Registers}} |
|
| |
|
| |
|
| |
|
| Регистры настройки параметров обмена данными по RS-485 поддерживаются начиная с прошивки версии 1.6.0 | | Регистры настройки параметров обмена данными по RS-485 поддерживаются начиная с прошивки версии 1.6.0 |
|
| |
|
|
| |
|
| |
| <!--T:29-->
| |
| По адресу 200 лежит сигнатура релейного модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:
| |
|
| |
| <!--T:30-->
| |
| {| class="wikitable"
| |
| ! style="font-weight: bold;" | Модуль
| |
| ! style="font-weight: bold;" | Сигнатура
| |
| |-
| |
|
| |
| <!--T:31-->
| |
| |WB-MRPS6
| |
| |MRPS6
| |
| |-
| |
| | WB-MR6C
| |
| | WBMR6
| |
| |-
| |
| | WB-MR3xV
| |
| | WBMR3
| |
| |-
| |
| | WB-MR6xV
| |
| | WBMR6
| |
| |-
| |
| | WB-MR14
| |
| | WBMR14
| |
| |-
| |
| | WB-MR11
| |
| | WBMR11
| |
| |-
| |
| | WB-MRM2
| |
| | WBMR2
| |
| WBMR2m
| |
| |}
| |
|
| |
| <!--T:32-->
| |
| Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00.
| |
| Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.
| |
|
| |
| <!--T:33-->
| |
| Значение состояния каждого реле хранится в регистрах флагов (coil). У 1-го реле адрес регистра 0, у 2-го — 1 и т.д.
| |
|
| |
| == Управление модулем из командной строки == <!--T:34-->
| |
| Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]].
| |
|
| |
| === Пример чтения регистров === <!--T:35-->
| |
| Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Сервис wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный шестнадцатеричный ответ в символьную строку:
| |
|
| |
| <!--T:36-->
| |
| <syntaxhighlight lang="bash">echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \
| |
| -a1 -t0x03 -r200 -c 6 | \
| |
| grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight>
| |
|
| |
| <!--T:37-->
| |
| В результате выполнения команды получаем строку, например '''WBMR6'''. Релейный модуль WB-MR6 имеет Modbus-адрес 1.
| |
|
| |
| === Выбор типа управления внешними входами === <!--T:38-->
| |
| В релейных модулях предусмотрено два режима управления каналами реле: с помощью внешних входов и по протоколу RS-485.
| |
| В релейных модулях можно выбрать режим 0, когда ко внешнему входу подключена кнопка (без фиксации), или режим 1, когда для управления используется обычный выключатель (с фиксацией). Режим 3 отключает внешнее управление, но при этом все равно сохраняется возможность управления по RS-485 и чтение состояния внешних входов. По умолчанию включен режим 0.
| |
|
| |
| <!--T:39-->
| |
| В режиме внешнего управления реле срабатывает по падению логического уровня: к внешним входам подключены резисторы подтяжки к линии +5V и реле соответствующего канала срабатывает при соединении входа с GND.
| |
| Состояние реле каждого канала хранится в памяти контроллера до перезагрузки, по умолчанию при включении питания все реле выключены. После инициализации модуля опрашиваются внешние входы и реле всех каналов переводятся в соответствующее состояние.
| |
|
| |
| <!--T:40-->
| |
| Тип внешнего управления можно выбрать для каждого канала отдельно через регистры 9 — (9+x). Для этого в holding-регистре 5 должно быть записано значение 0:
| |
| <syntaxhighlight lang="bash">
| |
| modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a1 -t0x06 -r5 0
| |
| </syntaxhighlight>
| |
|
| |
| <!--T:41-->
| |
| Инициализировать регистр при старте можно и через настройки web-интерфейса, смотрите страницу [[RS-485:Настройка_через_веб-интерфейс]].
| |
| </translate> | | </translate> |