Modbus通信在PLC通道檢測中的應用
1 引言
Modbus應用層協議由美國Modicon公司(現為施耐德電氣旗下品牌)于1979年開發的,用于實現其PLC產品與上位機的通信。由于其簡單易用,得到了廣大工業自動化儀器儀表企業的采納與支持,實際上已成為了業界標準,我國標準化委員會已將Modbus協議作為我國工業自動化的行業標準,分別制定了GB/Z19582.1-2004(Modbus應用層協議),GB/Z19582.2-2004(串行鏈路上的Modbus)和GB/Z19582.3-2004(Modbus-TCP)三個標準。Modbus應用層協議位于OSI模型中的第七層,將它嵌入到不同的低層協議中形成了三種具體的通信方式:Modbus串行鏈路、Modbus-Plus和Modbus-TCP,三種通信網絡上的設備可以通過網關來達到數據交換的目的。這些年來以太網的繁榮壯大使得將Modbus協議嵌入到TCP/IP協議中實現Modbus設備間的通信非常必要,鑒于此,1999年施奈德電氣發布了Modbus-TCP協議,使得以太網上的Modbus設備可以通過502端口進行通信。
PLC在工業自動化控制領域中占有很大的比例,一些大型的控制系統中控制點數量達到上萬,采用常規的通道測量方法來對PLC通道測量往往需要花費不少的時間,而且效率低。本文針對施耐德電氣的Quantum系列PLC,通過引入Modbus-TCP協議實現普通計算機與PLC通信,用普通計算機取代編程器去進行通道測量試驗。操作人員不需要對PLC和計算機的通信很熟悉就能夠很快地完成通道檢測,提高了工作效率。
2 Modbus通信原理
2.1 Modbus應用層協議
Modbus應用層協議位于ISO/OSI參考模型中的第七層,它是通過請求-響應機制實現不同設備間按客戶/服務器方式通信。首先客戶發送請求報文到服務器,服務器接收到報文后進行差錯校驗,若報文無誤則執行操作,并返回響應報文到客戶端,若傳輸出現錯誤則返回異常響應報文,從而完成一次通信周期。Modbus協議定義了一個與傳輸層無關報文格式,該報文稱之為協議數據元(PDU),協議數據元由占用一個字節的功能碼和最長252個字節的數據域組成,其組成形式如下圖1所示:
圖1 Modbus PDU結構
功能碼的有效取值范圍是1~255,功能碼分類分為三類:公用功能碼、用戶自定義功能碼和保留功能碼。由客戶端發送到服務器的報文中的功能碼指示服務器所要執行的操作,一些功能碼還帶有子功能碼,用于執行多步操作。如果服務器接收到的報文正確并執行,由服務器返回的報文中的功能碼告訴客戶端設備該信息為按照該功能碼執行的結果。Modbus網絡通信中常用到的是公用功能碼,它們在不同公司產品之間的通信中具有統一的定義。表一給出了部分公用功能碼的定義。
數據域內存放著Modbus設備能夠識別的數據信息。由客戶發送到服務器的數據域含有功能碼操作的附加信息,在某些請求報文中數據域的長度為零。
表一
評論