您现在所在的是:

西门子SIEMENS

回帖:2个,阅读:561 [上一页] [1] [下一页]
773
fhxebskii
文章数:8
年度积分:50
历史总积分:773
注册时间:2011/1/31
发站内信
发表于:2011/2/10 12:49:10
#0楼
以下程序段是为了把数据DB12和DB13里面的数据清0,灌进去以后,PLC由RUN跳到STOP,高手帮我指点下,初学者求助
A  M52.1              //M52.1开点触发
L  0          
T  MW146           //循环次数清0
T  MD150           //地址数清0
L  1
T  MD150           //装载地址初始值1
L  99    
NEXT:T  MW146  //装载循环次数99
L  MD150             //我的数据里面的数据都是双字的,就是都从DB12.DBD4和DB13.DBD4开始的,所以乘以4
L  4
*D
T   MD154
L  MD154
SLD  3                 //双字寻址地址左移3位  
T  MD154
OPN  DB12           //打开DB12
L  0
T  DBD[MD154] //清0
OPN  DB13           //打开DB13
L  0
T  DBD[MD154]  //清0
L  MD150
L  L#1
+D                       地址+1
T  MD150
L  MD146
LOOP  NEXT          //循环次数1,不为0跳转NEXT
=  M52.2               //循环完了输出M52.2
38119
cvlsam 版主
文章数:12488
年度积分:730
历史总积分:38119
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2011/2/10 13:34:31
#1楼
应该是地址+4,而不是乘以4,否则后续左移3位,等于乘以12,这样讲导致地址越界,从而引发OB121编程错误。

你应该可以看到模块诊断信息中关于地址越界的信息。

实际上,在数据区已知的情况下,调用SFC21(FILL)填充将更快。否则在使用循环时,应该使用L DBLG得到数据块的字节长度,然后除以4就是整个数据块的双字数据数量,以此作为循环次数,这样将更容易控制。同时也可以将当前地址与此比较,从而避免地址越界的问题。

Regards
773
fhxebskii
文章数:8
年度积分:50
历史总积分:773
注册时间:2011/1/31
发站内信
发表于:2011/2/10 21:06:06
#2楼
您看改成下面这样行不,地址MD150赋初值 4,循环+4,两个数据块都各有99个双字数据,循环99次应该不会地址越界的吧?    我明天 也去试下,另外数据块不定义的话能不能直接用?谢谢帮我解答    
          A  M52.1              //M52.1开点触发
      L  0          
          T  MW146           //循环次数清0
          T  MD150           //地址数清0
          L   L#4
          T  MD150
          L  99    
NEXT:T  MW146         //装载循环次数99 ,两个数据块都各有99个双字数据
          L  MD150
          SLD  3                 //双字寻址地址左移3位  
      T  MD154
         OPN  DB12           //打开DB12
         L  0
        T  DBD[MD154] //清0
        OPN  DB13           //打开DB13
       L  0
        T  DBD[MD154]  //清0
        L  MD150
        L  L#4
        +D                       地址+4
       T  MD150
        L  MD146
        LOOP  NEXT          //循环次数1,不为0跳转NEXT
        =  M52.2               //循环完了输出M52.2

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

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

46.8003