求助:s7-200的FOR-NEXT指令的应用(高手请不啬指点) 点击:3834 | 回复:6



指点江山

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 124回
  • 年度积分:0
  • 历史总积分:308
  • 注册:2005年7月23日
发表于:2007-04-27 16:51:00
楼主
以上是我编写的小程序。
I0.0启动循环
VW10循环计数
从编程手册上,看这些指令的效果是:[color=#0000FF]I0.0闭合,进入循环。VD200每次循环都+2,循环次数7次后停止。VD200的值应该是14(初始值0),[/color]实际现象是:[color=#FF0000]循环到达7次后(即vw10=7),VD200的值并不是14,而是继续增长。怎么控制停下?[/color]
[color=#808000]如果用FOR-NEXT指令求10个字中最小的值,该怎么弄?例如:VW50/VW51/VW52/VW53/VW54/VW55/VW56/VW57/VW58/VW59/VW60用循环比较的方式寻找出最小的值,那位高手能百忙之中指点一下?[/color]邮箱:bhqt94716009@163.com



指点江山

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 124回
  • 年度积分:0
  • 历史总积分:308
  • 注册:2005年7月23日
发表于:2007-04-27 16:53:00
1楼

clw123456

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:38
  • 注册:2009年12月22日
发表于:2011-02-18 17:52:33
2楼

我也遇到同样的问题不知道怎么回事,很多书上都对FOR-NEXT语句介绍的很少。

lkone1985

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2009年3月24日
发表于:2011-06-18 15:09:08
3楼

把SM0.0改成M0.0,后面加个上升沿触发就可以了。

for指令是脉冲触发

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2011-06-18 23:32:05
4楼
引用lkone1985 的回复内容:

把SM0.0改成M0.0,后面加个上升沿触发就可以了。

for指令是脉冲触发



楼上说的没错 ,用 上升沿 触发 FOR 指令,及 中间的程序段,确保,I0.0 为 1 时, FOR - NEXT 循环执行 完成一次!


楼主没有把 FOR -NEXT 这个循环指令理解 透彻 , 这个指令是只 在每个扫描周期 都要执行 一次 FOR - NEXT 之间的程序段, 而你上面的 I0.0 为 1 之间执行 FOR-NEXT 指令,也就是说 循环执行了很多次,  你上面用 SM0.0 你看到的结果肯定不是 14 ,


随心-王者之师

  • 精华:2帖
  • 求助:11帖
  • 帖子:145帖 | 5530回
  • 年度积分:1300
  • 历史总积分:29990
  • 注册:2008年4月27日
发表于:2015-07-28 15:10:58
5楼


引用 miy_gongkong 的回复内容: 引用lkone1985 的回复内容: 把SM0.0改成...

都必须用沿指令触发 ,学习了

sea7016

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 17回
  • 年度积分:0
  • 历史总积分:105
  • 注册:2017年6月08日
发表于:2017-06-13 02:15:32
6楼

没太搞懂啊


热门招聘
相关主题

官方公众号

智造工程师