技术论坛

 分享S5的CPU故障诊断分析方法

返回主题列表
作者 主题
mengquanshui
奇侠

经验值:8586
发帖数:2768
精华帖:3
楼主    2009-12-26 15:22:36
主题:分享S5的CPU故障诊断分析方法 精华帖 

控制位 Control bits (按test-->Output PLC info-->ISTACK进入)
控制位主要用来检查硬件和系统软件的情况

系统字 位-> 7 6 5 4 3 2 1 0
RS5 EA0A NB PBSSCH BSTSCH SCHTAE ADRBAU SPABBR NAUAS QUITT
EA0B NB NB NB REMAN NB NB NB NB

RS6 EA0C STOZUS STOANZ NEUSTA NB BATPUF NB BARB BARBEND
EA0D NB UAFEHL MAFEHL E0VH NB AF NB NB

RS7 EA0E ASPNEP ASPNRA KOPFNI PROEND ASPNEEP PADRFE ASPLUE RAMADFE
EA0F KEINAS SYNFEH NINEU NB NB NB SUMF URLAD


RS5 EA0A.6 PBSSCH : Is not used 此位不用
5 BSTSCH : Block shift requested
4 SCHTAE : Block shift active (COMPRESS)
3 ADRBAU : Address list set up OK 地址表设置好
2 SPABBR : Function "COMPRESS MEMORY CONTENTS" was abandoned
1 NAUAS : Power failure in central controller 电源故障
0 QUITT : Is not used 此位不用

EA0B.4 REMAN : 0=all TIMERS/COUNTERS/FLAGS deleted,1=only 2nd half T/C/F
0--重新启动时清所有的 T C F (CPU模板开关在NR位置)
1--重新启动时清非保持 T C F (CPU模板开关在RE位置)

RS6 EA0C.7 STOZUS : Stop mode (external request) 外部请求停止
6 STOANZ : Stop bit (internal request) 内部请求停止
5 NEUSTA : Cold restart of the prog. controller PLC处于冷起动
3 BATPUF : Back-up battery for RAM o.k 电池好
1 BARB : Program test active 程序检查在活动
0 BARBEND: Stop mode following program test (cold restart necessary)
程序检查已结束, 需要冷启动

EA0D.6 UAFEHL : Incorrect interrupt code
5 MAFEHL : Entry exists in machine error word
4 E0VH : Input byte(s) for interrupt servicing exists
2 AF : Ints. enabled 允许中断

RS7 EA0E.7 ASPNEP : User memory is an EPROM 用户存储器子模板是 EPROM
6 ASPNRA : User memory is a RAM 用户存储器子模板是 RAM
5 KOPFNI : Block type was not recognized setting up address list
块头不能解释
4 PROEND : Shift before PROM op. complete
3 ASPNEEP: User memory is an EEPROM 用户存储器子模板是 EEPROM
2 PADRFE : Addressing error in user PROM
1 ASPLUE : User memory has gaps in addresses
0 RAMADFE: Addressing error in user RAM RAM地址错误

EA0F.7 KEINAS : No user memory exists 无用户存储器子模板
6 SYNFEH : Synchronization error or invalid code
5 NINEU : Cold restart not poss. 冷起动没有通过
1 SUMF : Checksum error in user prog. or system prog. memory
0 URLAD : User program must be booted 要求引导指令

------- 中断堆栈 Interrupt stack (用 Test-->Output-->ISTACK--> [Ins] 进入)
中断堆栈主要用于检查用户程序指行的情况, 它是检查CPU停机的主要手段

OP-REG : 0000 SAC: 0000 DB-ADD: 0000
BLK-STP: 0000 -NO.: DB-NO.:
REL-SAC:

Brackets: KE1 000 KE2 000 KE3 000 KE4 000 KE5 000 KE6 000 KE7 000
ACCU1: 0000 ACCU2: 0000
____
Condition code : CC1 CC0 OVFL CARRY OR ERAB
条件码
STATUS RLO

Cause of interr.: STOPS NB SUF TRAF NNN STS
中断(故障)原因
STUEB NAU QVZ ZYK PEU BAU

ASPFA

RS205 EB9A OP-REG : op. register 指令寄存器,存当前执行的指令码,如3020h=L DW2
RS206 EB9C SAC : STEP addr. counter 下一条指令地址,当前指令地址可能为SAC-2
DB-ADD : data block address 当前数据块地址
DB-NO : type and number of last block processed 当前数据块号
RS207 EB9E BLK-STP : block stack pointer 块堆栈指针
xx-NO : type and number of last block processed 最后处理的块号
REL-SAC : relative STEP addr. counter 下一条指令地址(相对最后处理的块地址)

