Modbus-client: различия между версиями
Admin (обсуждение | вклад) |
м (→Примеры использования с оборудованием Wiren Board: Вынес примеры в отдельную статью.) |
||
(не показано 17 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:Утилита «modbus_client»}} | |||
__FORCETOC__ | |||
{{DISPLAYTITLE: | |||
'''modbus_client''' — утилита для опроса устройств по протоколам Modbus RTU и Modbus TCP из командной строки. | '''modbus_client''' — утилита для опроса устройств по протоколам Modbus RTU и Modbus TCP из командной строки. | ||
== Подготовка к работе == | |||
{{Wbincludes:Modbus: Preparing for work}} | |||
== Аргументы командной строки == | |||
Вызов <code>modbus_client</code> без аргументов выдает краткое описание возможных аргументов команды: | Вызов <code>modbus_client</code> без аргументов выдает краткое описание возможных аргументов команды: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Строка 42: | Строка 28: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Значения параметров (адрес, таймаут, тип функции и т.д.) можно указывать как в шестнадцатеричном (0x**), так и в десятичном виде. | |||
Значения параметров (адрес, таймаут, тип функции и т.д.) можно указывать как в шестнадцатеричном (0x**), так и в десятичном виде. | |||
Функции аргументов: | |||
* | * '''--debug''' — произвольный. Он может указываться в любой позиции и включает отладку, выводя на экран шестнадцатеричные коды отправляемых и принимаемых данных. | ||
* | * '''-m''' — определяет тип используемого протокола '''-mrtu''' — Modbus RTU, '''-mtcp''' — Modbus TCP. Он должен указываться первым в командной строке, или вторым, если первый аргумент — '''--debug''' или имя файла порта RS-485. | ||
* | * '''-a''' — задает Modbus-адрес устройства, к которому мы обращаемся. Если аргумент не используется, то по умолчанию выбирается адрес 0x01. | ||
* | * '''-с''' — определяет, какое количество элементов мы запрашиваем. По умолчанию — один. | ||
* | * '''-r''' — задает начальный адрес для чтения или записи. По умолчанию используется значение 100 (0x64). | ||
* | * '''-t''' — указывает код функции Modbus. Кратко они перечислены в выводе modbus_client, подробнее значения кодов описаны на странице «[[Special:MyLanguage/Протокол Modbus|Протокол Modbus]]». | ||
* | * '''-o''' — задает таймаут в миллисекундах (по умолчанию 1000). | ||
* | * '''-0''' — (ноль) уменьшает на единицу адрес, задаваемый аргументом -r. Это может быть полезным при работе с устройствами с нестандартной адресацией, например, с диапазоном адресов 1 — 65536 вместо привычного 0 — 65535. | ||
Затем указываются специфические параметры протокола (Modbus RTU или Modbus TCP). Несмотря на информацию, выводимую в подсказке, эти параметры также начинаются со знака '-' (минус). | Затем указываются специфические параметры протокола (Modbus RTU или Modbus TCP). Несмотря на информацию, выводимую в подсказке, эти параметры также начинаются со знака '-' (минус). | ||
Для Modbus RTU: | Для Modbus RTU: | ||
* '''-b''' — скорость передачи данных по последовательной линии (по умолчанию — 9600). | * '''-b''' — скорость передачи данных по последовательной линии (по умолчанию — 9600). | ||
* '''-d''' — количество передаваемых бит данных (7 или 8, по умолчанию — 8). | * '''-d''' — количество передаваемых бит данных (7 или 8, по умолчанию — 8). | ||
Строка 67: | Строка 48: | ||
* '''-p''' — контроль четности ('''-p none''' — нет проверки, '''-p even''' — передается бит контроля на четность, '''-p odd''' — передается бит контроля на нечетность). По умолчанию передается бит контроля на четность(E). | * '''-p''' — контроль четности ('''-p none''' — нет проверки, '''-p even''' — передается бит контроля на четность, '''-p odd''' — передается бит контроля на нечетность). По умолчанию передается бит контроля на четность(E). | ||
Для Modbus TCP: | Для Modbus TCP: | ||
* '''-p''' — номер TCP-порта устройства, с которым взаимодействует контроллер. | * '''-p''' — номер TCP-порта устройства, с которым взаимодействует контроллер. | ||
Далее следует имя файла порта RS-485 или адрес хоста, а в конце необязательный параметр — данные для функций записи. | |||
== Примеры использования с оборудованием Wiren Board == | |||
Примеры использования утилиты смотрите в статье [[Working with WB devices without a controller#Работа из ОС Linux с помощью modbus_client |Работа с устройствами Wiren Board без контроллера]]. | |||
== Примеры использования | |||
[ | |||
Версия 22:01, 11 января 2021
modbus_client — утилита для опроса устройств по протоколам Modbus RTU и Modbus TCP из командной строки.
Подготовка к работе
Wbincludes:Modbus: Preparing for work
Аргументы командной строки
Вызов modbus_client
без аргументов выдает краткое описание возможных аргументов команды:
modbus_client [--debug] [-m {rtu|tcp}] [-a<slave-addr=1>] [-c<read-no>=1]
[-r<start-addr>=100] [-t<f-type>] [-o<timeout-ms>=1000] [{rtu-params|tcp-params}] serialport|host [<write-data>]
NOTE: if first reference address starts at 0, set -0
f-type:
(0x01) Read Coils, (0x02) Read Discrete Inputs, (0x05) Write Single Coil
(0x03) Read Holding Registers, (0x04) Read Input Registers, (0x06) WriteSingle Register
(0x0F) WriteMultipleCoils, (0x10) Write Multiple register
rtu-params:
b<baud-rate>=9600
d{7|8}<data-bits>=8
s{1|2}<stop-bits>=1
p{none|even|odd}=even
tcp-params:
p<port>=502
Examples (run with default mbServer at port 1502):
Write data: modbus_client --debug -mtcp -t0x10 -r0 -p1502 127.0.0.1 0x01 0x02 0x03
Read that data: modbus_client --debug -mtcp -t0x03 -r0 -p1502 127.0.0.1 -c3
Значения параметров (адрес, таймаут, тип функции и т.д.) можно указывать как в шестнадцатеричном (0x**), так и в десятичном виде.
Функции аргументов:
- --debug — произвольный. Он может указываться в любой позиции и включает отладку, выводя на экран шестнадцатеричные коды отправляемых и принимаемых данных.
- -m — определяет тип используемого протокола -mrtu — Modbus RTU, -mtcp — Modbus TCP. Он должен указываться первым в командной строке, или вторым, если первый аргумент — --debug или имя файла порта RS-485.
- -a — задает Modbus-адрес устройства, к которому мы обращаемся. Если аргумент не используется, то по умолчанию выбирается адрес 0x01.
- -с — определяет, какое количество элементов мы запрашиваем. По умолчанию — один.
- -r — задает начальный адрес для чтения или записи. По умолчанию используется значение 100 (0x64).
- -t — указывает код функции Modbus. Кратко они перечислены в выводе modbus_client, подробнее значения кодов описаны на странице «Протокол Modbus».
- -o — задает таймаут в миллисекундах (по умолчанию 1000).
- -0 — (ноль) уменьшает на единицу адрес, задаваемый аргументом -r. Это может быть полезным при работе с устройствами с нестандартной адресацией, например, с диапазоном адресов 1 — 65536 вместо привычного 0 — 65535.
Затем указываются специфические параметры протокола (Modbus RTU или Modbus TCP). Несмотря на информацию, выводимую в подсказке, эти параметры также начинаются со знака '-' (минус).
Для Modbus RTU:
- -b — скорость передачи данных по последовательной линии (по умолчанию — 9600).
- -d — количество передаваемых бит данных (7 или 8, по умолчанию — 8).
- -s — количество стоповых битов (1 или 2, по умолчанию — 1).
- -p — контроль четности (-p none — нет проверки, -p even — передается бит контроля на четность, -p odd — передается бит контроля на нечетность). По умолчанию передается бит контроля на четность(E).
Для Modbus TCP:
- -p — номер TCP-порта устройства, с которым взаимодействует контроллер.
Далее следует имя файла порта RS-485 или адрес хоста, а в конце необязательный параметр — данные для функций записи.
Примеры использования с оборудованием Wiren Board
Примеры использования утилиты смотрите в статье Работа с устройствами Wiren Board без контроллера.