基于过程控制的链接与嵌入:dde与opc技术的工作机制
发表时间:2023-11-29 20:03:41
文章来源:炫佑科技
浏览次数:145
菏泽炫佑科技
基于过程控制的链接与嵌入:dde与opc技术的工作机制
随着工业生产的不断发展和自动化系统集成度的不断提高,工业自动化系统软件取得了长足的进步。 然而,工业系统中的设备数量不断增加,对现场信息交互和共享能力的要求不断提高。 智能设备之间或智能设备与控制系统之间使用专用驱动程序共享信息的传统通信方式已经不能满足工业控制的需求。 系统开发需求。 因此,为了解决工业系统硬件设备对软件系统升级换代带来的不便,更好地实现不同设备厂商硬件产品的集成互联,增强系统的稳定性和可靠性,标准化工业自动化软件接口的统一已经成为工业控制领域必须面对的问题。
为了使自动化软件的开发能够有统一的接口标准,不同自动化程序之间的dde(动态数据交换:data-ge)和opc(基于过程控制的链接和嵌入:ole for)技术的出现和应用系统能够实现简单的交互和无缝互连做出了巨大的贡献。
2 dde和opc技术的工作机制
2.1 dde技术的工作机制
Dde为同一台计算机或不同计算机上运行的程序提供动态数据交换,由该公司首先提出。 动态数据交换(DDE)技术以其实时性好、网络通信连接方便的特点,在控制软件与信息网络的集成中得到了广泛的应用。
动态数据交换基于消息机制,各个应用程序通过传递消息来进行通信和交换信息。 dde消息传递采用/模式。 客户端()是数据的请求者和接受者,服务器()是数据的提供者。 两者之间的数据传输是通过请求、响应、发送三个步骤完成的。 dde协议采用()、topic(主题)和data item(项目)三级命名来标识dde传输的数据单元。 通常,() 是应用程序的文件名,主题是对服务器有意义的信息单元。 dde客户端与服务程序之间的每一次会话都是由客户端首先启动的,因此在每个客户端启动之前,都应该先将dde服务器投入运行。
当客户端程序需要向服务器程序请求数据时,客户端程序向所有当前正在运行的应用程序发送wm-dde-消息。 该消息不仅包含它所需要的服务器名称()和主题名称(topic),还指定了它期望的数据类型,接收wm-dde-消息的应用程序通过识别服务器名称和会话主题来确定是否响应。 一旦 dde 服务器响应传播的消息,dde 会话就开始。
dde有三种工作模式:冷链接、暖链接和热链接。 冷连接模式下,数据发生变化后不会主动通知,但可以随时读写数据; 温连接模式下,数据发生变化后会立即通知您,并在通知后恢复数据; 在热连接中,这样数据发生变化后会立即通知您,同时直接发送变化的数据。
dde的网络形式称为,它包含了dde的所有功能,是动态数据交换(dde)的扩展,可以跨网络的计算机之间使用。 采用后,两个或多个网络上的应用程序可以通过DDE共享在网络上的不同工作站之间建立连接,从而实现站之间的动态信息共享。
2.2 OPC技术的工作机制
在OPC技术出现之前,DDE技术是大多数控制系统都支持并采用的数据交换方式。 但由于DDE是一种基于信息传输的技术,当通信量较大时基于过程控制的链接与嵌入:dde与opc技术的工作机制,会出现数据刷新速度慢、安全管理机制差、可靠性低等现象,从而可能导致DDE客户端程序失败。 许久没有回应。 与DDE技术相比,基于COM和DCOM技术的OPC技术具有数据传输性能高、安全管理性能好、开发成本低等特点。
OPC规范的初始阶段由OPC基金会的先驱Opto 22于1996年8月发布。 目前OPC基金会在全球拥有300多家会员,几乎囊括了全球所有主要控制系统。 系统、仪器仪表和过程控制系统制造商。
OPC基于ole/com/dcom技术,是ole(and)的缩写。 它是微软的对象链接和嵌入技术在过程控制中的应用。 和dde一样,opc也使用/模式。 OPC服务器是数据源的提供者。 数据源可以是PLC、DCS、条码阅读器等控制设备。 根据控制系统的构成,作为数据源的 OPC 服务器可以与 OPC 应用程序位于同一台计算机上。 本地运行的OPC服务器也可以是在另一台计算机上运行的远程OPC服务器。 OPC客户端是数据的使用者。 它根据OPC接口规范从OPC服务器获取所需的数据。
opc服务器主要由三部分组成:服务器()、组(group)和数据项(item)。 服务器对象保存有关服务器的所有信息,并将服务器作为 OPC 组对象的容器。 OPC组对象包括公共组和本地组(私有组)。 公共组由多个客户共享,本地组仅属于一个OPC客户。 组可以代表特定设备的数据项。 OPC客户端可以通过组对象读写数据,并且可以设置OPC服务器应该提供给OPC数据的更新速率。 opc数据项是读写数据的*小逻辑单元(实际应用中,可能是物理设备的寄存器,也可能是寄存器的某一位)。 其数据值以形式表示。 每个数据项包括值(value)、质量()和时间戳(time stamp)3个变量。 在组对象中,opc 客户端可以添加多个 opc 数据项。
opc客户端和opc服务器之间的接口有两种形式:自定义接口( )和自动化接口( )。 自定义接口是一组COM接口,主要用于使用C++语言进行应用程序开发; 自动化接口是自动化ole接口,主要用于基于VB等脚本编程语言的应用程序开发。 对于客户端应用程序的开发,使用自定义接口运行效率高,但开发难度大; 使用自动化接口,运行效率低,但开发简单。 这两个接口与OPC服务器之间的通信方式如图1所示。
图1 自定义接口和自动化接口与OPC服务器通信方式示意图
为了在分布式计算机上开发OPC客户端程序,OPC标准采用DCOM技术来实现服务器和客户端程序之间的通信。
OPC中数据访问主要有两种方式:同步数据访问和异步数据访问。 在同步数据访问期间,OPC 应用程序在 OPC 服务器返回 OPC 应用程序所需的数据之前保持等待状态。 也就是说,同步数据访问在所需操作完成之前无法执行任何 OPC 应用程序。 加工。 相反,异步数据访问在向OPC服务器发出数据访问请求后立即返回到OPC应用程序端的主处理程序。 当OPC服务器完成数据访问后,通知OPC应用程序,OPC应用程序获取数据。 访问结果。 当OPC应用程序使用自动化接口访问OPC服务器时,同步和异步数据操作分别由四个OPC组对象的方法函数来实现。
3 DDE和OPC技术应用
目前,DDE和OPC技术在许多世界著名自动化厂商的I/O通讯服务器、Scada等自动化软件中得到体现。 例如公司的sum、公司的net和wincc、-ab公司的sum等。其中sum既可以用作opc,也可以用作dde; wincc 和 sum 可以用作 opc 和 dde。 同时,由于各软件接口均符合DDE和OPC接口规范,不同厂家的I/O通讯、SCADA等软件产品也可以轻松互连。
下面以DDE和OPC技术在工业自动化软件中的应用为例,以本公司与()和-ab公司的DDE通讯、该公司的wincc与net、wincc与OPC通讯方式为例。
是公司开发的一款用于S7 200/300/400系列PLC以太网数据访问的服务器软件。 支持dde、opc等多种通讯方式。 当客户端程序通信接口使用dde连接时,数据访问使用节点名(node name)、应用程序名(这里的name)、主题名(topic name)和项目名(item name)。 等级制度。 当通信接口以OPC模式连接时,数据访问使用节点名称(node name)、服务器名称(此处名称:..1)、组名称(group name)、设备组名称(group),链接名称和项目名称的层次结构。 每个级别的项目都可以在软件界面中配置和实现。
对于工程应用,需要在管理界面的smc..1目录中根据需要添加接口类型(tcp/ip)和接口处理器类型(s7 plc),并进行必要的参数设置,然后添加不同的主题。 方便不同变量的分类和管理。 对标签变量对的访问是通过“访问名称”的设置来实现的,因此“访问名称”的设置必须与软件中的设置相对应。 例如,“访问名称”中的“应用程序名称”应设置为 ,“访问名称”中的“主题名称”设置应与添加的主题名称完全相同。另外,标签变量“” name”也必须按照项目名称的定义形式填写。 例如,访问s7 plc数据块地址字的形式为db11.w80,访问数据块地址dword的形式为db11.d80,而输入/输出位的访问形式为i5.2 /q7.5 等。
和公司的
与-iect一样,它也支持opc/dde通信方式。 与DDE通信时,首先需要在“dde/opc主题”对话框中添加新主题,并建立该主题与要连接的PLC CPU的对应关系,然后调整“访问名称”对应配置。 不过,此时“访问名称”中的“应用程序名称”应设置为 ,“访问名称”中的“主题名称”应与 中添加的主题名称完全相同。 标签变量“项目名称”的填写也应遵循项目名称的定义形式。 例如,访问plc cpu中的全局变量标签地址是plc变量地址的标签名称自动化软件开发,而访问cpu中的程序变量标签地址是:
。形式。
使用公司的wincc作为OPC以OPC方式连接OPC服务器时,首先需要在WinCC资源管理器中添加OPC通讯驱动opc.chn,然后选择出现的OPC通道单元的“连接属性”以及创建的变量。 在“变量地址属性”对话框中分别填写“opc服务器名称”和“变量地址名称”,这样就可以建立变量与opc服务器的连接。 需要注意的是,不同的OPC服务器有不同的OPC服务器名称和地址格式。 例如,Net OPC服务器的名称和地址访问格式(以S7系列PLC按照S7协议进行数据访问为例)为“opc”。 和“s7:[]
”,opc服务器的名称和访问该系列plc数据的地址格式分别为“opc”和“[]
”。
同理,其他scada软件与相关dde、opc 软件通信的实现方法与此类似,不再赘述。
另外,由于dde和opc都是标准规范,因此也可以根据需要实现dde和opc之间的接口转换,以满足实际需要。 比如该公司的就是一款专用软件,实现opc和dde之间的接口转换。
4 使用vb开发dde和opc客户端
如上所述,目前很多scada软件都采用dde和opc技术规范作为其软件接口,而scada监控软件在实际工程应用中扮演着dde和opc客户端的角色。 另外,公司的net opc scout和-ab公司的opc test等测试软件也是dde和opc客户端软件的例子。
Dde和OPC客户端软件可以使用C++、Basic等编程软件来实现。 这里主要介绍如何使用Basic 6.0编写DDE和OPC客户端实现以及与DDE和OPC服务器通信。
4.1 使用vb开发dde客户端
basic作为公司软件产品的重要成员,自然支持操作系统下的dde技术。 Basic 提供了一些用于 dde 动态数据交换的具有 、 、 等属性的控件,以及 、 、 、 等方法。 其中,两个属性分别对应dde通信架构中的主体名称和数据项名称,分别表示dde客户端和dde服务器的连接尝试时间和连接模式(数据交换模式)。 共有三种方式,其中 方法是*常用的。 主要用于与dde建立“热链接”,即当dde服务器数据发生变化时,主动向客户端发送数据。 ,分别用于dde客户端对dde服务器数据的读写操作。
根据应用程序与服务器程序之间的DDE通信机制,可以在基本的编程环境中开发出适合实际需要的DDE客户端应用程序。 例如basic访问程序变量“”时,其代码为.=“view|tagn-ame”
.=“”
.=1
。
其中,代码中的“view”和“”分别代表应用名称和主题名称,“”值为1,表示应用已连接(即“热连接”)。 这样,当应用程序代码执行时, 的值就会随着“”变量的变化而变化。
也可以在basic中添加和,并与 、 建立DDE通讯连接,使它们分别随所连接的s7-300 plc数据db5.dbw20和1756-l55 plc全局变量“”的值而变化。 他们的代码分别如下:
。 =“
-ct|”
。 =“db5.w20”
.=1
。
。 =“|” &“”
.=“”
.=1
。
其中,“”和“”、“”和“”分别是and的应用名称和在dde服务器中建立的主题名称。 “db5.w20”和“”分别对应s7-300 plc数据db5.dbw20和1756-l55 plc全局变量。 这样,当执行这段代码时,sum的值就会随着plc中的数据db5.dbw20和1756-l55 plc而变化。 随着变量值的变化而变化。
它是dde的网络扩展形式,主要为网络上不同计算机之间的动态数据交换提供便利。 在基本编程环境中,您还可以开发基于客户端的应用程序。 与开发dde客户端不同,网络上作为dde服务器和客户端的计算机必须启动.exe服务,并在作为dde服务器的计算机上同时启动.exe程序,并为新创建的dde进行必要的设置分享。 以下代码的功能是让计算机pc02读取计算机pc01上的dde服务器收集的“”plc变量的值。
.=“\pc01
ndde$|"
.=“”
.=1
。
由于访问是“\|!”的形式,所以上面代码中的“pc01”和“”分别是计算机名和. exe程序中的新共享名称以及dde访问所需的应用程序名称和主题名称在新共享“”的属性对话框中设置。
另外,由于excel还支持dde技术,因此pc01计算机上dde服务器plc变量的变化也可以反映在pc02计算机上的excel表中。 只需要在需要显示值的单元格中填写以下代码='\$'| !
4.2 使用vb开发opc客户端
使用basic开发的OPC客户端应用程序主要利用自动化通信接口和OPC服务器程序来实现通信。 OPC基金会提供的OPC自动化.dll动态链接库集成了所有用于访问OPC服务器的对象、属性和方法,为使用基础开发OPC客户端应用程序提供了极大的便利。 OPC客户端程序在设计程序时,首先应生成OPC服务器支持的OPC对象,然后利用OPC对象支持的属性和方法来实现对OPC服务器的操作和访问。
OPC数据访问对象主要包括OPC服务器()、OPC组集合()、OPC组()、OPC标签集合()、OPC标签()、OPC浏览器()等部分。 编程时首先要在基础环境中选择引用OPC 2.0接口。 此时,OPC对象会自动添加到正在开发的项目中,然后根据需要创建这些对象的实例并利用它们的属性和方法来实现对opc服务器的访问。 访问opc服务器主要包括声明opc对象实例、连接opc、添加标签变量、读写opc服务器(同步/异步)、断开连接等几个步骤。
opc对象实例的声明主要包括opc服务器、opc组集、opc组、opc标签集、opc服务器句柄的声明以及程序所需的其他实例的声明。 opc客户端与opc之间的连接主要是通过调用opc服务器对象实例的方法函数来完成的。 例如,连接本地计算机和opc的代码分别为(“..1”)和(“opc”)。
连接网络上的远程计算机(IP 地址为 10.144.45.45)和 opc 的代码为 ("..1", "\10.144.45.45") 和 (" opc ", "\10.144.45.45")分别。
需要注意的是,进行远程OPC连接时,必须在远程计算机上运行程序,并且必须启动计算机OPC服务器的dcom服务。
标签变量的添加主要是通过opc标签集合的方法函数实现的,该方法函数定义了添加的标签数量、标签变量名(数组)、应用程序句柄(数组)、opc服务器句柄(数组)、错误代码(数组) )等信息。 例如,为OPC服务器添加标签变量的代码为(1)=".jsbf.db2,x48.0"或(1)=""
。 , , , , 呃
其中,是opc标签集合的一个实例。 添加标签变量后,可以通过 、 、 、 四个函数读写OPC服务器中相应的数据。 读写操作完成后,程序会自动执行、、-、-te等过程,在此程序代码中可以实现OPC客户端应用程序的数据显示、故障诊断等功能。
另外,完成对OPC服务器的读写后,可以调用OPC服务器的方法与对应的OPC服务器断开连接。 但为了节省系统成本,增加程序稳定性,通常需要在与opc服务器断开连接前,将opc服务器中的opc标签和opc组删除,并将opc集合对象设置为 ,然后再执行操作opc 对象实例设置为。
5 结论
DDE和OPC技术的出现和发展已广泛应用于包括工业自动控制在内的许多领域。 DDE作为一种相对成熟的数据交换方式,支持*为全面,OPC技术也越来越受到众多自动化软硬件公司的支持和青睐。 因此,在未来很长一段时间内,DDE和OPC将继续在各自的应用领域发挥重要作用,DDE和OPC技术的出现和发展为我们提供了方便的数据访问接口,从而使控制系统进一步开放并惠及用户系统。