1.PROFINETIO诊断的概念
PROFINET IO支持的诊断概念和PROFIBUS DP支持的诊断概念很相似。STEP7中那些用来诊断PROFIBUS DP组件的工具同样适用与PROFINET IO。PROFINET IO的诊断工具见表11-28。
表11-28 PROFINETIO的诊断工具

(续)

PROFINET IO设备的诊断信息可以在四个级别进行评估,见表11-29和图11-17所示。
表11-29 诊断级别


图11-17 PROFINET IO的诊断级别
(1)PROFINET IO设备模型及寻址级别
与PROFIBUS-DP从站类似,PROFINET IO设备同样具有模块化结构。可以将一个插槽分为多个子插槽,模块插入插槽,而子模块插入子插槽。模块/子模块具有用于读取或输出过程信号的通道,有的模块没有子模块。
PROFINET IO设备的诊断分为4级,1~4级分别用于设备诊断、模块诊断、子模块诊断和通道诊断。通过图11-18所示寻址级别评估诊断数据和组态数据。

图11-18 诊断记录的寻址级别
●AR(应用关联),数据记录编号为W#16#Exxx。
●API(应用程序进程标识符),数据记录编号为W#16#Fxxx。
●插槽(Slot),数据记录编号为W#16#Cxxx。
●子插槽(Sub slot),数据记录编号为W#16#8xxx。
每个寻址级别都有一组可用的诊断记录和组态记录。通过记录编号的首字母来区别各记录组。每个IO设备(寻址级别为AR)、模块(寻址级别为插槽)或子模块(寻址级别为子插槽)的信息传送到各个诊断记录或组态记录中。根据寻址级别,记录将返回一个或多个子插槽、插槽和API的诊断数据或组态数据。
(2)用户结构标识符
用户结构标识符(USI)用于识别诊断数据的类型。诊断数据分为通道诊断、扩展的通道诊断和供应商特定的通道诊断。诊断记录编号的最后两个数字与诊断记录的类型有关。
2.通过用户程序诊断
与在PROFIBUS DP中相同,PROFINET IO支持在用户程序中使用系统功能(SFC)、系统功能块(SFB)和系统状态列表(SSL)进行诊断。唯一的区别位于为详细错误诊断选择的各个块中。表11-30概述了在PROFINET IO和PROFIBUS DP中的特性和状态信息。
表11-30 PROFINETIO和PROFIBUSDP的诊断功能的比较

(续)

PROFINET通信的故障诊断需要在OB1中调用系统功能块SFB52,读取用于诊断的数据记录;在OB82中调用系统功能块SFB54读取组织块起动信息以及中断源(PROFINET IO设备)的信息。
(1)在OB1中调用SFB52读取数据记录
调用SFB52“RDREC”(读取数据记录),可以从PROFINET IO设备(模块或子模块)中读取指定编号的数据记录,其参数列表见表11-31。SFB52采用异步方式工作,处理过程中需要被多次调用。输入参数REQ为1时传送数据记录。对于输出模块,应将输入参数ID的第15位置1。对于输入/输出组合模块,应采用两个地址中较小的地址。
SFB52的输入参数INDEX用于指定数据记录号,示例程序实现ET200S PN的DO模块诊断信息的读取,INDEX编号为W#16#800A的数据记录是故障模块的诊断数据。因为诊断的是数字量输出模块,故参数ID为DW#16#8000(第15位为1)。
SFB52的输入参数MLEN用于指定要读取数据记录的最大字节数,地址区RECORD的长度至少应等于MLEN的长度。若输出参数VALID为1,表示已将数据记录成功传送到了目标地址区RECORD。此时输出参数LEN是读取到的数据记录字节数。
输出参数ERROR用来指示数据记录传输是否出错,出错则置1;且输出参数STATUS是错误信息,其2、3字节返回请求状态。输出参数BUSY为0表示数据记录传送已完成。OB1调用SFB52的程序如图11-19所示。

