技術頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術頻道 > 技術百科 > PLC 通用性數(shù)據(jù)通信接口的研究

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

時間:2008-03-11 13:57:00來源:shixi

導語:?本文討論了設計和開發(fā)PLC 驅(qū)動程序的方法;詳細介紹PLC 底層驅(qū)動函數(shù)的設計和實現(xiàn);并探討了提高信道利用率的幾個關鍵問題。
摘 要: 隨著工業(yè)自動化的發(fā)展,PLC 驅(qū)動程序的設計和開發(fā)成為最常遇到的問題。信道利用率和數(shù)據(jù)采集效率直接影響到整個監(jiān)控系統(tǒng)的性能。本文討論了設計和開發(fā)PLC 驅(qū)動程序的方法;詳細介紹PLC 底層驅(qū)動函數(shù)的設計和實現(xiàn);并探討了提高信道利用率的幾個關鍵問題。實驗證明,能夠降低開發(fā)成本并大大提高計算機監(jiān)控系統(tǒng)與PLC 之間的數(shù)據(jù)通信的效率和信道利用率。 關鍵詞:可編程邏輯控制器,驅(qū)動,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 引言 隨著計算機科學技術、工業(yè)控制等方面的新技術的迅速發(fā)展,使用計算機監(jiān)控系統(tǒng)與現(xiàn)場PLC 設備進行數(shù)據(jù)交換得到了廣泛的應用。這類數(shù)據(jù)交換往往具有以下的特點,數(shù)據(jù)量大,采集點分散,帶寬較窄。由于不同廠家所提供的PLC 現(xiàn)場設備的通訊機制并不相同,計算機監(jiān)控系統(tǒng)軟件需要開發(fā)的設備通信驅(qū)動程序就越來越多。這種復雜的設備驅(qū)動程序的開發(fā)具有以下的特點: 首先,上位監(jiān)控系統(tǒng)與PLC 設備間的數(shù)據(jù)交換,應用較普遍。 其次,這種數(shù)據(jù)通訊過程,缺乏有通用性的框架設計,開發(fā)周期長,難度大,難以通用。 再者,在有限帶寬限制條件下的大數(shù)據(jù)量傳輸,普遍存在著信道利用率低,系統(tǒng)效率差,不穩(wěn)定的情況,迫切需要大幅度提高信道利用率的算法。而且在已有的數(shù)據(jù)交換標準中,對于有限帶寬條件下的信道利用率也沒有成熟的設計。 如上所述,開發(fā)PLC 設備的通用性數(shù)據(jù)通信接口具有廣泛的應用前景和實現(xiàn)價值。本文主要針對上位監(jiān)控系統(tǒng)與PLC 設備之間的數(shù)據(jù)通信進行分析,介紹了PLC 設備的驅(qū)動開發(fā)的方法,并提供PLC 通信的實例。 2 PLC 驅(qū)動的使用 本文中以使用串口通訊的PLC 為例進行分析和說明,監(jiān)控系統(tǒng)為北京昆侖通態(tài)公司生產(chǎn)的MCGS 監(jiān)控軟件。開發(fā)工具為VC++6.0。 MCGS 中PLC 已經(jīng)將串口通訊的波特率設置等功能集成至串口父設備中,因此PLC 設備驅(qū)動是作為MCGS 監(jiān)控軟件設備管理窗口中的子設備提供的。它可以使用父設備的通訊功能,即可以與其他設備共享父設備的通訊功能。由于使用串口的PLC 設備較多,在這里我們以使用串口通訊方式的PLC 為例進行說明PLC 通用驅(qū)動的構架的開發(fā)。如使用自定義編程電纜方式或使用以太網(wǎng)方式連接,此PLC 驅(qū)動構架同樣適用。 使用串口通訊的PLC 與上位機的通訊方式中,有RS232、RS485、RS422 多種方式。如果設備是采用RS232 方式通訊,那么在一個串口下面只能掛接一個設備。如果采用RS485 或者RS422 的方式通訊,那么可以使用多個設備構成一個網(wǎng)絡,在這個網(wǎng)絡中,為了識別各個不同的設備,給每一個設備加上一個標志,一般來說把這個標志稱作設備地址。這個總線上的設備分為主設備和從設備兩類。在工作時,從設備一直在監(jiān)聽通訊線路上的數(shù)據(jù),并對這些數(shù)據(jù)進行分析,當收到對自己的請求時,會發(fā)送一個相應的應答幀。主設備在工作時會根據(jù)需要向從設備發(fā)送請求幀,請求一些數(shù)據(jù)或者是發(fā)送一條命令,在發(fā)完請求幀后主設備需等待從設備的回答,這個等待的過程有一個超時時間限制。如果過了一定的時間還沒有收到回答,它會認為本次通訊失敗,然后按照一定的邏輯判斷是應該重發(fā)請求還是放棄。 通訊使用的通訊協(xié)議,分為ASCII 通訊和16 進制通訊兩類。PLC 的通訊協(xié)議中大多數(shù)都是使用16 進制通訊。而且在串口通訊中,為了保證通訊的正確性、完整性,通常在通訊幀的尾部加上校驗,常見的有和校驗,異或校驗,CRC 校驗等等。 在通訊過程中,上位機的MCGS 監(jiān)控軟件調(diào)用PLC 驅(qū)動,根據(jù)具體協(xié)議,向PLC 設備發(fā)送寄存器的讀寫命令,并接收應答數(shù)據(jù)。 3 主要流程 3.1 采集流程 為便于說明,此處以一個采集周期內(nèi)僅需單次采集的最簡情況為例。在5.1 中的密集采集模式中,描述了對一周期內(nèi)需多次采集的算法。 采集過程描述如下:首先進行初始化,隨后創(chuàng)建通道。進入數(shù)據(jù)采集周期,在每個數(shù)據(jù)采集周期中,首先形成讀命令,隨后校驗發(fā)送數(shù)據(jù)幀,讀寫串口完成一次通訊,如果通訊成功,那么校驗后將接收到的數(shù)據(jù)解碼輸出到通道,返回成功標識,如果通訊不成功或校驗失敗,返回失敗標識。 3.2 解析函數(shù)流程
上圖為解析數(shù)據(jù)幀的流程圖。不同的設備具有不同的協(xié)議內(nèi)容,使用定義好的模版解析函數(shù)只需要開發(fā)人員按照設備協(xié)議將幀分割為有效的數(shù)據(jù)部分,添入聯(lián)合體FrameField 即可。該聯(lián)合體可將協(xié)議數(shù)據(jù)最小分割為位來進行操作。
如上圖所示,第一個字節(jié)為幀頭,最后一個字節(jié)為幀尾,第二個字節(jié)為狀態(tài)標示,第三至第六個字節(jié)為模擬量,第七個字節(jié)為單位,第八個字節(jié)按位分為四路輸入和四路輸出。 4 接口設計 通常來說,一個廠家的同系列的PLC 產(chǎn)品,通訊協(xié)議一般是一樣的。區(qū)別只是在于其中一些寄存器的大小不同。這樣我們就考慮可以讓這一個系列的設備使用同一個驅(qū)動。為了提高通用性,同時一般情況下,用戶也不需要使用所有的寄存器,所以把這種設備構件的通道設計成用戶可以在組態(tài)時自己進行定義。所有的通道及其所對應的參數(shù)(即是寄存器地址)都由用戶自己進行定義。驅(qū)動程序根據(jù)用戶定義的信息進行通訊。而且PLC 當中可能有一些參數(shù)用戶并不常用,如果組成通道,每一個采集周期都要進行通訊,效率比較低下,考慮到這種情況,我們提供了一些外部接口供監(jiān)控系統(tǒng)調(diào)用,在這些接口中可以發(fā)送命令,支持所有的寄存器通道。 而對不同廠家的PLC 設備進行分析,也可以發(fā)現(xiàn),可以將通訊過程和協(xié)議方式進行抽象,提取它們的共同點和變化點,封裝和隱藏數(shù)據(jù)交換過程中的細節(jié),達到通用的目的。通過封裝格式,規(guī)范代碼,統(tǒng)一接口,提高驅(qū)動開發(fā)效率,降低驅(qū)動開發(fā)的難度。提高代碼的重用性,增強驅(qū)動的穩(wěn)定性,減少設計中容易出現(xiàn)的錯誤。使開發(fā)人員把主要的精力放在對設備的熟悉和對協(xié)議的分析上,而不是過多地糾纏于編程實現(xiàn)的細枝末節(jié)上。 封裝的數(shù)據(jù)和操作包括: 隱藏一次數(shù)據(jù)采集中的底層通訊過程(某些設備完成一次采集需要一次以上的發(fā)收過 程,如西門子S7200);封裝針對采集點分散的動態(tài)采集算法;封裝常用的命令操作;對與監(jiān)控系統(tǒng)間的交互提供統(tǒng)一的接口;PLC 驅(qū)動封裝了底層的通訊過程,只將接口方法暴露在外面,開發(fā)人員以統(tǒng)一的方式去調(diào)用這個方法,從而保證軟件對客戶的透明性,使開發(fā)人員從低層的開發(fā)中脫離出來,降低開發(fā)的難度。 對驅(qū)動的開發(fā)人員來說,需要關注的接口僅有以下部分: 定義設備本身的屬性;如地址、實時采集的時間要求等;定義設備的讀寫操作屬性;如通道數(shù)量等;通用設計僅提供跟設備協(xié)議相關的組包和解包接口,實現(xiàn)過程將由開發(fā)人員完成。 5 關鍵問題分析 為提供信道利用率,提高系統(tǒng)效率,在PLC 的通信框架設計中考慮了幾個關鍵問題。 5.1 三種采集模式 經(jīng)過對現(xiàn)有的數(shù)據(jù)交換的分析,將用戶的一般需求擬概括為三種采集模式,即密集采集,按需采集,定時采集。 密集采集模式:在這種情況下,用戶希望能盡量利用物理帶寬,保證最快的采集速度和更新。在這種模式下,理想狀態(tài)是設備始終處于采集狀態(tài)。采集目前所有激活通道中離需要采集的周期時間最小的通道。保證所有的通道都能獲得采集機會,但是相對與其他模式,在該模式下CPU 占用率會比較高。 按需采集模式:在通訊鏈路需要受控的情況下,比如用戶采用GPRS 進行采集,按流量計費,所以不能進行大量的通訊。這時候通過設置采集模式為按需采集,然后在需要時再調(diào)用接口函數(shù)啟動單次采集。否則不進行數(shù)據(jù)采集。 定時采集模式:該模式是在CPU 的占用率和采集速度之間進行折衷的采集框式,保證在用戶設置的通道刷新周期的時間內(nèi)進行通道的采集,之后直到下一次通道的刷新周期到達再進行下一次采集。 在模塊設計中,采集模式作為設備類的一個屬性,由開發(fā)人員根據(jù)具體情況,選擇合適的采集模式。不同采集模式的采集算法實現(xiàn)如下: 密集采集執(zhí)行流程:設置一個采集周期如1000ms。每當開始一個新采集周期時,重新計算采集通道的優(yōu)先級別。遍歷所有的通道,找出目前優(yōu)先級最高的通道,進行采集。對通道進行分塊(塊中包含最需要刷新的通道)。進入通訊循環(huán)(某些設備進行一次采集至少需要兩次通訊所以需要通訊循環(huán))。發(fā)送數(shù)據(jù)請求并等待回應;根據(jù)返回的信息解析出結(jié)果,并作相應處理;判斷是否需要下一次采集,如果不需要跳出循環(huán);更新通道和采集標志;繼續(xù)發(fā)送線程消息啟動下一次采集直到一次通訊循環(huán)結(jié)束;直到遍歷完所有需采集的通道。 按需采集執(zhí)行流程:循環(huán)對每個通道進行采集,保存采集成功的值,并進行后續(xù)處理。定時采集執(zhí)行流程由定時器觸發(fā),采集流程與密集采集一樣,但在判斷沒有滿足采集要求的通道不進行采集。 5.2 采集點分散的動態(tài)采集算法 在現(xiàn)有的數(shù)據(jù)交換過程中,用戶關心的數(shù)據(jù)往往只占全部信息的很小一部分,而且這些采集點分散在海量的數(shù)據(jù)中,如果不加判斷的依次讀取數(shù)據(jù),有效信息與采集信息的比例很低,實時性差;如果僅采集有效信息,分配的采集粒度過小,又會造成系統(tǒng)效率低下,信道利用率差。針對這一問題,采取以下的解決方法: (1)只采集用戶關心的數(shù)據(jù)。如當有多個通道時,只傳送當前用戶只關心的通道的數(shù)據(jù),而不關心其它的通道。保證采集盡量少的通道,為每個需要采集的通道提供更快的采集周期。從而減少通訊量。 (2)對于待采集的數(shù)據(jù)分配不同的優(yōu)先級,對實時性要求高的部分數(shù)據(jù)優(yōu)先采集。可以根據(jù)用戶設置的數(shù)據(jù)刷新時間來改變其優(yōu)先級。 (3)實現(xiàn)一個動態(tài)分塊算法,在一個合理的粒度上對采集的信息分塊傳輸,兼顧信道利用率與有效信息獲取的實時性;實現(xiàn)的分塊算法簡述如下:在采集時判斷,如果當前采集的寄存器類的激活通道可以組成一個數(shù)據(jù)請求包,則進行處理,提高一次采集的通道數(shù)。根據(jù)開發(fā)人員定義的通道優(yōu)先級,找出優(yōu)先級最高的通道地址附近的地址連續(xù)(或緊密)的通道,這些通道形成一個通道塊。重復同樣的過程,將剩下的通道繼續(xù)分塊,直到形成的塊數(shù)大于某一規(guī)定的數(shù)值比如20 或?qū)⒈炯拇嫫鞯乃型ǖ婪峙渫瓿伞? (4)根據(jù)通訊協(xié)議的特點,在打包數(shù)據(jù)請求時盡量保證包含更多的請求,從而減少請求的總次數(shù)。 6 結(jié)論 根據(jù)本文的PLC 通用性數(shù)據(jù)接口開發(fā)人員已開發(fā)出多個廠家的PLC 驅(qū)動,并在不同項目中得到應用。在此PLC 通用數(shù)據(jù)接口基礎上開發(fā)PLC 驅(qū)動,縮短了開發(fā)時間和難度。投入運行的系統(tǒng)通信穩(wěn)定,采集速度快,通用性好,可靠性高。保證了項目的順利實施。本文作者創(chuàng)新點:具有通用性的監(jiān)控系統(tǒng)與PLC 通信接口設計,能夠大大縮短開發(fā)時間和難度,并提高通信穩(wěn)定性、實時性,具有很高的實用價值和經(jīng)濟價值。 作者簡介:李媛(1980-),女(漢族),山西省晉中市人,首都師范大學計算機聯(lián)合研究院04 級研究生,碩士,主要從事計算機網(wǎng)絡,信息安全,嵌入式系統(tǒng)研究。 參考文獻 1 Modicon Inc. Modicon Modbus Protocol Reference Guide[Z].Modicon Inc.,1996 2 邱公偉.可編程控制器網(wǎng)絡通信及應用[M].北京:清華大學出版社.2000 3 高放等. 在PC 機上模擬PLC 實現(xiàn)MODBUS 通信 :微計算機信息 2001 年8 期

標簽:

點贊

分享到:

上一篇:一種新的雙環(huán)結(jié)構機器人無標...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網(wǎng)站簡介|會員服務|聯(lián)系方式|幫助信息|版權信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務平臺

網(wǎng)站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號