原先整套CPU414-5H系统均运行正常,但是我在原程序中加入一段程序后,居然造成冗余PLC两块CPU均STOP,且冗余故障REDF灯亮。请各位指教这是什么问题啊?
我在OB1的主程序中1分钟定时上升沿脉冲触发FC1功能块:
A(
L MW 96
L 2
<=I
)
FP M 98.0
JNB _00a
CALL "SJB"
_00a: NOP 0
FC1功能块:
Network1:
L "REG_AREA_3".DB_REG3[3]
T MW 412
NOP 0
Network2:
OPN "REG_AREA_3"
LAR1 P#6.0 //初始化地址寄存器1(数据查询的起始地址)
L MW 412 //循环次数(数据查询个数)
NEXT: T LW 20 //存储当前的循环次数
L DBW [AR1,P#2.0] //将当前DB对应的地址里面的数据装载到ACCU1里面
L MW 188 //将MW188的内容(系统时间的时、分)移入ACCU
==I //比较ACCU1和ACCU2里面的内容(时、分)是否相等(如果相等RLO=1,如果不等RLO=0)
JCN M001 //如果不等,跳转到M001标签;如果相等,往下执行
L DBW [AR1,P#0.0] //将当前对应的动作号码装载到ACCU1里面
T MW 410 //将当前ACCU1里面的内容(模式号)写到MW400
JU M002 //找到动作码以后,无条件跳转到M002标签(跳出数据查询)
M001: +AR1 P#4.0 //地址寄存器1当前的地址递增4个字节(准备查询下一组数据)
L LW 20 //装载当前循环次数
LOOP NEXT //循环次数减一,跳转到NEXT标签,当循环次数减至0,离开循环,往下执行
M002: NOP 0
Network3:
A(
A(
L 1
L MW 410
==I
)
FP M 35.0
A(
L "Mode".DB_VAR[10]
L 1800
<=I
)
JNB _001
L 1100
T "Mode".DB_VAR[2]
SET
SAVE
CLR
_001: A BR
)
JNB _002
L 1100
T "Mode".DB_VAR[10]
_002: NOP 0
Network4:
A(
A(
L 2
L MW 410
==I
)
FP M 35.1
A(
L "Mode".DB_VAR[10]
L 1800
<=I
)
JNB _003
L 1101
T "Mode".DB_VAR[2]
SET
SAVE
CLR
_003: A BR
)
JNB _004
L 1101
T "Mode".DB_VAR[10]
_004: NOP 0