Overview of Modbus TCP protocol

MindSphere supports the Modbus protocol for the MindConnect IoT2040 and MindConnect Nano plugin. You can select the protocol type Modbus TCP 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:

118206965899.png
Modbus

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

Modbus TCP data source parameter

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

Parameter

Description

IP Address

IP address of the Modbus device

Port

Port number of the Modbus device (default: 502)

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 timeout 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: 0ms)

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

Modbus TCP data point parameter

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

The following picture shows the data point parameter window:

138845030155.png

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

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.

NOTE

TCP Gateway slave number

If you are using a TCP Gateway, you must select the appropriate slave number for the configuration of the data points.

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 Register, number 40001, has the Data Address 0.

int

Read Holding Registers

0

unsigned short

or short

0

1

VariableType: 4 or 3 (unsigned short or short)Reading the second Input Register, number 30002, has the Data Address 1.

int

Read Input Registers

1

unsigned short

or short

0

1

Reading a float (32 bits) from Input Register 30108 / 30109, has the Data Address 107.

double

Read Input Registers

107

float (reads two registers)

0

1

Reading a string. This example describes to read four letters from register 400006 and 400007. Each register contains two characters.

string

Read Holding Registers

5

unsigned short

0

2 (registers)