現(xiàn)場總線--PID控制算法應(yīng)用研究
(1) 自動化接口
本文引用地址:http://www.biyoush.com/article/201612/329502.htmOPC基金會為方便用戶在各種環(huán)境下軟件開發(fā),為數(shù)據(jù)訪問規(guī)范提供兩類接口:自動化接口和定制接口。基于定制接口的開發(fā),需要用到較深的COM/DCOM知識,比較晦澀難懂,而運(yùn)用自動化接口則有以下優(yōu)點(diǎn):客戶程序可以很容易地應(yīng)用接口,而無需了解接口的詳細(xì)內(nèi)部機(jī)理;可以運(yùn)用事件觸發(fā)機(jī)制;可以生成一個通用的動態(tài)鏈接庫(DLL)或控件供所有客戶端應(yīng)用程序使用。
(2) 自動化接口的通信機(jī)制
OPC客戶程序通過封裝的OPC自動化接口動態(tài)鏈接庫訪問OPC服務(wù)器,如圖5所示。該動態(tài)連接庫將OPC服務(wù)器的定制接口翻譯成OPC客戶程序希望的自動化接口,以供客戶程序調(diào)用。OPC客戶程序和動態(tài)鏈接庫是進(jìn)程內(nèi)的通信,而動態(tài)鏈接庫和OPC服務(wù)器的通信則基于COM/DCOM,既可以是進(jìn)程內(nèi)或本地的連接,又可以是遠(yuǎn)程連接。封裝的動態(tài)鏈接庫解決了定制接口的解釋和二者的通信,從而大大簡化了OPC客戶程序的開發(fā)?!?/p>
圖1 OPC客戶程序與服務(wù)器的通迅
(3) 自動化對象模型
OPC客戶程序的開發(fā)關(guān)鍵在于搞清該動態(tài)鏈接庫的封裝結(jié)構(gòu),也即自動化接口標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)可以用圖6所示的自動化對象模型表示。它主要由六類對象組成:
OPCServer:OPC服務(wù)器的一個實(shí)例。只有創(chuàng)建了OPCServer對象以后才能獲得OPC服務(wù)器的信息,它包括OPCGroups的搜索以及OPCBrowser對象的創(chuàng)建;
OPCGroups:能夠自動搜集到OPCServer范圍內(nèi)客戶端創(chuàng)建的所有的OPCGroup對象;
OPCGroup:OPCGroup對象的一個實(shí)例。它包含所有的狀態(tài)信息,并且為OPCGroup中所涉及的OPC- Items提供必要的服務(wù);
OPCItems:能夠自動搜集到OPCServer范圍內(nèi)客戶端創(chuàng)建的對應(yīng)相應(yīng)的OPCGroup中的所有的OPCItem對象;
OPCItem:一個自動化對象,它包含“位號”的定義,當(dāng)前值,狀態(tài)信息,最后更新時間;
OPCBrowser:瀏覽服務(wù)器中所有“位號”名稱的對象。對于每個OPCServer只能創(chuàng)建一個OPCBrowser對象?! ?/p>
圖2 自動化對象模型
1.2 實(shí)現(xiàn)PID控制的OPC客戶程序
(1) 使用VB開發(fā)OPC應(yīng)用程序
利用VB開發(fā)OPC應(yīng)用程序時,實(shí)現(xiàn)OPC自動化接口的OPC包裝DLL是必須的,這個OPC包裝DLL一般應(yīng)該是由OPC服務(wù)器的供應(yīng)商提供的,為OPC客戶程序的軟件開發(fā)提供了具有良好接口的工具。本文使用為OPC基金會的OPC包裝DLL進(jìn)行說明。
因?yàn)樵谛陆ǖ腣B工程里OPC包裝DLL還沒有注冊,必須先用下述方法對OPC包裝DLL進(jìn)行注冊:
從VB菜單里選擇[工程(P)]-[引用(N)];
在[可用的引用(A)]的一覽表示中,選擇對應(yīng)的OPC包裝DLL的文件名,這里選擇[OPC Automation 2.0];
(2) 實(shí)現(xiàn)步驟
用VB編寫OPC客戶端程序包含以下步驟:
添加服務(wù)器的引用,創(chuàng)建OPC服務(wù)器對象,并將客戶程序與服務(wù)器相連;
創(chuàng)建組集合并添加組對象;
添加OPC項,利用OPCBrowse方法瀏覽整個服務(wù)器中所有的項,選擇需要的項,將其添加到規(guī)定的組中,并顯示其值和狀態(tài);
在主畫面中顯示添加的組和項。
(3) 程序設(shè)計
圖3是以VB實(shí)現(xiàn)的具有PID功能的OPC同步客戶程序?! ?/p>
圖3 實(shí)現(xiàn)PID控制的OPC客戶程序
該單回路控制過程為自衡非振蕩,具有相互影響的雙容過程。其數(shù)學(xué)模型可用如下傳遞函數(shù)描述:G(s)=式中, Kp, Tp,τ為過程的增益、時間常數(shù)和時滯。式中的各參數(shù)可根據(jù)階躍響應(yīng)曲線用圖解法求得。
下面給出確定傳遞函數(shù)的參數(shù)的方法:設(shè)圖7中的控制量為q,測量值為y(∞),新的穩(wěn)態(tài)值為設(shè)定值,增益K可由輸入輸出的穩(wěn)態(tài)值直接算出,而Tp,τ則可以用作圖法確定。為了能夠隨時調(diào)用在OPC服務(wù)器上采集的測量值y并繪制出相應(yīng)的階躍響應(yīng)曲線,這里把選擇的數(shù)據(jù)存放在指定的數(shù)據(jù)庫中(采用SQL2000數(shù)據(jù)庫)。同時也是為了在進(jìn)行算法的仿真的時候,既可以從歷史數(shù)據(jù)庫中取數(shù)據(jù),也可隨著數(shù)據(jù)的采集,可以不斷刷新數(shù)據(jù),進(jìn)行算法的優(yōu)化,如圖4所示?! ?/p>
圖4 SQL server數(shù)據(jù)庫中存取OPC服務(wù)器數(shù)據(jù)
2、結(jié)束語
通過FF現(xiàn)場總線的過程控制實(shí)驗(yàn)系統(tǒng)的設(shè)計過程,論述OPC技術(shù),目的是希望通過VB去開發(fā)OPC自動化接口的客戶應(yīng)用程序,實(shí)現(xiàn)PID控制算法到OPC 客戶應(yīng)用程序的應(yīng)用編程,方便用戶的使用和系統(tǒng)的維護(hù)和升級,同時研究SQL Server 2000的數(shù)據(jù)庫系統(tǒng),用于歷史數(shù)據(jù)的存取以及算法的仿真。如何實(shí)現(xiàn)更加復(fù)雜的先進(jìn)控制算法,可以使用OLE自動化技術(shù)來實(shí)現(xiàn)VB與Matlab混合編程,即用VB編寫OPC客戶端程序來實(shí)現(xiàn)數(shù)據(jù)通信,而利用Matlab進(jìn)行先進(jìn)控制算法的編寫,從而對現(xiàn)場數(shù)據(jù)進(jìn)行分析,是下一步研究的重點(diǎn)。
評論