最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

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

2023-07-23 09:12 作者:zhouwl72  | 我要投稿

本文簡單介紹OPC AE規(guī)范的接口IOPCEventServer2的相關(guān)知識,更多通信資源請登錄網(wǎng)信智匯(wangxinzhihui.com)。OPC AE規(guī)范描述了OPC事件服務(wù)器應(yīng)該實(shí)現(xiàn)的對象和接口,實(shí)現(xiàn)在多個(gè)OPC客戶端間共享事件和警報(bào)條件。

IOPCEventServer2是一個(gè)可選接口,用于在區(qū)域或源的基礎(chǔ)上管理?xiàng)l件的啟用狀態(tài)。它擴(kuò)展了在IOPCEventServer上定義的相應(yīng)方法。方法定義允許客戶端查詢區(qū)域或源列表的當(dāng)前啟用狀態(tài)。

為了進(jìn)一步說明啟用狀態(tài)方法的用法,下面的示例區(qū)域模型作為啟動條件。禁用的對象顯示為高亮顯示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1)客戶端為A11調(diào)用GetEnableStateByArea,對于當(dāng)前狀態(tài),服務(wù)器均返回FALSE(pbEnabled)和有效狀態(tài)(pbEffectivelyEnabled)。

2)客戶端調(diào)用A11的EnableConditionByArea2,服務(wù)器返回S_OK??蛻舳藶镾1、S2和S3調(diào)用EnableConditionBySource2,區(qū)域模型將更新,如下圖所示。

3)客戶端為A11調(diào)用GetEnableStateByArea,對于當(dāng)前狀態(tài),服務(wù)器均返回TRUE(pbEnabled)和有效狀態(tài)(pbEffectivelyEnabled)。

4)客戶端調(diào)用S1的DisableConditionBySource2,服務(wù)器返回S_OK。

5)客戶端為A11調(diào)用GetEnableStateByArea,對于當(dāng)前狀態(tài),服務(wù)器均返回TRUE(pbEnabled)和有效狀態(tài)(pbEffectivelyEnabled)。

?

【接口說明】

1)HRESULT EnableConditionByArea2(

????????[in] DWORD dwNumAreas,

????????[in, string, size_is(dwNumAreas)] LPWSTR* pszAreas,

????????[out, size_is(,dwNumAreas)] HRESULT **ppErrors

);

將指定的過程區(qū)域置于啟用狀態(tài)。服務(wù)器生成源本身已啟用且其層次結(jié)構(gòu)中的包含區(qū)域沒有被禁用的條件相關(guān)事件。

此方法的效果在事件服務(wù)器的范圍內(nèi)是全局的。如果服務(wù)器支持多個(gè)客戶端,為所有客戶端啟用條件,所有客戶端將開始接收條件相關(guān)事件。

由于此方法的全局影響,一些事件服務(wù)器實(shí)現(xiàn)者可能會選擇不實(shí)現(xiàn)它。在這種情況下,如果客戶端通過QueryInterface請求IOPCEventServer2,服務(wù)器應(yīng)該返回E_NOINTERFACE 。

一個(gè)條件可能與多個(gè)來源相關(guān)。這些來源可能是分布于多個(gè)區(qū)域。啟用一個(gè)區(qū)域的條件不會改變其他區(qū)域中關(guān)聯(lián)源的同名條件的啟用/禁用狀態(tài)區(qū)域。例如,可以為“區(qū)域1”中的源啟用“LevelAlarm”條件,而在“區(qū)域2”中的源禁用“LevelAlarm”條件。

如果源的條件狀態(tài)設(shè)置為已啟用,并且包含區(qū)域的層次結(jié)構(gòu)中的所有區(qū)域都已啟,則源啟用。

如果HRESULT為S_OK,則可以忽略ppErrors(其中的所有結(jié)果都保證為S_OK)。

如果HRESULT是FAILED代碼,則服務(wù)器應(yīng)返回NULL的OUT指針參數(shù)及ppErrors。

調(diào)用方必須釋放返回的ppErrors數(shù)組。

?

