Modbus-client

Материал из Wiren Board

Утилита modbus-client

Общая информация

Утилита modbus-client используется для коммуникации по протоколам Modbus RTU и Modbus TCP из командной строки. Утилита modbus-client поставляется вместе с набором ПО контроллера Wiren Board. Утилита написана на C и использует открытую библиотеку libmodbus. Форк этой утилиты, поставляемый с устройствами Wiren Board хранится здесь. Основная задача этой утилиты — ее использование в качестве отладочного средства или средства настройки Modbus-устройств. Поскольку на функционирующем контроллере Wiren Board запущен драйвер modbus, его необходимо останавливать перед работой с modbus-client — вместе они не могут использовать один и тот же порт RS-485. Команды останова сервиса

для WB4:

service wb-homa-modbus stop

и для WB5:

service wb-mqtt-serial stop

Вызов и аргументы командной строки

Вызов 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
  • Первый аргумент --debug — произвольный. Он может указываться в любой позиции и включает отладку, выводя на экран шестнадцатеричные коды отправляемых и принимаемых данных.
  • Следующий аргумент -m. Он должен указываться первым в командной строке, или сразу после --debug, если первый аргумент — --debug.

Примеры использования