MODBUS - Protocol

<< Click to Display Table of Contents >>

Navigation:  Humidity & Temperature Devices > Transmitter > TF5A  >

MODBUS - Protocol

The transmitter can be directly addressed using the MODBUS protocol to request measured temperature values. Parameters highlighted in yellow should be selected according to the table provided below.

 

 

Important: In order to communicate directly with the digital signaling of the Transmitter TF5A Advanced is necessary to connect the RXTX+ , RXTX- and the S-GND.

 

 

 

Specification RS-485 MODBUS RTU1

Default Settings

Baud rate

19'200

Parity

None

Data bits

8

Stop Bits

1

Slave ID

247 (per default)

 

1The values listed in the table represent the default settings. However, these values can be adjusted by the user as needed to suit specific requirements

 

 

Command: (MSB first)

Probe address

Command ID

 

Start address

 

Number of records

MODBUS CRC

0x00

0x04

0x00

0x00

0x00

0x00

0x0000

 

 

Probe address

0…255, if '0' then all probes respond regardless of the address.The default probe address is 247.

 

 

Device Data

Register

Protocol

Name

Description

Data type

30’001

30'000

 

Serial Number

Serial number of the device (part 1)

 

Int. 32-bit

30’002

30'001

Serial number of the device (part 2)

30’003

30'002

 

 

Vendor Name

 

 

Rotronic (Asci characters)

 

 

 

Char

30’004

30'003

30’005

30'004

30’006

30'005

30’007

30'006

 

 

Product Type

 

 

TF5A

 

 

Char

30’008

30'007

30'009

30'008

30'010

30'009

 

 

Device Status

Register

Protocol

Name

Description

Data type

30’101

30'100

Device Flags

See amp

Int. 16-bit

30’105

30'104

Measurement flags Value 1

unused

Int. 16-bit

30’106

30'105

Measurement flags Value 2

temperature

Int. 16-bit

30’107

30'106

 

Next calibration date

unix timestap (part 1)

 

Int. 32-bit

30’108

30'107

unix timestap (part 2)

 

 

Current Values SI

Current values in 32-bit IEEE754 float format.

Note: These values are changing every measurement cycle, so always read the two corresponding registers in one Modbus command.

 

 

Register

Protocol

Name

Description

Data type

31’003

31'002

 

Temperature °C

Current temperature value (part 1)

 

Float 32-bit

31’004

31'003

Current temperature value (part 2)

 

 

 

Current Values Imperial

Current values in 32-bit IEEE754 float format.

Note: These values are changing every measurement cycle, so always read the two corresponding registers in one Modbus command.

 

Register

Protocol

Name

Description

Data type

31’103

31’102

 

Temperature °F

Current temperature value (part 1)

 

Float 32-bit

31’104

31’103

Current temperature value (part 2)

 

 

Example: Read Current Float Value (Registers 31'001 to 31'003)

 

Example:

 

Transmit

F7 04 79 1A 00 02 5D C6

Receive

F7 04 04 41 BB 4A 6C 3E DF

 

Field

Bytes

Value

Description

Checksum

2

CRC

CRC Checksum

 

 

 

 

RTU number

1

0xF7

Modbus RTU Address

Function code

1

0x04

Read Discret Inputs

Starting address

2

0x791A

= 31'002 ( Attention! register number – 1 )

Quantity of input registers

2

0x0002

= 2, means read 2 registers

 

Byte count

1

0x04

= 8 = 2 * N, means numbers of returned bytes

Input registers

 

2 * N

0x41bb4a6c

= 23.41 °C Temperature

 

For detailed information about Modbus protocol Read Discrete Inputs see:

