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