《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > Modbus通信在PLC通道檢測中的應用
Modbus通信在PLC通道檢測中的應用
電氣時代
吳錦源 徐麗杰
摘要: PLC在工業自動化控制領域中占有很大的比例,一些大型的控制系統中控制點數量達到上萬,采用常規的通道測量方法來對PLC通道測量往往需要花費不少的時間,而且效率低。本文針對施耐德電氣的Quantum系列PLC,通過引入Modbus-TCP協議實現普通計算機與PLC通信,用普通計算機取代編程器去進行通道測量試驗。操作人員不需要對PLC和計算機的通信很熟悉就能夠很快地完成通道檢測,提高了工作效率。
Abstract:
Key words :

1 引言

    Modbus" title="Modbus">Modbus應用層協議由美國Modicon公司(現為施耐德電氣旗下品牌)于1979年開發的,用于實現其PLC" title="PLC">PLC產品與上位機的通信" title="通信">通信。由于其簡單易用,得到了廣大工業自動化儀器儀表企業的采納與支持,實際上已成為了業界標準,我國標準化委員會已將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和計算機的通信很熟悉就能夠很快地完成通道檢測" title="通道檢測">通道檢測,提高了工作效率。

2 Modbus通信原理

2.1 Modbus應用層協議

    Modbus應用層協議位于ISO/OSI參考模型中的第七層,它是通過請求-響應機制實現不同設備間按客戶/服務器方式通信。首先客戶發送請求報文到服務器,服務器接收到報文后進行差錯校驗,若報文無誤則執行操作,并返回響應報文到客戶端,若傳輸出現錯誤則返回異常響應報文,從而完成一次通信周期。Modbus協議定義了一個與傳輸層無關報文格式,該報文稱之為協議數據元(PDU),協議數據元由占用一個字節的功能碼和最長252個字節的數據域組成,其組成形式如下圖1所示:

圖1 Modbus PDU結構

     功能碼的有效取值范圍是1~255,功能碼分類分為三類:公用功能碼、用戶自定義功能碼和保留功能碼。由客戶端發送到服務器的報文中的功能碼指示服務器所要執行的操作,一些功能碼還帶有子功能碼,用于執行多步操作。如果服務器接收到的報文正確并執行,由服務器返回的報文中的功能碼告訴客戶端設備該信息為按照該功能碼執行的結果。Modbus網絡通信中常用到的是公用功能碼,它們在不同公司產品之間的通信中具有統一的定義。表一給出了部分公用功能碼的定義。

    數據域內存放著Modbus設備能夠識別的數據信息。由客戶發送到服務器的數據域含有功能碼操作的附加信息,在某些請求報文中數據域的長度為零。

表一

    由表1中可看出Modbus協議中依據數據屬性的區別定義了四種數據類型:離散輸入、線圈、輸入寄存器和輸出寄存器。這四種數據類型的組合構成了Modbus數據模型。它們在不同的設備內存中分配的方式是由生產廠家預先制定的,可以是在同一區域,也可以是有各自的獨立區域或其他方式。

 

圖2 Modbus PDU尋址方式

    PDU的尋址方式也在Modbus應用層協議中作出了具體的定義。在Modbus PDU中每一個數據都賦予從0~65535中的一個值作為該數據的地址。而在Modbus數據模型中,每一種數據類型塊中的數據單元都定義了一個從1到n(設備容量決定)的值作為其地址。Modbus數據模型要與符合IEC-61131標準的實際設備內存或者其他模型對應起來,這方面的映射關系是由設備生產廠家制定的。圖二給出了Modbus尋址模型,設備內存中的四種數據模式的組織方式是由廠家決定的。由圖2可知,一個Modbus PDU地址所對應的Modbus數據模型地址為該PDU地址加1。

2.2 Modbus通信實現方式

    要實現設備間的通信,需要將Modbus應用層協議嵌入到ISO/OSI參考模型中的低層協議中。現行的通信方式有三種:

    (1) 通過串行鏈路實現的異步數據傳輸(Modbus-RTU and Modbus-ASCII),又稱標準Modbus通信;
    (2) 高速令牌環網通信(Modbus-Plus);
    (3) 基于TCP/IP的客戶/服務器結構通信(Modbus-TCP)。

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

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

 

