直播推薦
企業(yè)動態(tài)
- 安科瑞電動機保護器ARD2F獲最新防爆認證,助力工業(yè)安全升級
- 國產(chǎn)雙核破壟斷:礪星&存融CIBF亮劍智能裝配,定義電池安全新標桿
- 上海兆越攜重磅方案亮相軌交運維大會
- 當「AI浪潮」撞上掌舵者野心:誰在重新制定行業(yè)規(guī)則?
- 喜報 | 鑫精誠傳感器榮獲深圳名品牌及灣區(qū)名品牌
- CIBF2025現(xiàn)場直擊 | 皓天試驗設(shè)備次日熱度攀升!技術(shù)展示區(qū)成全場焦點
- 東莞市皓天試驗設(shè)備即將亮相CIBF2025,邀您共探電池測試新未來
- 京東集團發(fā)布2025年一季度業(yè)績 降本增效、技術(shù)創(chuàng)新引領(lǐng)京東工業(yè)高質(zhì)量發(fā)展
推薦展會
關(guān)鍵詞:可編程邏輯控制器,驅(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 引言
隨著計算機科學技術(shù)、工業(yè)控制等方面的新技術(shù)的迅速發(fā)展,使用計算機監(jiān)控系統(tǒng)與現(xiàn)場PLC 設(shè)備進行數(shù)據(jù)交換得到了廣泛的應用。這類數(shù)據(jù)交換往往具有以下的特點,數(shù)據(jù)量大,采集點分散,帶寬較窄。由于不同廠家所提供的PLC 現(xiàn)場設(shè)備的通訊機制并不相同,計算機監(jiān)控系統(tǒng)軟件需要開發(fā)的設(shè)備通信驅(qū)動程序就越來越多。這種復雜的設(shè)備驅(qū)動程序的開發(fā)具有以下的特點:
首先,上位監(jiān)控系統(tǒng)與PLC 設(shè)備間的數(shù)據(jù)交換,應用較普遍。
其次,這種數(shù)據(jù)通訊過程,缺乏有通用性的框架設(shè)計,開發(fā)周期長,難度大,難以通用。
再者,在有限帶寬限制條件下的大數(shù)據(jù)量傳輸,普遍存在著信道利用率低,系統(tǒng)效率差,不穩(wěn)定的情況,迫切需要大幅度提高信道利用率的算法。而且在已有的數(shù)據(jù)交換標準中,對于有限帶寬條件下的信道利用率也沒有成熟的設(shè)計。
如上所述,開發(fā)PLC 設(shè)備的通用性數(shù)據(jù)通信接口具有廣泛的應用前景和實現(xiàn)價值。本文主要針對上位監(jiān)控系統(tǒng)與PLC 設(shè)備之間的數(shù)據(jù)通信進行分析,介紹了PLC 設(shè)備的驅(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)將串口通訊的波特率設(shè)置等功能集成至串口父設(shè)備中,因此PLC 設(shè)備驅(qū)動是作為MCGS 監(jiān)控軟件設(shè)備管理窗口中的子設(shè)備提供的。它可以使用父設(shè)備的通訊功能,即可以與其他設(shè)備共享父設(shè)備的通訊功能。由于使用串口的PLC 設(shè)備較多,在這里我們以使用串口通訊方式的PLC 為例進行說明PLC 通用驅(qū)動的構(gòu)架的開發(fā)。如使用自定義編程電纜方式或使用以太網(wǎng)方式連接,此PLC 驅(qū)動構(gòu)架同樣適用。
使用串口通訊的PLC 與上位機的通訊方式中,有RS232、RS485、RS422 多種方式。如果設(shè)備是采用RS232 方式通訊,那么在一個串口下面只能掛接一個設(shè)備。如果采用RS485 或者RS422 的方式通訊,那么可以使用多個設(shè)備構(gòu)成一個網(wǎng)絡(luò),在這個網(wǎng)絡(luò)中,為了識別各個不同的設(shè)備,給每一個設(shè)備加上一個標志,一般來說把這個標志稱作設(shè)備地址。這個總線上的設(shè)備分為主設(shè)備和從設(shè)備兩類。在工作時,從設(shè)備一直在監(jiān)聽通訊線路上的數(shù)據(jù),并對這些數(shù)據(jù)進行分析,當收到對自己的請求時,會發(fā)送一個相應的應答幀。主設(shè)備在工作時會根據(jù)需要向從設(shè)備發(fā)送請求幀,請求一些數(shù)據(jù)或者是發(fā)送一條命令,在發(fā)完請求幀后主設(shè)備需等待從設(shè)備的回答,這個等待的過程有一個超時時間限制。如果過了一定的時間還沒有收到回答,它會認為本次通訊失敗,然后按照一定的邏輯判斷是應該重發(fā)請求還是放棄。
通訊使用的通訊協(xié)議,分為ASCII 通訊和16 進制通訊兩類。PLC 的通訊協(xié)議中大多數(shù)都是使用16 進制通訊。而且在串口通訊中,為了保證通訊的正確性、完整性,通常在通訊幀的尾部加上校驗,常見的有和校驗,異或校驗,CRC 校驗等等。
在通訊過程中,上位機的MCGS 監(jiān)控軟件調(diào)用PLC 驅(qū)動,根據(jù)具體協(xié)議,向PLC 設(shè)備發(fā)送寄存器的讀寫命令,并接收應答數(shù)據(jù)。
3 主要流程
3.1 采集流程
為便于說明,此處以一個采集周期內(nèi)僅需單次采集的zui簡情況為例。在5.1 中的密集采集模式中,描述了對一周期內(nèi)需多次采集的算法。
采集過程描述如下:首*行初始化,隨后創(chuàng)建通道。進入數(shù)據(jù)采集周期,在每個數(shù)據(jù)采集周期中,首先形成讀命令,隨后校驗發(fā)送數(shù)據(jù)幀,讀寫串口完成一次通訊,如果通訊成功,那么校驗后將接收到的數(shù)據(jù)解碼輸出到通道,返回成功標識,如果通訊不成功或校驗失敗,返回失敗標識。
3.2 解析函數(shù)流程
上圖為解析數(shù)據(jù)幀的流程圖。不同的設(shè)備具有不同的協(xié)議內(nèi)容,使用定義好的模版解析函數(shù)只需要開發(fā)人員按照設(shè)備協(xié)議將幀分割為有效的數(shù)據(jù)部分,添入聯(lián)合體FrameField 即可。該聯(lián)合體可將協(xié)議數(shù)據(jù)zui小分割為位來進行操作。
如上圖所示,*個字節(jié)為幀頭,zui后一個字節(jié)為幀尾,第二個字節(jié)為狀態(tài)標示,第三至第六個字節(jié)為模擬量,第七個字節(jié)為單位,第八個字節(jié)按位分為四路輸入和四路輸出。
4 接口設(shè)計
通常來說,一個廠家的同系列的PLC 產(chǎn)品,通訊協(xié)議一般是一樣的。區(qū)別只是在于其中一些寄存器的大小不同。這樣我們就考慮可以讓這一個系列的設(shè)備使用同一個驅(qū)動。為了提高通用性,同時一般情況下,用戶也不需要使用所有的寄存器,所以把這種設(shè)備構(gòu)件的通道設(shè)計成用戶可以在組態(tài)時自己進行定義。所有的通道及其所對應的參數(shù)(即是寄存器地址)都由用戶自己進行定義。驅(qū)動程序根據(jù)用戶定義的信息進行通訊。而且PLC 當中可能有一些參數(shù)用戶并不常用,如果組成通道,每一個采集周期都要進行通訊,效率比較低下,考慮到這種情況,我們提供了一些外部接口供監(jiān)控系統(tǒng)調(diào)用,在這些接口中可以發(fā)送命令,支持所有的寄存器通道。
而對不同廠家的PLC 設(shè)備進行分析,也可以發(fā)現(xiàn),可以將通訊過程和協(xié)議方式進行抽象,提取它們的共同點和變化點,封裝和隱藏數(shù)據(jù)交換過程中的細節(jié),達到通用的目的。通過封裝格式,規(guī)范代碼,統(tǒng)一接口,提高驅(qū)動開發(fā)效率,降低驅(qū)動開發(fā)的難度。提高代碼的重用性,增強驅(qū)動的穩(wěn)定性,減少設(shè)計中容易出現(xiàn)的錯誤。使開發(fā)人員把主要的精力放在對設(shè)備的熟悉和對協(xié)議的分析上,而不是過多地糾纏于編程實現(xiàn)的細枝末節(jié)上。
封裝的數(shù)據(jù)和操作包括:
隱藏一次數(shù)據(jù)采集中的底層通訊過程(某些設(shè)備完成一次采集需要一次以上的發(fā)收過
程,如西門子S7200);封裝針對采集點分散的動態(tài)采集算法;封裝常用的命令操作;對與監(jiān)控系統(tǒng)間的交互提供統(tǒng)一的接口;PLC 驅(qū)動封裝了底層的通訊過程,只將接口方法暴露在外面,開發(fā)人員以統(tǒng)一的方式去調(diào)用這個方法,從而保證軟件對客戶的透明性,使開發(fā)人員從低層的開發(fā)中脫離出來,降低開發(fā)的難度。
對驅(qū)動的開發(fā)人員來說,需要關(guān)注的接口僅有以下部分:
定義設(shè)備本身的屬性;如地址、實時采集的時間要求等;定義設(shè)備的讀寫操作屬性;如通道數(shù)量等;通用設(shè)計僅提供跟設(shè)備協(xié)議相關(guān)的組包和解包接口,實現(xiàn)過程將由開發(fā)人員完成。
5 關(guān)鍵問題分析
為提供信道利用率,提高系統(tǒng)效率,在PLC 的通信框架設(shè)計中考慮了幾個關(guān)鍵問題。
5.1 三種采集模式
經(jīng)過對現(xiàn)有的數(shù)據(jù)交換的分析,將用戶的一般需求擬概括為三種采集模式,即密集采集,按需采集,定時采集。
密集采集模式:在這種情況下,用戶希望能盡量利用物理帶寬,保證zui快的采集速度和更新。在這種模式下,理想狀態(tài)是設(shè)備始終處于采集狀態(tài)。采集目前所有激活通道中離需要采集的周期時間zui小的通道。保證所有的通道都能獲得采集機會,但是相對與其他模式,在該模式下CPU 占用率會比較高。
按需采集模式:在通訊鏈路需要受控的情況下,比如用戶采用GPRS 進行采集,按流量計費,所以不能進行大量的通訊。這時候通過設(shè)置采集模式為按需采集,然后在需要時再調(diào)用接口函數(shù)啟動單次采集。否則不進行數(shù)據(jù)采集。
定時采集模式:該模式是在CPU 的占用率和采集速度之間進行折衷的采集框式,保證在用戶設(shè)置的通道刷新周期的時間內(nèi)進行通道的采集,之后直到下一次通道的刷新周期到達再進行下一次采集。
在模塊設(shè)計中,采集模式作為設(shè)備類的一個屬性,由開發(fā)人員根據(jù)具體情況,選擇合適的采集模式。不同采集模式的采集算法實現(xiàn)如下:
密集采集執(zhí)行流程:設(shè)置一個采集周期如1000ms。每當開始一個新采集周期時,重新計算采集通道的優(yōu)先級別。遍歷所有的通道,找出目前優(yōu)先級zui高的通道,進行采集。對通道進行分塊(塊中包含zui需要刷新的通道)。進入通訊循環(huán)(某些設(shè)備進行一次采集至少需要兩次通訊所以需要通訊循環(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ù)交換過程中,用戶關(guān)心的數(shù)據(jù)往往只占全部信息的很小一部分,而且這些采集點分散在海量的數(shù)據(jù)中,如果不加判斷的依次讀取數(shù)據(jù),有效信息與采集信息的比例很低,實時性差;如果僅采集有效信息,分配的采集粒度過小,又會造成系統(tǒng)效率低下,信道利用率差。針對這一問題,采取以下的解決方法:
(1)只采集用戶關(guān)心的數(shù)據(jù)。如當有多個通道時,只傳送當前用戶只關(guān)心的通道的數(shù)據(jù),而不關(guān)心其它的通道。保證采集盡量少的通道,為每個需要采集的通道提供更快的采集周期。從而減少通訊量。
(2)對于待采集的數(shù)據(jù)分配不同的優(yōu)先級,對實時性要求高的部分數(shù)據(jù)優(yōu)先采集。可以根據(jù)用戶設(shè)置的數(shù)據(jù)刷新時間來改變其優(yōu)先級。
(3)實現(xiàn)一個動態(tài)分塊算法,在一個合理的粒度上對采集的信息分塊傳輸,兼顧信道利用率與有效信息獲取的實時性;實現(xiàn)的分塊算法簡述如下:在采集時判斷,如果當前采集的寄存器類的激活通道可以組成一個數(shù)據(jù)請求包,則進行處理,提高一次采集的通道數(shù)。根據(jù)開發(fā)人員定義的通道優(yōu)先級,找出優(yōu)先級zui高的通道地址附近的地址連續(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ù)接口基礎(chǔ)上開發(fā)PLC 驅(qū)動,縮短了開發(fā)時間和難度。投入運行的系統(tǒng)通信穩(wěn)定,采集速度快,通用性好,可靠性高。保證了項目的順利實施。本文作者創(chuàng)新點:具有通用性的監(jiān)控系統(tǒng)與PLC 通信接口設(shè)計,能夠大大縮短開發(fā)時間和難度,并提高通信穩(wěn)定性、實時性,具有很高的實用價值和經(jīng)濟價值。
作者簡介:李媛(1980-),女(漢族),山西省晉中市人,首都師范大學計算機聯(lián)合研究院04 級研究生,碩士,主要從事計算機網(wǎng)絡(luò),信息安全,嵌入式系統(tǒng)研究。
參考文獻
1 Modicon Inc. Modicon Modbus Protocol Reference Guide[Z].Modicon Inc.,1996
2 邱公偉.可編程控制器網(wǎng)絡(luò)通信及應用[M].北京:清華大學出版社.2000
3 高放等. 在PC 機上模擬PLC 實現(xiàn)MODBUS 通信 :微計算機信息 2001 年8 期
免責聲明
- 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://www.tzhjjxc.com。違反者本網(wǎng)將追究相關(guān)法律責任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔責任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負版權(quán)等法律責任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
SAMPE中國第二十屆國際先進復合材料展覽會
展會城市:北京市展會時間:2025-06-18