首页 理论教育 西门子工业通信网络组态编程与故障诊断中

西门子工业通信网络组态编程与故障诊断中

时间:2023-11-16 理论教育 版权反馈
【摘要】:图6-29 CPU的诊断缓冲区中事件的详细资料如果没有生成和下载OB122,将4号从站断电,CPU将进入STOP模式。在AO模块0号通道的输出端外接一个小开关,将开关断开,模块的输出回路出现开路故障。在CPU的模块信息对话框诊断缓冲区的“事件”列表中,可以看到调用OB82的信息,触发中断的模块的地址和其他信息。

西门子工业通信网络组态编程与故障诊断中

1.硬件结构

在SIMATIC管理器中创建一个名为OB_Diag1的项目,CPU为CPU 413-2DP。在HW Config中生成DP主站系统(见图6-26),ET 200B-16DO、ET 200B-16DI和ET 200M分别是4号、5号和7号从站。

978-7-111-28256-3-Chapter06-44.jpg

图6-26 HW Config中的DP网络

将程序块和组态信息下载到CPU,用PROFIBUS电缆连接主站和从站的DP接口,接通它们的电源,将CPU切换到RUN模式。

2.用变量表监视产生中断的次数

在SIMATIC管理器中生成OB82、OB85、OB86和OB122。为它们编写简单的程序,每次中断分别将MW10、MW12、MW14和MW16加1。下面是OB82中的程序:

程序段1:MW10加1

978-7-111-28256-3-Chapter06-45.jpg

运行时用变量表监控中断的次数(见图6-27)。

978-7-111-28256-3-Chapter06-46.jpg

图6-27 用变量表监控中断的次数

3.从站电源丢失时调用OB85

将硬件组态信息下载到CPU,将它切换到RUN模式,系统运行正常,错误指示LED全部处于熄灭状态。

断开4号从站的电源,CPU模块上的EXTF(外部故障)和DPEXTF LED亮,DPBUSF(总线故障)LED闪烁。每个扫描循环周期调用一次OB85,MW12被加1,变量表中MW12的值快速增大。即使用户程序没有访问有故障的从站,也会调用OB85。

在SIMATIC管理器中,选中400站点,执行菜单命令“PLC”→“诊断/设置”→“模块信息”,打开CPU的模块信息对话框。在“诊断缓冲区”选项卡(见图6-28),选中“事件”列表第2行的“在将过程映像传送到输出模块时的I/O访问错误”,在下面的“关于事件的详细资料”文本框中,可以看到下列信息:访问4号从站的过程映像输出字QW12,过程映像分区编号为0,需要调用程序执行错误组织块OB85,中断的优先级为26,外部错误,进入的事件(事件发生)。

点击“事件帮助”按钮,可以看到该事件的帮助信息:“在更新过程映像输出表时出错。详细信息包含引起故障的I/O地址。硬件配置可能不正确,或模块没有插入,或处于故障状态,或机架不能工作”。S7-400“在更新长度大于32B的一致性用户数据的过程映像时,如果时间间隔太短,那么会发生临时错误。在这种情况下,将不执行更新。”

978-7-111-28256-3-Chapter06-47.jpg

图6-28 CPU的诊断缓冲区

如果没有生成和下载OB85,将4号从站断电时,CPU将进入STOP模式。反之不会进入STOP模式。S7-300作主站时,同样的情况不会调用OB85。

4.从站电源丢失时调用OB122

在例程OB_Diag的OB1编写下面两条语句,将MW4的值写入4号从站(ET 200B-16DO)的外设输出字PQW12。

978-7-111-28256-3-Chapter06-48.jpg(www.xing528.com)

断开4号从站的电源,CPU模块上的EXTF和DP EXTF LED亮,DPBUSF(DP总线故障)LED闪烁。每个扫描循环周期都要调用一次OB122和OB85,变量表中用来计OB122中断次数的MW16的值快速增大。如果用户程序没有用外设变量(PI/PQ)直接访问断电的从站,不会调用OB122。在CPU的模块信息对话框的“诊断缓冲区”的“事件”列表中,选中信息“在第n次(n>1)写入访问时发生I/O访问错误”,“关于事件的详细资料”如图6-29所示。点击“事件帮助”按钮,帮助信息给出的原因是“用户程序不止一次尝试写入到一个不存在的I/O地址”。纠正或避免出错的方法为“进行检查,如有必要,更正I/O地址;在模块取出的情况下,则插入模块;在机架不能工作的情况下,则使机架开始工作”。

