首頁技術文章 › PLC 通訊協定

PLC 通訊協定完整比較:Modbus、Profinet、EtherNet/IP、CC-Link 怎麼選

易歐特科技 · 工業通訊系列 · 含跨廠牌整合與上雲實務

「為什麼我的西門子 PLC 讀不到那台三菱變頻器?」——因為它們講不同的語言。工業通訊協定的世界之所以這麼亂,是因為每家大廠都推自己的協定,而且都不打算讓你輕鬆換牌子。

一、先分清楚兩個層次

實體層(線怎麼接) vs 協定層(話怎麼講)

· RS-485 是實體層——兩條線、可以串很多台、傳很遠(最長可達 1200 公尺)。它不是協定,它只規定電氣特性。
· Modbus RTU 是協定層——規定封包怎麼組、位址怎麼定、CRC 怎麼算。它通常跑在 RS-485 上

很多人把「RS-485」和「Modbus」當同義詞,其實不是。RS-485 上也可以跑別的協定。

二、常見協定一覽

協定陣營實體層典型用途
Modbus RTU開放RS-485 / RS-232變頻器、電表、感測器(最通用)
Modbus TCP開放乙太網路同上,但走網路線
Profinet西門子乙太網路西門子生態系的標配
Profibus DP西門子RS-485Profinet 的前輩,舊廠仍大量存在
EtherNet/IPRockwell / AB乙太網路美系設備、Allen-Bradley
CC-Link / CC-Link IE三菱專用 / 乙太網路三菱生態系
EtherCATBeckhoff乙太網路高速運動控制(微秒級)
OPC-UA開放乙太網路跨廠牌整合、上雲(見下文)
名字很像但完全不通:EtherNet/IP ≠ Ethernet ≠ EtherCAT

· Ethernet(乙太網路)是實體層,就是你家的網路線。
· EtherNet/IP 是 Rockwell 的工業協定(IP = Industrial Protocol,不是 Internet Protocol)。
· EtherCAT 是 Beckhoff 的高速協定,雖然用網路線但不能接一般交換器

這三個名字害慘無數人。買錯模組是常有的事,採購前務必看型錄上的協定全名。

三、Modbus 為什麼還沒死?

Modbus 是 1979 年的協定,又慢又陽春——沒有加密、沒有時間戳、一次最多讀 125 個暫存器。但它到 2026 年還是最通用的工業協定,原因很簡單:

實務上,只要遇到「這台雜牌感測器要怎麼接進 PLC」,答案九成是 Modbus RTU。

Modbus 的四種資料區

類型讀寫資料典型內容
Coil可讀可寫1 bit啟停命令、閥門開關
Discrete Input唯讀1 bit運轉狀態、故障旗標
Input Register唯讀16 bit量測值:溫度、pH、流量
Holding Register可讀可寫16 bit設定值:頻率命令、目標溫度
Modbus 現場最常見的三個坑

1. 位址從 0 還是從 1 開始? 這是 Modbus 的原罪。有些設備手冊寫 40001,實際要填 0;有些寫 0 就是 0。永遠以實測為準,先用 Modbus Poll 之類的工具讀通了再寫進 PLC。

2. 32 位元數值的高低位順序。 浮點數要佔兩個暫存器,但誰在前面?各家不一樣(Big-endian / Little-endian / Word-swap)。讀出來的數字如果荒謬(例如 pH = 3.2e+18),八成就是這個問題,把兩個 word 對調試試。

3. 小數點位置。 Modbus 傳的常是整數,pH 7.25 會傳成 725,你要自己除以 100。手冊上會寫「倍率」,漏看就會出現 pH 725 的荒謬告警。

四、跨廠牌整合怎麼做?

現實是:一個廠區裡常常有西門子的主控、三菱的舊設備、雜牌的感測器、還有一台 Rockwell 的包裝機。它們協定各不相同。

方案 1:通訊模組(硬體轉換)

加裝閘道器(Gateway),例如 Profinet ↔ Modbus TCP 的轉換模組。優點是穩定;缺點是每種組合都要一顆,而且要設定對應表。

方案 2:OPC-UA(推薦的長期解)

OPC-UA 是目前跨廠牌與上雲的事實標準

它不綁任何廠牌,主流 PLC(西門子 S7-1500、三菱 iQ-R、CODESYS 系)都內建或可加購 OPC-UA Server。上位系統(SCADA、雲端平台、Python 程式)只要當 OPC-UA Client 連過去,就能用統一的方式讀寫所有設備的標籤。

而且它內建加密與認證——這一點很重要,Modbus TCP 是完全裸奔的,任何人只要連得上網段就能寫入你的暫存器。

我們在「工廠水處理系統雲端監控」專案就是採用這個架構:現場 Siemens PLC 開 OPC-UA Server,資料經由閘道上雲,不需要在防火牆開放 PLC 的原生協定埠。

方案 3:直接讀 PLC 原生協定

例如用 Python 的 snap7 讀西門子、pymcprotocol 讀三菱。開發快,但耦合度高、換 PLC 就要重寫,而且大多沒有加密。適合做原型,不建議長期用在正式系統。

五、資安:這一段請務必看

工業協定的預設狀態是「完全不設防」

Modbus TCP、S7comm、EtherNet/IP 這些協定設計的年代,沒人想過工廠會連上網際網路。它們沒有身分驗證、沒有加密——只要封包送得到,就能改你的設定值、停你的泵浦。

絕對不要把 PLC 直接暴露在公網上。 這不是危言聳聽——網路上有專門搜尋暴露工控設備的搜尋引擎,台灣的水處理廠、太陽能電站被掃到的案例每年都有。

最低限度的做法:
· PLC 網段與辦公網段實體或 VLAN 隔離
· 需要遠端存取一律走 VPN,不要開通訊埠轉發(Port Forwarding)
· 上雲用 OPC-UA(有加密)或由閘道器主動向外推送資料,而不是讓外面連進來
· 預設密碼一定要改(這句話每年都要講一次,每年都還是有人沒改)

六、快速選型建議

情境建議
接雜牌感測器 / 變頻器Modbus RTU (RS-485)
純西門子廠區Profinet
純三菱廠區CC-Link IE
高速運動控制(多軸同步)EtherCAT
混廠牌整合 / 要上雲 / 要資安OPC-UA

小結

AI 產生的 PLC 程式,到底能不能信?

我們建了一套 20 題基準測試,題目全部來自真實案場,並且公開了完整結果——包含難看的那幾項: 編譯通過率 80~95%、品牌指令混用 0%、整體全對 55~65%。

還有一個對我們自己不利的發現:AI review 幫得上找出可疑點,但 finding 本身也會誤報、必須經規則層與測試結果校正;它更不能可靠地「修好」程式。

我們把 AI 寫 PLC 的準確率量出來了:20 題基準測試

通訊整合、上雲監控,我們實際做過

易歐特科技完成過工廠水處理系統雲端監控(Siemens PLC + OPC-UA 上雲)、太陽能電站監控、溫室與養殖環境雲端監控。跨廠牌整合、資安架構、SCADA 建置,可直接委託。

討論你的整合需求 →

或先免費試用 AI PLC 工具產生通訊設定程式碼

易歐特科技有限公司 · 工業自動化 PLC 程式設計與環控系統整合 · 委託開發