RS213 EBAA.7 CC1 : Coded condition bit 1 条件码 1
6 CC0 : Coded condition bit 0 条件码 0
5 OVFL : Arithmetic overflow (numerical range exceeded) 溢出
4 CARRY : Carry between the two bytes of the arithmetic unit 进位
3 OR : AND operation before OR operation
2 STATUS : Logical status of the scanned bit operation
1 RLO : Result of logic operation (code bit of operation) 逻辑处理结果
0 ERAB : Last processed statement was first scan

RS214 EBAC.7 STOPS : Mode selector set to STOP CPU模板选择停机(RN/ST开关拨到ST)
5 SUF : Substitution error 替换错误一般是功能块需要的形式参数与
调用程序提供的数据类形不同引起的错误
3 TRAF : Transfer error with data block command 使用数据块语句错误
2 NNN : Command cannot be interpreted in this PLC 语句不能译码,
超过嵌套深度, 参数超过
1 STS : STS op. caused stop 语句(STS)或编程器执行停机
0 STUEB : Block stack overflow (nesting depth too great) 块堆栈溢出

EBAD.7 NAU : Power failure in central controller 电源故障
6 QVZ : Timeout 访问I/O超时
4 ZYK : Cycle time exceeded 扫描时间超过RS96设定的时间(单位10MS)
2 PEU : I/Os not ready (expansion unit not O.K.) 扩充I/O没准备好
1 BAU : Battery voltage failure 电池故障
0 ASPFA : Illegal user memory submodule 存储器子模板非法
-------- 块堆栈 BSTACK (按 Test-->Output PLC info-->BSTACK 进入)

块堆栈主要用来检查CPU停机时各块调用的情况, 其显示格式如下:
Block no. Block addr Return addreess Rel. addr DB no. DB addr
意义: Block no. 程序块(OB,PB,FB,SB)号
Block addr 程序块绝对地址
Return addreess 调用子程序语句指令的下一条指令的绝对地址(指令计数器内容)
Rel. addr 调用子程序语句指令的下一条指令的相对地址
DB no. 被程序调用的数据块号(是被同一行的程序调用)
DB addr 被程序调用的数据块地址
例:
Block no. Block addr Return addreess Rel. addr DB no. DB addr
FB 56 3132 3170 003E DB 6 30D6
OB 1 3184 319A 0016 DB 10 1018
说明: 1.进入停机的块在BSTACK里看的, 要从ISTACK才能看出进入停机的块
2.进入停机的块是由FB 56的一条指令调用的, 那条指令的绝对地址为3170-2
相对地址为003E-2(在FB 56里的地址)
3.FB 56调用了DB6
4.FB 56是由OB 1调用的, 调用指令的相对地址为0016-2, OB 1调用了DB 10

------- 检修例子
例1 设备超时: OB1-->PB10-->FB10,
故障现象: 运行后CPU进入停机状态, CPU模板上QVZ灯亮
各块内容如下:
OB 1 (RAM地址: 1172h 长度:11h) PB10 (RAM地址: 1152h 长度:16h)
0000 : 0000 :
0002 : 0002 :
0004 :JU PB 10 0004 :
0006 : 0006 :JU FB 10
0008 : 0008 Name :FB10
000A :BE 000A :
000C :
000E :A I 0.0
0010 := Q 8.0
0012 :
0014 :BE
FB 10 (RAM地址: 112Ch 长度:19h)
Name :FB10
000A :
000C :A I 0.0
000E :C DB 10
0010 :L DW 2
0012 :T DW 1
0014 :
0016 :L PY 10 ;机器码为 720A
实际上PY10无任何模块, 所以执行到这条指令出错
0018 :T PY 12 ;REL-SAC指出的出错指令的下一个地址0018(相对于块地址)
SAC指出的出错指令的下一个绝对地址1144(块地址112C+18=1144)
001A :BE

Control bits (控制位提示)
STOZUS : Stop mode (external request) ;外部请求停止
STOANZ : Stop bit (internal request) ;内部请求停止

