ROFINET和OPC UA是两种常见的协议,过去这两个协议有两个不同的角色。PROFINET通常用于现场设备和本地控制器之间的实时数据通信。而OPC UA通常用于在本地控制器和更高级别的MES和SCADA系统之间进行通信。
服务器提供一些数据,客户端使用数据(类似于Modbus的服务器和客户端访问模式)。
当PROFINET IO控制器也实现了OPC UA服务器功能,就可将数据传给OPC UA客户端(如HMI、工程系统、工业云):
两者满足了工业通信生态系统中的两种不同需求。OPC UA用于系统监控和诊断,而PROFINET用于处理本地控制回路。
但随着技术的不断发展,OPC UA客户端和服务器的实现使得工业控制系统之间清晰的界限如今正在发生变化:
这使得自动化控制网络原本清晰的分层架构开始变得有些模糊。
这种OPC UA产生的模糊界限让人不由会产生以下问题:
严格来说不太可能,让我们来比较一下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控制。