冷轧清洗线控制系统设计用C++和OPC设计二级控制系Word格式.docx
- 文档编号:16940046
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:52
- 大小:243.76KB
冷轧清洗线控制系统设计用C++和OPC设计二级控制系Word格式.docx
《冷轧清洗线控制系统设计用C++和OPC设计二级控制系Word格式.docx》由会员分享,可在线阅读,更多相关《冷轧清洗线控制系统设计用C++和OPC设计二级控制系Word格式.docx(52页珍藏版)》请在冰豆网上搜索。
OPCisanemergingstandardintheprocesscontrolindustry,basedonMicrosoftCOMandDCOMtechnology.Itincludesthewholestandardcollectionwithinterfaceandmethodusedintheprocesscontrolautomation.ThispaperintroducesthebackgroundofOPCtechnology,aswellasitsmaincharacteristicandthedevelopmentcondition,andanalyzesitscoreCOMandDCOMtechnology.ThenitintroducestheOPCdataaccessstandardandaccessmethodwithemphasis,theinterfaceandthecommunicationbetweenOPCserverobjectandclientobject.Intheend,itintroducestheapplicationofOPCtechnologyinthecoldrollingcleaningline,theconnectioninthecoldrollingcleaninglinebetweenOPCserverandthefielddeviceandthatbetweenOPCserverandtheclientside.
Keywords:
OPC,COM,clientside
——用C++和OPC设计二级控制系统
1绪论
1.1研究背景
现在,工业自动化系统的应用已经非常普及,DCS(DistributedControlSystem,集散控制系统)得到了广泛应用,现场总线技术正在逐步完善、成熟起来。
但是目前工业自动化系统绝大多数是封闭的系统,缺乏统一、标准的开放式接口。
不同厂家的产品如果要集成在一起,必须为它们开发专用的接口。
随着工业自动化系统功能要求越来越复杂,完全用一个厂家的产品来构成整个系统是很困难的。
不同厂家的产品之间接口的复杂性限制了用户的选择,不能根据系统的要求选择最佳的系统集成方案。
同时,软件在自动化领域内使用的重要性与日俱增。
无论项目是否涉及到操作、可视化、数据存档或控制,向纯粹的、基于PC的软件解决方案的发展趋势是不可阻挡的。
这些软件解决方案不再是开发单个的模块,而是由专用的软件组件组成。
采用可重复使用的软件组件以及利用这些软件组件所具有的柔性构成整个系统,成为发展的必然趋势,因而通信接口不兼容的问题急需解决。
OPC(OLEforProcessControl,用于过程控制的OLE)技术的出现提供了解决方法。
当现场设备、应用软件都具备标准的OPC接口时,便可集成来自不同数据源的数据,使运行在不用平台上、用不同语言编写的各种应用软件顺利集成。
1.2OPC的基础知识
1.2.1OPC产生的背景
传统的SCADA(监控与数据采集系统)开发中出现的一个主要问题是软件的重复开发,软件不能够重用,资源不能共享,造成大量人力与物力资源的浪费。
随着计算机软件的发展,这种情况有所改观,高级语言中库函数的采用,实现了一定程度上资源的共享,尤其是面向对象的方法的应用,使得我们可以利用面向对象的继承等方法大量重用源代码。
但这些重用只是对源代码级的重用而不是对可执行文件级的重用,对每一类库都要重新编译,所以并没有真正实现资源共享,并且对某个模块中某个类库的修改将“触一发而动全身”,引起所有引用该类库的模块的修改,因此非常难以实现某个模块的升级。
同时,为一种语言开发的类库以及函数库都不能够为其他语言所用,也大大限制了软件的重用。
一般实时监控系统为分布式的结构,实现了人机接口、通信、数据处理等功能在网络上的分布,同时将一个系统划分为各个子系统,降低了系统的复杂程度,改善了系统性能,便于整个系统的开发,减少了开发周期与维护费用。
但由于系统各个计算机的通信协议依赖于某个厂家,没有形成统一的标准,不同厂家之间的软件与硬件的集成难于实现。
因此也没有真正实现不同厂家的软件共享。
从更广泛的意义上看,新的过程控制信息体系的各层都有着各自的要求,他们都要求信息的一致性。
现场控制层:
智能现场设备的出现,可以提供过去不能提供的大量丰富的有关此现场设备的信息。
所有这些信息必须以一致的方式提供给客户应用程序。
过程管理层:
DCS(集散控制系统)和SCADA必须以统一的方式为操作员和工程师等决策者提供数据。
经营决策层:
对生产过程信息的综合,有助于企业最优生产,节省财政开支。
而向客户应用程序以统一的方式提供信息,可最小化企业在信息综合上的精力。
为了有效地完成信息集成,关键是制订一种集中于数据访问而不是数据类型的开放的、有效的通信标准。
定义OPC的目的就是为应用程序访问工厂前台提供共同的方法,允许兼容的应用程序无缝的访问生产环境中的数据。
在传统的控制系统中,智能设备之间及智能设备与控制系统软件之间的信息共享是通过驱动程序来实现的。
任何一种HMI(HumanMachineInterface,人机接口)等上位监控软件或其它应用软件(如趋势图软件、数据报表与分析等)在使用某种硬件设备时都需要开发专用的驱动程序,如图1.1所示[1]。
图1.1传统控制系统结构
为了解决上述问题,硬件制造商们一直试图开发出一种可以被任何客户使用的超级“I/O驱动”程序。
但是由于客户协议的不一致,这项工作至今没有取得成功,OPC和现场总线标准的制定正好为上述问题的解决开辟了新的道路。
采用OPC标准后,针对硬件的驱动程序不再由软件开发商开发,而是由硬件开发商根据硬件的特征提供统一的OPC接口程序。
由于硬件开发商对自己的硬件特征了如指掌,从而能够最大限度地挖掘硬件的潜力,提高驱动程序的性能。
基于OPC标准的数据访问方式如图1.2所示。
采用OPC标准后,由硬件开发商提供统一的OPC接口程序,从而避免了开发重复性,使开发费用大大降低。
OPC规范采用客户/服务器模型,其实质是在硬件供应商和软件供应商之间建立一套“游戏规则”,只要遵循这套规则,数据交互对两者来说都是透明的。
硬件供应商无需考虑应用程序的多种需求和传输协议,软件开发商也无需了解硬件的实质和操作过程。
这样可以灵活而有效地在应用和过程控制设备之间读写数据。
图1.2采用OPC后控制系统结构
1.2.2OPC的历史
OPC(OLEforProcessControl——用于过程控制的OLE)是一个工业标准,它是许多世界领先的自动化和软、硬件公司与微软公司合作的结晶。
这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法。
管理该标准的组织是OPC基金会。
该基金会的会员单位在世界范围内超过220个,包括了世界上几乎全部的控制系统、仪器仪表和过程控制系统的主要供应商。
OPC基金会的先驱(由Fisher-Rosemount、Rockwell软件公司、Opto22、Intellution和IntuitiveTechnology公司组成的“特别工作组”)在经过一年工作后,开发出一个基本的、可运行的OPC规范。
随着1997年2月Microsoft公司推出Windows95支持的DCOM技术,1997年9月新成立的OPCFoundation对OPC规范进行修改,增加了数据访问等一些标准,OPC规范得到了进一步的完善。
OPC是基于Microsoft公司的DistributedinterNetApplication(DNA)构架和ComponentObjectModel(COM)技术的,根据易于扩展性而设计的。
OPC规范定义了一个工业标准接口,这个标准使得COM技术适用于过程控制和制造自动化等应用领域。
OPC是以OLE/COM机制作为应用程序的通讯标准。
OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。
OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从底层的开发中脱离出来[2]。
OPC技术是OPC基金会组织制定的工业控制软件互操作性规范,也是微软为了把WINDOWS应用于控制系统和控制界共同推出的一项技术。
它以微软的COM/DCOM(
组件对象模型和分布式组件对象模型)技术为基础,为工业控制软件定义了一套标准的对象、接口和属性,通过这些对象接口,应用软件之间能够无缝地集成在一起,实现了应用程序之间数据交换方式的标准化,极大的提高了自动化系统,现场设备系统,商业办公系统之间的互操作性。
OPC接口既可以用于应用程序的最低级,即通过该接口将现场实时数据采集到DCS或SCADA中来,又可用于应用程序的中级环节,即通过该接口将数据从DCS或SCADA系统采集到上位机应用程序中来,还可将OPC应用于网络计算机来采集数据,设计一个OPC服务器,允许客户应用程序从该服务器或网上运行OPC服务器的其它节点计算机上采集数据。
总之,OPC应用不应该局限于应用程序与现场设备的接口,应该认为它是一种Windows应用程序相互交换数据的通用规范。
1.2.3OPC的现状和发展
OPC技术的发展,源于OPC基金会及其300多家公司成员的共同努力。
世界领先的工业自动化软硬件厂商,作为OPC基金会的成员,为OPC技术的发展做出着重要的贡献。
目前现存的和正在开发的OPC标准如表1.1所示。
表1.1OPC标准
标准
最新版本
内容
OPCDataAccess
OPCAlarms&
Events
3.00
1.10
数据访问标准
报警和事件标准
OPCBatch
2.00
批处理标准
OPCDataExchange
1.00
服务器间数据交换标准
OPCHistoricalDataAccess
1.20
历史数据访问标准
OPCSecurity
OPCXML-DA
1.01
安全性标准
XML数据访问标准
OPCCommands
命令标准
OPCComplexData
复杂数据访问标准
2OPC技术的基础—COM技术
2.1COM技术简介
2.1.1COM概念
COM(ComponentObjectModel,组件对象模型)是由Microsoft提出的组件标准,是OLE、ActiveX、DCOM技术的基础,它不仅定义了组件程序之间进行交互的标准,并且也提供了组件程序运行所需的环境。
该模型的定义是为了实现语言无关、厂商无关、位置透明以及减少版本问题,从而使得来自不同厂商的、不同语言编写和运行在不同平台上的COM对象能够彼此协调地运行,共同实现某一任务[3]。
2.1.2COM对象
COM提供的是面向对象的组件模型,COM组件提供给客户的是以对象形式封装起来的实体。
客户程序与COM组件程序进行交互的实体是COM对象,它并不关心组件模块的名称和位置(位置透明性),但必须知道自己在与哪个COM对象交互。
类似于C++语言中类(Class)的概念,COM对象也包含属性(也称状态)和方法(也称操作),对象的状态反映了对象的存在,也是区别于其它对象的要素;
而对象所提供的方法就是对象提供给外界的接口,客户必须通过接口才能获得对象的服务。
对于COM对象来说,接口是它与外界进行交互的唯一途径,因此,封装特性是COM对象的基本特征。
COM对象不同于像C++等面向对象语言中对象的概念,COM对象是建立在二进制可执行代码级的基础上,而C++等语言中的对象是建立在源代码级基础上的,因此COM对象是语言无关的,这一特性使用不同编程语言开发组件对象进行成为可能。
COM对象也具有可重用性,它表现在COM对象的包容和聚合,一个对象可以完全使用另一个对象的所有功能。
并且COM对象的重用是动态的,即被包容或被聚合对象的版本更新或功能增强后,包容或聚合对象根本不需要重新编译或者重新设置。
2.2COM接口——IUnknown接口
COM定义的每一个接口都必须从IUnknown继承过来,其原因在于IUnknown接口提供了两个非常重要的特性:
生存期控制和接口查询。
客户程序只能通过接口与COM对象进行通信,虽然客户程序可以不管对象内部的实现细节,但它要控制对象的存在与否。
如果客户还要继续对对象进行操作,则它必须保证对象能一直存在于内存中;
如果客户对对象的操作已经完成,以后也不再需要该对象了则它必须及时地把对象释放掉,以提高资源的利用率。
IUnknown引入了“引用计数”方法,可以有效地控制对象的生存周期。
IUnknown包含了三个成员函数:
QueryInterface、AddRef、Release。
函数QueryInterface用于供客户端查询对象是否支持某个特定的接口,函数AddRef和Release用于完成对象的生存期控制。
2.3COM扩展——分布式COM(DCOM)
DCOM是COM的扩展,它可以支持不同计算机上组件对象与客户程序之间或者组件对象之间的相互通信,这些计算机可以在局域网内也可以在广域网上,甚至通过Internet进行连接。
对于客户程序而言,组件程序所处的位置是透明的,我们不必编写任何处理远程调用的代码,因此,DCOM也是COM的无缝扩展。
由于COM是一项应用广泛、成熟的组件技术,所以我们可以充分利用基于COM的应用、组件、开发工具以及知识,并把它们转移到分布式计算的应用领域中来。
因为DCOM已经为我们处理了底层网络协议的所有细节,所以我们可把重点放在应用的业务逻辑上,而不必再为底层处理费时费力。
典型的分布式应用系统是,在各个服务器上运行一些DCOM组件对象,客户程序调用这些组件对象,由它们完成实际的功能操作,比如访问数据库或进行一些复杂的数据处理,客户程序只负责接受用户的输入并把服务器的响应结果反馈给用户。
3OPC技术介绍
3.1基于COM技术的OPC
OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来[4]。
微软公司为了提供商业应用程序和特定用途的软件包间的相互连接性,开发了所谓的组件对象模型(ComponentObjectModel,COM)技术。
COM是一种软件组件间相互数据交换的有效方法。
COM技术具有以下特长[5]:
1、所谓COM并不是一种计算机语言,而是于运行的机器(只要互相连接),机器的操作系统(只要支持COM),以及软件开发的语言无关,任意的两个软件组件之间都可以相互通信的二进制和网络的标准。
2、COM客户程序和COM服务器可以用完全不同的语言开发。
这样使利用C++,VisualBasic,以及Excel中作为宏使用的应用程序的VisualBasic等不同语言所开发的程序可以相互连接。
3、作为COM技术扩展的分布式COM(DistributedComponentObjectModel,分布式COM)技术,更可以使COM组件分布在不同的计算机上,并通过网络互相连接并互相交换数据。
所以对于COM客户程序来说,同样像连接本地计算机上的COM服务器一样,去连接远程计算机上的COM服务器,当然通信的速度不太一样,但是重要的是不必对服务器程序进行修正就可以在网络上自由构成(图3.1)。
COM技术的出现使简单地实现控制设备和控制管理系统之间的数据交换提供了技术基础。
但是如果不提供一个工业标准化的COM接口,各个控制设备厂家开发的COM组件之间的相互连接仍然是不可能的。
这样的工业标准的提供,乃是OPC的目的所在。
总而言之,OPC是作为工业标准定义的特殊的COM接口。
OPC是以提供移植容易并具有可以满足大多数设备厂家要求的灵活性和高水平的机能性为目标而开发的,对于制造厂商和用户来说,分别可以从OPC得到以下的实惠:
1、设备开发者:
可以使设备驱动器开发的单一化成为可能。
2、应用程序软件开发者:
可以使用通用的开发工具。
不必开发特别的接口,使得
图3.1利用COM和分布式COM达成的组件间的互相连接
设备接口的开发更为简单易行。
3、用户:
可以选用各种各样的商业软件包,使得系统构成的成本大为降低。
同时可以更加容易地实现由不同供应厂商提供的设备所混合构成的工业控制系统。
随着基于OPC标准的控制组件的推广和普及,不仅使控制系统的增设和组件的置换更加简单,而且使过程数据的访问也变得容易。
3.2OPC数据访问规范
OPC规范定义了两套接口标准,包括自动化标准(AutomationInterfaceStandard)和自定义接口标准(CustomInterfaceStandard)。
自动化接口是为了向VB之类的脚本语言编写的客户程序提供服务,而自定义接口适用于C和C++应用程序,它比自动化接口更高效,功能更强大(图3.2)[6]。
OPC数据访问规范描述了由OPC服务器实现的OPC/COM对象及相应接口。
规范指出一个OPC客户程序可以连接到一个或多个由不同厂家提供的OPC服务器程序,而多个OPC客户程序也可以连接到一个OPC服务器程序上,服务器所要访问的设备、数据源、数据名及服务器程序如何进行数据的访问由厂商提供的代码决定。
其OPC客户与OPC服务器的关系见图3.3,这是COM中典型的客户/服务器模型。
3.3OPC数据访问服务器的对象
OPC数据访问服务器在COM基础上建立了符合OPC规范的COM接口和对象[7]。
图3.2OPC服务器与不同类型的OPC客户连接
图3.3OPC客户与OPC服务器的关系
OPC逻辑对象模型包括三类对象:
OPC服务器对象、OPC组对象、OPC项对象,每类对象都包括一系列接口。
OPC组对象包含在OPC服务器对象中,并由客户端定义和维护,每个服务器可以包含多个组对象。
OPC组对象可以增加或删除OPC项对象,OPC项对象包含在OPC组对象中,一个组对象可以包含多个项对象,同样由客户端定义和维护。
OPC客户端与OPC服务器连接并通过接口与OPC服务器通信,OPC服务器对象向OPC客户端提供创建和操作OPC组对象的功能。
这些组允许OPC客户对它们要访问的数据进行组织。
一组可以作为一个单元被激活或失活。
一组也可以提供一种方法允许客户“订阅(Subscription)”项目列表,以便在数据项变化时它能得到通知。
每个数据项对象包含一个ID标识(即用字符串表示的数据位号)、一个数值、一个质量值(表示数据的可信度)、一个时间标签(表示最新数据变动时间)。
对数据项可进行读写操作并可根据需要使其激活或失活。
数据项不能被OPC客户作为对象进行操作,所有对OPC数据项的操作都是通过组对象来进行的。
OPC数据访问服务器所定义的三个对象中只有两个标准的COM对象,即OPCServer和OPCGroup对象。
OPCServer对象是客户端与服务器交互的首要对象。
客户端访问OPCServer对象的接口函数组织管理OPCGroup对象。
OPCGroup对象用于组织管理服务器内部的实时数据信息。
在OPC规范中,使用项对象描述实时数据。
项对象是非COM对象,也是客户端不可见的对象。
OPCServer对象功能主要表现为:
创建和管理OPCGroup对象;
管理服务器内部的状态信息;
浏览服务器内部地址空间的数据组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 冷轧 清洗 控制系统 设计 C+ OPC 二级 控制
![提示](https://static.bdocx.com/images/bang_tan.gif)