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