E17 Endianness

位元組順序/位元組端序

定義

設定位元組順序,可選大端序(最高有效位元組)、小端序(最低有效位元組)、暫存器交換或位元組和暫存器皆交換,預設Big Endian大端序。

本參數用來調整 RX (流量計回傳資料) 時每個多 byte 資料的內部 byte 傳輸順序。modbus ID、指令、CRC及單 byte 資料不受影響。 例如要傳回傳流量及流速資料假設流量的數據是1000,回傳時,仍會先傳流量再傳流速,但是用來表達1000的這4個 byte 的傳輸順序不同,1000表示為16進制是 00007A44,以下是兩個不同格式時的順序。(下圖每個菱形圖示是一個 byte。)

範例

以下是使用 04 指令要求流量計傳回瞬時流速(圖示為FS+數字)及累積流量(圖示為TF+數字)的範例:(下圖每個菱形圖示是一個 byte)

第一行是主控端發出的指令。不受本設定影響,詳細請看 modbus 04 指令。

第二行是流量計在 Big Endian 設置下的回覆。從左到右,0x01 到 0x08 及 CRC1到CRC2 不是資料不受本設定影響。瞬時流速(圖示為FS+數字)及累積流量(圖示為TF+數字)回覆順序也不受影響。因為設定為 Big Endian,瞬時流速(圖示為FS3 到 FS0) 的四個 byte 會先從 FS3 開始回覆。累積流量(圖示為TF3 到 TF0) 的四個 byte 會先從 TF3 開始回覆。

第三行是流量計在 Little Endian 設置下的回覆。從左到右,0x01 到 0x08 及 CRC1到CRC2 不是資料不受本設定影響。瞬時流速(圖示為FS+數字)及累積流量(圖示為TF+數字)回覆順序也不受影響。因為設定為 Little Endian,瞬時流速(圖示為FS0 到 FS3) 的四個 byte 會先從 FS0 開始回覆。累積流量(圖示為TF0 到 TF3) 的四個 byte 會先從 TF0 開始回覆。

Modbus 不同格式間的轉換器

位元組順序說明

假設一個 32 位元數據由 4 個位元組 (A:最高位元組,D:最低位元組) 組成,並且儲存在兩個 16 位元的暫存器中 (Reg1=AB\mathbf{Reg1 = A B}, Reg2=CD\mathbf{Reg2 = C D})。

類型

傳輸順序 (Hex)

Big Endian

A B C D\mathbf{A~B~C~D}

Little Endian

D C B A\mathbf{D~C~B~A}

Mid Big Endian

C D A B\mathbf{C~D~A~B}

Mid Little Endian

B A D C\mathbf{B~A~D~C}

注意事項

  1. E17 Endianness 的設定必須與接收端(Master)的程式設定完全一致。

操作流程

E17 選項 及 RS485對應數值、讀寫指令及格式

選項
說明
RS-485 對應數字

Big Endian (預設值)

大端序

0

Little Endian

小端序

1

Mid Big Endian

暫存器交換

2

Mid Little Endian

位元組和暫存器皆交換

3

Modbus 指令格式請參照讀寫記憶體列表,本參數資料形式為int16。

Last updated