讀寫型記憶體-雙Register寫入指令(30)
Function Code 功能碼 30
讀寫型記憶體 雙 Register 寫入指令,功能碼 30,2 個暫存器 (32 bit),用於寫入浮點數,Float32 或Int32 等 32 位元的數據,適用於有小數、正負數、介於約 10⁻³⁸ 到 10³⁸ 之間的參數設定。 例如:設定A18 強制歸零 (Low Flow Cutoff ) 為 +5.5 、設定 A23 零點偏差校正 (Zero Offset) 為 -0.08 。
Modbus RTU 讀寫型記憶體-雙 Register 寫入指令 (功能碼 30)
以主站使用功能碼 30 ,目標向位置 "A18 Low Flow Cutoff 強制歸零" ,寫入 + 5.5。
根據 讀寫型記憶體-讀取列表 ,該參數的起始位址為00 15,Reg 長度為 2 (二個暫存器),資料型式為 float32。
1.數值轉換與資料準備 (Hex Data)
將十進制數 +5.5 轉換為 IEEE 754 Float32 (Big Endian) 格式:
這 4 個位元組的數據是:40 B0 00 00。
2. 主站發送寫入指令 (TX 訊框)
主站使用功能碼 30,攜帶 4 個數據位元組(Byte Count 04),寫入從位址 00 15 開始的 2 個暫存器。
Slave Address = 01
Function Code = 30
讀取數據的啟始地址 = 00 15 (A18 Low Flow Cutoff 的記憶體地址)
寫入暫存器數量 = 00 02 (寫入 2 個暫存器 (Float32))
寫入位元組計數 = 04 (寫入 4 個數據位元組)
寫入資料 (Float32) 寫入
40 B0 00 00(寫入 +5.5 的 Hex 數據)CRC 校驗碼 = 27 D1 (依 CRC 算法計算出的糾錯碼)
3. 從站回覆數據 (RX 訊框)
寫入指令成功時,從站會將收到的 TX 請求指令完整回傳,作為檢查(確認)功能。
Slave Address = 01
Function Code = 30
讀取數據的起始地址 = 00 15 (A18 Low Flow Cutoff 的記憶體地址)
寫入資料 = 00 02 (確認寫入 2 個暫存器)
CRC 校驗碼 = D1 CB (依 CRC 算法計算出的糾錯碼)
主站接收到 RX 回覆後,確認功能碼Function Code、位址、寫入資料暫存器數量都正確無誤,即可確認A18 Low Flow Cutoff 已成功設定為 +5.5 。
Last updated