《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > OPC技術(shù)在CEMS監(jiān)控軟件中的應(yīng)用

OPC技術(shù)在CEMS監(jiān)控軟件中的應(yīng)用

2009-07-14
作者:郭昭烽,程明霄

  摘? 要: 介紹了國(guó)內(nèi)CEMS應(yīng)用的現(xiàn)狀以及開(kāi)發(fā)專(zhuān)用監(jiān)控軟件的必要性。實(shí)踐表明,利用OPC技術(shù)開(kāi)發(fā)監(jiān)控軟件不僅可以保證系統(tǒng)的穩(wěn)定性和可靠性,還能提高系統(tǒng)的開(kāi)放性和兼容性,在監(jiān)控軟件開(kāi)發(fā)領(lǐng)域具有良好的前景。
??? 關(guān)鍵詞: OPC;CEMS;監(jiān)控軟件;環(huán)保

?

?? 煙氣在線(xiàn)連續(xù)排放監(jiān)測(cè)系統(tǒng)(CEMS)在我國(guó)熱電廠有廣泛的應(yīng)用。CEMS作為環(huán)保監(jiān)測(cè)的重要手段通常需要為其他通訊軟件提供被監(jiān)測(cè)的數(shù)據(jù)。CEMS是一個(gè)集成的系統(tǒng),集成了不同廠家的設(shè)備,從而要求其監(jiān)控軟件的底層數(shù)據(jù)連接有一定的兼容性和開(kāi)放性。本文探討了一種使用OPC技術(shù)開(kāi)發(fā)CEMS監(jiān)控軟件的方法,可以解決上述問(wèn)題。
1?CEMS概述及其在國(guó)內(nèi)應(yīng)用現(xiàn)狀
??? CEMS由采樣系統(tǒng)、測(cè)試系統(tǒng)、數(shù)據(jù)采集與處理系統(tǒng)組成,能完成采集并處理數(shù)據(jù)、生成報(bào)表、控制操作、監(jiān)測(cè)數(shù)據(jù)上傳等功能。一般的CEMS中數(shù)據(jù)采集與處理系統(tǒng)主要由PLC、工控機(jī)及相應(yīng)的軟件組成,能自動(dòng)監(jiān)測(cè)SO2、NO、CO、CO2及其他的有關(guān)參數(shù),如煙氣溫度、濕度、煙氣流量、壓力及含氧量等數(shù)據(jù)。
??? 隨著近年來(lái)國(guó)家對(duì)環(huán)保工作的重視,CEMS作為一種環(huán)境監(jiān)測(cè)的重要手段,在我國(guó)得到了迅速普及和推廣,尤其在電廠等企業(yè)得到越來(lái)越多的應(yīng)用。但是得到環(huán)保部門(mén)認(rèn)可的CEMS卻很少。這是因?yàn)椋涸缙诘腃EMS與外部連接的數(shù)據(jù)傳輸接口上缺少統(tǒng)一的標(biāo)準(zhǔn), 各地CEMS廠家在CEMS數(shù)據(jù)標(biāo)準(zhǔn)和設(shè)計(jì)結(jié)構(gòu)上采用不同的形式, 使各自分散的數(shù)據(jù)資源彼此隔離, 無(wú)法進(jìn)行信息交換和業(yè)務(wù)協(xié)同,極大地影響了CEMS的系統(tǒng)建設(shè)和維護(hù)效率。
2?CEMS監(jiān)控軟件的設(shè)計(jì)
??? CEMS監(jiān)控軟件不僅要直觀、動(dòng)態(tài)地顯示整個(gè)測(cè)量過(guò)程和測(cè)量結(jié)果,還必須為上級(jí)環(huán)保部門(mén)的數(shù)據(jù)通訊軟件提供數(shù)據(jù)。雖然市面上有許多現(xiàn)成的通用組態(tài)軟件,如:組態(tài)王、WINCC、MCGS等,但是用來(lái)開(kāi)發(fā)監(jiān)控軟件很難完全符合CEMS的數(shù)據(jù)傳輸要求。例如:有些地方環(huán)保部門(mén)的數(shù)據(jù)通訊軟件以DLL、UDP等方式提供接口,而通用組態(tài)軟件在底層的數(shù)據(jù)連接一般只是提供常用的接口。因此,自行開(kāi)發(fā)具備通用數(shù)據(jù)接口的CEMS監(jiān)控軟件是十分必要的。
??? 在針對(duì)CEMS設(shè)計(jì)監(jiān)控軟件時(shí),需要充分了解現(xiàn)場(chǎng)所應(yīng)用的CEMS 整體工作原理及其監(jiān)測(cè)流程。從表面上看,CEMS的監(jiān)控系統(tǒng)主要是從PLC 中采集數(shù)據(jù)或?qū)懭霐?shù)據(jù),十分簡(jiǎn)單。但是,由于CEMS 系統(tǒng)的特殊性,監(jiān)控軟件還得完成一些其他的工作。如稀釋采樣CEMS 系統(tǒng)中,其采樣管線(xiàn)中的每個(gè)探頭都依靠PLC程序或本身的電磁閥進(jìn)行各種控制動(dòng)作,如:采樣、反吹、校準(zhǔn)、維護(hù)等等。而且各個(gè)分析儀器的反吹和校準(zhǔn)的請(qǐng)求各不相同,所以必須準(zhǔn)確無(wú)誤地區(qū)分開(kāi)各個(gè)進(jìn)程。只有當(dāng)各采樣探頭處于正常采樣時(shí),它的數(shù)值才有效,才能進(jìn)報(bào)表。另外,為了保證系統(tǒng)的準(zhǔn)確度,還需要校準(zhǔn)報(bào)表,知道每次校準(zhǔn)時(shí)的各監(jiān)測(cè)量的零點(diǎn)漂移和全幅漂移等。
??? 由于CEMS是一個(gè)集成系統(tǒng),因此在流量監(jiān)測(cè)儀,氧氣檢測(cè)儀,紅外檢測(cè)儀和控制PLC上通常會(huì)選用不同廠家的產(chǎn)品。CEMS要把不同的制造商的部件集成在一起需要為每個(gè)部件專(zhuān)門(mén)開(kāi)發(fā)驅(qū)動(dòng)或服務(wù)程序, 還需要把這些由制造商提供的驅(qū)動(dòng)或服務(wù)程序與應(yīng)用程序聯(lián)系起來(lái)。因此,實(shí)現(xiàn)通用的數(shù)據(jù)接口將成為CEMS監(jiān)控軟件開(kāi)發(fā)中的一個(gè)關(guān)鍵問(wèn)題。
3? OPC技術(shù)在監(jiān)控軟件設(shè)計(jì)中的應(yīng)用
3.1? OPC技術(shù)

  OPC提供了解決此類(lèi)問(wèn)題的方案。
  OPC(OLE for Process Control,用于過(guò)程控制的OLE)是一種工業(yè)過(guò)程控制的標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)定義了應(yīng)用Microsoft操作系統(tǒng)在基于PC的服務(wù)器和客戶(hù)機(jī)之間交換實(shí)時(shí)數(shù)據(jù)的方法。OPC是基于Microsoft 公司的DNA(Distributed Internet Application)構(gòu)架和COM(Component Object Model)技術(shù),根據(jù)易于擴(kuò)展性而設(shè)計(jì)的。它的目標(biāo)是開(kāi)發(fā)出一個(gè)開(kāi)放的、靈活的、即插即用的工業(yè)標(biāo)準(zhǔn),使用戶(hù)對(duì)解決方案擁有更大的選擇余地,同時(shí)減少了硬件和軟件供應(yīng)商的開(kāi)發(fā)和維護(hù)費(fèi)用。這個(gè)標(biāo)準(zhǔn)使得COM和DCOM技術(shù)適用于過(guò)程控制和制造自動(dòng)化等應(yīng)用領(lǐng)域[1]。OPC是以O(shè)LE/COM機(jī)制作為應(yīng)用程序的通訊標(biāo)準(zhǔn), OLE/COM是一種客戶(hù)/服務(wù)器模式,具有語(yǔ)言無(wú)關(guān)性、代碼重用性、易于集成性等優(yōu)點(diǎn)。OPC規(guī)范了接口函數(shù),不管現(xiàn)場(chǎng)設(shè)備以何種形式存在,客戶(hù)都以統(tǒng)一的方式去訪(fǎng)問(wèn),從而保證軟件對(duì)客戶(hù)的透明性。
