Перейти к содержанию

Навигация

Sensors Modbus Management: различия между версиями

Нет описания правки
(Отметить эту версию для перевода)
 
(не показано 9 промежуточных версий 4 участников)
Строка 5: Строка 5:
{{DISPLAYTITLE:Управление датчиками Wirenboard по протоколу Modbus}}
{{DISPLAYTITLE:Управление датчиками Wirenboard по протоколу Modbus}}


== Параметры Modbus == <!--T:2-->
== Карта регистров датчиков WB-MS и WB-MSW == <!--T:2-->
 
=== Modbus-адрес === <!--T:3-->
Modbus-адрес устройств Wiren Board легко определить — он нанесен на наклейке (адрес указан в десятичном формате). Новый адрес устройства записывается командой WRITE_SINGLE_REGISTER в регистр хранения (holding register) с адресом 128 (0x80). Подробно о том, как определить (если адрес был изменен) или изменить Modbus-адрес модуля, написано на странице [[Определение и изменение Modbus-адреса устройств Wirenboard]].
 
=== Команды Modbus, поддерживаемые устройством === <!--T:4-->
 
<!--T:5-->
Датчики Wirenboard поддерживают все основные команды Modbus. Подробнее смотрите здесь: [[Протокол Modbus#Коды функций чтения и записи регистров|Коды функций чтения и записи регистров]].


=== Карта регистров хранения (Holding Registers)=== <!--T:6-->
=== Карта регистров хранения (Holding Registers)=== <!--T:6-->
Строка 166: Строка 158:
| +
| +
|
|
|-
|86
|input
|R
|0
|0 или 1
|'''Служебный регистр''', отсутствует в большинстве устройств.
Текущий канал работы датчика уровня шума: 0 - канал низкоуровневых шумов, 1 - канал высокоуровневых шумов
|colspan="5"|msw v.3.4
|4.15.0
|-
|87
|input
|R
|0
|
|Служебный регистр HOLD_REG_SPL_HIGHGAIN_RAW_INT
|colspan="5"|msw v.3.4
|4.15.0
|-
|-
|88
|88
Строка 267: Строка 278:


<!--T:8-->
<!--T:8-->
|97||holding||RW||0 — 10||c
|97||holding||RW||0||0 — 10 c
||Период между вспышками сигнальных светодиодов  
||Период между вспышками сигнальных светодиодов  
| -
| -
Строка 279: Строка 290:


<!--T:9-->
<!--T:9-->
|98||holding||RW||0 — 50||мс
|98||holding||RW||0||0 — 50 мс
||Длительность вспышки светодиодов  
||Длительность вспышки светодиодов  
| -
| -
Строка 403: Строка 414:
| 112 || holding || RW || 2 || || количество стоп-битов порта RS-485. Допустимые значения: 1, 2  
| 112 || holding || RW || 2 || || количество стоп-битов порта RS-485. Допустимые значения: 1, 2  
|colspan="5"|все
|colspan="5"|все
|-
| 113 || holding || RW || 8 || мс || Задержка перед отправкой ответного пакета по RS-485
|colspan="5"|все
|4.15.0
|-
|-
| 120 (0x78) || holding || RW || 0 ||  отличное от 0 || запись в регистр вызывает перезагрузку модуля без сохранения состояния
| 120 (0x78) || holding || RW || 0 ||  отличное от 0 || запись в регистр вызывает перезагрузку модуля без сохранения состояния
Строка 449: Строка 464:
|-
|-
|280||input||R|| ||
|280||input||R|| ||
||Максимальное значение датчика движения с АЦП
||Максимальное значение датчика движения за установленное время окна (Max motion)
| -
| -
| -
| -
Строка 458: Строка 473:
|-
|-
|281||input||R|| ||
|281||input||R|| ||
||Значение датчика движения с АЦП
||Служебный регистр: сырое значение с АЦП датчика движения
| -
| -
| -
| -
Строка 476: Строка 491:
|-
|-
|283||input||R|| ||
|283||input||R|| ||
||Текущее усредненное значение движения в условных единицах
||Текущее усредненное значение движения в условных единицах (Current motion)
| -
| -
| -
| -
Строка 486: Строка 501:


<!--T:17-->
<!--T:17-->
|}
Входы 1-W устройства можно сконфигурировать как счётные входы:
{| class="wikitable"
!Регистр/ адрес
!Тип
!Чтение/ запись
!Значение по умолчанию
!Формат
!Назначение
!Версии прошивки
|-
|275
|holding
|RW
|0
|0 или 1
|Режим входа №1: 0 - 1-wire, 1 - дискретный вход
| rowspan="6" |>=4.0.0
|-
|276
|holding
|RW
|0
|0 или 1
|Режим входа №2: 0 - 1-wire, 1 - дискретный вход
|-
|277
|input
|R
|
|16-bit unsigned int
|Счетчик срабатываний для входа №1
|-
|278
|input
|R
|
|16-bit unsigned int
|Счетчик срабатываний для входа №2
|-
|0
|discrete
|R
|
|0 или 1
|Текущее состояние входа №1: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0.
|-
|1
|discrete
|R
|
|0 или 1
|Текущее состояние входа №2: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0.
|}
|}


Строка 511: Строка 581:
|4.1.0
|4.1.0
|-
|-
| 10 || 1 || style="text-align:left" | Включение зеленого светодиода || WB-MSW v.3  
| 10 || 1 || style="text-align:left" | Включение красного светодиода || WB-MSW v.3  
|
|
|-
|-
| 11 || 1 || style="text-align:left" | Включение красного светодиода || WB-MSW v.3  
| 11 || 1 || style="text-align:left" | Включение зеленого светодиода || WB-MSW v.3  
|
|
|-
|-
Строка 546: Строка 616:
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.


== Управление модулем из командной строки == <!--T:24-->
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]].
=== Пример чтения регистров === <!--T:25-->
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный шестнадцатеричный ответ в символьную строку:
<!--T:26-->
<syntaxhighlight lang="bash">echo  -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 \
-a1 -t0x03 -r200 -c 6 | \
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight>
<!--T:27-->
В результате выполнения команды получаем строку, например '''WBMS'''. Модуль WB-MS в примере имеет Modbus-адрес 1.


</translate>
</translate>
100

правок