嘉兴SIEMENS西门子PLC模块代理商
西门子PLC通信故障中断组织块有哪些
与DP通信有关的中断组织块
CPU在识别到一个故障或编程错误,例如,DP从站或者PROFINETIO设备的诊断报警、站的故障等,将会调用对应的中断组织块(OB),应生成这些OB,通过OB中编写的程序对故障进行处理。如果这些组织块没有下载到CPU,CPU将会因为无法调用这些块而进入STOP 状态。下面介绍与通信故障有关的几个主要的中断组织块。
1. DP从站产生的诊断中断(OB82)
具有诊断功能的分布式IO模块通过产生诊断中断来报告事件,例如部分节点故障、信号模块导线断开、IO通道的短路或过载、模拟量模块的电源故障等。产生诊断中断时,CPU 的操作系统将自动调用处理诊断中断的组织块OB82。OB82的启动提供了产生故障的模块的类型(输入模块或输出模块)、模块的地址和故障的种类。当DP主站的CPU从RUN模式切换到STOP模式时,智能从站将调用诊断中断组织块OB82。故障出现和消失时将分别调用一次OB82。
通过在OB82中调用故障诊断的程序块,可以判断在哪个通道发生了什么样的故障。
2. 外设输入/输出区与过程映像输入/输出区
S7-300/400的外设输入/输出区(PIPQ区)用于直接读写IO模块。过程映像输入/输出区(IQ 区)是输入/输出模块在CPU的存储区中的“映像”。在每一扫描循环周期开始时,CPU将过程映像输出区中的数据成批地传送到输出模块,将输入模块外接的输入电路的状态成批地读入过程映像输入区。
PI/PQ区与I/Q区的关系如下:
1)访问PIPQ区时,直接读写输入/输出模块,而I/Q区是CPU内的存储区。
2)I/Q区可以按位、字节、字和双字寻址,PIPQ区不能按位寻址。
3)I/Q区的地址也可以用PI/PQ区访问。
3. **级错误中断(OB85)
以下情况将会触发**级错误中断:
1)产生了一个中断事件,但是没有将对应的OB块下载到CPU(不包括OB81)。
2)操作系统访问模块时出错。
3)由于通信或组态的原因,模块不存在或有故障,刷新过程映像表时I/O访问出错。出现故障的DP从站的输入/输出值装入S7CPU的过程映像表时,就可能出现上述情况。
访问出错的输入字节被复位和保持为“0”,直到故障消失。
双击HW Config的机架中的CPU,打开CPU的属性对话框。可以用“周期/时钟存储器”选项卡中的选择框选择调用OB85的方式(见图6-25)。
图6-25 CPU的属性对话框的周期/时钟存储器选项卡
S7-300CPU默认的选项是“无OB85调用”,在发生I/O访问错误时不调用OB85,也不会在诊断缓冲区中生成条目,一般采用默认的设置。
S7-400CPU默认的选项是“每单个访问时”,在满足条件时,每个扫描循环周期都要调用一次 OB85 和在诊断缓冲区中生成一个条目,这样会增加扫描周期。建议选用“仅用于进入和离开的错误”,该选项只是在错误刚发生和刚消失时分别调用一次OB85。
在编写OB85的程序时,应根据OB85的启动信息,判定是哪个模块损坏或没有插入。OB85的局部变量OB_85_FLT_ID的错误代码的意义举例如下B#16#B1和B#16#B2分别表示新过程映像输入、输出表时的I/O访问错误。可以用SFC49“LGC_GADR”查找有关模块所在的机架和槽位,以及模块的用户数据地址区中的偏移量。
4 机架故障或分布式I/O的站故障中断(OB86)
如果机架、DP主站系统或分布式I/O(DP从站或PROFINETIO设备)由于掉电、总线导线断开、IO 系统的故障,或者某些其他原因引起的故障,CPU的操作系统将调用组织块OB86。故障出现和消失时将分别调用一次OB86。可以根据OB86的启动信息,在OB86中编程,确定是哪个机架或分布式设备有故障或通信中断。
5. I/O访问错误中断(OB122)
CPU如果访问有故障的I/O模块、不存在的或有故障的DP从站的PIPQ输入/输出数据。或者访问了一个CPU不能识别的 I/O 地址,CPU的操作系统将在每个扫描周期调用一次OB122.
6. 故障处理中断组织块的作用
DP从站出现故障时,如果S7-400没有生成和下载OB82、OB85、OB86和OB122,S7-300 没有生成和下载OB82、OB86和OB122,CPU将切换到STOP状态。为了防止某个从站的故障造成整个PROFIBUS主站系统停机,作为一个常规的措施,至少要生成和下载上述组织块。即使没有在这些OB中编写任何程序,在DP从站出现上述故障时,CPU也不会进入STOP模式。
需要注意的是,生成上述OB后,CPU虽然不再进入STOP模式,但是可能不易察觉这些危险状态,它们会被忽视。为了解决这一问题,在故障 OB 中,应编写记录、处理和显示故障的程序,例如记录中断的次数,保存OB的局部变量,调用读取诊断数据的SFC13等。以便在出现故障时,迅速地查明故障的原因和采取相应的措施。
通过中断组织块的局部变量提供的信息,可以获得故障的原因、出现故障的模块、模块的类型(输入模块或输出模块)、故障出现或故障消失等信息。CPU的模块信息对话框中的诊断缓冲区保留着CPU曾经调用过的组织块的信息。
好在出错时通过监控设备产生一条报警信息,以便操作人员安全和正确地操作设备,具体的方法将在8章介绍。
中断组织块的详细信息可以参阅STEP7的在线帮助,或者参考随书光盘中的手册《用于S7的系统软件和标准功能参考手册》。