HUBPLC / 4xxxx
Modbus 位址計算
四種資料區、參考編號與零起算位址換算。
RESULT / 計算結果
- 參考編號
- 40001
- 零起算位址
- 0
- 從 1 起算序號
- 1
- HEX 位址
- 0000
- 讀取功能碼
- 03
公式與說明
使用教學 / PLC 與通訊
從輸入設定到結果判讀
先分清楚:參考編號、序號與封包位址
設備文件中的 40001 常用來表示第一個 Holding Register;在這個慣例下,從 1 起算序號是 1,封包內的零起算位址是 0。開頭的 4 表示資料區,不是要放進封包的位址,也不是讀取功能碼。
有些手冊直接列出零起算位址,有些通訊軟體會自動扣 1。先確認文件與軟體各自使用哪一種格式,再選擇本工具的「輸入種類」,避免重複扣 1。
操作案例:讀取文件上的 40010
- 「資料區」選 Holding Register (4x),「參考編號位數」選「五位數」。
- 「輸入種類」選「參考編號」,填入 40010。
- 結果應為零起算位址 9、從 1 起算序號 10、HEX 位址 0009、讀取功能碼 03。
計算方式是 40010 − 40001 = 9。如果通訊指令要求封包位址,這個例子的起始位址欄應為 00 09;若軟體要求 4xxxx 參考編號,則仍填 40010。不要只看欄位叫「Address」就假定位址格式。
| 資料區 | 第一個參考編號 | 零起算位址 | 讀取功能碼 |
|---|---|---|---|
| Coil | 00001 | 0 | 01 |
| Discrete Input | 10001 | 0 | 02 |
| Input Register | 30001 | 0 | 04 |
| Holding Register | 40001 | 0 | 03 |
六位數與輸入格式
文件若寫 400001,請選「六位數」;在 Holding Register 區,它仍對應零起算位址 0。工具的五位數模式支援位址 0–9998,六位數模式支援 0–65535。這是本工具的參考編號表示範圍,不代表設備實際開放所有位址。
參考編號必須符合所選位數,例如 Coil 的第一筆要輸入 00001。零起算位址與序號欄使用十進位整數;若文件列 0x0009,請選「零起算位址」並輸入 9。切換資料區、位數或輸入種類後,請重新確認欄位值。
讀不到或讀到隔壁資料時
- 差一筆:核對主站是否已自動扣 1,以及文件是否本來就是零起算。
- 資料區錯誤:30001 與 40001 雖然都換算成位址 0,但讀取功能碼分別是 04 與 03,不能互換。
- 數值異常:若資料是 32 位元,通常需依手冊讀取連續兩個 16 位元暫存器,再用 暫存器轉換工具 解碼。
- 設備回報非法位址:檢查起始位址與讀取數量是否跨越未定義區域。工具只換算編號,不會查詢設備的暫存器表。