當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]本文針對施耐德電氣的Quantum系列PLC,通過引入Modbus-TCP協(xié)議實(shí)現(xiàn)普通計(jì)算機(jī)與PLC通信,用普通計(jì)算機(jī)取代編程器去進(jìn)行通道測量試驗(yàn)。操作人員不需要對PLC和計(jì)算機(jī)的通信很熟悉就能夠很快地完成通道檢測,提高了工作效率。

1 引言
Modbus應(yīng)用層協(xié)議由美國Modicon公司(現(xiàn)為施耐德電氣旗下品牌)于1979年開發(fā)的,用于實(shí)現(xiàn)其PLC產(chǎn)品與上位機(jī)的通信。由于其簡單易用,得到了廣大工業(yè)自動(dòng)化儀器儀表企業(yè)的采納與支持,實(shí)際上已成為了業(yè)界標(biāo)準(zhǔn),我國標(biāo)準(zhǔn)化委員會(huì)已將Modbus協(xié)議作為我國工業(yè)自動(dòng)化的行業(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è)自動(dòng)化控制領(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í)別的數(shù)據(jù)信息。由客戶發(fā)送到服務(wù)器的數(shù)據(jù)域含有功能碼操作的附加信息,在某些請求報(bào)文中數(shù)據(jù)域的長度為零。

表一


由表1中可看出Modbus協(xié)議中依據(jù)數(shù)據(jù)屬性的區(qū)別定義了四種數(shù)據(jù)類型:離散輸入、線圈、輸入寄存器和輸出寄存器。這四種數(shù)據(jù)類型的組合構(gòu)成了Modbus數(shù)據(jù)模型。它們在不同的設(shè)備內(nèi)存中分配的方式是由生產(chǎn)廠家預(yù)先制定的,可以是在同一區(qū)域,也可以是有各自的獨(dú)立區(qū)域或其他方式。

圖2 Modbus PDU尋址方式


PDU的尋址方式也在Modbus應(yīng)用層協(xié)議中作出了具體的定義。在Modbus PDU中每一個(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)存或者其他模型對應(yīng)起來,這方面的映射關(guān)系是由設(shè)備生產(chǎn)廠家制定的。圖二給出了Modbus尋址模型,設(shè)備內(nèi)存中的四種數(shù)據(jù)模式的組織方式是由廠家決定的。由圖2可知,一個(gè)Modbus PDU地址所對應(yīng)的Modbus數(shù)據(jù)模型地址為該P(yáng)DU地址加1。


2.2 Modbus通信實(shí)現(xiàn)方式
要實(shí)現(xiàn)設(shè)備間的通信,需要將Modbus應(yīng)用層協(xié)議嵌入到ISO/OSI參考模型中的低層協(xié)議中。現(xiàn)行的通信方式有三種:
(1) 通過串行鏈路實(shí)現(xiàn)的異步數(shù)據(jù)傳輸(Modbus-RTU and Modbus-ASCII),又稱標(biāo)準(zhǔn)Modbus通信;
(2) 高速令牌環(huán)網(wǎng)通信(Modbus-Plus);
(3) 基于TCP/IP的客戶/服務(wù)器結(jié)構(gòu)通信(Modbus-TCP)。


表2給出這三種通信方式與ISO/OSI參考模型的比較。


在不同的通信方式中都要對Modbus PDU進(jìn)行封裝,組成不同的Modbus幀,這種幀在Modbus協(xié)議中有專有的名詞稱之為應(yīng)用數(shù)據(jù)單元(ADU)。在Modbus-RTU和Modbus-Plus通信中采用的是標(biāo)準(zhǔn)應(yīng)用數(shù)據(jù)單元,它只是在PDU前面加上了占用一個(gè)字節(jié)的附加地址和在PDU結(jié)束增加了占用兩個(gè)字節(jié)的校驗(yàn)碼。在Modbus-TCP/IP網(wǎng)絡(luò)通信中需要對Modbus應(yīng)用層協(xié)議進(jìn)行重新封裝,該封裝是通過在Modbus PDU前加上了Modbus應(yīng)用層協(xié)議幀頭來實(shí)現(xiàn)。
表2 三種Modbus通信方式與OSI參考模型比較


圖3 兩種ADU比較


