介绍

PLCopen和OPC基金会之间的合作不仅仅体现在规范制定活动中,合作的结果也将在实际应用中得到体现。它们之间的合作融合了两项技术:

  • PLCopen 技术是基于IEC 61131-3 编程标准。

  • OPC 基金会技术是基于OPC 统一架构,该规范由其基金会成员共同制定且已提交至IEC 以实现标准化。

总体而言,它们的结合简化了生产线、设备装置之间的通信,降低了创建正确接口和信息的工程工作量。

PLCopen 和 IEC 61131-3

著名的编程标准IEC 61131-3制订了几个细则,他们作为信息和数据对其他系统是非常有用的。最先的一些细则展现在软件模型中。例如配置描述了整体的控制对象;资源是执行IEC程序的处理手段;任务控制着一系列程序或功能块的执行;程序通常由函数和功能块组成,可用于数据交换。函数和功能块是基本的构建模块,包括数据结构和算法。

这里的前缀Ctrl是为了避免与OPC UA中的术语产生冲突。例如,PLCopen和OPC UA中对“程序”的定义略有不同。

图1. IEC 61131-3 软件模型

该模型中的数据交换是通过变量来实现的,变量的调用通常是通过其名称进行。为了更好地描述信息内容,变量可以有复杂的结构。变量也被用于带有数据结构的函数和功能块。

OPC 基金会和OPC 统一架构

PLCopen/IEC 61131-3中的软件模型也正是用在OPC UA中的信息模型。OPC标准主要用于控制器或设备与HMI、SCADA系统之间的在线数据交换,其中控制器或设备的数据由OPC服务器提供并通过OPC客户端进行采集使用。OPC UA是独立于平台的,并且服务器和客户端可以直接集成到设备和控制器中。OPC UA的安全、访问控制以及可靠性等特性是直接建立在传输机制中。

OPC UA的信息模型为服务器公开对象给客户端提供了一种标准方法。OPC UA中的对象由其他对象、变量和方法构成。OPC UA还允许表达与其他对象之间存在的关系。OPC UA中的对象用来表示IEC61131-3中软件模型的组件,如:程序、任务、资源、功能块以及用于表示数值的变量。

OPC UA服务器提供给客户端的一组对象及相关信息被称为其地址空间。OPC UA 提供了如下功能:浏览包含数据项的分层命名空间,以及读取、写入并监控这些项的数据变化。

图2. OPC UA 客户端/服务器端架构

如果在OPC UA信息模型中表示IEC软件模型,可以如下图3所示,图3中的模型可划分为四层,上面两层与OPC UA相关。第三层描绘了IEC 61131-3与OPC-UA之间的联系。图中给出了IEC软件模型的元素,并在最底层映射到控制架构。

图3. 将OPC UA设备集成作为基础的IEC模型

图4描述了一个自定义功能块到OPC UA信息模型的映射。在图4的左侧可见一个命名为“CTU_INT”的计数器功能模块的定义,接下来是输入变量、内部变量和输出变量的定义,再接下来是定义功能的算法或代码。再下面是一段使用同一个功能块的两个实例程序:MyCounter和MyCounter2。

右侧是信息模型,包括了在顶部名字为“CtrlFunctionBlockType”的“Types”。在其下面的左边是输入变量,右边是输出和内部变量。正下面可以看到功能块的两个“实例”。

通过这个信息模型,控制器上的OPC UA服务器可以向客户端提供图中右侧所有关于功能块类型和运行实例的信息。这使透明的通信成为可能。由于信息模型可以在运行时被发现,而且功能块实例可以耦合到客户端准备的一个图形化模板中,PLC和可视化模块的可重用性、工程效率将会提高。

图4. 功能块、程序及其在OPC UA信息模型表示PLCopen & OPC UA 信息模型

OPC 基金会和PLCopen 国际组织通过技术方面的合作致力于独立于平台和制造商的信息与通信结构规范的实现。OPC UA(OPC 统一架构)和IEC 61131-3 的这种技术结合对实现自动化结构规范化产生了有益作用。

这项工作的目标是提高控制器、可视化模块以及他们之间通讯的可复用性,长远目标是显著提高工程过程效率。

举个例子,可以想象一个场景,一个运行在由不同供应商提供的不同控制平台上的PLC工程,但在外部通过可视化工具或是从MES/ERP的角度来看是完全一样的:这主要得益于OPC UA公共工作组的努力,将IEC61131-3软件模型(包括所有PLC对象和描述)描述到OPC UA命名空间中。

