下面这段STL程序看不懂,求大神指导。。。

O(    
      L     DB100.DBD    2
      L     TOD#5:59:0.000
      >=D   
      )     
      A(    
      L     DB100.DBD    2
      L     TOD#11:59:0.000
      <=D   
      )     
      O(    
      L     DB100.DBD    2
      L     TOD#17:59:0.000
      >=D   
      )     
      A(    
      L     DB100.DBD    2
      L     TOD#23:59:0.000
      <=D   
      )     
      =     #TEMP37

最佳答案

修改后:
这段程序有点像是排班的时间表:
早上6点到中午12点 
晚上18点到24点
经过模拟这段程序是可行;即:早上6点到中午12点 或者晚上18点到24点 置位    =    #TEMP37
分析,首先:DB100.DBD2是个日计时的时间格式,那么DB100.DBD2都是小于TOD#23:59:0.000的所以,最后一个
    A(    
      L     DB100.DBD    2
      L     TOD#23:59:0.000
      <=D   
      )     
  一直为1;
就是说
     O(    
      L     DB100.DBD    2
      L     TOD#5:59:0.000
      >=D                  
      )            //早上6点后
      A(    
      L     DB100.DBD    2
      L     TOD#11:59:0.000
      <=D   
      )     //早上12点前
 //以上程序是表示在,早上的6点到12点,成立时 # TEMP 37就为1
只要进入到18点,# TEMP 37也为1
 O   M2.1
 A   M2.2
 O   M2.3
 A   M2.4
=     M2.5     //M2.1与M2.2都为1时,只要M2.4为1 M2.5就为1
                     M2.3与M2.4都为1时,M2.5就为1
楼主可以模拟或者监控看看,最后一个时间的比较块是否一直为1 "O"为1时,STA和RLO都为1,可以写写程序监控看看;
之前的解答有点不对;

提问者对于答案的评价:
感谢细心讲解,主要是对O,A的运用还是不够哈,最近才看STL的东西,这个没有从脑子里转换成梯形图,我感就是O相当于隐形的加了个中括号吧,这样我就能理解了。。。

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

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

相关推荐