基于串行鏈路的Modbus通信網(wǎng)絡(luò)是一種主從式網(wǎng)絡(luò),在串行網(wǎng)絡(luò)中只允許存在一個(gè)主節(jié)點(diǎn)和最多247個(gè)從節(jié)點(diǎn),在這種網(wǎng)絡(luò)下,標(biāo)準(zhǔn)Modbus ADU中的附加地址域只包含從節(jié)點(diǎn)的地址,可尋址范圍是0~247,地址0作為廣播模式地址使用,從節(jié)點(diǎn)地址的有效取值范圍是1~247,并且每個(gè)從節(jié)點(diǎn)的地址必須是唯一的,主節(jié)點(diǎn)不存在具體的地址值。主節(jié)點(diǎn)設(shè)備將要訪問的從節(jié)點(diǎn)設(shè)備的地址放入到請求幀的地址域中,當(dāng)該地址的從節(jié)點(diǎn)設(shè)備作出響應(yīng)時(shí),將會(huì)把從節(jié)點(diǎn)設(shè)備的地址復(fù)制到響應(yīng)幀的地址域中,主節(jié)點(diǎn)設(shè)備通過該地址得知是由哪個(gè)從節(jié)點(diǎn)設(shè)備發(fā)來的響應(yīng)。
校驗(yàn)域存放了根據(jù)報(bào)文內(nèi)容經(jīng)由冗余校驗(yàn)算法計(jì)算所得到的結(jié)果。在基于串行鏈路的Modbus通信網(wǎng)絡(luò)中有兩種傳輸方式:RTU和ASCII,這兩種傳輸方式的冗余校驗(yàn)算法是不同的。


采用RTU通信模式要比ASCII模式在同樣波特率下能傳輸更多信息,在RTU模式底下是以二進(jìn)制編碼方式對傳輸數(shù)據(jù)進(jìn)行編碼,報(bào)文中每一個(gè)字節(jié)(8位二進(jìn)制位)包含了兩個(gè)十六進(jìn)制字符,同一報(bào)文內(nèi)的字符必須連續(xù)傳輸。RTU模式字節(jié)傳輸格式由1位起始位,8位數(shù)據(jù)位,1位奇偶檢驗(yàn)位和1位停止位依次組成,共占用11位二進(jìn)制位。當(dāng)不使用奇偶檢驗(yàn)時(shí),奇偶校驗(yàn)位也作停止位使用,此時(shí)共有兩位停止位。RTU傳輸模式下幀的差錯(cuò)校驗(yàn)域內(nèi)存放的是報(bào)文經(jīng)過循環(huán)冗余檢驗(yàn)(CRC)算法計(jì)算得出的結(jié)果。


采用ASCII通信模式時(shí),每一個(gè)字節(jié)(8位二進(jìn)制位)用兩個(gè)ASCII字符表示。由于每個(gè)字節(jié)都要用兩個(gè)字符表示,數(shù)據(jù)域的長度是RTU模式的兩倍,顯然在該模式下的傳輸效率要比RTU模式低。該模式的字節(jié)傳輸格式與RTU模式相似,只是數(shù)據(jù)位置占用7個(gè)二進(jìn)制位。ASCII模式下幀的差錯(cuò)檢驗(yàn)算法為縱向冗余校驗(yàn)(LRC)。



Modbus-TCP實(shí)現(xiàn)了在TCP/IP以太網(wǎng)上以客戶/服務(wù)器方式的Modbus報(bào)文通信。這種通信模型是將Modbus協(xié)議作為應(yīng)用層協(xié)議嵌入到低層TCP/IP協(xié)議中構(gòu)成的。與標(biāo)準(zhǔn)Modbus幀相比,Modbus-TCP幀中的尋址與校驗(yàn)交由TCP/IP協(xié)議完成。如圖3所示,使用封裝的方法將Modbus PDU嵌入到TCP報(bào)文中形成Modbus-TCP幀,該幀在PDU之前形成了一個(gè)占用7個(gè)字節(jié)大小的MBAP幀頭,幀頭可以劃分為四部分,如表3所示。


交易標(biāo)識(shí)符用于交易校驗(yàn),服務(wù)器端節(jié)收到由客戶發(fā)來的請求交易標(biāo)識(shí)符并復(fù)制到響應(yīng)中。協(xié)議標(biāo)識(shí)符用于系統(tǒng)內(nèi)多路復(fù)用傳輸,取0值時(shí)代表Modbus協(xié)議傳輸。長度域記錄了該域后續(xù)報(bào)文的字節(jié)長度(包括設(shè)備識(shí)別符和數(shù)據(jù)域),用于服務(wù)器識(shí)別報(bào)文的傳輸結(jié)束。設(shè)備標(biāo)識(shí)符用于系統(tǒng)內(nèi)路由,當(dāng)需要與通過以太網(wǎng)網(wǎng)關(guān)連接的Modbus串行鏈路或Modbus-Plus通信網(wǎng)絡(luò)上的設(shè)備進(jìn)行通信時(shí),該標(biāo)識(shí)符域的值由Modbus-TCP客戶在請求幀中設(shè)置,服務(wù)器接收到后,在響應(yīng)幀中復(fù)制該值。

