beautypg.com

Xylem Expert 7060_7070_Modbus User Manual

Page 4

background image

Communication protocol Serie30

Page 10/37

4.3

Description of MODBUS functions

This section describes the MODBUS functions supported by Series 30 transmitters (device Class.Group = 5.20)
Overview:

F3:

Read registers on MODBUS address space

F6:

Write single register on MODBUS address space

F8:

MODBUS Echo function

F16: Write multiple registers on MODBUS address space

4.4

Modbus Communication Examples

address

request

response

received value

250

250 3 0 2 0 2 112 64 250 3 4 63 117 228 166 102 72

0.96052 bar

Read P1

1

1 3 0 2 0 2 101 203 1 3 4 63 117 240 123 227 222

0.960701 bar

Read P2

1

1 3 0 4 0 2 133 202 1 3 4 63 118 6 224 21 213

0.961042 bar

250

250 3 0 8 0 2 80 66 250 3 4 65 181 99 178 29 163

22.6737 °C

Read

TOB1

1

1 3 0 8 0 2 69 201 1 3 4 65 181 192 121 110 11

22.719 °C

Read P1

and

TOB1

1

1 3 1 0 0 4 69 245 1 3 8 63 117 227 210 65 182

28 32 160 119

0.960508 bar

22.7637 °C

Purple = MODBUS register address

4.5

Function 3: MODBUS Register Read

Read a number of subsequent registers in the MODBUS address space starting with StAdd. Note, that the data returned has to

be interpreted according the definitions in “4.9 MODBUS Register Map”.

Function is implemented in devices Class.Group-Version = 5.20-2.40 and later

The number of registers read in one cycle is limited:

4 registers for devices Class.Group-Version = 5.20-10.XX and later

2 registers for earlier versions than Class.Group-Version = 5.20-10.XX

Byte-count of the answer will be an even number (1 register = 2 bytes)

Addresses that are part of double sized registers, return 0x0000 if only one register is requested

Returns NaN or Exception 4 in case of a channel error, depending on accessing a “float” or “integer” address.

Request:

DevAddr

0x03

StAdd H StAdd L # Reg H # Reg L CRC16_L CRC16_H

Response:

DevAddr

0x03

# Bytes Data H Data L

Data L CRC16_L CRC16_H

Error:

DevAddr

0x83

Error

CRC16_L CRC16_H

Error codes:

2

Illegal data address:

- Wrong starting-address or wrong number of registers

- Start-address not defined, register exceeding defined range return 0x0000

3

Illegal data value:

- Quantity of requested registers out of bound

- Must be <= 4 for devices Class.Group-Version = 5.20-10.XXand later

- Must be <= 2 for devices Class.Group-Version = 5.20-2.40 - 5.20-10.XX

4

Slave Device Failure:

- Value not valid (=> check status)

- Over/Underflow when requesting value as int

- Channel not active and requesting value as int