首页 理论教育 网络通信中断组织块优化策略

网络通信中断组织块优化策略

时间:2026-01-23 理论教育 峰子 版权反馈
【摘要】:下面介绍与通信故障有关的几个主要的中断组织块。模块通过产生诊断中断来报告事件,例如信号模块导线断开、I/O通道的短路或过载、模拟量模块的电源故障等。

CPU在识别到一个故障或编程错误时,将会调用对应的中断组织块(OB),应生成这些OB,通过在OB中编写的程序对故障进行处理。下面介绍与通信故障有关的几个主要的中断组织块。

1.诊断中断组织块OB82

具有诊断中断功能并启用了诊断中断的模块检测出其诊断状态发生变化时,将向CPU发送一个诊断中断请求。出现故障或有组件要求维护(事件进入状态),故障消失或没有组件需要维护(事件退出状态),操作系统将会分别调用一次OB82。

模块通过产生诊断中断来报告事件,例如信号模块导线断开、I/O通道的短路或过载、模拟量模块的电源故障等。OB82的启动信息(20B局部变量)提供故障模块的起始地址和4B的故障模块的诊断数据。

2.优先级错误组织块OB85

以下情况将会触发优先级错误中断:

1)产生了一个中断事件,但是没有将对应的OB块(不包括OB80~OB83和OB86)下载到CPU。

2)操作系统访问模块时出错。

3)由于通信或组态的原因,模块不存在或有故障,更新过程映像表时出现I/O访问错误。出现故障的DP从站的输入/输出值保存到S7 CPU的过程映像表时,就可能出现上述情况。访问出错的输入字节被复位和保持为“0”,直到故障消失。

在硬件组态时双击机架中的CPU,打开CPU的属性对话框。可以用“周期/时钟存储器”选项卡中的选择框设置I/O访问错误时调用OB85的方式(见图8-1)。

S7-300 CPU默认的选项是“无OB85调用”,在发生I/O访问错误时不调用OB85,也不会在诊断缓冲区中生成条目。如果S7-300采用默认的设置,不用生成和下载OB85。

图示

图8-1 设置调用OB85的方式

S7-400 CPU默认的选项是“每单个访问时”,在满足条件时,每个扫描周期都要调用一次OB85和在诊断缓冲区生成一个条目,这样会使扫描周期增大,诊断缓冲区也被调用OB85的事件迅速充满。如果选用“仅用于进入和离开的错误”,该选项只是在错误刚发生和刚消失时分别调用一次OB85。(https://www.xing528.com)

3.机架故障组织块OB86

如果扩展机架、DP主站系统或分布式I/O(DP从站或PROFINET IO设备)出现掉电、总线导线断开、I/O系统故障,或者某些其他原因引起的故障,操作系统将会调用OB86。此外用SFC12"D_ACT_DP"激活或取消激活DP从站或PROFINET IO设备,操作系统也会调用OB86。

故障出现和故障消失时操作系统将分别调用一次OB86。可以在OB86中编程保存它的局部数据中的启动信息,以确定是哪个机架或分布式设备有故障或通信中断。

4.I/O访问错误组织块OB122

同步错误是与执行用户程序有关的错误,程序中如果有不正确的地址区、错误的编号或错误的地址,都会出现同步错误,操作系统将调用同步错误组织块OB121或OB122。OB121用于处理编程错误,OB122用于处理模块访问错误。

同步错误OB的优先级与检测到出错的块的优先级一致。因此OB121和OB122可以访问中断发生时的累加器和其他寄存器的内容。用户程序可以用它们来处理错误。

S7-300/400的外设输入区/外设输出区(PI/PQ区)用于直接读写I/O模块。CPU如果用PI/PQ地址访问有故障的I/O模块、不存在的或有故障的DP从站(例如断电的从站),CPU的操作系统将在每个扫描周期调用一次OB122。

5.故障处理中断组织块的作用

出现硬件和网络故障时,如果没有生成和下载对应的组织块,CPU将切换到STOP模式,以保证设备和生产过程的安全

在设备运行过程中,由于通信网络的接插件接触不好,或者因为外部强干扰源的干扰,可能会出现通信短暂的中断,但是很快又会自动恢复正常,这种故障俗称为“闪断”。为了在出现故障时CPU和整个PROFIBUS主站系统不要停机,S7-400应生成和下载OB82、OB85、OB86、OB122;OB85如果采用默认的调用方式,S7-300应生成和下载OB82、OB86和OB122。采取了上述措施后,即使没有在这些OB中编写任何程序,出现上述故障时,CPU也不会进入STOP模式。

如果将没有编写任何程序的故障处理组织块下载到CPU,虽然不会因为发生通信故障(包括偶尔出现的“闪断”)而停机,但是这种处理方法并不可取。如果系统出现了不能自动恢复的故障,用上述方法使系统仍然继续运行,可能导致系统处于某种危险的状态,造成现场人员的伤害或者设备的损坏。并且操作人员不易察觉到这些危险状态,它们会被忽视。

为了解决这一问题,在处理故障的组织块中,应编写记录、处理和显示故障的程序,例如记录中断(即故障)出现的次数和出现的日期时间,分析和保存OB的局部变量,在OB中调用读取诊断数据的SFC13等。以便在出现故障时,迅速地查明故障的原因和采取相应的措施。

通过中断组织块的局部变量提供的信息,可以获得故障的原因、出现故障的模块地址、模块的类型(输入模块或输出模块)、是故障出现还是故障消失等信息。CPU的模块信息对话框中的诊断缓冲区保留着CPU请求调用组织块的信息。

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

我要反馈