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