• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    提高PLC程序中Modbus通信效率的方法

    2014-04-29 06:41:36梅奕
    電子世界 2014年21期

    【摘要】針對PLC程序設(shè)計中Modbus通信存在數(shù)據(jù)丟失和通信效率低的問題,提出了一種兼顧重要數(shù)據(jù)和通信效率的優(yōu)化方法,包括劃分?jǐn)?shù)據(jù)優(yōu)先級和定時中斷控制發(fā)送周期兩個部分,實踐表明,此方法有利于保證重要數(shù)據(jù)的實時性和提高通信帶寬利用率。

    【關(guān)鍵詞】PLC;Modbus;數(shù)據(jù)丟失;通信效率;定時中斷

    引言

    PLC是一種專為在工業(yè)環(huán)境應(yīng)用而設(shè)計的數(shù)字運算電子系統(tǒng),它將計算機技術(shù)、自動控制技術(shù)和通訊技術(shù)融為一體,成為實現(xiàn)單機、車間、工廠自動化的核心設(shè)備,具有可靠性高、抗干擾能力強、組合靈活、編程簡單、維修方便等諸多優(yōu)點[1]。隨著控制技術(shù)的不斷發(fā)展,控制系統(tǒng)的規(guī)模也在逐步擴(kuò)大,通訊技術(shù)成為大規(guī)模控制系統(tǒng)的一個支撐。在大規(guī)??刂葡到y(tǒng)或分散式控制系統(tǒng)中,多個主機之間或者主機與分機之間有大量數(shù)據(jù)進(jìn)行通信[2]。

    在PLC的通信中,Modbus協(xié)議是一種常用的通信協(xié)議。Modbus最早由Modicon公司提出,由于其簡單、可靠,被廣大現(xiàn)場技術(shù)人員廣泛接受。當(dāng)前市場中多數(shù)PLC產(chǎn)品都支持Modbus協(xié)議。Modbus協(xié)議是主從式協(xié)議,通信由主站發(fā)起,從站根據(jù)主站的命令進(jìn)行數(shù)據(jù)應(yīng)答,從站不能發(fā)起通信。Modbus的這種特點決定了其通信實時性低于CAN等多主協(xié)議,但其單次通信數(shù)據(jù)量大的特點在一定程度上可以彌補這一不足。在實際操作中,如果主站是PLC,其通信的數(shù)據(jù)和發(fā)起通信的時間是由控制程序決定的,是隨機的,在控制程序的循環(huán)運行中,在某些時刻可能通信數(shù)據(jù)量大,而在其他時刻可能沒有數(shù)據(jù),這會造成帶寬資源利用不均勻,在數(shù)據(jù)量大的時候通信擁擠,導(dǎo)致數(shù)據(jù)丟失和通信不穩(wěn)定。為了解決這一問題,本文提出了一種在PLC程序設(shè)計中提高M(jìn)odbus通信效率的優(yōu)化方法。

    1.Modbus協(xié)議簡介

    Modbus通信協(xié)議具有開放性好、易實現(xiàn)、擴(kuò)展性好、可靠性高等優(yōu)點, 因而具有廣闊的應(yīng)用前景,被越來越多的設(shè)備廠商所支持。不同廠商生產(chǎn)的控制設(shè)備可以連成Modbus工業(yè)網(wǎng)絡(luò),由Modbus通信的主站對 現(xiàn)場設(shè)備和儀表進(jìn)行遠(yuǎn)程監(jiān)控,實現(xiàn)非常好的監(jiān)控效果和系統(tǒng)性能[3]。

    Modbus沒有規(guī)定物理層,它只規(guī)定了可以被通信節(jié)點識別的數(shù)據(jù)結(jié)構(gòu)。Modbus規(guī)定了數(shù)據(jù)的結(jié)構(gòu)、命令和應(yīng)答的形式,數(shù)據(jù)通信采用主從方式,主站可以向特定的從站發(fā)起讀寫命令,也可以向所有從站發(fā)起廣播命令。在同一個通信網(wǎng)絡(luò)中,所有通信節(jié)點(包括主站和從站)都必須設(shè)置相同的通信參數(shù),包括波特率、數(shù)據(jù)位、停止位和校驗位,而字符超時、回復(fù)超時等保護(hù)參數(shù)每個通信節(jié)點可以不盡相同。

    Modbus通信模式分為ASCII和RTU兩種,兩者的不同主要在于數(shù)據(jù)格式,兩者的數(shù)據(jù)格式分別如表1和表2所示。

    表1

    位置 起始位 設(shè)備地址 功能碼 數(shù)據(jù) LRC校驗 結(jié)束符

    字符

    個數(shù) 1 2 3 n 2 2

    表2

    位置 起始位 設(shè)備地址 功能碼 數(shù)據(jù) CRC校驗 結(jié)束符

    位數(shù) 靜止時段 8bit 8bit N*8bit 2*8bit 靜止時段

    Modbus功能碼可以是1-255范圍內(nèi)任何整數(shù)值,有些功能碼適用于所有的通信設(shè)備,有些則只適用于特定的控制器,還有一些用于功能的擴(kuò)展。

    2.PLC程序中Modbus通信存在的問題

    (1)數(shù)據(jù)丟失

    數(shù)據(jù)丟失,也就是通常說的丟幀現(xiàn)象。PLC程序按照循環(huán)掃描方式執(zhí)行,對于同一個Modbus物理通信接口,在同一個掃描周期內(nèi)只能執(zhí)行一個Modbus命令,即便控制程序在同一個掃描周期發(fā)起了多個Modbus命令,也只有一個被執(zhí)行,當(dāng)然,這也與每個PLC廠家的通信處理機制有關(guān),有的廠家提供了比較大的通信緩存,但如果通信幀數(shù)超出了緩存的范圍,也會丟幀。PLC特定的開發(fā)方式是造成這種問題的主要原因,PLC程序的編寫調(diào)試屬于在PLC編程軟件平臺下的二次開發(fā),不像單片機可以進(jìn)行底層代碼級的開發(fā),因此,用戶只能利用PLC編程軟件提供的操作命令對Modbus進(jìn)行操作,而無法監(jiān)視通信底層的狀態(tài),在很大程度上存在不確定性。必須建立適用于PLC程序的Modbus通信策略,以保證Modbus通信的確定性。

    (2)帶寬利用率低

    在PLC程序掃描周期長、Modbus通信數(shù)據(jù)量大、通信速率高的情況下,這種情況尤為突出。以掃描周期為40ms,通信速率為115.2kbps(串口數(shù)據(jù)無校驗),每次通信讀取60個字,采用RTU模式為例來說明。由于讀取數(shù)據(jù)的命令數(shù)據(jù)相對少,主要數(shù)據(jù)量在于從站的回復(fù)數(shù)據(jù),因此只計算回復(fù)的數(shù)據(jù)來說明問題,以表2中的數(shù)據(jù)格式進(jìn)行估算。總數(shù)據(jù)量為:8+8+120*8+2*8=992bit,除以通信速率得到所用時間為8.6ms。在這種情況下,帶寬利用情況如圖1所示。從圖1中可以看出,由于掃描周期長、而每個掃描周期只能處理一個Modbus命令,導(dǎo)致Modbus總線看似空閑,實際上有大量重要數(shù)據(jù)沒有被及時發(fā)送出來。

    圖1 通信帶寬利用情況

    綜上,如果不對PLC程序中的Modbus通信優(yōu)化處理,會對通信的穩(wěn)定性和通信效率造成大的影響。

    3.提高PLC程序Modbus通信效率的方法

    針對PLC程序設(shè)計中存在的Modbus通信不確定和帶寬利用率低等問題,本文提出一種程序優(yōu)化方法,分為兩個部分。

    (1)劃分?jǐn)?shù)據(jù)優(yōu)先級

    Modbus通信可能包含多幀數(shù)據(jù),根據(jù)實際需求,每個幀用途各不相同,有讀取設(shè)備信息的,有控制設(shè)備啟停的,有控制設(shè)備急停的,用戶可以根據(jù)用途的不同,區(qū)分各個數(shù)據(jù)幀的發(fā)送優(yōu)先級。以表3為例,從安全第一的角度考慮,讀取設(shè)備狀態(tài)的數(shù)據(jù)優(yōu)先級最低,控制設(shè)備啟停的數(shù)據(jù)優(yōu)先級中等,控制設(shè)備急停的數(shù)據(jù)優(yōu)先級最高,在程序設(shè)計中,應(yīng)保證高優(yōu)先級的數(shù)據(jù)優(yōu)先發(fā)送。

    表3

    數(shù)據(jù)含義 優(yōu)先級

    讀取設(shè)備狀態(tài) 低

    控制設(shè)備啟停 中

    控制設(shè)備急停 高

    (2)利用中斷控制發(fā)送周期。

    實際應(yīng)用中,總共需要發(fā)送的數(shù)據(jù)幀可能會有幾十個甚至更多,每個數(shù)據(jù)幀都要分配一個優(yōu)先級,在一個掃描周期中,即便是最高優(yōu)先級的數(shù)據(jù)發(fā)送成功了,但次高優(yōu)先級的數(shù)據(jù)就可能出現(xiàn)延遲發(fā)送的情況,同樣會影響系統(tǒng)的實時性。因此,控制數(shù)據(jù)發(fā)送周期是必要的。采用PLC中的定時中斷功能,定時按照優(yōu)先級的高低發(fā)送數(shù)據(jù),定時中斷不受掃描周期的影響。例如,在40ms的掃描周期下,采用10ms的定時中斷,每個掃描周期可以發(fā)送4幀數(shù)據(jù),相比較優(yōu)化之前,大大提高了通信效率。

    4.結(jié)語

    針對PLC程序設(shè)計中Modbus通信存在數(shù)據(jù)丟失和通信效率低的問題,本文提出了一種優(yōu)化方法,首先對數(shù)據(jù)幀劃分優(yōu)先級,保證重要數(shù)據(jù)優(yōu)先發(fā)送,其次采用定時中斷控制數(shù)據(jù)發(fā)送周期,保證通信效率。此方法已在實際應(yīng)用中得到驗證,對于PLC編程有一定的參考意義。

    參考文獻(xiàn)

    [1]鄧高壽,潘宏俠.PLC在工業(yè)自動化控制領(lǐng)域中的應(yīng)用及發(fā)展[J].機械管理開發(fā),2006(3):99-100.

    [2]鄧志君,梁松峰. 基于RS485接口Modbus協(xié)議的PLC與多機通訊[J].單片機開發(fā)與應(yīng)用,2010,26(3-2):107-108.

    [3]何志勇,張茂青,錢偉清.PLC主站對Modbus網(wǎng)絡(luò)的監(jiān)控方法[J].計算機網(wǎng)絡(luò)與通信,2007,29(2):26-28.

    作者簡介:梅奕(1973—),女,江蘇常州人,碩士,助理實驗師,主要研究方向:電氣自動化技術(shù)。

    同心县| 江孜县| 延吉市| 禹城市| 望江县| 独山县| 阜平县| 八宿县| 洪泽县| 凤冈县| 金坛市| 长海县| 象州县| 永福县| 修武县| 巩义市| 利辛县| 宜君县| 寿阳县| 安义县| 唐河县| 珲春市| 甘孜县| 昆明市| 泽州县| 肥乡县| 平顺县| 邯郸县| 闵行区| 邵武市| 盘山县| 晋中市| 玉山县| 吴江市| 醴陵市| 黄骅市| 汉阴县| 茂名市| 聂拉木县| 安陆市| 泸水县|