Modbus TCP 是一種用於工業自動化的通訊協議。它允許 PLC(可程式設計邏輯控制器)、感測器、HMI(人機介面)和 SCADA 系統透過標準乙太網相互通訊。
想想工廠車間裝置、樓宇自動化和工業物聯網裝置。
工作原理
Modbus TCP 將傳統的 Modbus 協議封裝在 TCP/IP 資料包中。預設使用埠 502。
客戶端-伺服器模型:
- 客戶端(master)請求資料
- 伺服器(從機)響應感測器讀數、控制狀態等。
一個客戶端可以與同一網路上的多個伺服器通訊。
Modbus TCP 讀/寫什麼
工業裝置將資料公開為暫存器:
線圈 (0x): 單位元讀/寫(數字輸出、繼電器) 離散輸入 (1x): 一位只讀(感測器、開關) 輸入暫存器 (3x): 16位只讀(模擬感測器、儀表) 儲存暫存器 (4x): 16 位讀/寫(設定值、引數)
示例:溫度感測器可能會將其讀數公開為輸入暫存器 30001,返回類似 2350 (23.5°C) 的值。
常見用途
工廠自動化: PLC 控制傳送帶、機械臂、裝配線
大廈管理: HVAC 系統、照明控制、電能表
水/廢水: 泵控制、流量計、液位感測器
石油和天然氣: 管道監控、壓力感測器、閥門控制
能量: 太陽能逆變器、電池系統、電網監控
Modbus TCP 與 Modbus RTU
Modbus RTU: 序列通訊 (RS-485)。標準較舊,速度較慢,在乙太網不可用時使用。
Modbus TCP: 基於乙太網。更快、更容易與現代網路整合,距離更遠。
大多數新安裝都使用 Modbus TCP。傳統系統通常使用 RTU。
設定 Modbus TCP 裝置
網路配置:
- 為每個裝置分配靜態IP
- 對工業網路使用單獨的 VLAN(安全最佳實踐)
- 埠 502 必須在防火牆上開啟
常見問題:
- IP 衝突(始終使用靜態 IP)
- 錯誤的暫存器定址(檢查裝置文件)
- 防火牆攔截502埠
- 網路交換機無法正確處理工業流量
安全問題
Modbus TCP 沒有內建安全性。沒有身份驗證,沒有加密。
最佳實踐:
- 將工業網路與IT網路隔離
- 使用 VLAN 和防火牆規則
- 用於遠端訪問的 VPN
- 切勿將 Modbus 裝置直接暴露到網際網路
- 考慮 Modbus TCP 安全性(新增 TLS 加密)
工業網路成為目標。細分至關重要。
軟體工具
測試/故障排除:
- ModScan(Windows Modbus 掃描器)
- Modbus Poll/Slave(模擬和測試)
- pyModbus(Python 庫)
- Node-RED(帶有 Modbus 節點的視覺自動化)
SCADA 平臺:
- 點火
- 工廠談話
- WinCC
- Wonderware
底線
Modbus TCP 是工業乙太網通訊的標準協議。簡單,得到廣泛支援,但需要適當的網路分段以確保安全。
如果您透過乙太網連線 PLC、感測器或工業裝置,您可能會在埠 502 上使用 Modbus TCP。
始終使用靜態 IP,與 IT 網路隔離,並記錄您的暫存器對映。