随着工业生产的不断发展以及自动化系统集成度的不断提高,工业自动化系统软件取得了长足的发展与进步。然而,工业系统中设备数量的不断增加和现场信息交互共享能力要求的不断提高,传统的智能设备之间及智能设备与控制系统之间采用专门驱动程序实现信息共享的通讯方式已不能满足工业控制系统的发展需要。因此,为了能够解决工业系统硬件设备的升级改变为软件系统带来的不便,更好的实现不同设备厂家硬件产品的集成互连,增强系统的稳定性与可靠性,工业自动化软件接口的标准化、统一化成为工业控制领域必须面临的一个问题。为了能够使得自动化软件的开发具有统一的接口标准,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客户程序的开发,OPC标准采用dcom技术实现服务器和客户程序的通讯。OPC的数据访问主要有同步数据访问和异步数据访问两种方式。同步数据访问时,OPC服务器在将按照OPC应用程序要求的数据返回之前,OPC应用程序一直处于等待状态,也就是说,同步方式的数据访问在要求的动作没有完成前不能执行任何OPC应用程序侧的处理。与之相比,异步方式的数据访问在对OPC服务器提出数据访问要求后,立即返回到OPC应用程序侧的主处理程序中,OPC服务器完成数据访问时通知OPC应用程序,OPC应用程序从而得到数据访问结果。当OPC应用程序采用自动化接口访问OPC服务器时,同步和异步数据操作分别由syncread、syncwrite和asyncread、asyncwrite四个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等软件产品也可以很方便的实现互连。其它scada软件与相关DDE、OPC服务器软件通讯的实现方法与此类似,不再赘述。此外,由于DDE、OPC都是标准规范,所以也可以根据需要来实现DDE、OPC之间的接口转换来满足实际需求,例如wonderware公司的OPClink便是实现OPC、DDE接口转换的专用软件。
4、利用vb开发DDE与OPC客户端
如上所述,目前许多scada软件都采用了DDE、OPC技术规范作为其软件接口,而scada监控软件在实际工程应用中则扮演了DDE、OPC客户端的角色。另外,wonderware公司的wwclient,siemens公司的simatic net OPC scout和rockwell-ab公司的OPC test Client等测试软件也都是DDE、OPC客户端软件的实例。
DDE、OPC客户端软件可采用visual c++、visual basic、delphi等编程软件实现,这里主要对如何用visual basic 6.0编写DDE、OPC 客户端实现和DDE、OPC 服务器通讯的方法分别予以介绍。
5、结束语
DDE、OPC技术的出现与发展已经在包括工业自动控制在内的诸多领域得到了广泛的应用。DDE作为一种较成熟的数据交换方式已拥有最全面的支持,而OPC技术也越来越受众多自动化软硬件企业的支持与青睐,所以,在将来很长的一段时间里,DDE与OPC将继续在各自的应用领域发挥重要作用,DDE、OPC技术的出现和发展为我们提供了一个方便的数据访问接口,从而使控制系统进一步走向开放,用户系统因此受益。
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客户程序的开发,OPC标准采用dcom技术实现服务器和客户程序的通讯。OPC的数据访问主要有同步数据访问和异步数据访问两种方式。同步数据访问时,OPC服务器在将按照OPC应用程序要求的数据返回之前,OPC应用程序一直处于等待状态,也就是说,同步方式的数据访问在要求的动作没有完成前不能执行任何OPC应用程序侧的处理。与之相比,异步方式的数据访问在对OPC服务器提出数据访问要求后,立即返回到OPC应用程序侧的主处理程序中,OPC服务器完成数据访问时通知OPC应用程序,OPC应用程序从而得到数据访问结果。当OPC应用程序采用自动化接口访问OPC服务器时,同步和异步数据操作分别由syncread、syncwrite和asyncread、asyncwrite四个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等软件产品也可以很方便的实现互连。其它scada软件与相关DDE、OPC服务器软件通讯的实现方法与此类似,不再赘述。此外,由于DDE、OPC都是标准规范,所以也可以根据需要来实现DDE、OPC之间的接口转换来满足实际需求,例如wonderware公司的OPClink便是实现OPC、DDE接口转换的专用软件。
4、利用vb开发DDE与OPC客户端
如上所述,目前许多scada软件都采用了DDE、OPC技术规范作为其软件接口,而scada监控软件在实际工程应用中则扮演了DDE、OPC客户端的角色。另外,wonderware公司的wwclient,siemens公司的simatic net OPC scout和rockwell-ab公司的OPC test Client等测试软件也都是DDE、OPC客户端软件的实例。
DDE、OPC客户端软件可采用visual c++、visual basic、delphi等编程软件实现,这里主要对如何用visual basic 6.0编写DDE、OPC 客户端实现和DDE、OPC 服务器通讯的方法分别予以介绍。
5、结束语
DDE、OPC技术的出现与发展已经在包括工业自动控制在内的诸多领域得到了广泛的应用。DDE作为一种较成熟的数据交换方式已拥有最全面的支持,而OPC技术也越来越受众多自动化软硬件企业的支持与青睐,所以,在将来很长的一段时间里,DDE与OPC将继续在各自的应用领域发挥重要作用,DDE、OPC技术的出现和发展为我们提供了一个方便的数据访问接口,从而使控制系统进一步走向开放,用户系统因此受益。