3 Modbus-TCP應(yīng)用


針對施奈德電氣旗下的Quantum系列PLC,為了加快完成這方面的工作,采用自編寫的程序?qū)崿F(xiàn)計(jì)算機(jī)對PLC的四種數(shù)據(jù)類型直接操作。硬件方面,Quantum系列PLC有能提供以太網(wǎng)接口的網(wǎng)絡(luò)模塊,通過底板與CPU通信,它作為Modbus-TCP通信的服務(wù)器,不需要我們做其他編程工作。PLC為上文所陳述的四種數(shù)據(jù)類型定義了四個(gè)獨(dú)立的內(nèi)存區(qū),其中離散輸入為1區(qū),線圈為0區(qū),輸入寄存器為3區(qū),輸出寄存器為4區(qū),尋址方式為區(qū)號(hào)加上5位的十進(jìn)制地址,當(dāng)輸入地址不足6位時(shí),系統(tǒng)將自動(dòng)認(rèn)為最高位數(shù)值為內(nèi)存分區(qū)號(hào),其后數(shù)值為該區(qū)域內(nèi)的地址編號(hào)。由于操作的目的在于檢驗(yàn)PLC系統(tǒng)中IO通道的正確性,所需要使用的功能碼有:讀線圈01、讀離散輸入02、讀保持寄存器03、讀輸入寄存器04、寫多線圈15和寫多個(gè)寄存器16。


一次完整的Modbus-TCP通信在時(shí)間上可以劃分為三個(gè)步驟:連接的建立、Modbus數(shù)據(jù)傳輸和連接的釋放。在進(jìn)行Modbus數(shù)據(jù)傳輸之前首先要建立起一個(gè)連接,設(shè)備是通過在502端口提供一個(gè)監(jiān)聽口(socket)來允許與其它設(shè)備建立新連接和進(jìn)行數(shù)據(jù)傳輸。當(dāng)某一設(shè)備需要與遠(yuǎn)方的服務(wù)器進(jìn)行數(shù)據(jù)交換時(shí),必須通過自身大于1024的端口與服務(wù)器的502端口建立連接。TCP連接建立后,客戶端設(shè)備便可以發(fā)送Modbus請求幀到服務(wù)器,服務(wù)器接收到請求后作出響應(yīng),向連接客戶的端口發(fā)送響應(yīng)報(bào)文。傳輸結(jié)束時(shí),客戶端負(fù)責(zé)進(jìn)行釋放通信連接的初始化工作。


程序在DOS模式下運(yùn)行,提供有以下運(yùn)行參數(shù):
-ip: 即目標(biāo)服務(wù)器的IP地址;
-p: PLC的Modbus通信端口,默認(rèn)值為502;
-c: 服務(wù)器執(zhí)行功能碼的操作對象數(shù)量;
-r: 操作的起始地址;
-w: 寫操作參數(shù);
-a: 自動(dòng)操作模式;
-t: 自動(dòng)操作的時(shí)間間隔;
-b: 線圈寫操作的布爾值。

4 結(jié)束語


通過以太網(wǎng)來實(shí)現(xiàn)計(jì)算機(jī)直接讀寫PLC數(shù)據(jù),使得廠級監(jiān)控網(wǎng)絡(luò)能夠直接與現(xiàn)場設(shè)備通信,監(jiān)控人員能夠在熟悉的計(jì)算機(jī)畫面上對PLC通道進(jìn)行檢測,與依靠人為施加信號(hào)來進(jìn)行檢測相比,前者明顯地降低了操作人員的工作量,而且當(dāng)需要檢測的IO點(diǎn)數(shù)量越大時(shí),效率越高。本程序只是Modbus與TCP/IP協(xié)議結(jié)合的一個(gè)簡單應(yīng)用,雖然以太網(wǎng)的實(shí)時(shí)性、穩(wěn)定性和抗干擾性已得到很大的發(fā)展,但要把以太網(wǎng)真正應(yīng)用到實(shí)際的控制中還有很多技術(shù)難題,這還要走很長一段路。不過以太網(wǎng)進(jìn)入自動(dòng)控制領(lǐng)域已是必然趨勢,它將使控制變得更加簡單和清楚。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