<< 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
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.
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 |
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 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 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:
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).
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) |
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 |
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 |
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 ] |
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 |
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 |
|
•Serial number (unsigned int): 0…232-1
•Temperature (signed int): -4000…+8500 corresponding to -40.00…+85.00 °C
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 |