a&s专业的自动化&安全生态服务平台
公众号
安全自动化

安全自动化

安防知识网

安防知识网

手机站
手机站

手机站

大安防供需平台
大安防供需平台

大安防供需平台

资讯频道横幅A1
首页 > 资讯 > 正文

基于OPC技术的系统集成设计与实现

资讯频道文章B

    随着计算机技术和信息技术的不断发展,环境监控与安全防范系统在智能建筑中的应用越来越广泛。随着系统规模的不断扩大,应用于工业控制领域的软件与硬件设备的种类也越来越丰富,不同设备的通信协议也不尽相同,系统集成难度越来越大。因此,如何有效处理系统的互联和互操作问题成为迫切需要解决的问题。由于OPC技术采用即插即用的软件方式,统一了数据访问接口,简化了系统集成环境,并且易于实现功能扩展,使控制系统进一步开放,从而使得每一个子系统都能够自由的通信,实现了信息共享,所以OPC技术的应用越来越广泛,已成为建筑智能化系统集成的一种新途径。这里以智能建筑领域某环境监控与安全防范系统为例,探讨OPc技术的应用。

l 系统构建
    在某些智能楼宇中,对环境温湿度、火灾报警与人员出入管理有较高要求,因此一套设计合理、价格适宜的环境监控与安全防范系统就显得尤为重要。这里所设计研究的系统主要包括温湿度监控、火灾报警和门禁控制3个子系统。由于现场设备种类和数量繁多并且在楼宇建筑内分布广泛,所以采用基于OPC技术的系统集成方案,从而成功的解决系统集成及各子系统之间的互联性和互操作性问题。系统集成原理如图1所示。

    各子系统OPC服务器封装了子系统的访问细节,并向上提供标准的OPC接口,集成平台各应用软件作为客户端通过OPC标准接口模块与子系统进行通信和控制,并对收集到的各个子系统信息进行整理、统计和分析,实现信息共享,协调各个子系统之间的工作,从而达到控制与管理的目的,实现了系统集成。

2 OPC技术简介
    OPC(OLE for Process Control)即是把OLE应用于工业过程控制领域。工业控制领域要用到大量的现场设备,在OPC:出现以前,软件开发商需要开发大量的驱动程序连接这些设备。由于不同设备或者同一设备不同单元的驱动程序有可能不同,软件开发商很难同时对这些设备进行访问以优化操作,且一旦硬件系统改动或升级,应用程序就可能需要重写;同时不同客户有着不同的应用需求,不同硬件设备也存在不同的数据传输协议,传统集成方法已越来越不适应发展需要。

    OPC技术的出现有效地解决了这一问题。OPC建立在OLE规范之上,它为工业控制领域提供了一种标准的数据访问机制。它将底层硬件驱动程序和上层应用程序的开发有效地分隔开,使用统一的数据接口实现了不同设备协议间的数据互访,不仅易于系统维护和升级,而且缩短了开发时间。

    OPC规范的内容涵盖了数据存取、事件报警、安全性等诸多方面,主要包括:数据存取规范、报警事件规范、历史数据存储规范、批量过程规范和安全性规范等。OPC开发包括OPC服务器和OPC客户端两个部分。[nextpage]

    其实质是在硬件供应商和软件开发商之间建立了一套完整的标准,只要遵循这套标准,数据交互对双方来说就是透明的,OPC客户端就可以方便地读取OPC服务器中的数据,无需重复开发单独的驱动程序,应用程序之间可以很容易地实现信息的共享与交互,从而大大降低集成成本。典型的OPC体系如图2所示。

3 OPC数据访问服务器的实现
    OPC服务器的实现一般有3种方法:通过快速开发工具开发OPC服务器;通过MFC(微软基本类库)提供的COM支持开发OPC服务器;通过ATL(活动模板库)开发OPC服务器。

    由于OPC快速开发工具功能有许多限制,而MFC开发基于窗口的应用程序虽然比较方便。但它不是开发COM组件的理想工具,需要手工添加很多支持COM的基础代码。ATL是VC++提供专门针对COM应用开发的活动模板库。它内部的模板类实现了COM的一些基本特征。比如一些基本的COM接口,也支持COM的高级特征。如双接口、连接点等,其基本目标是使COM应用开发尽可能的自动化。使用ATL可以快速地开发出高效、简洁的代码,同时对COM组件的开发提供了一定限度的代码自动生成以及可视化支持。所以在此采用ATL研究OPC服务器的开发。

    OPCDA规范规定OPCDA Server包含3种对象:Server对象、Group对象和Item对象。Server对象包含了OPCDA Server的相关信息,它可以对Group对象进行添加、删除,是Group对象的容器。Group对象包含了这个组的相关信息,并提供了逻辑上包含组织Item对象的机制。Item对象与数据项关联,每个数据项必须具备Value,Quality和TimeStamp三个属性。OPC数据访问服务器程序结构如图3所示。

    由于OPC数据服务器既要对底层硬件进行读写操作,又要通过OPC接口与客户程序进行交互,为保证数据存取的效率,所以采用多线程模型,创建exe形式的进程外OPC服务器。实现OPC数据访问服务器的主要步骤包括:

