免费看aⅴ,天天插天天干天天射,呦女网,入逼逼

您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>PLC 通用性數(shù)據(jù)通信接口的研究

直播推薦

更多>

企業(yè)動(dòng)態(tài)

更多>

推薦展會(huì)

更多>

PLC 通用性數(shù)據(jù)通信接口的研究

2009年03月24日 17:46:07人氣:837來(lái)源:煙臺(tái)勾股通信技術(shù)有限公司

摘 要: 隨著工業(yè)自動(dòng)化的發(fā)展,PLC 驅(qū)動(dòng)程序的設(shè)計(jì)和開(kāi)發(fā)成為zui常遇到的問(wèn)題。信道利用率和數(shù)據(jù)采集效率直接影響到整個(gè)監(jiān)控系統(tǒng)的性能。本文討論了設(shè)計(jì)和開(kāi)發(fā)PLC 驅(qū)動(dòng)程序的方法;詳細(xì)介紹PLC 底層驅(qū)動(dòng)函數(shù)的設(shè)計(jì)和實(shí)現(xiàn);并探討了提高信道利用率的幾個(gè)關(guān)鍵問(wèn)題。實(shí)驗(yàn)證明,能夠降低開(kāi)發(fā)成本并大大提高計(jì)算機(jī)監(jiān)控系統(tǒng)與PLC 之間的數(shù)據(jù)通信的效率和信道利用率。 
關(guān)鍵詞:可編程邏輯控制器,驅(qū)動(dòng),MCGS
Abstract: With the development of industry automatization. How to design and 
development PLC driver programs is coming into been one of the most critical 
problems.The efficiency of channel data processing is the key of the whole system. 
In this paper, how to design and development PLC driver programs is explored. 
This paper give detail design of PLC driver function and discuss several key problems
 about channel data processing. The experimental results show that, it can save cost 
