工業通訊的關鍵要素:TCP/IP協定深度分析
究竟什麼是 TCP/IP協定 工程師們常提到的是什麼?工業設施最擔心的不是設備太多,而是突然無法將它們連接起來。
例如,PLC 與主機斷開連接;HMI 螢幕無法刷新;SCADA 系統無法收集資料;與變頻器通訊逾時;或機器人報告網路異常等問題。
此時,僅僅說「存在網路問題」涵蓋了太多可能性,使得故障排除變得困難。
要徹底調查這個問題,我們首先必須了解 TCP/IP。
TCP/IP並非獨立的協議,而是一套全面的網路通訊標準。它支撐著許多關鍵應用,涵蓋網際網路、工業乙太網路、PLC通訊、遠端監控系統、MES資料擷取以及閘道資料傳輸等領域。
通常,它可以分為四層:網路介面層。
網路層。
傳輸層。
應用層。
這四層從下到上分別針對一個具體問題。

Ⅰ.網路介面層
最底層是網路介面層。
它判斷設備是否能夠實際連接到網路。
PLC、HMI、工業PC、伺服驅動器、機器人控制櫃和工業交換器都需要透過乙太網路線、光纖或無線網路進行連接。網路卡指示燈是否亮起、乙太網路線是否正常運作、交換器連接埠是否有故障、現場幹擾程度等因素都屬於此範疇。
這一層通常使用 MAC 位址。
IP 位址決定最終目的地,而 MAC 位址則識別本地網路中的下一跳設備。
例如,當主機需要存取PLC時,資料可能會先經過交換機,然後才能到達PLC的網路連接埠。在轉送過程中,交換器主要依賴MAC位址。
工業環境中常見的故障(包括網路電纜損壞、RJ45 連接器接觸不良、交換器連接埠故障、光模組異常或屏蔽接地不足)應先在此層級進行診斷。
這一層也會執行訊框校驗,例如乙太網路中使用的 CRC 校驗,用於偵測連結傳輸過程中的錯誤。但是,它的主要作用是識別錯誤,而不是保證服務資料的交付。
二、網路層
第二層是網際網路層,其核心元件是 IP(通常稱為 IP 位址),它負責尋址和資料轉送。
在現場,PLC 的 IP 位址可能是 192.168.1.10,HMI 的 IP 位址可能是 192.168.1.20,工業控制電腦的 IP 位址可能是 192.168.1.100。要在設備之間進行通信,首先需要知道彼此的 IP 位址。
如果設備位於同一網段,則通常由交換器轉送。
當需要透過不同的網段存取中央控制室伺服器時(例如車間設備需要存取),則需要網關或路由器。
IP協定只能確保盡力轉發,不能保證送達。
由於路由配置錯誤,封包可能會遺失、亂序或無法到達目標設備。當 TTL 逾時時,資料包將被丟棄,以防止網路中出現無限循環。
因此,當遇到網路段之間的通訊故障、臨時 ping 連接隨後斷開或不同網路區段之間的設備不相容等問題時,應重點檢查 IP 位址、子網路遮罩、網關和路由配置。
我們不應該立即懷疑PLC程式。很多時候,問題僅在於位址配置錯誤或網關設定錯誤。
三傳輸層
第三層是傳輸層。
這一層解決的不是“使用哪個設備”,而是“在該設備中提供哪種服務”。
這需要使用連接埠號。
例如,Modbus TCP 通常使用連接埠 502,OPC UA 使用連接埠 4840,MQTT 使用連接埠 1883,HTTPS 使用連接埠 443。
透過IP位址查找設備。
透過連接埠號碼查找服務。
最常用的傳輸協定是 TCP 和 UDP。