图11-19 OB1调用SFB52的程序
表11-31 SFB52“RDREC”的参数

PROFINET IO通信的诊断数据记录的详细信息请参考相关通信编程手册。
(2)在OB82中调用SFB54进行诊断
一些PROFINET IO设备或从站中的模块具有中断功能,中断组织块的局部数据提供了中断时产生的部分诊断信息。在中断组织块中调用SFB54“RALRM”,可以读取与事件相关(例如由错误OB触发)的完整的诊断信息,以及中断附加信息,其参数列表见表11-32。
表11-32 SFB54“RALRM”的参数

(续)

SFB54从支持诊断的模块读取中断数据,不管这些模块是在中央机架还是在PROFINET IO设备。SFB54输出参数中的信息包含调用它的OB的起动信息和中断源信息。由于要检查外部设备中断,所以最好在由CPU操作系统起动的中断OB中调用SFB54,否则SFB54输出参数提供的信息会减少。
SFB54的附加中断信息仅包含PROFINET IO触发中断的站点故障通道的状态,以及DP网络触发中断的站点所有通道的状态。
诊断信息写入SFB54的输出参数STATUS、ID、LEN、TINFO和AINFO。TINFO目标区中存放OB的起动和管理信息,AINFO目标区中存放标题信息和附加中断信息。如果TINFO和AINFO设置的数据区长度不够,则无法写入完整信息。
可以使用3种模式进行SFB54“RALRM”的调用:
1)模式0:输出参数ID提供触发中断的DP从站或从站中模块的逻辑起始地址,并将输出参数NEW置为1,不改写其他输出参数。
2)模式1:不论是哪个模块产生的中断,相关的诊断数据将改写SFB54的所有输出参数。
3)模式2:检查是否是输入参数F_ID指定的模块触发了中断。若不是,则输出参数NEW为0;否则输出参数NEW为1状态,相关的诊断数据将改写SFB54所有输出参数。
如果具备诊断功能的模块检测到了故障,在进入中断事件或离开中断事件时,将向CPU发出诊断中断请求,操作系统将调用OB82来响应诊断请求。OB82的局部变量包含了产生中断的逻辑基地址和与故障模块有关的4字节诊断数据。如果未生成和下载OB82,CPU将进入STOP模式。OB82调用SFB54的程序如图11-20所示。

图11-20 OB82调用SFB54的程序
输出参数ID的第15位为1,表示产生中断的是输出模块;如果为0,则是输入模块。
(3)诊断数据分析
所有设备厂商的PROFINET IO的诊断信息数据记录都具有一致的结构,系统状态列表(SSL),SFB 54和SFB 52都进行了扩展,以使PROFINET IO系统的状态和诊断信息可以用于S7用户程序。要了解为PROFINET IO定义了哪些SSL和诊断记录、诊断数据记录的结构等信息,请查阅相关的通信手册。SFB52读取的诊断数据记录的结构和各部分含义,以及通道错误类型的含义见《从PROFIBUS DP到PROFINET IO编程手册》。
本小节主要对TINFO中的起动和管理信息以及AINFO中的标题信息和附加中断信息进行简要介绍。
1)TINFO中的起动和管理信息。TINFO和AINFO的详细信息请参阅文件《用于S7的系统软件和标准功能参考手册》,或参阅SFB54的在线帮助。下面是目标区域的TINFO数据结构:
●字节0~11:当前调用SFB 54的OB82的起动信息。
●字节12~19:产生中断请求的日期和时间。
●字节20~21:产生中断的从站或模块的地址。(https://www.xing528.com)
●字节22~31:管理信息。
OB82调用SFB54后,会在用户指定的DB块中保存起动与管理信息。DB块的前20个字节与OB82的局部变量(即OB82的起动信息)相同。
2)AINFO中的标题信息和附加中断信息。OB82调用SFB54后,保存在用户指定DB(目标区域AINFO)中的标题信息和附加中断信息如下:
●字节0~3:标题信息,块类型、中断类型、中断信息的字节长度和插槽号等。
●字节4~199:来自PROFINET、DP或集中式IO设备的附加的中断信息。
无维护请求的AINFO区的数据的意义见《从PROFIBUS DP到PROFINET IO编程手册》和SFB54的在线帮助。
3.通过RSE诊断
(1)RSE介绍
西门子公司提供一种基于RSE(Report System Error)的方法进行诊断和维护。RSE是STEP7提供一个简便的方式去显示模块所产生的故障诊断信息。用户仅需要组态,STEP7自动生成必要的功能块和消息文本。下载这些功能块和设置消息文本,即可在连接的HMI设备上显示。RES的诊断原理如图11-21所示。本小节采用9.2.1节的实例组态RSE。
(2)RSE组态
在SIMATIC Manager中,单击菜单“Options”→“Language for Display Devices…”,增加语言“德语”和“英语”到“Installed Languages in Project”中,用于HMI设备显示。这里选择默认语言为“英文”,如图11-22所示增加语言。如果需要中文显示消息文本,需要安装中文STEP7,然后选择中文进行消息文本显示。
在硬件组态中,使用鼠标单击CPU312-2PN/DP使其处于高亮状态,然后选择菜单“Options”→“Report System Error…”,参考图11-23所示单击“Report System Error…”。

