OPC&DDE技术

OPC

OPC是一种被广泛接受的工业通信标准,该标准可在不受任何专用权限制的情况下,支持多厂商设备和控制应用程序间的数据交换。 OPC服务器可实现车间PLC、现场远程终端设备(RTU)、人机界面(HMI)工作站和PC机桌面软件应用程序之间的连续数据通信。 即使软硬件来自不同的厂商,OPC的兼容性也能实现连续的实时通信。

作为帮助用户冲破“封闭”或专用权的使能技术,OPC已使技术提供者和用户达成近一步的合作,帮助自动化厂商提供了真正开放的、 在自动化应用中给用户更多选择的解决方案。这是工业历史中令人激动的时刻,互用性、开放性解决方案以及多种选择已经让世界上 的自动化专业人员意识到在工业应用中使用OPC的好处。Kepware公司的工程师按照符合OPC基金会组织的OPC数据存取规范来开发和 维护产品。

OPC在工业自动化和支持工业的企业体系中体现开放互联性。通过非专用权开放标准规范的制定和维护,其互用性得到了保障。 第一个OPC标准规范是由当时世界上很多占主导地位并且与微软合作的自动化厂商共同制定的。最初的规范基于微软公司的OLE COM 和 DCOM技术,它定义了用于过程控制和制造自动化的对象,接口和方法,从而促进互用性的一套标准。COM/DCOM技术为开发软件产 品提供了一个框架。目前,世界上已经有很多的OPC数据存取服务器和客户端了。

OPC通过开放的标准和基于计算机市场的通用技术标准体现开放互联性。OPC成员的产品为更倾向于现货供应的人,为用工具箱实现 开发效率的中级工程师和为倾向于开发整个应用程序的开发人员提供了广泛的工具。

1994年,一些各工业行业影响比较大的供应商组建了现在所说的OPC基金会。OPC基金会提出要开发统一的客户端/服务器(C/S) 规范的目标,该规范允许任何供应商开发以快速的,鲁棒的方式共享数据的软件和应用程序,但在此过程中他们必须消除同一供应商 复制自己的开发成果而开发的专用配置。OPC基金会制定出名为“数据存取规范1.0a”的第一个规范,并在1996年初对外发布。 有了这个规范,销售商就可以快速开发客户端/服务器软件了。

OPC基金会和数据存取规范的一个主要目标是消除客户应用程序供应商开发其专用通信驱动程序的需要。对于许多供应商来说, 付出开发大量通信驱动程序的努力远远大于开发客户应用程序本身所付出的努力,采用了OPC技术后,供应商现在能把大量的精力 集中用于开发客户端应用程序。数据存取规范定义了客户端和服务器应用程序接口构建问题。如果正确遵守规范,客户端供应商知道, 任何为工业设备开发的OPC服务器都能提供数据存取所需的互连,像投放市场时间或可靠性这样的问题不再是OPC应用程序的约束了。 最终用户获得了OPC提供的额外利益,他们可以选择最好品牌的软件来解决应用软件问题。在过去,如果应用软件没有所需的通信驱动程序 或者现有的驱动程序不能充分发挥其性能,唯一的解决办法就是要求软件供应商开发驱动程序或者修复现有驱动程序,一般, 这两种方法中的任何一种都需要很长时间。有了OPC,最终用户就不再受客户端应用程序供应商的资源限制。现在,用户可从多家OPC服务器 供应商中选择能提供新驱动或修正OPC性能的厂家。同时,客户端应用程序供应商现在可以集中精力持续改进他们的核心产品,而不必为通 信驱动需求问题分心。Kepware公司在OPC领域内的目标是通过提供可靠且人性化的产品,成为OPC服务器组件供应商的领导者,KEPServerEX 程序就是建立在多年通信驱动程序和OPC技术开发成就的基础之上的。

从高层次上讲,OPC服务器由这些对象组成:服务器、组和数据项。OPC服务器对象保存了服务器信息并作为OPC组对象的容器, OPC组对象保存了自身数据并且为存储和为逻辑上组织数据项提供了实现方法。OPC组为客户端提供一种组织数据的方法。例如, 在特殊的操作站显示或报告中,组可以表示数据项,可读或写数据。在客户端和组中数据项之间可能发生异常连接的情况, 这就需要根据条件来使能或者禁止。OPC客户端可以配置OPC服务器提供到OPC客户端的数据变化率。组(Group)有两类,全局组和 局部组(或称“私有组”)。全局组是能实现多个客户端共享,局部组对一个客户端来说是局部的。提到全局组,我们就想知道其 目的、用途和功能以及更详细的情况。全局组有特有的可选接口,在每一个组内部客户端可以定义一个或多个OPC数据项(Item)。

OPC数据项表示服务器内数据源的连接。OPC数据项不能作为一个对象由OPC客户端来访问。因此, 没有为OPC数据项定义外部接口。所有对OPC数据项的访问都要通过包含OPC数据项的OPC组对象或定义过数据项的地方来实现。 与每个数据项相关的是值、品质和时间戳。值是用变量的形式来表示,品质是用现场总线定义的类似说明表示。注意数据项和数据源 的区别:数据项仅仅是带数据源的接口。例如,无论OPC客户端当前是否在访问DCS系统中的标签,标签总是存在的。OPC数据项应被视 为简单定义的数据地址,而不是当作地址指向数据的真实物理来源。

虽然OPC主要是为网络服务器存取数据而设计,但是其接口可被用在应用程序中的很多地方。在最底层,OPC可以获得原始数据, 这些原始数据来自于现场设备到SCADA或DCS,或者是来自于SCADA或DCS到应用层的。其架构和设计使构建OPC服务器成为可能, 该服务器允许客户端应用程序经单一的对象从许多不同的OPC供应商提供的,运行在不同节点的OPC服务器存取数据。

OPC是两套接口的规范:OPC自定义接口和OPC自动化接口。OPC规范明确定义了COM接口,而不是这些接口的执行。 规范对“期望接口在客户端应用程序中物尽其用”的行为进行了详细的说明,包括架构和看起来对架构最适合的接口的说明。 和所有的COM接口的执行一样,OPC架构是一种客户端/服务器模型,在该模型中,OPC服务器组件提供并管理OPC对象的接口。 在实施OPC服务器时,有一些特别的注意事项,主要问题是到实际设备的非共享通讯路径的数据传输频率问题。因此, 我们希望OPC服务器实现局部或远程执行,其中包括负责有效地对物理设备进行数据采集的代码。通过指定的OPC自定义和自动化接口, 可以实现OPC客户端应用程序与OPC服务器间的通信。OPC服务器必须使用自定义接口,对于自动化接口则可以选择使用。 inproc(OPC处理程序)可用于配置接口,并提供附加数据项级OPC自动化接口的功能。

我们一直期待服务器能增强和优化不同的客户端请求的数据存取,这样就可采用物理设备来提升数据通信的效率。对输入(读)而言, 因为不同OPC客户端的异步分配或同步采集,因此设备返回的数据要被送入缓冲区。对于输出(写)而言,OPC服务器代替OPC客户端更新 物理设备的数据。


DDE

DDE(Dynamic Data Exchange)是为在同一台计算机或不同计算机上运行的程序提供动态数据交换,最早由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共享来建立网络上不同工作站之间的连接,从而实现站站之间的动态信息共享。