侵权投诉

搜索
更多>> 热门搜索:
当前位置:

OFweek工控网

现场总线

正文

DDE与OPC技术在工业自动化系统中的应用

导读: 在将来很长的一段时间里,dde与opc将继续在各自的应用领域发挥重要作用,dde、opc技术的出现和发展为我们提供了一个方便的数据访问接口,从而使控制系统进一步走向开放,用户系统因此受益。

1  引言
           
  随着工业生产的不断发展以及自动化系统集成度的不断提高,工业自动化系统软件取得了长足的发展与进步。然而,工业系统中设备数量的不断增加和现场信息交互共享能力要求的不断提高,传统的智能设备之间及智能设备与控制系统之间采用专门驱动程序实现信息共享的通讯方式已不能满足工业控制系统的发展需要。因此,为了能够解决工业系统硬件设备的升级改变为软件系统带来的不便,更好的实现不同设备厂家硬件产品的集成互连,增强系统的稳定性与可靠性,工业自动化软件接口的标准化、统一化成为工业控制领域必须面临的一个问题。
           
  为了能够使得自动化软件的开发具有统一的接口标准,dde(动态数据交换:dynamic data exchan-ge)、opc(基于过程控制的链接与嵌入:ole for process control)技术的出现和应用为不同的自动化程序系统之间能够实现简单交互、无缝互连做出了巨大的贡献。

2  dde与opc技术的工作机制
           
  2.1 dde技术的工作机制
           
  dde是为在同一台计算机或不同计算机上运行的程序提供动态数据交换,最早由microsoft公司提出的。动态数据交换(dde)技术由于其具有实时性好、网络通信连接实现方便等特点,在控制软件与信息网络集成中得到了广泛应用。
           
  动态数据交换基于windows消息机制,各应用程序间通过传递消息进行对话交换信息。windows dde消息传递采用client/server模式,客户(client)是数据的请求和接受者,而服务器(server)是数据的提供者,两者之间通过请求、应答、传输三个步骤来完成数据的传送。dde协议使用服务(service)、主题(topic)和数据项(item)三级命名来标识dde所传递的数据单元。一般情况下,服务(service)就是应用程序的文件名,主题是对服务器有意义的信息单元。每次dde客户与服务程序之间的对话都是先由客户启动的,所以在每次客户启动之前,dde服务器应当首先投入运行。
           
  当客户程序需要向服务器程序请求数据时,客户程序发送一条wm-dde-initiate消息给当前运行的所有windows应用程序,这条消息不但包含了它所需要的服务器名(service)和主题名(topic),而且指明了它所希望的数据类型,收到wm-dde-initiate消息的应用程序通过判别服务器名和会话主题决定是否应答,一旦dde服务器响应了这条被传播的消息,dde会话就开始了。
           
  dde的工作方式有冷连接(cool link)、温连接(warm link)和热连接(hot link)等3种。在冷连接方式下,当server中的数据发生变化后不主动通知client,但client可以随时从server读写数据;在温连接方式下,当server中的数据发生变化后马上通知client,client得到通知后将数据取回;在热连接方式下,当server中的数据发生变化后马上通知client,同时将变化的数据直接送给client。
           
  dde的网络形式称为netdde,它包含了dde的全部特征,是动态数据交换(dde)的扩充,可以在跨越网络的计算机之间使用。采用netdde后,两个或更多网络上的应用能够通过dde共享来建立网络上不同工作站之间的连接,从而实现站站之间的动态信息共享。
           
  2.2 opc技术的工作机制
           
  在opc技术出现以前,dde技术是绝大多数控制系统都支持和采用的数据交换方式。但是,由于dde是基于windows信息传递而建立的技术,因此,当通信量较大时,就会出现数据刷新速度慢、安全性管理机制差、可靠性能低等现象,从而就有可能致使dde客户程序在较长时间内得不到回应。和dde技术相比,基于com和dcom技术的opc技术具有数据传送性能高、  安全性管理性能好、开发成本低等特点。

  最初阶段的opc规范是由opc基金会的先驱fisher-rosemount、rockwell、opto 22、intellution、intuitive technology公司于1996年8月发布的,目前opc基金会成员在全球已超过300多个,其中包括世界上几乎所有主要的控制系统、仪器仪表、过程控制系统生产厂家。

  opc以ole/com/dcom技术为基础,是ole(object linking and embedding)for process control的缩写,是微软公司的对象链接和嵌入技术在过程控制方面的应用。与dde一样,opc也采用client/server模式。opc服务器是数据源的提供者,数据源可以是plc、dcs、条形码读取器等控制设备,随控制系统的构成不同,作为数据源的opc服务器既可以是和opc应用程序在同一台计算机上运行的本地opc服务器,也可以是在另外计算机上运行的远程opc服务器。opc客户是数据的使用者,它按照opc接口规范从opc服务器获取所需要的数据。
           
  opc服务器主要包括三部分:服务器(server)、组(group)和数据项(item)。服务器对象保存服务器和服务器作为opc组对象容器的所有信息。opc组对象包括公共组和局部组(私有组)两种,公共组由多个客户共享,局部组只隶属于一个opc客户。一个组可能代表一个特殊设备的数据项,opc客户可以通过组对象来读写数据,并可以设定opc服务器应该提供给opc client数据的更新速率。opc 数据项是读写数据的最小逻辑单位(在实际应用中,可能是物理设备的寄存器或寄存器的某一位),其数据值以variant形式表示,每个数据项包括值(value)、品质(quality)和时间戳(time stamp)3个变量。在一个组对象中,opc 客户可以加入多个opc数据项。
           
  opc客户与opc服务器的接口有自定义接口(custom interface)和自动化接口(automation interface)两种形式。自定义接口是一组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组对象的方法函数来实现。
           
  据上所述,dde、opc的通讯机制比较可用如下表格表示:
            
