ROFINET和OPC UA是两种常见的协议,过去这两个协议有两个不同的角色。PROFINET通常用于现场设备和本地控制器之间的实时数据通信。而OPC UA通常用于在本地控制器和更高级别的MES和SCADA系统之间进行通信。
OPC UA 网络架构
- PROFINET网络由IO控制器和IO设备组成;
- OPC UA网络由客户端和服务器组成;
服务器提供一些数据,客户端使用数据(类似于Modbus的服务器和客户端访问模式)。
当PROFINET IO控制器也实现了OPC UA服务器功能,就可将数据传给OPC UA客户端(如HMI、工程系统、工业云):
两者满足了工业通信生态系统中的两种不同需求。OPC UA用于系统监控和诊断,而PROFINET用于处理本地控制回路。
但随着技术的不断发展,OPC UA客户端和服务器的实现使得工业控制系统之间清晰的界限如今正在发生变化:
- 现场设备(PROFINET IO设备)也可以实现OPC UA服务器功能,结果是原本作为OPC UA客户端的HMI等上位机监视设备也可以直接访问现场设备的数据
- PLC(PROFINET IO控制器)也不再局限于服务器功能,增加了OPC UA客户端功能,也就有了一些原本HMI等设备才有的监视作用
这使得自动化控制网络原本清晰的分层架构开始变得有些模糊。
细说两者差异
这种OPC UA产生的模糊界限让人不由会产生以下问题:
- OPC UA也属于现场总线或工业以太网吗?
- 可以交换实时数据吗?
- 会取代PROFINET、Ethernet/IP、SERCOS、EtherCAT或其他工业以太网吗?
严格来说不太可能,让我们来比较一下OPC UA和PROFINET在各自使用场合的性能。
指标 | PROFINET | OPC UA |
---|---|---|
循环时间 | 0.125 - 512 ms | 约200ms, 取决于服务器性能 |
抖动 | 0.001 - 1 ms | 10-100 ms |
数据格式 | 简单的内置数据结构 | 面向对象的信息模型 |
网络边界 | 局域网内传输 | 互联网上传输 |
周期数据 | 实时性能 | 尽力而为的性能 |
PROFINET和OPC UA以两种非常不同的方式进行。PROFINET强调实时通信,而OPC UA基于TCP/IP协议实现,可以交换几乎任何类型的信息,数据结构非常灵活,但处理速度较慢、延迟较高和处理器开销较大。
不难看出,OPC UA很难做到实时通信,尤其不适合于运动控制领域。因此,OPC UA与PROFINET一般会在自动化控制系统中扮演截然不同的角色,OPC UA适合用在监视系统(SCADA)中,而PROFINET用于分布式I/O控制。