-
10月13日
-
OPCServer对象是应用程序与服务器互操作的首要对象,是其他对象的容器,最先暴露在外。KEPServerEX服务器的OPCServer对象并不唯一,可创建多个,每个OPCServer对象都拥有一个唯一的CLSID,应用程序通过不同的CLSID对服务器内指定的OPCServer对象进行数据操作。由于OPCServer对象是其它OPC对象的容器,必须先创建才可对其它对象进行操作。OPCServer对象定义了对数据源访问和通信的方法。
OPCserver对象主要接口有:IOPCCommon、IOPCServer、IOPCBrowse、IOPCItemIO等接口。其功能分别是服务器共享接口、管理自身状态和Group对象、浏览服务器地址空间和获得项属性、快速获取OPC数据的方法。
IOPCServer接口是OPCServer对象的最基本接口,其功能为:创建和管理组对象;管理服务器状态信息;将错误代码转化为描述性语句。OPCServer对象必须要实现此接口的所有功能。IOPCserver接口的重要功能是OPCGroup对象的添加和删除。添加OPCGroup对象的具体实现方法如下:
HRESULT AddGroup
( [in,string]LPCWSTR szName, / /组对象名称
[in]BOOL bActive, / / 状态标识激活位
[in]DWORD dwRequestedUpdateRate ,//数据刷新率
[in]OPCHANDLE hClientGroup, / /组对象句柄
[unique,in]LONG *pTimeBias, / /偏移时间
[in]FLOAT *pPercentDeadband, //订阅值变化百分比
[in]DWORD dwLCID, / /服务器语言
[out]JOPCHANDLE *PhserverGroup, / /新组对象句柄
[out]DWORD *pRevisedUpdateRate, / /实际数据刷新率
[in]JREFIID riid , / /组对象接口类型
[out,iid_is(riid)]LPIJNKNOWN *ppUnk); / /返回接口指针
OPCGroup对象添加的操作过程:首先进行指针有效性检查;为组对象创建名称并判断名称唯一性;创建一个组对象实例的引用计数并由OPCServer对象保存,防止在接口释放时指针被销毁,判断组对象是否支持该接口;新建的组对象获得OPCServer对象的指针,将组对象的指针和名称存入OPCServer对象的组对象映射表;新建组对象获得客户端定义的相关信息并保存到组对象的数据成员中,同时修正更新率不匹配的问题;若某过程出错,则返回当前错误码;最后将组对象的指针作为服务器句柄返回给客户端,则组对象添加成功。
除非注明,文章均为本站原创,转载请注明出处,谢谢。分类: kepserver