(http://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf).

 

Device Specific holding Registers

Via the Modbus Holding Registers you can read and write device specific data of the TF5A-Digital.

 

Assisted Modbus commands are Read Holding Registers (0x03), Write Single Register (0x06)

Function 03/06 – Read/Write Single register

 

Register

Protocol

Name

Description

Data type

40'001

40'000

Device adress

Device address (Default 0x00F7)

 

Int. 16-bit

40'002

40'001

Byte Order

Swap modes / Byte Order (Default 0x0000 - No swap)

 

 

 

Read Modbus Address (Registers 40'001)

 

Example:

Note: the device answers to address 0. This can be used to get the current device address

Transmit

00 03 9c 40 00 01 aa 5f

Receive

01 03 02 00 01 79 84

 

Field

Bytes

Value

Description

Checksum

2

CRC

CRC Checksum

 

 

 

 

RTU number

1

0x01

Modbus RTU Address

Function code

1

0x03

Read Holding Register

Starting address

2

0x9c40

= 40001 ( Attention! register number – 1 )

Quantity of Holding registers

2

0x0001

= 1, means read 1 register

Answer

Byte count

1

0x02

= 2   2 * N, means numbers of returned bytes

Holding register

 

N

0x0001

= 1, current address

 

 

Write Modbus Adress (Registers 40'0001)

 

Example:

Note: The device answers with the current Modbus RTU Address, afterward's the address is changed.

 

Transmit

F7 06 9C 40 00 01 73 18

Receive

F7 06 9C 40 00 01 73 18

 

 

Field

Bytes

Value

Description

Checksum

2

CRC

CRC Checksum

 

 

 

 

RTU number

1

0x01

Modbus RTU Address

Function code

1

0x03

Read Holding Register

Starting address

2

0x9c40

= 40001 ( Attention! register number – 1 )

Value

2

0x0001

= 1, new Modbus address

 

 

Byte Order / Swap modes

 

Selectable Swap Modes for Rotronic Devices

Selectable swap modes only for 32-bit Float and 32-bit Integer values based on Little Endian memory organisation.

 

Value

Swap Mode

Source Bytes

Target Bytes

0x0000

Big endian - No Swap

[ a b ] [ c d ]

[ a b c d ]

0x0001

Little endian - byte and word swap

[ a b ] [ c d ]

[ d c b a ]

0x0002

Mid-big endian - byte swap

[ a b ] [ c d ]

[ b a d c ]

0x0003

Mid-little endian - word swap

[ a b ] [ c d ]

[ c d a b ]

 

Read Swap mode (Registers 40'001)

Example:

Transmit

01 03 9c 41 00 01 fa 4e

Receive

01 03 02 00 02 39 85

 

Field

Bytes

Value

Description

Checksum

2

CRC

CRC Checksum

 

 

 

 

RTU number

1

0x01

Modbus RTU Address

Function code

1

0x03

Read Holding Register

Starting address

2

0x9c41

= 40002 ( Attention! register number – 1 )

Quantity of Holding registers

2

0x0001

= 1, means read 1 register

 

Byte count

1

0x02

= 2 = 2 * N, means numbers of returned bytes

Holding register

 

N

0x0002

= 2, Mid-big endian - byte swap

 

 

Example:

Set Swap Mode “Mid-big endian - byte swap”

Transmit

01 06 9c 41 00 02 76 4f

Receive

01 06 9c 41 00 02 76 4f

 

Field

Bytes

Value

Description

Checksum

2

CRC

CRC Checksum

 

 

 

 

RTU number

1

0x01

Modbus RTU Address

Function code

1

0x06

Write Holding Register

Starting address

2

0x9c41

= 40002 ( Attention! register number – 1 )

Value

2

0x0002

= 2, Mid-big endian - byte swap

 

 

 

Data format

Serial number (unsigned int): 0…232-1

Temperature (signed int): -4000…+8500 corresponding to -40.00…+85.00 °C

 

 

Response in the event of an error

Probe address

 

Error code

MODBUS CRC

0x00

0x84

0x00

0x0000

 

Error codes

 

0x02

Start address and number of records invalid

0x03

Number of records invalid