1500间接寻址报错,已经给下标赋值了,程序中没执行的地方下标为空,是怎么回事,如何解决?
IF "DB200".InPut=0 THEN
"DB200".InPut:=1;
END_IF;
"DB200".Out:="DB200".InPut MOD 4 ;
IF "DB200".Cmd_Forwd[0] THEN
"DB200".Cycline["DB200".Out].Cmd.ManalForwd := TRUE;
ELSE
"DB200".Cycline["DB200".Out].Cmd.ManalForwd := FALSE;
END_IF;
IF "DB200".Cmd_Back[0] THEN
"DB200".Cycline["DB200".Out].Cmd.ManalBack := TRUE;
ELSE
"DB200".Cycline["DB200".Out].Cmd.ManalBack := FALSE;
END_IF;
问题补充:
CPU 临时错误:FC 1 中的区域长度错误
将影响 OB 1 的执行
写访问 易失性 DB 区域
地址错误,已忽略操作数
最佳答案
检查"DB200".InPut的数值啊,是不是除以4之后的余数超过了"DB200".Cycline的下标
另外"DB200".Out:的数据类型是整数吗
FC1里面的程序就这么多么,会不是在别的地方有错误?
提问者对于答案的评价:
程序段SCL写超了
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc361786.html