3.2? OPC Data Access規(guī)范
??? CEMS監(jiān)控軟件在數(shù)據(jù)的底層連接上采用了OPC技術(shù),就可以增強(qiáng)系統(tǒng)的兼容性和開(kāi)放性。可以使用OPC服務(wù)器直接為上級(jí)環(huán)保部門(mén)的通信軟件提供數(shù)據(jù)。而當(dāng)監(jiān)控系統(tǒng)接入其他廠家的設(shè)備時(shí),只要該廠家的產(chǎn)品同樣兼容OPC規(guī)范即可,不需要廠家提供獨(dú)立的驅(qū)動(dòng),在監(jiān)測(cè)軟件上也不需要做任何變動(dòng),體現(xiàn)了OPC數(shù)據(jù)存取規(guī)范的優(yōu)越性。
??? OPC 數(shù)據(jù)存取(Data Access)規(guī)范是提供給用戶(hù)訪(fǎng)問(wèn)實(shí)時(shí)過(guò)程數(shù)據(jù)的方法。在OPC數(shù)據(jù)訪(fǎng)問(wèn)規(guī)范中, 一個(gè)OPC 的數(shù)據(jù)存取服務(wù)器中包括幾類(lèi)對(duì)象:服務(wù)器(OPC Server)、組(OPC Group)和項(xiàng)(OPC Item)。OPC服務(wù)器對(duì)象維護(hù)有關(guān)服務(wù)器的信息并作為OPC 組對(duì)象的包容器, 而OPC組對(duì)象維護(hù)有關(guān)其自身的信息,提供包容OPC項(xiàng)的機(jī)制, 并管理OPC項(xiàng)。OPC組有2種類(lèi)型:公共組(Public)和局部組(Local or Private)。公共組可以為多個(gè)客戶(hù)程序共享,而局部組只為某一個(gè)客戶(hù)程序所有。在每個(gè)組里, 客戶(hù)程序可以定義多個(gè)OPC項(xiàng),OPC項(xiàng)代表了與服務(wù)器里數(shù)據(jù)源的連接。從定制接口(Custom Interface)角度來(lái)看, 一個(gè)OPC項(xiàng)不能被OPC客戶(hù)程序作為一個(gè)對(duì)象來(lái)進(jìn)行操作,因此,在OPC項(xiàng)中沒(méi)有定義外部接口。所有對(duì)OPC項(xiàng)的操作都是利用OPC項(xiàng)的包容器(OPC組)或OPC項(xiàng)的定義來(lái)進(jìn)行的。每個(gè)OPC 項(xiàng)包含:值(Value)、品質(zhì)(Quality)和時(shí)間標(biāo)簽(Time Stamp)。值(Value)的類(lèi)型是VARIANT,品質(zhì)的類(lèi)型是SHORT[2]
3.3? OPC客戶(hù)端子程序設(shè)計(jì)
??? 監(jiān)控軟件的OPC客戶(hù)端子程序的一般實(shí)現(xiàn)步驟:首先在客戶(hù)端注冊(cè)O(shè)PC服務(wù)器,并連接OPC服務(wù)器端。在連接服務(wù)器成功后,創(chuàng)建一個(gè)OPC數(shù)據(jù)組。查詢(xún)數(shù)據(jù)庫(kù)的系統(tǒng)參數(shù)表,得到CEMS的具體監(jiān)測(cè)點(diǎn)的信息,根據(jù)這些信息在OPC數(shù)據(jù)組中創(chuàng)建相對(duì)應(yīng)的OPC數(shù)據(jù)項(xiàng)。這時(shí)候?qū)PC客戶(hù)端句柄數(shù)組和OPC服務(wù)器端句柄數(shù)組等信息向OPC服務(wù)器提交連接請(qǐng)求,設(shè)置OPC數(shù)據(jù)組的狀態(tài)為ACTIVE,即可以使用OPC數(shù)據(jù)組的DATACHANGE事件返回請(qǐng)求查詢(xún)的值,程序流程如圖1所示。