Interrupt stack
OP-REG : 720A SAC: 1144 DB-ADD: 107C
BLK-STP: EB0B FB-NO.: 10 DB-NO.: 10
REL-SAC: 0018
Cause of interr.: STOPS NB SUF TRAF NNN STS
STUEB NAU QVZ ZYK PEU BAU
X
ASPFA
QVZ : Timeout (设备超时)
Timeout due to access to I/O byte : 10 在访问第10个I/O字节时超时
Interrupt stack显示内容说明:
1. FB-NO.为10, 表示引起停机的块是FB10
2. REL-SAC为0018, 表示出错指令的下一个地址为0018(相对于FB10块地址)
3. OP-REG指令寄存器的内容720A为指令L PY 10, 表示停机是由于这条指令引起的
4. SAC指令的地址计数器显示出存储下一条指令的绝对地址是1144(块地址112C+18=1144)
5. DB-NO.为10表示当前数据块为DB10, DB-ADD为107C表是DB10的地址为107C
6. BLK-STP为EBOB, 意义暂时不清楚

Block stack
Block no. Block addr Return address Rel. addr DB no. DB addr
PB 10 1152 115A 0008
OB 1 1172 1178 0006
Block stack显示内容说明:
1. 在停机前程序调用为OB1-->PB10, PB10地址为1152, 退出并进入停机的绝对地址
为115A, 相对块地址为0008
2. 查PB10相对地址0008的前一条指令是 JU FB10, 表示执行FB10时引起了停机

例2 数据传送错误:
故障现象: CPU进入停止状态

FB 10
Segment 1
Name :FB10

000A :
000C :A I 0.0
000E :C DB 10
0010 :L DW 8
0012 :T DW 1
0014 :
0016 :BE

Interrupt stack
OP-REG : 3208 SAC: 119A DB-ADD: 107C
BLK-STP: EB0B FB-NO.: 10 DB-NO.: 10
REL-SAC: 0012

Cause of interr.: STOPS NB SUF TRAF NNN STS
X
STUEB NAU QVZ ZYK PEU BAU
ASPFA

TRAF : Transfer error with data block command 用数据块命令时传送错误

Interrupt stack分析:
1.OP-REG为3208,即执行L DW 8时发生停机
2.DB-NO.为10, DB-ADD为107C表示数据块DB10已经调入
3.FB-NO.为10, REL-SAC为0012表示在执行FB10相对地址为0012前一条指令L DW 8停机
4.用Editer-->Data block-->in the PLC-->查DB10只有三个字的数据, 所以执行指令
L DW 8 会产生数据传送错误而停机


例3 扫描超时故障:
故障现象: CPU停机, CPU模板ZYK(扫描超时)灯亮
Interrupt stack
OP-REG : 6500 SAC: 0777 DB-ADD: 0000
BLK-STP: EAFF -NO.: DB-NO.:
REL-SAC:

Condition code : CC1 CC0 OVFL CARRY OR ERAB
STATUS RLO

Cause of interr.: STOPS NB SUF TRAF NNN STS
STUEB NAU QVZ ZYK PEU BAU
X
ASPFA

ZYK : Cycle time exceeded 循环超时
分析: 从以上明显看出是扫描超时, 查RD96为2, 即20MS, 太小
当发生超时故障时一般要检查RD96是否设定的太小(RS96的单位为MS), 程序
是否进入了死循环
某设备 S5-115 PLC 部分I/O失效检修记录:
故障现象: 扩充模块有些输入、输出点无效
PLC 结构如下图
检修过程:
1.查IW32、QW68无效
2.查EA20=FFFF, 证明IW0-IW31已登记
EA2A=FF3F, 证明QW32-QW59已登记
证明: A架、B架、C架正常, 即IM301、IM310通讯正常
3.查EA22=0000、EA24=0000 证明IW32-IW75未登记, 无效
查EA28=0000 证明QW0-QW27未登记, 无效
根据以上情况判断故障在C架的IM306或D架或E架
4.将E架IM306电缆接到C架的IM306,查EA28变为FF3F, 证明E架和C架都正常, 问题在D架
5.拆、装D架上的各个模板发现装IW44-IW47模板时EA22=0000, 拆下来时EA22有数值,
证明IW44-IW47模板有问题, 换这块模板后EA22=FFFF, 正常
结论: 以上故障现象是由于IW44-IW47模板故障引起的, IW44-IW47模板故障影响D架上的
   总线, 使D架和E架地址设定不正常
要记:
1.RAM F000-F04B共76Byte有数值,而实际用IW0-IW75也是76Byte,证明F000以上是I的口
地址, 大于F04A以上数值为FFFF, 估计Q口地址不在这里或很难查出
2.IM301与IM310通讯正常时, 在电源通电时IW301的指示灯亮一下
3.用编程器强迫未登记的Q输出时, 编程器提示: * no I/O module
喜欢用SIEMENS,乐水工控生活 打造工业智能家居生活!
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。