圖3 兩種ADU比較

    基于串行鏈路的Modbus通信網絡是一種主從式網絡,在串行網絡中只允許存在一個主節點和最多247個從節點,在這種網絡下,標準Modbus ADU中的附加地址域只包含從節點的地址,可尋址范圍是0~247,地址0作為廣播模式地址使用,從節點地址的有效取值范圍是1~247,并且每個從節點的地址必須是唯一的,主節點不存在具體的地址值。主節點設備將要訪問的從節點設備的地址放入到請求幀的地址域中,當該地址的從節點設備作出響應時,將會把從節點設備的地址復制到響應幀的地址域中,主節點設備通過該地址得知是由哪個從節點設備發來的響應。

    校驗域存放了根據報文內容經由冗余校驗算法計算所得到的結果。在基于串行鏈路的Modbus通信網絡中有兩種傳輸方式:RTU和ASCII,這兩種傳輸方式的冗余校驗算法是不同的。

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

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

    Modbus-TCP實現了在TCP/IP以太網上以客戶/服務器方式的Modbus報文通信。這種通信模型是將Modbus協議作為應用層協議嵌入到低層TCP/IP協議中構成的。與標準Modbus幀相比,Modbus-TCP幀中的尋址與校驗交由TCP/IP協議完成。如圖3所示,使用封裝的方法將Modbus PDU嵌入到TCP報文中形成Modbus-TCP幀,該幀在PDU之前形成了一個占用7個字節大小的MBAP幀頭,幀頭可以劃分為四部分,如表3所示。

    交易標識符用于交易校驗,服務器端節收到由客戶發來的請求交易標識符并復制到響應中。協議標識符用于系統內多路復用傳輸,取0值時代表Modbus協議傳輸。長度域記錄了該域后續報文的字節長度(包括設備識別符和數據域),用于服務器識別報文的傳輸結束。設備標識符用于系統內路由,當需要與通過以太網網關連接的Modbus串行鏈路或Modbus-Plus通信網絡上的設備進行通信時,該標識符域的值由Modbus-TCP客戶在請求幀中設置,服務器接收到后,在響應幀中復制該值。

3 Modbus-TCP應用

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

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

    程序在DOS模式下運行,提供有以下運行參數:

    -ip: 即目標服務器的IP地址;
    -p: PLC的Modbus通信端口,默認值為502;
    -c: 服務器執行功能碼的操作對象數量;
    -r: 操作的起始地址;
    -w: 寫操作參數;
    -a: 自動操作模式;
    -t: 自動操作的時間間隔;
    -b: 線圈寫操作的布爾值。

