1、获取变量的属性接口
接口名称 | GUID | 主要方法 | |
OPC3.0 | IOPCBrowse | IID_IOPCBrowse | GetProperties |
OPC2.0 | IOPCItemProperties | IID_IOPCItemProperties | GetItemProperties、QueryAvailableProperties |
OPC1.0 | IOPCItemMgt | IID_IOPCItemMgt | AddItems、ValidateItems |
1、IOPCBrowse::GetProperties
virtual HRESULT STDMETHODCALLTYPE GetProperties(
/* [in] */ DWORD dwItemCount,
/* [size_is][string][in] */ LPWSTR *pszItemIDs,
/* [in] */ BOOL bReturnPropertyValues,
/* [in] */ DWORD dwPropertyCount,
/* [size_is][in] */ DWORD *pdwPropertyIDs,
/* [size_is][size_is][out] */ OPCITEMPROPERTIES **ppItemProperties) = 0;
2、IOPCItemProperties::GetItemProperties
virtual HRESULT STDMETHODCALLTYPE GetItemProperties(
/* [in] */ LPWSTR szItemID,
/* [in] */ DWORD dwCount,
/* [size_is][in] */ DWORD *pdwPropertyIDs,
/* [size_is][size_is][out] */ VARIANT **ppvData,
/* [size_is][size_is][out] */ HRESULT **ppErrors) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryAvailableProperties(
/* [in] */ LPWSTR szItemID,
/* [out] */ DWORD *pdwCount,
/* [size_is][size_is][out] */ DWORD **ppPropertyIDs,
/* [size_is][size_is][out] */ LPWSTR **ppDescriptions,
/* [size_is][size_is][out] */ VARTYPE **ppvtDataTypes) = 0;
3、IOPCItemMgt::AddItems 、ValidateItems
virtual HRESULT STDMETHODCALLTYPE AddItems(
/* [in] */ DWORD dwCount,
/* [size_is][in] */ OPCITEMDEF *pItemArray,
/* [size_is][size_is][out] */ OPCITEMRESULT **ppAddResults,
/* [size_is][size_is][out] */ HRESULT **ppErrors) = 0;
virtual HRESULT STDMETHODCALLTYPE ValidateItems(
/* [in] */ DWORD dwCount,
/* [size_is][in] */ OPCITEMDEF *pItemArray,
/* [in] */ BOOL bBlobUpdate,
/* [size_is][size_is][out] */ OPCITEMRESULT **ppValidationResults,
/* [size_is][size_is][out] */ HRESULT **ppErrors) = 0;
1、上述函数用于获取变量的属性信息,如:变量类型、变量描述、时间戳、质量戳等,只要服务器那边能提供的变量属性,客户端就可以通过上述函数读取过来。
2、前三个函数包含属性ID用于标识需要获取的何种变量属性。常用的属性ID如下所示。
#define OPC_PROP_CDT 1//变量类型
#define OPC_PROP_VALUE 2//变量值
#define OPC_PROP_QUALITY 3//质量戳
#define OPC_PROP_TIME 4//时间戳
#define OPC_PROP_RIGHTS 5
#define OPC_PROP_SCANRATE 6
#define OPC_PROP_UNIT 100
#define OPC_PROP_DESC 101//变量描述
2、读变量数据
同步读 | 1.0 | 2.0 | 3.0 |
IOPCSyncIO | Y | Y | Y |
IOPCSyncIO2 | N | N | Y |
异步读 | 1.0 | 2.0 | 3.0 |
IOPCAsyncIO | Y | Y | N |
IOPCAsyncIO2 | N | Y | Y |
IOPCAsyncIO2 | N | N | Y |