登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:300里的循环LOOP指令

点击:3234 回复:5

题:用语句表设计程序,求MW20——MW40中的数据的累加和。
   L +24
  T MD0
  L +2
  T MD4
  L MW20
  L MW22
  +I
  T MW100      //MW100用于储存加数总和
  L 9          //装入循环次数至累加器低次
yu:T MW10       //将当前循环计数保存在MW10
  L MW[MD0]    //MD0依次为24 26 28 30 32 34 36 38 40
  L MW100      //当前加数总和
  +I
  T MW100
  L MD0        //装入指针
  L MD4        //装入指针地址变化的数
  +I           //指针+2
  T MD0
  L MW10       //取出循环次数至accu1
  LOOP yu      //accu1低字内容减1,若减1后大于0,跳到yu处
程序我是如此编得,可在仿真时,MD0只加至26就停了。程序可能有错误,但我对间接寻址还很陌生,不知道错在哪了。
方法有很多,多多指教!
最后修改:2006-6-28 10:13:13
06-06-28 10:08
左移3位啊,在MD0与MD4 中,0,1,2表示bit,要对字寻址,必须确保这3位为0。
换口气,继续潜水。
06-06-28 18:22
你的意思是不是开机时就把MB0、MB1、MB2清零?麻烦直接一点,给个正确的程序好吗?
06-06-29 09:53
他的意思是左移3位,形成BYTE.BIT的格式,这样就可以对字进行寻址了。也就是说,需要形成24.0的格式,而不是24。详情请参照语句表手册第3-9,3-13所述。
06-06-29 10:07
明白了,多谢
06-06-29 10:24
         L       20
         SLW   3
         LAR1
         L     0
         T     MW100
          L  10
NEXT: T   #TIMES//临时数据
          L    MW100
          L    MW[AR1,P#0.0]
         +I
          T  MW100
          L P#2.0
          +AR1
          L   #TIMES
          LOOP   NEXT
最后修改:2006-6-29 10:41:21
06-06-29 10:38

工控新闻

更多新闻资讯