2)HRESULT EnableConditionBySource2(

????????[in] DWORD dwNumSources,

????????[in, string, size_is(dwNumSources)] LPWSTR* pszSources,

????????[out, size_is(,dwNumSources)] HRESULT **ppErrors

?);

將指定事件源的所有條件置于啟用狀態(tài)。服務(wù)器將為這些源生成與條件相關(guān)的事件。

此方法的效果在事件服務(wù)器的范圍內(nèi)是全局的。如果服務(wù)器支持多個(gè)客戶端,為所有客戶端啟用條件,所有客戶端將開始接收條件相關(guān)事件。

由于此方法的全局影響,一些事件服務(wù)器實(shí)現(xiàn)者可能會選擇不實(shí)現(xiàn)它。在這種情況下,如果客戶端通過QueryInterface請求IOPCEventServer2,服務(wù)器應(yīng)該返回E_NOINTERFACE。

一個(gè)條件可能與多個(gè)源相關(guān)聯(lián)。啟用一個(gè)源的相關(guān)條件不會更改其他源關(guān)聯(lián)的相同名稱的條件的啟用/禁用狀態(tài)。例如,可以為“A100”啟用“LevelAlarm”條件,為“FIC101”禁用“LevelAlarm”條件。

如果源的條件狀態(tài)設(shè)置為已啟用,并且包含區(qū)域的層次結(jié)構(gòu)中的所有區(qū)域都已啟,則源啟用。

如果HRESULT為S_OK,則可以忽略ppErrors(其中的所有結(jié)果都保證為S_OK)。

如果HRESULT是FAILED代碼,則服務(wù)器應(yīng)返回NULL的OUT指針參數(shù)及ppErrors。

調(diào)用方必須釋放返回的ppErrors數(shù)組。

?

3)HRESULT DisableConditionByArea(

????????[in] DWORD dwNumAreas,

????????[in, string, size_is(dwNumAreas)] LPWSTR* pszAreas,

????????[out, size_is(,dwNumAreas)] HRESULT **ppErrors

?);

將指定的過程區(qū)域置于禁用狀態(tài)。服務(wù)器將停止為這些條件生成與條件相關(guān)的事件。

此方法的效果在事件服務(wù)器的范圍內(nèi)是全局的。如果服務(wù)器支持多個(gè)客戶端,所有客戶端的條件都被禁用,所有客戶端將停止接收條件相關(guān)事件。

由于此方法的全局影響,一些事件服務(wù)器實(shí)現(xiàn)者可能會選擇不實(shí)現(xiàn)它。在這種情況下,如果客戶端通過QueryInterface請求IOPCEventServer2,服務(wù)器應(yīng)該返回E_NOINTERFACE。

一個(gè)條件可能與多個(gè)來源相關(guān)。這些來源可能是分布于多個(gè)區(qū)域。禁用一個(gè)區(qū)域中的條件不會改變與其他區(qū)域中關(guān)聯(lián)源的同名條件的啟用/禁用狀態(tài)。例如,可以為“區(qū)域1”中的源啟用“LevelAlarm”條件,而在“區(qū)域2”中的源禁用“LevelAlarm”條件。

如果源的條件狀態(tài)設(shè)置為禁用或包含區(qū)域的層次結(jié)構(gòu)中的任何區(qū)域被禁用,則該源將被禁用。

如果HRESULT為S_OK,則可以忽略ppErrors(其中的所有結(jié)果都保證為S_OK)。

如果HRESULT是FAILED代碼,則服務(wù)器應(yīng)返回NULL的OUT指針參數(shù)及ppErrors。

調(diào)用方必須釋放返回的ppErrors數(shù)組。

?

4)HRESULT DisableConditionBySource2(

????????[in] DWORD dwNumSources,

????????[in, string, size_is(dwNumSources)] LPWSTR* pszSources,

????????[out, size_is(,dwNumSources)] HRESULT **ppErrors

?);

將指定事件源的所有條件置于禁用狀態(tài)。服務(wù)器將不再為這些源生成與條件相關(guān)的事件。

