2024年3月27日发(作者:)
简单介绍DDE动态数据交换技术
DDE(Dynamic Data Exchange,动态数据交换)是进程间通讯(InterProcess
Communication,IPC)的方法。进程间通讯(IPC)包括进程之间和同步事件之间的数据
传递。DDE使用共享内存来实现进程之间的数据交换以及使用DDE协议获得传递数据的
同步。DDE协议是一组所有的DDE应用程序都必须遵循的规则集。DDE协议可以应用于
两类DDE应用程序:第一类是基于消息的DDE,第二类是动态数据交换管理库(DDEML)
应用程序(使用动态连接库(DLL),该库随Windows系统一起发行)。
DDE应用程序可以分为四种类型:客户、服务器、客户/服务器和监视器。DDE会话
发生在客户应用程序和服务器应用程序之间。客户应用程序从服务器应用程序请求数据或
服务,服务器应用程序响应客户应用程序的数据或服务请求。客户/服务器应用程序既是客
户应用程序又是服务器应用程序,它既可发出请求又可提供信息。监视器应用程序用于调
试目的。DDE应用程序可拥有多重迸发会话。DDE协议规定会话中的消息必须同步控制,
但应用程序可以在不同的会话之间异步切换。
DDE应用程序采用三层识别系统:应用程序名(Application)、主题名(Topic)和项目
名(Item)。应用程序名位于层次结构的顶层,用于指出特定的DDE服务器应用程序名。主
题名更深刻地定义了服务器应用程序会话的主题内容,服务器应用程序可支持一个或多个
主题名。项目名更进一步确定了会话的详细内容,每个主题名可拥有一个或多个项目名。
DDE会话的初始化是由客户应用程序发送WM_DDE_INITIATE消息开始,它传递窗
口句柄并为会话指定应用程序名和主题名,当然需要有服务器应用程序来响应该消息。一
旦没有服务器响应或同时有多个服务器响应,则客户应用程序不得不发送
WM_DDE_TERMINATE消息来终止所有不需要的会话。
建立DDE会话后,客户应用程序和服务器应用程序可通过三种链接方式进行数据交
换。三种链接方式为:冷链接(Cold Link)、温链接(Warm Link)和热链接(Hot Link)。
冷链接(Cold Link):客户应用程序申请数据,服务器应用程序立刻给客户应用程序发送
数据,服务器应用程序处于主动地位;温链接(Warm Link):服务器应用程序通知客户应
用程序数据项发生了变化,但并没有将已变化的值发送给用户应用程序;热链接(Hot
Link):当数据项发生变化时,服务器应用程序立即把变化后的值发送给客户应用程序,服
务器应用程序处于主动地位。
动态数据交换(DDE)是一个由Microsoft开发的通信协议。该协议允许在Windows
环境中的应用程序之间彼此发送/接收数据和指令。它在两个同时运行的应用程序之间实
现客户服务器关系。服务器应用程序提供数据并接收对这些数据感兴趣的其它应用程序的
请求。发请求的应用程序叫做客户。
通过RSLinx软件实现PLC与EXCEL的数据链接:
在Windows中组态DDE
a.打开“控制面板”中的“管理工具”。
b.双击“服务”图标,启动“NetworkDDE”和“NetworkDDE DSDM”并设置为自
动运行,然后退出服务。在设置过程中,这两项服务并不是自动运行的,所以当初次配置
DDE时,一定要将这两项服务启动。
c.单击“开始”按钮,在“运行”中输入DDESHARE,打开DDESHARE窗口。
d.在DDESHARE中组态新的DDE通信,单击“共享”按钮,选择“DDE共享”,打
开DDE共享窗口。
e.在DDE共享窗口中单击“添加共享”按钮,弹出DDE3共享属性窗口,进行设置。
f.上面的共享属性窗口设置完毕后,单击OK按钮回到DDE共享窗口;单击“信任共
享”按钮,设置受信任的共享属性。
至此完成了Windows中DDE的组态。
2在RSLinx中组态DDE
a.打开“RSLinx Gateway”,单击主菜单中的“DDE/OPC”,选择下拉子菜单中的
“TopicConfiguration”,弹出“DDE/OPCTopicConfiguration”窗口。
b.单击窗口中的“NEW”按钮,建立新的“DDE/OPC”链接。
c.对“Data source”,“Data Collection”,“Advanced Communication”的设
置完成后保存。
d.在RSLinx的主窗口中选择“Edit”菜单下的“copy DDE link to clipboard”弹出
复制“DDE数据链接”窗口,此处以“DataTable”中的“T4:”为例做数据链接。
根据需要,也可以选择其他需要链接的数据,如“N7:0”等。
按上述步骤进行,即可完成RSLinx中的组态。
2.3在Excel中组态DDE
a.打开Excel,选择“编辑”菜单下的“选择性粘贴”,弹出新的窗口。
b.选择“粘贴链接”菜单下的“Unicode文本”,这样就建立了PLC与Excel的DDE
动态数据链接。
用下列语法输入公式:应用程序名、文档名或主题,然后是单元格区域、值、字段或
引用的数据。
下列示例显示了远程引用公式的各个部分和所需的分隔字符:
通道字符 (|) 将程序名同文档名或主题名分开。感叹号 (!) 将单元格区域、值、字段
或引用的数据同文档或主题名分开。
按 Enter。
注意 如果应用程序、文档、主题或数据项的名称中含有空格或在公式中有特殊用途的
字符(例如,冒号 (:) 和减号 (-)),或是该名称类似于单元格引用,请用单引号围住名称。
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组对
象的方法函数来实现。
OPC(OLE for Process Control, 用于过程控制的OLE)是一个工业标准,管理这个标
准国际组织是OPC基金会,OPC基金会现有会员已超过220家。遍布全球,包括世界上
所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。基于微软的OLE(现在的
Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术。OPC包括一整套
接口、属性和方法的标准集,用于过程控制和制造业自动化系统。
OPC全称是OLE for Process Control,它的出现为基于Windows的应用程序和现
场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开
发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给
用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集
成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备
驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,
它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE 2
技术,OLE标准允许多台微机之间交换文档、图形等对象。
COM是Component Object Model的缩写,是所有OLE机制的基础。COM是一
种为了实现与编程语言无关的对象而制定的标准,该标准将Windows下的对象定义为独
立单元,可不受程序限制地访问这些单元。这种标准可以使两个应用程序通过对象化接口
通讯,而不需要知道对方是如何创建的。例如,用户可以使用C++语言创建一个Windows
对象,它支持一个接口,通过该接口,用户可以访问该对象提供的各种功能,用户可以使
用Visual Basic,C,Pascal,Smalltalk或其它语言编写对象访问程序。在Windows NT4.0
操作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象
可分布在网络上,COM的这个扩展被称为DCOM(Distributed COM)。
通过DCOM技术和OPC标准,完全可以创建一个开放的、可互操作的控制系统软件。
OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以
OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了
系统的开放性和可互操作性。
OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问
机制。这两种接口是:自动化接口(Automation interface);自定义接口(Custom
interface)。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用
VisualBasic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。而自定义
接口是专门为C++等高级编程语言而制定的标准接口。OPC现已成为工业界系统互联的
缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。任何一家自
动化软件解决方案的提供者,如果它不能全方位地支持OPC,则必将被历史所淘汰。
1、在控制领域中,系统往往由分散的各子系统构成;并且各子系统往往采用不同厂家
的设备和方案。用户需要,将这些子系统集成,并架构统一的实时监控系统。
2、这样的实时监控系统需要解决分散子系统间的数据共享,各子系统需要统一协调相
应控制指令。
3、再考虑到实时监控系统往往需要升级和调整。
4、就需要各子系统具备统一的开放接口。
5、OPC(OLE for Process Control) 规范正是这一思维的产物。
6、OPC 基于Microsoft公司的 Distributed interNet Application (DNA) 构架和
Component Object Model (COM) 技术的,根据易于扩展性而设计的。OPC规范定义
了一个工业标准接口。
7、OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务
器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管
现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,
使得用户完全从低层的开发中脱离出来。
8、OPC定义了一个开放的接口,在这个接口上,基于PC的软件组件能交换数据。
它是基于Windows的OLE——对象链接和嵌入、COM——部件对象模型(Component
Object Model)和DCOM——分布式COM(Distributed COM)技术。因而,OPC为自动
化层的典型现场设备连接工业应用程序和办公室程序提供了一个理想的方法。
OPC解决了什么
OPC诞生以前,硬件的驱动器和与其连接的应用程序之间的接口并没有统一的标准。
例如,在FA(FactoryAutomation)——工厂自动化领域,连接PLC(Programmable Logic
Controller)等控制设备和SCADA/HMI软件,需要不同的FA网络系统构成。根据某调
查结果,在控制系统软件开发的所需费用中,各种各样机器的应用程序设计占费用的7成,
而开发机器设备间的连接接口则占了3成。此外,在PA(Process Automation)——过程
自动化领域,当希望把分布式控制系统(DCS——Distributed Control System)中所有的
过程数据传送到生产管理系统时,必须按照各个供应厂商的各个机种开发特定的接口,例
如,利用C语言DLL(动态链路数据库)连接的DDE(动态数据交换)服务器或者利用FTP(文
件传送协定)的文本等设计应用程序。如由4种控制设备和与其连接的监视、趋势图以及表
报3种应用程序所构成的系统时,必须花费大量时间去开发分别对应设备A,B,C,D的
监视,趋势图以及表报应用程序的接口软件共计要用12种驱动器。同时由于系统中共存
各种各样的驱动器,也使维护运转环境的稳定性和信赖性更加困难。
而OPC是为了不同供应厂商的设备和应用程序之间的软件接口标准化,使其间的数据
交换更加简单化的目的而提出的。作为结果,从而可以向用户提供不依靠于特定开发语言
和开发环境的可以自由组合使用的过程控制软件组件产品。
利用OPC的系统,是由按照应用程序(客户程序)的要求提供数据采集服务的OPC服
务器,使用OPC服务器所必需的OPC接口,以及接受服务的OPC应用程序所构成。OPC
服务器是按照各个供应厂商的硬件所开发的,使之可以吸收各个供应厂商硬件和系统的差
异,从而实现不依存于硬件的系统构成。同时利用一种叫做Variant的数据类型,可以不
依存于硬件中固有数据类型,按照应用程序的要求提供数据格式。
利用OPC使接口标准化可以不依存于各设备的内部结构及它的供应厂商来选用监视,
趋势图以及表报应用程序。
为什么开发自主OPC Server和OPC Gateway?
1、国外原厂商的高价格
2、国外原厂商面对项目的不灵活性
3、国内项目中子系统的多样性难以提供DRIVER
4、自主OPC服务器追求的是稳定、实时、迅速。
5、众多子系统的不规范性
6、总包项目在投标前后可能出现的不一致性
7、价格昂贵的原厂平台服务器软件
8、总包商集成是否投入大量的人力开发
9、平台和子系统的兼容性
10、建立了OPC平台和子系统的互通
11、解决厂商和集成商在项目集成的烦恼
12、解决厂商和集成商分散资源进行二次开发
13、解决项目中子系统厂商的困扰
14、为上下位的数据通讯提供透明的通道


发布评论