1500下标间接寻址

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午12:02
下一篇 2021年7月5日 下午12:02

相关推荐

发表回复

登录后才能评论