为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数据采集服务器设计

2017-11-20 13页 doc 33KB 34阅读

用户头像

is_614050

暂无简介

举报
数据采集服务器设计数据采集服务器设计 计算机应用 ComputerApplications 自动化技术与应用》20l0年第29卷第5期 数据采集服务器设计 李金波.陈庆文 (黑龙江省科学院自动化研究所,黑龙江哈尔滨150090) 摘要:本义利用OlC技术进行数据采集服务器的没计.评介绍数据采集服务器实现方法,闸述』_}f】OtC设汁系统的点.简述rI//O DII的肝发.小文的数据采集驽?对电能表没计的. 关键词:OPC;服筹器;电能表 中圈分类d:TP274.2文献标码:Bl殳章编号:1003724l(2010)05003...
数据采集服务器设计
数据采集服务器 计算机应用 ComputerApplications 自动化技术与应用》20l0年第29卷第5期 数据采集服务器设计 李金波.陈庆文 (黑龙江省科学院自动化研究所,黑龙江哈尔滨150090) 摘要:本义利用OlC技术进行数据采集服务器的没计.评介绍数据采集服务器实现方法,闸述』_}f】OtC设汁系统的点.简述rI//O DII的肝发.小文的数据采集驽?对电能没计的. 关键词:OPC;服筹器;电能表 中圈分类d:TP274.2文献标码:Bl殳章编号:1003724l(2010)05003905 DesignmentandImplementationofPower MeterDataAcquisitionServer LIJin-bo,CHENQing—wen . (HeilongjiangAcodemyofSciences,Haerbin150090China) Abstract:OPCservertechnologyfordataacquisitioninthedesign,andintroducedthemethodofdatacoll ectionserveronthe OPCdesignwiththeadvantageofthesystem,outlinestheI\0DLLdevelopment.Inthispaper,thedataacq uisition serverforenergymeterdesign. Keywords:OPC;servers;EnergyMeter 1引言 数据采集系统软件通过I/O驱动程序从现场I/O设 备获得实时数据,对数据进行必要的处理后,一方面以 图形方式直观地显示在计算机屏幕上,另一方面按照组 态要求和操作人员的指令将控制数据送给I/o设备,对 执行机构实施控制或调整控制参数.但是,数据采集系 统软件存在一个严重的制约因素,即现场设备与应用软 件之间难以实现开放的,无缝隙的连接.即针对同一个 硬件设备,每个应用软件都要根据自己的需求开发一套 硬件驱动程序.这不仅加大了开发和维护费用,而且带 来了访问冲突问题. OPC技术将各个硬件设备驱动程序和通信程序封 装成独立的OPC服务器,上层应用软件可以不关心硬件 的性能特点,而通过的OPC接口访问OPC服务器. 这样不仅解决了上述问题,而且实现了软件的”即插即 用”.OPC相当于一块软件”主板”,它能够直接与现场 收稿日期:2010—03—29 的PLC,工业网络,数据采集和WindowsCE设备连 接,快速有效地获取现场实时数据.PC机内的各种监 视,控制和管理等应用软件则像是插在OPC主板上的 软件”芯片”,”芯片”可通过OPC获得现场实时数据, “芯片”之间也可按照OPC协议进行通信,从而实现软 件的”即插即用”. 本文以针对一种电能表的数据采集服务器为编程 实例,详细介绍数据采集服务器的基本结构以及如何实 现OPC服务器. 电能表采用了((多功能电能表通信规约))(DL/T645 — 1997).多功能电能表通信规约适用于本地系统 中的电能表费率装置与手持单元(也称抄表器,用于现场 抄表或编程)或其他数据终端设备进行点对点的或一主 多从的数据交换方式;标准中规定了它们之间的物理连 接(物理层),通信链路(数据链路层)及应用技术(应用层) 规范.数据终端设备经数据信道(如无线电台,市话网 络等)与远方主站的数据通信协议不属于DL/T645, 《自动化技术与应用20l0年第29卷第5期i-l--N机应用 ComputerApplications l997的范畴.DL/T6451997中的主站指手持单元或 其他数据终端设备.它具有选择费率装置(与电能表连 接或与电能表组装在一起的数据采集与处理单元)并与 它进行信息交换的功能. 2传统数据采集系统的劣势 传统的数据采集系统为使每一个应用程序与设备 交换信息,必须为每个设备提供相应的驱动程序,在数 据源与客户程序之间分别建立一对一的驱动连接,如图 1以电能表为例. 图1传统的应用软件与数据源接口方式 由于设备多样性和驱动程序不兼容性,这种方式存 在以下缺陷: (1)应用程序开发者必须花费大量精力开发各种设 备的驱动接口,计算机硬件厂家要为不同的应用软件编 写不同的驱动程序,这种程序可复用程度低,不符合软 件工程的发展趋势,典型的高级语言软件开发过程约有 2530%的时间用于编写这类接口,使开发时间和费用大 大增加; (2)设备不具有互操作性,使用中硬件的升级,变 更和增加都可能造成驱动程序的变化,从而在维护过程 中引起二次投资; (3)由于每一驱动软件有各自的驱动程序,当多个 应用软件读取同一数据源时,经常发生冲突; (4)设备厂商虽然可能提供驱动程序,但与用户开 发应用软件往往不一致,限制了用户对软件和设备的自 由选择. 可见,在现场设备与应用软件之间提供标准的接 口,实现开放的,无缝隙的连接,是顺利推进企业管控 一 体化的关键.为此,在微软的倡导下,世界范围内处 于主导地位的硬件和软件开发商组成了OPC基金会组 织(opcFondation)[,制定硬件和应用软件之间的接口 标准一OPC规范. 3采用OPC规范设计服务器的益处 1)采用标准的Windows体系接口,硬件制造商为 其设备提供的接口程序的数量减少到一个,软件制造商 也仅需要开发一套通讯接口程序.即有利于软硬件开 发商,更有利于最终用户. 2)OPC规范以OLE/DCOM为技术基础[2],而OLE/ DCOM支持TCP/IP等网络协议,因此可以将各个子系 统从物理上分开,分布于网络的不同节点上. 3)OPC按照面向对象的原则,将一个应用程序 (OPC服务器)作为一个对象封装起来,只将接口方法暴 露在外面,客户以统一的方式去调用这个方法,从而保 证软件对客户的透明性,使得用户完全从底层的开发 中脱离出来. 4)OPC实现了远程调用,使得应用程序的分布与系 统硬件的分布无关,便于系统硬件配置,使得系统的应 用范围更广. 5)采用OPC规范,便于系统的组态,将系统复杂性 大大简化,可以大大缩短软件开发周期,提高软件运行 的可靠性和稳定性,便于系统的升级与维护. 图2基于OPC应用软件与数据源接口方式 6)OPC规范了接口函数,不管现场设备以何种形式 存在,客户都以统一的方式去访问,从而实现系统的开 放性,易于实现与其它系统的接口. 图2为基于0PC技术的应用软件与智能电能表进 行数据交换的处理过程,它比传统的数据采集系统有明 显的优势. 4数据采集服务器设计的整体结构 数据采集服务器的设计以OPCServer为核心【引,它 介于各种硬件设备与上位过程控制系统之间,将采用不 同的通讯规约和通讯方式的各种监控设备信息转换成 自动化技术与应用》2010年第29卷第5期 符合OPC接口规范的信息,提供给客户端(监控软件);同 时客户端下发的各种控制命令等信息通过数据采集服 务器提供给相应设备. OPC服务器由Server对象,Group对象,Item对 象和针对不同现场设备的编写的I/0DLL组成.Server , 对象,Group对象都是标准的COM对象,OPC客户端 通过它们提供的接口来访问现场设备的数据,使OPC客 户端与0PC服务器实现无缝连接成为可能.Server对 象是0PC客户端与0PC服务器端交互的首要对象,OPC 客户端通过Server对象来组织管理Group对象,Group 对象是用来组织管理Item对象的.Item对象描述了服 务器与现场设备的连接,是对应的现场设备的属性在服 务器中的代表,它包含有数据项的值,值的质量标志和 时间标签(读取数据的时间).I/ODLL实现从具体的现 场设备中读取数据的功能,因为不同厂商设备的数据采 集方式和现场通信网络的通信协议不同,需要为不同硬 件设备和通信协议编写不同的I/ODLL.数据采集服 务器的整体结构如图3所示. 图3数据采集服务器的整体结构 5数据采集服务器的设计与实现 数据采集服务器中0PCserver的开发主要应用 COM技术[4】,但直接采用COM技术开发的难度比较 大,且周期长.为了减少了开发的难度,本软件0PC 服务器部分应用第三方拓林的开发包开发,通过加 载KOSRDK.DLL动态连接库实现不同设备到OPC 的转换. OPCServer是透过一组一组的接口提供服务的.在 实际的架构上,OPCServer共分为三层:如图4,分别是 OPCServer,OPCGroup,OPCItem.其中每一个OPCltem 对应到一个实际的硬件装置上的某一个channel或 port;每一个OPCGroup则包含了许多的OPCItem,同时 并定义这些OPCltem更新的时间,方式,以及提供读取 OPCltem值的接口;而每一个OPCServer则包含若干个 OPCGroup,同时提供操作这些OPCGroup的接口. 图4OPCServer/OPCGroup/OPCltem 间的关系图 本文以拓林的开发包开发工具为例总结出以下开 发步骤: (1)安装OPCProxy动态链接库文件. 进行OPCServer编程开发首先需要从OPC基金会 官方网站下载并安装OPCProxy/Stub动态链接库文 件,包括opcproxy.dll,opccomn_ps.dll,opcae_ps.dll, opchdaps.dll四个文件.获得这些文件后,将它们拷贝 到系统目录(system32)下,然后在命令行格式下按照以下 方法对这些文件进行注册: regsvr32opcproxy.dll,regsvr32opccomnps.di1 regsvr32opcae—— ps.dll,regsvr32opchda_ps.dll 此外,还要检查系统中是否存在actxprxy.dill文 件,如果没有,则需要从Microsoft官方网站下载 aprxdist.zip文件进行安装. (2)编程环境设置. 用OPC数据服务器快速开发工具进行OPC数据服 务器的开发主要利用开发工具所提供的动态链接库进 行OPC数据服务器的编程开发工作,在VisualC++编 程环境中将用到WTOPCSvr.dll,WTOPCSvr.1ib, wTOPCSvrAPI.h三个文件.对于动态链接库文 WTOPCSvr.dll,需要将其拷贝到要开发的OPCServer程 序所在目录;对于输出定义文件WTOPCSvr.dll,需要在 编程环境的连接设置中加人此文件:对于头文件 WTOPCSvrAPI.h,则需要用到开发工具API函数的源 程序都应包含此文件. (3)获得CLSID. 《自动化技术与应用2010年第29卷第5期计算机应用 ComputerApplications 每个OPC服务器均有一个全球唯一的GUID类型 的标识,如下: StaticconstGUIDCLSID—Svr={0x73f90f71, 0x9154,Ox43d9,{0x86,0x45Oxf9,0x49,0x61,0x6,0x7c, 0x80}}; (4)系统设置和初始化. ?服务器名称和描述 设置OPC服务器的名称和描述,用于系统的注册和 标识. m— strSvrName=“Test.OPC.Serverver1.01”. //nameofOPCserver m_ strSvrDesc=“Test.OPC.Server”. //descriptionofOPCserver ?服务器初始化 调用KOS—Init()对服务器进行初始化. KOS_Init(CLSID_Svr,100);// KnightOPCServerInitialization 函数第一个参数为服务器的CLASSID,第二个参数 数据扫描频率. ?设置回调函数 1.客户端写函数 KOS— SetClientWriteProc(&ClientWriteProc,;// Settingwritecallbackprocedure 2.客户端关闭 KOS— SetClientShutd0wnProc (&ClientShutdownProc);//Settingclientshutdown callbackprocedure ?注册与反注册 注册:bRet=K0SRegiSter(CLSID—svr, m—strSvrName,,mstrSvrDesc,strFile); 反注册:bRet=KOS—UnRegiste(CLSID—Svr, m— strSvrName); (5)添加OPC点. 服务器的初始化工作完成后,需要添加OPC点到OPC ServerDLL中,OPC客户端才能够检索和使用OPC点. (6)更新OPC点. 在上一步中,OPC点已经被添加到OPCServeDLL 中,这样,OPC客户端程序就可以浏览到OPC点;同时, 也可以读取到OPC点的值(包括数据类型,数据值,质 量,时间戳等).程序将从设备采集上来的数据不断更 新到OPCServerDLL中,使得客户端程序可同步更新. (7)关闭OPC服务器. 关闭OPC服务器之前,需要完成如下工作:如果有 客户端连接,发出断开连接请求;释放用new等操作符 申请的内存;调用KOS—Removeltem0从OPC服务器中 删除已添加的OPC点.调用KOS—Unit()完成OPC服务 器的退出. 6电能表I\0DLL开发 图5接收功能实现流程图 计算机应用 ComputerApplications 自动化技术与应用2010年第29卷第5期 .旰婚 |『 l度?瓤l 聋崩掠跚皿 |r 菇电.哂 „ 技礁S „ 1.Ii结覃持l?? 图6正常应答帧 开始 1| 绽翻l{ „ 本帆地址(A0-A5} 工 艘鲫 C1H=控制码 【表示异常鹰菩帧) „ I傲撼螭长度0lH l错误侍息宇职R l檀齄码cs „ l帧绪柬牟鲁l砸 图7异常应答帧 由于不同厂商的设备的数据采集方式和现场通信 网络采用的协议不同,厂商提供的用于数据采集的 API函数也不同,因此在OPC服务中,通过编写不同的 I/ODLL,使得服务器能从连接到不同通信网络的不同 厂商的设备获取信息.获取信息的过程对OPC客户是 透明的. 本文参考多功能电能表通信规约(DL/T645-1997) 【引 ,实现了电能表发送,接收数据.接收功能实现的流程 图接收功能实现的流程图如图5所示.多功能表为从 站,OPC客户端为主站.发送功能实现的流程图:从站 收到主站发来的一帧信息后,先要进行判别,如是正常 的命令帧或数据帧则发正常应答帧,否则发异常应答 帧.以上两种情况的流程图分别如图6和图7所示. 7结束语 在工业控制领域中,利用OPC技术设计数据采集服 务器,实现了不用考虑驱动程序和接口问题,就可以在 自动化控制软,硬件之间实行无缝链接.它给用户在选 择它们的硬件和软件模块时具有充分的灵活性,通过标 准化通信接口,多种供应商的产品能被组合,匹配在一 起,并且在无需修改程序的情况下能够相互作用.OPC 使得即插即用在自动化应用中成为现实,并且还允许集 成各种各样的现场总线系统. 参考文献: [1]OPC基金会.数据存取规范[Z].2002,6. [2】13本OPC协会OPC(中国)促进委员会.OPC应用程序 人fq[z].2004. [3】傅舂霞,段建民.OPC数据访问服务器的开发.工矿自动 化,2004,(12):17-20. [4]潘爱民.COM原理与应用【M】.北京:清华大学出版社 1999.12. [5]DL/T645,1997多功能电能表通信规约IS】.1998,6. 作者简介:李金波(1977一),男,_T-程师,研究方向:仪表及 工业自动化.
/
本文档为【数据采集服务器设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索