大數字 讀寫不同格式(float32/ int64)會有1/10k 以下的差異。
一次最多40 個register 長度。超過該長度的指令會被忽略。
這個範例會讀取即時流量
slave address: 01(本流量計地址)
function code: 04(讀取指令)
讀取數據的啟始地址: 00 00(要讀取的數據的啟始地址)
讀取registers 總數: 00 02 (需要從 00 00 開始讀兩個 register 的記憶體)
CRC: 71 CB(依 CRC 算法計算出的糾錯碼)
slave address: 01(本流量計地址)
function code: 04(讀取指令)
回覆的Byte數: 04(2個register=4byte)
Data Byte: 00 00 00 00(假設目前即時流量為 0)
CRC: FB 84(依 CRC 算法計算出的糾錯碼)
Byte#
1
2
3
4
5
6
7
8
Node ID
Slave Address
Function Code
讀取數據的啟始地址
讀取數據的啟始地址
讀取registers 總數
讀取registers 總數
CRC
CRC
範例內容01~FF
01
04
00
00
00
02
71
CB
Byte#
1
2
3
4
5
6
7
8
9
Node ID
Slave Address
Function Code
回覆的Byte數
Data Byte #1
Data Byte
#2
Data Byte
#3
Data Byte
#4
CRC
CRC
範例內容01~FF
01
04
04
00
00
00
00
FB
84
欄位名稱
功能
Register位置
讀寫記憶體位置與唯讀記憶體不共用。
Register
長度
這個變數的數據長度。以 Register(2Byte)為單位
記憶體內容
用來說明功能。
資料型式
標明收發數據的格式。
Register 位置
Register 長度
記憶體內容
資料型式
註
0000
2
瞬時流量
float 32
0002
2
瞬時流速
float 32
0004
2
累積流量
float 32
0006
2
瞬時流量
int 32
數值是瞬時流量X100取整數
0008
2
瞬時流速
int 32
數值是瞬時流速X100取整數
000A
2
累積流量
int 32
數值是累積流量X100取整數
000C
2
Iout 電流值 uA
unsigned int 32
000E
1
unsigned int 16
第一個 byte 未定義補0
000F
1
unsigned int 16
第一個 byte 未定義補0
0010
1
unsigned int 16
第一個 byte 未定義補0
0011
1
unsigned int 16
第一個 byte 未定義補0
0012
1
unsigned int 16
第一個 byte 未定義補0
0013
4
累積流量
int 64
數值是累積流量X100,000取整數(P1203新增)
0017
2
計量 Dosing
float32
(P1203新增)
0019
2
計量 Dosing
int32
數值是累積流量X100取整數(P1203新增)
001B
4
計量 Dosing
int64
數值是累積流量X100,000取整數(P1203新增)