OPC簡介及OPC DA 服務器的設計與實現(xiàn)
0 引言
本文引用地址:http://cafeforensic.com/article/148479.htmOPC 全稱OLE for Process CONtrol,它是由OPC 基金會制定的自動化領域過程控制標準。
實際上,OPC 代表一系列的標準,包括OPC 數(shù)據(jù)訪問(OPC Data AccESS),OPC 報警與事件(Alarms Events ),歷史數(shù)據(jù)訪問(OPC Historical Data Access),OPC XML-DA(1.0)等。目前,OPC 標準在現(xiàn)代工業(yè)控制領域,特別是在數(shù)據(jù)采集和軟實時控制方面已有很好的應用。
1 OPC 標準介紹
在 OPC 標準制定之前,工業(yè)軟件制造商需要為不同的硬件開發(fā)各自獨立的驅動接口。對于開發(fā)典型監(jiān)控程序軟件的技術人員來說,約有20%-30%的時間是用于編寫通訊驅動程序。當供應商提供一個新的硬件時,應用軟件研發(fā)人員就不得不重新編寫一個新的程序。
而OPC 標準的出現(xiàn)為此解決該問題提供了一個方案,它制定了一系列的數(shù)據(jù)存取,事件,報警等規(guī)范,使得當有新的硬件出現(xiàn)時,供應商只需提供實現(xiàn)的OPC 標準接口,而上層應用軟件則不需重新改寫。這樣,在系統(tǒng)與設備之間,車間現(xiàn)場與信息管理之間,甚至更遠的距離上,都可以通過OPC 標準實現(xiàn)無縫通訊,而不必擔心設備升級帶來的不便和額外費用。
OPC 為不同的應用制定了不同的標準,OPC DA 是針對現(xiàn)場數(shù)據(jù)進行存取的接口規(guī)范,該標準基于OLE / COM / DCOM / COM+技術,采用Client / Server 模式。數(shù)據(jù)通過特定的采集卡或串口等,從現(xiàn)場設備中獲得,然后OPC DA 服務器將這些從數(shù)據(jù)源采集到的數(shù)據(jù),以OPC 標準接口形式提供給外部應用程序,例如工控軟件,實時數(shù)據(jù)庫等。OPC 服務器可以通過本地或遠程服務服務器兩種方式,為依照OPC 標準實現(xiàn)的客戶端提供服務。
2 OPC DA 服務器的設計
本文通過使用 VC++編程實現(xiàn)的一個OPC DA 服務器框架,來介紹OPC DA 服務器設計中需要解決的主要問題。在OPC 服務器的設計中,引入適配器模式,通過適配層將數(shù)據(jù)訪問同具體的數(shù)據(jù)源操作相分離,以便針對不同的數(shù)據(jù)來源時,進行快速的二次開發(fā)。實現(xiàn) OPC DA 服務器,需要依照OPC 基金會提供的OPC DA 標準,將從數(shù)據(jù)源中采集數(shù)據(jù),以標準規(guī)定的接口形式提供給外部。其中,OPC 規(guī)范為OPC 服務器規(guī)定了兩套接口方式:定制接口(Custom interface)和自動化接口(AutomATIon Interface)。其中,前者是OPC 服務器必須實現(xiàn)的接口,后者則是為方便VB 等腳本語言而提供,可以選擇性實現(xiàn)。
2.1 OPC DA 服務器中的對象
根據(jù) OPC 標準,在OPC DA 服務器中,主要包含三個層次的對象:服務器對象(Server),組對象(Group)和數(shù)據(jù)項(Item)。其中,服務器對象與組對象是一對多的關系,一個Server 對象可以包含0 到多個Group 對象,而一個組對象中可以包含0 到多個數(shù)據(jù)項。OPC DA 標準對Server 和Group 對象需要實現(xiàn)的接口,進行了詳細的規(guī)定說明。
在 OPC DA 標準中,客戶端對服務器的數(shù)據(jù)存取是以Group 為單位的,每次將需要存取的數(shù)據(jù)項item 加入一個Group,然后對該Group 進行整體讀寫操作。Group 對象通過標準定義的IOPCDataMgt 接口,對Item 進行添加,刪除等相關的管理;而Server 對象則通過IOPCServer 接口對Group 對象進行添加,刪除等管理。
2.2 OPC DA 服務器的結構
開發(fā)一個 OPC DA 服務器需要注意以下問題:服務器的運行方式,各個接口與對象的相互關系,內(nèi)部數(shù)據(jù)的組織形式,對外部數(shù)據(jù)源的訪問等。在本實例中,OPC 數(shù)據(jù)存取服務器的框架結構如下圖所示
圖 1 OPC 服務器的結構
評論