
張榮華 (1980-)
女,福建龍巖人,助理工程師,畢業(yè)于南京工程學(xué)院自動化專業(yè),研究方向?yàn)镻LC在各工業(yè)控制領(lǐng)域中的應(yīng)用、PLC與各設(shè)備間的通訊。
摘要:本文簡要介紹了基于COM的OPC技術(shù),包括OPC的技術(shù)結(jié)構(gòu)、標(biāo)準(zhǔn)的由來。著重闡述OPC技術(shù)在溫州電廠輔機(jī)系統(tǒng)控制網(wǎng)絡(luò)中的應(yīng)用,利用OPC技術(shù)成功實(shí)現(xiàn)遠(yuǎn)程SCADA網(wǎng)絡(luò)以及不同廠家硬件與應(yīng)用軟件之間的驅(qū)動。
關(guān)鍵詞:OPC;COM;SCADA
Abstract: This paper briefly introduces the OPC technique based on COM, including the
technological structure and the origin of standard. The paper mainly describe application
of the OPC technique in the auxiliary control network of WenZhou power plant, which
realizes remote SCADA network, and the drivers for different hardware and software.
Key words: OPC; COM; SCADA
1 OPC簡介
傳統(tǒng)工控系統(tǒng)的驅(qū)動和與其連接的應(yīng)用程序之間的接口沒有統(tǒng)一標(biāo)準(zhǔn),為了實(shí)現(xiàn)不同廠家的硬件和軟件之間的數(shù)據(jù)交換和傳輸,必須開發(fā)各自的通訊程序。從而引起開發(fā)成本高、重復(fù)性勞動、驅(qū)動不一致和訪問沖突等問題,很難適應(yīng)現(xiàn)代工控系統(tǒng)的開放性要求。
OPC(OLE for Process Control)規(guī)范是在Microsoft倡導(dǎo)下,為不同供應(yīng)商的設(shè)備和應(yīng)用程序之間的接口標(biāo)準(zhǔn)化,使其相互間數(shù)據(jù)交換更加簡單,OPC基金會所建立的硬件和軟件標(biāo)準(zhǔn)。它把硬件供應(yīng)商和軟件開發(fā)商分離開來,在數(shù)據(jù)源和客戶之間架起一座橋梁,為解決統(tǒng)一標(biāo)準(zhǔn)的問題提供了方案。目前,針對OPC技術(shù)的研究主要集中在OPC服務(wù)器和應(yīng)用程序開發(fā)兩個(gè)方面。OPC服務(wù)器一般由硬件供應(yīng)商或由獨(dú)立的軟件供應(yīng)商提供,而應(yīng)用程序則由各OPC技術(shù)用戶來完成。
1.1 基于COM的OPC技術(shù)
COM(Component Object Model,即組件對象模型)是微軟公司提出的組件通信方法之一,是軟件組件間相互交換數(shù)據(jù)的有效方法,支持客戶機(jī)/服務(wù)器模式。客戶機(jī)包含若干客戶對象,服務(wù)器負(fù)責(zé)創(chuàng)建服務(wù)對象的實(shí)例。客戶對象是請求的發(fā)出者,而服務(wù)對象是被請求者。客戶通過指針訪問所有的對象,如果對象位于進(jìn)程內(nèi),則直接調(diào)用它;如果對象位于進(jìn)程外,則調(diào)用先傳遞到COM提供的代理對象,由代理對象生成其他或遠(yuǎn)程的調(diào)用。
COM技術(shù)為簡單實(shí)現(xiàn)控制設(shè)備和控制管理系統(tǒng)之間的數(shù)據(jù)交換提供了技術(shù)基礎(chǔ),OPC規(guī)范采用COM/DCOM為技術(shù)基礎(chǔ)的客戶/服務(wù)器模式。在這種模式中,同一個(gè)客戶程序可以訪問多個(gè)服務(wù)器,同一個(gè)服務(wù)器也可以同時(shí)為多個(gè)客戶提供服務(wù)。OPC提供了COM組件之間連接的工業(yè)標(biāo)準(zhǔn)化COM接口,OPC服務(wù)器組件提供一個(gè)標(biāo)準(zhǔn)接口給OPC對象,并通過這些接口進(jìn)行管理,客戶通過COM提供的API創(chuàng)建和管理服務(wù)器。
OPC采用客戶/服務(wù)器的通信模式。其服務(wù)器功能類似于I/O驅(qū)動器,它一方面負(fù)責(zé)與數(shù)據(jù)供應(yīng)方(如現(xiàn)場設(shè)備或數(shù)據(jù)庫)的通信,另一方面又將來自數(shù)據(jù)供應(yīng)方的數(shù)據(jù)通過標(biāo)準(zhǔn)OPC接口“暴露”給數(shù)據(jù)調(diào)用方(如MMI人機(jī)界面軟件)。數(shù)據(jù)調(diào)用方充當(dāng)了OPC客戶的角色。標(biāo)準(zhǔn)接口是保證互操作性的關(guān)鍵,它使所有支持OPC的客戶能夠以一致的方式訪問所有OPC服務(wù)器。OPC服務(wù)器自上而下包括三類對象:Server、Group和Item。每個(gè)Item對象對應(yīng)現(xiàn)場的一個(gè)實(shí)際物理點(diǎn),或者說實(shí)際上對應(yīng)了一個(gè)“位號”。
OPC服務(wù)器不僅可以用于硬件設(shè)備與應(yīng)用軟件之間的通信,同時(shí)還可以用于各個(gè)應(yīng)用程序之間的通信。只要每個(gè)應(yīng)用程序都給其他應(yīng)用提供一個(gè)標(biāo)準(zhǔn)的OPC接口,它們之間就可以方便地進(jìn)行數(shù)據(jù)交換。
過去,客戶應(yīng)用程序的開發(fā)商需要為每一臺控制設(shè)備開發(fā)不同的驅(qū)動程序接口,而OPC標(biāo)準(zhǔn)的出現(xiàn)使所有驅(qū)動與軟件的接口得到統(tǒng)一,這些開發(fā)商只需要通過一個(gè)全球一致的OPC接口就能訪問所有提供了OPC服務(wù)器的現(xiàn)場設(shè)備。
2 溫州電廠輔機(jī)控制網(wǎng)絡(luò)
溫州電廠輔控網(wǎng)包括3個(gè)分系統(tǒng),分別是水務(wù)控制系統(tǒng)、凝結(jié)水精處理系統(tǒng)和渣水處理系統(tǒng)。每個(gè)分系統(tǒng)的底層硬件均采用羅克韋爾自動化公司的RSLogix5000系列PLC,上位機(jī)監(jiān)控軟件則不同。其中水務(wù)控制系統(tǒng)和凝結(jié)水精處理系統(tǒng)均采用GE FANUC公司的iFix作上位機(jī)監(jiān)控軟件,渣水處理系統(tǒng)采用國產(chǎn)軟件組態(tài)王。具體的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。
為了實(shí)現(xiàn)電廠外圍輔機(jī)控制系統(tǒng)的集成,所有外圍輔機(jī)控制系統(tǒng)全部集成在原水務(wù)控制系統(tǒng)的計(jì)算機(jī)上,所有對輔機(jī)設(shè)備的操作都在原水務(wù)系統(tǒng)的計(jì)算機(jī)上進(jìn)行。
在溫州電廠輔機(jī)控制系統(tǒng)的SCADA網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,凝結(jié)水精處理、渣水處理的控制系統(tǒng)上位機(jī)是SCADA結(jié)構(gòu)中的SERVER,水務(wù)控制系統(tǒng)中的兩臺服務(wù)器成為SCADA網(wǎng)絡(luò)中的CLIENT。但這兩臺服務(wù)器具有一定的復(fù)雜性。一方面,作為SCADA結(jié)構(gòu)中的CLIENT,對凝結(jié)水精處理系統(tǒng)、渣水處理系統(tǒng)兩臺SERVER進(jìn)行數(shù)據(jù)的讀寫;另一方面,利用安裝在本機(jī)上的RSLINX軟件(OPC數(shù)據(jù)源)對水務(wù)系統(tǒng)PLC控制器進(jìn)行數(shù)據(jù)讀寫。因此,集成后的這兩臺服務(wù)器兼具客戶機(jī)與服務(wù)器的職能,其數(shù)據(jù)源有多個(gè)。
OPC技術(shù)在溫州電廠輔機(jī)控制系統(tǒng)中的應(yīng)用主要體現(xiàn)在兩個(gè)方面。一是水務(wù)控制系統(tǒng)中,上位機(jī)利用OPC技術(shù)完成對PLC控制器中數(shù)據(jù)的讀寫;二是水務(wù)控制系統(tǒng)的上位機(jī)利用OPC技術(shù)實(shí)現(xiàn)從遠(yuǎn)程的凝結(jié)水精處理、渣水處理上位機(jī)中讀寫數(shù)據(jù)。第一種情況下,OPC服務(wù)器相當(dāng)于硬件的驅(qū)動程序;第二種情況下,則是不同的工業(yè)監(jiān)控軟件利用OPC協(xié)議,實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)共享和數(shù)據(jù)交換。
3 通過OPC服務(wù)器完成硬件驅(qū)動
溫州電廠水務(wù)控制系統(tǒng)中,由于硬件和軟件的生產(chǎn)商是不同的廠家,iFix不能直接對PLC控制器內(nèi)的數(shù)據(jù)進(jìn)行讀寫。因此采用OPC技術(shù)來實(shí)現(xiàn)工控機(jī)與PLC之間的通訊和數(shù)據(jù)傳輸。
RSLinx是羅克韋爾自動化公司提供的OPC SERVER。上位機(jī)中安裝的監(jiān)控軟件iFix內(nèi)置了OPC CLIENT程序,即PowerTool。RSLinx作為OPC SERVER,從PLC控制器中讀取數(shù)據(jù),然后PowerTool按照OPC協(xié)議從RSLinx中讀取數(shù)據(jù)。
由圖2可以得知,OPC協(xié)議中的數(shù)據(jù)結(jié)構(gòu)分3層,分別是OPCServer、OPCGroup和OPCItem。最頂層的是OPCServer,這是調(diào)用應(yīng)用最先能夠連接到的COM對象。接下來是OPCGroup對象集合,OPCGroup也是COM對象。它由調(diào)用應(yīng)用動態(tài)生成,用于組織和管理位號及其屬性。最底層的是OPCItem。每個(gè)OPCItem對象提供了一個(gè)與現(xiàn)場數(shù)據(jù)的連接,即每個(gè)OPCItem與一個(gè)信號變量(包括過程值和設(shè)定值等)對應(yīng)。OPCItem對象為OPC客戶提供諸如信號的數(shù)值、屬性以及數(shù)據(jù)類型等信息。它用來完成OPC服務(wù)器與實(shí)際數(shù)據(jù)的連接。
OPCServer和OPCGroup都是COM對象。它們都為各自客戶提供了各自的接口。從服務(wù)器的有效性和復(fù)雜性等方面考慮,OPCItem一般不作為COM對象出現(xiàn),因此它不提供與客戶的接口,對它的訪問必須通過它所屬的OPCGroup對象。OPCServer接口的主要功能如下:創(chuàng)建和刪除OPC組、瀏覽可用位號、將出錯(cuò)代碼轉(zhuǎn)換成可識別的文本、獲取服務(wù)器的狀態(tài)信息。而OPCGroup接口則提供如下功能:從OPC組中增加和刪除OPC項(xiàng)目、管理OPC組中數(shù)據(jù)的更新速率、讀/寫OPC組中一個(gè)或幾個(gè)項(xiàng)目的數(shù)值等。
圖3中可以看出,iFix的實(shí)時(shí)數(shù)據(jù)庫中,每個(gè)點(diǎn)的I/O地址就對應(yīng)了每個(gè)OPCItem的屬性,即OPC協(xié)議中OPCItem與數(shù)據(jù)庫中的每個(gè)點(diǎn)是一一對應(yīng)的。一旦iFix利用OPC技術(shù)成功實(shí)現(xiàn)對PLC控制器的驅(qū)動,數(shù)據(jù)庫中實(shí)時(shí)值就會出現(xiàn)不斷刷新的數(shù)據(jù)。
4 利用OPC構(gòu)建遠(yuǎn)程SCADA
OPC客戶可以訪問本機(jī)上的OPC服務(wù)器,也可以通過網(wǎng)絡(luò)訪問遠(yuǎn)程計(jì)算機(jī)上的OPC服務(wù)器。在遠(yuǎn)程情況下,客戶需要與目標(biāo)節(jié)點(diǎn)上的OPC服務(wù)器連接,這就需要使用DCOM(Distributed COM)來提供網(wǎng)絡(luò)支持。實(shí)際上,DCOM是COM技術(shù)在網(wǎng)絡(luò)上的拓展。
溫州電廠輔機(jī)控制系統(tǒng)中,凝結(jié)水精處理系統(tǒng)和水務(wù)控制系統(tǒng)都是采用iFix作上位機(jī)監(jiān)控軟件,因此水務(wù)控制系統(tǒng)作為CLIENT與凝結(jié)水精處理系統(tǒng)進(jìn)行數(shù)據(jù)交互比較方便。因?yàn)閕Fix支持遠(yuǎn)程SCADA結(jié)構(gòu)。水務(wù)控制系統(tǒng)與凝結(jié)水精處理系統(tǒng)之間的數(shù)據(jù)交換實(shí)際上就是分布在網(wǎng)絡(luò)各處的不同iFix節(jié)點(diǎn)之間的數(shù)據(jù)交換,這是上層監(jiān)控程序通過網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)共享。IFix支持這種基于網(wǎng)絡(luò)分布的數(shù)據(jù)交換,并且傳輸速率非常快,可靠性好。下面重點(diǎn)介紹水務(wù)控制系統(tǒng)與渣水控制系統(tǒng)之間的數(shù)據(jù)交換。
渣水控制系統(tǒng)采用國產(chǎn)工業(yè)監(jiān)控軟件組態(tài)王作上位機(jī)程序,水務(wù)系統(tǒng)采用iFix作服務(wù)器的應(yīng)用程序。為了實(shí)現(xiàn)兩個(gè)分布在網(wǎng)絡(luò)上不同應(yīng)用程序之間的通信,采用了OPC技術(shù)。作為數(shù)據(jù)源的組態(tài)王,提供了標(biāo)準(zhǔn)的OPC數(shù)據(jù)接口;iFix遵循OPC標(biāo)準(zhǔn)規(guī)范,作為OPC CLIENT從遠(yuǎn)程OPC SERVER提供的OPC接口讀取數(shù)據(jù)。
利用OPC技術(shù)協(xié)議,成功實(shí)現(xiàn)iFix對組態(tài)王的遠(yuǎn)程訪問。其中安裝在水務(wù)控制系統(tǒng)上位機(jī)的應(yīng)用程序PowerTool(內(nèi)置于iFix)就是OPC CLIENT,這一點(diǎn)與利用OPC實(shí)現(xiàn)硬件驅(qū)動大致相同。不同的是,OPC服務(wù)器的類型包括“In -process ”,“Local”和“Remote”三種。利用OPC協(xié)議實(shí)現(xiàn)硬件驅(qū)動時(shí),OPC SERVER屬于“LOCAL”;在遠(yuǎn)程訪問組態(tài)王的情況下,OPC SERVER屬于“REMOTE”。遠(yuǎn)程OPC數(shù)據(jù)訪問的核心技術(shù)是DCOM,為了實(shí)現(xiàn)遠(yuǎn)程應(yīng)用程序之間的數(shù)據(jù)交互,需要對SCADA結(jié)構(gòu)中的CLINET和SERVER的DCOM屬性作設(shè)置。一旦基于OPC的遠(yuǎn)程SCADA網(wǎng)絡(luò)成功構(gòu)建后,在CLIENT上就可以訪問到遠(yuǎn)程SERVER上的每個(gè)數(shù)據(jù),包括數(shù)據(jù)對象的不同屬性和方法。圖4所示為在水務(wù)控制系統(tǒng)的上位機(jī)上看到的渣水系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)。
最后一點(diǎn)需要說明的是,由于在SCADA結(jié)構(gòu)中的CLIENT采用iFix作上位機(jī)監(jiān)控程序,而遠(yuǎn)程SERVER采用組態(tài)王。不同應(yīng)用程序中的畫面文件無法兼容,因此必須在客戶機(jī)上用iFix重新建立渣水控制系統(tǒng)的畫面文件。
5 結(jié)束語
OPC技術(shù)在國際上得到了越來越廣泛的應(yīng)用,已經(jīng)成為許多新型控制系統(tǒng)數(shù)據(jù)傳遞的核心技術(shù)。溫州電廠輔機(jī)控制系統(tǒng)的成功集成充分體現(xiàn)了OPC技術(shù)的重要性和有效性。現(xiàn)場總線系統(tǒng)要實(shí)現(xiàn)其開放性,使不同廠家的軟硬件能方便地互連為協(xié)調(diào)工作的系統(tǒng),除了通信的一致性之外,作為標(biāo)準(zhǔn)軟件接口的OPC技術(shù)在系統(tǒng)集成中也具有重要作用。它將促進(jìn)控制系統(tǒng)朝著更加開放的方向發(fā)展。此外,目前現(xiàn)代發(fā)電企業(yè)現(xiàn)場控制系統(tǒng)采用DCS,上層管理系統(tǒng)采用MIS,現(xiàn)在SIS又開始逐步流行。可見現(xiàn)代發(fā)電企業(yè)缺乏的并不是數(shù)據(jù),而是數(shù)據(jù)的有效挖掘和深處理,這就對異構(gòu)網(wǎng)的數(shù)據(jù)共享提出更高要求,今后OPC技術(shù)必定在這些領(lǐng)域發(fā)揮極大的作用。