您现在所在的是:

PLC论坛

回帖:7个,阅读:7761 [上一页] [1] [下一页]
873
mhj660967
文章数:18
年度积分:50
历史总积分:873
注册时间:2010/11/23
发站内信
发表于:2012/2/2 16:59:28
#0楼
程序中需要使用循环指令执行子程序若干次:
第一次执行FOR指令,INDX计数递增值直接大于终值!
FOR指令依然循环,为何会失效呢?
附件
38197
cvlsam 版主
文章数:12500
年度积分:808
历史总积分:38197
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2012/2/2 19:04:24
#1楼
你应该同时贴出SBR_6的代码。
9688
Kate
文章数:1123
年度积分:65
历史总积分:9688
注册时间:2002/3/24
发站内信
发表于:2012/2/2 22:28:05
#2楼
FOR/NEXT指令执行过程其实只是让循环体内的程序被强制来回扫描若干次而已,这个过程短暂到你难以察觉,所以就产生了第一次执行FOR指令,INDX计数递增值直接大于终值的错觉;你想要的结果是控制子程序运行次数,不应该用FOR指令啊。
其次,当FOR指令执行完毕,继续往下扫描执行其余指令,再回头扫描到FOR时,如果输入条件没有改变,则继续执行循环,这就是你说的“失效”错觉。
人有人意我有我意合得人意恐非我意合得我意恐非人意人意我意恐非天意合得天意自然如意
873
mhj660967
文章数:18
年度积分:50
历史总积分:873
注册时间:2010/11/23
发站内信
发表于:2012/2/3 9:21:01
#3楼
cvlsam大大,子程序代码很长,在这儿我只能说抱歉!
FOR指令的内循环,我理解的是第一次执行FOR指令后,执行程序,当程序结束,再扫描到NEXT,然后执行第二次循环。可实践中发现好像对FOR指令理解的不太对头,不知是什么原因?
感谢Kate的解答!
我在想如果FOR行不通,是否可以采用标志位跳转+计数器的方式解决呢.
11823
gzg_00
文章数:8996
年度积分:50
历史总积分:11823
注册时间:2009/10/1
发站内信
发表于:2012/2/3 9:33:21
#4楼
以下是引用Kate在2012/2/2 22:28:05的发言:
FOR/NEXT指令执行过程其实只是让循环体内的程序被强制来回扫描若干次而已,这个过程短暂到你难以察觉,所以就产生了第一次执行FOR指令,INDX计数递增值直接大于终值的错觉;你想要的结果是控制子程序运行次数,不应该用FOR指令啊。
其次,当FOR指令执行完毕,继续往下扫描执行其余指令,再回头扫描到FOR时,如果输入条件没有改变,则继续执行循环,这就是你说的“失效”错觉。

表情
1828
chenfuyou20
文章数:391
年度积分:50
历史总积分:1828
注册时间:2005/5/31
发站内信
发表于:2012/2/3 10:00:42
#5楼
用顺控指令加计数可以实现。
1199
squall001
文章数:83
年度积分:50
历史总积分:1199
注册时间:2009/3/3
发站内信
发表于:2012/2/9 1:11:06
#6楼
在FOR指令中间不能加定时器,你子程序里面是不是有定时器?
873
mhj660967
文章数:18
年度积分:50
历史总积分:873
注册时间:2010/11/23
发站内信
发表于:2012/2/9 8:50:24
#7楼
回答楼上的,木有加定时器。
看到很多朋友的留言,我也受到点启发。
我目前的替代方法是,For+Cx的结构,既然FOR循环再每个扫描周期内周而复始就用比较指令来控制通断。
如有更好的方法还请大家指教。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

78.0005