?


??? 以具體的廠商提供的OPC服務(wù)器為例,SIEMENS公司為其S7200系列PLC提供了SIMATIC PC ACCESS OPC SERVER。在安裝注冊(cè)該服務(wù)器后,可以在軟件中通過(guò)引用SOPCDAAUTO.dll來(lái)使用。在連接之后依次創(chuàng)建OPC GROUP和OPC ITEMS,通過(guò)對(duì)OPC ITEMS寫(xiě)OPC CLIENTHANDLER(客戶(hù)端句柄)信息,如:'MicroWin: 2:192.168.0.2:1000:1000,Q0.0,BOOL,RW,0.00,0.00'即可通過(guò)PPI電纜或者以太網(wǎng)通信實(shí)現(xiàn)對(duì)PLC中Q0.0寄存器值的訪(fǎng)問(wèn)。以上客戶(hù)端句柄包含的訪(fǎng)問(wèn)信息有:PPI電纜通信地址為2;以太網(wǎng)IP地址為192.168.0.2;客戶(hù)端TSAP(通信連接地址)為1000;服務(wù)器端TSAP為1000等。隨后程序等待下次服務(wù)器返回,期間可響應(yīng)客戶(hù)的操作斷開(kāi)同OPC服務(wù)器的連接并關(guān)閉連接程序。
??? 在得到OPC數(shù)據(jù)組DATACHANGE事件的返回值后,數(shù)據(jù)采集以及存儲(chǔ)子程序?qū)⒏鶕?jù)OPC CLIENTHANDLER和QUALITY 2個(gè)數(shù)組元素相對(duì)應(yīng)的數(shù)組來(lái)判斷數(shù)據(jù)的傳輸質(zhì)量。如,傳輸質(zhì)量為BAD或者GOOD或者UNKOWN等。接下來(lái)就可以根據(jù)OPC CLIENTHANDLER和VALUE 2個(gè)數(shù)組為CEMS的各個(gè)監(jiān)測(cè)點(diǎn)返回測(cè)得值。具體結(jié)合CEMS中各個(gè)監(jiān)測(cè)點(diǎn)的工作狀態(tài),按照CEMS標(biāo)準(zhǔn)的規(guī)定進(jìn)行數(shù)據(jù)的篩選和有效的存儲(chǔ)。
3.4? OPC客戶(hù)端程序在CEMS監(jiān)控軟件中的應(yīng)用
3.4.1? 根據(jù)硬件配置服務(wù)器

