OPC UA Over TSN 的实时能力

        在时间敏感网络上实现OPC UA 协议是一个热门话题,OPC UA 很热,TSN 也很热。从网络上的许多文章描述,OPC UA over TSN 代表了现场总线的未来。它们既能完成数字化建模,又能实现实时通信。看起来非常的完美。但是评估任何一项技术,离开了实际的测试数据,都是不够充分的。就拿这两项技术而言,实时性能力到底能达到什么水平?有的文章说能够达到100us 的周期(cycle),也有的讲400us 到1 ms。这种数据其实也是似是而非的。因为还要看每个节点的使用什么处理器(Intel 的i7与cortex-A 的处理器有很大的区别),每个周期传输多少数据,网络上有多少个节点。网络能够看到的测试还比较少。

一个测试

        在网络上找到这一篇文章,他们做了一些测试,

Real-time capable OPC-UA Programs over TSN for distributed industrial control

实验结果

        我在此摘要上述文章中一些实验结果:

1 采用Intel Core i7-3615QE 四核 CPU(2.3G主频)的工业电脑

2 Intel i210网卡互联

3 具有实时能力的Preempt-RT Linux Kernel 5.0.14.

4 使用开源OPC UA open62541 PubSub 模式

测试结果

测试的方法是不同长度的数据,发送一小时,测试的结果如下:

当传输8 到 160个字节(周期=200us) 测量事件1小时 数据消息大约180 million。

        文章中没有提及CPU 占用的时间,他们使用的工业PC的性能还是比较高的。如果换作低性能ARM 处理器 的话,OPC UA 的协议栈处理时间也是要从分考虑的因素。阅读过open62541 协议栈源代码的读者可以发现,OPC UA 协议栈涉及了许多的小函数,实现数据帧的拼接和分拆。这些操作无法使用DMA 等方式来加速。当传输的数据种类多,数据量大的话。协议栈的执行时间也是比较多的

  由此看来,UPC UA 在1ms 量级周期中传输小量数据能够满足实时性要求。例如在机器人控制中,1ms 内至少传输6 个浮点数。

        笔者认为,OPC UA /TSN 更适合分布式系统中设备之间的数据交换。设备之间的数据交换的数据量相对少,周期超过1ms。它们可能不适合EtherCAT 高速现场数据传输的应用场合。

  目前有一些自动控制厂商在产品中增加了OPC UA 的协议。对于小型设备而言,增加OPC UA 协议不能够影响原有控制功能的实时性要求。一种简单的方式是开发以太OPC UA 网关设备。或者在PLC 中增加一个独立的OPCUA模块。

OPC UA 的应用场景

  • 设备与SCADA 系统之间的接口
  • 设备与IT 系统(ERP,MES)的接口
  • 设备与云端的接口
  • 构建以OPC UA 协议为基础的控制系统

大概只有最后一种更需要实时性保证。

OPC UA/TSN 构建控制系统

使用opc ua/tsn 构建控制大致有两种

Client/server

 

        客户端/服务器模型已在典型的 SCADA 场景中成功使用,不同应用程序之间的连接数量不是很高时它会蓬勃发展。如果您有数十或数百台设备(即服务器)需要不断连接 - 或类似数量的客户端需要连接到任何服务器,您最终可能会遇到资源问题,因为每个连接和订阅都需要内务管理和它们导致网络中的单独流量。

pub/sub 模式

        在 PubSub 模型中,我们有一个Publisher组件,它可以定义包含变量或 EventNotifier 的DataSet 然后,发布者将发布DataSetMessages,其中分别包含 DataChanges 或 Events。

OPC UA 为 PubSub 定义了两种不同的网络类型。

消息队列代理 - 实际上可以是 MQTT 或 AMQP 代理。在这种情况下,消息通常是 JSON 消息,尽管 UADP 可用于提高性能。OPC 基金会为消息定义了标准的内容结构,但基本上任何 JSON 订阅者都可以解释它们。

       pub/sub模型的最大好处是能够实现一个设备发布,多个设备订阅。非常灵活。不过类似于MQTT 那样,使用broker 实现消息转发的话,实时性会大打折扣。适合OT/IT 之间的消息交换。

本地网络 -

        在本地Ethernet 上构建实时网络有许多种方式,例如EtherCAT ,PowerLink 都是一种实时网络,与工业现场大多数时间触发实时网络不同,tsn采取了预留带宽,优先可以使用 UDP 广播(或在某些情况下为单播)或以太网 APL。消息是优化的二进制 UADP,在 OPC UA 规范中定义。因此,只有 OPC UA 订阅者可以解释消息。

        为了提高实时通信,底层网络可以使用TSN。不过值得注意的是TSN 是一种预留带宽和优先级分配带宽的通信策略。与EtherCAT,Powerlink 这种时间触发实实时网络相比,实时性与网络中信息量有关。

                如果底层的pub/sub 协议不是一个开放性协议的话,设备的互联互通也将成为一个问题,因此,采用本地网络上实现OPC UA 同样存在兼容性问题。

      实现实时网络的协议有许多种类,要根据具体的应用而定。没有放之四海而皆准的方法。

OPC UA 落地的关键

        笔者在多个场合都说过,OPC UA 落地的关键是使用它为具体的设备建模,只有大多数设备构建了OPC UA 模型。但是在发展的初期,为自己的设备建立OPC UA 模型并不能够为企业带来直接的利益,大多数企业采取的策略是除非客户指定,才会增加opc ua 模型。没有主动去做这项工作的动力。有许多场合技术的推进决定于商业模式,而不是技术本身。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值