图11-21 RSE诊断原理

图11-22 增加语言

图11-23 “Report System Error…”
在弹出的“Report System Error”对话框,单击“OB Configuration”选项卡,可以定义支持的OB组织块。这些OB块不需要手动添加到STEP 7程序中,Report System Error会自动添加所选择的OB组织块,并且自动调用SFM函数到相应的OB组织块。如图11-24组态。需要注意的是在“Cycle and Startup Behavior”中,必须选择一个OB1或者其他与时间循环的组织块,这里选择默认的OB1。

图11-24 OB组态
单击“Message”选项卡,可以根据需要修改上述的文本信息,以满足相应的应用。注意蓝色字体标识的变量建议不要修改,修改后变量会无法显示。组态消息如图11-25所示。

图11-25 组态消息
单击“Generate”按钮,这样就给该项目创建了消息文本的系统文本库。生成完毕后,在STEP7程序中的“Blocks”文件夹下自动添加了相应的OB组织块和SFM相关的功能块以及数据块。程序列表如图11-26所示。

图11-26 程序列表
打开OB1,FB49被自动调用。OB1程序如图11-27所示。需要注意的是,在调用SFM函数之前OB1中不能存在BE/BEU等块结束命令,否则出现的系统故障无法正常显示。

图11-27 OB1程序
(3)在STEP7显示CPU消息
在SIMATIC Manager中,单击S7-300站,即SIMATIC 300(1)使其处于高亮状态,然后单击菜单“PLC”→“CPU Messages”,弹出CPU消息对话框,用于测试CPU消息。激活“W”和“A”,其中W表示激活系统诊断消息,A表示读和显示来自于ALARM_S的消息。参考图11-28所示CPU消息,其中,ID表示消息号,Status的I表示事件的到来,O表示事件的离开。
注意事项:
①如果重复出现相同的消息,那么在CPU Messages界面中重新勾选“A”时,只会出现相同消息的一次。不会显示多次,而且仅显示时间上最新的那一次消息。
②如果产生的消息被确认,那么在CPU Messages界面中重新勾选“A”时,消息将不再显示出来。
③当CPU messages的界面没有打开时。如果出现重复的消息,而且没有确认,那么再次打开CPU messages的界面并激活“A”时,消息会出现“OV”的标记,表示消息重复或溢出。所以为了避免“OV”的出现,应对消息进行确认。
4.通过Web诊断
PROFINET基于工业以太网,工业以太网的各种IT技术可以应用到PROFINET中,用于管理和维护网络。西门子集成PN接口的CPU开始集成Web服务器,可以在工厂中通过IE浏览器并输入CPU的IP地址进行诊断,无需额外的开销即可跨越Internet或Intranet监控CPU、消息和模块状态、网络拓扑等。Web服务器可以读到如下内容:起始页中CPU基本信息、标识中订货号与版本等信息、CPU的诊断缓冲区、模块的信息、消息、PROFINET、变量/标签等。这些信息都可视化在Web页面上,从而监控整个PROFINET系统。
在STEP7硬件组态中,双击CPU315-2 PN/DP,弹出CPU属性对话框,单击“Web”标签,使能“Enable Web Server on this module”,选择“English”语言。激活10s自动刷新(如果有这个选项)。保持显示分类默认状态0~16,然后单击“OK”按钮完成设置。参考图11-29设置CPU Web Server属性,保存编译并下载硬件到CPU中。
打开IE浏览器,输入CPU的IP地址192.168.0.1,然后单击左侧“Messages”,可见相关的故障消息。Web诊断显示如图11-30所示。
单击图11-30所示Web页面右上角的语言选择,可以选择其他语言,例如德语。语言显示的种类与STEP7的安装语言种类数量有关,本例STEP7安装了3种语言,分别为德语、英语、法语,而对于Web所能显示的语言是CPU设置Web属性中所设置的最多两种语言,只有这两种语言才能正确地显示消息文本。

