关于S7 300 LOOP指令,向各位大侠请教 点击:2336 | 回复:5



fjimin

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:25
  • 注册:2011年9月01日
发表于:2012-12-18 23:47:06
楼主

一个程序需要在中间等待5S,然后继续往下执行

          A  I  0.0

          L  S5T#5S

          SD T  1

WAIT: L  T  1                  //把T1的时间值装入ACC1,如果时间没到,ACC1值不为0,一直循环。

          +  1                      //如果T1时间到了,ACC1的值为0,+1后,ACC1的值为1

         LOOP  WAIT          //LOOP指令,ACC1-1的值为0,则循环结束。

程序下载后,一运行就出错,PLC上的SF红灯亮,请各位高手指点,到底哪里有问题

谢谢




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2012-12-19 06:31:33
1楼

您这不是相当于在循环体内改变循环变量的值么,这是循环操作之大忌,不清楚为何您要这样使用,使用系统提供的秒脉冲配合计数器来使用不是更简单且符合逻辑么。

 

 

wingwf2000

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 455回
  • 年度积分:0
  • 历史总积分:1000
  • 注册:2008年1月09日
发表于:2012-12-19 11:15:48
2楼
超出PLC的默认循环周期运行时间了

fjimin

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:25
  • 注册:2011年9月01日
发表于:2012-12-19 21:41:10
3楼

谢谢两位高手指点,“超出PLC的默认循环周期运行时间”能说得具体点吗?我把程序改为:

WAIT:  L  1

           LOOP WAIT

程序就能正常运行了,我想这个循环时间和原先的程序也差不多。怎么就可以了呢?

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2012-12-20 09:27:31
4楼

PLC 程序 不能做这样的死循环, LOOP 指令就是一个死循环指令,要恰当的用,负责会报看门狗错误的。

kskstiy-王者之师军团

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 379回
  • 年度积分:0
  • 历史总积分:2649
  • 注册:2010年8月30日
发表于:2012-12-20 21:12:46
5楼

   A  I  0.0(没问题)

          L  S5T#5S(没问题)

          SD T  1(没问题)

WAIT: L  T  1   (装载时间值到累加器中,没问题)

       (+1,肯定写错了,应该是 )

L 1

+I          

     LOOP  WAIT     (恭喜你进入死循环。。。GAME OVER )

不知道你想要循环什么     

 

WAIT:  L  1   (这个1相当于你的循环次数,所以程序能正常执行)

           LOOP WAIT


热门招聘
相关主题

官方公众号

智造工程师