3.2 OPC自動化接口標準
(1) 自動化接口
OPC基金會為方便用戶在各種環境下軟件開發,為數據訪問規范提供兩類接口:自動化接口和定制接口;诙ㄖ平涌诘拈_發,需要用到較深的COM/DCOM知識,比較晦澀難懂,而運用自動化接口則有以下優點:客戶程序可以很容易地應用接口,而無需了解接口的詳細內部機理;可以運用事件觸發機制;可以生成一個通用的動態鏈接庫(DLL)或控件供所有客戶端應用程序使用。
(2) 自動化接口的通信機制
OPC客戶程序通過封裝的OPC自動化接口動態鏈接庫訪問OPC服務器,如圖5所示。該動態連接庫將OPC服務器的定制接口翻譯成OPC客戶程序希望的自動化接口,以供客戶程序調用。OPC客戶程序和動態鏈接庫是進程內的通信,而動態鏈接庫和OPC服務器的通信則基于COM/DCOM,既可以是進程內或本地的連接,又可以是遠程連接。封裝的動態鏈接庫解決了定制接口的解釋和二者的通信,從而大大簡化了OPC客戶程序的開發。
圖 5 OPC客戶程序與服務器的通迅
(3) 自動化對象模型
OPC客戶程序的開發關鍵在于搞清該動態鏈接庫的封裝結構,也即自動化接口標準。該標準可以用圖6所示的自動化對象模型表示。它主要由六類對象組成:
●OPCServer:OPC服務器的一個實例。只有創建了OPCServer對象以后才能獲得OPC服務器的信息,它包括OPCGroups的搜索以及OPCBrowser對象的創建;
●OPCGroups:能夠自動搜集到OPCServer范圍內客戶端創建的所有的OPCGroup對象;
●OPCGroup:OPCGroup對象的一個實例。它包含所有的狀態信息,并且為OPCGroup中所涉及的OPC- Items提供必要的服務;
●OPCItems:能夠自動搜集到OPCServer范圍內客戶端創建的對應相應的OPCGroup中的所有的OPCItem對象;
●OPCItem:一個自動化對象,它包含“位號”的定義,當前值,狀態信息,最后更新時間;
●OPCBrowser:瀏覽服務器中所有“位號”名稱的對象。對于每個OPCServer只能創建一個OPCBrowser對象。
圖6 自動化對象模型
3.3 實現PID控制的OPC客戶程序
(1) 使用VB開發OPC應用程序
利用VB開發OPC應用程序時,實現OPC自動化接口的OPC包裝DLL是必須的,這個OPC包裝DLL一般應該是由OPC服務器的供應商提供的,為OPC客戶程序的軟件開發提供了具有良好接口的工具。本文使用為OPC基金會的OPC包裝DLL進行說明。
因為在新建的VB工程里OPC包裝DLL還沒有注冊,必須先用下述方法對OPC包裝DLL進行注冊:
●從VB菜單里選擇[工程(P)]-[引用(N)];
●在[可用的引用(A)]的一覽表示中,選擇對應的OPC包裝DLL的文件名,這里選擇[OPC Automation 2.0];
(2) 實現步驟
用VB編寫OPC客戶端程序包含以下步驟:
[NextPage]
●添加服務器的引用,創建OPC服務器對象,并將客戶程序與服務器相連;
●創建組集合并添加組對象;
●添加OPC項,利用OPCBrowse方法瀏覽整個服務器中所有的項,選擇需要的項,將其添加到規定的組中,并顯示其值和狀態;
●在主畫面中顯示添加的組和項。
(3) 程序設計
圖7是以VB實現的具有PID功能的OPC同步客戶程序。
圖7 實現PID控制的OPC客戶程序
該單回路控制過程為自衡非振蕩,具有相互影響的雙容過程。其數學模型可用如下傳遞函數描述:
G( s) =
[NextPage]
圖8 SQL server 數據庫中存取OPC服務器數據
4 結束語
通過FF現場總線的過程控制實驗系統的設計過程,論述OPC技術,目的是希望通過VB去開發OPC自動化接口的客戶應用程序,實現PID控制算法到OPC 客戶應用程序的應用編程,方便用戶的使用和系統的維護和升級,同時研究SQL Server 2000的數據庫系統,用于歷史數據的存取以及算法的仿真。如何實現更加復雜的先進控制算法,可以使用OLE自動化技術來實現VB與Matlab混合編程,即用VB編寫OPC客戶端程序來實現數據通信,而利用Matlab進行先進控制算法的編寫,從而對現場數據進行分析,是下一步研究的重點。