点击“打开块”按钮,自动打开出现I/O访问错误的OB1中的程序段1,光标位于访问出错的外设输出地址PQW12所在的行。

978-7-111-28256-3-Chapter06-49.jpg

图6-29 CPU的诊断缓冲区中事件的详细资料

如果没有生成和下载OB122,将4号从站断电,CPU将进入STOP模式。生成和下载OB122后,将某个从站断电,CPU不会进入STOP模式。

5.从站电源丢失时调用OB86

用变量表监控用来计OB86中断次数的MW16,可以看到,断开4号从站的电源,调用一次OB86,CPU模块上的EXTF和DP EXTF LED亮,DP BUSF LED闪烁。

从站电源断电时,S7-400CPU每个循环扫描周期都要调用一次OB85。如果用PI/PQ地址访问了出错的从站地址,每个循环扫描周期还要调用一次OB122,CPU的诊断缓冲区全部被调用OB85和OB122的事件占据,看不到断电时调用OB86的事件。

S7-300的CPU如果没有用PI/PQ地址访问出错的从站地址,不会调用OB85和OB122,可以看到诊断缓冲区中调用OB86的事件。

例程中的3个从站共用7号从站的电源。同时断开3个从站的电源,CPU调用3次OB86。同时接通3个从站的电源,CPU又调用3次OB86。

如果没有生成和下载OB86,将某个从站断电时,CPU进入STOP模式。

6.AO模块出现故障时调用OB82

硬件组态时选中7号从站ET200M,在下面的窗口第6槽插入一块2AO模块,在它的属性对话框的“输出”选项卡中,启用模块的诊断中断功能和0号通道的“组诊断”功能(见图6-9)。将0号通道设为输出4~20mA的电流

在AO模块0号通道的输出端外接一个小开关,将开关断开,模块的输出回路出现开路故障。CPU的EXTF和DPEXTF LED亮,IM 153-1和AO模块的SF LED亮。

变量表中的MW10的值加1,表明调用了一次OB82。在CPU的模块信息对话框诊断缓冲区的“事件”列表中,可以看到调用OB82的信息,触发中断的模块的地址和其他信息。

接通接在AO模块输出端的小开关,电流输出电路断开的故障消失,各模块的故障LED熄灭。CPU又调用一次OB82,MW10的值加1。在CPU的模块信息对话框中,可以看到有关的信息。

7.S7-300出现通信故障的实验

例程PB_MS_7的3个DP从站与例程OB_Diag1的相同,CPU为CPU 313C-2DP,4号从站ET 200B-16DO的地址为QW0。断开某个从站的电源时,不能访问该从站的过程映像输入/输出区(I/Q区),如果采用默认的设置,出现I/O访问错误时CPU不会调用OB85,S7-300可以不生成和下载OB85。

断开4号从站的电源,CPU的SF LED亮,BF LED闪烁,调用一次OB86。

接通4号从站的电源,故障消失,又调用一次OB86,CPU上的故障显示LED熄灭。选中CPU模块信息对话框中的事件信息“分布式I/O:站返回”,在下面的“关于事件的详细资料”文本框中,给出了信息“外部错误,离开的事件”(故障消失)。

如果用户程序用外设地址PQW0直接访问4号从站,断开4号从站的电源时,每个循环扫描周期调用一次OB122。接通4号从站的电源时,停止调用OB122。

与项目OB_Diag1相同,断开7号从站(ET 200M)的AO模块0号通道的输出电路,出现电流输出电路开路的故障,调用一次诊断中断组织块OB82,AO模块、IM153-1和CPU的SF LED亮。接通AO模块0号通道的输出电路,故障消失,错误显示LED熄灭,又调用一次OB82。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