Modbus utilities

From embeddedTS Manuals


Modbus Linux register access program: mbpeekpoke

root@ts4700:/home/zpu# ./mbpeekpoke -?

Usage: mbpeekpoke -switch parameter [OPTIOSN] ...
Download and start a ZPU program.  Optionally persist the code
Default parameter values in [brackets]
  -?                     This help screen
  -b  bit_rate           Bit rate [9600]
                         300, 600, 1200, 2400, 4800, 9600, 19200
                         38400, 57600, 115200, 1000000, 4000000
  -c  connection         IP:Port IP address:port [127.0.0.1:7350]
                         Serial port [/dev/ttySP2]
  -D                     Device to access: [C]oil, [R]egister, [I]nput, [P]acket
  -d                     Display packet debugging information [Off]
  -f                     Register display output format:
                         'X' hex, 'S' signed decimal 'U' unsigned decimal [Hex]
  -h                     This help screen
  -n  number_of_items    number of items to read [1]
  -m  Board model #      7670 with serial [any other using TCP socket connection]
  -r  address            Read: Device @ specified address
  -s  slave_address      hexadecimal 00-f8; 00 is broadcast [0xf7]
  -v  data               value to write
  -V                     Verbose mode - display additional debug information
  -w  address            Write: Device @ specified address
 The (-w) write option requires a single (-v) variable
 The (-r) read option can read a number of items with the (-n) switch
 Both the -w & -r options may be used on the same or different addresses
 however, they must both use the same device (-D) and the write is performed first

Modbus Linux register access program for TS-7670: mbpeekpoke7670

root@ts4700:/home/zpu# ./mbpeekpoke7670 -?

Usage: mbpeekpoke7670 -switch parameter [OPTIOSN] ...
Default parameter values in [brackets]
  -?                     This help screen
  -b  bit_rate           Bit rate [9600]
                         300, 600, 1200, 2400, 4800, 9600, 19200
                         38400, 57600, 115200, 1000000, 4000000
  -h                     This help screen
  -n  number_of_items    number of items to read [1]
  -r  address            Read: Register @ specified hex address
  -s  slave_address      hexadecimal 00-f7; 00 is broadcast [0xf7]
  -u                     Use USB connection
  -v  data               value to write
  -w  address            Write: Register @ specified address
 The (-w) write option requires a single (-v) variable
 The (-r) read option can read a number of items with the (-n) switch


These programs are used to perform accesses to the Modbus devices register set. It allows the writing of arbitrary hex data to any hex register address one at a time and the reading of blocks of arbitrary data from any hex register addres displayed in hex, signed, or unsigned decimal.


Modbus Linux device configuration program: mb_config

root@ts4700:/home/zpu# ./mb_config -?

Usage: mb_config -switch paramater [OPTIOSN] ...
Configure a Modbus device for legacy mode by setting operational parameters
Default parameter values in [brackets]
  -?                     This help screen
  -b  bit_rate           Bit rate [9600]
                         300, 600, 1200, 2400, 4800, 9600, 19200
                         38400, 57600, 115200, 230400, 460800
                         1040000, 2080000, 4160000
  -C  Configuration      Model 1700: 8 character field starting @ DIO bit 7 thru 0
                         Use single letters 'T' Temperature; 'I' Input: 'O' Output
                         All Other model: Not required
  -c  connection IP:Port IP address:port [127.0.0.1:7350]
  -d                     Display packet debugging information [Off]
  -f  format (data)      Data format: 8N1, 8N2, 8E1, 8O1, [8N1]
  -h                     This help screen
  -i                     Display I/O accesses
  -I                     Inhibit actual writing
  -m  Board model #      7670 with serial [any other using TCP socket connection]
  -n                     Noninteractive mode [off]
  -p                     Display progress messages [Off]
  -s  slave_address      hexadecimal 00-f6; 00 is broadcast [0x10]
  -t  termination        Terminstion on / off [off]
  -v                     verboce output mode
  DIO Configration for Model TS-1700
root@ts4700:/home/zpu#

This program is used to perform configuration of a Modbus device. On older modbuc devices these settings (Slave address, Communications bit rate and data format, termination) would have been performed via DIP switches. This configuration information is stored in non-volatile memory on the device.


The primary difference in usage of these utilities depends on the hosting platform.

On SBC products using the XUART communications devices, the -c switch and parameter does not need to be specified, since the default communications port is correct.

On the TS-7670 with a standard UART communications device, the '-m 7670' switch should be specified. This allows the proper hardware setting for the RS-485 port to be utilized.

On SBC products with a host USB port for communications, the -c switch should be specified and paramater should be the USB to Serial communication device, which is generally '/dev/ttyACM0'. The '-s f6' switch and parameter is required since the unit operates at a different slave address when operating via USB. The bit rate does not need to be specified, since the USB port will operate at the fastest rate possible (up to approximately 1000000 bps).