基于OPC技术的控制系统组态毕业设计.docx
《基于OPC技术的控制系统组态毕业设计.docx》由会员分享,可在线阅读,更多相关《基于OPC技术的控制系统组态毕业设计.docx(34页珍藏版)》请在冰豆网上搜索。
![基于OPC技术的控制系统组态毕业设计.docx](https://file1.bdocx.com/fileroot1/2022-11/21/964008db-5691-4a23-9e25-63aee31ad848/964008db-5691-4a23-9e25-63aee31ad8481.gif)
基于OPC技术的控制系统组态毕业设计
摘要
OPC是微软OLE技术在工业控制领域建立的一套符合工业控制要求的通信接口规范。
基于OPC规范,控制软件可以高效、稳定地对硬件设备进行数据存取操作,极大地提高了控制系统的互操作性和适应性。
OPC将现场信号按照统一的标准与控制管理软件无缝连接,将硬件和应用软件有效地分离。
针对当前污水处理控制系统的规模不断扩大、监控设备日益复杂、性能日益提高的状况,传统的监控模式已经制约了污水处理控制系统的发展。
为此构建了一种于0PC技术和CAN现场总线技术的分布式污水处理控制系统体系结构。
实现现场设备和监控软件的无缝集成。
结合着活性污泥法污水处理工艺流程,说明了监控系统的硬件基本结构。
给出了采用VB6.0开发了0PC客户应用软件的标准0PC接口的程序。
在实际应用中该方法取得良好的效果。
关键词:
OPC(OLEforProcessControl);工业控制;通信接口
ABSTRACT
OPCisasetofcommunicationinterfacenormswhichareestablishedonthebasisofMicrosoftOLEtechnologyintheindustrialcontrolfieldandwhichaccordwiththerequirementsofindustrialcontrol.AccordingtotheOPCnorm,control2softwarecanefficientlyandstablycarryonadataaccessoperationtothehard2wareequipmentandgreatlyimprovethemutualoperabilityandadaptabilityofthecontrol2system.TheOPCtechniqueconnectsthespotsignaltothecontrol2managementsoftwareaccordingtotheuniformstandards,andalsoeffectivelyseparatesthehardwarefromtheinternetapplicationsoftware.Aimattheconditionthatcontrolscaleisextendingcontinuously,equipmentsbecomecomplicatedanditsfunctionraiseincreasinglyintheprocessofsewagedisposedmonitorsystem,traditionarymonitormodehaverestrictedthedevelopmentofsewagedisposedmonitorsystem.Adistributedsystemstructureofsewagedisposedmonitorsystembasedon0PCtechnologyandCAN—FieldBustechnologywasconstituted.Seamlessintegrationbetween10caIeequipmentandmonitorsoftwarewascarriedout.Thehardwarestructureofthemonitorsystemwasintroducedassociatedwiththesewagedisposedcraft.TheprogramdevelopedbyVB6.0ofthe0PCinterfaceof0PCclientapplicationsoftwarewasprovided.Theexperimentalresultshowssatisfactoryfeasibilityofthemethod.
Keywords:
OPC(OLEforProcessControl);industrialcontrol;communicationinterface
前言
OPC(OLEforProcessControl)不仅是生产系统中的关键基础技术之一,并且也是被终端用户广泛采用的软件标准技术。
在1980年阿尔温·托夫勒,提出了继农业革命,产业革命之后将出现大的社会体系变革的所谓“第三次浪潮”理论。
即是一次从集中向分散,从体力劳动向脑力劳动,从机械向信息转移的社会变革。
这不仅仅只是实现信息化社会。
由于来自旧社会势力的抵抗和现存技术基板的制约,不可能马上实现这种变革。
但是20年后的今天,在制造业进行的管理过程革新以及IT的飞跃发展正在逐步克服这些障碍。
21世纪将是真正地受到第三次浪潮的冲洗而出现的新地表的世纪。
在这其中,OPC正是在制造业的仪表控制领域内所发生的“第三次浪潮”的主流。
为了实现不同的硬件和软件所构成的计算机之间的数据交换和通信,必须要花费很多时间去开发独自的通信程序。
但是正是由于现在有了数据交换和通信的工业标准,才有可以实现象互联网那样,使不同的计算机相互连接的巨大网络。
所以在开发企业的信息系统时,采用符合工业标准的数据库和客户-服务器接口,可以使有效的精力更多地投入到应用程序本身功能的开发中去。
利用OPC的系统,是由按照应用程序(客户程序)的要求提供数据收集服务的OPC服务器,使用OPC服务器所必需的OPC接口,以及接受服务的OPC应用程序所构成。
OPC服务器是按照各个供应厂商的硬件所开发的,使之可以吸收各个供应厂商硬件和系统的差异,从而实现不依存于硬件的系统构成。
我刚刚接触OPC时,最大的担心是这种新技术使用复杂的微软的COM技术作为基础,这会使opc的普及变得困难,所以本课题试图用一些有关微软VisualBasic或者应用程序的VisualBasic的基础知识去开发opc应用程序,然而这并不要求你懂得COM和OPC的预备知识。
首先这一章解释了什么是OPC和为什么需要OPC,并且讲述了OPC的开发历史和现状。
第1章说明了开发使用OPC数据访问自动化接口应用程序所需的OPC基础知识。
接下来解说了有关OPC的一些重要概念,比如OPC服务器(server),OPC包装(wrapper),OPC标签(item),服务器句柄(handler)等。
最后详细地讲述了OPC对象。
在阅读了本章之后,读者应该可以掌握所有开发OPC应用程序所需的基础知识。
第2章是说明怎样使用微软VisualBasic去开发OPC自动化接口的客户应用程序。
利用本章说明的应用程序,可以实现OPC自动化接口(版本2.0)的同步和异步的生产过程数据读写。
第3章是在第2章的基础上,解释怎样使用微软VisualBasic去开发使用OPC自动化接口的ActiveX控件。
ActiveX控件是一些可以多次被使用的软件组件。
例如当你利用VisualBasic开发去类似设备的控制监视程序时,你可以只开发一个ActiveX控件去监视控制一个设备,然后你可以使用这个ActiveX控件监视控制其他类似设备。
你仅仅需要调试好你的ActiveX控件就可以了,这样一来可以大大减少你的开发成本和开发时间。
第4章是说明怎样使用微软应用程序的VisualBasic去开发OPC自动化接口的客户应用程序和使用OPCActiveX控件的客户应用程序。
使用Excel可以使开发控制系统数据的图形表示或打印应用程序更为简单。
基于OPC技术的控制系统组态
第一章OPC简介
1.OPC摘要
对于早期的计算机系统,为了实现不同的硬件和软件所构成的计算机之间的数据交换和通信,必须要花费很多时间去开发独自的通信程序。
但是正是由于现在有了数据交换和通信的工业标准,才有可以实现象互联网那样,使不同的计算机相互连接的巨大网络。
所以在开发企业的信息系统时,采用符合工业标准的数据库和客户-服务器接口,可以使有效的精力更多地投入到应用程序本身功能的开发中去。
工业制造系统也存在同样的问题。
也就是使由不同的供应商提供的机器设备无须特别的软件开发就可以互相连接。
例如在实现象图1-1那样的多层生产控制信息系统时,从处理设备数据的现场设备层,到进行过程处理的过程控制系统层,以至最上层的生产管理层,建立和普及一个有效的数据交换工业标准乃是当务之急。
在这种情况下,利用微软Windows视窗中的OLE/COM技术实现工业制造系统过程控制中的数据交换标准化,正是OPC(OLEforProcessControl)本来的目的所在。
怎样使用微软应用程序的VisualBasic去开发OPC自动化接口的客户应用程序和使用OPCActiveX控件的客户应用程序。
使用Excel可以使开发控制系统数据的图形表示或打印应用程序更为简单。
利用OPC的系统,是由按照应用程序(客户程序)的要求提供数据收集服务的OPC服务器,使用OPC服务器所必需的OPC接口,以及接受服务的OPC应用程序所构成。
OPC服务器是按照各个供应厂商的硬件所开发的,使之可以吸收各个供应厂商硬件和系统的差异,从而实现不依存于硬件的系统构成。
OPC是为了不同供应厂商的设备和应用程序之间的软件接口标准化,使其间的数据交换更加简单化的目的而提出的。
作为结果,从而可以向用户提供不依靠于特定开发语言和开发环境的可以自由组合使用的过程控制软件组件产品。
到目前为止,硬件的驱动器和与其连接的应用程序之间的接口并没有统一的标准。
图1-1生产控制信息系统的构成
例如,在FA(FactoryAutomation)领域,连接PLC(ProgrammableLogicController)等控制设备和SCADA/HMI软件,需要不同的FA网络系统构成。
根据某调查结果,据说在控制系统软件开发的所需费用中,各种各样机器的应用程序设计占费用的7成,而开发机器设备间的连接接口则占了3成。
此外,在PA(ProcessAutomation)领域,希望把DCS(DistributedControlSystem)中所有的过程数据传送到生产管理系统时,必须按照各个供应厂商的各个机种开发特定的接口(例如,利用C语言DLL连接的DDE服务器或者利用FTP的文本文件传送等)。
例如,在图1-2所示的由4种控制设备和与其连接的监视,趋势图以及表报3种应用程序所构成的系统时,必须花费大量时间去开发分别对应设备A,B,C,D的监视,趋势图以及表报应用程序的接口软件共计12种驱动器。
同时由于系统中共存各种各样的驱动器,也使维护运转环境的稳定性和信赖性更加困难。
图1-2利用驱动器的系统连接
利用OPC的系统,是由按照应用程序(客户程序)的要求提供数据收集服务的OPC服务器,使用OPC服务器所必需的OPC接口,以及接受服务的OPC应用程序所构成。
OPC服务器是按照各个供应厂商的硬件所开发的,使之可以吸收各个供应厂商硬件和系统的差异,从而实现不依存于硬件的系统构成。
同时利用一种叫做Variant的数据型,可以不依存于硬件中固有数据型,按照应用程序要求提供的数据格式。
利用OPC使接口标准化可以构成如图1-3所示的系统。
用户可以不依存于设备A,B,C,D的内部结构及它的供应厂商,选用监视,趋势图以及表报应用程序。
图1-3利用OPC的控制系统构成
早期的OPC标准是由提供工业制造软件的5家公司所组成的OPC特别工作小组所开发的。
Fisher-Rosement,Intellution,RockwellSoftwell,IntuitiveTechnology以及Opto22早在1995年开发了原始的OPC标准,微软同时作为技术顾问给予了支持。
OPC基金会(OPCFoundation,OPC-F),是在1996年9月24日在美国的达拉斯举行了第一次理事会,并在同年10月7日在美国的芝加哥举行了第一次全体大会上宣告正式成立的。
之后为了普及和进一步改进于1996年8月完成的OPC数据访问标准版本1.0,开始了全球范围的活动。
现在的OPC基金会的理事会是由Fisher-Rosement,Honeywell,Intellution,RockwellSoftware,NationalInstrument以及欧洲代表的Siements和远东代表的东芝所组成。
在日本为响应以美国为中心的国际标准活动,由11家公司作为发起人,于1996年6月开始基金会成立的准备活动,并于1996年10月17日正式成立了日本OPC协会(OPC-J)。
几乎与其同时欧洲OPC协会(OPC-E)也相继成立。
在中国也于由5家公司作为发起人于2001年12月正式成立了中国OPC促进会(OPC-C)。
OPC基金会从成立开始会员逐年增加,到目前为止在全球范围内已有近300家公司加入了这个国际标准组织。
同时由控制设备厂商和控制软件供应商提供的OPC产品也日益增加,目前已有600种以上的OPC服务器产品和OPC应用程序产品出现在由OPC基金会发行的OPC产品目录上。
第二章使用visualbasic开发OPC应用程序
1建立一个visualbasic工程
利用VisualBasic开发OPC应用程序时,实现OPC自动化接口的OPC包装DLL是必须的。
这个OPC包装DLL一般应该是由OPC服务器的供应商提供的。
这个OPC包装DLL的名称可能随供应商有所不同,具体信息请向你的OPC服务器供应商查询。
首先启动VisualBasic,新建一个VisualBasic的工程。
请选择[标准EXE]作为新建工程的类型(如图2-1)
图2-1
设置OPC包装DLL:
因为在新建的VisualBasic工程里OPC包装DLL还没有被注册,必须用下述方法对OPC包装DLL进行注册。
设置方法:
1)从VisualBasic菜单里选择[工程(P)]-[引用(N)]。
2)在[可用的引用(A)]的一览表示中,请选择对应OPC包装DLL的文件名。
这里,
我们选择[OPCAutomation2.0]。
(如图2-2)
图2-2
设置了对OPC包装DLL的引用,我们就可以使用OPC自动化对象了。
如果希望查看在工程内可以使用的COM组件的时候,可以使用对象浏览器。
选择VisualBasic菜单的[视图(V)]-[对象浏览器(O)],可以显示对象浏览器的视窗。
如果已经设置了对OPC包装的引用,那么对象浏览器左上角的列表框中应该已经包括了[OPCAutomation]的选项(图2-3)。
图2-3
2建立一个OPC对象
在VisualBasic里,是以对象的单位对OPC服务器进行访问。
OPC自动化接口是由以下四种对象所定义。
分别是OPC服务器;OPC组(OPC组集合);OPC标签(OPC标签集合);OPC浏览器。
这里只说明OPC服务器,OPC组以及OPC标签对象的使用方法。
具体的来说,先连接一个特定的OPC服务器,然后建立OPC组,最后添加OPC标签。
2.1变量声明
参考图2-4所示的示范代码,先对OPC对象变量进行声明。
变量的数据类型应该
指定为对象型。
这些对象变量最好在窗体代码的(通用)部分声明。
因为在(通用)部分声明的变量,可以在窗体的任何方法的代码内引用。
除了变量的声明以外,我们还推荐指定下述的VB选项。
1)和C以及C++等编程语言相比,VisualBasic可以很简单地处理变量,即使不进行变量声明也可以使用变量,但是这也正是可能产生程序缺陷的原因。
再有,如果进行了变量的声明,由于可以在程序编译时对对象进行事前结合,有助于提高运转性能。
所以我们建议在模块代码的最初的部分,加上“OptionExplicit”语句,表示模块里的所有变量需要显式的声明。
这样进行程序编译时将对所有变量名进行检查,如果出现未声明的变量名将会以编译错误作出提示。
2)因为再有OPC自动化接口的数组的索引要求必须从1开始開始,为了避免错误建议在代码的最初加上“OptionBase1”语句。
图2-4
2.2连接OPC服务器和建立OPC组
下面说明怎样连接OPC服务器和建立OPC组。
考虑到代码的可反复使用性,这里采用子程序进行编程。
这里用“New”关键词生成OPC服务器的对象,然后调用OPC服务器对象的“Connect”方法,和OPC服务器连接。
在连接远程服务器的时候,需要指定作为选用参数的远程计算机名。
2.3添加OPC标签
对OPC服务器进行访问前,必须先在OPC组里添加要访问的OPC标签。
这里添加OPC标签的标识符和数目是固定的,但是实际的OPC应用程序往往要按
照用户的指定或读取组态文件取得和处理需要添加的OPC标签的一览。
2.4断开OPC服务器
连接着OPC服务器的OPC应用程序,在退出前必须断开和OPC服务器的连接(表2-4)。
因为OPC服务器并不知道OPC应用程序的退出,如果不先断开连接,那么OPC服务器使用的计算机资源就不会被释放。
如果这样的问题反复发生,久而久之,连续运转的自动控制系统可能会使计算机资源渐渐枯竭从而发生严重问题。
3同步数据读写
到此为止,我们已经基本说明了OPC对象。
现在,让我们制作一个实际的OPC数据访问应用程序。
首先让我们先说明同步方式的数据访问。
3.1窗体设计
让我们制作具有如图2-5所示窗体的OPC应用程序。
这个程序读取8点的数据,并用棒图表示读取的数据。
棒图的更新周期为1秒,使用定时器以1秒的周期对OPC服务器进行同步数据读取。
当文字框内按下[Enter]键时,对OPC服务器进行同步数据写入。
再有,我们使用的演示用OPC服务器,OPC标签一旦被写入后就停止数据仿真,数据被固定在写入值不再变化。
图2-5
3.2命令按钮的事件处理
当按下在窗体上的命令按钮的事件发生时,通过调用在2.2节说明的各种方法对发生的事件进行处理。
为了在中止应用程序时断开和OPC服务器的连接,在窗体的Unload事件处理中调用了断开OPC服务器连接的子程序。
3.3同步数据读取
在本示范程序中是利用定时器的定时器事件进行更新数据的显示。
这时所有的数据是采用同步方式对OPC服务器进行读取的。
表2-10是定时器的事件处理以及同步读取处理的代码。
定时器事件处理内调用的“SyncRead”子程序如表2-11所示。
再有在读取前为了避免错误发生,对OPC组和OPC标签数进行检查。
3.4同步数据写入
在本示范程序中是利用文字框的按键事件对OPC服务器进行写入的。
当某文字框内回车键按下时,则对其对应的OPC标签进行写入。
在文字框的按键事件处理中,首先先对按下的键进行判别,如果是回车键则进行同步写入。
表2-12是按键事件处理以及同步写入处理的代码。
按键事件处理内调用的“SyncWrite”子程序如表2-13所示。
3.5运行结果
本示范程序的OPC连接处理和OPC标签添加处理,只对应既定的OPC服务器和既定的OPC标签。
在制作实际的OPC应用程序时,往往需要建立另外的视窗让用户可以选择OPC服务器与OPC标签。
再有,对于动作几乎相同的图象,标签以及文字框是作为控件数组处理的,为了使记述更为简单。
实际的运行结果如图2-6所示。
图2-6
第三章使用VisualBasic开发OPCActiveX控件
1.建立一个ActiveX控件
在使用VB开发OPCActiveX控件时,首先应该新建一个具有ActiveX控件雏形的VB工程。
从VB的菜单选择[文件(F)]-[新建工程(N)],则显示图3-1的画面。
图3-1
请在[新建工程]对话框里选择[ActiveX控件]图标,然后按下[确定],于是生成了如图3-2的画面所示的一个新的ActiveX控件雏形。
这样已经自动生成了一个有UserControl1的ActiveX控件。
从VB的菜单选择[运行(R)]-[启动(S)],可以用InternetExplore(以下简称为IE)显示这个新建的ActiveX控件。
图3-2
因为新建的ActiveX控件工程的默认名称是“Project1”,下面把这个名称改变为“OPCTrend”。
从VB菜单选择[工程(P)]-[Project1属性(E)...]。
请在表示的[Project1–工程属性]的对话框里改变以下的项目(图3-3)。
图3-3
[工程描述]的定义将成为以后在[工程(P)]-[部件(O)]的一览中表示的部件名称。
下面先将用户控件的属性视窗的[(名称)]属性改变为“TrendGraph”(图3-4)。
这个名称将成为建成OPCActiveX控件的类名。
例如用建成的OPCActiveX控件配置在标准EXE文件的窗体时,配置的OPCActiveX控件的默认名称将是“TrendGraphX”。
这里X是从1,2,3...的建成顺序号,在应用程序中可使用这个名称引用配置的OPCActiveX控件对象。
图3-4
接着把用户控件的[BackColor]属性设置为“&H00000000&”(黒)。
再在这个用户控件上添加一个线(Line)控件对象,并将线的[(名称)]属性设置为“linHorizon”,并将其[BorderColor]属性设置为“&HFFFFFFFF&”(白)。
于是这个用户控件就变成图3-5的样子。
图3-5
必需的引用和声明:
我们制作的OPCActiveX控件需要使用OPC自动化包装DLL,但是新建的VB工程并没有注册这个包装DLL。
首先需要在VB的引用设置里选择OPC自动化包装DLL,并在用户控件的代码部分里对OPC自动化对象进行声明。
OPC自动化包装的引用:
从VB菜单选择[工程(P)]-[引用(N)...],然后选择[OPCAutomation2.0](图3-6)。
图3-6
OPC对象和WindowsAPI的声明:
在OPCActiveX控件的代码框内最初部分需要进行OPC对象的声明和WindowsAPI的声明(表3-1),由此在OPCActiveX控件内就可以引用OPC自动化对象,并且在图形上表示数据时可以调用Windows的定时器API函数。
2.添加控件的属性,方法和事件
这里说明怎样在VB工程里添加OPCActiveX控件可以使用的过程(属性,方法和事件)。
单击[确认]按钮,则生成如图3-7所示的方法过程的雏形。
图3-7
在代码视窗打开的状态下选择[工具(T)]-[添加过程(P)...],则显示[添加过程]视窗图3-8.
图3-8
单击[确认]按钮,则生成如图3-9所示的属性过程的雏形。
图3-9
上面的“GetRangeX()”属性过程是读取属性值用的,而下面的“LetRangeX”属性过程则是设置属性值用的。
新生成的过程的数据类型被自动声明为“AsVariant”,但是如果考虑到处理速度,请指定具体的数据类型而不使用万能的“Variant”类型。
这里按照表3-7将数据类型变成“Double”型。
建立属性页:
下面我们要制作OPCActivX控件的属性页,用以设置以上我们添加的各种属性。
请从VB菜单选择[工程(P)]-[添加属性页(P)],并选择[属性页]的图标,再按下[打开(O)]的命令按钮(图3-10)。
图3-10
在新建的属性页,请配置三个标签和三个文件框(图3-11)。
图3-11
3.建立属性