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

м
→‎Примеры использования с оборудованием Wiren Board: Добавил пример чтения версии прошивки.
м (→‎Подготовка к работе: Заменил на включение.)
м (→‎Примеры использования с оборудованием Wiren Board: Добавил пример чтения версии прошивки.)
Строка 133: Строка 133:
| xxd -r -p
| xxd -r -p
</syntaxhighlight> не было нужно.
</syntaxhighlight> не было нужно.
=== Пример чтения версии прошивки ===
Прочтем версию прошивки из модуля с modbus-адресом 189. По адресу 250 хранится null-termitated строка максимальной длиной в 16 регистров. Прочтем 16 регистров, начиная с адреса 250, и преобразуем полученный шестнадцатеричный ответ в символьную строку:
<syntaxhighlight lang="bash">
export DEV_PORT=/dev/ttyRS485-1 #Correct this!
export DEV_ADDR=189 #Correct this!
echo  -e `modbus_client --debug -mrtu -pnone -s2 $DEV_PORT \
-a$DEV_ADDR -t0x03 -r250 -c 16 | \
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight>
В результате выполнения команды получаем строку, например '''1.3.1'''.


===Включение реле релейного модуля===
===Включение реле релейного модуля===


На модуле WB-MR14 включим реле с номером 6 (адреса регистрв флагов начинаются с нуля, помним об этом!). Используем для этого команду 0x05 (Write Single Coil):
На модуле WB-MR14 включим реле с номером 6 (адреса регистров флагов начинаются с нуля, помним об этом!). Используем для этого команду 0x05 (Write Single Coil):
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x05 -r0x05 0x01
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x05 -r0x05 0x01