通訊協(xié)議017——全網(wǎng)獨有的OPC AE知識四之接口(一)

本文簡單介紹OPC AE規(guī)范的接口相關(guān)知識,更多通信資源請登錄網(wǎng)信智匯(wangxinzhihui.com)。OPC AE規(guī)范描述了OPC事件服務(wù)器應(yīng)該實現(xiàn)的對象和接口,實現(xiàn)在多個OPC客戶端間共享事件和警報條件。
任何支持IOPCEventServer接口的COM對象都是OPC事件服務(wù)器。在許多情況下,OPC DA服務(wù)器還將暴露一個OPCEventServer對象,具備數(shù)據(jù)服務(wù)器和事件服務(wù)器的角色。在其他情況下,通常是專用的OPC事件服務(wù)器,而不是具備OPC DA的事件服務(wù)器。
本規(guī)范定義了以下COM對象,下面將簡要介紹這些對象:OPCEventServer、OPCEventSubscription和OPCEventAreaBrowser。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
1、OPCEventServer對象

?
上圖為OPC Event Server和IID_IOPCShutdown關(guān)閉對象的視圖。這些對象是使用CoCreateInstance或CoCreateInstanceEx創(chuàng)建。如前所述,這可能是一個OPC DA服務(wù)器對象,它也實現(xiàn)IOPCEventServer接口。
IOPCCommon接口用于執(zhí)行OPC服務(wù)器的通用功能,例如數(shù)據(jù)訪問。例如:包括LocaleID的管理和檢索錯誤字符串。
IOPCEventServer接口用于創(chuàng)建OPC事件訂閱和OPC事件區(qū)域瀏覽器對象,查詢事件類別和事件參數(shù),并管理條件。
IConnectionPointContainer和IConnectionPoint接口是可連接對象的標準DCOM接口,用于處理服務(wù)器通知即將關(guān)閉客戶端的回調(diào)。
?
2、OPCEventSubscription對象
?

上圖為客戶端使用IOPCEventServer::CreateEventSubscription方法時,OPC事件服務(wù)器創(chuàng)建的OPCEventSubscription和IID_IOPCEventSink對象的視圖。
IOPCEventSubscriptionMgt接口用于配置OPC事件報告的過濾器和其他屬性。
可選的IOPCEventSubscriptionMgt2接口用于設(shè)置或獲取訂閱的keep-alive時間。
IConnectionPointContainer和IConnectionPoint接口是的標準DCOM接口可連接對象,并用于處理事件通知的回調(diào)。
?
3、OPCEventAreaBrowser對象(可選)

?
上圖是當客戶端調(diào)用IOPCEventServer::CreateAreaBrowser方法時,由OPC事件服務(wù)器創(chuàng)建的OPCEventAreaBrowser對象的視圖。
IOPCEventAreaBrowser接口為客戶端提供了一種瀏覽由服務(wù)器實現(xiàn)的過程區(qū)域組織結(jié)構(gòu)。服務(wù)器提供的事件條件被組織成一個或多個過程區(qū)域,并且客戶端可以根據(jù)指定的過程區(qū)域篩選事件訂閱。
此對象是可選的,簡單事件服務(wù)器可能不支持該接口。
?
4、自定義接口開發(fā)注意
為了正確操作,枚舉器是從對象上的方法創(chuàng)建和返回的,而不是而不是通過QueryInterface。
根據(jù)COM規(guī)范,客戶端必須釋放與“out”或“in/out”參數(shù)關(guān)聯(lián)的所有內(nèi)存。
根據(jù)COM規(guī)范,所有方法都必須在每個接口上實現(xiàn)。方法不需要的可以根據(jù)情況返回E_ NOTIMPL或S_OK。
COM不允許為Out或In/Out參數(shù)傳遞NULL。
?更多通信資源請登錄網(wǎng)信智匯(wangxinzhihui.com)。