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