2023年4月19日发(作者:必要共同诉讼)一、概念介绍
:
1 .OLE及DDE
操作系统流行以来,“剪贴板”(Clipboard)首先解决了不同程序间的通信问题(由
剪贴板作为数据交换中心,进行复制、粘贴的操作),但是剪贴板传递的都是“死”数据,
应用程序开发者得自行编写、解析数据格式的代码,于是动态数据交换(Dynamic Data
Exchange,DDE)的通信协定应运而生,它可以让应用程序之间自动获取彼此的最新数据,
但是,解决彼此之间的“数据格式”转换仍然是程序员沉重的负担。对象的链接与嵌入
(Object Linking and Embedded,OLE)的诞生把原来应用程序的数据交换提高到“对象交
换”,这样程序间不但获得数据也同样获得彼此的应用程序对象,并且可以直接使用彼此的
数据内容,其实OLE是Microsoft的复合文档技术,它的最初版本只是瞄准复合文档,但在
后续版本OLE2中,导入了COM。
2 .OPC
OPC(OLE for Process Control)是一个软件标准,它可以使自动化应用程序方便地读
取工业企业的工厂级数据。OPC是基于Microsoft的组件对象建模(COM)技术定义一个标
准接口,允许自动化和控制应用程序、控制设备、以及商业和办公应用软件之间相互操作。
3 .ODBC
开放式数据库连接 (ODBC) 技术为访问不同种类的 SQL 数据库提供了通用接口。ODBC
是基于结构查询语言 (SQL) 的,以此作为访问数据的标准。此接口提供了最大的互操作性:
一个应用程序可以通过一组公用代码访问不同的 SQL 数据库管理系统 (DBMS)。
4 .SCADA
数据采集与监控系统(SCADA)是一种软件应用程序,它用于远程实时遥控数据采集过
程,以实现对设备和条件的控制。SCADA可用于电场、石油和天然气精炼、通信、运输以及
水和废物控制。
二、OPC及DDE的工作机制和差别
技术的工作机制
dde是为在同一台计算机或不同计算机上运行的程序提供动态数据交换,最早由microsoft
公司提出的。动态数据交换(dde)技术由于其具有实时性好、网络通信连接实现方便等特
点,在控制软件与信息网络集成中得到了广泛应用。
动态数据交换基于windows消息机王宽诚
制,各应用程序间通过传递消息进行对话交换信息。
windows dde消息传递采用client/rver模式,客户(client)是数据的请求和接受者,
而服务器(rver)是数据的提供者,两者之间通过请求、应答、传输三个步骤来完成数据
的传送。dde协议使用服务(rvice)、主题(topic)和数据项(item)三级命名来标识
dde所传递的数据单元。一般情况下,服务(rvice)就是应用程序的文件名,主题是对
服务器有意义的信息单元。每次dde客户与服务程序之间的对话都是先由客户启动的,所以
在每次客户启动之前,dde服务器应当首先投入运行。
当客户程序需要向服务器程序请求数据时,客户程序发送一条wm-dde-initiate消息给
当前运行的所有windows应用程序,这条消息不但包含了它所需要的服务器名(rvice)
和主题名(topic),而且指明了它所希望的数据类型,收到wm-dde-initiate消息的应用程
序通过判别服务器名和会话主题决定是否应答,一旦dde服务器响应了这条被传播的消息,
dde会话就开始了。
dde的工作方式有冷连接(cool link)、温连接(warm link)和热连接(hot link)
等3种。在冷连接方式下,当rver中的数据发生变化后不主动通知client,但client
可以随时从rver读写数据;在温连接方式下,当rver中的数据发生变化后马上通知
client,client得到通知后将数据取回;在热连接方式下,当rver中的数据发生变化后
马上通知client,同时将变化的数据直接送给client。
dde的网络形式称为netdde,它包含了dde的全部特征,是动态数据交换(dde)的
扩充,可以在跨越网络的计算机之间使用。采用netdde后,两个或更多网络上的应用能够
通过dde共享来建立网络上不同工作站之间的连接,从而实现站站之间的动态信息共享。
技术的工作机制
在opc技术出现以前,dde技术是绝大多数控制系统都支持和采用的数据交换方式。但
是,由于dde是基于windows信息传递而建立的技术,因此,当通信量较大时,就会出现数
据刷新速度慢、安全性管理机制差、可靠性能低等现象,从而就有可能致使dde客户程序在
较长时间内得不到回应。和dde 技术相比,基于com和dcom技术的opc技术具有数传送性
能高、 安全性管理性能好、开发成本低等特点。
最初阶段的opc规范是由opc基金会的先fisher-romount、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/rver模式。opc服务器是数据源的提供者,数据源可以是plc、dcs、
条形码读取器等控制设备,随控制系统的构成不同,作为数据源的opc服务器既可以是和
opc应用程序在同一台计算机上运行的本地opc服务器,也可以是在另外计算机上运行的远
程opc服务器。opc客户是数据的使用者,它按照opc接口规范从opc服务器获取所需要的
数据。
opc服务器主要包括三部分:服务器(rver)、组(group)和数据项(item)。服
务器对象保存服务器和服务器作为opc组对象容器的所有信息。opc组对象包括公共组和局
部组(私有组)两种,公共组由多个客户共享,局部组只隶属于一个opc客户。一个组可能
代表一个特殊设备的数据项,opc 客户可以通过组对象来读写数据,并可以设定opc服务器
应该提供给opc client数据的更新速率。opc 数据项是读写数据的最小逻辑单位(在实际
应用中,可能是物理设备的寄存器或寄存器的某一位),其数据值以v氮及其化合物
ariant形式表示,每
个数据项包括值(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组对象的
方法函数来实现。
3.
opc和dde的差别
DDE动态数据交换机制是需要两个Windows应用程序,其中一个作为服务器处理信息,
另外一个作为客户机从服务器获得信息。客户机应用程序向当前所激活的服务器应用程序发
送一条消息请求信息,服务器应用程序根据该信息作出应答,从而实现两个程序之间的数据
交换。
OPC(bject Linking and Embeding for Process Control)是以OLE/COM机制作为应用程序
的通讯标准。OPC是一种基于开放标准的开放式连结,允许在自动化/控制应用、现场设备
和商业/办公室应用之间进行简明的、标准化的数据交换。OPC标准以微软公司的OLE技术
为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE2
技术,OLE标准允许多台微机之间交换文档、图形等对象。OPC规范了接口函数,不管现场
设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用
户完全从低层的开发中脱离出来。
OPC取代DDE的原因:DDE使客户应用能够独立于数据源的供应方,开发商不必再象以往那
样定义专用的接口。于是DDE成为许多类型的自动化设备的标准接口。DDE的出现使人们以
为数据访问的问题得到了有效解决,但在使用过程中,用户才发现采用DDE来在设备和控制
系统之间传递实时信息并非理想的办法,因为它在传输性能和可靠性等方面都存在许多限制。
为此开发商不得不对DDE标准进行扩展,他们开发出各种专用的信息格式,以提高客户应用
程序的性能和通信吞吐量。于是出现了DDE的多种演化版本。多种版本的DDE违背DDE最初
的宗旨,因为不同的DDE格式使得客户在选择时又不得不受开发商所用格式的限制,也最终
使得DDE不能够再称为统一的标准。另外DDE不适用于大量数据的高速数据采集,并且DDE
从来没有为不同未来可期下一句
计算机之间的数据交换提供可靠的机制。上述这些原因促使工业界不得不重
新制订更为高效、可靠的数据访问标准,这就是OPC。OPC比DDE更好,所提供的功能也更
为强大。此外,OPC提供的是一个标准的通信协议,而不象DDE那样存在不同的DDE格式。
OPC时代的到来使数据的交换与通信变得开放、高效、安全、可靠,同时也为信息的集成提
供了更为合理和简便的方法。与DDE相比,OPC最主要的优势体现在数据传输速率上。由于
OPC服务器每秒能管理成百上千个事务,而且与DDE不同的是它的每个事务能包含多个数据
项,因此采用OPC传输数据要比DDE快得多。
三、DDE与OPC技术在自动化领域中的应用
当前,dde、opc技术在许多世界著名的自动化厂家的i/o通讯服务器、scada等自动化
软件中都得到了体现。例如wonderware公司的darver和intouch、siemens公司的simatic
net和wincc、rockwell-ab公司的rslinx和rsview32等。其中darver和rslinx既可作为opc rver,
又可作为dde rver;wincc和rsview32则既可以作为opc client,又可作为dde client。同时,
由于各海上生命线
家的软件接口都合乎dde、opc接口规范标准,所以,不同厂家的i/o通讯、scada等
软件产品也可以很方便的实现互连。
以太网数据访问的服务器软件,支持dde、opc、suitlink、fastdde等通讯方式。当客户程序
通讯接口与dassidirect的连接采用dde方式时,dassidirect的数据访问采用了节点名(node
name)、应用程序名(application name,此处为dassidirect)、主题名(topic name)和项目
名(item name)的层次结构。而当通讯接口以opc方式与dassidirect连接时,dassidirect的
数据访问则采用了节点名(node name)、服务器名(program name,此处为
irect.1)、组名(group name)、设备组名(device group)、连接名(link name)
和项目名(item name)的层次结构。各层次项可在dassidirect软件界面中配置实现。
工程应用时,需要在dassidirect管理界面smc irect.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与要连接rslogixplccpu之间的对应关系,然后再对intouch中“访
问名”做相应的配置。不过,此时“访问名”中“应用程序名”应设置为rslinx,“访问名”中的“主
题名”则应和在rsl维护的英文
inx中所添加的topic名称完全一致。而intouch标签变量“项目名”的填写也
应遵从rslinx中item name的定义形式,例如对rslogixplccpu中全局变量controller tags地址
的访问即为plc变量地址的tag name,而对cpu中程序变量抗病毒的药有哪些
program tags地址的访问则为
program:.的形式。
当采用siemens公司的wincc作为opc client与opc服务器进行opc方式连接时,首先需要
在wincc资源管理器中添加opc通讯驱动程序,然后在出现的opc通道单元的“连接
属性”和所建变量的“变量地址属性”对话框中分别填写“opc服务器名称”和“变量地址名称”,
这样便可建立该变量到opc服务器的连接。需要说明的是,
dde、opc技术的出现与发展已经在包括工业自动控制在内的诸多领域得到了广泛的应用。
dde作为一种较成熟的数据交换方式已拥有最全面的支持,而opc技术也越来越受众多自动
化软硬件企业的支持与青睐埃及太阳神
,所以,在将来很长的一段时间里,dde与opc将继续在各自的
应用领域发挥重要作用,dde、opc技术的出现和发展为我们提供了一个方便的数据访问接
口,从而使控制系统进一步走向开放,用户系统因此受益。