SCL中程序问题

FUNCTION "fcHMI_Global" : VOID
VAR    
    i: INT;
    j: INT;

END_VAR
BEGIN
    // Statement Section
   FOR i:= 200 TO 215 DO
    IF MX[i+1,0] =TRUE
  
        THEN
           "dbHMI_001 Global".DW[58+j]:=1;
           j:=j+10;
     
    END_IF;
   IF i=215

   THEN    
   i:=0;
   END_IF;
END_FOR;
END_FUNCTION
写了个SCL小程序,没有错误,用的仿真软件,编译没有错误,为什么CPU执行一段时间后自动停止了啊,还有SCL编辑器最多可以写多少行程序啊,麻烦大家讲讲啊,谢谢

问题补充:
定义变量时VAR和VAR_TEMP在用的时候有什么区别啊

最佳答案

j的值会溢出,加个限制的语句啊
if j>=? then 
 j:=?;
end_if;
下面这
IF i=215

   THEN    
   i:=0;
   END_IF;

没有意义,i的值就是for循环赋值的,下一次执行它还是会从200-215递增的

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc234647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