1、引言
現場總線技術的發(fā)展使得控制系統(tǒng)在由封閉走向開放的進程中邁進了一大步。以現場總線為基礎的開放式控制系統(tǒng)開始進入封閉的DCS系統(tǒng),成為過程控制的發(fā)展方向。FF(基金會現場總線)現場總線是一種全數字、串行、雙向通信網絡,同時也是一種專門針對過程自動化領域的應用而設計的現場總線。
本文以在中科院沈陽自動化研究所設計的基于FF現場總線的網絡化測控實驗平臺上,設計了雙容水箱的液位反饋控制回路,并結合具體被控對象提出了將PID控制算法應用到FF現場總線系統(tǒng)的可行性方案,既在OPC服務器MicroCyber.FFServer.1的基礎上實現了基于OPC技術的PID控制算法。實驗表明,該方案控制效果更好的發(fā)揮了現場總線與PID控制的技術優(yōu)勢,取得了預期的控制效果。
2、基于FF現場總線的網絡化平臺
本系統(tǒng)包括兩個部分:FF現場總線部分和現場控制模型部分,如圖1。FF現場總線包括低速現場總線H1和高速現場總線HSE。低速現場總線H1的速率為31.25kbps,可用于溫度、液位及流量等控制場合,信號類型為電壓信號;高速現場總線HSE的速率為100Mbps,一般用于高級控制、遠程輸入/輸出和高速工廠自動化等場合?,F場控制模型可以利用實驗室的原有設備,從而節(jié)約了投資。原有的模擬儀表可以通過電流信號到現場總線信號變送器轉接到現場總線。
圖1 系統(tǒng)軟件運行關系
以單回路液位控制為例,上位機中軟件的運行情況:
(1) HSE Init接口軟件,選擇H1網段,HSE接口程序可以與以太網段內的HSE設備,以及LD設備下的H1網段設備進行交互,向組態(tài)等上層軟件提供數據訪問接口;
(2) 運行組態(tài)程序FF-Configurator組態(tài)軟件,刷新網段獲取系統(tǒng)的現場設備列表和功能塊列表,刷新網段后,建立應用完成功能塊組態(tài),功能塊間的連線表示通過現場總線通信的信號連接,如圖2所示;
(3) FF H1和FF HSE OPC服務器, 每秒鐘刷新一次,實現設備的實時數據和歷史數據共享以及報警等功能;
(4) 設計SiaView監(jiān)控軟件,新建一個工程,在對象中選擇PID拖到視圖中,與OPC連接后經過編輯可得到一個PID功能塊操作面板。
從組態(tài)軟件的工程窗口的設備中選擇IF-AI1功能塊、IF-PID功能塊和FI-AO1功能塊拖拽到應用視圖中連接配置成一個PID控制回路,見圖2。將功能塊連接,建立功能塊之間的聯系,使功能塊之間能夠進行參數值的傳遞并需下載組態(tài)信息到現場設備。要使液位控制回路正確運行需要修改功能塊的參數值,雙擊IF-PID功能塊,打開塊的參數窗口,將IF-PID中MODE_BLK項下的TARGET參數修改成AUTO模式,讀取功能塊參數,從而實現單回路的液位控制自動正常的運行。如果想要實現將先進控制算法應用到FF現場總線系統(tǒng)的方案,只需將IF-PID中MODE_BLK項下的TARGET參數修改成MAN模式,具體設置如圖3所示,然后通過OPC技術實現過程變量和控制變量的通訊。
圖2 應用窗口中配置的PID組態(tài)策略
圖3 實現先進控制算法時的IF-PID功能塊參數表
3、基于OPC的PID控制方案
實現基于FF現場總線的先進控制算法,要先以實現常規(guī)PID控制為基礎,包含先進控制算法的軟件通過OPC接口來讀寫硬件設備的信息(作為OPC客戶),通過OPC服務器訪問過程數據,可以克服異構網絡結構和網絡協議之間的差異。
3.1 OPC服務器
選用中科院沈陽自動化研究所提供了OPC服務器MicroCyber.FFServer.1,服務器的地址空間由服務器可讀寫的所有數據項組成,可以根據需要得到數據項的全稱對其進行相關操作。圖4為OPC服務器的地址空間圖。使用OPC技術實現用VB6.0編寫的客戶端程序與OPC服務器的通訊,服務器中液位的實時值IF-PID-PV.VALUE,以及自定義變量如液位設定值IF-PID-SP.VALUE,然后進行算法控制,得到控制量,將控制量寫入OPC服務器的項FI-PID-OUT.VALUE,從而控制受控系統(tǒng)。
圖4 OPC服務器的地址空間圖
3.2 OPC自動化接口標準
(1) 自動化接口
OPC基金會為方便用戶在各種環(huán)境下軟件開發(fā),為數據訪問規(guī)范提供兩類接口:自動化接口和定制接口?;诙ㄖ平涌诘拈_發(fā),需要用到較深的COM/DCOM知識,比較晦澀難懂,而運用自動化接口則有以下優(yōu)點:客戶程序可以很容易地應用接口,而無需了解接口的詳細內部機理;可以運用事件觸發(fā)機制;可以生成一個通用的動態(tài)鏈接庫(DLL)或控件供所有客戶端應用程序使用。
(2) 自動化接口的通信機制
OPC客戶程序通過封裝的OPC自動化接口動態(tài)鏈接庫訪問OPC服務器,如圖5所示。該動態(tài)連接庫將OPC服務器的定制接口翻譯成OPC客戶程序希望的自動化接口,以供客戶程序調用。OPC客戶程序和動態(tài)鏈接庫是進程內的通信,而動態(tài)鏈接庫和OPC服務器的通信則基于COM/DCOM,既可以是進程內或本地的連接,又可以是遠程連接。封裝的動態(tài)鏈接庫解決了定制接口的解釋和二者的通信,從而大大簡化了OPC客戶程序的開發(fā)。
圖5 OPC客戶程序與服務器的通迅 (3) 自動化對象模型
OPC客戶程序的開發(fā)關鍵在于搞清該動態(tài)鏈接庫的封裝結構,也即自動化接口標準。該標準可以用圖6所示的自動化對象模型表示。它主要由六類對象組成:
OPCServer:OPC服務器的一個實例。只有創(chuàng)建了OPCServer對象以后才能獲得OPC服務器的信息,它包括OPCGroups的搜索以及OPCBrowser對象的創(chuàng)建;
OPCGroups:能夠自動搜集到OPCServer范圍內客戶端創(chuàng)建的所有的OPCGroup對象;
OPCGroup:OPCGroup對象的一個實例。它包含所有的狀態(tài)信息,并且為OPCGroup中所涉及的OPC- Items提供必要的服務;
OPCItems:能夠自動搜集到OPCServer范圍內客戶端創(chuàng)建的對應相應的OPCGroup中的所有的OPCItem對象;
OPCItem:一個自動化對象,它包含“位號”的定義,當前值,狀態(tài)信息,最后更新時間;
OPCBrowser:瀏覽服務器中所有“位號”名稱的對象。對于每個OPCServer只能創(chuàng)建一個OPCBrowser對象。
圖6 自動化對象模型
3.3 實現PID控制的OPC客戶程序
(1) 使用VB開發(fā)OPC應用程序
利用VB開發(fā)OPC應用程序時,實現OPC自動化接口的OPC包裝DLL是必須的,這個OPC包裝DLL一般應該是由OPC服務器的供應商提供的,為OPC客戶程序的軟件開發(fā)提供了具有良好接口的工具。本文使用為OPC基金會的OPC包裝DLL進行說明。
因為在新建的VB工程里OPC包裝DLL還沒有注冊,必須先用下述方法對OPC包裝DLL進行注冊:
從VB菜單里選擇[工程(P)]-[引用(N)];
在[可用的引用(A)]的一覽表示中,選擇對應的OPC包裝DLL的文件名,這里選擇[OPC Automation 2.0];
(2) 實現步驟
用VB編寫OPC客戶端程序包含以下步驟:
添加服務器的引用,創(chuàng)建OPC服務器對象,并將客戶程序與服務器相連;
創(chuàng)建組集合并添加組對象;
添加OPC項,利用OPCBrowse方法瀏覽整個服務器中所有的項,選擇需要的項,將其添加到規(guī)定的組中,并顯示其值和狀態(tài);
在主畫面中顯示添加的組和項。
(3) 程序設計
圖7是以VB實現的具有PID功能的OPC同步客戶程序。
圖7 實現PID控制的OPC客戶程序
該單回路控制過程為自衡非振蕩,具有相互影響的雙容過程。其數學模型可用如下傳遞函數描述:
G(s)=
式中, Kp, Tp,τ為過程的增益、時間常數和時滯。式中的各參數可根據階躍響應曲線用圖解法求得。
下面給出確定傳遞函數的參數的方法:設圖7中的控制量為q,測量值為y(∞),新的穩(wěn)態(tài)值為設定值,增益K可由輸入輸出的穩(wěn)態(tài)值直接算出
,而Tp,τ則可以用作圖法確定。為了能夠隨時調用在OPC服務器上采集的測量值y并繪制出相應的階躍響應曲線,這里把選擇的數據存放在指定的數據庫中(采用SQL2000數據庫)。同時也是為了在進行算法的仿真的時候,既可以從歷史數據庫中取數據,也可隨著數據的采集,可以不斷刷新數據,進行算法的優(yōu)化,如圖8所示。
圖8 SQL server數據庫中存取OPC服務器數據
4、結束語
通過FF現場總線的過程控制實驗系統(tǒng)的設計過程,論述OPC技術,目的是希望通過VB去開發(fā)OPC自動化接口的客戶應用程序,實現PID控制算法到OPC 客戶應用程序的應用編程,方便用戶的使用和系統(tǒng)的維護和升級,同時研究SQL Server 2000的數據庫系統(tǒng),用于歷史數據的存取以及算法的仿真。如何實現更加復雜的先進控制算法,可以使用OLE自動化技術來實現VB與Matlab混合編程,即用VB編寫OPC客戶端程序來實現數據通信,而利用Matlab進行先進控制算法的編寫,從而對現場數據進行分析,是下一步研究的重點。