1 概述
OPC協議是由OPC基金會制定的一個工業標準,它規范了過程控制和自動化軟件與工業現場設備之間的接口。OPC是Object Linking and Embedding(OLE)for Process Control的縮寫,它是微軟公司的對象鏈接和嵌入技術在過程控制方面的應用。
OPC以OLE/COM/DCOM技術為基礎,COM 就是Component Object Model,也就是組件對象模型。DCOM中的D 是distributed(分布式)的意思,一般用于網絡。DCOM(分布式組件對象模型)是COM技術的擴展。DCOM 通過處理網絡協議的下層細節來支持網絡中不同計算機上的對象間的通訊。這樣可以啟用由多個協同完成同一任務的進程組成的分布式程序。COM Internet 服務 (CIS) 最初是在 Windows NT 4.0 Service Pack 4 中發布的,它提供的附加支持,使得由于服務器端或客戶網絡上的代理服務器設置了防火墻而令其他協議無法使用時,DCOM 仍然能夠通過Internet(使用 HTTP)使用。因此以OLE/DCOM為基礎的OPC,可以使OPC客戶通過利用DCOM連接到網絡。
OPC包括一整套接口、屬性和方法的標準集,提供給用戶用于過程控制和工業自動化應用。Microsoft的OLE/COM技術定義了各種不同的軟件部件如何交互使用和分享數據,從而使得OPC能夠提供通用的接口用于各種過程控制設備之間的通訊,不論過程中采用什么軟件和設備。復雜數據規范OPC技術的實現由兩部分組成:OPC服務器和OPC客戶應用部分。OPC服務器完成的工作就是收集現場設備的數據信息,然后通過標準的OPC接口傳送給OPC客戶端應用。OPC客戶端則通過標準的OPC接口接收數據信息。在具體的實現過程中,用戶可以根據自己的需要挑選相應的規范來使用。
2 OPC協議
OPC協議中包括了數據訪問規范、報警和事件規范、歷史數據存取規范、批量過程規范、OPC安全性規范、數據訪問標準的測試工具、過程數據的XML規范、數據交換規范、命令規范、公共I/O規范、合成數據規范。
采用OPC協議設計系統有諸多好處:
(1) 既有利于硬件制造商,也有利于軟件開發商。因為采用標準的Windows體系接口,硬件制造商為其設備提供的接口程序的數量減少到一個,軟件開發商也僅需要開發一套通訊接口程序;
(2) 可以將各個子系統從物理上分開,分布于網絡的不同節點上。因為OPC規范以OLE/COM/DCOM為技術基礎,而OLE/DCOM支持TCP/IP等網絡協議;
(3) 可以使用戶完全從底層的開發中脫離出來。因為OPC按照面向對象的原則,將一個應用程序(OPC服務器)作為一個對象封裝起來,只將接口方法暴露在外面,客戶以統一的方式去調用這個方法,從而保證軟件對客戶的透明性;
(4) 可以使系統的應用范圍更廣。因為OPC實現了遠程調用,使得應用程序的分布與系統硬件的分布無關,便于系統硬件配置,使得系統的應用范圍更廣;
(5) 提高了系統的可維護性。因為采用OPC規范,便于系統的組態,將系統復雜性大大簡化,可以大大縮短軟件開發周期,提高軟件運行的可靠性和穩定性,便于系統的升級與維護;
(6) 實現了系統的開放性。因為OPC規范了接口函數,不管現場設備以何種形式存在,客戶都以統一的方式去訪問,從而實現系統的開放性,易于實現與其它系統的接口。
3 OPC應用架構
Server/Client
OPC協議采用客戶/服務器體系。協議中為OPC服務器規定了兩套接口:自定義接口(Custom Interface)與自動化接口(Automation Interface),其中自動化接口是可選的,它支持VBA的所有應用程序,如VB、Excel等。而自定義接口是OPC服務器必提供的接口,它只能用C/C++來編寫客戶應用程序。
自動化接口定義了以下三層接口,依次是包含關系:
? OPC Server:OPC啟動服務器獲得其他對象和服務的起始類,并用于返回OPC Group類對象。
? OPC Group:存儲由若干OPC Item組成的Group信息,并用于返回OPC Item類對象。
? OPC Item:存儲具體Item的定義、數據值、狀態值等信息。
OPC Group(組)向客戶提供一種方法來組織數據,例如在特別的操作符顯示或報告中Group可能代表Item(項),可以讀/寫數據。在客戶和Group中的Item也可以建立鏈接,而且可以根據需要來啟用和停止。OPC客戶可以配置OPC服務器應該提供的向OPC客戶數據轉換的比例。Group有兩種類型:公共的和本地的(或私人的)。公共的通過多客戶來分享,本地的是對本地的一個客戶。對公共組有詳細的可選擇的接口。客戶的每一個組可以定義一個或多個項。一個OPC項,從特定的自定義接口,作為OPC客戶的對象是不可存取的。因此不能有外部的接口被定義為OPC的項。所有存取OPC項是通過一個OPC組對象,它包含OPC項,或簡單的OPC項在哪兒被定義。
通常一個OPC Client(客戶)可以與多個服務器同時連接,同時一個OPC服務器也可以同時被多個的OPC應用程序連接。因為采用了數據訂閱方式,多服務器連接與單服務器連接在本質上并無太大的區別,需要處理的只是多服務器同時工作時項的加減和連接釋放問題。在進行多OPC Server的連接時,對每一個不同的Server都要連接一次,當不要某個OPC Server時,要釋放掉該Server,以免占用資源。一個OPC客戶可以預訂規定的事件的發生的被通報,即協議中的報警和事件規范。OPCEventServer接口提供方法使OPC 客戶做到:(1) 決定OPC服務器支持的事件的類型;(2) 進入對規定的事件的預訂,以便OPC客戶能收到他們發生的通知,過濾器可以被用來定義需要的事件的一個子集;(3) 存取并使用OPC服務器實現了的條件。
OPC客戶和OPC服務器進行數據交換可以有兩種不同的方式,即同步方式和異步方式。同步方式實現較為簡單,當客戶數目較少而且同服務器交互的數據量也比較少的時候可以采用這種方式;異步方式實現較為復雜,需要在客戶程序中實現服務器回調函數。然而當有大量客戶和大量數據交互時,異步方式的效率更高,能夠避免客戶數據請求的阻塞,并可以最大限度地節省CPU和網絡資源。
OPC服務器允許一個客戶應用從許多OPC服務器存取數據,這些服務器由許多不同的OPC賣方提供,它們通過一個單一的對象運行在不同的代碼上。圖1為客戶/服務器接口圖。
圖1 客戶/服務器接口圖
4 OPC協議在RTDB中的應用
由于OPC協議的采用,使得可以以更簡單的系統結構、更長的壽命、更低的價格解決工業控制中的問題,同時現場設備與系統的連接也更加簡單、靈活、方便,因此OPC技術在國內工業控制領域得到了廣泛的應用。現在,實時數據庫在工業控制領域有著廣闊的應用空間,與傳統的DBMS不同,實時數據庫著重滿足事務的實時性需求,數據隨時間而變化,并且能夠及時處理以達到數據截止期的要求,還可以通過網絡對數據進行實時監控。因此OPC協議在實時數據庫中的應用是必要的。
實時數據庫系統中主要包括數據采集、數據存儲、數據庫管理、數據應用四個子系統它們實現不同的功能:
? 數據采集子系統:提供數據采集接口,實現遠程數據采集功能,并提供與其他系統的數據采集接口。
? 數據存儲子系統:完成數據存儲功能;實現數據的完整性機制、一致性機制;實現數據的實時存儲;實現數據的高速緩存機制,保證數據存儲過程的安全性和實時性;實現數據的索引和排序功能;實現數據的壓縮存儲機制。
? 數據管理子系統:權限管理功能;數據維護功能;數據備份、恢復功能;數據存檔壓縮功能;系統配置功能;數據可視化;數據報表統計功能;數據的智能分析功能;系統性能監視、分析工具;系統日志審計功能;系統使用幫助。
? 數據應用子系統:提供數據訪問的API,提供XML數據輸出、解析功能。
相應的OPC協議應用于這四部分:
? 在數據采集中:實時數據庫中要求數據的實時性和靈活性,這些要求OPC協議都可以保證。因為現在眾多硬件廠商均提供有標準的OPC接口,它實現了應用程序和工業控制設備之間高效、靈活的數據讀寫,可以編制符合標準OPC接口的客戶端應用軟件完成數據的采集任務。而且借助Microsoft的DCOM技術,OPC實現了高性能的遠程數據訪問能力,從而使得工業控制軟件之間的數據交換更加方便,這樣可以實現遠程數據采集。
? 在數據存儲中:實時數據庫中數據的存儲,不僅是實時數據的存儲,還有對歷史數據的存取,要保證實時性,歷史數據的存儲很重要。OPC協議既有數據訪問規范,又有歷史數據存取規范。OPC提供了讀取存儲在過程數據存檔文件、數據庫或遠程終端設備中的歷史數據以及對其操作、編輯的方法。
? 在數據庫管理中:實時數據庫對現場的要求很高,對現場情況的處理要求迅速,這樣才能保證實時性。OPC協議提供了報警和事件規范,即OPC提供了當OPC服務器發生異常時,以及OPC服務器設定事件到來時向OPC客戶發送通知的一種機制,通過使用OPC協議,能夠更好的捕捉控制過程中的各種報警和事件并給予相應的處理。在過程控制工業中一般使用實體作為報警和事件。在不正式的會話中,警報和事件的術語經常可交替地被使用,而它們的含義是相同的。
? 在數據應用中:OPC協議可使用數據冗余技術。控軟件開發中,冗余技術是一項最為重要的技術,它是系統長期穩定工作的保障。OPC技術的使用可以更加方便的實現軟件冗余,而且具有較好的開放性和互操作性。這可以很好的應用于實時數據庫開發中。而且OPC協議中的過程數據XML規范可以提供XML數據輸出和解析功能。
而且OPC協議規范了接口函數,不管現場設備以何種形式存在,客戶都以統一的方式去訪問,從而實現系統的開放性,易于實現與其它系統的接口。這在實時數據庫開發中提供了很大的便利。
5 結論
隨著OPC協議的逐漸成型,越來越多的國內外廠商給予了高度的重視,很多公司都在原來產品的基礎上添加了對OPC協議的支持,它的應用范圍會越來越廣。由于OPC協議統一了數據訪問的接口,使控制系統進一步走向開放,實現信息的集成和共享,用戶能夠得到更多的方便。而且OPC協議技術改變了原有的控制系統模式,給工業自動化領域帶來了勃勃生機,也給國內系統生產廠商提出了一個發展的機遇和挑戰。而且在實時數據庫開發中OPC協議的應用,也使得人們開發的實時數據庫軟件可以更好的符合實際的應用。因為采用OPC協議,在數據采集中,可以更好的保證數據的高效實時,還可以實現對遠程數據的采集;在數據存儲中,對實時數據和歷史數據的存儲都能保證實時性;在數據庫管理中,能夠及時對現場事件進行處理;在數據應用中,提供了XML數據的輸出和解析,而且使系統具有較好的開放性和可互操作性,易于實現與其它系統的接口。所以在實時數據庫開發中使用OPC協議很方便而且很必要。