此方法的效果在事件服務(wù)器的范圍內(nèi)是全局的。如果服務(wù)器支持多個(gè)客戶端,所有客戶端的條件都被禁用,所有客戶端將停止接收條件相關(guān)事件。

由于此方法的全局影響,一些事件服務(wù)器實(shí)現(xiàn)者可能會選擇不實(shí)現(xiàn)它。在這種情況下,如果客戶端通過QueryInterface請求IOPCEventServer2,服務(wù)器應(yīng)該返回E_NOINTERFAC。

一個(gè)條件可能與多個(gè)源相關(guān)聯(lián)。禁用一個(gè)源相關(guān)聯(lián)的條件不會改變其它源相關(guān)聯(lián)的相同名稱的條件的啟用/禁用狀態(tài)。例如,在“A100”啟用“LevelAlarm”條件,在“FIC101”禁用“LevelAlarm”條件。

如果源的條件狀態(tài)設(shè)置為禁用或包含區(qū)域的層次結(jié)構(gòu)中的任何區(qū)域被禁用,則該源將被禁用。

如果HRESULT為S_OK,則可以忽略ppErrors(其中的所有結(jié)果都保證為S_OK)。

如果HRESULT是FAILED代碼,則服務(wù)器應(yīng)返回NULL的OUT指針參數(shù)及ppErrors。

調(diào)用方必須釋放返回的ppErrors數(shù)組。

?

5)HRESULT GetEnableStateByArea(

????????[in] DWORD dwNumAreas,

????????[in, string, size_is(dwNumAreas)] LPWSTR* pszAreas,

????????[out, size_is(,dwNumAreas)] BOOL **pbEnabled,

????????[out, size_is(,dwNumAreas)] BOOL **pbEffectivelyEnabled, [out, size_is(,dwNumAreas)] HRESULT **ppErrors

?);

返回pszAreas中指定的每個(gè)區(qū)域的當(dāng)前啟用狀態(tài)和有效啟用狀態(tài)。

如果HRESULT為S_OK,則可以忽略ppErrors(其中的所有結(jié)果都保證為S_OK)。

如果HRESULT是FAILED代碼,則服務(wù)器應(yīng)返回NULL的OUT指針參數(shù)及ppErrors。

調(diào)用方必須釋放返回的ppErrors數(shù)組。

?

6)HRESULT GetEnableStateBySource(

????????[in] DWORD dwNumSources,

????????[in, string, size_is(dwNumSources)] LPWSTR* pszSources,

????????[out, size_is(,dwNumSources)] BOOL **pbEnabled,

????????[out, size_is(,dwNumSources)] BOOL **pbEffectivelyEnabled, [out, size_is(,dwNumSources)] HRESULT **ppErrors

);

返回pszSources中指定的每個(gè)源的當(dāng)前啟用狀態(tài)和有效啟用狀態(tài)。

如果HRESULT為S_OK,則可以忽略ppErrors(其中的所有結(jié)果都保證為S_OK)。

如果HRESULT是FAILED代碼,則服務(wù)器應(yīng)返回NULL的OUT指針參數(shù)及ppErrors。

調(diào)用方必須釋放返回的ppErrors數(shù)組。

更多通信資源請登錄網(wǎng)信智匯(wangxinzhihui.com)。


通訊協(xié)議021——全網(wǎng)獨(dú)有的OPC AE知識四之接口(五)的評論 (共 條)

分享到微博請遵守國家法律
舞钢市| 玛沁县| 平乡县| 泰安市| 镇赉县| 绍兴县| 寻甸| 福泉市| 甘泉县| 龙岩市| 棋牌| 仲巴县| 原平市| 南涧| 江都市| 修文县| 郯城县| 名山县| 那曲县| 景泰县| 潼关县| 滦平县| 蕲春县| 汝州市| 汪清县| 太仆寺旗| 朝阳区| 邻水| 伊金霍洛旗| 珲春市| 堆龙德庆县| 凤翔县| 丽江市| 斗六市| 阿合奇县| 达尔| 醴陵市| 高唐县| 奈曼旗| 咸阳市| 民勤县|