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 單資料讀取讀取型記憶體列表

Addr
Name
Type
Length

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 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

流量整數部分

0x01

0x04

0x00

0x00

0x00

0x01

RX 範例(big endian)
參考數值
ID
FUNC
LEN
DATA
DATA
CRC
CRC

流量整數部分

1234.5

0x01

0x04

0x02

0x04

0xD2

-1234.5

0x01

0x04

0x02

0xFB

0x2E

C. 讀取流量小數部分*10000 部分 TX / RX 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

流量小數部分*10000

0x01

0x04

0x00

0x01

0x00

0x01

RX 範例(big endian)
參考數值
ID
FUNC
LEN
DATA
DATA
CRC
CRC

流量小數部分*10000

1234.5

0x01

0x04

0x02

0x13

0x88

-1234.5

0x01

0x04

0x02

0xEC

0x78

D. 讀取流速整數部分 TX / RX 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

流速整數部分

0x01

0x04

0x00

0x02

0x00

0x01

RX 範例(big endian)
參考數值
ID
FUNC
LEN
DATA
DATA
CRC
CRC

流速整數部分

12.34

0x01

0x04

0x02

0x00

0x0C

-12.34

0x01

0x04

0x02

0xFF

0xF4

E. 讀取流速小數部分*100000 TX / RX 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

流速小數部分*100000

0x01

0x04

0x00

0x03

0x00

0x01

RX 範例(big endian)
參考數值
ID
FUNC
LEN
DATA
DATA
CRC
CRC

流速小數部分*100000

12.34

0x01

0x04

0x02

0x0D

0x48

-12.34

0x01

0x04

0x02

0xF2

0xB8

F. 讀取上游溫度*10 TX / RX 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

上游溫度*10

0x01

0x01

0x04

0x16

0x00

0x01

RX 範例(big endian)
參考數值
ID
FUNC
LEN
DATA
DATA
CRC
CRC

上游溫度*10

10.9

0x01

0x04

0x02

0x00

0x6D

G. 讀取下游溫度*10 TX / RX 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

下游溫度*10

0x01

0x04

0x00

0x17

0x00

0x01

RX 範例(big endian)
參考數值
ID
FUNC
LEN
DATA
DATA
CRC
CRC

下游溫度*10

0.2

0x01

0x04

0x02

0x00

0x02

H. 讀取正向累積 TX / RX 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

正向累積*100

0x01

0x04

0x00

0x1B

0x00

0x02

RX 範例(big endian)
參考數值
ID
FUNC
LEN
DATA
DATA
DATA
DATA
CRC
CRC

正向累積*100

12345.67

0x01

0x04

0x04

0x00

0x12

0xD6

0x87

I. 讀取負向累積 TX / RX 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

負向累積*100

0x01

0x04

0x00

0x1D

0x00

0x02

RX 範例(big endian)
參考數值
ID
FUNC
LEN
DATA
DATA
DATA
DATA
CRC
CRC

負向累積*100

-76543.21

0x01

0x04

0x04

0xFF

0x8B

0x34

0x4F

J. 讀取淨累積 TX / RX 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

淨累積*100

0x01

0x04

0x00

0x1F

0x00

0x02

RX 範例(big endian)
參考數值
ID
FUNC
LEN
DATA
DATA
DATA
DATA
CRC
CRC

淨累積*100

12345.67

0x01

0x04

0x04

0x00

0x12

0xD6

0x87

-12345.67

0x01

0x04

0x04

0xFF

0xED

0x29

0x79

K. 讀取熱量整數TX / RX 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

熱量整數

0x01

0x04

0x00

0x21

0x00

0x01

RX 範例(big endian)
機台數值
預計回傳值
ID
FUNC
LEN
DATA
DATA
CRC
CRC

熱量整數

123.4567

123

0x01

0x04

0x02

0x00

0x7B

-123.4567

-123

0x01

0x04

0x02

0xFF

0x85

L. 讀取熱量小數*10000 TX / RX 範例

TX範例
ID
FUNC
ADDR
ADDR
LEN
LEN
CRC
CRC

熱量小數*10000

0x01

0x04

0x00

0x22

0x00

0x01

RX 範例(big endian)
機台數值
預計回傳值
ID
FUNC
LEN
DATA
DATA
CRC
CRC

熱量小數*10000

123.4567

4567

0x01

0x04

0x02

0x11

0xD7

-123.4567

-4567

0x01

0x04

0x02

0xEE

0x29

Last updated