关于S7-300 STL程序的解释 新手不懂

A7d0: L     #I
      L     8
      <=I   
      JCN   A7d1
      L     #I
      ITD   
      L     L#1
      -D    
      LAR1  
      A     L [AR1,P#32.0]
      NOT   
      JCN   A7d2
      L     #I
      ITD   
      L     L#1
      -D    
      L     L#32
      *D    
      L     0.000000e+000
      TAK   
      LAR1  
      TAK   
      T     LD [AR1,P#0.0]
      L     #NUM1
      L     1
      -I    
      T     #NUM1
      JU    A7d3
希望越详细越好  最初 I 的输入是1

最佳答案

A7d0: L     #I
      L     8
      <=I       //比较#I是否小于等于8
      JCN   A7d1   //若#I小于等于8,则程序跳转至标签A7d1处执行程序;若#I大于8则继续向下执行程序
      L     #I
      ITD        //把#I的数值转化为双整数
      L     L#1   //装载双整数1到累加器1中
      -D         //双整数减法,即#I-1
      LAR1    //把减法所得的结果存到AR1中
      A     L [AR1,P#32.0]   //判断临时变量L32.0的信号状态
      NOT         //取反指令
      JCN   A7d2  //若L32.0为1,则程序跳转至标签A7d2处执行程序;若L32.0为0,则继续向下执行程序
      L     #I
      ITD       //把#I的数值转化为双整数
      L     L#1   //装载双整数1到累加器1中
      -D          //双整数减法,即#I-1
      L     L#32   //装载双整数32到累加器1中
      *D          //双整数乘法,即#I-1的结果和32乘
      L     0.000000e+000  //装载实数0.0到累加器1中
      TAK   
      LAR1  
      TAK   
      T     LD [AR1,P#0.0]  //这四步是把0.0存放到LD0中
      L     #NUM1
      L     1
      -I    
      T     #NUM1  //这四步是将#NUM1的数据减1后存到#NUM1中
      JU    A7d3    //无条件跳转到标签A7d3
参见:用于S7-300 和S7-400 的语句表(STL)编程
http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=1818&loginID=&srno=&sendtime=
这是基础手册,里面有各种指令的讲解说明,你的程序可以参考手册自己再分析一下。

提问者对于答案的评价:
多谢指导!希望能和您加个QQ好友 初学 有太多问题不懂!!!qq515872799

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

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

相关推荐