HUBPLC / 4xxxx

Modbus 位址計算

四種資料區、參考編號與零起算位址換算。

● 在瀏覽器內運算

RESULT / 計算結果

參考編號
40001
零起算位址
0
從 1 起算序號
1
HEX 位址
0000
讀取功能碼
03
公式與說明
參考編號是文件慣例;實際 Modbus 封包使用零起算位址。五位數慣例可表示 0–9998,六位數可表示 0–65535。

使用教學 / PLC 與通訊

從輸入設定到結果判讀

先分清楚:參考編號、序號與封包位址

設備文件中的 40001 常用來表示第一個 Holding Register;在這個慣例下,從 1 起算序號是 1,封包內的零起算位址是 0。開頭的 4 表示資料區,不是要放進封包的位址,也不是讀取功能碼。

有些手冊直接列出零起算位址,有些通訊軟體會自動扣 1。先確認文件與軟體各自使用哪一種格式,再選擇本工具的「輸入種類」,避免重複扣 1。

操作案例:讀取文件上的 40010

  1. 「資料區」選 Holding Register (4x),「參考編號位數」選「五位數」。
  2. 「輸入種類」選「參考編號」,填入 40010。
  3. 結果應為零起算位址 9、從 1 起算序號 10、HEX 位址 0009、讀取功能碼 03。

計算方式是 40010 − 40001 = 9。如果通訊指令要求封包位址,這個例子的起始位址欄應為 00 09;若軟體要求 4xxxx 參考編號,則仍填 40010。不要只看欄位叫「Address」就假定位址格式。

本工具採用的五位數參考編號慣例
資料區第一個參考編號零起算位址讀取功能碼
Coil00001001
Discrete Input10001002
Input Register30001004
Holding Register40001003

六位數與輸入格式

文件若寫 400001,請選「六位數」;在 Holding Register 區,它仍對應零起算位址 0。工具的五位數模式支援位址 0–9998,六位數模式支援 0–65535。這是本工具的參考編號表示範圍,不代表設備實際開放所有位址。

參考編號必須符合所選位數,例如 Coil 的第一筆要輸入 00001。零起算位址與序號欄使用十進位整數;若文件列 0x0009,請選「零起算位址」並輸入 9。切換資料區、位數或輸入種類後,請重新確認欄位值。

讀不到或讀到隔壁資料時

  • 差一筆:核對主站是否已自動扣 1,以及文件是否本來就是零起算。
  • 資料區錯誤:30001 與 40001 雖然都換算成位址 0,但讀取功能碼分別是 04 與 03,不能互換。
  • 數值異常:若資料是 32 位元,通常需依手冊讀取連續兩個 16 位元暫存器,再用 暫存器轉換工具 解碼。
  • 設備回報非法位址:檢查起始位址與讀取數量是否跨越未定義區域。工具只換算編號,不會查詢設備的暫存器表。

範例為離線計算與格式核對,未連接實際 PLC、傳送器或 RS485 設備驗證。設備量程、資料格式與通訊設定仍須依對應型號手冊確認。

規格參考:Modbus Organization 官方規格入口(Application Protocol V1.1b3、Serial Line V1.02)。