STL编程计算中赋值问题

大家好,小弟最近在学STL所以问题有点多- -
今天看到公司机组上程序中有一个FC,完整的我抄下来:
IN1--POINTER类型,INO--word类型,TEMP2--WORD类型
         L     P##IN1                      //IN1=DB515.DBW0,  515=203(H)
      LAR1  
      L     W#16#0
      L     W [AR1,P#0.0]               //W=byte0+byte1=存储号即515=203(H)
      ==I   
      JZ    M001
      T     #TEMP2                      //T赋值。为什么是W[AR1,P#0.0]赋给TEMP2,不是16#0?因为W[]排在下面就是下面的要赋值给T后面的?
      OPN   DB [#TEMP2]                 //打开DB块
M001: NOP   0
      L     D [AR1,P#2.0]               //D,即byte2--byte5,实际起始地址,DBW0
      LAR1  
      L     W [AR1,P#0.0]               //DBW0>DBW2么
      L     W [AR1,P#2.0]
      >I    
      JCN   M002
      L     1                           //大于的话,执行这段。问:究竟是哪个+1,DBW0还是DBW2,和上面的赋值问题一样
      +I    
      T     W [AR1,P#2.0]               //执行过+1后,将值赋值给DBW2
      L     1                           //哪个+1,DBW2么?
      +I    
      SLD   4                           //还是一样,哪个左移4位或者说乘以16呢
      TAR1                              //将AR1地址中的值给ACCU1,但此时ACCU1中的是啥?
      +D                                //哪个和哪个相加?
      LAR1                              //相加的和 送入AR1地址寄存器中
      L     #IN0                        //INO=MW1400
      T     W [AR1,P#0.0]               //这个值送给AR1中BYTE0和BYTE1,就是DB几的意思?这里有何作用
      SET   
      JU    M003
M002: CLR   
M003: SAVE  
这个功能块的主要作用是:
10MOVE给DB515.DBW0,然后出来DBW4~DBW22逐个相加除10,还有些别的运算,不提了。
主要是对开卷机 激光测卷径的值进行“滤波”
实在看不懂的,可留下邮箱,小弟会将程序发过去的- -谢谢

小弟的疑问写在备注中了,主要是对哪个赋值哪个,哪个和哪个相加比较混淆,求前辈们指点哦,谢谢!

最佳答案

L     W#16#0         把W#16#0给ACCU1
      L     W [AR1,P#0.0]      把W [AR1,P#0.0] 里的数据给ACCU1,上面的W#16#0转存在          
      ==I                               ACCU2里了
      JZ    M001           
      T     #TEMP2     T指令就是把ACCU1的数据传给后面的变量,所以是把W [AR1,P#0.0] 里的数据传给了#TEMP2
手册里对L、T的讲解你要再仔细的看看。
下面的都是这样的用法,你在分析分析。
我的结果是:DBW2加1;1+1;2左移4位;AR1中的值是地址指针DBX0.0,DBX0.0和2左移4位的结果相加---就是DBX4.0了,这里相当于有了一个地址计算;把DBX4.0传送给AR1。
参见:关于S7-300和S7-400指针寻址的说明与例程
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=F0215

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。

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

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

相关推荐