[大佬] 重新认识PROFINET 01

2022-03-29 17:05:55 浏览数 (1)

在《西门子PLC通信原理探秘》系列的第一篇故事中,我提到PROFINET是我在西门子技术支持生涯的起点,由于RPOFINET我开始接触以太网,理解协议,堆栈,帧,交换机,IWLAN,实时等诸多的概念,也正是探索这些概念,通过一个现场诊断的契机,我逐步完善了自认为已经掌握的PLC通信的知识,形成了以时间片和CCP为基础的PLC通信体系,真正深入到PLC内部通信-数据交换和数据处理。还有交换机技术,作为PROFINET网络中重要的有源部件,其作用不言而喻,其概念的理解有助于理解PROFINET的工作机制。甚至后来的一连串的连锁和外延知识,例如PKI(Public Key Infrastructure),这是未来,例如在使用云等APP与现场应用之间流行的加密方式,这些知识都是源于这个起点。所以在这个专栏的起点我也选择从PROFINET开始,一步步一点点给大家展示相关PROFINET的奥秘,希望从一些独特的角度给大家刷新对这些知识的认知。

我还想多说一些,就是掌握技术的本质取决于概念和原理的理解程度,这些及其重要。我想众多的用户都是深有体会的。昨天收到来自总部的邮件回复,这是我在9月份询问总部关于PN IRT的问题,我和总部的同事进行了激烈的讨论,最后收到的竟然是研发工程师的回复,让我倍感欣慰,我知道这封邮件对我及其重要,因为它完成了我对PROFINET理解的最后一块拼图,从此在PROFINET相关知识上再无空白,可以所向披靡了。而这封邮件给我的冲击就是概念的理解,曾经我也试着按照PN规范计算PN IRT带宽预留,虽然方向是对的,但还是反映出对于IRT的时间的Scheduling没有理解到位。而这封邮件确实让我茅塞顿开,深刻的理解到概念的重要性。所以作为开篇,通过PROFINET的一些常识,我们来聊聊PROFINET的一些基本概念,后面我会逐步展开一些具体的概念,例如:通信,计算,带宽,诊断等等。

我想大多数接触PROFINET的老用户都是用过PROFIBUS的,而且在上手PROFINET也是相当容易的,这源于PROFIBUS多年的成功经验。PROFIBUS DP实时通信是主从方式,也就是主站周期性轮询各个从站,得益于以太网的全双工,PROFINET IO的实时通信采用IO控制器和IO设备之间周期性的交换数据。在PROFINET中不再有主站和从站的概念,因为IO控制器和IO设备之间的关系在通信上是平等的。从通信堆栈结构中,PROFINET借鉴PROFIBUS的成功模型,仍然使用1,2,7层,这样确保获取更高的实时性能。

在外观上,最初的IO设备,例如ET200S只有一个PN端口(Port),只支持RT通信,设备连接只能通过额外的交换机。现在IO设备的一个接口(Interface)上可以存在多个端口(Port),IO控制器也可以通过CP卡扩展更多的接口,实际上是都集成了双端口或更多端口的交换机,这样使网络连接更加灵活,甚至可以构建冗余环网,例如MRP。现在的IO控制器,例如S7-1500CPU,和IO设备,例如分布式IO ET200SP出现MAINT或MT这样的指示灯,如果该指示灯亮,表示我们需要对该设备或者网络进行维护,实际上是定义了在完好和故障之间维护的状态的这样一个全新的概念,这有利于及时发现错误,消除潜在故障,减少停机时间等。

