OPC客户端开发工具包
产品名称:OPC客户端开发快速工具
产品规格:DLL
产品备注:通过OPC基金会客户端分析软件测试
产品类别:OPC快速开发工具(Win32)
产品说明:
一、 简介
OM_OPCClt.dll是根据OPC DA
2.05a Specification撰写出来的OPC DA Client的开发工具包,其具有以下特点:
1.
使用STL撰写。
2. 使用Unicode字符集,源码可方便地移植到WinCE平台下
3. 支持WinCE平台
4. 可连接OPC DA 2.0 和
1.0服务器
5.被多个开发平台支持。如:VB、DELPHI、VC++和.net。
二、 API介绍
1. HRESULT OMCoInit()
初始化COM库
2. void
OMCoUninit()
反初始化COM库
====================================================
3. HRESULT NumberOfOPCServers(LPCWSTR szMachineName, int
*num)
枚举机器上安装的OPC服务器
szMachineName: 要枚举服务器的机器名
num:
返回OPC服务器的数目
4. HRESULT GetOPCServerName(int nIndex,
WCHAR *pBuf, int nBufSize)
获取OPC服务器的ProgID
nIndex: OPC服务器的位置,其值在0~(num-1)之间
pBuf: 存储获取的OPC服务器的ProgID
nBufSize: 缓冲区的大小
5. HRESULT
ConnectOPCServer(LPCWSTR szMachineName, LPCWSTR szServerName, HANDLE hClient,
HANDLE *phConnect)
与OPC服务器建立连接
szMachineName: 要连接的服务器所在的机器位置
szServerName: OPC服务器的ProgID
hClient: Client传递的句柄,当有Shutdown回调时会回传此句柄
phConnect: 存储对应服务器的句柄
6. HRESULT
EnableShutdownCallback(HANDLE hConnect, SHUTDOWNPROC lpCallback)
设置Shutdown回调,当Server关闭时会产生此回调
hConnect: OPC服务器的句柄
lpCallback:
产生回调时执行的函数
7. HRESULT GetSvrStatus(HANDLE hConnect,
OPCSERVERSTATUS *pSvrStatus, int nVendorInfoBufSize)
获取服务器的状态信息
hConnect: OPC服务器的句柄
pSvrStatus: 存储服务器的状态信息
nVendorInfoBufSize: 指示存储VendorInfo的缓冲区的大小
8. HRESULT DisconnectOPCServer(HANDLE hConnect)
与OPC服务器断开连接
hConnect:
指向相应服务器的句柄
====================================================
9. HRESULT NumberOfOPCItems(HANDLE hConnect, int *num)
获取Server地址空间中定义的Item数目
hConnect:
对应服务器的句柄
num: 存储返回的Item数目
10.
HRESULT GetOPCItemName(HANDLE hConnect, int nIndex, WCHAR *pBuf, int
nBufSize)
获取Item的标志符
hConnect:
对应服务器的句柄
nIndex: Item的位置,范围在0~(num-1)之间
pBuf: 存储Item标志符的缓冲区地址
nBufSize:
指示缓冲区大小
11. HRESULT SetBrowseFilters(HANDLE hConnect,
LPCWSTR szFilterCriteria, VARTYPE vtDataTypeFilter, DWORD
dwAccessRightsFilter)
设置获取Item过滤器,此函数应在NumberOfOPCItems之前调用,适用于DA 2.0 Server
hConnect: 对应服务器的句柄
szFilterCriteria: Server端定义的过滤字符串
vtDataTypeFilter: Item类型过滤
dwAccessRightsFilter: 访问权限过滤
12.
HRESULT SetBrowseFiltersEx(HANDLE hConnect, LPCWSTR szNameFilter, LPCWSTR
szVendorFilter)
设置获取Item过滤器,此函数应在NumberOfOPCItems之前调用,适用于DA 3.0 Server
hConnect: 对应服务器的句柄
szNameFilter:
Item名称过滤
szVendorFilter: Server端自定义的过滤字符串
13. HRESULT GetNameSpaceType(HANDLE hConnect,
OPCNAMESPACETYPE *pNameSpaceType)
获取服务器地址空间的类型
hConnect: 对应服务器的句柄
pNameSpaceType: 存储服务器地址空间的类型
14.
HRESULT BrowseTo(HANDLE hConnect, LPCWSTR szNodeName)
移动到地址空间指定的节点位置
hConnect:
对应服务器的句柄
szNodeName: 移动到节点位置的名称
NULL:回到根节点
NUL
String:返回上一级节点
非空字符串:进入下一级指定的节点
15. HRESULT NumberOfNodeItems(HANDLE hConnect,
OPCBROWSETYPE enFilter, int *num)
获取地址空间当前层节点的数目
hConnect: 对应服务器的句柄
enFilter:
节点过滤
num: 存储节点的数目
16. HRESULT
GetNodeItemName(HANDLE hConnect, int nIndex, WCHAR *pBuf, int nBufSize)
获取节点名称
hConnect: 对应服务器的句柄
nIndex: 节点的位置,范围在0~(num-1)之间
pBuf: 存储节点的名称
nBufSize: 缓冲区的大小
16. HRESULT QualifyItemName(HANDLE hConnect, LPCWSTR
szItemName, WCHAR *pItemID, int nBufSize)
获取节点完整的名称,如Device.Group.Node1
hConnect: 对应服务器的名称
szItemName:
由GetNodeItemName返回的节点名称
pItemID: 存储节点的ID
nBufSize: 缓冲区的大小
====================================================17.
HRESULT AddOPCGroup(HANDLE hConnect, LPCWSTR szName, BOOL bActive, DWORD
*pUpdateRate, LONG *pTimeBias, float *pDeadband, HANDLE *phGroup)
添加组到服务器
hConnect: 对应服务器的句柄
szName: 组的名称
bActive: 活动状态
pUpdateRate: 更新速率,同时也返回Server修正过后的更新速率
pTimeBias: 时间偏置
pDeadband:
更新变化范围
phGroup: 返回组对应的句柄
18.
HRESULT EnableDataCallback(HANDLE hConnect, HANDLE hGroup, DATACALLBACKPROC
lpCallback)
设置DataCallback回调
hConnect: 对应服务器的句柄
hGroup:
对应组的句柄
lpCallback: 回调发生时执行的函数
19. HRESULT RemoveOPCGroup(HANDLE hConnect, HANDLE
hGroup)
删除指定的组
hConnect:
对应服务器的句柄
hGroup: 对应组的句柄
20.
HRESULT GetGroupState(HANDLE hConnect, HANDLE hGroup, WCHAR *pName, int
nNameLen, DWORD *pUpdateRate, BOOL *pActive, LONG *pTimeBias, float
*pPercentDeadband)
获取组的属性
hConnect: 对应服务器的句柄
hGroup:
对应组的句柄
pName: 组的名称
nNameLen:
缓冲区的大小
pUpdateRate: 更新速率
pActive: 活动状态
pTimeBias: 时间偏置
pPercentDeadband: 更新变化范围
21.
HRESULT SetGroupState(HANDLE hConnect, HANDLE hGroup, DWORD *pUpateRate, BOOL
bActive, LONG *pTimeBias, float *pPercentDeadband)
设置组的属性
hConnect: 对应服务器的句柄
hGroup: 对应组的句柄
pUpdateRate:
更新速率
bActive: 活动状态
pTimeBias:
时间偏置
pPercentDeadband: 更新变化范围
22. HRESULT RefreshOPCGroup(HANDLE hConnect, HANDLE
hGroup, OPCDATASOURCE dwSource = OPC_DS_CACHE)
刷新组内数据项的值
hConnect: 对应服务器的句柄
hGroup: 对应组的句柄
dwSource:
数据刷新方式
23. HRESULT SetGroupName(HANDLE hConnect, HANDLE
hGroup, LPCWSTR szName)
更改组的名称
hConnect: 对应服务器的句柄
hGroup:
对应组的句柄
szName: 组的名称
====================================================
24. HRESULT AddOPCItem(HANDLE hConnect, HANDLE hGroup,
LPCWSTR szName, LPCWSTR szAccessPath, VARTYPE *pCanonicalType, HANDLE hClient,
HANDLE *phItem)
添加数据项到服务器
hConnect: 对应服务器的句柄
hGroup:
对应组的句柄
szName: 要添加数据项的ID
szAccessPath: 访问路径
pCanonicalType: 订阅的数据类型,同时返回规范的数据类型
hClient: Client传递的句柄,DataCallback回调时会回传此句柄
phItem: 返回数据项的句柄
25. HRESULT
RemoveOPCItem(HANDLE hConnect, HANDLE hGroup, HANDLE hItem)
删除指定的数据项
hConnect: 对应服务器的句柄
hGroup: 对应组的句柄
hItem: 对应数据项的句柄
26. HRESULT ReadOPCItem(HANDLE hConnect, HANDLE hGroup,
HANDLE hItem, VARIANT *pValue, FILETIME *pTimeStamp, DWORD *pQuality,
OPCDATASOURCE dwSource = OPC_DS_CACHE, BOOL DoAsync = FALSE)
读取数据项的值
hConnect: 对应服务器的句柄
hGroup: 对应组的句柄
hItem: 对应数据项的句柄
pValue: 返回值
pTimeStamp: 返回时间
pQuality: 返回品质
dwSource: 读取的源
DoAsync: 是否使用异步方式
27. HRESULT
WriteOPCItem(HANDLE hConnect, HANDLE hGroup, HANDLE hItem, VARIANT *pVal, BOOL
DoAsync = FALSE)
写数据项的值
hConnect: 对应服务器的句柄
hGroup:
对应组的句柄
hItem: 对应数据项的句柄
pVar:
要写的值
DoAsync: 是否采用异步方式
28.
HRESULT ChangeOPCItemState(HANDLE hConnect, HANDLE hGroup, HANDLE hItem, BOOL
bActive)
改变数据项的活动状态
hConnect:
对应服务器的句柄
hGroup: 对应组的句柄
hItem:
对应数据项的句柄
bActive: 数据项的活动状态
29.
HRESULT GetOPCItemInfo(HANDLE hConnect, HANDLE hGroup, LPCWSTR szName, VARTYPE
*pType, DWORD *pAccessRights)
获取数据项的信息
hConnect: 对应服务器的句柄
hGroup:
对应组的句柄
szName: 要获取信息的数据项的ID
pType: 返回数据项的规范类型
pAccessRights:
返回数据项的访问权限
30.HRESULT GetErrorString(HANDLE hConnect,
HRESULT ErrorCode, WCHAR *pBuf, int nBufSize)
返回错误码对应的错误信息
hConnect:
对应的服务器句柄
ErrorCode: 错误代码
pBuf:
存储错误信息的缓冲区
nBufSize: 缓冲区的大小