??? 對(duì)于DLL服務(wù)器來(lái)說(shuō),這些行為是通過(guò)調(diào)用輸出函數(shù)Dll Register Server和Dll Unregister Server來(lái)實(shí)現(xiàn)的。這2個(gè)函數(shù)都不帶參數(shù),返回1個(gè)HRESULT顯示結(jié)果。2個(gè)可能返回的錯(cuò)誤代碼是SELFREGECLASS和SELFREGETYPELIB,分別表示CLSID和類(lèi)型庫(kù)信息的注冊(cè)或刪除的失敗(這2個(gè)代碼定義在OLECTL.H頭文件中)。
??? 如果服務(wù)器以EXE模塊的形式出現(xiàn),對(duì)服務(wù)器進(jìn)行注冊(cè)就要使用命令行參數(shù)/Reg Server或-Reg Server(區(qū)分大小寫(xiě))。如果要注銷(xiāo)服務(wù)器,必須帶命令行參數(shù)/Unreg Server或-Unreg Server運(yùn)行EXE模塊。自注冊(cè)EXE模塊檢測(cè)到命令行參數(shù)后,引發(fā)相當(dāng)于DLL服務(wù)器的Dll Register Server和Dll Unregister Server函數(shù)的行為。
3.4.2? 數(shù)據(jù)存儲(chǔ)
??? 數(shù)據(jù)存儲(chǔ)工作的流程是:從OPC接口接收各監(jiān)測(cè)的數(shù)據(jù),通過(guò)其數(shù)據(jù)處理程序根據(jù)預(yù)設(shè)的開(kāi)關(guān)量返回值的組合判斷確定CEMS是否處于正常可信的數(shù)據(jù)采集工作狀態(tài),并將采集的數(shù)據(jù)在臨時(shí)內(nèi)存存儲(chǔ)(累加或者計(jì)算滑動(dòng)平均值)。根據(jù)國(guó)家CEMS標(biāo)準(zhǔn)的數(shù)據(jù)存儲(chǔ)的特點(diǎn),數(shù)據(jù)存儲(chǔ)程序采用系統(tǒng)時(shí)間跳變觸發(fā)的方法,即只在系統(tǒng)分鐘跳變、小時(shí)跳變等關(guān)鍵時(shí)間點(diǎn)上進(jìn)行這些數(shù)據(jù)存儲(chǔ)操作,系統(tǒng)時(shí)間跳變是以判斷系統(tǒng)時(shí)間是否進(jìn)入了下一個(gè)計(jì)時(shí)單位(如分鐘、小時(shí)、日等)來(lái)驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)存儲(chǔ)的操作。
3.4.3? 監(jiān)控顯示界面
??? 監(jiān)控軟件顯示界面使用SHOCKETWAVE FLASH控件,以ADOBE FLASH PLAYER為編譯器,利用SHOCKWAVE FLASH控件的FLASHVARS屬性,將現(xiàn)場(chǎng)變量采集點(diǎn)的信息從數(shù)據(jù)庫(kù)傳遞給界面動(dòng)畫(huà)顯示SWF文件,再使用DUPLICATEMOVIECLIP命令生成相應(yīng)的控件并設(shè)置其坐標(biāo)等其他屬性,同時(shí)將OPC服務(wù)器返回的數(shù)據(jù)或數(shù)據(jù)庫(kù)歸檔的數(shù)據(jù)通過(guò)FLASHVARS屬性傳遞到界面動(dòng)畫(huà)顯示SWF文件中,更新相應(yīng)的控件顯示,所述界面動(dòng)畫(huà)顯示SWF文件可為SHOCKETWAVE FLASH控件的內(nèi)部組件或外部用戶(hù)自定義顯示文件。
??? 通過(guò)使用OPC技術(shù)開(kāi)發(fā)CEMS監(jiān)控軟件的底層數(shù)據(jù)連接,可以提高CEMS的系統(tǒng)兼容性,避免了需要根據(jù)不同廠家的硬件使用情況編寫(xiě)定制軟件的問(wèn)題,同時(shí)也便于向其他軟件提供標(biāo)準(zhǔn)化的數(shù)據(jù),簡(jiǎn)化了配置硬件的操作。通過(guò)引用廠商提供的OPC服務(wù)器接口,并設(shè)置所需要的OPC變量,就可以根據(jù)這些變量信息在圖形化的顯示界面中引用OPC,選擇狀態(tài)變量實(shí)現(xiàn)存儲(chǔ)和控制策略。據(jù)此開(kāi)發(fā)的監(jiān)控軟件已經(jīng)在數(shù)家電廠正式使用,承擔(dān)了數(shù)據(jù)存儲(chǔ)和通信傳輸?shù)闹匾ぷ?。?shí)際檢驗(yàn)來(lái)看,具有相當(dāng)可行性。


