设为首页收藏本站积分获取及使用技巧附件上传须知[求助-西门子PLC300/400]SCL中程序问题

追梦工控论坛|工控论坛-专业的Intouch论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

总共8197条微博

动态微博

查看: 2088|回复: 2

[求助-西门子PLC300/400]SCL中程序问题

[复制链接]

升级  35%

该用户从未签到

发表于 2014-3-5 20:02:02 | 显示全部楼层 |阅读模式

上传分享工控资料得追梦点,下载积分获取办法点击进入 ☆追梦点充值入口
发帖回帖赚金币兑换下载积分。上传附件须知点击进入

×

马上注册,结交更多工控达人,分享经验,让你轻松玩转追梦工控论坛。

已有帐号?  点击登录   或者        

支付宝扫一扫领红包
FUNCTION "fcHMI_Global" : VOID
VAR
i: INT;
j: INT;</P>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在用的时候有什么区别啊
让我们联手拒绝网络伸手党,下载积分获取办法&附件上传须知 ☆追梦点充值入口





+1
2090°C
2
  • 小池
  • ULxbhnVd
过: 他们

升级  40.5%

该用户从未签到

发表于 2014-3-5 21:12:41 | 显示全部楼层
j的值会溢出,加个限制的语句啊
if j>=? then
j:=?;
end_if;
下面这
IF i=215
   THEN   
   i:=0;
   END_IF;
没有意义,i的值就是for循环赋值的,下一次执行它还是会从200-215递增的
                                                                                                                                                                                                                                                              
                                                        

升级  24%

该用户从未签到

发表于 2014-3-5 21:26:51 | 显示全部楼层
首先不清楚对i:=0这步有什么作用。
执行一段时间后,j的值会超出INT的允许范围。
VAR和VAR_TEMP在FC块中区别不大,都是临时变量,但一般使用VAR_TEMP;在FB块中VAR相当于静态变量,VAR_TEMP相当于临时变量。
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

请珍惜自己的ID,严禁发布垃圾水贴,诸如adsf......顶......纯表情......多次重复回帖刷积分......轻则删帖警告,重则封禁!★请分享资料、经验或者赞助论坛,贡献一份力量★

关闭

最新活动上一条 /1 下一条

小黑屋|手机版|追梦工控论坛|工控论坛-专业的Intouch论坛 ( 皖ICP备10012005号 )|网站地图

GMT+8, 2025-5-6 21:22 , Processed in 0.098060 second(s), 21 queries , Gzip On, APCu On.

Powered by Dreamyiyi

© 2009-2025 工控论坛

快速回复 返回顶部 返回列表