Skip to content

Overview of Modbus RTU protocol

MindSphere supports the Modbus protocol for the MindConnect IoT2040 and MindConnect Nano plugin. You can select the protocol type Modbus RTU while adding a new data source in Asset Manager.

Note

Modbus configuration

The Modbus configuration view is only visible after a successful onboarding of the MindConnect IoT2040/Nano. The MindConnect Nano Version must be higher than V3.3.0.2.

The following picture shows the protocol selection in Asset Manager:

RTU protocol

For more information about how to create a new data source see chapter Adding a data source and data points

Modbus RTU data source parameter

In order to connect a Modbus RTU device, you need to select the Modbus RTU protocol and enter the following data source parameters:

Parameter Description
Serial Port Available serial ports:
- COM1
- COM2
Serial Type Supported serial communication standards:
- RS232
- RS422
- RS485
Baud rate Baud rate for serial communication:
- 9600
- 2400
- 4800
- 19200
- 38400
- 57600
- 115200
Data bits Data bits for serial communication:
- 5
- 6
- 7
- 8
Stop bits You can select the number of stop bits for serial communication:
- 1
- 2
Parity Parity for serial communication:
- Odd
- None
- Even
Termination Onboard termination:
- On
- Off

The following parameters are optional and can be adjusted for collecting data from slow Modbus devices:

Parameter Description
byteTimeout You can set the timeout interval between two consecutive bytes of the same message received from the Modbus device. If the delay between is longer than the given timeout, an error will be generated. Range: 500ms (default) … 2000ms
responseTimeout You can set the timeout interval used to wait for a response from the Modbus device. If the waiting before receiving the response is longer than the given timeout, an error will be generated. Range: 500ms (default) … 60000ms
responseSuspensionTime If a byte timout or a response timeout was detected, then this waiting time is added before the next request is started. During this time any response from the Modbus device will be flushed Range: 0ms … 45000ms. (default: 1000ms). For Modbus RTU it is recommended to set the value to 10000 ms. If the default value 0 ms is set, any incoming incorrect responses will not be destroyed.
requestDelay You can set the time between the response from the Modbus device and the next request to this Modbus device. Range: 0ms (default) … 10000ms

Pin assignment of Modbus protocols

The following table shows the pin assignment for the Modbus RTU protocol:

Pin RS 485 RS 422 RS 232
1 Data- Transmit / receive data TX- Transmitted data - (O) for Not supported
- (I/O) for half-duplex mode full-duplex mode
2 Data+ Transmit / receive TX+ Transmitted data + (O) for RxD Received data (I) data+ (I/O) for half-duplex full-duplex mode
mode
3 - RX+ Receive data + (I) for TxD Transmitted data (O)
full-duplex mode
4 - RX- Receive data - (I) for Not supported
full-duplex mode
5 M Signal ground M Signal ground M Ground
6 - - Not supported
7 - - Not supported
8 - - Not supported
9 - - Not supported

Modbus RTU data point parameter

In order to collect the data of your Modbus RTU device, you must add new data points.

The following picture shows the data point parameter window:

Modbus RTU

The following table shows the parameter of the Modbus RTU data point window:

Parameter Description
Data Type Data type supported by backend (e.g. INT).
Function Type Function type - depends on the type of the data (see manual of the Modbus device).
1: Read Coils
2: Read Inputs
3: Read Holding Registers
4: Read Input Registers
Currently function codes 1..4 are supported.
Slave Number Address/Slave number of the Modbus device.
Start Address Start address (offset) of the data.
Quantity Quantity of data to be read.
VariableType You can choose the following variable types of the Modbus data to be read:
1: char
2: unsigned char
3: short
4: unsigned short
5: long
6: unsigned long
7: float
8: double
9: ASCII-Text
Real Type Real type - determines, if the registers of real values have to be processed in reversed
order
0: Normal order
1: Reversed order
2: Byte swap order
3: Word swap order
Real types 2 and 3 are available from V03.04.02.01.
Response Address Offset Offset of the data to return in register units.
Response Quantity Quantity of the returned data. Only for string data a value greater than 1 is supported.

Addressing:

The information is stored in the Modbus Slave device in 4 different tables. 2 tables store on/off discrete values (coils) and two store numerical values (registers). Each coil is 1 bit long and assigned a data address between 0 and 65535. Each register has the size of 1 word(16 bits/ 2 bytes) and has a data address between 0 and 65535.

Coil/ Register numbers Data addresses Function type Table name
1-9999 0 to 65535 1 Read Coils
10001-19999 0 to 65535 2 Read Inputs
30001-39999 0 to 65535 4 Read Input Registers
40001-49999 0 to 65535 3 Read Holding Registers

Coil / register numbers can be considered as location names since they do not appear in the configuration. The Data Addresses (Start Address) are used in the configuration.

Data Types:

MindSphere data types:

Data type Length Data range
BOOLEAN 1 bit True
INT 4 bytes −2147483648
LONG 8 bytes −9223372036854775808
DOUBLE 8 bytes -9.9999999999999999999999999999999999999E+125
STRING 1 - 255 bytes

Modbus data types:

Data type Length Data type number
char 8 bits 1
unsigned char 8 bits 2
short 16 bits 3
unsigned short 16 bits 4
long 32 bits 5
unsigned long 32 bits 6
float 32 bits 7
double 64 bits 8
ascii-text 8 bits / char 9

Examples:

Example Data type Function type Start address Variable type Response Address Offset Response Quantity
Reading the first Holding int Read Holding 0 unsigned 0 1
Register, number 40001, has Registers short or short
the Data Address 0.
VariableType: 4 or 3 int Read Input 1 unsigned 0 1
(unsigned short or short) Registers short or short
Reading the second Input
Register, number 30002, has
the Data Address 1
Reading a float (32 bits) double Read Input 107 float (reads 0 1
from Input Register 30108 / Registers two registers)
30109, has the Data Address
107.
Reading a string. This string Read Holding 5 unsigned short 0 2 (registers)
example describes to read
four letters from register
400006 and 400007. Each
register contains two
characters.

Technical specification

Protocol Description Value Data rate
Modbus RTU - RS485 Data provider 32
Max cable length 1200 m max. 115,2 kBd
Modbus RTU - RS422 Data provider 10
Max cable length 1200 m max. 115,2 kBd
Modbus RTU - RS232 Data provider 1
Maximum cable length 900 m 2,4 kBd
300 m 4,8 kBd
152 m 9,6 kBd
15 m 19,2 kBd
5 m 57,6 kBd
< 2 m 115,2 kBd

Any questions left?

Ask the community


Except where otherwise noted, content on this site is licensed under the MindSphere Development License Agreement.


Last update: May 19, 2022