深入理解PROFINET的通信等级(RT/IRT)
前段时间有小伙伴和我讨论PROFINET实时通信的问题,PROFINET分布式IO设备和IO控制器之间采用的是实时通信(RT)还是等时同步通信(IRT)呢?今天这篇文章,我们就来讨论下这个问题。本文包括如下几个主题:
工业以太网和PROFINET技术;
PROFINET通信等级;
PROFINET实现不同通信等级的方法;
1、工业以太网和PROFINET技术
工业以太网是用于工业自动化环境中、符合IEEE 802.3标准的以太网。工业以太网采用IEEE 802.1D(媒体访问控制网桥)规范和IEEE 802.1Q(局域网虚拟网桥)规范,通过使用全双工通信技术、优先响应技术、流量控制技术及虚拟局域网技术,可以将其实时响应时间做到5~10ms左右。工业以太网和商业以太网是兼容的。
PROFINET技术是国际组织PI推出的一种总线技术,它基于工业以太网技术、TCP/IP技术和IT技术,是一种实时以太网技术。2000年年底,PROFINET作为第10种现场总线列入了IEC61158标准中。
PROFINET技术包括PROFINET IO和PROFINET CBA两部分,它们基于不同的通信模型。
① PROFINET IO
PROFINET IO用来完成工业自动化中分布式系统的控制,主要包括如下三种角色:IO控制器、IO设备和IO监视器;
IO控制器(IO Controller):PROFINET IO系统的主站,执行各种控制任务,包括:执行用户程序、与IO设备进行数据交换、处理各种通信请求等;
IO设备(IO Device):PROFINET IO系统的从站,由分布于现场的、用于获取信号的模块、传感器及执行器组成;
IO监视器(IO Supervisor):IO监视器用来组态、编程,并将相关的数据下载到IO控制器中,还可以对系统进行诊断和监控。最常见的IO监视器是用户的编程电脑。
② PROFINET CBA
PROFINET CBA(Component-Based Automation)是基于组件的自动化,它适用于设备/系统之间的通信。如果说PROFINET IO是控制器与现场设备的IO数据交换,那么PROFINET CBA则提供了多个IO系统之间的标准接口,可以组成更大的系统。
2、PROFINET的通信等级
在工业自动化控制中,不同的控制对象其实时性要求也不同。比如过程参数的设置、设备的诊断等一般没有实时性要求,但是对于分布式传感器数据的交换就要满足一定的实时性要求;而对于运动控制,其实时性要求就更高。基于不同控制对象的实时性要求的不同,PROFINET分成三种不同的通信等级:
基于TCP/UDP和IP技术的非实时性通信,可以用于组态、参数设置、诊断等非实时性要求的场合;
实时通信(Real Time Communication,RT),适合周期性数据交换的场合。比如PROFINET IO控制器和IO设备之间,不仅要完成数据的周期性交换,还必须保证一定的实时性。这里的实时性,一般要求循环周期小于10ms;PROFINET的实时通信采用的是软实时技术,不需要特殊的硬件支持;
等时同步通信(Isochronous Real Time Communication,IRT)。对于时间要求严格同步的通信,比如运动控制,实时通信(RT)的10ms数据交换周期不能满足要求,这种情况下要采用等时同步通信。该通信模式下,数据的循环刷新时间小于1ms,循环扫描周期的抖动时间不大于1us(微秒);等时同步通信需要特殊的硬件支持;
PROFINET基于标准以太网通信,对于不同的通信等级采用不同的技术方案,非常巧妙的解决了在同一个系统中实现不同通信等级要求的问题。
PROFINET IO使用了UDP/IP、RT和IRT技术;而PROFINET CBA则使用TCP/IP技术和RT技术。
3、PROFINET实现不同通信等级的方法
PROFINET中的通信采用的是生产者和消费者的方式。生产者(现场传感器)把数据传送给消费者(比如PLC),消费者对数据进行处理,然后再把处理后的数据返回给消费者。数据在传递的过程中,大部分的时间消耗在通过通信栈上,也就是以太网模型的层层打包和拆包的过程。因此,要提高数据的实时性,就要对协议栈进行改造。
PROFINET的实时通信,抛弃了TCP/IP或UDP/IP部分,使帧的长度大大缩短,通信栈需要的时间也缩短了。采用IEEE 802.3优化的第2层协议,由硬件和软件实现自己的协议栈,从而实现了不同实时性等级的要求。由于没有使用第3层(IP)协议,所以失去了路由功能。但借助MAC地址,PROFINET实时通道保证了不同站点之间能够在确定的时间间隔内完成对时间间隔要求苛刻的传输任务。
非实时通信和实时通信的模型如下图所示:
回到本文开始的问题“PROFINET分布式IO设备和IO控制器之间采用的是实时通信(RT)还是等时同步通信(IRT)呢?”其实,这两种方式在CPU组态时都存在的,并且不能更改。在同一个系统中可能三种通信等级:UDP/IP、RT和IRT都会用到。
好了,关于PROFINET的通信等级就先聊到这里。我最近开通了微信视频号,以视频的方式分享工控小知识,欢迎扫描下方的二维码体验: