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