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