4 結束語

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
宅男在线国产精品| 亚洲影院免费| 国产视频精品xxxx| 国产精品美女主播| 欧美伦理91| 欧美精品一区二区三区久久久竹菊 | 在线视频精品一区| 日韩一级欧洲| 一本大道久久精品懂色aⅴ | 欧美二区在线| 欧美激情在线| 欧美日韩福利| 欧美日韩视频在线| 国产精品成人aaaaa网站| 欧美午夜美女看片| 国产精品久久久久77777| 国产精品国产亚洲精品看不卡15| 欧美国产免费| 午夜精品偷拍| 香蕉亚洲视频| 欧美在线www| 亚洲电影在线看| 亚洲欧洲日本在线| 日韩午夜在线播放| 亚洲一区二区三区精品在线 | 欧美日韩麻豆| 国产精品乱人伦一区二区| 国产精品视频你懂的| 国产欧美精品久久| 韩日精品中文字幕| 亚洲国产欧美国产综合一区| 亚洲美女网站| 亚洲一区二区三区在线观看视频| 亚洲欧美视频在线观看视频| 久久国产精彩视频| 亚洲美女一区| 亚洲欧美日韩国产中文 | 久久免费视频观看| 欧美aaaaaaaa牛牛影院| 欧美喷水视频| 国产精品入口麻豆原神| 国内精品写真在线观看| 亚洲黄色高清| 亚洲丝袜av一区| 欧美在线观看一区二区| 亚洲精品中文字| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美一激情一区二区三区| 另类尿喷潮videofree| 欧美日韩国产精品成人| 国产嫩草一区二区三区在线观看 | 亚洲精品1区2区| 亚洲午夜一区二区| 久久国产视频网站| 免费成人黄色片| 欧美午夜a级限制福利片| 国产日韩精品一区二区浪潮av| 伊人精品成人久久综合软件| a91a精品视频在线观看| 久久精品女人| 亚洲一区二区三区免费观看| 久久精品亚洲乱码伦伦中文| 欧美日本不卡| 国产一区在线观看视频| 日韩视频一区二区在线观看 | 亚洲第一福利社区| 99精品欧美一区二区蜜桃免费| 亚洲欧美一区二区精品久久久| 亚洲日本中文字幕| 羞羞答答国产精品www一本| 免费日韩成人| 国产久一道中文一区| 最新亚洲激情| 欧美一区二区三区精品电影| 日韩午夜av电影| 久久久人成影片一区二区三区| 欧美日韩综合久久| 在线观看精品视频| 亚洲专区一区二区三区| 亚洲免费观看高清在线观看| 久久国产精品一区二区三区| 欧美日韩免费看| 亚洲第一精品夜夜躁人人躁| 亚洲一区二区免费视频| 日韩午夜电影在线观看| 久久先锋影音av| 国产精品私人影院| 日韩一区二区精品视频| 亚洲黄色av| 久久精品日产第一区二区三区| 欧美色欧美亚洲高清在线视频| 在线观看成人一级片| 欧美有码在线观看视频| 亚洲欧美日韩第一区| 欧美久久视频| 亚洲国产欧美一区二区三区同亚洲 | 国产亚洲成精品久久| 一区二区三区鲁丝不卡| 亚洲精品社区| 老司机精品福利视频| 国产偷国产偷精品高清尤物| 在线视频一区观看| 妖精视频成人观看www| 巨乳诱惑日韩免费av| 国产亚洲精品7777| 亚洲综合成人婷婷小说| 亚洲影视九九影院在线观看| 欧美日韩1234| 亚洲区第一页| 夜夜嗨av一区二区三区四季av| 欧美+亚洲+精品+三区| 伊人久久大香线| 久久国产主播精品| 久久青草欧美一区二区三区| 国产亚洲一区在线播放| 欧美一级免费视频| 久久国产婷婷国产香蕉| 最新亚洲激情| 一区二区三区高清在线观看| 欧美大片免费| 亚洲国产美女| 亚洲人成亚洲人成在线观看图片 | 亚洲毛片网站| 中国成人亚色综合网站| 欧美日韩ab| av不卡免费看| 亚洲一区二区免费视频| 欧美色欧美亚洲高清在线视频| 99国产精品久久久久久久成人热| 艳妇臀荡乳欲伦亚洲一区| 欧美日韩一二区| 亚洲视频在线观看视频| 午夜亚洲性色福利视频| 国产精品网站在线观看| 欧美一二三区在线观看| 久久综合九九| 尤物在线观看一区| 亚洲美女尤物影院| 欧美性色综合| 亚洲欧美日韩视频二区| 久久久精品久久久久| 狠狠色丁香久久综合频道| 久久精品视频免费| 欧美激情女人20p| 亚洲人成在线播放网站岛国| 一区二区三区国产| 国产精品揄拍500视频| 久久国产天堂福利天堂| 欧美成人综合网站| 日韩视频免费在线| 欧美一区二区精品在线| 国内精品久久久久久影视8 | 亚洲狼人综合| 亚洲永久视频| 国产一区二区三区在线免费观看| 亚洲国产精品va在看黑人| 欧美美女bb生活片| 亚洲在线免费观看| 玖玖玖免费嫩草在线影院一区| 亚洲精品乱码久久久久久按摩观| 亚洲一区美女视频在线观看免费| 国产伦理一区| 日韩视频免费在线| 国产精品系列在线| 亚洲黄色小视频| 国产精品白丝av嫩草影院| 欧美在线免费播放| 欧美岛国激情| 亚洲一区在线直播| 欧美第一黄网免费网站| 亚洲视频在线观看视频| 麻豆精品视频在线| 亚洲少妇一区| 美女国内精品自产拍在线播放| 99国产精品久久久久久久久久 | 亚洲国产日韩欧美在线99| 亚洲一区二区三区四区在线观看 | 欧美色图麻豆| 亚洲福利免费| 国产精品mm| 亚洲欧洲精品一区二区三区波多野1战4| 欧美日韩精品在线观看| 欧美在线免费视屏| 欧美三级小说| 亚洲国产人成综合网站| 国产精品久久久久久久久免费| 亚洲黑丝在线| 国产日韩欧美夫妻视频在线观看| 亚洲开发第一视频在线播放| 国产欧美精品日韩区二区麻豆天美| 亚洲精品三级| 国产日韩综合一区二区性色av| 一本高清dvd不卡在线观看| 国产一区二区三区在线观看免费| 一区二区三区日韩欧美| 伊人男人综合视频网| 欧美一区二区三区在线视频| 亚洲欧洲精品一区二区三区不卡 | 久久黄色级2电影| 国产精品劲爆视频|