作者:艾軍張衛民單位:天津水泥工業設計研究院
摘要:OPC規范是由OPC基金會制定的一個工業標準,它規范了過程控制和生產自動化軟件與用OPC服務器實現的硬件驅動程序之間的開放接口.OPC規范得到越來越多的工控領域硬件、軟件制造商的承認和支持。本文介紹了OPC標準和它的體系結構、優勢,數據存取接口技術規范,及在水泥行業的應用,并討論了OPC規范客戶端的開發。
在現在的DCS與PLC系統中,OPC一詞的出現頻率正越來廣泛的應用。那么OPC是什么呢?他有什么作用,在目前的應用情況又如何。
OPC(OLEForProcessControl,用于過程控制的OLE)是一個工業標準。它由一些世界上占地位的自動化系統和硬件、軟件公司與微軟(Microsoft)緊密合作而建立的。這個標準定義了應用Microsoft操作系統在基于PC的客戶機之間交換自動化實時數據的方法。〔O代表OLE(對象鏈接和嵌入),P(process過程),C(control控制)。OLE已從面向對象重新定義為基于對象并更名為ActiveX〕。管理OPC標準的組織是OPC基金會。OPC基金會現有會員已超過230家,遍布,包括世界上所有主要的自動化控制系統、儀器儀表及過程控制系統的公司。其前身由一個Fisher-Rosemount、RockwellSoftware、Siemens、Opto22、Inlution和IntuitiveTechnology等大公司組成專門的工作組,僅僅用了短短的一年時間便開發出一個基本的可運行的OPC技術規范。在1996年8月發布了簡化的、一步到位的解決方案。
OPC基于微軟的OLE(現在的ActiveX)、COM(部件對象模型)和DCOM(分布式部件對象模型)技術。Micosoft是OPC基金會的一個成員,已給予OPC基金會強有力的支持。ActiveX/COM技術定義各種不同的軟件部件如何交互使用和分享數據。其宗旨是在MicrosoftCOM、DCOM和ActiveX技術的功能規程基礎上開發一個開放的和互操作的接口標準,這個標準的目標是促使自動化/控制應用、現場系統/設備和商業/辦公室應用之間具有更強大的互操作能力。概括的說,OPC簡化了來自不同供應廠商的自動化部件與PC應用程序(例如可視化化和辦公系統)之間的接口。不論過程中采用什么軟件或設備,OPC為多種多樣的過程控制設備之間進行通信提供了公用的接口。OPC包括一整套接口、屬性和方法的標準集,用于過程控制和制造業自動化系統。
OPC提供眾多的優點
在過程控制和機械制造等工業領域的“即插即用”
OPC使自動化環境中的即插即用設想成為現實。OPC允許在不同供應商開發的硬件裝置和應用軟件之間通過共同的接口進行數據交換,Windows技術和OPC接口使之有可能將可編程序控制器(PLC)的硬件和軟件組合在一起,而不需要開發大量的通訊接口程序,由此減少了不少人力物力
OPC使從辦公室產品到過程數據的訪問簡單易行而且靈活可靠
OPC和現場總線的標準化
OPC提供現場總線以外的重要的附加功能,現場總線領域標準化主要目標是快速、可靠的數據傳輸。OPC使標準通訊達到這樣的程度,即使任何OPC服務器和應用軟件聯網運行而不會產生任何問題。
OPC與自動化軟件
通常說來,OPC提供了對于不同廠商的設備和軟件包的內部連接能力,在OPC誕生以前,企業中的應用程序與設備的I/O驅動軟件(SoftwareDriver)之間的關系如圖1所示。
在圖1中,不同的應用程序和不同的廠商的硬件的驅動程序之間存在著大量的連接問題,需要開發各種特定的通信程序。OPC標準的制定,使得所有的通信連接問題變得簡單,它提供了一種軟件的總線形式(圖2),這樣,應用就變得簡單、輕巧、更易于使用,應用程序只需知道如何從OPC數據源獲取數據(OPCClient),設備的驅動程序只需知道如何以簡單的格式提供數據(OPCServer)。
另一方面,雖然OPC解決的問題主要是I/O驅動程序,但在圖3中也可以看到它不僅應用在設備和SCADA,SoftPLC和DCS系統之間,同時也應用在SCADA,SoftPLC或DCS內核以及HMI,趨勢和報表等需要使用OPC數據的應用程序之間。在這樣的結構中,SCADA系統、DCS系統或Softlogic系統,變成了一個“智能”設備。
OPC技術規范
OPC技術規范是以Microsoft的OLE/COM技術為基礎,定義了一組接口規范。它包括OPC自動化接口(AutomationInterface)和OPC定制接口(CustomInterface)。另外,OPC技術規范定義的是OPC服務器程序和客戶機程序進行通訊的接口或通訊的方法。OPC的技術小組也分為:DataAccess,HistoricalAccess,AlarmsandEvents,Security和Batch。當然目前應用zui多的還僅是DataAccess。OPC基金會其目標是制訂一套針對于控制對象和設備的公共接口標準,它可以讓任何OPC客戶機去請求和獲取OPC服務器的數據。這里的OPC客戶機和服務器可以是任何廠商的任何產品,通過這種方式,繁雜的各類設備驅動程序問題可以消除,同時也加速了數據的傳輸。
基于OPC的軟件結構如圖。
由圖可見,應用程序與OPC服務器之間必須有OPC接口,OPC規范提供了兩套標準接口:Custom標準接口,OLE自動化標準接口。通常在系統設計中采用OLE自動化標準接口。
OLE自動化標準接口,及采用OLE自動化技術進行調用,其技術為上節所述的OLE自動化技術。OLE自動化標準接口定義了以下三層接口,依次呈包含關系。
OPCServer:OPC啟動服務器,獲得其他對象和服務的起始類,并用于返回OPCGroup類對象;
OPCGroup:存儲由若干OPCItem組成的Group信息,并用于返回OPCItem類對象。
OPCItem:存儲具體Item的定義、數據值、狀態值等信息。
由于OPC規范基于OLE/COM技術,同時OLE/COM的擴展遠程OLE自動化與DCOMTCP/IP等多種網絡協議,因此可以將OPC客戶、服務器在物理上分開,分布于網絡不同節點上。
OPC規范可以應用在許多應用程序中,如它們可以應用于從SCADA或者DCS系統的物理設備中獲取原始數據的zui低層,它們同樣可以應用于從SCADA或者DCS系統中獲取數據到應用程序中。實際上,OPC設計的目的就是從網絡上某節點獲取數據。
OPC對象與接口:OPC服務器對象提供了對數據源進行存取(讀/寫)或通訊的方法,而數據源可以是現場的I/O設備,也可以是其它的應用程序。通過接口,OPC客戶應用程序可以同時連到由一個或多個廠商提供的OPC服務器上。OPC服務器封裝了與I/O控制設備進行通訊和訪問數據的類型與名字及進行設備操作的代碼。
OPC數據存取(DataAccess)規范:總體來說,OPC數據存取規范包含幾個對象:服務器對象(ServerObject)、組對象(GroupObject)、項對象(ItemObject)。OPC服務器對象維護著服務器的信息,同時也是OPC組對象的包容器。OPC組對象維護著它自己的信息并提供包容OPC項的機制,同時管理OPC項。
OPC組提供客戶應用程序組織數據的機制,例如:一個組可以包含一個顯示面板所有數據的項,并可對數據進行讀寫。在一些特殊情況下,還可以在組里建立客戶應用程序與項的連接,并可以根據需要禁止或允許這種連接。OPC客戶應用程序還可以修改OPC服務器向OPC客戶應用程序提交數據變化的刷新數率。
OPC項代表了與服務器里數據源的連接。從定制接口(CustomInterface)角度來看,一個OPC項不能被OPC客戶程序作為一個對象來進行操作,因此,在OPC項中沒有定義外部接口。所有對OPC項的操作都是利用OPC項的包容器(OPC組)或OPC項的定義來進行的。
每個OPC項包含值(Value)、品質(Quality)和時間標簽(TimeStamp)。