西门子S7-1200SM1223,S7-1200SM1223,SM1223数字量输入输出模块,SM1223价格,SM1223参数
6ES72231BL321XB0 | SM1223 数字量输入输出模块 16输入24V DC/ 16输出24V DC 漏型 |
6ES72231PH320XB0 | SM1223 数字量输入输出模块 8输入24V DC/ 8输出继电器 |
6ES72231BH320XB0 | SM1223 数字量输入输出模块 8输入24V DC/ 8输出24V DC |
6ES72231PL320XB0 | SM1223 数字量输入输出模块 16输入24V DC/ 16输出继电器 |
6ES72231BL320XB0 | SM1223 数字量输入输出模块 16输入24V DC/ 16输出24V DC |
6ES72231QH320XB0 | SM1223 数字量输入输出模块 8输入120/230V AC/ 8输出继电器 |
西门子S7-1200SM1223,S7-1200SM1223,SM1223数字量输入输出模块,SM1223价格,SM1223参数
是否可以在 OB1 中调用GetError 或 GetError ID 指令?
答: 可以,使用方法与在FC 或 FB 中调用类似。
情况一:OB1 程序中出错:
如果OB1 中的程序出错,例如调用未组态硬件的 I 地址,但未调用GetError 指令,CPU error 灯会红色闪烁,诊断缓冲区报错(见图14), 但CPU不会停机( **于CPU 固件版本v2.0 以上版本,固件版本为V1.0 的CPU 在此种情况下会停机)
图14.
此时如果在OB1 中*后一条网络调用GetError 或GetErrorID 指令,则诊断缓冲区的报错信息消失, CPU 指示灯恢复正常。
情况二: OB1 本身的网络中没有错误, 但在 OB1 中调用的块中存在错误, 例如FC1中存在错误 :
1 ) 如果OB1 中无条件调用的块例如FC1 出错, OB1的其它网络没有错误, FC1 中有错误但并没有调用Get Error 指令,CPU error 灯也会红色闪烁,诊断缓冲区报错(见图15),但CPU不会停机( **于CPU 固件版本v2.0 以上版本,固件版本为V1.0 的CPU 在此种情况下会停机), 当在FC1 调用GetError 指令后, CPU 报错信息消失,指示灯恢复正常。
图15.
2 ) 如果OB1 中有条件调用块, 例如FC1, 但FC1 在OB 1 中的执行条件没有满足,则 CPU 不会报错。一旦FC1 调用条件满足被执行,且FC1 中的错误一直存在,则CPU error 灯也会闪,诊断缓冲区报错(见图15), 但CPU不会停机( **于CPU 固件版本v2.0 以上版本,固件版本为V1.0 的CPU 在此种情况下会停机) 。
3) 如果OB1 中调用的块FC 有错误,在OB1 中调用了GetError 指令,但出错的块 FC1 中未调用 GetError 指令,则CPU 也会出现 指示灯Error 红色闪烁,诊断缓冲器报错。见图16。
图16.
总结: 由此可见, GetErrorID 或GetError 指令是基于块的指令,只能诊断调用它的块中的错误,如果出错的程序中未调用该指令,则无法诊断该块中的错误。