250486252
级别: 探索解密
精华主题: 0
发帖数量: 40 个
工控威望: 150 点
下载积分: 3117 分
在线时间: 76(小时)
注册时间: 2012-04-14
最后登录: 2024-10-11
查看250486252的 主题 / 回贴
楼主  发表于: 2012-10-12 11:30
各位大侠我用ST编程碰到一下问题,希望大家帮帮我,谢谢。
1:
IF D800<0 THEN
        D800:=0;
编译显示错误,我改成下面就可以了
IF (D800*1)<0 THEN
        D800:=0;
2: 
REPEAT
D20:=D20+1;
UNTIL D20>=D30  
END_REPEAT;
语句不停运行,我改成下面就可以
D20:=0;
REPEAT
D20:=D20+1;
UNTIL D20>=D30  
END_REPEAT;
3:
FOR D1000:=0  TO  100  BY  2  DO
D2000:=D2000+1;
END_FOR;
为什么语句一直计算呀,D1000到102时D2000不停的加以上寄存器都是独立的,没有其它地方修改其值
[ 此帖被250486252在2012-10-12 14:02重新编辑 ]
阿刀
级别: 略有小成
精华主题: 0
发帖数量: 46 个
工控威望: 200 点
下载积分: 546 分
在线时间: 47(小时)
注册时间: 2009-09-08
最后登录: 2024-11-27
查看阿刀的 主题 / 回贴
1楼  发表于: 2012-10-12 22:33
和赋初值有关系
kissstar
趁年轻
级别: 家园常客
精华主题: 0
发帖数量: 128 个
工控威望: 670 点
下载积分: 4532 分
在线时间: 88(小时)
注册时间: 2009-07-28
最后登录: 2024-10-28
查看kissstar的 主题 / 回贴
2楼  发表于: 2013-09-17 11:29
IF D1000<102 THEN
FOR D1000:=0  TO  100  BY  2  DO
D2000:=D2000+1;
END_FOR
END_IF;