DDE与OPC技术在工业自动化系统中的应用.doc_第1页
DDE与OPC技术在工业自动化系统中的应用.doc_第2页
DDE与OPC技术在工业自动化系统中的应用.doc_第3页
DDE与OPC技术在工业自动化系统中的应用.doc_第4页
DDE与OPC技术在工业自动化系统中的应用.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DDE与OPC技术在工业自动化系统中的应用1引言随着工业生产的不断发展以及自动化系统集成度的不断提高,工业自动化系统软件取得了长足的发展与进步。然而,工业系统中设备数量的不断增加和现场信息交互共享能力要求的不断提高,传统的智能设备之间及智能设备与控制系统之间采用专门驱动程序实现信息共享的通讯方式已不能满足工业控制系统的发展需要。因此,为了能够解决工业系统硬件设备的升级改变为软件系统带来的不便,更好的实现不同设备厂家硬件产品的集成互连,增强系统的稳定性与可靠性,工业自动化软件接口的标准化、统一化成为工业控制领域必须面临的一个问题。为了能够使得自动化软件的开发具有统一的接口标准,dde(动态数据交换:dynamicdataexchan-ge)、opc(基于过程控制的链接与嵌入:oleforprocesscontrol)技术的出现和应用为不同的自动化程序系统之间能够实现简单交互、无缝互连做出了巨大的贡献。 2dde与opc技术的工作机制2.1dde技术的工作机制dde是为在同一台计算机或不同计算机上运行的程序提供动态数据交换,最早由microsoft公司提出的。动态数据交换(dde)技术由于其具有实时性好、网络通信连接实现方便等特点,在控制软件与信息网络集成中得到了广泛应用。动态数据交换基于windows消息机制,各应用程序间通过传递消息进行对话交换信息。windowsdde消息传递采用client/server模式,客户(client)是数据的请求和接受者,而服务器(server)是数据的提供者,两者之间通过请求、应答、传输三个步骤来完成数据的传送。dde协议使用服务(service)、主题(topic)和数据项(item)三级命名来标识dde所传递的数据单元。一般情况下,服务(service)就是应用程序的文件名,主题是对服务器有意义的信息单元。每次dde客户与服务程序之间的对话都是先由客户启动的,所以在每次客户启动之前,dde服务器应当首先投入运行。当客户程序需要向服务器程序请求数据时,客户程序发送一条wm-dde-initiate消息给当前运行的所有windows应用程序,这条消息不但包含了它所需要的服务器名(service)和主题名(topic),而且指明了它所希望的数据类型,收到wm-dde-initiate消息的应用程序通过判别服务器名和会话主题决定是否应答,一旦dde服务器响应了这条被传播的消息,dde会话就开始了。dde的工作方式有冷连接(coollink)、温连接(warmlink)和热连接(hotlink)等3种。在冷连接方式下,当server中的数据发生变化后不主动通知client,但client可以随时从server读写数据;在温连接方式下,当server中的数据发生变化后马上通知client,client得到通知后将数据取回;在热连接方式下,当server中的数据发生变化后马上通知client,同时将变化的数据直接送给client。dde的网络形式称为netdde,它包含了dde的全部特征,是动态数据交换(dde)的扩充,可以在跨越网络的计算机之间使用。采用netdde后,两个或更多网络上的应用能够通过dde共享来建立网络上不同工作站之间的连接,从而实现站站之间的动态信息共享。2.2opc技术的工作机制在opc技术出现以前,dde技术是绝大多数控制系统都支持和采用的数据交换方式。但是,由于dde是基于windows信息传递而建立的技术,因此,当通信量较大时,就会出现数据刷新速度慢、安全性管理机制差、可靠性能低等现象,从而就有可能致使dde客户程序在较长时间内得不到回应。和dde技术相比,基于com和dcom技术的opc技术具有数据传送性能高、安全性管理性能好、开发成本低等特点。最初阶段的opc规范是由opc基金会的先驱fisher-rosemount、rockwell、opto22、intellution、intuitivetechnology公司于1996年8月发布的,目前opc基金会成员在全球已超过300多个,其中包括世界上几乎所有主要的控制系统、仪器仪表、过程控制系统生产厂家。opc以ole/com/dcom技术为基础,是ole(objectlinkingandembedding)forprocesscontrol的缩写,是微软公司的对象链接和嵌入技术在过程控制方面的应用。与dde一样,opc也采用client/server模式。opc服务器是数据源的提供者,数据源可以是plc、dcs、条形码读取器等控制设备,随控制系统的构成不同,作为数据源的opc服务器既可以是和opc应用程序在同一台计算机上运行的本地opc服务器,也可以是在另外计算机上运行的远程opc服务器。opc客户是数据的使用者,它按照opc接口规范从opc服务器获取所需要的数据。opc服务器主要包括三部分:服务器(server)、组(group)和数据项(item)。服务器对象保存服务器和服务器作为opc组对象容器的所有信息。opc组对象包括公共组和局部组(私有组)两种,公共组由多个客户共享,局部组只隶属于一个opc客户。一个组可能代表一个特殊设备的数据项,opc客户可以通过组对象来读写数据,并可以设定opc服务器应该提供给opcclient数据的更新速率。opc数据项是读写数据的最小逻辑单位(在实际应用中,可能是物理设备的寄存器或寄存器的某一位),其数据值以variant形式表示,每个数据项包括值(value)、品质(quality)和时间戳(timestamp)3个变量。在一个组对象中,opc客户可以加入多个opc数据项。opc客户与opc服务器的接口有自定义接口(custominterface)和自动化接口(automationinterface)两种形式。自定义接口是一组com接口,主要用于采用c+语言的应用程序开发;自动化接口是自动化的ole接口,主要用于采用vb,delphi等基于脚本编程语言的应用程序开发。对于客户端应用程序的开发,采用自定义接口的方式运行效率高,但开发难度较大;采用自动化接口的方式运行效率低,但开发简单。这两种接口与opc服务器的通信方式可用1图所示。图1自定义接口和自动化接口与opc服务器通信方式示意图对于分布式计算机上的opc客户程序的开发,opc标准采用dcom技术实现服务器和客户程序的通讯。opc的数据访问主要有同步数据访问和异步数据访问两种方式。同步数据访问时,opc服务器在将按照opc应用程序要求的数据返回之前,opc应用程序一直处于等待状态,也就是说,同步方式的数据访问在要求的动作没有完成前不能执行任何opc应用程序侧的处理。与之相比,异步方式的数据访问在对opc服务器提出数据访问要求后,立即返回到opc应用程序侧的主处理程序中,opc服务器完成数据访问时通知opc应用程序,opc应用程序从而得到数据访问结果。当opc应用程序采用自动化接口访问opc服务器时,同步和异步数据操作分别由syncread、syncwrite和asyncread、asyncwrite四个opc组对象的方法函数来实现。3dde与opc技术应用当前,dde、opc技术在许多世界著名的自动化厂家的i/o通讯服务器、scada等自动化软件中都得到了体现。例如wonderware公司的daserver和intouch、siemens公司的simaticnet和wincc、rockwell-ab公司的rslinx和rsview32等。其中daserver和rslinx既可作为opcserver,又可作为ddeserver;wincc和rsview32则既可以作为opcclient,又可作为ddeclient。同时,由于各家的软件接口都合乎dde、opc接口规范标准,所以,不同厂家的i/o通讯、scada等软件产品也可以很方便的实现互连。下面分别以wonderware公司的intouch与daserver(dassidirect)、intouch与rockwell-ab公司的rslinx进行dde通讯,siemens公司的wincc与simaticnet、wincc与rslinx进行opc通讯的方法为例说明dde、opc技术在工业自动化软件的应用情况。dassidirect是wonderware公司开发用于对siemenss7200/300/400系列plc进行以太网数据访问的服务器软件,支持dde、opc、suitlink、fastdde等通讯方式。当客户程序通讯接口与dassidirect的连接采用dde方式时,dassidirect的数据访问采用了节点名(nodename)、应用程序名(applicationname,此处为dassidirect)、主题名(topicname)和项目名(itemname)的层次结构。而当通讯接口以opc方式与dassidirect连接时,dassidirect的数据访问则采用了节点名(nodename)、服务器名(programname,此处为archestra.dassidirect.1)、组名(groupname)、设备组名(devicegroup)、连接名(linkname)和项目名(itemname)的层次结构。各层次项可在dassidirect软件界面中配置实现。工程应用时,需要在dassidirect管理界面smcarchestra.dassidirect.1目录下根据需要依次添加接口类型(tcp/ip)、接口处理器类型(s7plc),并进行必要的参数设置,然后还要为devicegroups添加不同的topic以方便对不同变量的归类管理。intouch标签变量对dassidirect的访问是通过“访问名”的设置来实现的,所以intouch中“访问名”的设置必须和dassidirect软件中的设置一一对应,例如,“访问名”中“应用程序名”应设置为dassidirect,“访问名”中“主题名”的设置应和dassidirect中所添加的topic名称完全一致。此外,intouch标签变量“项目名”的填写也必须遵从dassidirect中itemname的定义形式,例如对s7plc数据块地址word的访问形如db11.w80,对数据块地址dword的访问形如db11.d80,对输入/输出位的访问形式分别为i5.2/q7.5等。 和wonderware公司的dassid-irect一样,rslinx也支持opc/dde两种通讯方式。当intouch和rslinx以dde方式进行通讯时,首先需要在rslinx“dde/opctopicconfiguration”对话框中添加新的topic,并建立该topic与要连接rslogixplccpu之间的对应关系,然后再对intouch中“访问名”做相应的配置。不过,此时“访问名”中“应用程序名”应设置为rslinx,“访问名”中的“主题名”则应和在rslinx中所添加的topic名称完全一致。而intouch标签变量“项目名”的填写也应遵从rslinx中itemname的定义形式,例如对rslogixplccpu中全局变量controllertags地址的访问即为plc变量地址的tagname,而对cpu中程序变量programtags地址的访问则为program:.的形式。当采用siemens公司的wincc作为opcclient与opc服务器进行opc方式连接时,首先需要在wincc资源管理器中添加opc通讯驱动程序opc.chn,然后在出现的opc通道单元的“连接属性”和所建变量的“变量地址属性”对话框中分别填写“opc服务器名称”和“变量地址名称”,这样便可建立该变量到opc服务器的连接。需要说明的是,不同的opc服务器,其opc服务器名称和地址格式是不尽相同的,例如siemenssimaticnetopc服务器的名称和地址访问格式(以按s7协议对s7系列plc数据访问为例)分别是“opc.simaticnet”和“s7:”,而rockwellrslinxopc服务器的名称和对rslogix系列plc数据访问的地址格式分别是“rsllinxopcserver”和“”。同样,其它scada软件与相关dde、opc服务器软件通讯的实现方法与此类似,不再赘述。此外,由于dde、opc都是标准规范,所以也可以根据需要来实现dde、opc之间的接口转换来满足实际需求,例如wonderware公司的opclink便是实现opc、dde接口转换的专用软件。4利用vb开发dde与opc客户端如上所述,目前许多scada软件都采用了dde、opc技术规范作为其软件接口,而scada监控软件在实际工程应用中则扮演了dde、opc客户端的角色。另外,wonderware公司的wwclient,siemens公司的simaticnetopcscout和rockwell-ab公司的opctestclient等测试软件也都是dde、opc客户端软件的实例。dde、opc客户端软件可采用visualc+、visualbasic、delphi等编程软件实现,这里主要对如何用visualbasic6.0编写dde、opc客户端实现和dde、opc服务器通讯的方法分别予以介绍。4.1利用vb开发dde客户端作为microsoft公司软件产品的重要一员,visualbasic理所当然的对windows操作系统的下的dde技术给予支持。visualbasic为一些控件提供了用于dde动态数据交换的linktopic、linkitem、linktimeout、linkmode等属性,以及linkrequest、linkpoke、linkexecute、linksend等方法。其中,linktopic、linkitem两项属性分别对应于dde通讯架构中的主题名和数据项名,linktimeout、linkmode分别表示dde客户端与dde服务器的尝试连接时间和连接模式(数据交换方式),linkmode有manual、notify、automatic三种方式,而automatic方式最为常用,它主要用于和ddeserver建立“热连接(hotlink)”,即在dde服务器数据发生变化时主动发送数据给客户端。linkrequest、linkpoke分别用于dde客户端对dde服务器数据的读写操作。根据应用程序与服务器程序dde方式通讯机制,可以在visualbasic编程环境下开发适合实际需要的dde客户端应用程序。例如,visualbasic访问intouch程序变量“intouchtag”时,其代码为label1.linktopic=view|tagn-amelabel1.linkitem=intouchtaglabel1.linkmode=1label1.linkrequest其中,代码中的“view”和“tagname”分别表示intouchwindowviewer的应用程序名和主题名,“linkmode”值为1表示该应用程序与windowviewer的连接方式为automatic(即“热连接”)方式。这样,当该应用代码被执行时,label1的值便随intouchwindowviewer“intouchtag”变量的变化而变化。同样可以在visualbasic中添加label、label,并建立和dassidirect、rsllinx的dde通讯连接,使其分别随所连接s7-300plc数据db5.dbw20、controllogix1756-l55plc全局变量“linxlogixtag”数值的变化而变化,其代码分别如下:label2.linktopic=dassidire-ct|dasvrtopiclabel2.linkitem=db5.w20label2.linkmode=1label2.linkrequestlabel3.linktopic=rslinx|&“rslinxtopic”label3.linkitem=linxlogixtaglabel3.linkmode=1label3.linkrequest其中,“dassidirect”和“dasvrtopic”、“rslinx”和“rslinxtopic”分别为dassidirect和rslinx的应用程序名以及在dassidirect和rslinxdde服务器中建立的主题名。而“db5.w20”和“linxlogixtag”则分别对应于s7-300plc数据db5.dbw20和controllogix1756-l55plc全局变量linxlogixtag,这样,该段代码被执行时,label2和label3的数值将随plc中数据db5.dbw20与linxlogixtag变量值的变化而变化。netdde是dde的网络扩展形式,主要为网络上不同计算机之间的动态数据交换提供方便。在visualbasic编程环境下,也可以开发基于netdde的客户端应用程序。与开发dde客户端不同的是,网络上作为dde服务器和客户端的计算机都要启动netdde.exe服务,并在作为dde服务器的计算机上同时启动ddeshare.exe程序,对新建的dde共享进行必要的设置。如下代码的功能为计算机pc02读取pc01计算机上rslinxdde服务器所采集的linxlogixtagplc变量的值。label4.linktopic=pc01ndde$|pc01shrnmlabel4.linkitem=linxlogixtaglabel4.linkmode=1label4.linkrequest由于netdde的访问采用了“|!”的形式,所以,上述代码中的“pc01”、“pc01shrnm”分别为dde服务器的计算机名和ddeshareexe程序中的新建共享名,而dde访问所需要的应用程序名rslinx和主题名rslinxtopic则在新建共享“pc01shrnm”的属性对话框中进行了设置。此外,由于excel也支持dde技术,所以pc01计算机上rslinxdde服务器plc变量linxlogixtag的变化也可以在pc02计算机excel表格中得到体现,只需要在需要显示该值的单元格中填写如下代码=pc01ndde$|pc01shrnm!linxlogixtag4.2利用vb开发opc客户端利用visualbasic所开发的opc客户端应用程序主要采用自动化通信接口和opc服务器程序实施通信。而opc基金会提供的opc自动化接口opcdaauto.dll动态链接库集成了所有用于对opc服务器进行访问的对象、属性和方法,为利用visualbasic开发opc客户端应用程序提供了极大方便。程序设计时,opc客户程序应当首先生成opc服务器支持的opc对象,然后再使用opc对象支持的属性和方法,实现对opc服务器的操作和访问。opc数据访问对象主要包括opc服务器(opcserver)、opc组集合(opcgroups)、opc组(opcgroup)、opc标签集合(opcitems)、opc标签(opcitem)、opc浏览器(opcbrowser)等几个部分。程序设计时,要首先在visualbasic环境下选择对opcautomation2.0接口的引用,此时,opc对象会被自动添加到正在开发的工程项目中,然后,再根据需要建立这些对象的实例并利用其属性和方法来实现对opc服务器的访问。对opc服务器的访问主要包括声明opc对象实例、连接opcserver、添加标签变量、读写opc服务器(同步/异步)、断开连接等几个步骤。opc对象实例的声明主要包括对opc服务器、opc组集合、opc组、opc标签集合、opc服务器句柄的声明及程序所需要的其它实例的声明。opc客户端和opcserver的连接主要靠调用opc服务器对象实例的connect方法函数来完成,例如,连接本地计算机dassidirect和rslinxopcserver的代码分别为connect(archestra.dassidirect.1)和connect(rslinxopcserver)连接网络远程计算机(ip地址为10.144.45.45)上dassidirect和rslinxopcserver的代码分别为connect(archestra.dassidirect.1,10.144.45.45)和connect(rs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论