技术论坛

 SMART200 FOR(NEXT) 有没有详细的说明?

返回主题列表
作者 主题
手机用户20180517132981
游士

经验值: 277
发帖数: 37
精华帖: 0
楼主    2018-10-11 10:31:53
主题:SMART200 FOR(NEXT) 有没有详细的说明?


是不是由网络一到网络二再到网络三之间循环十次当INDX的值变为十一大于FINAL的值,次循环就停止?为什么现在I0.0 I0.1同时接通vw2的值还是一直增加的?

芳季
至圣

经验值: 66574
发帖数: 14746
精华帖: 100
1楼    2018-10-11 10:37:36
主题:回复:SMART200 FOR(NEXT) 有没有详细的说明?

for不循环就执行一次。循环就执行n次。你一直接通就一直循环了。

什么叫循环?扫描本身就是一个循环了,扫描一次for循环n次。

所以一直增加。

详细的说明你就点击for-next指令然后按F1。

WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
2楼    2018-10-11 10:46:51
主题:回复:SMART200 FOR(NEXT) 有没有详细的说明?

一个记忆非常深刻的指令。

for next指令的工作机制:(必须配对使用,且允许嵌套使用)

INDX:记录当今循环次数

INIT:从定义的第几个循环开始进行

FINAL:循环次数定义

当条件满足激活该指令时允许循环,INDX一定是从指定的(init)开始循环,且在FOR指令下面的程序段开始循环,直到NEXT标记返回到FOR,并记录循环次数,当INDX = FINAL时,循环结束。

注意!注意!注意!这种循环仅仅是一个周期内完成的,而不是多个周期内。

另外,当循环次数多,或者嵌套循环层多了会影响到程序最大扫描周期的,那样会停止cpu影响,遇到此类问题时,在简化用户程序的前提下,通过调用WDR指令处理。

WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
3楼    2018-10-11 10:52:41
主题:回复:SMART200 FOR(NEXT) 有没有详细的说明?

不知道这样解释能够理解这个for next指令?

哦,忘了解释程序了。

当接通I0.0/I0.1,指令inc_w为什么会一直加?

因为你一直让循环在工作呀,你停止循环?

一般循环触发仅仅需要一个沿(上升沿、下降沿)均可以。上面已经描述过该指令,循环开始到结束仅仅只需要一个周期就可以了,与其它指令有区别的。

你在I0.0后面加一个上升沿试试就明白了。

shine
至圣

经验值: 19950
发帖数: 8944
精华帖: 39
4楼    2018-10-11 11:11:26
主题:回复:SMART200 FOR(NEXT) 有没有详细的说明?

打个比方:

你原来的每天资100块(对应+1指令)

老板给你涨了10倍的工资(循环10次)

你还是要每天上班(对应OB1循环)

你觉得你的存款(对应VW2)就是1000呢还是每天增加1000

kibu
侠圣

经验值: 4513
发帖数: 554
精华帖: 4
5楼    2018-10-11 13:04:10
主题:回复:SMART200 FOR(NEXT) 有没有详细的说明?

for循环指令触发请用上升沿或下降沿信号,不要用常开、常闭点

芳季
至圣

经验值: 66574
发帖数: 14746
精华帖: 100
6楼    2018-10-11 16:22:01
主题:回复:SMART200 FOR(NEXT) 有没有详细的说明?

用边缘还是用触点,随人家的吧?什么理由不要用啊?

手机用户20180517132981
游士

经验值: 277
发帖数: 37
精华帖: 0
7楼    2018-10-12 11:37:34
主题:回复:SMART200 FOR(NEXT) 有没有详细的说明?

谢谢大家,i0.0后面加个上升沿,I0.1变成sm0.0以后,实验了几次就明白很多

WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
8楼    2018-10-12 11:53:40
主题:回复:SMART200 FOR(NEXT) 有没有详细的说明?

季侠说的也对,触发循环不仅仅只能用沿,在类似于沿的触发机制下就可以了,比如说,在中断子程序中调用。

有时候的回答仅仅局限于楼主或者回答者的程序例子而言的,具有一定的局限性,没有面对面的交流直接。

芳季
至圣

经验值: 66574
发帖数: 14746
精华帖: 100
9楼    2018-10-12 11:59:31
主题:回复:SMART200 FOR(NEXT) 有没有详细的说明?

如果要每个周期都统计四个字节里面有多少个1,那么用for循环32次加双字移位循环加加一指令,那么这个for就要用触点每个周期都要接通啦。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。