技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > STL编程循环及指针的问题

STL编程循环及指针的问题

刘玉蓉 发布于2014-11-28 17:52 3 0 标签:

一段STL编辑的程序,只看懂了大概意思是将状态位M赋值给DB块,但为什么要使用SRW   1(却不直接赋值一个合适的数),及循环多少遍不太确定(自己分析为(1023-400)次),请大家帮忙看看.其中(#INO=200,#IN1=35)

      L     #IN1
      T     #TEMP2
      OPN   DB [#TEMP2]
      L     P#0.0
      LAR1  
      L     #IN0
      SRW   1
      L     1023
      >I    
      JC    M002
      TAK   
M001: T     #TEMP3
      L     MW [AR1,P#2.0]
      T     DBW [AR1,P#2.0]
      +AR1  P#2.0
      L     #TEMP3
      LOOP  M001
M002: NOP   0

问题补充:
按楼上的回答,如果循环100次,循环的结果是不是将M102.0-M201.9状态值放到了数据块DB35中,地址为DB35.DB2.0-DB35.DB101.9中

佳答案

可以看下下面的解释
L     #IN1
      T     #TEMP2
      OPN   DB [#TEMP2]
      L     P#0.0
      LAR1  
      L     #IN0      装载 #IN0 即200至地址累加器1
      SRW   1        右移位相当于把200乘以2即400
      L     1023     装载累加器1的内容至累加器2(即#IN0  ,400)并把1023累加器1
      >I    
      JC    M002    累加器2的内容(即#IN0  ,400)大于累加器1(1023)刚跳转到M002   
      TAK              若  累加器2的内容不大于累加器1则交换累加器1的累加器2的内容
M001: T     #TEMP3      把累加器1的内容传送到 #TEMP3(即循环次数)
      L     MW [AR1,P#2.0]
      T     DBW [AR1,P#2.0]
      +AR1  P#2.0
      L     #TEMP3
      LOOP  M001
M002: NOP   0
从这段程序可以看出#IN0 乘以2的结果大于1023时跳过程序,不循环,若不大于即小于等于时,
则按#IN0 乘以2的次数进行循环.本例为400

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签