以S7-200SMART AM06模块为例,说明如何通过模块的指示灯状态、CPU信息、特殊寄存器SM数值这三种方式来诊断模块的状态。 表1. AM06模块诊断信息
AM06模块指示灯状态 | PLC信息和特殊寄存器(通过状态图标监视) | 故障说明 | |
DIAG指示灯状态 | IO通道灯状态 | ||
绿色长亮 | 绿色长亮 | PLC信息: | 系统块组态正确,供电正常 |
特殊寄存器中模块报警地址实时值: 请参考《S7-200 SMART系统手册》章节D | |||
绿色闪烁 | 不亮 | PLC信息: | 没有在STEP 7-Micro/WIN SMART软件的 系统块中组态该扩展模块 |
特殊寄存器中模块报警地址实时值: 请参考《S7-200 SMART系统手册》章节D | |||
红色常亮 | 不亮 | 系统块中组态了该模块: 特殊寄存器中模块报警地址实时值: 请参考《S7-200 SMART系统手册》章节D | 硬件故障,CPU识别不了该模块 |
系统块中没有组态该模块: 特殊寄存器中模块报警地址实时值: 请参考《S7-200 SMART系统手册》章节D | |||
红色闪烁 | 所有通道红色闪烁 | PLC信息: | 模块没有接24V电源 |
特殊寄存器中模块报警地址实时值: 请参考《S7-200 SMART系统手册》章节D | |||
红色闪烁 | 某个或几个通道红色闪烁 | PLC信息: | 通道值超限 |
特殊寄存器中模块报警地址实时值: 请参考《S7-200 SMART系统手册》章节D |
通过一个特殊寄存器中模块报警地址实时值来说明如何查看CPU及模块的报错信息。如表1. AM06模块诊断信息中最后一行AM06通道0的通道值超出下限时SMW104值为2#0000_0000_0000_1000。根据表2. SMW100~SMW114系统报警代码格式说明中的解释:
- 2#0000_0000_0000_1000:d=0,表示输入通道
- 2#0000_0000_0000_1000:s=0,表示在单个通道上
- 2#0000_0000_0000_1000:c=0,表示0通道
- 2#0000_0000_0000_1000:a=08H,表示通道值超出下限
综合起来就是AM06模块的第0个输入通道的通道值超出下限,与CPU信息中的报错信息一致。 表2. SMW100~SMW114系统报警代码格式说明
SMW100~SMW114系统报警代码格式 | |||||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
d | s | c | c | c | c | c | c | a | a | a | a | a | a | a | a | ||
d:报警位置 | 0 | 输入通道或其它非IO模块 | |||||||||||||||
1 | 输出通道 | ||||||||||||||||
s:报警范围 | 0 | 在单个通道上 | |||||||||||||||
1 | 在整个通道 | ||||||||||||||||
c:通道号 | c | c | c | c | c | c | 如果s位为0,则c值表示受影响的通道 | ||||||||||
如果s位为1,则c=0 | |||||||||||||||||
a:报警类型 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 00H:无报警 | ||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 01H:短路 | |||||||||
0 | 0 | 0 | 0 | 0 | x | x | x | 02H~05H:保留 | |||||||||
0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 06H:断路 | |||||||||
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 07H:超出上限 | |||||||||
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 08H:超出下限 | |||||||||
0 | 0 | 0 | 0 | x | x | x | x | 09H~0FH:保留 | |||||||||
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 10H:参数化错误 | |||||||||
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 11H:传感器或负载电压缺失 | |||||||||
0 | 0 | 0 | x | x | x | x | x | 12H~1FH:保留 | |||||||||
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 20H:内部错误(MID问题) | |||||||||
0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 21H:内部错误(IID问题) | |||||||||
0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 22H:保留 | |||||||||
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 23H:组态错误 | |||||||||
0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 24H:保留 | |||||||||
0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 25H:固件损坏或缺失 | |||||||||
0 | 0 | 1 | 0 | x | x | x | x | 26H~2AH:保留 | |||||||||
0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 2BH:电池电压低 | |||||||||
x | x | x | x | x | x | x | x | 2CH~FFH:保留 |
用同样的方法来查看SMB8和SMB9的实时值,根据SMB8和SMB9的数值结合表3. SMB8~SMB18 I/O模块ID和错误中的说明得到模块AM06的ID信息和错误说明。 SMB8=2#0001_1001的解释如下:
- 2#0001_1001:m=0,表示该模块存在
- 2#0001_1001:a=1,表示该模块是模拟量模块
- 2#0001_1001:ii=10,表示模块有4AI
- 2#0001_1001:qq=01,表示模块有2AO
SMB9=2#0100_0000的解释如下:
- 2#0100_0000:c=0,无错误
- 2#0100_0000:d=1,诊断报错
- 2#0100_0000:b=0,无错误
- 2#0100_0000:m=0,OK
SMB9=2#0100_0000表示AM06模块有诊断报错。 表3. SMB8~SMB18 I/O模块ID和错误说明
SMB8~SMB18 I/O模块ID和错误说明 | |||||||||||||||||||
偶字节 | 奇字节 | ||||||||||||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||||
m | 0 | 0 | a | i | i | q | q | c | d | 0 | b | 0 | 0 | 0 | m | ||||
m:模块是否存在 | 0 | 存在 | c | 0 | 无错误 | ||||||||||||||
1 | 不存在 | 1 | 组态/参数化错误 | ||||||||||||||||
a:I/O类型 | 0 | 数字量 | d | 0 | 无错误 | ||||||||||||||
1 | 模拟量 | 1 | 诊断报警 | ||||||||||||||||
ii:输入信息 | 0 | 0 | 无输入 | b | 0 | 无错误 | |||||||||||||
0 | 1 | 2AI或8DI | 1 | 总线访问错误 | |||||||||||||||
1 | 0 | 4AI或16DI | m | 0 | OK | ||||||||||||||
1 | 1 | 8AI或32DI | 1 | 缺失已组态模块 | |||||||||||||||
qq:输出信息 | 0 | 0 | 无输出 | ||||||||||||||||
0 | 1 | 2AO或8DO | |||||||||||||||||
1 | 0 | 4AO或16DO | |||||||||||||||||
1 | 1 | 8AO或32DO |
上面以AM06模块为例说明了硬件诊断的方法,用户可以用该方法来诊断其它CPU、EM扩展模块和SB信号板的信息状态。