Sidebar

manual:appendix:items:modbus

15 modbus.get parameters

Overview

The table below presents details of the modbus.get[] item parameters.

Parameters

ParameterDescriptionDefaultsExample
endpoint Protocol and address of the endpoint, defined as protocol://connection_string

Possible protocol values: rtu, ascii (Agent 2 only), tcp

Connection string format:

with tcp - address:port
with serial line: rtu, ascii - port_name:speed:params
where
'speed' - 1200, 9600 etc
'params' - data bits (5,6,7 or 8), parity (n,e or o for none/even/odd), stop bits (1 or 2)
protocol: none

rtu/ascii protocol:
port_name: none
speed: 115200
params: 8n1

tcp protocol:
address: none
port: 502
tcp://192.168.6.1:511
tcp://192.168.6.2
tcp://[::1]:511
tcp://::1
tcp://localhost:511
tcp://localhost
rtu://COM1:9600:8n
ascii://COM2:1200:7o2
rtu://ttyS0:9600
ascii://ttyS1
slave id Modbus address of the device it is intended for (1 to 247), see MODBUS Messaging Implementation Guide (page 23)

tcp device (not GW) will ignore the field
serial: 1

tcp: 255 (0xFF)
2
function Empty or value of a supported function:

1 - Read Coil,
2 - Read Discrete Input,
3 - Read Holding Registers,
4 - Read Input Registers
empty 3
address Address of the first registry, coil or input.

If 'function' is empty, then 'address' should be in range for:
Coil - 00001 - 09999
Discrete input - 10001 - 19999
Input register - 30001 - 39999
Holding register - 40001 - 49999

If 'function' is not empty, the 'address' field will be from 0 till 65535 and used without modification (PDU)
empty function: 00001

non-empty function: 0
9999
count Count of sequenced 'type' which will be read from device, where:

for Coil or Discrete input the 'type' = 1 bit
for other cases: (count*type)/2 = real count of registers for reading
If 'offset' is not 0, the value will be added to 'real count'
Acceptable range for 'real count' is 1:65535
1 2
type Data type:

for Read Coil and Read Discrete Input - bit

for Read Holding Registers and Read Input Registers:
int8 - 8bit
uint8 - 8bit (unsigned)
int16 - 16bit
uint16 - 16bit (unsigned)
int32 - 32bit
uint32 - 32bit (unsigned)
float - 32bit
uint64 - 64bit (unsigned)
double - 64bit
bit
uint16
uint64
endianness Endianness type:
be - Big Endian
le - Little Endian
mbe - Mid-Big Endian
mle - Mid-Little Endian

Limitations:
for 1 bit - be
for 8 bits - be,le
for 16 bits - be,le
be le
offset Number of registers, starting from 'address', the result of which will be discarded.

The size of each register is 16bit (needed to support equipment that does not support random read access).
0 4