您当前的位置:五五电子网电子知识plc技术PLC入门变量指针程序如何理解? . 正文
变量指针程序如何理解? .

变量指针程序如何理解? .

点击数:7246 次   录入时间:03-04 11:43:15   整理:http://www.55dianzi.com   PLC入门
      A     "对中纵向对中1汽缸原位"

      A     "对中纵向对中2汽缸原位"

      A     "对中吸盘升降汽缸1上升位"

      A     "对中吸盘升降汽缸2上升位"

      A     "对中工位真空吸附完成"

      JCN   nt3
      L     DBB   12
      T     #glass_type
      T     DBB   13
nt3:  NOP   0
      S     "对中工位玻璃判别完成"

      R     "对中工位玻璃判别失败"

nt6:  NOP   0

这个语句表从nxt3开始的程序不知道如何理解,什么左移三位,变量指针加AR1,麻烦高手指点下该语句表如何理解。
答:这个语句表从nxt3开始的程序不知道如何理解,什么左移三位,变量指针加AR1,麻烦高手指点下该语句表如何理解?
1、首先了解双字指针:
当使用在区域内寄存器间接寻址中时,我们知道这时的AR中的内容只是指明数值单元,因此,区域内寄存器间接寻址时,寄存器中的内容等同于上帖中提及的存储器间接寻址中的双字指针,也就是:  
  其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。  
  AR:  
  0000 0000 0000 0BBB BBBB BBBB BBBB B*  
  例如:当AR=D4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b),实际上就是等于26.4。 
2、为什么左移三位?
据上述双字指针的格式,将一个32位整形数据转为双字指针,即字节指针,将这个个32位整形数据左移3位(即乘8)就是字节指针。例如:
   L #L100  //装入32为整形数据100
   SLD 3   //左移3位(即乘8)
   T  LD0  //LD0得到P#100.0的指针常数。
3、楼主的程序:
nxt3: NOP   0
      OPN   DB [#ProductDBTmp]  //打开用#ProductDBTmp表示数据块号之DB。
      L     #loop_cnt
      L     34
      *I        
      SLW   3  // #loop_cntch乘以34的结果,再左移3位(即乘8),形成字节指针。
      LAR1    //将上述运算结果装入指针AR1。
      L     DBD [AR1,P#20.0]//取指针AR1加上偏移量20.0为地址的那个DBD中的数据。
      L     DBW [AR1,P#28.0]//取指针AR1加上偏移量28.0为地址的那个DBW中的数据。
      +D    // 将上述两者相加
      T     #cnt2_cmp_up//将上述两者相加存入 #cnt2_cmp_up中。

上一页  [1] [2] [3] 


本文关键字:如何  程序  PLC入门plc技术 - PLC入门

《变量指针程序如何理解? .》相关文章>>>