李世學 王小進 余光洪
(中國船舶重工集團公司七一二研究所,武漢430064)
目前,工業控制中的各種儀器、儀表、PLC和單片機系統等都提供了與計算機的通訊協議,為計算機控制系統的設計提供了極大的方便。但是,由于不同的廠商提供的協議不同,甚至同一廠商的不同類型設備和計算機通信的協議也不相同,所以要與這些設備交換數據,編寫接口程序就比較復雜。近年來,OPC技術的出現很好地解決了這一難題,OPC技術采用開放式數據交互,能使來自不同公司的軟硬件組成一個有機的整體。它傳輸可靠,速度快,而且適于大批量數據交換,目前已經成為工控行業新的通訊標準,廣泛應用在工控行業的各個領域。OPC技術完全支持分布式應用和異構環境下應用程序之間軟件的無縫集成和互操作性,給工業控制系統應用程序間的通信建立一套符合工業控制要求的通信接口規范,使控制軟件可以高效、穩定地對硬件設備進行數據存取操作,系統應用軟件之間也可以靈活地進行信息交互,極大的提高了控制系統的互操作性和適應性。
OPC是OLE for Process Control 的縮寫,是微軟公司的OLE技術在過程控制方面的應用,它以COM和DCOM為基礎, 通過COM對象進行交互,每個對象規范了不同的函數.COM 提供了一種二進制的接口標準,使得各軟件組件可以用統一的方式進行交互。采用OPC后,現場設備與系統的連接更加簡單、靈活、方便,針對硬件的驅動程序不再由軟件廠家開發,而是由硬件廠家提供統一的OPC接口,從而避免了軟件廠家的重復開發,大大降低了開發費用,圖1為基于OPC的軟件結構。

圖1 OPC 的軟件結構

圖2 基于OPC 的SCADA系統結構
OPC規范可以應用在許多應用程序中,如它們可以應用于從 SCADA 或者 DCS系統的物理設備中獲取原始數據,也可以應用于從 SCADA或者 DCS系統中獲取數據到應用程序中。實際上,OPC設計的目的就是從網絡上某節點獲取數據。
OPC按照面向對象的原則,將一個應用程序作為一個對象封裝起來,只將接口方法暴露在外面,客戶以統一的方式去調用這個方法,從而保證軟件對客戶的透明性,使得用戶完全從底層的開發中脫離出來。因此可以將OPC客戶機、服務器在物理上分開,分布于不同的網絡節點上,這為實現分布式SCADA系統提供了一種實現方式。圖2為基于OPC的SCADA系統結構。
OPC規范描述了 OPC服務器需要實現的C0M對象及其接口,不管現場設備以何種形式存在,客戶都要以統一的形式去訪問,從而保證了軟件對客戶的透明性。按照這種需求,基于OPC技術的SCADA系統可由兩部分組成,一部分是OPC服務器,主要負責協議處理與提供標準OPC接口服務;另一部分是SCADA應用程序,通過OPC提供給客戶的標準接口訪問數據,完成SCADA數據處理、圖形分析、報表輸出、事故追憶和報警處理等。其中,OPC服務器部分,是建立在COM/DCOM技術基礎上,它以COM組件的形式存在,可以分為進程內組件、進程間組件和遠程組件三類。
OPC服務器由3類對象組成,相當于3種層次上的接口:服務器(Server)、組(Group)和數據項(Item)。服務器對象(Server)擁有服務器的所有信息,同時也是組對象(Group)的容器,一個服務器對應于一個OPC Server,即一種設備的驅動程序。在一個Server中,可以有若干個組。組對象(Group)擁有本組的所有信息,同時包容并邏輯組織OPC數據項(Item)。項對象是讀寫數據的最小邏輯單位,一個項與具體的位號相連,通常指向設備的一個寄存器單元。OPC在SCADA中的體系結構如圖3所示[5]。

圖3 OPC在SCADA中的體系結構
在本系統中,OPC服務器程序為進程間組件。主要實現了三個類對象 CServer,CGroup,和CItem。其中CServer和CGroup類對象是COM對象。CServer對象封裝了 IOPC Server接口,IOPC Browse Server Address Space接口,IOPCItemProperties 接口,IOPCCommon 接口,實現對OPC服務器信息的維護,并作為OPC組對象CGroup的包容器,提供組織OPC組對象的方法,并管理OPC組對象。組對象CGroup封裝了 IOPCGroupStateMgt接口,IOPCASyncIO2接口,IOPCItemMgt接口,IOPCSyncIO接口。它維護有關自身信息,提供包容 OPC項對象的機制,管理 OPC項對象,提供了對項對象進行讀/寫和通信的接口方法。CItem類實現OPC項對象,提供對數據源的訪問方法,數據源可以是現場I/O設備,也可以是其它軟件程序。下面是基于ATL模板的服務器接口、瀏覽服務器地址空間接口、項屬性接口的定義和實現[4]。


利用OPC技術實現通訊可靠性高、速度快,目前已成為自動化系統、現場設備與工廠辦公管理應用程序之間的有效通訊方式,使不同系統相互之間的數據交換得以簡捷化和標準化,極大地方便了硬件開發商、軟件開發商和終端用戶。SCADA軟件中集成OPC技術可以實現從過程控制到以上級系統間的緊密連接和完全開放,形成了真正意義上的全開放、可互操作的工業控制系統,實現管控一體化。
[1]徐國君, 李成利.OPC技術及其在工業擰制中的應用[J].青島科技大學學報(自然科學版), 2003.
[2]Http: //www.opcfoundation.org OPC Data Access Custom Specification 2.0.
[3]潘愛民. COM 原理[M]. 北京: 清華大學出版社,2000.
[4]Don Box, 潘愛民譯.COM本質論[M]. [s.l.]: 中國電力出版社, 2001.
[5]高翔.基于OPC接口訪問過程控制的實現[J].燃料與化工, 2006: 37.