在技术上,PROFINET基于以太网,也就是由于以太网,使之能够具有*的通信速度和灵活的拓扑结构,而PN就是以太网上的实时协议集合,就和TCP是以太网的协议一样,**而已。但是这对于企业生产就不同了,因为在PN之前,以太网是不能延伸到现场级的,而如今以太网一直延伸到现场的末端,带有PN接口的传感器和执行器比比皆是。以太网的安装确实给用户带来了诸多的便利,然而,由于用户大都想着就近连接交换机即可,这种可能导致混乱的连接拓扑,还有就是交换机产品的选择,错误的选择同样会给用户生产带来一些问题,这两个看似很小的问题,却可能会给企业生产带来毁灭性的伤害。
早年去一家钢厂,骨干网使用了冗余环网,正常生产了一段时间,却突然全网瘫痪,导致高炉停产,对于钢厂来说这是一个非常大的事故了。而现场的问题解决却是很简单,原因是冗余环网使用了西门子的SCALANCEX交换机,然而冗余管理器RM却使用了第三方的交换机,那我还说什么呢?前些天,去了另外一家钢管厂去做预维护,询问网络的拓扑连接是如何的,回答是不知,这是中国用户目前普遍存在的问题。通过PRONATA进行现场网络拓扑的扫描,竟然发现网络拓扑出现两个环网,而且是现场级的,也不知什么原因鬼使神差的让生产可以正常进行,我们知道环网会产生广播风暴,导致全网瘫痪。可是由于生产还在继续,我们无法确定真正的原因是什么,只能告诉用户这种环型链接风险*高,需要尽快整改。
对于个问题,我给用户传达的信息就是只要是交换机都支持PROFINET,然而并不是所有的交换机都适用,这种前后矛盾的话,大家肯定会觉得疑惑不解。PROFINET使用百兆全双工的技术,那么交换机必然是选择的连接部件,而我们在使用PNRT协议的时候,都知道RT通信的报文是带有**级的,也就是含有**级是6(高为7)的VLAN标签(其ID=0),这个标签使之PN数据在网络链路传输时可以“横行霸道”,因为除了MRP冗余环网之外的网络链路上的数据没有**级比它高的,其它数据难以望其项背,这样才能大程度的*它的实时性。那么如果你选择了例如SCALANCEX300/400系列的交换机用来连接IO设备,那么VLAN标签的**级的意义就消失了,因为这些交换机默认支持VLAN,而这些交换机恰恰判定VLANID=0的数据没有**级,也就是说此时的PN数据只能和普通数据一样,不再被**转发,这意味就显而易见了。*二个问题,可能是困扰大家多的问题,因为它影响现场到底如何安装布线。到底能级联多少?我的答案就是能带多少IO设备就能级联多少IO设备?然而我们需要考虑线型网络末端的IO设备的刷新时间的大小,这就需要一个公式了,也就是说一个IO报文从PLC侧发出,经过若干台交换机,这些交换机是支持C&T或是S&F,那么这个公式就是报文的传输时间,加上经过各个交换机的延迟时间,达到终的设备。这个时间才是你参考的Updatetime的时间,如果不能满足你的实时性要求,那么这台设备需要在线型拓扑中靠近PLC,也就是你的IO控制器。
后,我想谈的就是PROFINET网络如何诊断了,这个是用户经常忽略或者无法正视的问题,因为一旦谈到诊断,那么必然需要全面的IT知识,不像*所描述的,仅是需要组态和计算,从基本的Ping指令到Wireshark的使用,这些都是的。但这些往往是用户缺乏的。具体诊断PN网络的方式有很多种,那是根据不同的故障现象采取不同的方法。这里和大家谈谈用户所面临的经常丢站的故障。
丢站的根本原因就是IO数据没有在时间内出现,也就是*时了,这时会报丢站,OB86被激活。那么什么原因会导致IO数据在时间内不能出现,主要是两种原因,种就是网络拥堵严重,数据不能在时间内到达IO设备,那么这种情况使用Ping指令就可以来判断网络链路的状态;*二种就是数据发生畸变,可能是由于干扰或者安装的线缆短路所致,也就是IO报文的CRC检验出现错误,这种情况可以通过Step7在线查看分布式IO的端口的Statistics或者登陆管理型交换机的网页查看丢站IO设备所对应的端口的Statistics,再或者对于S7-1500来说使用LPNDR功能块来读取对应IO设备的端口的Statistics,来查看是否存在CRC错误。如果存在CRC错误,那么导致的原因就是*我说的两种原因,干扰或者短路造成的,那么就去查EMC和线缆的状况。当然,Wireshark工具是诊断PN网络的重要的工具,当你具备IT知识的时候,建议你使用Wireshark这个工具去检测和发现网络故障,因为它是良好利器。
关于PROFINET技术,其实它包罗万象,涉及各种IT知识,当你想理解它时,你就需要理解终端设备,例如:PLC和分布式IO,其实西门子PLC通信原理也是来源于我对PN的研究,然后理解TCP协议,路由协议等等,也就是这一根绿色的网线使我在技术上越走越远,越走越宽。这里我仅仅提到了PROFINET技术的冰山一角,深奥的理论主要集中在IRT上面,需要对其设备集成的交换机内部要有全面的理解,因为IRT需要对时,各个时间片段的计算是非常关键的,在这里我无法一一的给大家说明。而现在由我的同事,网络冯学卫先生正在网上论坛主持PROFINET通信探秘技术π的活动,他是一位非常的工程师,对于IT和各种网络协议都非常的了解,我们经常在一起讨论关于网络,PN,通信的各种问题,对各种技术细节进行深入的剖析,例如Step7中IORT的时间预留后台是如何计算的等
提供了临时堆栈数据。可以通过临时堆栈数据指示出发生报警事件的通道/位。当在 CPU 块文件夹中创建新的报警组织块 OB40 时可以在STEP7 中找到它的描述 (单击鼠标右键 〉插入新对象 〉组织块 〉 OB 40),选择新创建的 OB 40 按下“F1”,打开了 STEP7 中的帮助信息,如果已经有一个警报 OB 40 存在,则可以直接选择它然后按下 F1,打开的就是关于警报 OB 40 的帮助文档。
有关区域数据具体模块评估的更多信息,请参见手册 "Programmable Logic Controller S7-300Module Data" (可编程逻辑控制器 S7-300 模板规范)* 3 章 (Digital Modules) 和* 4 章(Analog Modules)。
在 CPU 318-2 DP 中可以使用两个警报 OB (40 和 41)。有关 CPU 318-2 DP 的更多信息,请参见手册"Programmable Logic Controller S7-300 CPU Data, CPU 312 IFM to CPU318-2 DP" (可编程逻辑控制器 S7-300 CPU 数据,CPU 312 IFM 到 CPU 318-2 DP),条目号8860591。
在所有 S7-400 CPU *有八个警报 OB 可用。可以在条目号 23659324 中找到关于 S7-400 CPU过程警报的更多信息。
组态过程报警:
可以在硬件配置中,为具有警报能力的模块在其属性中组态过程警报。