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