前段时间有小伙伴和我讨论PROFINET实时通信的问题,PROFINET分布式IO设备和IO控制器之间采用的是实时通信(RT)还是等时同步通信(IRT)呢?今天这篇文章,我们就来讨论下这个问题。本文包括如下几个主题:
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监视器;
② PROFINET CBA PROFINET CBA(Component-Based Automation)是基于组件的自动化,它适用于设备/系统之间的通信。如果说PROFINET IO是控制器与现场设备的IO数据交换,那么PROFINET CBA则提供了多个IO系统之间的标准接口,可以组成更大的系统。 2、PROFINET的通信等级 在工业自动化控制中,不同的控制对象其实时性要求也不同。比如过程参数的设置、设备的诊断等一般没有实时性要求,但是对于分布式传感器数据的交换就要满足一定的实时性要求;而对于运动控制,其实时性要求就更高。基于不同控制对象的实时性要求的不同,PROFINET分成三种不同的通信等级:
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的通信等级就先聊到这里。我最近开通了微信视频号,以视频的方式分享工控小知识,欢迎扫描下方的二维码体验:
|
|
来自: 阿明哥哥资料区 > 《68.通讯连接与协议》