and improve efficiency.
Keywords: PLC,Drviers,MCGS
    1 引言
    隨著計(jì)算機(jī)科學(xué)技術(shù)、工業(yè)控制等方面的新技術(shù)的迅速發(fā)展,使用計(jì)算機(jī)監(jiān)控系統(tǒng)與現(xiàn)場(chǎng)PLC 設(shè)備進(jìn)行數(shù)據(jù)交換得到了廣泛的應(yīng)用。這類數(shù)據(jù)交換往往具有以下的特點(diǎn),數(shù)據(jù)量大,采集點(diǎn)分散,帶寬較窄。由于不同廠家所提供的PLC 現(xiàn)場(chǎng)設(shè)備的通訊機(jī)制并不相同,計(jì)算機(jī)監(jiān)控系統(tǒng)軟件需要開(kāi)發(fā)的設(shè)備通信驅(qū)動(dòng)程序就越來(lái)越多。這種復(fù)雜的設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)具有以下的特點(diǎn):
    首先,上位監(jiān)控系統(tǒng)與PLC 設(shè)備間的數(shù)據(jù)交換,應(yīng)用較普遍。
    其次,這種數(shù)據(jù)通訊過(guò)程,缺乏有通用性的框架設(shè)計(jì),開(kāi)發(fā)周期長(zhǎng),難度大,難以通用。
    再者,在有限帶寬限制條件下的大數(shù)據(jù)量傳輸,普遍存在著信道利用率低,系統(tǒng)效率差,不穩(wěn)定的情況,迫切需要大幅度提高信道利用率的算法。而且在已有的數(shù)據(jù)交換標(biāo)準(zhǔn)中,對(duì)于有限帶寬條件下的信道利用率也沒(méi)有成熟的設(shè)計(jì)。
    如上所述,開(kāi)發(fā)PLC 設(shè)備的通用性數(shù)據(jù)通信接口具有廣泛的應(yīng)用前景和實(shí)現(xiàn)價(jià)值。本文主要針對(duì)上位監(jiān)控系統(tǒng)與PLC 設(shè)備之間的數(shù)據(jù)通信進(jìn)行分析,介紹了PLC 設(shè)備的驅(qū)動(dòng)開(kāi)發(fā)的方法,并提供PLC 通信的實(shí)例。
    2 PLC 驅(qū)動(dòng)的使用
    本文中以使用串口通訊的PLC 為例進(jìn)行分析和說(shuō)明,監(jiān)控系統(tǒng)為北京昆侖通態(tài)公司生產(chǎn)的MCGS 監(jiān)控軟件。開(kāi)發(fā)工具為VC++6.0。
    MCGS 中PLC 已經(jīng)將串口通訊的波特率設(shè)置等功能集成至串口父設(shè)備中,因此PLC 設(shè)備驅(qū)動(dòng)是作為MCGS 監(jiān)控軟件設(shè)備管理窗口中的子設(shè)備提供的。它可以使用父設(shè)備的通訊功能,即可以與其他設(shè)備共享父設(shè)備的通訊功能。由于使用串口的PLC 設(shè)備較多,在這里我們以使用串口通訊方式的PLC 為例進(jìn)行說(shuō)明PLC 通用驅(qū)動(dòng)的構(gòu)架的開(kāi)發(fā)。如使用自定義編程電纜方式或使用以太網(wǎng)方式連接,此PLC 驅(qū)動(dòng)構(gòu)架同樣適用。
    使用串口通訊的PLC 與上位機(jī)的通訊方式中,有RS232、RS485、RS422 多種方式。如果設(shè)備是采用RS232 方式通訊,那么在一個(gè)串口下面只能掛接一個(gè)設(shè)備。如果采用RS485 或者RS422 的方式通訊,那么可以使用多個(gè)設(shè)備構(gòu)成一個(gè)網(wǎng)絡(luò),在這個(gè)網(wǎng)絡(luò)中,為了識(shí)別各個(gè)不同的設(shè)備,給每一個(gè)設(shè)備加上一個(gè)標(biāo)志,一般來(lái)說(shuō)把這個(gè)標(biāo)志稱作設(shè)備地址。這個(gè)總線上的設(shè)備分為主設(shè)備和從設(shè)備兩類。在工作時(shí),從設(shè)備一直在監(jiān)聽(tīng)通訊線路上的數(shù)據(jù),并對(duì)這些數(shù)據(jù)進(jìn)行分析,當(dāng)收到對(duì)自己的請(qǐng)求時(shí),會(huì)發(fā)送一個(gè)相應(yīng)的應(yīng)答幀。主設(shè)備在工作時(shí)會(huì)根據(jù)需要向從設(shè)備發(fā)送請(qǐng)求幀,請(qǐng)求一些數(shù)據(jù)或者是發(fā)送一條命令,在發(fā)完請(qǐng)求幀后主設(shè)備需等待從設(shè)備的回答,這個(gè)等待的過(guò)程有一個(gè)超時(shí)時(shí)間限制。如果過(guò)了一定的時(shí)間還沒(méi)有收到回答,它會(huì)認(rèn)為本次通訊失敗,然后按照一定的邏輯判斷是應(yīng)該重發(fā)請(qǐng)求還是放棄。
    通訊使用的通訊協(xié)議,分為ASCII 通訊和16 進(jìn)制通訊兩類。PLC 的通訊協(xié)議中大多數(shù)都是使用16 進(jìn)制通訊。而且在串口通訊中,為了保證通訊的正確性、完整性,通常在通訊幀的尾部加上校驗(yàn),常見(jiàn)的有和校驗(yàn),異或校驗(yàn),CRC 校驗(yàn)等等。
    在通訊過(guò)程中,上位機(jī)的MCGS 監(jiān)控軟件調(diào)用PLC 驅(qū)動(dòng),根據(jù)具體協(xié)議,向PLC 設(shè)備發(fā)送寄存器的讀寫(xiě)命令,并接收應(yīng)答數(shù)據(jù)。
    3 主要流程
    3.1 采集流程
    為便于說(shuō)明,此處以一個(gè)采集周期內(nèi)僅需單次采集的zui簡(jiǎn)情況為例。在5.1 中的密集采集模式中,描述了對(duì)一周期內(nèi)需多次采集的算法。
    采集過(guò)程描述如下:首*行初始化,隨后創(chuàng)建通道。進(jìn)入數(shù)據(jù)采集周期,在每個(gè)數(shù)據(jù)采集周期中,首先形成讀命令,隨后校驗(yàn)發(fā)送數(shù)據(jù)幀,讀寫(xiě)串口完成一次通訊,如果通訊成功,那么校驗(yàn)后將接收到的數(shù)據(jù)解碼輸出到通道,返回成功標(biāo)識(shí),如果通訊不成功或校驗(yàn)失敗,返回失敗標(biāo)識(shí)。
    3.2 解析函數(shù)流程

    上圖為解析數(shù)據(jù)幀的流程圖。不同的設(shè)備具有不同的協(xié)議內(nèi)容,使用定義好的模版解析函數(shù)只需要開(kāi)發(fā)人員按照設(shè)備協(xié)議將幀分割為有效的數(shù)據(jù)部分,添入聯(lián)合體FrameField 即可。該聯(lián)合體可將協(xié)議數(shù)據(jù)zui小分割為位來(lái)進(jìn)行操作。

    如上圖所示,*個(gè)字節(jié)為幀頭,zui后一個(gè)字節(jié)為幀尾,第二個(gè)字節(jié)為狀態(tài)標(biāo)示,第三至第六個(gè)字節(jié)為模擬量,第七個(gè)字節(jié)為單位,第八個(gè)字節(jié)按位分為四路輸入和四路輸出。
    4 接口設(shè)計(jì)
    通常來(lái)說(shuō),一個(gè)廠家的同系列的PLC 產(chǎn)品,通訊協(xié)議一般是一樣的。區(qū)別只是在于其中一些寄存器的大小不同。這樣我們就考慮可以讓這一個(gè)系列的設(shè)備使用同一個(gè)驅(qū)動(dòng)。為了提高通用性,同時(shí)一般情況下,用戶也不需要使用所有的寄存器,所以把這種設(shè)備構(gòu)件的通道設(shè)計(jì)成用戶可以在組態(tài)時(shí)自己進(jìn)行定義。所有的通道及其所對(duì)應(yīng)的參數(shù)(即是寄存器地址)都由用戶自己進(jìn)行定義。驅(qū)動(dòng)程序根據(jù)用戶定義的信息進(jìn)行通訊。而且PLC 當(dāng)中可能有一些參數(shù)用戶并不常用,如果組成通道,每一個(gè)采集周期都要進(jìn)行通訊,效率比較低下,考慮到這種情況,我們提供了一些外部接口供監(jiān)控系統(tǒng)調(diào)用,在這些接口中可以發(fā)送命令,支持所有的寄存器通道。
    而對(duì)不同廠家的PLC 設(shè)備進(jìn)行分析,也可以發(fā)現(xiàn),可以將通訊過(guò)程和協(xié)議方式進(jìn)行抽象,提取它們的共同點(diǎn)和變化點(diǎn),封裝和隱藏?cái)?shù)據(jù)交換過(guò)程中的細(xì)節(jié),達(dá)到通用的目的。通過(guò)封裝格式,規(guī)范代碼,統(tǒng)一接口,提高驅(qū)動(dòng)開(kāi)發(fā)效率,降低驅(qū)動(dòng)開(kāi)發(fā)的難度。提高代碼的重用性,增強(qiáng)驅(qū)動(dòng)的穩(wěn)定性,減少設(shè)計(jì)中容易出現(xiàn)的錯(cuò)誤。使開(kāi)發(fā)人員把主要的精力放在對(duì)設(shè)備的熟悉和對(duì)協(xié)議的分析上,而不是過(guò)多地糾纏于編程實(shí)現(xiàn)的細(xì)枝末節(jié)上。
    封裝的數(shù)據(jù)和操作包括:
    隱藏一次數(shù)據(jù)采集中的底層通訊過(guò)程(某些設(shè)備完成一次采集需要一次以上的發(fā)收過(guò)
程,如西門(mén)子S7200);封裝針對(duì)采集點(diǎn)分散的動(dòng)態(tài)采集算法;封裝常用的命令操作;對(duì)與監(jiān)控系統(tǒng)間的交互提供統(tǒng)一的接口;PLC 驅(qū)動(dòng)封裝了底層的通訊過(guò)程,只將接口方法暴露在外面,開(kāi)發(fā)人員以統(tǒng)一的方式去調(diào)用這個(gè)方法,從而保證軟件對(duì)客戶的透明性,使開(kāi)發(fā)人員從低層的開(kāi)發(fā)中脫離出來(lái),降低開(kāi)發(fā)的難度。
    對(duì)驅(qū)動(dòng)的開(kāi)發(fā)人員來(lái)說(shuō),需要關(guān)注的接口僅有以下部分:
    定義設(shè)備本身的屬性;如地址、實(shí)時(shí)采集的時(shí)間要求等;定義設(shè)備的讀寫(xiě)操作屬性;如通道數(shù)量等;通用設(shè)計(jì)僅提供跟設(shè)備協(xié)議相關(guān)的組包和解包接口,實(shí)現(xiàn)過(guò)程將由開(kāi)發(fā)人員完成。
    5 關(guān)鍵問(wèn)題分析
    為提供信道利用率,提高系統(tǒng)效率,在PLC 的通信框架設(shè)計(jì)中考慮了幾個(gè)關(guān)鍵問(wèn)題。
    5.1 三種采集模式
    經(jīng)過(guò)對(duì)現(xiàn)有的數(shù)據(jù)交換的分析,將用戶的一般需求擬概括為三種采集模式,即密集采集,按需采集,定時(shí)采集。
    密集采集模式:在這種情況下,用戶希望能盡量利用物理帶寬,保證zui快的采集速度和更新。在這種模式下,理想狀態(tài)是設(shè)備始終處于采集狀態(tài)。采集目前所有激活通道中離需要采集的周期時(shí)間zui小的通道。保證所有的通道都能獲得采集機(jī)會(huì),但是相對(duì)與其他模式,在該模式下CPU 占用率會(huì)比較高。
    按需采集模式:在通訊鏈路需要受控的情況下,比如用戶采用GPRS 進(jìn)行采集,按流量計(jì)費(fèi),所以不能進(jìn)行大量的通訊。這時(shí)候通過(guò)設(shè)置采集模式為按需采集,然后在需要時(shí)再調(diào)用接口函數(shù)啟動(dòng)單次采集。否則不進(jìn)行數(shù)據(jù)采集
    
    定時(shí)采集模式:該模式是在CPU 的占用率和采集速度之間進(jìn)行折衷的采集框式,保證在用戶設(shè)置的通道刷新周期的時(shí)間內(nèi)進(jìn)行通道的采集,之后直到下一次通道的刷新周期到達(dá)再進(jìn)行下一次采集。
    在模塊設(shè)計(jì)中,采集模式作為設(shè)備類的一個(gè)屬性,由開(kāi)發(fā)人員根據(jù)具體情況,選擇合適的采集模式。不同采集模式的采集算法實(shí)現(xiàn)如下:
    密集采集執(zhí)行流程:設(shè)置一個(gè)采集周期如1000ms。每當(dāng)開(kāi)始一個(gè)新采集周期時(shí),重新計(jì)算采集通道的優(yōu)先級(jí)別。遍歷所有的通道,找出目前優(yōu)先級(jí)zui高的通道,進(jìn)行采集。對(duì)通道進(jìn)行分塊(塊中包含zui需要刷新的通道)。進(jìn)入通訊循環(huán)(某些設(shè)備進(jìn)行一次采集至少需要兩次通訊所以需要通訊循環(huán))。發(fā)送數(shù)據(jù)請(qǐng)求并等待回應(yīng);根據(jù)返回的信息解析出結(jié)果,并作相應(yīng)處理;判斷是否需要下一次采集,如果不需要跳出循環(huán);更新通道和采集標(biāo)志;繼續(xù)發(fā)送線程消息啟動(dòng)下一次采集直到一次通訊循環(huán)結(jié)束;直到遍歷完所有需采集的通道。
    按需采集執(zhí)行流程:循環(huán)對(duì)每個(gè)通道進(jìn)行采集,保存采集成功的值,并進(jìn)行后續(xù)處理。定時(shí)采集執(zhí)行流程由定時(shí)器觸發(fā),采集流程與密集采集一樣,但在判斷沒(méi)有滿足采集要求的通道不進(jìn)行采集。
    5.2 采集點(diǎn)分散的動(dòng)態(tài)采集算法
    在現(xiàn)有的數(shù)據(jù)交換過(guò)程中,用戶關(guān)心的數(shù)據(jù)往往只占全部信息的很小一部分,而且這些采集點(diǎn)分散在海量的數(shù)據(jù)中,如果不加判斷的依次讀取數(shù)據(jù),有效信息與采集信息的比例很低,實(shí)時(shí)性差;如果僅采集有效信息,分配的采集粒度過(guò)小,又會(huì)造成系統(tǒng)效率低下,信道利用率差。針對(duì)這一問(wèn)題,采取以下的解決方法:
    (1)只采集用戶關(guān)心的數(shù)據(jù)。如當(dāng)有多個(gè)通道時(shí),只傳送當(dāng)前用戶只關(guān)心的通道的數(shù)據(jù),而不關(guān)心其它的通道。保證采集盡量少的通道,為每個(gè)需要采集的通道提供更快的采集周期。從而減少通訊量。
    (2)對(duì)于待采集的數(shù)據(jù)分配不同的優(yōu)先級(jí),對(duì)實(shí)時(shí)性要求高的部分?jǐn)?shù)據(jù)優(yōu)先采集。可以根據(jù)用戶設(shè)置的數(shù)據(jù)刷新時(shí)間來(lái)改變其優(yōu)先級(jí)。
    (3)實(shí)現(xiàn)一個(gè)動(dòng)態(tài)分塊算法,在一個(gè)合理的粒度上對(duì)采集的信息分塊傳輸,兼顧信道利用率與有效信息獲取的實(shí)時(shí)性;實(shí)現(xiàn)的分塊算法簡(jiǎn)述如下:在采集時(shí)判斷,如果當(dāng)前采集的寄存器類的激活通道可以組成一個(gè)數(shù)據(jù)請(qǐng)求包,則進(jìn)行處理,提高一次采集的通道數(shù)。根據(jù)開(kāi)發(fā)人員定義的通道優(yōu)先級(jí),找出優(yōu)先級(jí)zui高的通道地址附近的地址連續(xù)(或緊密)的通道,這些通道形成一個(gè)通道塊。重復(fù)同樣的過(guò)程,將剩下的通道繼續(xù)分塊,直到形成的塊數(shù)大于某一規(guī)定的數(shù)值比如20 或?qū)⒈炯拇嫫鞯乃型ǖ婪峙渫瓿伞?
    (4)根據(jù)通訊協(xié)議的特點(diǎn),在打包數(shù)據(jù)請(qǐng)求時(shí)盡量保證包含更多的請(qǐng)求,從而減少請(qǐng)求的總次數(shù)。
    6 結(jié)論
    根據(jù)本文的PLC 通用性數(shù)據(jù)接口開(kāi)發(fā)人員已開(kāi)發(fā)出多個(gè)廠家的PLC 驅(qū)動(dòng),并在不同項(xiàng)目中得到應(yīng)用。在此PLC 通用數(shù)據(jù)接口基礎(chǔ)上開(kāi)發(fā)PLC 驅(qū)動(dòng),縮短了開(kāi)發(fā)時(shí)間和難度。投入運(yùn)行的系統(tǒng)通信穩(wěn)定,采集速度快,通用性好,可靠性高。保證了項(xiàng)目的順利實(shí)施。本文作者創(chuàng)新點(diǎn):具有通用性的監(jiān)控系統(tǒng)與PLC 通信接口設(shè)計(jì),能夠大大縮短開(kāi)發(fā)時(shí)間和難度,并提高通信穩(wěn)定性、實(shí)時(shí)性,具有很高的實(shí)用價(jià)值和經(jīng)濟(jì)價(jià)值。
    作者簡(jiǎn)介:李媛(1980-),女(漢族),山西省晉中市人,首都師范大學(xué)計(jì)算機(jī)聯(lián)合研究院04 級(jí)研究生,碩士,主要從事計(jì)算機(jī)網(wǎng)絡(luò),信息安全,嵌入式系統(tǒng)研究。
    參考文獻(xiàn)
    1 Modicon Inc. Modicon Modbus Protocol Reference Guide[Z].Modicon Inc.,1996
    2 邱公偉.可編程控制器網(wǎng)絡(luò)通信及應(yīng)用[M].北京:清華大學(xué)出版社.2000
    3 高放等. 在PC 機(jī)上模擬PLC 實(shí)現(xiàn)MODBUS 通信 :微計(jì)算機(jī)信息 2001 年8 期
