OPC效劳器的研究及其在CAN总线系统中的实现.docx
-
资源ID:17784898
资源大小:22.09KB
全文页数:13页
- 资源格式: DOCX
下载积分:15.18金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
OPC效劳器的研究及其在CAN总线系统中的实现.docx
OPC效劳器的研究及其在CAN总线系统中的实现OPC效劳器的研究及其在CAN总线系统中的实现ronggang导语:在扼要介绍OPC技术的根底上,描绘了OPC效劳器的构造及开发步骤,具体讲述了OPC技术在CAN总线系统中的实现摘要:在扼要介绍OPC技术的根底上,描绘了OPC效劳器的构造及开发步骤,具体讲述了OPC技术在CAN总线系统中的实现。关键词:OPCOPC效劳器COM现场总线1OPC技术简介1.1什么是OPCOPCOLEforProcessControl,即用于经过控制的对象链接与嵌入技术,是一种标准,是在工业控制和消费自动化领域中使用的硬件和软件的接口标准。OPC以组件对象模型和分布式组件对象模型COM/DCOM技术为根底,采用客户/效劳器Client/Server的形式,定义了一组COM对象及其接口标准。OPC标准是由世界范围内自动化领域中处于指导地位的硬件和软件开发商,在微软的协作下制定的,并且已经得到越来越多的客户和硬件制造商的认可。1.2OPC的意义在传统的控制系统中,针对同一个硬件设备,每个应用软件都要根据自己的需求开发一套硬件驱动程序。这不仅加大了开发和维护费用,而且带来了访问冲突问题。OPC技术将各个硬件设备驱动程序和通讯程序封装成独立的OPC效劳器,上层应用软件作为OPC客户端可以不关心硬件的性能特点,而通过标准的OPC接口访问OPC效劳器。这样不仅解决了上述问题,而且实现了软件的“即插即用。OPC相当于一块软件“主板,它可以直接与现场的PLC、工业网络、数据收集和WindowsCE设备连接,快速有效地获取现场实时数据。PC机内的各种监视、控制和治理等应用软件那么像是插在OPC主板上的软件“芯片,芯片可以通过OPC获得现场实时数据,芯片之间也可以按照OPC协议进展通讯,进而实现软件的“即插即用。1.3OPC对象与接口OPC的核心是COM/DCOM技术。在COM模型中,软件的功能被分解为一些组件,这些组件通过COM协议在一定条件下连接起来,实现相应的功能。COM对象分为客户端和效劳器两类,客户端通过COM接口访问效劳器2。OPC数据访问标准描绘了OPC效劳器需要实现的COM对象及其接口,它定义了定制接口custominterface和自动化接口automationinterface1。OPC客户程序通过接口与效劳器通讯,间接读取数据。OPC效劳器必须实现定制接口,也可以有选择地实现自动化接口。一般来讲,自动化接口能为VB等高级语言客户程序提供极大的便利,但数据传输效率较低;而定制接口那么为用C/C+语言编写的程序带来灵敏高效的调用手段。OPC客户程序访问效劳器时,创立一个效劳器对象这里指的是逻辑对象,目的是利用这个逻辑对象建立与实际效劳器的连接,调用这个效劳器对象的接口,效劳器对象创立组对象并返回组对象的指针,客户程序获得组对象的指针后调用其接口。留意,OPC项并不是OPC客户直接操纵的对象,由于OPC项没有定义外部接口,对象的所有操纵都是通过包容该项的组对象进展的。2OPC数据访问效劳器的构造及设计步骤2.1OPC数据访问效劳器的构造align=center图1OPC数据访问效劳器的构造/align本文实现的OPC数据访问效劳用具有数据收集的功能,提供符合OPC标准的定制接口。主要由OPC效劳器对象、OPC组对象、OPC项对象和针对CANControllerAreaNetwork控制器局域网通讯卡编写的I/O动态链接库DLL组成,采用如图1所示的构造。OPC效劳器对象是客户端与效劳器交互的首要对象。客户端通过访问效劳器对象的接口函数与之进展交互。一个效劳器对象里可以设置一个以上的组对象。OPC效劳器对象的主要功能是:创立和治理OPC组对象;治理效劳器内部的状态信息;将效劳器的错误代码翻译成描绘性语句;阅读效劳器内部的数据组织构造。OPC组对象用于组织治理效劳器内部的实时数据信息,它是OPC项对象的集合。正由于有了组对象,OPC应用程序就可以成批地对所需要的数据进展访问,也可以以组为单位启动或者停顿数据访问。其主要功能是:治理组对象内部的状态信息;创立和治理项对象;OPC效劳器内部的实时数据存取效劳同步或者异步方式。OPC效劳器对象和组对象支持的接口由OPC标准定义,但并未规定详细怎样实现,需要开发人员自己完成。OPC项那么与现场设备中的模块相对应,它包含数据项的值value、品质quality和时间戳timestamp。I/ODLL是针对详细硬件设备开发的驱动程序,实现从现场设备读取数据的功能。2.2实现OPC数据访问效劳器的主要步骤:2.2.1获得并注册OPC标准组件根据COM标准,COM效劳器可分为进程内效劳器、本地效劳器和远程效劳器。后两种效劳器与客户程序运行在不同的进程空间,属于进程外效劳器。为了实现进程间通讯,需要用到代理/存根模块。代理/存根模块由接口描绘语言IDL直接生成。OPC基金会为每种OPC效劳器提供了相应的代理/存根动态链接库,这些文件可以在OPC基金会的网站opcfoundation.org上免费下载。留意,设计OPC效劳器时可以在OPC对象上增加接口以知足特定的要求,但不能修改标准的OPCIDL文件或者相应的proxy/stubDLL。新增的接口描绘应定义在独立的IDL文件中,并由该文件生成独立的代理/存根模块来完成接口的调用工作。组件的注册将在后面介绍。2.2.2编写OPC效劳器代码首先定义0PC数据效劳器的名称ProgID和类标识CLSID,实现COM库的初始化功能和0PC数据效劳器类厂对象的接口功能。然后实现OPC对象和数据缓冲区。接下来针对详细硬件编写I/ODLL,实现数据的实时读取。这项工作是特别繁重的,要求开发人员具有良好的COM编程知识,详细经过限于篇幅不能详述,这里指出两点引起留意:全局唯一标识符GUIDGUID是为每个COM对象提供的十六字节标识数。COM类至少有两个GUID:类标识CLSID和接口标识IID。CLSID用于标识COM类,登记在Windows注册表中,包含指向包括COM类的DLL或者EXE组件的途径。IID用于标识该类的接口,被应用程序用来查询和触发该类的方法,也登记在注册表中。由于对象类是由GUID标识的,所以必须保证它们的唯一性,才能使最终用户在使用由不同软件商开发的组件时不会发生冲突。可以使用宏DEFINE_GUIDname,long,word,word,word,byte1,byte8其中name是标识数的名字,其余参数是实际的ID码。类标识的命名惯例是CLSID_ClassName,而接口ID的命名惯例是IID_InterfaceName。有两种途径来获得GUID:MicrosoftVisualC+提供了两个工具来产生GUID:UUIDGen.exe和GUIDGen.exe大小写没有影响。前者是一个命令行程序,直接产生一个GUID;后者是一个基于对话框的应用程序,运行UUIDGen.exe,产生一个CreateGUID对话框。它提供四种格式,选定之后,按NewGUID键产生新的GUID,显示在Result栏中;按Copy键可以复制产生的结果。利用COM库提供的API函数来产生GUID:HRESULTCoCreateGuidGUIDpguid假如创立GUID成功,那么函数返回S_OK,并且pguid将指向所得到的GUID值。OPC组件的注册注册表是客户和组件程序共同访问的信息仓库,通常情况下,当组件程序被安装到计算机上之后,必须通过某种途径把它的信息注册到注册表中,然后客户程序才能根据注册表中的信息对组件程序进展操纵。根据COM标准,组件程序可分为自注册组件程序和非自注册组件程序。OPC基金会提供的组件都是自注册组件。对于非自注册组件程序,其注册经过与组件程序没有直接关系,必须单独进展注册信息的配置,比方,可以编写一个注册表文件,然后在RegEdit中引入。对于DLL形式的进程内自注册组件,Windows系统提供了RegSvr32.exe注册工具进展组件注册和注销。组件程序本身必须包含DllRegisterServer和DllUnregisterServer两个注册表入口函数。注册和注销的格式分别为:RegSvr32RegSvr32/u对于EXE形式的进程外自注册组件,COM标准规定,必须支持两个命令行参数/RegServer和/UnregServer大小写无关,并且“/可以用“-代替,以便完成注册和注销操纵。注册和注销的格式分别为:/RegServer/UnregServer2.2.3测试OPC效劳器OPC效劳器经过调试之后,还需要利用OPC客户程序对它的主要功能进展测试。3OPC技术在CAN现场总线系统中的应用本文开发的OPC效劳器是针对华控公司的CAN通讯卡编写的,用于从华控的CAN通讯卡和RSM智能模块组成的现场通讯网络中读取信息。3.1系统组成系统主要由上位机,CAN通讯卡,OPC客户端,OPC效劳器,RSM智能模块,通讯媒体等组成。如图2所示。align=center图2系统构成/align上位机的软、硬件配置:MicrosoftWindows98/2000或者WindowsNT操纵系统;32M以上内存、1G以上可用硬盘空间、SVGA显示卡。CAN通讯卡选用华控公司的HK-CAN30B,它是一种将CAN通讯协议与PC机PCI总线标准相连接的非智能CAN插卡,通过该卡可对工业现场具有CAN通讯接口的仪表和控制设备进展监控。CAN现场设备选用华控的RSM智能模块,每个模块都是在一个嵌入式实时多任务的内核治理下周期性工作,按组态要求定时地向上发送和获得数据。通讯媒体可以选用双绞线、带屏蔽双绞线等。客户端选用力控公司的力控2.6监控组态软件。力控2.6支持OPC技术。它作为OPC客户端,充分利用了OPC效劳器的强大性能,为工程人员提供了方便高效的数据访问才能。在力控中可以同时挂接任意多个OPC效劳器,每个OPC效劳器都可以当作一个外部设备进展定义、增加或者删除。3.2OPC效劳器与客户端的连接3.2.1定义OPC设备首先在力控导航器窗口中选择“实时数据库中的“I/O设备驱动并展开,出现“OPC设备。双击“OPCClient,出现I/O设备定义对话框。在“设备名称中定义逻辑设备的名称由用户随意定义,不妨定义为“OPC,在“数据更新周期中指定收集周期,填写故障后恢复查询的周期和最长时间,然后单击“下一步,出现OPC设备定义对话框。力控会自动搜索计算机系统中已经安装的所有OPC效劳器。假如OPC效劳器编写无误并且注册正确,那么点击下拉框“OPC效劳器时会列出已经安装的所有OPC效劳器的名称,选择要使用的OPC效劳器,这里选择本文设计的效劳器“OPC.Server.1。选择“Server类型,是“当地local还是“远程remote。在“数据访问方式中选择“缓冲区或者“外设方式,对于“缓冲区方式,OPC客户程序将通过OPC效劳器的缓冲区读取数据;对于“外设方式,OPC客户程序将通过OPC效劳器直接从设备读取数据。从设备直接读取数据速度会慢一些,一般只有在故障诊断或者极特殊的情况下才会使用。在“死区百分比中输入一个百分值,表示经过数据值的变化不超出这个比例将不对其进展数据更新。单击“确定就完成了OPC设备的定义。3.2.2对OPC数据项进展数据连接启动力控的数据库组态程序DBMan。首先在点组态中创立所要用的变量,不妨设为gg1。展开“数据连接项,已经建立的OPC设备就排列在其中。双击我们刚刚建立的OPC设备“OPC,那么出现“数据连接对话框。选择要连接的点参数gg1后,单击“增加按钮,出现“数据项组态对话框。假如OPC效劳器支持“阅读功能,双击右上侧列表框中的“Root,列表框会自动列出它提供的数据区;假如OPC效劳器不支持“阅读功能,其数据项的描绘需要用户根据OPC效劳器的资料讲明,在“数据项输入框内手工填写。选择“数据类型和“读写权限,在“访问途径中输入数据的访问途径这一项不是必须的,需要填写的,可以参考所使用的OPC效劳器的手册,这里不用填写。最后单击“确定按钮,就生成了一个数据项的数据连接,如图3所示,进而实现了与现场实际信息的连接。align=center图3力控数据连接结果/align在系统运行时,力控和效劳器建立连接,自动完成和OPC效劳器之间的数据交换。4完毕语本文设计的OPC数据访问效劳器符合OPC标准,实现了对数据的实时读写,具有实用价值。总之,有了OPC标准,控制系统软件可以高效、稳定地对硬件设备进展数据存取,系统应用软件之间也可以灵敏地进展信息交互,极大地进步了控制系统的互操纵性和适应性。1OPCFoundation.DataAccessCustomInterfaceStandard,Version2.05A,2002年。2潘爱民COM原理与应用清华大学出版社1999.12