Read-only memory read instruction(04) and memory lists
The length of total register requested by a single reading command must be less than or equal to 20 registers. Instructions longer than this will be ignored.
Instruction example
Format of command (04) from master
Byte# | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Node ID | Slave Address | Function Code | Address of first reading register | Address of first reading register | Quantity of registers to be read | Quantity of registers to be read | CRC | CRC |
Example 01~FF | 01 | 04 | 00 | 00 | 00 | 02 | 71 | CB |
Description of master command
The example will read instantaneous flow volume.
slave address: 01(address of this flowmeter)
function code: 04(read instruction)
Address of first reading register: 0000(Address of first register to read)
Quantity of registers to be read: 0002 (need to read 2 registers from 0000)
CRC: 71 CB(Calculating error correcting code according to CRC algorithm)
Format of flowmeter response(04)
Byte# | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Node ID | Slave Address | Function Code | Amount of response Byte | Data Byte #1 | Data Byte #2 | Data Byte #3 | Data Byte #4 | CRC | CRC |
Example 01~FF | 01 | 04 | 04 | 00 | 00 | 00 | 00 | FB | 84 |
Description of flowmeter response example
slave address: 01(address of this flowmeter)
function code: 04(read instruction)
Amount of response Byte: 04 (2 register=4 byte)
Data Byte: 00 00 00 00(Assume the instantaneous flow volume is 0)
CRC: FB 84(Calculating error correcting code according to CRC algorithm)
Definition and address of memory
How to use these charts
Read-write memory type | Function |
Register location | Read-write memory address is not shared with read-only memory. |
Register length | The length of variable memory. The unit is Register(2Byte). |
Memory definition | For memory data description. |
Data type | The format of sending and receiving data type. |
Read-only memory list
Register location | Register length | Memory definition | Data type | Remarks |
0000 | 2 | instantaneous flow rate | float 32 | |
0002 | 2 | instantaneous flow velocity | float 32 | |
0004 | 2 | totalized flow volume | float 32 | |
0006 | 2 | analog output in micro-amp | unsigned int 32 | |
0008 | 1 | unsigned int 16 | First byte is 0, due to no definition. | |
0009 | 1 | unsigned int 16 | First byte is 0, due to no definition. | |
000A | 1 | unsigned int 16 | First byte is 0, due to no definition. | |
000B | 1 | unsigned int 16 | First byte is 0, due to no definition. | |
000C | 1 | unsigned int 16 | First byte is 0, due to no definition. | |
000D | 1 | history[1] year & month | unsigned int 16 | |
000E | 1 | history[1] day | unsigned int 16 | |
000F | 1 | history[1] total method | unsigned int 16 | |
0010 | 2 | history[1] totalized flow volume | float32 | |
0012 | 1 | history[2] year & month | unsigned int 16 | |
0013 | 1 | history[2] day | unsigned int 16 | |
0014 | 1 | history[2] total method | unsigned int 16 | |
0015 | 2 | history[2] totalized flow volume | float32 | |
0017 | 1 | history[3] year & month | unsigned int 16 | |
0018 | 1 | history[3] day | unsigned int 16 | |
0019 | 1 | history[3] total method | unsigned int 16 | |
001A | 2 | history[3] totalized flow volume | float32 | |
001C | 1 | history[4] year & month | unsigned int 16 | |
001D | 1 | history[4] day | unsigned int 16 | |
001E | 1 | history[4] total method | unsigned int 16 | |
001F | 2 | history[4] totalized flow volume | float32 | |
0021 | 1 | history[5] year & month | unsigned int 16 | |
0022 | 1 | history[5] day | unsigned int 16 | |
0023 | 1 | history[5]total method | unsigned int 16 | |
0024 | 2 | history[5] totalized flow volume | float32 | |
0026 | 1 | history[6] year & month | unsigned int 16 | |
0027 | 1 | history[6] day | unsigned int 16 | |
0028 | 1 | history[6] total method | unsigned int 16 | |
0029 | 2 | history[6] totalized flow volume | float32 | |
002B | 1 | history[7] year & month | unsigned int 16 | |
002C | 1 | history[7] day | unsigned int 16 | |
002D | 1 | history[7] total method | unsigned int 16 | |
002E | 2 | history[7] totalized flow volume | float32 | |
0030 | 1 | history[8] year & month | unsigned int 16 | |
0031 | 1 | history[8] day | unsigned int 16 | |
0032 | 1 | history[8] total method | unsigned int 16 | |
0033 | 2 | history[8] totalized flow rate | float32 | |
0035 | 1 | history[9] year & month | unsigned int 16 | |
0036 | 1 | history[9] day | unsigned int 16 | |
0037 | 1 | history[9] total method | unsigned int 16 | |
0038 | 2 | history[9] totalized flow rate | float32 | |
003A | 1 | history[10] year & month | unsigned int 16 | |
003B | 1 | history[10] day | unsigned int 16 | |
003C | 1 | history[10] total method | unsigned int 16 | |
003D | 2 | history[10] totalized flow rate | float32 | |
003F | 1 | history[11] year & month | unsigned int 16 | |
0040 | 1 | history[11] day | unsigned int 16 | |
0041 | 1 | history[11] total method | unsigned int 16 | |
0042 | 2 | history[11] totalized flow rate | float32 | |
0044 | 1 | history[12] year & month | unsigned int 16 | |
0045 | 1 | history[12] day | unsigned int 16 | |
0046 | 1 | history[12] total method | unsigned int 16 | |
0047 | 2 | history[12] totalized flow rate | float32 | |
0049 | 1 | history[13] year & month | unsigned int 16 | |
004A | 1 | history[13] day | unsigned int 16 | |
004B | 1 | history[13] total method | unsigned int 16 | |
004C | 2 | history[13] totalized flow rate | float32 | |
004E | 1 | history[14] year & month | unsigned int 16 | |
004F | 1 | history[14] day | unsigned int 16 | |
0050 | 1 | history[14] total method | unsigned int 16 | |
0051 | 2 | history[14] totalized flow rate | float32 | |
0053 | 1 | Maximum r value | unsigned int 16 | |
0054 | 1 | Minimum r value | unsigned int 16 | |
0055 | 2 | instantaneous flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
0057 | 2 | instantaneous flow speed (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
0059 | 2 | totalized flow rate | signed int 32 | |
005B | 2 | history[1] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
005D | 2 | history[2] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
005F | 2 | history[3] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
0061 | 2 | history[4] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
0063 | 2 | history[5] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
0065 | 2 | history[6] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
0067 | 2 | history[7] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
0069 | 2 | history[8] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
006B | 2 | history[9] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
006D | 2 | history[10] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
006F | 2 | history[11] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
0071 | 2 | history[12] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
0073 | 2 | history[13] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 | |
0075 | 2 | history[14] totalized flow rate (multiplied by 100, rounded to the nearest integer) | signed int 32 |
Last updated