TCP 是一種連線導向的協定。在傳輸資料之前,通訊雙方必須先建立連線—通常稱為三次握手。連線建立後,TCP 會採用序號、確認、重傳和視窗控制等機制來確保可靠且有序的資料傳輸。
因此,TCP被廣泛應用於Modbus TCP、OPC UA、資料庫資料擷取、MES資料上傳以及主機通訊等應用。這些應用場景都非常重視可靠性-指令必須準確執行,資料不能遺失,採集結果必須一致。
然而,TCP 也存在一些缺點。它開銷較大,且對網路抖動、丟包和延遲更為敏感。網路品質差時,可能會出現連線逾時、重傳次數增加、視訊更新率降低等問題。
另一方面,UDP 不建立連接,也不處理重傳或排序;一旦資料發送出去,就交給網路和上層應用程式進行處理。
聽起來可能不太可靠,但它速度快、成本低。它也常用於需要高即時效能的場景,例如裝置發現、廣播訊息、部分狀態報告和時間同步。
因此,簡單地將 TCP 稱為更優而將 UDP 稱為劣等是不恰當的。為了確保可靠性,應選擇 TCP;為了降低延遲和減少開銷,UDP 可能更合適。最終的選擇取決於具體的應用場景需求。
IV.應用層
最頂層是應用層。
這一層是工程師最常與之互動的部分。
Modbus TCP、OPC UA、EtherNet/IP、Profinet、MQTT、SNMP、NTP 和 HTTP/HTTPS 等協定都可以在該層或附近層中理解。
它們針對具體的商業問題。
Modbus TCP 讀/寫暫存器。
OPC UA 支援資料擷取和系統整合。
MQTT 用於設備雲端整合和遠端監控。
SNMP 管理交換器和網關等網路設備。
NTP執行時間同步。
HTTP/HTTPS 通常用於裝置 Web 設定和平台介面。
請注意,即使底層已連接,也不能保證應用程式功能正常。

例如,雖然可以成功 ping 通 PLC,但 Modbus TCP 無法讀取資料——這可能是由於連接埠 502 未啟用,或暫存器位址、功能代碼、站號或防火牆配置不正確。
如果 OPC UA 無法連接,可能不是由於網路線問題;而是由於憑證、安全性原則、連接埠或服務狀態不符造成的。
因此,在討論過時的做法時,我們不應該僅僅問它們是否可行;相反,我們還必須詢問它們在多大程度上得到了實施。
五、完整的資料鏈是如何運作的?
以主機讀取PLC暫存器為例。
應用層首先產生一個 Modbus TCP 請求。
傳輸層包含 TCP 訊息,用於指定連接埠和連線狀態。
網路層新增 IP 訊息,指定來源位址和目標位址。
網路介面層進一步將資料封裝到乙太網路訊框中,然後透過網路卡和交換器進行傳輸。
收到PLC後,依照拆卸過程的相反順序進行操作。
首先,檢查乙太網路幀。
現在我們來看一下IP位址。
然後將其傳遞給 TCP。
最後,將其移交給 Modbus 服務進行處理。
這是分層封裝。
分層價值體系遵循特定的順序。如果底層發生故障,不要急於檢查軟體;如果 IP 位址錯誤,請勿懷疑協定;如果連接埠未開啟,請勿先修改程式;如果應用程式參數錯誤,請勿責怪交換器。
Ⅵ.現場故障診斷和排除是逐層進行的。
不要隨意猜測網路問題;要從第四層開始向上調查。
首先,檢查網路介面層:乙太網路電纜、連接埠、網路卡指示燈、交換器、光模組、接地和乾擾。
檢查網路層:IP 位址、子網路遮罩、閘道、網路區段和路由。
再次檢查傳輸層:連接埠是否打開,TCP 連線是否已建立,是否存在逾時,以及是否頻繁發生重新連線。
最後,檢查應用層:網站編號、暫存器、功能碼、憑證、帳戶權限、擷取週期和協定配置。
透過這種方式檢查,問題就會變得清晰得多。
七、總結
TCP/IP 有廣泛的應用-它不限於網際網路工程師;它在工業環境中也同樣不可或缺。
網路介面層解決的是「是否可以建立連線」的問題。
網路層解決了「去哪裡」的問題。
傳輸層解決「如何提供服務」的問題。
應用層負責處理業務流程之間的通訊。
PLC 斷開連線、HMI 更新失敗、SCADA 無法檢索資料、閘道上傳失敗等問題都可以在這四個層面內進行分析。
理解 TCP/IP 協定的關鍵不在於記住協定模型,而是知道在實務上遇到問題時從哪裡入手。
這些正是工程師真正需要的技能。










