7. MODBUS RTU通訊協定
Last updated
Last updated
讀取瞬時流量、流速、訊號強度、信號品質:
回應格式:
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
分子單位:
分母單位:
讀取正向累計流量:
回應格式:
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,對應單位參見下表
分子單位:
讀取逆向累計流量:
回應格式:
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,對應單位參見下表
分子單位:
讀取淨累計流量:
回應格式:
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,對應單位參見下表
分子單位:
讀取上下游PT1000溫度、瞬時流量及error bits:
回應格式:
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
清除所有累計流量:
清除淨累積流量:
清除正向累計流量:
清除逆向累計流量:
A. 讀取 big endian 正向累積 數據
控制端發訊範例說明 TX:
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 範例
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 算法計算出的糾錯碼)
Addr | Name | Type | Length |
---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 參考數值 | ID | FUNC | LEN | DATA | DATA | CRC | CRC |
---|---|---|---|---|---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 參考數值 | ID | FUNC | LEN | DATA | DATA | CRC | CRC |
---|---|---|---|---|---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 參考數值 | ID | FUNC | LEN | DATA | DATA | CRC | CRC |
---|---|---|---|---|---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 參考數值 | ID | FUNC | LEN | DATA | DATA | CRC | CRC |
---|---|---|---|---|---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 參考數值 | ID | FUNC | LEN | DATA | DATA | CRC | CRC |
---|---|---|---|---|---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 參考數值 | ID | FUNC | LEN | DATA | DATA | CRC | CRC |
---|---|---|---|---|---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 參考數值 | ID | FUNC | LEN | DATA | DATA | DATA | DATA | CRC | CRC |
---|---|---|---|---|---|---|---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 參考數值 | ID | FUNC | LEN | DATA | DATA | DATA | DATA | CRC | CRC |
---|---|---|---|---|---|---|---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 參考數值 | ID | FUNC | LEN | DATA | DATA | DATA | DATA | CRC | CRC |
---|---|---|---|---|---|---|---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 機台數值 | 預計回傳值 | ID | FUNC | LEN | DATA | DATA | CRC | CRC |
---|---|---|---|---|---|---|---|---|---|
TX範例 | ID | FUNC | ADDR | ADDR | LEN | LEN | CRC | CRC |
---|---|---|---|---|---|---|---|---|
RX 範例(big endian) | 機台數值 | 預計回傳值 | ID | FUNC | LEN | DATA | DATA | CRC | 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
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 計算結果
數字
單位
1
立方米 (m³)
2
公升 (l)
3
美制加侖 (gal)
4
英制加侖 (igl)
5
百萬美制加侖 (Mgl)
6
立方英呎 (cf)
7
美制桶 (bal)
8
石油桶 (ob)
數字
單位
1
秒 Second
2
分 Minute
3
小時 Hour
4
天 Day
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 計算結果
數字
單位
1
立方米 (m³)
2
公升 (l)
3
美制加侖 (gal)
4
英制加侖 (igl)
5
百萬美制加侖 (Mgl)
6
立方英呎 (cf)
7
美制桶 (bal)
8
石油桶 (ob)
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 計算結果
數字
單位
1
立方米 (m³)
2
公升 (l)
3
美制加侖 (gal)
4
英制加侖 (igl)
5
百萬美制加侖 (Mgl)
6
立方英呎 (cf)
7
美制桶 (bal)
8
石油桶 (ob)
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 計算結果
數字
單位
1
立方米 (m³)
2
公升 (l)
3
美制加侖 (gal)
4
英制加侖 (igl)
5
百萬美制加侖 (Mgl)
6
立方英呎 (cf)
7
美制桶 (bal)
8
石油桶 (ob)
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 計算結果
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 計算結果
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
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 計算結果
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 計算結果
流量整數部分
0x01
0x04
0x00
0x00
0x00
0x01
流量整數部分
1234.5
0x01
0x04
0x02
0x04
0xD2
-1234.5
0x01
0x04
0x02
0xFB
0x2E
流量小數部分*10000
0x01
0x04
0x00
0x01
0x00
0x01
流量小數部分*10000
1234.5
0x01
0x04
0x02
0x13
0x88
-1234.5
0x01
0x04
0x02
0xEC
0x78
流速整數部分
0x01
0x04
0x00
0x02
0x00
0x01
流速整數部分
12.34
0x01
0x04
0x02
0x00
0x0C
-12.34
0x01
0x04
0x02
0xFF
0xF4
流速小數部分*100000
0x01
0x04
0x00
0x03
0x00
0x01
流速小數部分*100000
12.34
0x01
0x04
0x02
0x0D
0x48
-12.34
0x01
0x04
0x02
0xF2
0xB8
上游溫度*10
0x01
0x01
0x04
0x16
0x00
0x01
上游溫度*10
10.9
0x01
0x04
0x02
0x00
0x6D
下游溫度*10
0x01
0x04
0x00
0x17
0x00
0x01
下游溫度*10
0.2
0x01
0x04
0x02
0x00
0x02
正向累積*100
0x01
0x04
0x00
0x1B
0x00
0x02
正向累積*100
12345.67
0x01
0x04
0x04
0x00
0x12
0xD6
0x87
負向累積*100
0x01
0x04
0x00
0x1D
0x00
0x02
負向累積*100
-76543.21
0x01
0x04
0x04
0xFF
0x8B
0x34
0x4F
淨累積*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
熱量整數
0x01
0x04
0x00
0x21
0x00
0x01
熱量整數
123.4567
123
0x01
0x04
0x02
0x00
0x7B
-123.4567
-123
0x01
0x04
0x02
0xFF
0x85
熱量小數*10000
0x01
0x04
0x00
0x22
0x00
0x01
熱量小數*10000
123.4567
4567
0x01
0x04
0x02
0x11
0xD7
-123.4567
-4567
0x01
0x04
0x02
0xEE
0x29