图11-28 CPU消息

图11-29 设置CPU Web Server属性

图11-30 Web诊断显示
5.ET200SPN的DO模块负载断线的诊断
9.2.1节的示例项目采用CPU315-2PN/DP的集成PN接口作为PROFINET IO控制器,若将ET200S PN的12号插槽的DO模块组态为具有断线诊断功能的模块(如图11-31所示),则运行时断开该模块己通电的外部负载接线,或者向外部负载已经断线了的输出点(Q0.0或Q0.1)写入二进制数1,将会触发诊断中断,CPU调用OB82和OB86。CPU、IM151-3PN和DO模块的SF LED亮。

图11-31 ET200S DO模块的诊断功能组态
6.基于通信处理器的PROFINET故障诊断
(1)基于CP443-1的PROFINET通信的故障诊断
CP443-1与CPU315-2PN/DP的诊断程序基本上相同。
运行时断开ET200S PN的DO模块外部负载的接线,因为DO模块组态了断线诊断功能(如图9-63所示),触发了诊断中断,CPU调用OB82。CPU和CP443-1的EXTF LED亮,IM151-3PN和DO的SF LED亮。
打开诊断视图(即在线的HW Config),选中ET 200S PN,可以看到CPU、IM 151-3PN和DO模块上的故障符号。双击ET200S PN的DO模块,打开它的模块信息对话框,在“IO设备诊断”选项卡的“指定通道诊断”列表中,可以看到12号插槽的通道0和通道1的引线断开的故障。
OB82调用SFB54后,保存在相应DB块中的诊断信息与315-2PN/DP的故障读取的诊断信息基本上相同。
(2)基于CP343-1的PROFINET通信的故障诊断
1)拔出ET200S PN电源模块的诊断。运行时拔出ET200S PN插槽1的电源模块,CPU的LED状态不变,CP343-1、IM 151-3PN和有诊断功能的DI、DO模块的SF LED亮,未产生中断。
在诊断视图中,CP343-1和ET 2005 PN有故障符号。CP 343-1的诊断缓冲区的诊断信息为“外部错误,进入的事件”。
IM 151-3PN的“模块信息”对话框的“常规”选项卡中的信息为“模块可用且正常,外部出错”,“IO设备诊断”选项卡的诊断信息为“插槽1中的模块丢失”。
2)硬件中断。CP 343-1作PROFINET控制器时,ET200S PN的DI模块属性视图的“参数”选项卡中的硬件中断复选框为灰色,不能组态硬件中断。
CPU集成的PN接口和CP 443-1作为PROFINET控制器时,ET200S PN的DI模块可以组态和产生硬件中断。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
