引言
在工業(yè)控制領(lǐng)域,如何有效的實(shí)現(xiàn)控制算法一直是人們普遍關(guān)心的問(wèn)題。目前,工控組態(tài)軟件能夠提供友好的人機(jī)交互界面,強(qiáng)大的通訊功能,但是計(jì)算能力不強(qiáng),很難實(shí)現(xiàn)一些復(fù)雜的控制策略[1]。Visual Basic是Microsoft公司開(kāi)發(fā)的Windows平臺(tái)的主力編程語(yǔ)言之一,它避開(kāi)了C++編程繁瑣和抽象的缺點(diǎn),綜合運(yùn)用了BAIC語(yǔ)言和新的可視化設(shè)計(jì)工具,不僅簡(jiǎn)單易學(xué),而且功能強(qiáng)大。同時(shí),VB還具有事件驅(qū)動(dòng)的編程機(jī)制,在開(kāi)發(fā)時(shí)可以充分?jǐn)U充其功能,如在函數(shù)層調(diào)用功能態(tài)鏈接庫(kù)(DLL)、在控件層使用VBX、在應(yīng)用層使用shell函數(shù)調(diào)用其他應(yīng)用程序等[2]。因此,可以利用組態(tài)軟件作為系統(tǒng)主控,定時(shí)進(jìn)行數(shù)據(jù)采樣、動(dòng)態(tài)工藝圖顯示、數(shù)據(jù)記錄等;利用VB來(lái)實(shí)現(xiàn)復(fù)雜的控制算法,而二者之間的無(wú)縫連接可以通過(guò)ActiveX技術(shù)來(lái)實(shí)現(xiàn),如圖1所示。這樣就可以充分發(fā)揮工控組態(tài)軟件和VB各自的優(yōu)勢(shì),實(shí)現(xiàn)復(fù)雜系統(tǒng)的控制。
FESTO 過(guò)程控制系統(tǒng)(如圖2所示)由液位站、流量站、壓力站、溫度站和PLC站組成。其中前四站模擬工業(yè)生產(chǎn)過(guò)程中對(duì)典型的液位、流量、壓力、溫度系統(tǒng)進(jìn)行控制的方法;進(jìn)行單閉環(huán)控制。而PLC站可將各站連接起來(lái)形成多輸入多輸出的的耦合系統(tǒng);另外設(shè)備上還留有PROFIBUS現(xiàn)場(chǎng)總線接口,可實(shí)現(xiàn)網(wǎng)絡(luò)控制。
圖2、FESTO 過(guò)程控制系統(tǒng)
通過(guò)實(shí)驗(yàn)?zāi)芰私夤I(yè)過(guò)程中對(duì)液位、流量、壓力、溫度系統(tǒng)的控制方法;能掌握超聲波傳感器、流量傳感器、壓力傳感器、熱點(diǎn)阻等常用傳感器的測(cè)量原理及使用方法;能通過(guò)液位、流量、壓力、溫度各站上的Burket控制器進(jìn)行PID參數(shù)的簡(jiǎn)單整定;給出開(kāi)環(huán)、閉環(huán)、前饋控制的控制效果結(jié)論。但是由于利用設(shè)備上帶有的Burket控制器對(duì)控制、給定量等各參數(shù)的設(shè)定需要較長(zhǎng)的時(shí)間,考慮到對(duì)Burket控制器的保養(yǎng)和擴(kuò)展網(wǎng)絡(luò)控制功能,故我們對(duì)FESTO 過(guò)程控制系統(tǒng)進(jìn)行了創(chuàng)新性試驗(yàn),在實(shí)踐中獲得了滿意的控制效果。
2.創(chuàng)新性試驗(yàn)
下面以液位站(圖3)為例對(duì)創(chuàng)新性試驗(yàn)進(jìn)行介紹。(其他站方法與液位站相同)
2.1液位系統(tǒng)介紹
圖3.液位站
液位控制系統(tǒng)是FESTO四個(gè)獨(dú)立站中的一站,包括一高一低兩個(gè)容器(通過(guò)中間連接管道上手動(dòng)閥的開(kāi)閉控制其通斷)、超聲波液傳感器、直流電機(jī)、直流電機(jī)調(diào)速器;以及四個(gè)系統(tǒng)都包含的向中間調(diào)度站PLC傳送開(kāi)關(guān)量的電容接近傳感器和PLC控制的電磁開(kāi)度閥。
系統(tǒng)的被控變量為高容器中液體的液位,執(zhí)行機(jī)構(gòu)為可調(diào)速的直流電機(jī)。根據(jù)實(shí)際測(cè)量值與預(yù)設(shè)給定值的偏差,控制器控制直流電機(jī)的轉(zhuǎn)速,以使高容器中的液位達(dá)到設(shè)定值。控制器具有自動(dòng)和手動(dòng)兩種控制方式。
自動(dòng)控制原理如圖4所示:
圖4.液位控制系統(tǒng)原理圖
只要超聲波液位傳感器測(cè)得的液位不等于給定值,就會(huì)有偏差e存在,Burket控制器內(nèi)的PID算法就會(huì)根據(jù)e的值算出控制輸出量,進(jìn)而調(diào)節(jié)直流電機(jī)的轉(zhuǎn)速,使容器中液體的液位發(fā)生變化,直到等于給定值,電機(jī)轉(zhuǎn)速才保持不變。
2.2利用組態(tài)王設(shè)計(jì)FESTO 過(guò)程控制系統(tǒng)
2.2.1 現(xiàn)場(chǎng)信號(hào)的檢測(cè)及采集
數(shù)據(jù)采集是系統(tǒng)的基礎(chǔ)。對(duì)于液位控制而言需要將液位信號(hào)及時(shí)準(zhǔn)確地采集到控制計(jì)算機(jī)中。從現(xiàn)場(chǎng)傳感器輸出的模擬值,經(jīng)PCI數(shù)據(jù)采集板卡AD通道就可以變化成數(shù)字量傳輸?shù)接?jì)算機(jī)中。
由超聲波液位傳感器的輸出為4—20mA直流電流信號(hào)經(jīng)過(guò)科日新KPCI—811板卡12位ADC轉(zhuǎn)換為0—4095的數(shù)字量,存放在板卡的寄存器中。組態(tài)王下設(shè)置的I/O變量通過(guò)PCI總線讀取數(shù)據(jù),將其進(jìn)行標(biāo)度變換,還原為物理量,就可以與用戶輸入的設(shè)定值比較運(yùn)算。
例如在組態(tài)王數(shù)據(jù)詞典里建立“液位測(cè)量值”I/O變量,板卡將傳感器的輸出轉(zhuǎn)換為12位數(shù)字量,通過(guò)該變量就可以將數(shù)字量取出并得到對(duì)應(yīng)的物理量,其基本屬性為:
變量名:液位測(cè)量值 變量類型:I/O實(shí)型
最小值:0 最大值:20(對(duì)應(yīng)物理量的最大值)
最小原始值:0 最大原始值:4095(對(duì)應(yīng)板卡數(shù)字量)
連接設(shè)備:KPCI811 寄存器:AD0
數(shù)據(jù)類型:USHORT 采集頻率:1000ms
讀寫(xiě)屬性:只讀
2.2.2 上位機(jī)控制算法的實(shí)現(xiàn)
ActiveX技術(shù)是Microsoft對(duì)OLE技術(shù)的更新和發(fā)展,它通常以動(dòng)態(tài)鏈接庫(kù)的形式存在,其設(shè)計(jì)思想是將一個(gè)程序嵌入到另一個(gè)程序中。ActiveX的優(yōu)勢(shì)在于它的動(dòng)態(tài)可交互性,用戶可以在使用過(guò)程中,通過(guò)改變它的屬性和參數(shù),在應(yīng)用程序中實(shí)現(xiàn)自己的特殊要求[3]。
用VB將簡(jiǎn)單自適應(yīng)控制算法打包成ActiveX控件,將測(cè)量值、設(shè)定值和控制輸出量留做控件的接口,在組態(tài)王下,通過(guò)設(shè)置I/O變量,與控件接口變量一一對(duì)應(yīng)連接,就可以將板卡轉(zhuǎn)換得到的現(xiàn)場(chǎng)信號(hào)送入控制算法控件,算法運(yùn)算得到的控制量,經(jīng)過(guò)板卡也可以送到現(xiàn)場(chǎng)執(zhí)行機(jī)構(gòu)。
組態(tài)王I/O變量輸出的控制量可根據(jù)執(zhí)行機(jī)構(gòu)的情況,設(shè)為電壓或電流形式。811板卡有2路模擬量輸出通道,本系統(tǒng)選擇0—10V的電壓輸出,通過(guò)電機(jī)調(diào)節(jié)器對(duì)直流電機(jī)進(jìn)行轉(zhuǎn)速控制,從而保持系統(tǒng)對(duì)液位的控制。
現(xiàn)場(chǎng)信號(hào)、組態(tài)王與控制算法之間的連接關(guān)系如圖5所示。
2.2.3 監(jiān)控界面的設(shè)計(jì)
整個(gè)監(jiān)控界面如圖6所示,VB下制作控件如圖7所示,組態(tài)王中調(diào)用控件液位站監(jiān)控界面效果如圖8所示。
圖6. FESTO 過(guò)程控制系統(tǒng)監(jiān)控界面
圖7. VB下制作的控件
圖8. 液位站監(jiān)控界面
以組態(tài)王6.51為開(kāi)發(fā)平臺(tái),利用其豐富的圖形庫(kù)和靈活的動(dòng)畫(huà)功能,創(chuàng)建了逼真的動(dòng)態(tài)畫(huà)面來(lái)實(shí)時(shí)顯示現(xiàn)場(chǎng)的控制過(guò)程。系統(tǒng)的各參數(shù)不僅可以直觀顯示,還能夠做實(shí)時(shí)和歷史記錄,并根據(jù)需要將其打印成報(bào)表;完善的報(bào)警管理可以及時(shí)提示報(bào)警事件,并記錄報(bào)警信息,以備故障診斷時(shí)查詢。
3結(jié)論
在FESTO 過(guò)程控制系統(tǒng)上多次實(shí)驗(yàn)后,這種基于工控組態(tài)軟件和ActiveX控件形式的控制系統(tǒng),很好的滿足了試驗(yàn)的要求。上位機(jī)借助組態(tài)軟件和PCI數(shù)據(jù)采集板卡可以進(jìn)行現(xiàn)場(chǎng)數(shù)據(jù)的實(shí)時(shí)顯示和控制參數(shù)的實(shí)時(shí)修改,二者通過(guò)ActiveX控件無(wú)縫連接,交互數(shù)據(jù),達(dá)到控制的目的。組態(tài)軟件與ActiveX控件相結(jié)合實(shí)現(xiàn)控制的實(shí)驗(yàn)方案,彌補(bǔ)了組態(tài)軟件命令語(yǔ)言功能單一的缺點(diǎn), 也為在工業(yè)控制領(lǐng)域中使用組態(tài)軟件來(lái)完成復(fù)雜的控制算法開(kāi)辟了新的途徑。
本文作者創(chuàng)新點(diǎn):組態(tài)軟件的圖形動(dòng)畫(huà)顯示功能已經(jīng)非常成熟,但是控制能力卻相對(duì)較弱。因此,本文介紹了一種利用ActiveX特性擴(kuò)充組態(tài)軟件控制功能的新方法。利用高級(jí)語(yǔ)言將控制算法打包成控件,將輸入輸出量留作接口,組態(tài)軟件開(kāi)發(fā)環(huán)境下調(diào)用算法控件,并設(shè)置變量與控件接口相連,就可以實(shí)現(xiàn)相應(yīng)的控制功能。該方法簡(jiǎn)單實(shí)用,為組態(tài)軟件在過(guò)程控制系統(tǒng)中的應(yīng)用拓展了新天地。
參考文獻(xiàn):
[1] 余斌,陳維克.基于組態(tài)軟件RSView32與matlab的通信.微計(jì)算機(jī)信息,2005年第四期42頁(yè)
[2] 陳娟,周納.關(guān)于VB功能擴(kuò)展及應(yīng)用.湖南商學(xué)院學(xué)報(bào),2001年第一期107頁(yè)
[3] 王海瑞,鐘家玉.ActiveX技術(shù)在組態(tài)軟件中的應(yīng)用研究.計(jì)控系統(tǒng),2002年第四期22頁(yè)