6ES72882DR160AA0通訊模塊
PLC在工業(yè)自動(dòng)化控制領(lǐng)域中占有很大的比例,些大型的控制系統(tǒng)中控制點(diǎn)數(shù)量達(dá)到上萬,采用常規(guī)的通道測量方法來對(duì)PLC通道測量往往需要花費(fèi)不少的時(shí)間,而且效率低。本文針對(duì)施耐德電氣的Quantum系列PLC,通過引入Modbus-TCP協(xié)議實(shí)現(xiàn)普通計(jì)算機(jī)與PLC通信,用普通計(jì)算機(jī)取代編程器去進(jìn)行通道測量試驗(yàn)。操作人員不需要對(duì)PLC和計(jì)算機(jī)的通信很熟悉就能夠很快地完成通道檢測,提高了工作效率。
2Modbus通信原理
2.1Modbus應(yīng)用層協(xié)議
Modbus應(yīng)用層協(xié)議位于ISO/OSI參考模型中的七層,它是通過請(qǐng)求-響應(yīng)機(jī)制實(shí)現(xiàn)不同設(shè)備間按客戶/服務(wù)器方式通信。首先客戶發(fā)送請(qǐng)求報(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所示:
圖1ModbusPDU結(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ò)通信中常用到的是公用功能碼,它們?cè)诓煌井a(chǎn)品之間的通信中具有統(tǒng)的定義。表給出了部分公用功能碼的定義。歡迎轉(zhuǎn)載,本文來自電子發(fā)燒友網(wǎng)
數(shù)據(jù)域內(nèi)存放著Modbus設(shè)備能夠識(shí)別的數(shù)據(jù)信息。由客戶發(fā)送到服務(wù)器的數(shù)據(jù)域含有功能碼操作的附加信息,在某些請(qǐng)求報(bào)文中數(shù)據(jù)域的長度為零。
6ES72882DR160AA0通訊模塊
由表1中可看出Modbus協(xié)議中依據(jù)數(shù)據(jù)屬性的區(qū)別定義了四種數(shù)據(jù)類型:離散輸入、線圈、輸入寄存器和輸出寄存器。這四種數(shù)據(jù)類型的組合構(gòu)成了Modbus數(shù)據(jù)模型。它們?cè)诓煌脑O(shè)備內(nèi)存中分配的方式是由生產(chǎn)廠家預(yù)先制定的,可以是在同區(qū)域,也可以是有各自的獨(dú)立區(qū)域或其他方式。
PDU的尋址方式也在Modbus應(yīng)用層協(xié)議中作出了具體的定義。在ModbusPDU中每個(gè)數(shù)據(jù)都賦予從0~65535中的個(gè)值作為該數(shù)據(jù)的地址。而在Modbus數(shù)據(jù)模型中,每種數(shù)據(jù)類型塊中的數(shù)據(jù)單元都定義了個(gè)從1到n(設(shè)備容量決定)的值作為其地址。
Modbus數(shù)據(jù)模型要與符合IEC-61131標(biāo)準(zhǔn)的實(shí)際設(shè)備內(nèi)存或者其他模型對(duì)應(yīng)起來,這方面的映射關(guān)系是由設(shè)備生產(chǎn)廠家制定的。圖二給出了Modbus尋址模型,設(shè)備內(nèi)存中的四種數(shù)據(jù)模式的組織方式是由廠家決定的。由圖2可知,個(gè)ModbusPDU地址所對(duì)應(yīng)的Modbus數(shù)據(jù)模型地址為該P(yáng)DU地址加1。