PROFINET的版本从最初的v2.1到目前的v2.3,功能越来越完善,实时性能越来越高,支持ProfiDrive,ProfiSafe,ProfiEnergy等多种行规,是几乎可以满足各种应用的工业以太网标准。功能上,除了五花八门的各种功能,例如针对某些行业的OEM用户的Option Handling,各个版本的变化大都集于IRT的变化,也就是IRT通信算法上的变化。在v2.2版本IRT曾经出现两种IRT通信,一种是IRT High Flexibility,另一种是IRT High Performance,根据Frame_ID的不同(后面再给大家介绍这个PN帧上的这个重要字段),在RT通信类别上前者是RT_Class_2,后者为RT_Class_3,传统的IO RT通信则为RT_Class_1。在v2.3版本出现后,在IRT通信上不再出现IRT High Flexibility,自然实时类别RT_Class_2也消失了,只剩下了RT_Class_1和RT_Class_3,IRT High Performance返璞归真回归到了IRT,如果我们需要高性能,需要在TIA Portal组态时使能“Make ‘High Performance ’Possible”这个选项。但是这个选项的使能和v2.2版本中的High Performance除了名字相同,所谓的高性能在算法上和功能上完全不同。这里多说一些,选项中“Possible”这个词很有意思,大家知道这个英文单词是“可能的”意思,如果大家使用TIA Portal中文的组态就看不见这个词,这个词没有出现在中文翻译中我只能说很遗憾,自然在技术上表达是不严谨的,因为即使你使能了这个选项,(你想象的)高性能也有“可能的”不会出现的。这也是我为什么说这个词有意思的原因,没有这个词是不完整的,后续我会告诉大家这背后的相关知识。对于RT_Class_3,在v2.3新版本中又细分了两类,分别是RT_Class_3(非冗余)和RT_Class_3(冗余),自然后者是基于PN IRT独有的MRPD冗余网络的。这个版本在理论上是支持31.25us的实时周期的,而Firmware和产品等原因,目前IRT的最快的实时速度为125us。还是需要说明的是这些PN版本的变化都是基于快速以太网的,如果基于千兆甚至万兆以太网,PN实时类别中的各种算法都会随之发生改变。

PROFINET是开放的,标准的,实时的工业以太网标准。“开放的”,这个词不仅指PI用户组织的成员一起推动这项技术在全球的实现,这代表着这项技术是开放的,也指PROFINET是可以使用标准的TCP/IP通信和IT标准,而不是封闭的,也包括可以集成其它的现场总线,例如PROFIBUS。“标准的”,表示这项技术有着标准的功能以及其组合,适应各种自动化应用的需求,例如,多级的实时和诊断,冗余通信,故障安全相关的数据传输等等。“实时的”,这个词可能是大家比较纠结的,大家看到这个词就会想到几毫秒甚至几微妙的响应控制,然而以前我在查找实时定义的时候IEC是对RT有着标准定义的,现在很可惜没有找到,但是我可以给出一个比较贴切的定义就是-实时系统是在有限和规定的周期时间内响应外部激励的信息处理系统。从定义上来看,实时系统能够在规定的周期内响应外部激励,它强调了规定的周期时间内,并不是大家常常讲的“快速响应”,这样实时(Real Time)不是代表着快速(Fast),而是响应不超过规定的时间周期而已。其实在PROFINET IO组态和应用时也能体会到这个概念,在工厂自动化中大家使用PROFINET,我想几乎没有用户使用512ms这个刷新时间,大家会觉得这个周期时间很慢,不能完成快速的响应,所以这个时间512ms就是在这个场景中规定的时间周期,并不意味着快速,但却表示实时通信。目前PROFINET有着4个实时等级的数据通信服务,而手册和胶片往往采用3个实时等级来说明,为了更加细节的展示这个概念,我把其中的实时等级细分出2个等级(ART RT),这样有助于大家记忆和理解概念。下面我给大家描述一下,最低的实时等级是NRT,典型的是读写数据记录的服务,例如IO控制器给某个IO模板写参数,采用UDP/IP协议;较高的实时等级是ART(Acyclic RT),表示PN系统中的报警服务,这不同于周期性的实时数据交换,这是非周期的实时数据交换,例如硬件中断触发OB40,该报警的优先级是6,这是高优先级的报警,其协议采用PNIO-AH(Alarm High);插拔IO模板触发OB83,该报警的优先级则是5,这是低优先级的报警,其协议采用PNIO-AL(Alarm Low)。第三个实时等级是RT,也就是周期性的IO数据交换,优先级是6,其协议采用PNIO;最高的实时等级是IRT,没有优先级,靠时间同步的预先规划,v2.3其协议采用了PN-RTC3组播的方式。上述这些协议都较为复杂我会在后面给大家做详细描述。“工业以太网标准”,这个是指PROFINET遵循IEC61158标准规范等。

PROFINET在中国上市快20年了,我也在我的技术支持工作中见证了它的成长,也看到了它的未来。现在OPC UA横空出世,从Cloud到现场级可以完美与PROFINET结合,未来这两大通信技术还会适配TSN技术,3大网络通信技术借助千兆甚至万兆的带宽足以满足未来工厂纷繁的数字化生产和应用,也期待见证它们的精彩!

0 人点赞