OPC服务器用户手册(共28页).doc
《OPC服务器用户手册(共28页).doc》由会员分享,可在线阅读,更多相关《OPC服务器用户手册(共28页).doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上OPC客户端开发工具包用户手册北京华富惠通技术有限公司目录前言本文档介绍北京华富惠通技术有限公司开发的CONTROX-工具包(以下简称工具包)的特点和如何利用开发工具包进行OPC 客户端程序的开发。本文共分为六个部分:一、介绍了OPC的基本概念;二、OPC 客户端程序的开发流程;三、详细描述了工具包的开发接口;四、附录部分介绍了一些与DA开发相关的OPC规范和其他内容。一、 工具包简介(一)OPC简介:OPC(OLE for Process Control)是工控行业的软件接口标准,它试图按照标准的方法完成不同设备之间数据交换的问题。OPC基金会是OPC规范的制定者,
2、制定了数据访问、历史数据访问、事件与报警、批处理、OPC DA XML等一系列标准。OPC基于微软的COM技术,它具有如下的优点:(1)高速的数据传输;(2)基于分布式COM的安全性管理机制;(3)降低开发成本;(4)实现具有高度柔韧性功能的系统;(5)实现具有高可靠性的系统;(二)工具包的特点:北京华富惠通技术有限公司是OPC中国促进会的五家成员之一,负责OPC技术在中国地区的技术支持工作,同时也从事着OPC的研究与开发工作。于2002年10月开发完成的工具包提供对OPC Data Access 2.04规范(以下简称 OPC DA规范)的支持,工具包具有以下特点:(1)完全符合OPC Da
3、ta Access2.04标准;(2)开发人员不需要了解COM机制及OPC数据访问服务器接口细节;(3)支持多种开发工具。如VC、BC、VB、Delphi等;(4)不要求开发人员了解开发工具中实现COM的具体技术。如ATL等;(5)用户开发简单容易;二、 OPC 客户端程序开发流程(一) OPC客户端程序开发用到的相关知识一个OPC客户端可以和一个或多个OPC服务器进行连接。如图2-1图 2-1 OPC Client不同的供应商可以提供OPC Server,供应商提供的代码决定了支持何种设备并可以和之进行数据存取。图 2-2 OPC Client/Server 的关系 在高层次上说,OPC服务
4、器包含几个对象:服务器、标签组和标签项。OPC服务器对象包含标签组,标签组包含标签项。层次关系如下:服务器标签组标签项图2-3 对象层次关系OPC的标签组为客户端提供了组织数据的一种方法。例如,用户可以根据特定的显示和报告的需要来组织标签组中的条目(标签项),并可以进行数据的读写。OPC客户端还可以配置数据的更新速率。在一个标签组中,用户可以定义一个或多个OPC标签项,如图2-3图 2-3 标签组/标签项的关系图OPC中的标签项表示了OPC服务器中相联系的数据源。从用户接口的角度,客户端不能直接存取标签项,因为没有定义直接的标签项接口,所有的标签项必须通过OPC的标签组来实现存取。和每个标签项
5、相关联的有标签值、标签质量和时间戳,相关的内容可以参考本说明书的附录或OPC规范。(二) 用工具包 开发的OPC 客户端程序的框架驱动OPC 数据服务器OPC 客户应用程序硬件设备OPCClient.DLLOPC接口OPCClient.DLL动态库中包含了OPC客户端开发工具包所用到的功能,客户端应用程序通过工具包和OPC 服务器的接口进行操作,用户不必了解OPC相关的通讯规范和实现。实现数据的读取和回写等功能。(三) 调用工具包接口的流程图如下:工具包激活调用ActiveCode(对于序列号加密的版本)初始化调用Init服务器连接调用Connet注册回调函数调用SetDataChangePr
6、oc创建标签组调用AddGroup为标签组可添加标签调用AddItem用户数据处理注销调用UnInit关于上面流程的说明:1 对于工具包的激活说明:如果用户购买的是加密锁加密的方式,在运行时系统会自动检测。如果用户购买的是序列号加密的方式,在程序初始化之前要进行相应的激活,否则系统会认为工具为演示版。2 用户首先调用Init进行初始化。3 初始化后,可以和OPC 服务器进行连接4 初始化成功之后,注册数据改变回调函数。5 向OPC服务器对象可添加一个或多个标签组。6 向OPC标签组对象可添加一个或多个标签项。7 当相关联的OPC服务器发生数据改变时,注册的回调函数会被调用,用户可以对接到的数据
7、进行相关的处理和操作。8 在客户程序退出时,调用Uninit。(四) 在开发过程中,用户必须完成一些工作:1建立应用程序,加载OPC运行库。2按照工具包的提供的接口进行正确的函数调用。三、工具包的接口描述以下接口均采用stdcall调用规范。(一) 初始化函数1、 初始化函数function Init: BOOL;功能说明该函数用来初始化工具包动态库。参数说明 无返 回 值如果函数成功返回TRUE,否则返回FALSE附加说明一般情况下在动态库被加载时应被调用。如果函数调用成功,在动态被卸载时应调用Uninit。2、 注销函数 procedure Uninit; 功能说明该函数用来注销工具包。参
8、数说明 无返 回 值 无附加说明一般情况下在程序退出时调用,终止服务并释放相应的资源。3、工具包激活函数 function ActiveCode(const UserName, Password: PChar): BOOL;功能说明该函数用来激活工具包,用于序列号加密的版本。如果不调用此函数,则工具包被当做DEMO版本处理。参数说明 说明UserName用户在订货时得到的用户名Password用户在订货时得到的注册号返 回 值如果函数成功返回TRUE,否则返回FALSE附加说明用户名和注册号为配对使用。(二) 服务器连接函数1、服务器连接 function Connect(const Mach
9、ineName, ServerName: PChar; Version: SHORT = 2): THANDLE;功能说明该函数用来连接服务器,服务器端构建相应的组件对象,返回OPC服务器的接口指针。参数说明 说明MachineNameOPC服务器的节点名称ServerNameOPC服务器的名称Version版本号,可有默认值返 回 值如果函数不成功返回NULL,否则返回OPC服务器的连接句柄。附加说明函数返回的接口指针很重要,对服务器的操作都要用到。2、断开服务器连接 procedure Disconnect(hConnect: THANDLE); 功能说明该函数用来断开服务器连接,释放对象
10、资源并通知OPC服务器退出。参数说明 说明hConnectOPC服务器的连接句柄返 回 值无。附加说明程序退出时要调用该函数。3、得到OPC服务器个数函数 function GetServerCount(MachineName: PChar; Version: SHORT = 2): Integer; 功能说明该函数用来得到某节点中OPC服务器个数函数。参数说明 说明MachineNameOPC服务器的节点名称Version版本号,可有默认值返 回 值返回该节点OPC服务器个数函数。附加说明无。4、得到服务器名称 function GetServerName(Index: Integer; B
11、uf: PChar; BufSize: Integer): BOOL; 功能说明该函数根据索引号得到服务器名称。参数说明 说明IndexOPC服务器的索引号Buf服务器名称的缓存指针,该缓存用于存放返回的服务器名称BufSize缓存的大小。返 回 值如果函数成功返回TRUE,否则返回FALSE。附加说明无。5、得到服务器信息 function GetServerStatus(hConnect:THANDLE;var SvrStatus: SERVERINFORMATION): BOOL; 功能说明该函数用于得到服务器的信息。参数说明 说明hConnectOPC服务器的连接句柄SvrStatus
12、返回的服务器状态信息返 回 值如果函数成功返回TRUE,否则返回FALSE。附加说明服务器信息结构说明typedef struct _SERVERINFORMATION FILETIME ftStartTime;/启动时间 FILETIME ftCurrentTime;/当前时间 FILETIME ftLastUpdateTime;/最近更新时间 WORD dwServerState;/服务器状态 DWORD dwGroupCount;/服务器中组的个数 DWORD dwBandWidth;/服务器带宽 WORD wMajorVersion;/主版本号 WORD wMinorVersion;/
13、次版本号 WORD wBuildNumber;/编译序数 WORD wReserved;/保留 char* szVendorInfo;/服务器供应商信息int BufSize;/缓存尺寸 SERVERINFORMATION;服务器状态OPCSERVERSTATE声明:(在OPC DA规范中定义)enum tagOPCSERVERSTATE OPC_STATUS_RUNNING = 1,OPC_STATUS_FAILED = OPC_STATUS_RUNNING + 1,OPC_STATUS_NOCONFIG= OPC_STATUS_FAILED + 1,OPC_STATUS_SUSPENDED
14、 = OPC_STATUS_NOCONFIG + 1,OPC_STATUS_TEST = OPC_STATUS_SUSPENDED + 1 OPCSERVERSTATE;(三) 标签组函数1、增加标签组 function AddGroup(hConnect: THANDLE; Name: PChar; bActive: BOOL; dwRate: DWORD;TimeBias: PLongint; DeadBand: PSingle; dwLCID: DWORD): THANDLE;功能说明该函数用于增加标签组。参数说明 说明hConnectOPC服务器的连接句柄SvrStatus返回的服务器
15、状态信息Name标签组的名称bActive是否同时激活dwRate本标签组的数据更新速率TimeBias数据更新的基准时间(以分钟为单位)。如果该参数为NULL表示使用系统默认的时间基准。DeadBand数据更新的死区(变化百分比),只有当标签的数据变化大于死区时才会触发回调函数给客户端。如果参数为空则表示死区为0.0dwLCID此参数用于服务器以文本方式返回值(给这个组的相关操作)时使用的语言。这包括象报警或条件状态或数字线圈的状态等。返 回 值返回新增标签组的句柄。附加说明无2、删除标签组 procedure RemoveGroup(hConnect, hGroup: THANDLE);
16、功能说明该函数用于删除标签组。参数说明 说明hConnectOPC服务器的连接句柄hGroup标签组的句柄返 回 值无附加说明无3、设置标签组名称 function SetGroupName(hConnect, hGroup: THANDLE; const Name: PChar): BOOL; 功能说明该函数用于设置标签组名称。参数说明 说明hConnectOPC服务器的连接句柄hGroup标签组的句柄Name标签组的名称返 回 值如果函数成功返回TRUE,否则返回FALSE。附加说明无4、设置标签组状态参数 function SetGroupState(hConnect, hGroup:
17、THANDLE; Rate: DWORD; bActive:BOOL;TimeBias: DWORD; DeadBand: Single; dwLCID: DWORD): BOOL; 功能说明该函数用于设置标签组状态参数。参数说明 说明hConnectOPC服务器的连接句柄hGroup标签组的句柄Rate本标签组的数据更新速率bActive是否同时激活TimeBias数据更新的基准时间(以分钟为单位)。如果该参数为NULL表示使用系统默认的时间基准。DeadBand数据更新的死区(变化百分比),只有当标签的数据变化大于死区时才会触发回调函数给客户端。如果参数为空则表示死区为0.0dwLCID此
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OPC 服务器 用户手册 28
限制150内