參考文獻(xiàn)
[1] 呂勇,李友榮,王志剛,等.基于OPC技術(shù)的設(shè)備遠(yuǎn)程監(jiān)測(cè)與診斷系統(tǒng)[J].機(jī)械與電子,2005(10):65-67.
[2] 蔡思文,祁耀斌.OPC客戶(hù)端設(shè)計(jì)及其在監(jiān)控系統(tǒng)的應(yīng)用[J].微計(jì)算機(jī)信息,2007,23(5-1):150-200.
[3] 戴麗萍,云格.CEMS在火電廠中的應(yīng)用[J].中國(guó)儀器儀表,2007(5):1-6.
[4] 吳庚申.應(yīng)用OPC接口實(shí)現(xiàn)S7-200PLC網(wǎng)絡(luò)與PC數(shù)據(jù)通訊[J].青島遠(yuǎn)洋船員學(xué)院學(xué)報(bào),2006(4):80-90.
[5] 肖永華,葛海波,楊川,等.電廠機(jī)組監(jiān)測(cè)系統(tǒng)的研究[J].繼電器,2006(7).
[6] 漆全.電力監(jiān)測(cè)與控制系統(tǒng)組態(tài)軟件的設(shè)計(jì)與研究[D].武漢:武漢大學(xué),2005.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。