wb_editors
14 355
правок
(Новая страница: «<syntaxhighlight lang="bash">root@wirenboard:~# service wb-mqtt-serial stop</syntaxhighlight> Let's try to determine the current address of the module. To do this…») |
FuzzyBot (обсуждение | вклад) м (FuzzyBot переименовал страницу Определение и изменение Modbus-адреса устройств Wirenboard/en в Wiren Board Device Modbus Address/en без оставления перенаправления: Часть переводимой страницы Определение и изменение Modbus-адреса устройств Wirenboard.) |
||
(не показано 5 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
<languages/> | <languages/> | ||
See also[[UART_Communication_Settings/en|UART_Communication_Settings]]. | See also [[UART_Communication_Settings/en|UART_Communication_Settings]]. | ||
== Сurrent Modbus address resolution == | == Сurrent Modbus address resolution == | ||
Строка 16: | Строка 16: | ||
== | == Modbus address change == | ||
We can set the device address we need (for example, 1) with the command | |||
<syntaxhighlight lang="bash">root@wirenboard:~# modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a0 -t0x06 -r0x80 1</syntaxhighlight> | <syntaxhighlight lang="bash">root@wirenboard:~# modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a0 -t0x06 -r0x80 1</syntaxhighlight> | ||
We use the broadcast address 0 ( -a0) and Modbus RTU command WRITE_SINGLE_REGISTER with code 6 ( -t0x06) to write the address. In register 0x80 ( -r0x80) we write the value 1. | |||
''' | '''Using address 0 will reset all addresses to all devices on the bus! Never use this command if more than one device is connected to the RS-485 port!''' | ||
<syntaxhighlight lang="bash">root@wirenboard:~# modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a0 -t0x06 -r0x80 1 | <syntaxhighlight lang="bash">root@wirenboard:~# modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a0 -t0x06 -r0x80 1 | ||
Строка 32: | Строка 32: | ||
ERROR occured! | ERROR occured! | ||
</syntaxhighlight> | </syntaxhighlight> | ||
The error message should not be frightening: Modbus devices do not respond to commands sent to the broadcast address. Check if the address is still in the address register: | |||
<syntaxhighlight lang="bash">root@wirenboard:~# modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a1 -t0x03 -r0x80 | <syntaxhighlight lang="bash">root@wirenboard:~# modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a1 -t0x03 -r0x80 | ||
Opening /dev/ttyAPP1 at 9600 bauds (N, 8, 2) | Opening /dev/ttyAPP1 at 9600 bauds (N, 8, 2) | ||
Строка 41: | Строка 41: | ||
Data: 0x0001 | Data: 0x0001 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Fine, the device with address 0x01 returned value 1 when reading register 0x80 (we remember that one register stores two eight-bit values, so the output of the command contains four hexadecimal digits: 0x0001). The yellow led blinked again when referring to the device. |