RS485 與 Modbus RTU 設定
規格
鮑率 Baud
9600, 19200, 38400, 57600
接線
二線式
同一網絡中最多節點數
256
接線
RS485 二線式配線圖
黑色線:RS485 (B-)、綠色線:RS485 (A+)
本功能必需在DC 電源的棕藍色有供電的情形下,才能工作。為維持圖面易讀性,本圖省略DC供電圖,詳情形見DC 電源配線圖。
請注意RS485的配線請勿和電源配線接錯,若因誤接導致線路或產品受損,請聯繫 LORRIC 原廠安排機器更換,相關維修費用需由使用者承擔。

配線建議
一般建議使用帶屏敝 24awg 雙絞線,以串接方式連線每台設備,不要使用環狀或放射狀線路。
連線長時,請在 master 及線路最遠端使用終端電阻,終端電阻業界常使用 120Ω,實際數值請參照線材規格計算。
若通訊訊號不穩定,可於總線上的適當位置(通常靠近主站)加裝偏壓電阻,以提升訊號穩定性。。
隨貨6蕊線,如果使用在 RS485 通訊,請修剪線材長度,盡量使用最短必要線長,以降低雜訊干擾。並將隔離網與主要通訊線屏敝相連後接地。
在訊號干擾多的地方,軟體可能需要多次詢問才能得到回應,請在通訊程式內建立多次詢問機制,以區別訊號干擾與設備異常離線兩種情形。
RS485 Modbus RTU參數設定
測試要讀寫的記憶體
請參考 Modbus RTU Protocol 測試要讀寫的記憶體。
通訊格式
bit order: lsb first
byte order: big endian
Data bits:8
Parity: None
Stop bits: 1
Floating point number follows IEEE754-1985. The float32 below stands for 32bits Single precision floating point number.
記憶體定義及功能
modbus 可操作的記憶體分為兩大類,唯讀型及讀寫型。
唯讀型主要是流量計狀態相關的記憶體,例如即時流量。這部分也是最常使用的記憶體。唯讀型的記憶體只能使用指 04 來讀取。
讀寫型主要是流量計設定參數記憶體,寫入操作一次只能改變一個參數,如果目標參數的記憶體長度是 1個 register,使用指令 06,如果目標參數的記憶體長度是 2 register,使用 30。
Modbus RTU 讀取 Float32 數據範例
以唯讀型記憶體讀取指令(04)為例,說明在累積流量為 20000.5 公升時,應如何發送指令並將回傳的資料解析為十進位數值。
唯讀型記憶體-讀取指令(04)格式


Modbus RTU 讀取唯讀型記憶體讀取指令 (04) 範例
主站發送讀取指令 (TX 訊框)
根據設備規格,累積流量採 Float32 格式,佔用 2 個暫存器(共 4 bytes),因此讀取數量需設定為 00 02。主站需發送 Modbus 功能碼 04(讀取輸入暫存器),以讀取從位址 0000 開始的 2 個暫存器數據。
Slave Address = 01
Function Code = 04
起始暫存器位址 = 00 00
讀取數量 = 00 02 (2 個暫存器)
CRC 校驗碼 = 71 CB
從站回覆數據 (RX 訊框)
從站收到讀取請求後,將內部儲存的 20000.5 升(Float32)數據,依 Modbus Register Big Endian(高位元組在前) 與 IEEE 754 Float32 格式,封裝為 4 個位元組回傳。
Slave Address = 01
Function Code = 04
Byte Count(資料位元組數)= 04 (4 Bytes)
Data(資料欄位) = 45 9C 40 00
CRC 校驗碼 = E2 56
數據解析與轉換 (轉回十進制)
步驟 A:排列數據
由於設定為 大端模式 (Big Endian),資料的最高位元組放在最前面,因此 4 個位元組的順序就是收到的順序:
459C4000 ₁₆
步驟 B:拆解 Float32 結構 (SEM: S-符號位, E-指數位, M-尾數位)
將 459C4000 ₁₆ 轉換為32位二進位制

部分
二進制數值
位元數
說明
S (符號位)
0
1 bit
0=正數
E (指數位)
10001011
8 bits
139₁₀。 實際指數:
139 - 127 (Float 32 偏移量) = 12
M (尾數位)
001110001...
23 bits
有效數字 1.M
步驟 C:計算數值
根據 IEEE 754 公式:

• 指數位:E = 10001011 轉換為10 進位制
在 IEEE 754 Float32 標準中,指數位採用偏移表示法表示正指數和負指數,標準規定的偏移量 (Bias) 是 127,因此實際指數是 139 - 127 = 12
• 尾數部分:M=0011100100000000000000
有效數字 1.M:1.001110001 (後面的零可以忽略)
• 得根據 IEEE754 浮點數數值表示為
將小數點向右移動 12 位:

• 將這個二進制數轉換回十進制:
得請求累積流量,RX 回覆數據: 01 04 04 45 9C 40 00 E2 56 值為 20000.5 升
Modbus 不同格式間的轉換器
Last updated