您现在的位置是:首页 > PLC技术 > PLC技术
STEP 7的同步错误
来源:艾特贸易2018-04-28
简介当错误发生与程序扫描有关时, CPU 的操作系统会产生一个同步错误。下面两种错误类型是有区别的: 如果程序执行失败,将发生编程错误。这种错误包含 BCD 转换错误,间接寻址错误
当错误发生与程序扫描有关时,CPU的操作系统会产生一个同步错误。下面两种错误类型是有区别的:
如果程序执行失败,将发生编程错误。这种错误包含BCD转换错误,间接寻址错误,丢失定时器、计数器或块的寻址。发生编程错误事件时,将会调用组织块OB 121。
CPU存取错误的或不存在的模块、或未知的I/O地址时,将发生I/O存取错误。
操作系统对不同的存取类型做出不同方式的响应:
●来自用户程序的I/O存取。这种情况下,将调用I/O存取错误组织块OB 122。
●在(子)过程映像自动更新时发生I/O存取错误。对于S7-300 CPU(除了CPU 318),默认的响应是项目不记录到诊断缓冲器中,不调用OB。S7-400 CPU和CPU 318将每一个I/O存取错误都输入到诊断缓冲器,并启动OB 85。而新型的CPU对于I/O存取错误的响应可以参数化。
●I/O存取错误发生在系统功能更新局部过程映像时。在这种情况下,错误和表明错误的第一个字节地址将在它们的参数中返回(系统功能SFC 26 UPDAT_PI、SFC 27 UPDAT_PO、SFC 126 SYNC_PI和SFC 127 SYNC_PO).
当同步错误事件发生时,如果对应的组织块OB 121或OB 122没有编程,CPU将进入到STOP状态。
表1给出了这两种类型的同步错误组织块的启动信息。
表1 同步错误OB的启动信息
S7-400 CPU能够区分两种类型的I/O存取错误:存取不存在的模块和对存在模块进行的错误存取操作(响应延迟QVZ)。如果一个模块操作失败,大约在存取时间150μs之后,该模块被确认为“不存在”,以便在以后每次存取该模块时报告I/O存取错误。当尝试存取不存在的模块时,不管是通过I/O区域直接存取还是通过过程映像间接存取,CPU都将报告存取错误。
如果在对I/O输出进行写操作时发生存取错误,S7-400 CPU能够更新输出过程映像,S7-300则不能。
同步错误OB和发生该错误的块具有同样的优先级。同步错误OB的累加器和地址寄存器包含了在块中止时块给出的引起错误的值。数据块寄存器的内容被删除,条件码字的内容未知。
注意,当调用同步错误OB时,根据引发错误的优先级关系,它的20字节的启动信息进入到栈L中。同样地,同步错误OB的暂态局部数据和在该块中调用的所有其他块也进入到栈L中。在所有相关的优先级(程序执行级)中,为暂态局部数据预留的区域必须按此要求设计(对于除CPU 318外的S7-300 CPU,是固定设置;对于S7-400 CPU和CPU 318,在给CPU设置参数时,可在“Memory”选项卡中调整)。
这和块的嵌套深度是相似的。CPU允许的每个优先级的嵌套深度,是“正常”进程嵌套深度与同步错误进程的嵌套深度之和。
对于S7-400,在一个错误OB中可以调用其他同步错误OB。对于S7-400 CPU,同步错误OB的块嵌套深度为3,而S7-300 CPU为4。
使用系统功能SFC 36MSK_FLT、SFC 37 DMSK_FLT和SFC 38 READ_ERR可以禁止和允许同步错误OB的调用。
(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:)
点击排行