(1)用ATL创建一个exe进程外服务器。将OPCDA规范中的IDL文件,加入项目中进行编译,将组件接口引入到工程中;

(2)添加OPCServer对象。创建一个简单的ATL对象,命名为GstServer,按照OPC规范添加相应接口并实现其方法,其中AddGroup函数的实现是难点;

(3)添加OPCGroup对象。Group对象是通过Server对象的创建实现的,因此不需要类型库,所以要在工程的OPCDA.cpp文件的对象映射中将其删除,然后用聚合实现接口的添加:
BEGIN_COM_MAP()
    COM_INTERFACE_ENTRY_AGGREGATE()
    END_COM_MAP()[nextpage]

(4)定义一个类CGstItem添加Item对象。OPCItem无需实现任何接口功能,只要根据实际情况增加相应的功能函数,如根据OPCltem的名称与数据源进行连接、读写数据源等;

(5)数据存储区的设计。数据存储区包含了服务器程序定义的数据项。要根据项的数目确定缓存的大小,使得每个项都有相对应的内存空间;

(6)OPC服务器的结构和功能大同小异,主要的区别在于硬件驱动程序。可以针对不同设备开发相应的读写接口类,并与相应的OPC服务器里的项对象连接起来,实现OPC服务器对现场数据的存取功能。

4 OPC客户应用程序的实现
    在该集成系统中,通过自行开发的OPC客户端实现集成平台和子系统的数据交换。在应用程序运行时,客户端将按照指定的采集频率对数据进行采集。

    自动化接口封装了COM底层的许多实现,使用户能比较轻松地进行数据访问,具有简单、易于编程等优点。该系统的OPC客户端程序使用VB6通过OPC自动化接口实现OPC数据访问。程序示例如下:
(1)启动VB,新建一工程OPCClient,在VB主菜单的“工程”项中选择“引用”,在弹出窗口可用的引用选项中选择“OPC Automation 2.0”,就可以使用自动化接口;


(2)声明使用的对象及变量


(3)连接OPC服务器、建立OPC组和添加OPC项

5 结 语
OPC作为一项逐渐成熟的技术已得到国内外厂商的高度重视,许多公司都在原有产品的基础上增加了对OPC的支持。由于统一了数据访问的接口,使控制系统进一步走向开放,实现了信息的集成和共享,所以用户能够得到更多的方便。相信随着技术的发展,OPC会越来越广泛地应用于工业过程控制领域。

参与评论
回复:
0/300
文明上网理性发言,评论区仅供其表达个人看法,并不表明a&s观点。
0
关于我们

a&s是国际知名展览公司——德国法兰克福展览集团旗下专业的自动化&安全生态服务平台,为智慧安防、智慧生活、智能交通、智能建筑、IT通讯&网络等从业者提供市场分析、技术资讯、方案评估、行业预测等,为读者搭建专业的行业交流平台。

免责声明:本站所使用的字体和图片文字等素材部分来源于互联网共享平台。如使用任何字体和图片文字有冒犯其版权所有方的,皆为无意。如您是字体厂商、图片文字厂商等版权方,且不允许本站使用您的字体和图片文字等素材,请联系我们,本站核实后将立即删除!任何版权方从未通知联系本站管理者停止使用,并索要赔偿或上诉法院的,均视为新型网络碰瓷及敲诈勒索,将不予任何的法律和经济赔偿!敬请谅解!
© 2020 Messe Frankfurt (Shenzhen) Co., Ltd, All rights reserved.
法兰克福展览(深圳)有限公司版权所有 粤ICP备12072668号 粤公网安备 44030402000264号
用户
反馈