7. MODBUS RTU通訊協定
多數值回傳指令
7.1 讀取瞬時流量、流速、訊號強度、信號品質:
讀取瞬時流量、流速、訊號強度、信號品質:
0
1
2
3
4
5
6
7
Node ID
Function Code
Address 1
Address 0
Data 1
Data 0
CRC
CRC
01~FF
04
00
00
00
07
16 Bit CRC 計算結果
16 Bit CRC 計算結果
回應格式:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Node ID
Function Code
Data length
流量整數部分
流量整數部分
流量小數部分
流量小數部分
流速整數部分
流速整數部分
流速小數部分
流速小數部分
順流 RSSI
逆流 RSSI
保留
信號
品質
流量
單位
公、英 制距離
CRC
CRC
01~FF
04
0D
0
16 Bit CRC 計算結果
16 Bit CRC 計算結果
Byte 00 : 節點編號
Byte 01 : 功能代號
Byte 02 : 資料長度 10 bytes
Byte 03 ~ 04 : 流量整數部分,格式:16-Bit signed 整數
Byte 05 ~ 06 : 流量小數部分,格式:16-Bit signed 整數,與整數部分加總前需先除以10000
Byte 07 ~ 08 : 流速整數部分,格式:16-Bit signed 整數
Byte 09 ~ 10 : 流速小數部分,格式:16-Bit signed 整數,與整數部分加總前須先除以10000
Byte 11 、12 : 8-bit unsigned 整數,數字介於0到100
Byte 14 : 8-bit unsigned 整數,數字介於0到100
Byte 15 : 8-bit unsigned 整數,使用時須先轉換為十進位,十位數表示分子單位,個位數 表示分母單位,數字對應單位參見下表
Byte 16 : 8-bit unsigned 整數,1代表公制,距離單位為 mm 及 m,2代表為英制,距離單位為inch及ft
分子單位:
數字
單位
1
立方米 (m³)
2
公升 (l)
3
美制加侖 (gal)
4
英制加侖 (igl)
5
百萬美制加侖 (Mgl)
6
立方英呎 (cf)
7
美制桶 (bal)
8
石油桶 (ob)
分母單位:
數字
單位
1
秒 Second
2
分 Minute
3
小時 Hour
4
天 Day
7.2 讀取正向累計流量:
讀取正向累計流量:
0
1
2
3
4
5
6
7
Node ID
Function Code
Address 1
Address 0
Data 1
Data 0
CRC
CRC
01~FF
04
00
07
00
05
16 Bit CRC 計算結果
16 Bit CRC 計算結果
回應格式:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Node ID
Function Code
Data length
正向累計流量整數部分
正向累計流量整數部分
正向累計流量整數部分
正向累計流量整數部分
正向累計流量小數部分
正向累計流量小數部分
正向累計流量小數部分
正向累計流量小數部分
保留
累計流量單位
CRC
CRC
01~FF
04
0A
0
16 Bit CRC 計算結果
16 Bit CRC 計算結果
Byte 00 : 節點編號
Byte 01 : 功能代號
Byte 02 : 資料長度 10 bytes
Byte 03 ~ 06 : 32-bits signed 整數
Byte 07 ~ 10 : 32-bits signed 整數,與整數部分加總時須先除以1000000
Byte 12 : 流量單位,數字範圍 1 ~ 8,對應單位參見下表
分子單位:
數字
單位
1
立方米 (m³)
2
公升 (l)
3
美制加侖 (gal)
4
英制加侖 (igl)
5
百萬美制加侖 (Mgl)
6
立方英呎 (cf)
7
美制桶 (bal)
8
石油桶 (ob)
7.3 讀取逆向累計流量:
讀取逆向累計流量:
0
1
2
3
4
5
6
7
Node ID
Function Code
Address 1
Address 0
Data 1
Data 0
CRC
CRC
01~FF
04
00
0C
00
05
16 Bit CRC 計算結果
16 Bit CRC 計算結果
回應格式:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Node ID
Function Code
Data length
逆向累計流量整數部分
逆向累計流量整數部分
逆向累計流量整數部分
逆向累計流量整數部分
逆向累計流量小數部分
逆向累計流量小數部分
逆向累計流量小數部分
逆向累計流量小數部分
保留
累計流量單位
CRC
CRC
01~FF
04
0A
0
16 Bit CRC 計算結果
16 Bit CRC 計算結果
Byte 00 : 節點編號
Byte 01 : 功能代號
Byte 02 : 資料長度 10 bytes
Byte 03 ~ 06 : 32-bits signed 整數
Byte 07 ~ 10 : 32-bits signed 整數,與整數部分加總時須先除以1000000
Byte 12 : 流量單位,數字範圍 1 ~ 8,對應單位參見下表
分子單位:
數字
單位
1
立方米 (m³)
2
公升 (l)
3
美制加侖 (gal)
4
英制加侖 (igl)
5
百萬美制加侖 (Mgl)
6
立方英呎 (cf)
7
美制桶 (bal)
8
石油桶 (ob)
7.4 讀取淨累計流量:
讀取淨累計流量:
0
1
2
3
4
5
6
7
Node ID
Function Code
Address 1
Address 0
Data 1
Data 0
CRC
CRC
01~FF
04
00
11
00
05
16 Bit CRC 計算結果
16 Bit CRC 計算結果
回應格式:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Node ID
Function Code
Data length
淨累計流量整數部分
淨累計流量整數部分
淨累計流量整數部分
淨累計流量整數部分
淨累計流量小數部分
淨累計流量小數部分
淨累計流量小數部分
淨累計流量小數部分
保留
累計流量單位
CRC
CRC
01~FF
04
0A
0
16 Bit CRC 計算結果
16 Bit CRC 計算結果
Byte 00 : 節點編號
Byte 01 : 功能代號
Byte 02 : 資料長度 10 bytes
Byte 03 ~ 06 : 32-bits signed 整數
Byte 07 ~ 10 : 32-bits signed 整數,與整數部分加總時須先除以1000000
Byte 12 : 流量單位,數字範圍 1 ~ 8,對應單位參見下表
分子單位:
數字
單位
1
立方米 (m³)
2
公升 (l)
3
美制加侖 (gal)
4
英制加侖 (igl)
5
百萬美制加侖 (Mgl)
6
立方英呎 (cf)
7
美制桶 (bal)
8
石油桶 (ob)
7.6 讀取上下游PT1000溫度、瞬時流量及error bits:(fw 1.2.2 開始提供)
讀取上下游PT1000溫度、瞬時流量及error bits:
0
1
2
3
4
5
6
7
Node ID
Function Code
Address 1
Address 0
Data 1
Data 0
CRC
CRC
01~FF
04
00
16
00
05
16 Bit CRC 計算結果
16 Bit CRC 計算結果
回應格式:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Node ID
Function Code
Data length
上游溫度(上游溫度*10 取整數,格式:16-Bit signed 整數 放大十倍後)
上游溫度(上游溫度*10 取整數,格式:16-Bit signed 整數 放大十倍後)
下游溫度(下游溫度*10 取整數,格式:16-Bit signed 整數 放大十倍後)
下游溫度(下游溫度*10 取整數,格式:16-Bit signed 整數 放大十倍後)
流量整數部分(流量整數部分,格式:16-Bit signed 整數)
流量整數部分(流量整數部分,格式:16-Bit signed 整數)
流量小數部分,格式:16-Bit signed 整數,與整數部分加總前需先除以10000
流量小數部分,格式:16-Bit signed 整數,與整數部分加總前需先除以10000
保留
error code
CRC
CRC
01~FF
04
0A
00
00
00
00
00
00
00
00
00000000
16 Bit CRC 計算結果
16 Bit CRC 計算結果
Byte 00 : 節點編號
Byte 01 : 功能代號
Byte 02 : 資料長度 8 bytes
Byte 03 ~ 04 : 上游溫度*10 取整數,格式:16-Bit signed 整數 放大十倍後
Byte 05 ~ 06 : 下游溫度*10 取整數,格式:16-Bit signed 整數 放大十倍後
Byte 07 ~ 08 : 流量整數部分,格式:16-Bit signed 整數
Byte 09 ~ 10 : 流量小數部分,格式:16-Bit signed 整數,與整數部分加總前需先除以10000
Byte 12 : error code
7.5 清除累計流量:
清除所有累計流量:
0
1
2
3
4
5
6
7
Node ID
Function Code
Address 1
Address 0
Data 1
Data 0
CRC
CRC
01~FF
14
00
00
00
00
16 Bit CRC 計算結果
16 Bit CRC 計算結果
清除淨累積流量:
0
1
2
3
4
5
6
7
Node ID
Function Code
Address 1
Address 0
Data 1
Data 0
CRC
CRC
01~FF
15
00
00
00
00
16 Bit CRC 計算結果
16 Bit CRC 計算結果
清除正向累計流量:
0
1
2
3
4
5
6
7
Node ID
Function Code
Address 1
Address 0
Data 1
Data 0
CRC
CRC
01~FF
16
00
00
00
00
16 Bit CRC 計算結果
16 Bit CRC 計算結果
清除逆向累計流量:
0
1
2
3
4
5
6
7
Node ID
Function Code
Address 1
Address 0
Data 1
Data 0
CRC
CRC
01~FF
17
00
00
00
00
16 Bit CRC 計算結果
16 Bit CRC 計算結果
7.7 單資料讀取指令(FW 1.2.6更新)
7.7.1 04 單資料讀取讀取型記憶體列表
0x00
流量整數部分
int16_t
1
0x01
流量小數部分*10000
int16_t
1
0x02
流速整數部分
int16_t
1
0x03
流速小數部分
int16_t
1
0x16
上游溫度*10
int16_t
1
0x17
下游溫度*10
int16_t
1
0x1B
正向累計流量*100
int32_t
2
0x1D
負向累計流量*100
int32_t
2
0x1F
淨累計流量*100
int32_t
2
0x21
熱量整數部分
int16_t
1
0x22
熱量小數部分*10000
int16_t
1
7.7.2 指令讀取 範例
A. 讀取 big endian 正向累積 數據
控制端發訊範例說明 TX:
0
1
2
3
4
5
6
7
Node ID
Function Code
Address 1
Address 0
Data 1
Data 0
CRC
CRC
01
04
00
1B
00
02
16 Bit CRC 計算結果
16 Bit CRC 計算結果
Node ID Byte 01 : 節點編號 01
Function code Byte 01 : 功能指令 04
Addr Byte 02~03 : 00 1B(對應TX table, 讀取register address 正向累積*100)
Length Byte 05 ~ 06 : 00 02 (對應TX table, 讀取正向累積*100 的2個register)
CRC: (依 CRC 算法計算出的糾錯碼)
RX 回覆big endian 範例
0
1
2
3
4
5
6
7
8
Node ID
Function Code
Data length
正向累積*100數值,格式:32-Bit signed
正向累積*100數值,格式:32-Bit signed
正向累積*100數值,格式:32-Bit signed
正向累積*100數值,格式:32-Bit signed
CRC
CRC
01
04
04
00
12
D6
87
16 Bit CRC 計算結果
16 Bit CRC 計算結果
Node ID Byte 00 : 節點編號 01
Function code Byte 01 : 功能代號 04
Length Byte 02 : 00 04 資料長度 4 bytes
Data Byte 03 ~ 06 : 正向累積*100數值, 00 12 D6 87 ,32-Bit signed 格式整數
CRC: (依 CRC 算法計算出的糾錯碼)
B. 讀取流量整數部分 TX / RX 範例
流量整數部分
0x01
0x04
0x00
0x00
0x00
0x01
流量整數部分
1234.5
0x01
0x04
0x02
0x04
0xD2
-1234.5
0x01
0x04
0x02
0xFB
0x2E
C. 讀取流量小數部分*10000 部分 TX / RX 範例
流量小數部分*10000
0x01
0x04
0x00
0x01
0x00
0x01
流量小數部分*10000
1234.5
0x01
0x04
0x02
0x13
0x88
-1234.5
0x01
0x04
0x02
0xEC
0x78
D. 讀取流速整數部分 TX / RX 範例
流速整數部分
0x01
0x04
0x00
0x02
0x00
0x01
流速整數部分
12.34
0x01
0x04
0x02
0x00
0x0C
-12.34
0x01
0x04
0x02
0xFF
0xF4
E. 讀取流速小數部分*100000 TX / RX 範例
流速小數部分*100000
0x01
0x04
0x00
0x03
0x00
0x01
流速小數部分*100000
12.34
0x01
0x04
0x02
0x0D
0x48
-12.34
0x01
0x04
0x02
0xF2
0xB8
F. 讀取上游溫度*10 TX / RX 範例
上游溫度*10
0x01
0x01
0x04
0x16
0x00
0x01
上游溫度*10
10.9
0x01
0x04
0x02
0x00
0x6D
G. 讀取下游溫度*10 TX / RX 範例
下游溫度*10
0x01
0x04
0x00
0x17
0x00
0x01
下游溫度*10
0.2
0x01
0x04
0x02
0x00
0x02
H. 讀取正向累積 TX / RX 範例
正向累積*100
0x01
0x04
0x00
0x1B
0x00
0x02
正向累積*100
12345.67
0x01
0x04
0x04
0x00
0x12
0xD6
0x87
I. 讀取負向累積 TX / RX 範例
負向累積*100
0x01
0x04
0x00
0x1D
0x00
0x02
負向累積*100
-76543.21
0x01
0x04
0x04
0xFF
0x8B
0x34
0x4F
J. 讀取淨累積 TX / RX 範例
淨累積*100
0x01
0x04
0x00
0x1F
0x00
0x02
淨累積*100
12345.67
0x01
0x04
0x04
0x00
0x12
0xD6
0x87
-12345.67
0x01
0x04
0x04
0xFF
0xED
0x29
0x79
K. 讀取熱量整數TX / RX 範例
熱量整數
0x01
0x04
0x00
0x21
0x00
0x01
熱量整數
123.4567
123
0x01
0x04
0x02
0x00
0x7B
-123.4567
-123
0x01
0x04
0x02
0xFF
0x85
L. 讀取熱量小數*10000 TX / RX 範例
熱量小數*10000
0x01
0x04
0x00
0x22
0x00
0x01
熱量小數*10000
123.4567
4567
0x01
0x04
0x02
0x11
0xD7
-123.4567
-4567
0x01
0x04
0x02
0xEE
0x29
Last updated