OPC技術(shù)在液位控制中的應(yīng)用解析
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
隨著智能儀表和現(xiàn)場(chǎng)總線(xiàn)技術(shù)越來(lái)越多地應(yīng)用于工業(yè)現(xiàn)場(chǎng),計(jì)算機(jī)控制系統(tǒng)內(nèi)部各軟硬件間以及不同系統(tǒng)間需要進(jìn)行大量的信息共享與交互。由于目前企業(yè)使用的控制系統(tǒng)往往由不同廠商開(kāi)發(fā),因此相互間的兼容性差。
雖然采用專(zhuān)用接口或數(shù)據(jù)庫(kù)互連可實(shí)現(xiàn)部分信息交互,但因?qū)嵤┏杀靖?、系統(tǒng)集成難度大,所以大家一直在探討新的解決方法,OPC(OLE for process contr01)技術(shù)就是其中之一。
OPC規(guī)范是由AB、西門(mén)子等200多家自動(dòng)化廠商與微軟合作制定的一項(xiàng)工業(yè)標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)定義了在微軟操作系統(tǒng)下,不同程序、設(shè)備之間交換實(shí)時(shí)數(shù)據(jù)的方法,能將現(xiàn)場(chǎng)信號(hào)按照統(tǒng)一的標(biāo)準(zhǔn)與各廠商提供的軟件無(wú)縫連接,同時(shí)對(duì)硬件制造商和軟件開(kāi)發(fā)商劃分了界限,大大提高了控制系統(tǒng)的互操作性、適應(yīng)性和可擴(kuò)展性。
1 基于OPC技術(shù)的液位控制系統(tǒng)
1.1液位對(duì)象
液位對(duì)象是常見(jiàn)的工業(yè)過(guò)程被控對(duì)象,復(fù)雜液位對(duì)象具有時(shí)變、非線(xiàn)性、大滯后和不確定性等過(guò)程對(duì)象的典型特征。
本文提出的液位系統(tǒng)是一種基于OPC技術(shù)的多級(jí)網(wǎng)絡(luò)控制平臺(tái),并在其中嵌入了模糊控制算法,控制網(wǎng)絡(luò)很好地實(shí)現(xiàn)了現(xiàn)場(chǎng)操作級(jí)、工程師站和專(zhuān)家站的信息共享。同時(shí),通過(guò)Access數(shù)據(jù)庫(kù)、VB等應(yīng)用軟件將專(zhuān)家知識(shí)庫(kù)、過(guò)程模型、仿真圖件及實(shí)際生產(chǎn)過(guò)程無(wú)縫地連接起來(lái),組成了一種開(kāi)放的、即插即用的工業(yè)實(shí)時(shí)監(jiān)控系統(tǒng)。
本文所用對(duì)象為深圳固高公司的三容水箱系統(tǒng),其雙容液位部分結(jié)構(gòu)如圖1所示。
圖1 液位對(duì)象結(jié)構(gòu)
水由水泵從儲(chǔ)水箱中抽出后,流經(jīng)電磁閥、水柱1、手動(dòng)閥1、水柱2、手動(dòng)閥2,再回到儲(chǔ)水箱。該對(duì)象的輸入信號(hào)為電磁閥電壓,輸出信號(hào)為兩水柱水位。各閥門(mén)的開(kāi)度變化均可影響對(duì)象的非線(xiàn)性程度。
1.2液位控制系統(tǒng)的OPC結(jié)構(gòu)
本文中的液位控制系統(tǒng)采用圖2所示的網(wǎng)絡(luò)結(jié)構(gòu)。該系統(tǒng)由現(xiàn)場(chǎng)操作級(jí)、工程師站和專(zhuān)家站三級(jí)網(wǎng)絡(luò)組成。
圖2 液位控制系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)
1.2.1現(xiàn)場(chǎng)操作級(jí)
現(xiàn)場(chǎng)操作級(jí)包括液位對(duì)象、數(shù)據(jù)采集卡和控制PC機(jī)。主要完成以下功能。
①液位傳感器的靜態(tài)標(biāo)定與動(dòng)態(tài)校準(zhǔn);
②液位信號(hào)的數(shù)據(jù)采集處理,并通過(guò)OPC協(xié)議將數(shù)據(jù)傳輸給工程師站和專(zhuān)家站;
③液位系統(tǒng)畫(huà)面監(jiān)控及控制方式的選擇,包括手動(dòng)與自動(dòng)控制。
1.2.2工程師站
工程師站由3臺(tái)控制PC機(jī)組成,裝有RSView32、VB等高級(jí)應(yīng)用軟件,主要完成以下功能。
①集中顯示液位控制系統(tǒng)所有可視化信息,包括各個(gè)水柱高度、電磁閥狀態(tài)、控制模式和給定數(shù)值等;
②設(shè)置系統(tǒng)的初始化狀態(tài)和復(fù)雜控制算法,并可在線(xiàn)修改各控制算法的參數(shù);
③可改變整個(gè)系統(tǒng)各控制回路中的手動(dòng)、自動(dòng)控制模式;
④生成液位系統(tǒng)各種數(shù)據(jù)的班報(bào)、日?qǐng)?bào)、月報(bào)和年報(bào)表。
1.2.3專(zhuān)家站
專(zhuān)家站計(jì)算機(jī)裝有BSView32、Matlab、LabVIEW和Access數(shù)據(jù)庫(kù)等高級(jí)應(yīng)用程序,主要功能如下。
①管理整個(gè)控制系統(tǒng),對(duì)突發(fā)錯(cuò)誤作出相關(guān)處理;
②對(duì)系統(tǒng)進(jìn)行建模仿真及優(yōu)化計(jì)算;
③建立各項(xiàng)指標(biāo)數(shù)據(jù)庫(kù),將歷史數(shù)據(jù)、操作報(bào)告和報(bào)警信息存入數(shù)據(jù)庫(kù)。
此外,由圖2可知,專(zhuān)家站中預(yù)留了控制系統(tǒng)升級(jí)接口,日后其他開(kāi)發(fā)人員開(kāi)發(fā)不同的控制算法時(shí),可以方便地與原有系統(tǒng)建立數(shù)據(jù)通信,無(wú)須再開(kāi)發(fā)底層數(shù)據(jù)采集與通信程序,簡(jiǎn)化了開(kāi)發(fā)步驟。
2 液位控制系統(tǒng)的OPC實(shí)現(xiàn)
液位系統(tǒng)的工程師站和專(zhuān)家站均采用了RSView32組態(tài)軟件。在工程師站中,RSView32通過(guò)其自帶的VBA程序開(kāi)發(fā)系統(tǒng)進(jìn)行模糊控制等復(fù)雜算法的運(yùn)算;在專(zhuān)家站中,借助BSView32卓越的管理系統(tǒng)和數(shù)據(jù)庫(kù)功能可以管理整個(gè)控制系統(tǒng),建立各項(xiàng)指標(biāo)數(shù)據(jù)庫(kù),存儲(chǔ)歷史數(shù)據(jù)。
由此可見(jiàn),組態(tài)軟件RSView32相當(dāng)于一座中間橋梁,將現(xiàn)場(chǎng)操作級(jí)、工程師站和專(zhuān)家站連接了起來(lái)。因此,該液位系統(tǒng)需要解決3個(gè)核心問(wèn)題:如何實(shí)現(xiàn)現(xiàn)場(chǎng)實(shí)時(shí)信號(hào)的采集、如何在組態(tài)軟件BSView32中嵌入復(fù)雜控制算法以及如何實(shí)現(xiàn)工程師站與專(zhuān)家站組態(tài)軟件之間的數(shù)據(jù)通信。
2.1數(shù)據(jù)采集
為了獲取實(shí)時(shí)液位信號(hào),我們采用VB編程操作數(shù)據(jù)采集卡采集現(xiàn)場(chǎng)數(shù)據(jù)。
本系統(tǒng)采用的是阿爾泰公司的PCI2006數(shù)據(jù)采集卡,它自帶接受訪問(wèn)的底層驅(qū)動(dòng)。因此,在正式編程之前,需要把開(kāi)發(fā)商提供的模塊文件PCI2006.bas加入到VB工程當(dāng)中。通過(guò)VB程序采集數(shù)據(jù)的步驟和核心代碼如下。
2.2組態(tài)軟件OPC通信方法
現(xiàn)場(chǎng)操作級(jí)、工程師站和專(zhuān)家站計(jì)算機(jī)上都裝有BSView32組態(tài)軟件。該軟件支持基于OPC技術(shù)的數(shù)據(jù)交換。將現(xiàn)場(chǎng)操作級(jí)的RSView32設(shè)定為服務(wù)器,工程師站和專(zhuān)家站的BSView32設(shè)定為客戶(hù)機(jī),則現(xiàn)場(chǎng)數(shù)據(jù)和控制參數(shù)可以在3站之間雙向傳遞。
在OPC服務(wù)器設(shè)定中,現(xiàn)場(chǎng)操作級(jí)計(jì)算機(jī)取名為Waterl,在RSView32中建立一個(gè)新的節(jié)點(diǎn),則各項(xiàng)參數(shù)設(shè)置如表1所示。
表1 OPC服務(wù)器參數(shù)表
在客戶(hù)機(jī)設(shè)定中,服務(wù)器計(jì)算機(jī)均為Water,則在工程師站和專(zhuān)家站上的RSView32中分別建立一個(gè)新的節(jié)點(diǎn),各項(xiàng)參數(shù)設(shè)置如表2所示。
表2 客戶(hù)機(jī)參數(shù)表
需要注意的是,客戶(hù)機(jī)上OPC節(jié)點(diǎn)設(shè)定中的服務(wù)計(jì)算機(jī)名應(yīng)當(dāng)填入OPC服務(wù)器的計(jì)算機(jī)名稱(chēng),且更新速率應(yīng)該大于服務(wù)器中OPC節(jié)點(diǎn)的更新速率。
客戶(hù)機(jī)上ILSView32中的標(biāo)記需要連接到OPC服務(wù)器,并將對(duì)應(yīng)的數(shù)據(jù)名稱(chēng)設(shè)定為來(lái)自設(shè)備的名稱(chēng),節(jié)點(diǎn)名為Expert,地址填入現(xiàn)場(chǎng)操作站 RSView32中標(biāo)記的名稱(chēng)。測(cè)試證明,ILSView32的OPC服務(wù)器最多可以同時(shí)連接10臺(tái)用作OPC客戶(hù)的RSView32計(jì)算機(jī)。
2.3組態(tài)軟件與VB的通信方法
客戶(hù)機(jī)的組態(tài)軟件通過(guò)OPC技術(shù)與VB連接起來(lái),實(shí)現(xiàn)復(fù)雜控制算法。VB在客戶(hù)機(jī)上與組態(tài)軟件BSView32的通信方法如下。
先在VB工具欄中的“工程\引用”項(xiàng)加入Rock.well 0PC Automation 2.0,然后定義變量。
Const ServerName=“RSI.RSView320PCTagServer”
Dim Nodename as String //節(jié)點(diǎn)名即計(jì)算機(jī)名
Dim MyOPCServer as OPCServer //OPC服務(wù)器
Dim MyOPCGroup as OPCGmup //OPC組[!--empirenews.page--]
Dim MyOPCItem as OPCItem //OPC項(xiàng)對(duì)象
Dim OPCItemColleefion as OPCItems //OPC項(xiàng)集合
定義復(fù)雜控制算法中的全局變量如下。
Dim tankl as Single //定義1號(hào)液位高度變量
Dim Setl as Single //定義1號(hào)液位高度給定
定義好所有的變量后,進(jìn)行OPC的連接、OPC讀寫(xiě)等。
由于程序較長(zhǎng),這里不再贅述。整個(gè)程序的流程如圖3所示。
由于OPC客戶(hù)建立連接后,占用了服務(wù)器資源,因此,程序結(jié)束后必須斷開(kāi)OPC連接,釋放資源。關(guān)鍵程序如下。
①清除指定的OPC項(xiàng)
OPCItemCollection.RemoveItemCount.Removeh
EmptyServerHandles.RemovehemServer
Set OPChemColleetion=Nothing
②與服務(wù)器斷開(kāi)連接并清除
AnOPCSenrer.Disconnect
Set AnOPCServer=Nothing
3 結(jié)束語(yǔ)
本文根據(jù)工業(yè)液位對(duì)象的特性,借助BSView32、VB等高級(jí)應(yīng)用軟件,采用OPC技術(shù)構(gòu)建了三級(jí)網(wǎng)絡(luò)控制系統(tǒng)。
系統(tǒng)結(jié)構(gòu)開(kāi)放,可擴(kuò)展性強(qiáng),成本低廉,不同廠家的新設(shè)備、新軟件,只要提供統(tǒng)一的OPC接口,就能與本系統(tǒng)簡(jiǎn)便互聯(lián),減少了底層開(kāi)發(fā)時(shí)間和費(fèi)用。同時(shí),該網(wǎng)絡(luò)實(shí)現(xiàn)了計(jì)算機(jī)內(nèi)部應(yīng)用程序與現(xiàn)場(chǎng)設(shè)備、不同軟硬件、不同應(yīng)用程序之間的無(wú)縫連接與資源實(shí)時(shí)共享,可供多個(gè)客戶(hù)同時(shí)訪問(wèn)系統(tǒng)。