如今在不同的行业领域许多老旧的数据交换协议仍在使用。它们基本无法传输复杂数据并且扩展性非常有限。然而,OPC UA为通用、安全、可靠的网络通信提供了基础,比如提供了可配置的超时、连接中断的监测以及加密通信。若在IEC 61131环境下采用这种通信方式作为标准,将引领许多行业进入一个全新的信息交互模式:如果能制定行业规范,比如数据结构或功能块,那么安全高效的数据交换以及可视化对象的重用性问题将迎刃而解。随着PLCopen和OPC UA的结合,在IEC 61131-3之上一个更高级别的互操作性将会实现标准化。

首先是将IEC 61131-3的软件模型映射到OPC UA的信息模型中,这规范了带有OPC UA服务器技术的控制器将他们的数据结构和功能块公开给HMI等OPC UA客户端的方式。

如今,一个IEC 61131-3控制程序运行在由不同供应商提供的不同控制平台上,通过OPC UA与控制器进行通信并读取过程变量。尽管程序的控制代码相同,但因不同平台在OPC UA服务器命名空间内的表示方式各不相同,所以每次都需要修改可视化程序以适配不同的控制器。然而,客户的需求是相同的控制工程通过OPC UA可以用相同的方式访问。除了可以访问控制器变量的实例以外,更进一步要能访问元数据,比如复杂数据结构如何构造的描述、使用的功能块的类型、以及输入输出参数变量。其他元数据可以是任务数及其周期。整个IEC 61131-3软件模型和控制器程序被映射到OPC UA的命名空间。该命名空间可以由集成到嵌入式控制器的OPC UA服务器提供。

为什么使用OPC UA?通过使用OPC UA,如下问题的将能找到解决办法:

  • 如何找到通信的对端?

  • 如何使得通信对端的数据、元数据以及功能变得可访问?

  • 如何使通信可靠、高性能以及独立于操作系统和编程语言?

  • 如何确保安全(比如身份验证与加密等)?

OPC UA提供了通用、安全且可靠的网络通信的基础,比如提供的可配置的超时和连接中断的监测、加密通信和多种通信协议,这些都是OPC UA的一部分。许多其他组织使用OPC UA作为现代化的、高效的传输层。PLCopen很快认识到了这种可能性,对通信双方交换的内容(不仅是变量,还有函数、控制逻辑的元数据等)进行描述,以适应和兼容OPC UA。

在信息模型的基础工作完成之后,还制定了通信功能块规范,能将控制器直接接入到OPC UA框架下。这意味着巨大简化,因为现在控制程序员经常需要处理相关的分支协议,而这些协议每次都需要修改或扩展以便能支持安全性和更多的数据对象。随着PLCopen和OPC UA的结合,在IEC 61131-3之上一个更高级别的互操作性将会实现标准化。

PLCopen组织简介

自1992年成立至今,PLCopen国际组织契而不舍地以改善自动化的效率为己任,开发发展了涵盖工业控制工程编程、调试、维护、服务的统一平台,运动控制,通信,机械功能安全以及基于IEC 61131-3的XML模式等规范,更重要的是通过在欧洲的实际应用验证和广泛运用,进而推广到包括美国、日本、中国等工业发达国家和新兴发展中国家,乃至全世界。这些都作为在德国工业4.0推进过程中重要的基础工业技术,特别是软件定义制造的方向上一类不可或缺软件规范而载入了工业发展的史册。

仅仅停留于此绝不是PLCopen的风格,这几年来还殚心竭虑地从事如何把涉及PLC、运动控制、安全控制等诸方面的工业硬软资产科学的映射到虚拟世界中去。本文简要的概括了这些积极有效的工作,以期赢得智能制造圈内人士的关注,一起来推动和发展。

PLCopen中国组织成立于2005年。作为PLCopen国际组织的成员,12年来不遗余力的推动上述的各项PLCopen技术和规范在我国的成功而广泛的应用。尤其在近几年以智能制造为核心的《中国制造2025》规划的实施过程中,倡导PLC控制、机器人控制和CNC控制的融合发展,倡导为高等教育的新工科建设和职业教育改革的人才培养提供因应世界发展趋势的理念和技术。正因为多年的耕耘和积累,许多PLCopen中国组织的成员在为我国的PLC,包括机器人控制和CNC控制在内的运动控制等多个方面都作出了积极贡献。


PLCopen中国组织

名誉主席:彭瑜

主席:严义

--------------------------------

地址:北京市西城区德胜门外教场口1号1号楼404

电话:010-62077005

邮箱:plcopen@cameta.org.cn

