OPC技術及其在工控組態軟件中的應用
OPC技術及其在工控組態軟件中的應用
[摘要]介紹了OPC技術及在工業控制軟件中的具體應用。重點敘述了OPC技術原理和特點,OPC數據采集技術和OPC冗余技術。
[關鍵詞] OPC,OPC控件,OPC冗余服務器。
1.引言
OPC全稱是OLE for Process Control,是過程控制業中的新興標準,它的出現為基于Windows的應用程序和現場過程控制應用建立了橋梁。在過去,為了存取現場設備的數據信息,每一個應用軟件開發商都需要編寫專用的接口函數。由于現場設備的種類繁多,且產品的不斷升級,往往給用戶和軟件開發商帶來了巨大的工作負擔。通常這樣也不能滿足工作的實際需要,系統集成商和開發商急切需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的設備驅動程序。在這種情況下,OPC標準應運而生。OPC 以OLE/COM/DCOM機制作為應用程序級的通信標準,采用客戶/服務器模式,把開發訪問接口的任務放在硬件生產廠家或第三方廠家,以OPC服務器的形式提供給用戶,解決了軟、硬件廠商的矛盾,完成了系統的集成,提高了系統的開放性和可互操作性。
2.OPC技術及接口
OPC技術的實現包括兩個組成部分,OPC服務器部分及OPC客戶應用部分,其應用模式如圖1所示。
OPC服務器是一個典型的現場數據源程序,它收集現場設備數據信息,通過標準的OPC接口傳送給OPC客戶端應用。OPC客戶應用是一個典型的數據接收程序,如人機界面軟件(HMI)、數據采集與處理軟件(SCADA)等。OPC客戶應用通過OPC標準接口與OPC服務器通信,獲取OPC服務器的各種信息。符合OPC標準的客戶應用可以訪問來自任何生產廠商的OPC服務器程序。
OPC標準以微軟公司的OLE技術為基礎,它的制定是通過提供一套標準的OLE/COM接口完成的。在Windows 3.1下,微軟公司通過OLE 1技術使相對獨立的不同應用程序結合到一起成為可能,向用戶軟件模塊化邁進了關鍵一步。在OPC技術中使用的是OLE 2技術,微軟不僅對OLE 1進行了擴展,還引入了一種新的深層次結構,使得在微軟Windows下開發軟件的思維方式有所改變,OLE標準允許多臺微機之間交換文檔、圖形等對象。COM是Component Object Model的縮寫,是所有OLE機制的基礎。COM是一種為了實現與編程語言無關的對象而制定的標準,該標準將Windows下的對象定義為獨立單元,可不受程序限制地訪問這些單元。這種標準可以使兩個應用程序通過對象化接口通訊,而不需要知道對方是如何創建的。例如,用戶可以使用C++語言創建一個Windows對象,它支持一個接口,通過該接口,用戶可以訪問該對象提供的各種功能,用戶可以使用Visual Basic,C,Pascal,Smalltalk或其它語言編寫對象訪問程序。在Windows NT4.0操作系統下,COM規范擴展到可訪問本機以外的其它對象,一個應用程序所使用的對象可分布在網絡上,COM的這個擴展被稱為DCOM(Distributed COM)。通過DCOM技術和OPC標準,完全可以創建一個開放的、可互操作的控制系統軟件。很多國際先進的自動化軟件供應商均以OPC技術作為核心,開發出了多種功能的自動化軟件,如ICONICS、PCSOFT等公司。同時,具有OPC標準接口的自動化軟件組件,遵守統一的數據訪問標準,配置靈活,方便了軟件集成,如ICONICS公司的具有軟邏輯(Soft Logic)功能的ControlWorX32組件,通過OPC標準可以自由的集成在HMI/SCADA 軟件中。
OPC服務器通常支持兩種類型的訪問接口,它們分別為不同的編程語言環境提供訪問機制。這兩種接口是:自動化接口(Automation interface);自定義接口(Custom interface)。自動化接口通常是為基于腳本編程語言而定義的標準接口,可以使用VisualBasic、Delphi、PowerBuilder等編程語言開發OPC服務器的客戶應用。而自定義接口是專門為C++等高級編程語言而制定的標準接口。OPC服務器的訪問方式與接口如圖2。
3.OPC技術在過程控制中的應用
OPC技術目前已經在國內開始使用,下面介紹OPC技術在控制應用軟件開發中的典型應用。
3.1 OPC數據采集技術
OPC技術通常在數據采集軟件中廣泛使用。現在眾多硬件廠商提供的產品均帶有標準的OPC接口,可以編制符合標準OPC接口的客戶端應用軟件完成數據的采集任務。隨著軟件組件化的發展,過去提出的搭積木方式在工控軟件中成為現實,用戶可以通過各種軟件模塊完成控制應用的實現。因此,我們提出了創建OPC數據采集ActiveX控件方式完成OPC服務器的數據采集任務。通過OPC數據采集控件,用戶可以方便的編寫數據采集監控程序,同時也可以為原有的數據采集系統添加新的功能。OPC數據采集控件的想法來自于VisualBasic編程環境中的數據庫(Data)控件,數據庫控件的主要作用是連接各種數據庫,為用戶進行數據庫編程提供方便。OPC數據采集控件提供類似數據庫控件的功能,使用方式與數據庫控件相仿,通過數據訂閱和數據的動態綁定,為具有數據綁定功能的所有ActiveX控件提供數據源,用戶甚至無須編程就可顯示來自OPC服務器的實時數據。我們在實際應用中,開發了OPC數據采集控件,現將該控件的屬性、方法、事件歸納如下:
* OPC數據采集控件屬性
屬性名稱
屬性描述
OPCItems
連接OPC服務器中數據項的個數
OPCItemID
數據項的維一性編號。用于從數據項集合中選擇某一數據項。
OPCItemName
OPC服務器中數據項的名稱
OPCServerName
OPC服務器名稱
OPCRemoteNodeName
OPC服務器所在的網絡節點名稱。如果該屬性是空串,則表明OPC服務器是在本機上。
OPCItemValue
OPC數據項的當前值
OPCItemQuality
OPC數據項的當前值的質量
OPCItemTimeStamp
OPC數據項的當前值的時間戳
UpdateRate
OPC服務器數據的更新速率。單位是1/1000秒
DeadBand
用來設置參數的變化量,當變化量超過死區時,OPC服務器發出DataChange事件
TimeBias
OPC服務器的時間偏置
LocaleID
與OPC服務器進行通訊時所用的語言標識
DisplayFullOPCItemName
是否顯示OPC數據項的全稱。數據項的全稱包括節點名、服務器名和數據項名
OPCItemGain
數據變換的增益。數據輸出值=OPCItemGain*OPC數據原始值+OPCItemBias
OPCItemBias
數據變換的偏置。數據輸出值=OPCItemGain*OPC數據原始值+OPCItemBias
OPCItemDigits
數據項的小數據點位數
PrintConfiguration
當該屬性從False變成True時,自動打印出控件的配置參數
* OPC數據采集控件方法
方法名稱
方法屬性
Refresh()
該方法用來強制更新當前數據
WriteOPCItemValue(ByVal ItemID As Long, ByVal Value As Variant)
該方法用來將編號為ItemID的數據項數值改寫為Value,并返回該數據項的名稱
PrintItem()
該方法用來打印控件的配置參數
* OPC數據采集控件事件
事件名稱
事件描述
ItemIDChanged(ByVal ItemID As Long)
當改變OPCItemID屬性時,觸發該事件。
DataChange(ByVal NumItems As Long, ItemIDs() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)
當數據項集合中的一個或多個數據項取值發生變化時,觸發該事件
OneDataChange(ItemID As Long, ItemValue As Variant, Quality As Long, TimeStamp As Date)
當數據項集合中的一個數據項取值發生變化時,觸發該事件
OPCServerShutdown()
當OPC服務由于某種原因關閉時,觸發該事件
3.2 OPC服務器冗余技術
在工控軟件開發中,一項最為重要的技術就是冗余技術,優秀的軟、硬件冗余技術是系統長期穩定工作的保障。目前流行的工控軟件也都具有冗余功能。OPC標準的制定為軟件冗余提出了新的思路,我們可以通過OPC技術更加方便的實現軟件冗余。在實踐應用中,我們開發了OPC冗余服務器,解決了對任何廠商的OPC服務器冗余問題。圖 3是OPC冗余技術的結構圖。
OPC客戶應用程序可以是任何符合OPC標準的客戶端應用,如用戶自己編寫的采集監控程序或其他軟件廠商開發的符合OPC標準的HMI、SCADA應用。OPC冗余服務器通過主/備份OPC服務器采集數據,同時通過標準的OPC接口為客戶端應用提供數據信息。因此,OPC冗余服務器既是OPC服務器的客戶端應用,同時又是符合OPC標準的服務器程序。由于OPC冗余服務器采用OPC標準,具有開放性和可互操作性,可以和任何符合OPC標準的軟件無縫集成,真正作到了即插即用。OPC冗余服務器可以根據用戶配置的檢測時間定時檢測OPC服務器的連接關系,在主從服務器之間自動切換,也可以按照用戶指定的切換目標進行切換,方便了設備的維護,使系統的運行更加平穩。
4.結束
OPC標準的制定方便了控制系統的開發與集成。我們在實際應用中,采用OPC標準開發了奧康2000監控應用軟件,同時開發了FF現場總線OPC服務器。通過OPC數據采集控件,連接了大量的OPC服務器程序,包括NI公司的FF現場總線OPC服務器、西門子公司的PROFIBUS總線OPC服務器及我們開發的OPC服務器,實現了控制系統的無逢集成。
隨著軟件技術的不斷發展,OPC標準也正在向新的領域擴展。OPC基金會現在已經頒布了數據訪問和報警事件標準,其它的OPC標準,如歷史數據OPC標準,也正在醞釀之中。去年在美國費城舉行的ISA會議上,OPC基金會發布與微軟公司BizTalk體系兼容的XML(Extensible Markup Laguage)的綱要,將Internet技術應用在工業控制中。相信在不久的將來,OPC技術及標準將應用于更加廣泛的領域,OPC技術必將賦予現代工業控制軟件更強的生命活力。
參考文獻
[1] OPC基金會。OPC Data Access Custom Interface Standard ,Version 2.0。[M]
[2] OPC基金會。OPC Data Access Automation Interface Standard ,Version 2.0。[M]
[3] OPC基金會。OPC Overview,Version 1.0。[M]
文章版權歸西部工控xbgk所有,未經許可不得轉載。