最近我在一个项目中用S7224CPU编写一个程序,用TD200显示和设定有关信息,在程序运行近三个月,出现了watch dog time out错误,从而导致CPU的SF灯亮,以及CPU Stop,而且重置CPU也无效,请帮忙分析一下。
我的主控制程序是这样的:
LD M0.0
AN V0.5
A T43
AN L0.2
EU
S L0.1, 1
R V0.3, 1
LD M0.0
A L0.1
TON T37, +50
LD M0.0
A V0.3
TON T43, +50
LD T37
EU
S V0.3, 1
R L0.1, 1
LD V0.0
EU
AN V0.6
AN L0.1
S L0.2, 1
R V0.3, 1
LD V0.0
EU
R V0.0, 1
LD M0.0
A L0.2
TON T38, +50
LD T38
EU
MOVW +0, MW26
LDW> Step_Cnt, Step_Num
EU
R L0.2, 1
R L0.1, 1
S V0.3, 1
MOVW +0, Step_Cnt
MOVW +0, MW26
LD L0.1
= V0.1
LD L0.2
= V0.2
LDN L0.1
AN L0.2
= V0.3
LD V0.1
CALL SBR3
LD SM0.0
CALL SBR4
LD V0.3
CALL SBR5
下面的程序与基本相同,除了用的变量不同外;
LD M0.1
A T44
AN V0.1
AN L0.6
EU
S L0.5, 1
R V0.7, 1
LD M0.1
A L0.5
TON T39, +50
LD M0.1
A V0.7
TON T44, +50
LD T39
EU
S V0.7, 1
R L0.5, 1
LD V0.4
EU
AN V0.2
AN L0.5
S L0.6, 1
R V0.7, 1
LD V0.4
EU
R V0.4, 1
LD M0.1
A L0.6
TON T40, +50
LD T40
EU
MOVW +0, MW30
LDW> VW106, VW108
EU
R L0.6, 1
R L0.5, 1
S V0.7, 1
MOVW +0, VW106
MOVW +0, MW30
LD L0.5
= V0.5
LD L0.6
= V0.6
LDN V0.6
AN V0.5
= V0.7
LD V0.5
CALL SBR3
LD SM0.0
CALL SBR4
LD V0.7
CALL SBR5
LDW= MW24, +0
MOVW +0, MW26
LDW= MW28, +0
MOVW +0, MW30
LD V0.1
O V0.5
= M22.5
LDN M0.3
R L0.1, 1
R L0.2, 1
R L0.5, 1
R L0.6, 1
不好意思,程序太长了,有劳各位,请帮忙分析一下,谢谢!