全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

免責(zé)聲明

  • 凡本網(wǎng)注明"來(lái)源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請(qǐng)必須注明智能制造網(wǎng),http://www.caslcampaign.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
  • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
  • 本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
  • 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

<
更多 >

工控網(wǎng)機(jī)器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機(jī)械包裝機(jī)械印刷機(jī)械農(nóng)業(yè)機(jī)械食品加工設(shè)備制藥設(shè)備倉(cāng)儲(chǔ)物流環(huán)保設(shè)備造紙機(jī)械工程機(jī)械紡織機(jī)械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機(jī)械印染機(jī)械制鞋機(jī)械玻璃機(jī)械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


我要投稿
  • 投稿請(qǐng)發(fā)送郵件至:(郵件標(biāo)題請(qǐng)備注“投稿”)1271141964.qq.com
  • 聯(lián)系電話0571-89719789
工業(yè)4.0時(shí)代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺(tái)
智能制造網(wǎng)APP

功能豐富 實(shí)時(shí)交流

智能制造網(wǎng)小程序

訂閱獲取更多服務(wù)

微信公眾號(hào)

關(guān)注我們

抖音

智能制造網(wǎng)

抖音號(hào):gkzhan

打開(kāi)抖音 搜索頁(yè)掃一掃

視頻號(hào)

智能制造網(wǎng)

公眾號(hào):智能制造網(wǎng)

打開(kāi)微信掃碼關(guān)注視頻號(hào)

快手

智能制造網(wǎng)

快手ID:gkzhan2006

打開(kāi)快手 掃一掃關(guān)注
意見(jiàn)反饋
關(guān)閉
企業(yè)未開(kāi)通此功能
詳詢客服 : 0571-87858618