隨著工業(yè)自動化的發(fā)展,PLC 驅(qū)動程序的設(shè)計和開發(fā)成為最常遇到的問題。信道利用率和數(shù)據(jù)采集效率直接影響到整個監(jiān)控系統(tǒng)的性能。本文討論了設(shè)計和開發(fā)PLC 驅(qū)動程序的方法;詳細介紹PLC 底層驅(qū)動函數(shù)的設(shè)計和實現(xiàn);并探討了提高信道利用率的幾個關(guān)鍵問題。實驗證明,能夠降低開發(fā)成本并大大提高計算機監(jiān)控系統(tǒng)與PLC 之間的數(shù)據(jù)通信的效率和信道利用率。
1 引言
隨著計算機科學(xué)技術(shù)、工業(yè)控制等方面的新技術(shù)的迅速發(fā)展,使用計算機監(jiān)控系統(tǒng)與現(xiàn)場PLC 設(shè)備進行數(shù)據(jù)交換得到了廣泛的應(yīng)用。這類數(shù)據(jù)交換往往具有以下的特點,數(shù)據(jù)量大,采集點分散,帶寬較窄。由于不同廠家所提供的PLC 現(xiàn)場設(shè)備的通訊機制并不相同,計算機監(jiān)控系統(tǒng)軟件需要開發(fā)的設(shè)備通信驅(qū)動程序就越來越多。這種復(fù)雜的設(shè)備驅(qū)動程序的開發(fā)具有以下的特點:
首先,上位監(jiān)控系統(tǒng)與PLC 設(shè)備間的數(shù)據(jù)交換,應(yīng)用較普遍。
其次,這種數(shù)據(jù)通訊過程,缺乏有通用性的框架設(shè)計,開發(fā)周期長,難度大,難以通用。
再者,在有限帶寬限制條件下的大數(shù)據(jù)量傳輸,普遍存在著信道利用率低,系統(tǒng)效率差,不穩(wěn)定的情況,迫切需要大幅度提高信道利用率的算法。而且在已有的數(shù)據(jù)交換標準中,對于有限帶寬條件下的信道利用率也沒有成熟的設(shè)計。
如上所述,開發(fā)PLC 設(shè)備的通用性數(shù)據(jù)通信接口具有廣泛的應(yīng)用前景和實現(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ā)送一個相應(yīng)的應(yīng)答幀。主設(shè)備在工作時會根據(jù)需要向從設(shè)備發(fā)送請求幀,請求一些數(shù)據(jù)或者是發(fā)送一條命令,在發(fā)完請求幀后主設(shè)備需等待從設(shè)備的回答,這個等待的過程有一個超時時間限制。如果過了一定的時間還沒有收到回答,它會認為本次通訊失敗,然后按照一定的邏輯判斷是應(yīng)該重發(fā)請求還是放棄。
通訊使用的通訊協(xié)議,分為ASCII 通訊和16 進制通訊兩類。PLC 的通訊協(xié)議中大多數(shù)都是使用16 進制通訊。而且在串口通訊中,為了保證通訊的正確性、完整性,通常在通訊幀的尾部加上校驗,常見的有和校驗,異或校驗,CRC 校驗等等。
在通訊過程中,上位機的MCGS 監(jiān)控軟件調(diào)用PLC 驅(qū)動,根據(jù)具體協(xié)議,向PLC 設(shè)備發(fā)送寄存器的讀寫命令,并接收應(yīng)答數(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ù)幀的流程圖。不同的設(shè)備具有不同的協(xié)議內(nèi)容,使用定義好的模版解析函數(shù)只需要開發(fā)人員按照設(shè)備協(xié)議將幀分割為有效的數(shù)據(jù)部分,添入聯(lián)合體FrameField 即可。該聯(lián)合體可將協(xié)議數(shù)據(jù)最小分割為位來進行操作。
如上圖所示,第一個字節(jié)為幀頭,最后一個字節(jié)為幀尾,第二個字節(jié)為狀態(tài)標示,第三至第六個字節(jié)為模擬量,第七個字節(jié)為單位,第八個字節(jié)按位分為四路輸入和四路輸出。
4 接口設(shè)計
通常來說,一個廠家的同系列的PLC 產(chǎn)品,通訊協(xié)議一般是一樣的。區(qū)別只是在于其中一些寄存器的大小不同。這樣我們就考慮可以讓這一個系列的設(shè)備使用同一個驅(qū)動。為了提高通用性,同時一般情況下,用戶也不需要使用所有的寄存器,所以把這種設(shè)備構(gòu)件的通道設(shè)計成用戶可以在組態(tài)時自己進行定義。所有的通道及其所對應(yīng)的參數(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ù)交換的分析,將用戶的一般需求擬概括為三種采集模式,即密集采集,按需采集,定時采集。
密集采集模式:在這種情況下,用戶希望能盡量利用物理帶寬,保證最快的采集速度和更新。在這種模式下,理想狀態(tài)是設(shè)備始終處于采集狀態(tài)。采集目前所有激活通道中離需要采集的周期時間最小的通道。保證所有的通道都能獲得采集機會,但是相對與其他模式,在該模式下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)先級最高的通道,進行采集。對通道進行分塊(塊中包含最需要刷新的通道)。進入通訊循環(huán)(某些設(shè)備進行一次采集至少需要兩次通訊所以需要通訊循環(huán))。發(fā)送數(shù)據(jù)請求并等待回應(yīng);根據(jù)返回的信息解析出結(jié)果,并作相應(yīng)處理;判斷是否需要下一次采集,如果不需要跳出循環(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)效率低下,信道利用率差。針對這一問題,采取以下的解決方法:
?。?)只采集用戶關(guān)心的數(shù)據(jù)。如當有多個通道時,只傳送當前用戶只關(guān)心的通道的數(shù)據(jù),而不關(guān)心其它的通道。保證采集盡量少的通道,為每個需要采集的通道提供更快的采集周期。從而減少通訊量。
?。?)對于待采集的數(shù)據(jù)分配不同的優(yōu)先級,對實時性要求高的部分數(shù)據(jù)優(yōu)先采集??梢愿鶕?jù)用戶設(shè)置的數(shù)據(jù)刷新時間來改變其優(yōu)先級。
?。?)實現(xiàn)一個動態(tài)分塊算法,在一個合理的粒度上對采集的信息分塊傳輸,兼顧信道利用率與有效信息獲取的實時性;實現(xiàn)的分塊算法簡述如下:在采集時判斷,如果當前采集的寄存器類的激活通道可以組成一個數(shù)據(jù)請求包,則進行處理,提高一次采集的通道數(shù)。根據(jù)開發(fā)人員定義的通道優(yōu)先級,找出優(yōu)先級最高的通道地址附近的地址連續(xù)(或緊密)的通道,這些通道形成一個通道塊。重復(fù)同樣的過程,將剩下的通道繼續(xù)分塊,直到形成的塊數(shù)大于某一規(guī)定的數(shù)值比如20 或?qū)⒈炯拇嫫鞯乃型ǖ婪峙渫瓿伞?/p>
(4)根據(jù)通訊協(xié)議的特點,在打包數(shù)據(jù)請求時盡量保證包含更多的請求,從而減少請求的總次數(shù)。
工業(yè)生產(chǎn)中,什么樣的報警預(yù)警器才夠靈活?工業(yè)生產(chǎn)不斷更新迭代,智能制造也越來越深入到現(xiàn)代化生產(chǎn)的全過程當中。隨著數(shù)字時代的高速發(fā)展,生產(chǎn)運營…
“智”控設(shè)計 | 羅克韋爾自動化全新微控系統(tǒng)與設(shè)計軟件目前,隨著行業(yè)市場需求的日益增長以及對技術(shù)的嚴苛要求,羅克韋爾自動化推出Allen-B…
潔白的雪山、青青的牧草、仿佛伸手就能觸碰到的澄澈天空,在世界屋脊西藏,高海拔地區(qū)獨有的風(fēng)貌不僅帶給人們天人合一的美,同時在遼闊的凈土之下,還…
在當今的環(huán)境下,制造企業(yè)舉步維艱,每天都面臨著重重壓力。全球化的快速推進、技術(shù)的不斷進步、消費者的偏好不斷變化、政策法規(guī)的日趨嚴格等都在持續(xù)…
版權(quán)所有:內(nèi)蒙古祺韻光迅科技有限公司 網(wǎng)站建設(shè): 國風(fēng)網(wǎng)絡(luò) 網(wǎng)站地圖 蒙ICP備15002091號 蒙公網(wǎng)安備 15010302000582號 電子營業(yè)執(zhí)照
TOP