3  dde与opc技术应用
           
  当前,dde、opc技术在许多世界著名的自动化厂家的i/o通讯服务器、scada等自动化软件中都得到了体现。例如wonderware 公司的daserver和intouch、siemens公司的simatic net和wincc、rockwell-ab公司的rslinx和rsview32等。其中daserver和rslinx既可作为opc server,又可作为dde server;wincc和rsview32则既可以作为opc client,又可作为dde client。同时,由于各家的软件接口都合乎dde、opc接口规范标准,所以,不同厂家的i/o通讯、scada等软件产品也可以很方便的实现互连。
           
  下面分别以wonderware 公司的intouch与daserver(dassidirect)、intouch与rockwell-ab公司的rslinx进行dde通讯,siemens 公司的wincc 与simatic net 、wincc 与rslinx进行opc通讯的方法为例说明dde、opc技术在工业自动化软件的应用情况。
  
  dassidirect是wonderware 公司开发用于对siemens s7 200/300/400系列plc进行以太网数据访问的服务器软件,支持dde、opc、suitlink、fastdde等通讯方式。当客户程序通讯接口与dassidirect的连接采用dde方式时,dassidirect 的数据访问采用了节点名(node name)、应用程序名(application name,此处为dassidirect)、主题名(topic name)和项目名(item name)的层次结构。而当通讯接口以opc方式与dassidirect连接时,dassidirect 的数据访问则采用了节点名(node name)、服务器名(program name,此处为archestra.dassidirect.1)、组名(group name)、设备组名(device group)、连接名(link name)和项目名(item name)的层次结构。各层次项可在dassidirect软件界面中配置实现。
 
  工程应用时,需要在dassidirect管理界面smc archestra.dassidirect.1目录下根据需要依次添加接口类型(tcp/ip)、接口处理器类型(s7 plc),并进行必要的参数设置,然后还要为device groups添加不同的topic以方便对不同变量的归类管理。intouch标签变量对dassidirect的访问是通过“访问名”的设置来实现的,所以intouch中“访问名”的设置必须和dassidirect软件中的设置一一对应,例如,“访问名”中“应用程序名”应设置为dassidirect,“访问名”中“主题名”的设置应和dassidirect中所添加的topic名称完全一致。此外,intouch标签变量“项目名”的填写也必须遵从dassidirect中item name的定义形式,例如对s7 plc数据块地址word的访问形如db11.w80,对数据块地址dword的访问形如db11.d80,对输入/输出位的访问形式分别为i5.2/q7.5等。
           
  和wonderware公司的dassid-irect一样,rslinx也支持opc/dde两种通讯方式。当intouch和rslinx以dde方式进行通讯时,首先需要在rslinx“dde/opc topic configuration ”对话框中添加新的topic,并建立该topic与要连接rslogix plc cpu之间的对应关系,然后再对intouch中“访问名”做相应的配置。不过,此时“访问名”中“应用程序名”应设置为rslinx,“访问名”中的“主题名”则应和在rslinx中所添加的topic名称完全一致。而intouch标签变量“项目名”的填写也应遵从rslinx中item name的定义形式,例如对rslogix plc cpu中全局变量controller tags地址的访问即为 plc变量地址的tag name,而对cpu中程序变量program tags地址的访问则为program:<program_name>.<tag_name>的形式。
           
  当采用siemens 公司的wincc作为opc client与opc服务器进行opc方式连接时,首先需要在wincc资源管理器中添加opc通讯驱动程序opc.chn,然后在出现的opc通道单元的“连接属性”和所建变量的“变量地址属性”对话框中分别填写“opc服务器名称”和“变量地址名称”,这样便可建立该变量到opc服务器的连接。需要说明的是,不同的opc服务器,其opc服务器名称和地址格式是不尽相同的,例如siemens simatic net opc服务器的名称和地址访问格式(以按s7协议对s7系列 plc数据访问为例)分别是“opc.simaticnet”和“s7:[<连接名称>]<plc变量地址>”,而rockwell rslinx opc服务器的名称和对rslogix 系列plc数据访问的地址格式分别是“rsllinx opc server”和“[<opc group名称>]<plc变量名>”。

  同样,其它scada软件与相关dde、opc服务器软件通讯的实现方法与此类似,不再赘述。
           
  此外,由于dde、opc都是标准规范,所以也可以根据需要来实现dde、opc之间的接口转换来满足实际需求,例如wonderware公司的opclink便是实现opc、dde接口转换的专用软件。

1  2  下一页>  
声明: 本文由入驻OFweek公众平台的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

  • 机械
  • 自动化
  • 单片机
  • 猎头职位
更多
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码: