
EES-401 Series Ultrasonic Energy Meter
Revision: 3.0.1
Page 75 of 90
(Note: the command that requests multiple pieces of data only needs to carry the carriage return and line
feed terminator at the end, and each piece of data returned has the corresponding carriage return and line
feed terminator.)
13.3.2
MODBUS Communication Protocol
This MODBUS Protocol uses RTU transmission mode. The Verification Code uses CRC-16-IBM (polynomial is
X
16
+X
15
+X
2
+1, shield character is
0xA001
) which is gained by the cyclic redundancy algorithm method.
MODBUS RTU mode uses hexadecimals to transmit data.
13.3.2.1
MODBUS Protocol Function Code and Format
The flow meter protocol supports the following two-function codes of the MODBUS:
Function Code
Performance Data
0x03
Read register
0x06
Write single register
13.3.2.2
MODBUS Protocol function code 0x03 usage
The host sends out the read register information frame format:
Slave Address
Operation
Function Code
First Address Register
Register Number
Verify Code
1 byte
1 byte
2 bytes
2 bytes
2 bytes
0x01~0xF7
0x03
0x0000~0xFFFF
0x0000~0x7D
CRC(Verify)
The slave returns the data frame format:
Slave Address
Read Operation
Function Code
Number of Data
Bytes
Data Bytes
Verify Code
1 byte
1 byte
1 byte
N*x2 byte
2 bytes
0x01~0xF7
0x03
2xN*
N*x2
CRC(Verify)
N*
=
data register number
The range of flow meter addresses 1 to 247 (Hexadecimal: 0x01
~
0xF7 ), and can be checked in the Menu 46. For
example, decimal number "11" displayed on Menu 46 means the address of the flow meter in the MODBUS
protocol is 0x0B.
The CRC Verify Code adopts CRC-16-IBM (polynomial is X
16
+X
15
+X
2
+1, shield character is
0xA001
) which is
gained by the cyclic redundancy algorithm method. Low byte of the verify code is at the beginning while the high
byte is at the end.
For example, to read the address 1 (0x01) in the RTU mode, if the instantaneous flow rate uses hour as a
unit(m3/h), namely reads 40005 and 40006 registers data, the read command is as follows:
0x01
0x03
0x00 0x04
0x00 0x02
0x85 0xCA
Energy Meter Address
Function Code
Register Address Register Number CRC Verify Code
Energy Meter returned data is (assuming the current flow=1.234567m3/h)
0x01
0x03
0x04
0x06 0x51 0x3F 0x9E 0x3B 0x32
Energy Meter Address
Function Code
Data Bytes Data(1.2345678)
CRCVerify
Code
The four bytes 3F 9E 06 51 is in the IEEE754 format single precision floating point form of 1.2345678.