opcua客户端实现断线重连_PLCopen amp; OPC UA信息模型相关推荐

  1. opcua客户端实现断线重连_干货:通过OPC UA协议访问西门子1500数据

    轻松通过OPC UA协议访问西门子1500数据 如何实现西门子1500的OPC UA通信? 1. 功能实现 S7-1500从V2.0开始支持作为OPC UA服务器的功能,本例使用KepServer 作 ...

  2. opcua客户端实现断线重连_虹科教您|实现OPC UA C/S快速部署及数据采集

    想获取更多IIOT干货 请点击蓝字,关注我们 虹科HMI解决方案 高性能 高防护 宽温 ★★★★★ 简介 边缘HMI需要实现的主要功能包括连接到该边缘HMI的边缘设备的数据采集,实现边缘计算.提供人机 ...

  3. 浅谈IM软件客户端的断线重连、心跳和长在线

    ----------------------------------------------------欢迎查看IM软件业务知识<专栏>-------------------------- ...

  4. 浅析 Netty 实现心跳机制与断线重连

    基础 何为心跳 顾名思义, 所谓 心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性. 为什么需要心跳 因为网络的不可 ...

  5. 四、Netty 实现心跳机制与断线重连

    一.概述 何为心跳 顾名思义, 所谓心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性. 为什么需要心跳 因为网络的不 ...

  6. netty心跳过程中 发送消息失败_Netty 4.0 实现心跳检测和断线重连

    arg0.pipeline().addLast("ping", new IdleStateHandler(25, 15, 10,TimeUnit.SECONDS)); 这个处理器, ...

  7. 天天炫斗服务器维修,【天天炫斗】弱网处理及断线重连方案

    [天天炫斗]弱网处理及断线重连方案 --hessionhe 一背景及问题描述 天天炫斗采用的是TCP长连接方式,消息交互使用的是TDR方案,弱网问题以及断线重连的情况在手游运营中都是非常普遍的,也会相 ...

  8. Netty 心跳机制及断线重连

    1.心跳检测 心跳检测是在TCP长连接中,客户端和服务端定时向对方发送数据包通知对方自己还在线,保证连接的有效性的一种机制. 为什么使用心跳检测? 假死:如果底层的TCP连接(socket连接)已经断 ...

  9. Netty 4.0 实现心跳检测和断线重连

    一 实现心跳检测 原理:当服务端每隔一段时间就会向客户端发送心跳包,客户端收到心跳包后同样也会回一个心跳包给服务端 一般情况下,客户端与服务端在指定时间内没有任何读写请求,就会认为连接是idle(空闲 ...

最新文章

  1. 使用 Composer 安装 Laravel 框架
  2. 别人给你网盘分享东西怎么搞到电脑上看呢?
  3. 行波iq调制器_低功率IQ调制器的基带设计实例—电路精选(1)
  4. SPARK RDD JAVA API 用法指南
  5. 4位加法器的设计代码verilog_一个简单的8位处理器完整设计过程及verilog代码
  6. php+js+return+true,js中return、return false、return true的区别
  7. 大厂开发“大牛”,你距离他们有多远?
  8. 【15】万魂杀服务器开发之原始NIO、Mina、Netty使用
  9. 修改ns服务器,修改你的域名ns服务器地址
  10. allegro跨层复制铜皮
  11. 博士入学考题(ZZ)
  12. 戴尔服务器raid用联想硬盘吗,戴尔服务器安装centons系统硬盘格式是raid还是ahci...
  13. 多重积分的理解以及转动惯量的求解
  14. 进入3.0时代,紫光云致力做好数字化转型的底座
  15. html列表序号为圆点的,HTML_列表标签
  16. UI设计新手必知的字体设计规范!
  17. training@USC 12 2
  18. 《概率论与数理统计》手写笔记
  19. datagrid设置单元格边框_如何设置datagridview某一个单元格的边框样式
  20. 交易市场中的测不准原理

热门文章

  1. Eclipse里不同的project,右键选择属性property facet里看到的list 内容是否相同
  2. Mockito框架研究 - how is match any string implemented
  3. 如何处理SAP Fiori Launchpad错误消息:Could not start the app due to a configuration problem
  4. sqlplus连接不上oracle,环境变量设置错误导致sqlplus 连接不上oracle
  5. python怎么实现数据可视化_数据之美,python实现数据可视化!
  6. 特征工程用java或python,机器学习-特征工程-Feature generation 和 Feature selection(示例代码)...
  7. 光伏电站清扫机器人_轻型光伏电站清扫机器人的制作方法
  8. python测试函数怎么写_Python - 函数
  9. android4.0 菜单,三大主流安卓4.0界面解析 MIUI最实用
  10. python测试代码性能_使用python timeit 模块检测代码性能