讀寫型記憶體四個Register寫入指令(31)
Function Code 功能碼 31
讀寫型記憶體 四個 Register 寫入指令,功能碼 31 ,4 個暫存器 (64 bit),可寫入 Int64 等 64 位元的數值範圍。 當您設定 D11 累計目標 (Total Target 64) 或 C04 批量控制 (Dosing Target 64) 大數值參數時,建議使用功能碼 31。
讀寫型記憶體-四個Register寫入指令(31)格式

Modbus RTU 讀寫型記憶體-四個Register寫入指令 (功能碼 31)
本範例將演示如何以主站使用功能碼 31 ,向位置 "C04 Dosing Target 批量控制 " ,將目標值設定為 +999,999,999。
根據 讀寫型記憶體列表:
起始位址:02 83
主站/PLC 位址(4xxxx 慣例):40644
Reg 長度:4
資料型式:int64
1. 數值轉換與資料準備 (Hex Data)
目標數值:
999,999,999(十進位)轉換為十六進位 (Hex): 經換算可得
3B 9A C9 FF。封裝為 Int64 格式 (8 Bytes): 由於功能碼 31 固定要求 8 個 Byte,前面需補零:
完整 64-bit 資料:
00 00 00 00 3B 9A C9 FF
2. 主站發送寫入指令 (TX 訊框)
Slave Address: 01 (本流量計地址)
Function Code: 31 (寫入指令)
起始暫存器位址: 02 83 (寫入C04 Dosing Target(64) 記憶體地址)
寫入資料: 00 00 00 00 3B 9A C9 FF (寫入資料C04 Dosing Target(64) )
CRC: 0B 7A (依 CRC 算法計算出的糾錯碼)
3. 從站回覆數據 (RX 訊框)
寫入指令成功時,從站會將收到的 TX 訊框完整回傳,作為檢查(確認)功能。
最后更新于