STL应用——续

首先要吐槽下西门子‘找答案’平台,也得让问答者互动一下啊,
只好把最开始的问题再贴过来如下:

有个应用用梯形图编程可以实现,但我觉得用STL更优,故请教這方面的能手给我露两手:
有48组DINT 格式数据:DB1504.DBD0~DB1504.DBD188,  当M1101.5 为ON, 进行比较MD1200 与48组数据哪组相同,且比较顺序由DBD188开始往下,当比较到相同数值时候把DB1504.DBDXXX数据清零,且把M11.2置1,动作完成。
大侠们请帮忙帮忙,ljm713028@126.com 

根据‘艾星若尘’的帮助,做了一下程序:
      OPN   DB1504

      A     M   1101.5

      JNB   NON9

      A(    

      L     MD  1200
      L     L#0
      >D    
      )     

      JNB   NON9

      L     L#188
      SLD   3
      T     MD  1230
      L     48

back: L     MW  1222

      L     DBD [MD 1230]
      L     MD  1200
      ==D   

      JC    next

      L     MD  1230
      L     L#32
      -D    

      T     MD  1230
      L     MW  1222

      LOOP  back

next: L     L#0
      T     DBD [MD 1230]
      S     M     11.2

NON9: NOP   0

模拟一会后CPU 会STOP,同时貌似有点小问题,请艾星及各位解答下!

问题补充:
非常感谢‘艾星若尘’!
因为数值肯定是最先从188开始的,总共有48个DBD,

图片说明:

STL应用——续    STL应用——续   

最佳答案

今天上班的时候,时间不是很充足,比较匆忙,没有好好的进行测试;确实没有写好,新写好的,不妨再试试看:
    OPN   DB  1504
      L     188
      SLD   3
      T     MD   200
      L     48
_010: T     MW   300
       L     DBD [MD 200]
       L     MD  1200
       <>D   
       JC    _011
       L     0
       T     DBD [MD 200]
        S     M     11.2
         JU _012
_011: L     MD   200
         L     32
        -D    
        T     MD   200
        L     MW   300
        LOOP  _010
_012: NOP   0

提问者对于答案的评价:
感谢‘艾星落尘’的解答,能达到我的效果!
‘ LJCLWYF’的解答也是非常专业非常感谢!

最佳答案作者回复:
能帮到你,我也很高兴!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc227384.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