![](../template/default/image/智慧监管产品.png)
![](../template/default/image/智能控制器.png)
![](../template/default/image/物联网开发.png)
楼宇自控系统集成中的OPC客户端 软件开发 杜小可、魏云军 摘要:根据楼宇自控系统集成的发展现状,介绍了OPC的相关概念、原理和运行机制,以及VC++在楼宇自控系统集成中的应用主要讨论编写 OPC 客户端。终端应用软件,从而实现 楼宇自动化的开放、集成和信息化。关键词:OPC、楼宇自动化、系统集成、C++ CLC编号:TU855 文档识别码:A 文章编号:1009-6825 201 1 36—0255—020 简介楼宇自控系统,BAS是智能楼宇的主要组成部分之一, 智能楼宇通过楼宇自控系统实现对楼内设备和楼宇环境的全面监控和管理。楼宇自动化系统应属于过程控制的范畴。在楼宇自动化技术发展过程中,由于历史原因,各个设备制造商都以封闭的方式开发了自己的系统。长期以来,没有建立国际标准的通信协议,使得各个设备或子系统无法无缝集成到一个操作平台中。这种情况严重阻碍了智能建筑技术的发展。在这种情况下,很难连接来自不同制造商的设备和控制系统。OPC 就是在这种情况下生成的。它提供了一个标准的接口楼宇自控系统集成,使楼宇自动化的各个子系统能够通过OPC客户端接口与具有标准OPC服务器接口的现场设备进行数据交换。这种软件数据集成使得楼宇自动化在某种意义上实现了开放、集成和信息化。
1 OPC系统构成 OPC采用OLE/COM机制作为应用层通信标准,采用客户端/服务器模型,将开发访问接口的任务交给硬件厂商或第三方厂商,提供给OPC 服务器形式的用户。解决了软硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和互操作性。OPC技术是建立在OLE/COM技术基础上的技术规范和标准。它基于组件对象模型和分布式组件对象模型COM/DCOM技术,采用客户端/服务器模型,定义了一组COM对象。及其双接口。OPC对象主要包括、group Group和item Item。OPC服务器对象除了维护自己的信息外,还充当组对象的容器,可以动态创建或释放组对象;而group对象也是一个相对于item的容器,它提供了一套管理item的机制;OPC 项是表示与 OPC 服务器中数据的连接,包括三个基本属性:Value、 和 Timer Stamp。图 1 显示了 OPC 服务器的结构。OPC标准中有两个主要接口:客户端和服务器程序员使用的OPC自定义接口OPC COM和支持Basic、Excel等高端商业应用程序开发的客户端程序的OPC自动化接口OPC OLE。可以动态创建或释放组对象;而group对象也是一个相对于item的容器,它提供了一套管理item的机制;OPC 项是表示与 OPC 服务器中数据的连接,包括三个基本属性:Value、 和 Timer Stamp。图 1 显示了 OPC 服务器的结构。OPC标准中有两个主要接口:客户端和服务器程序员使用的OPC自定义接口OPC COM和支持Basic、Excel等高端商业应用程序开发的客户端程序的OPC自动化接口OPC OLE。可以动态创建或释放组对象;而group对象也是一个相对于item的容器,它提供了一套管理item的机制;OPC 项是表示与 OPC 服务器中数据的连接,包括三个基本属性:Value、 和 Timer Stamp。图 1 显示了 OPC 服务器的结构。OPC标准中有两个主要接口:客户端和服务器程序员使用的OPC自定义接口OPC COM和支持Basic、Excel等高端商业应用程序开发的客户端程序的OPC自动化接口OPC OLE。包括三个基本属性:Value、和 Timer Stamp。图 1 显示了 OPC 服务器的结构。OPC标准中有两个主要接口:客户端和服务器程序员使用的OPC自定义接口OPC COM和支持Basic、Excel等高端商业应用程序开发的客户端程序的OPC自动化接口OPC OLE。包括三个基本属性:Value、和 Timer Stamp。图 1 显示了 OPC 服务器的结构。OPC标准中有两个主要接口:客户端和服务器程序员使用的OPC自定义接口OPC COM和支持Basic、Excel等高端商业应用程序开发的客户端程序的OPC自动化接口OPC OLE。
OPC 自定义接口必须由 OPC 服务器提供楼宇自控系统集成,而 OPC 自动化接口可能不提供。图 2 显示了使用这两个接口与 OPC 服务器进行通信的方式。两种接口的OPC服务器通信方式对于客户端应用程序的开发,自定义接口效率高,但开发难度大;自动化界面效率低,但易于开发。本文采用C++高级编程语言,以自定义接口的形式编写OPC客户端软件。2 OPC客户端编程实现OPC客户端程序访问OPC服务器,实际上是一个典型的客户端访问进程外组件的过程。编写一个 OPC 客户端程序的步骤可以概括为:指定服务器、建立 OPC 组、添加 OPC 项、接收数据和断开连接。//创建一个OPC服务器对象,并查询该对象的接口 rl clsid,NULL,,,viod** & ;//添加一个组对象,并查询接口 rl - L"grpl",//[in]组名TRUE, //[in] 活动状态 500, //[in] 刷新率 (毫秒) 1, //[in] 客户端句柄&,//[in]&,//[in] 死区参数, //[ in]&,//[out]服务器句柄&,//[out]服务器返回的刷新率,//[in]需要的接口指针* & ;//[out]返回需要的接口指针// [0]. L””;//不需要[0]。;//[0]。确定;[0]。1;[0]。0;[0].pBlob NULL; [0]。0; // 数据类型 rl - 1, // [in] 添加 1 项, // [in] 之前定义的 &, // [out] 结果信息指针 & ; // [out] 错误代码 // 接收数据 *; *; *; rl; UINT qnr; 如果 m-[0]! S_OK //项目不可用 ' OPC 项目不可用,不能使用同步读取功能!' ;; //内存分配new [1];//通过服务器句柄选择item [0] [0].;rl - Read ,1,,&,& ;//释放内存[];
该子程序可与楼宇自动化各子系统的OPC服务器对接,实现现场设备数据交换和数据信息化集成。4 结束语 OPC技术的出现使楼宇自动化的各个子系统之间实现了开放、无缝的连接。在提高系统互操作性的同时,简化了系统集成环境,从软件层面解决了不同厂商的各种子系统和问题。设备通常存在可集成性问题,因为它们没有标准接口。随着OPC规范的不断引入和完善,其在智能楼宇系统集成中的应用将越来越广泛。参考文献 [1] 周明,