237
правок
(Отметить эту версию для перевода) |
м |
||
Строка 91: | Строка 91: | ||
<!--T:18--> | <!--T:18--> | ||
<syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ | <syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a0x00 -t0x06 -r0x80 0x02</syntaxhighlight> | ||
Где 0x02 - адрес, который нужно задать. | Где 0x02 - адрес, который нужно задать. | ||
Ответ: | Ответ: | ||
<syntaxhighlight lang="bash">Data to write: 0x2 | <syntaxhighlight lang="bash">Data to write: 0x2 | ||
Opening /dev/ | Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | ||
[00][06][00][80][00][02][08][32] | [00][06][00][80][00][02][08][32] | ||
Waiting for a confirmation... | Waiting for a confirmation... | ||
Строка 106: | Строка 106: | ||
<!--T:20--> | <!--T:20--> | ||
Пример '''неправильного''' использования команды: | Пример '''неправильного''' использования команды: | ||
<syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ | <syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a0x00 -t0x06 -r0x80</syntaxhighlight> | ||
Здесь не указан адрес, который нужно задать устройству и устройство получит неизвестный адрес. Для исправления, нужно обратиться к устройству по специальному адресу 0x00 (см. первую команду). | Здесь не указан адрес, который нужно задать устройству и устройство получит неизвестный адрес. Для исправления, нужно обратиться к устройству по специальному адресу 0x00 (см. первую команду). | ||
Строка 114: | Строка 114: | ||
<!--T:22--> | <!--T:22--> | ||
<syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ | <syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a2 -t0x03 -r0x80</syntaxhighlight> | ||
Ответ: | Ответ: | ||
<syntaxhighlight lang="bash">Opening /dev/ | <syntaxhighlight lang="bash">Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | ||
[02][03][00][80][00][01][85][D1] | [02][03][00][80][00][01][85][D1] | ||
Waiting for a confirmation... | Waiting for a confirmation... | ||
Строка 128: | Строка 128: | ||
<!--T:24--> | <!--T:24--> | ||
<syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ | <syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r200 -c 6</syntaxhighlight> | ||
Ответ: | Ответ: | ||
<syntaxhighlight lang="bash">Opening /dev/ttyAPP1 at 9600 bauds (N, 8, 2) | <syntaxhighlight lang="bash">Opening /dev/ttyAPP1 at 9600 bauds (N, 8, 2) | ||
Строка 139: | Строка 139: | ||
<!--T:25--> | <!--T:25--> | ||
В ответе мы получили 6 16-битных значений, в каждом из которых содержится код одного ASCII-символа. Преобразуем их, заменив начальные '''0x00''' на '''/x''' и удалив пробелы, к виду \x57 и т.д., который понятен команде echo, и выведем на экран получившееся: | В ответе мы получили 6 16-битных значений, в каждом из которых содержится код одного ASCII-символа. Преобразуем их, заменив начальные '''0x00''' на '''/x''' и удалив пробелы, к виду \x57 и т.д., который понятен команде echo, и выведем на экран получившееся: | ||
<syntaxhighlight lang="bash">echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ | <syntaxhighlight lang="bash">echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 \ | ||
-a1 -t0x03 -r200 -c 6 | \ | -a1 -t0x03 -r200 -c 6 | \ | ||
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'`| xxd -r -p </syntaxhighlight> | grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'`| xxd -r -p </syntaxhighlight> | ||
Строка 153: | Строка 153: | ||
4. Определим текущий адрес устройства, подключенного к Wiren Board. Адрес нам неизвестен и мы не хотим его менять. | 4. Определим текущий адрес устройства, подключенного к Wiren Board. Адрес нам неизвестен и мы не хотим его менять. | ||
Для этого в командной строке выполним циклическую команду опроса регистра 0x80 устройств с адресами с 1 по 247: | Для этого в командной строке выполним циклическую команду опроса регистра 0x80 устройств с адресами с 1 по 247: | ||
<syntaxhighlight lang="bash">root@wirenboard:~# for i in {1..247}; do modbus_client -mrtu /dev/ | <syntaxhighlight lang="bash">root@wirenboard:~# for i in {1..247}; do modbus_client -mrtu /dev/ttyRS485-1 --debug -a$i -t3 -r0x80 -s2 -pnone; done 2>/dev/null | grep Data: </syntaxhighlight> | ||
Ответ: | Ответ: | ||
<syntaxhighlight lang="bash"> Data: 0x0072</syntaxhighlight> | <syntaxhighlight lang="bash"> Data: 0x0072</syntaxhighlight> | ||
Строка 161: | Строка 161: | ||
---- | ---- | ||
5. На модуле WB-MR14 включим реле с номером 6 (адреса регистрв флагов начинаются с нуля, помним об этом!). Используем для этого команду 0x05 (Write Single Coil): | 5. На модуле WB-MR14 включим реле с номером 6 (адреса регистрв флагов начинаются с нуля, помним об этом!). Используем для этого команду 0x05 (Write Single Coil): | ||
<syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ | <syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x05 -r0x05 0x01</syntaxhighlight> | ||
Ответ: | Ответ: | ||
<syntaxhighlight lang="bash">Data to write: 0x1 | <syntaxhighlight lang="bash">Data to write: 0x1 | ||
Opening /dev/ | Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | ||
[01][05][00][05][FF][00][9C][3B] | [01][05][00][05][FF][00][9C][3B] | ||
Waiting for a confirmation... | Waiting for a confirmation... | ||
Строка 178: | Строка 178: | ||
<!--T:31--> | <!--T:31--> | ||
<syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ | <syntaxhighlight lang="bash">modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x0f -r0x00 -c 14 0x00FF 0x0000 0x00FF 0x0000 0x00FF 0x0000 0x00FF 0x0000 0x00FF 0x0000 0x00FF 0x0000 0x00FF 0x0000</syntaxhighlight> | ||
Ответ: | Ответ: | ||
<syntaxhighlight lang="bash">Data to write: 0xff 0x00 0xff 0x00 0xff 0x00 0xff 0x00 0xff 0x00 0xff 0x00 0xff 0x00 | <syntaxhighlight lang="bash">Data to write: 0xff 0x00 0xff 0x00 0xff 0x00 0xff 0x00 0xff 0x00 0xff 0x00 0xff 0x00 | ||
Opening /dev/ | Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | ||
[01][0F][00][00][00][0E][02][55][15][1A][97] | [01][0F][00][00][00][0E][02][55][15][1A][97] | ||
Waiting for a confirmation... | Waiting for a confirmation... |
правок