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