現場(chǎng)總線(xiàn)--PID控制算法應用研究
(1) 自動(dòng)化接口
本文引用地址:http://dyxdggzs.com/article/201612/329502.htmOPC基金會(huì )為方便用戶(hù)在各種環(huán)境下軟件開(kāi)發(fā),為數據訪(fǎng)問(wèn)規范提供兩類(lèi)接口:自動(dòng)化接口和定制接口?;诙ㄖ平涌诘拈_(kāi)發(fā),需要用到較深的COM/DCOM知識,比較晦澀難懂,而運用自動(dòng)化接口則有以下優(yōu)點(diǎn):客戶(hù)程序可以很容易地應用接口,而無(wú)需了解接口的詳細內部機理;可以運用事件觸發(fā)機制;可以生成一個(gè)通用的動(dòng)態(tài)鏈接庫(DLL)或控件供所有客戶(hù)端應用程序使用。
(2) 自動(dòng)化接口的通信機制
OPC客戶(hù)程序通過(guò)封裝的OPC自動(dòng)化接口動(dòng)態(tài)鏈接庫訪(fǎng)問(wèn)OPC服務(wù)器,如圖5所示。該動(dòng)態(tài)連接庫將OPC服務(wù)器的定制接口翻譯成OPC客戶(hù)程序希望的自動(dòng)化接口,以供客戶(hù)程序調用。OPC客戶(hù)程序和動(dòng)態(tài)鏈接庫是進(jìn)程內的通信,而動(dòng)態(tài)鏈接庫和OPC服務(wù)器的通信則基于COM/DCOM,既可以是進(jìn)程內或本地的連接,又可以是遠程連接。封裝的動(dòng)態(tài)鏈接庫解決了定制接口的解釋和二者的通信,從而大大簡(jiǎn)化了OPC客戶(hù)程序的開(kāi)發(fā)?!?/p>

圖1 OPC客戶(hù)程序與服務(wù)器的通迅
(3) 自動(dòng)化對象模型
OPC客戶(hù)程序的開(kāi)發(fā)關(guān)鍵在于搞清該動(dòng)態(tài)鏈接庫的封裝結構,也即自動(dòng)化接口標準。該標準可以用圖6所示的自動(dòng)化對象模型表示。它主要由六類(lèi)對象組成:
OPCServer:OPC服務(wù)器的一個(gè)實(shí)例。只有創(chuàng )建了OPCServer對象以后才能獲得OPC服務(wù)器的信息,它包括OPCGroups的搜索以及OPCBrowser對象的創(chuàng )建;
OPCGroups:能夠自動(dòng)搜集到OPCServer范圍內客戶(hù)端創(chuàng )建的所有的OPCGroup對象;
OPCGroup:OPCGroup對象的一個(gè)實(shí)例。它包含所有的狀態(tài)信息,并且為OPCGroup中所涉及的OPC- Items提供必要的服務(wù);
OPCItems:能夠自動(dòng)搜集到OPCServer范圍內客戶(hù)端創(chuàng )建的對應相應的OPCGroup中的所有的OPCItem對象;
OPCItem:一個(gè)自動(dòng)化對象,它包含“位號”的定義,當前值,狀態(tài)信息,最后更新時(shí)間;
OPCBrowser:瀏覽服務(wù)器中所有“位號”名稱(chēng)的對象。對于每個(gè)OPCServer只能創(chuàng )建一個(gè)OPCBrowser對象?! ?/p>

圖2 自動(dòng)化對象模型
1.2 實(shí)現PID控制的OPC客戶(hù)程序
(1) 使用VB開(kāi)發(fā)OPC應用程序
利用VB開(kāi)發(fā)OPC應用程序時(shí),實(shí)現OPC自動(dòng)化接口的OPC包裝DLL是必須的,這個(gè)OPC包裝DLL一般應該是由OPC服務(wù)器的供應商提供的,為OPC客戶(hù)程序的軟件開(kāi)發(fā)提供了具有良好接口的工具。本文使用為OPC基金會(huì )的OPC包裝DLL進(jìn)行說(shuō)明。
因為在新建的VB工程里OPC包裝DLL還沒(méi)有注冊,必須先用下述方法對OPC包裝DLL進(jìn)行注冊:
從VB菜單里選擇[工程(P)]-[引用(N)];
在[可用的引用(A)]的一覽表示中,選擇對應的OPC包裝DLL的文件名,這里選擇[OPC Automation 2.0];
(2) 實(shí)現步驟
用VB編寫(xiě)OPC客戶(hù)端程序包含以下步驟:
添加服務(wù)器的引用,創(chuàng )建OPC服務(wù)器對象,并將客戶(hù)程序與服務(wù)器相連;
創(chuàng )建組集合并添加組對象;
添加OPC項,利用OPCBrowse方法瀏覽整個(gè)服務(wù)器中所有的項,選擇需要的項,將其添加到規定的組中,并顯示其值和狀態(tài);
在主畫(huà)面中顯示添加的組和項。
(3) 程序設計
圖3是以VB實(shí)現的具有PID功能的OPC同步客戶(hù)程序?! ?/p>

圖3 實(shí)現PID控制的OPC客戶(hù)程序
該單回路控制過(guò)程為自衡非振蕩,具有相互影響的雙容過(guò)程。其數學(xué)模型可用如下傳遞函數描述:G(s)=式中, Kp, Tp,τ為過(guò)程的增益、時(shí)間常數和時(shí)滯。式中的各參數可根據階躍響應曲線(xiàn)用圖解法求得。
下面給出確定傳遞函數的參數的方法:設圖7中的控制量為q,測量值為y(∞),新的穩態(tài)值為設定值,增益K可由輸入輸出的穩態(tài)值直接算出,而Tp,τ則可以用作圖法確定。為了能夠隨時(shí)調用在OPC服務(wù)器上采集的測量值y并繪制出相應的階躍響應曲線(xiàn),這里把選擇的數據存放在指定的數據庫中(采用SQL2000數據庫)。同時(shí)也是為了在進(jìn)行算法的仿真的時(shí)候,既可以從歷史數據庫中取數據,也可隨著(zhù)數據的采集,可以不斷刷新數據,進(jìn)行算法的優(yōu)化,如圖4所示?! ?/p>

圖4 SQL server數據庫中存取OPC服務(wù)器數據
2、結束語(yǔ)
通過(guò)FF現場(chǎng)總線(xiàn)的過(guò)程控制實(shí)驗系統的設計過(guò)程,論述OPC技術(shù),目的是希望通過(guò)VB去開(kāi)發(fā)OPC自動(dòng)化接口的客戶(hù)應用程序,實(shí)現PID控制算法到OPC 客戶(hù)應用程序的應用編程,方便用戶(hù)的使用和系統的維護和升級,同時(shí)研究SQL Server 2000的數據庫系統,用于歷史數據的存取以及算法的仿真。如何實(shí)現更加復雜的先進(jìn)控制算法,可以使用OLE自動(dòng)化技術(shù)來(lái)實(shí)現VB與Matlab混合編程,即用VB編寫(xiě)OPC客戶(hù)端程序來(lái)實(shí)現數據通信,而利用Matlab進(jìn)行先進(jìn)控制算法的編寫(xiě),從而對現場(chǎng)數據進(jìn)行分析,是下一步研究的重點(diǎn)。
評論