“常用公式”在线计算,“设计手册”在线查询
A    #glass_id_auto              //手动=1// A    "横向打开到位"// A    "纵向打开到位1"// A    "纵向打开到位2"// A    "玻璃到位检测(顶柱)"     JC    nt31     NOP   0     O     "cnt_read_ok"               //编码器数据稳定,可以开始检测//   O     "T 允许玻璃识别延时"//   O     "M 3工位自动涂胶准备好"     A     "对工工位支撑柱玻璃在位"     JCN   nt6     SET        R     #start_timer     L     0     T     #loop_cntnxt3: NOP  0     OPN   DB [#ProductDBTmp]     L     #loop_cnt     L     34     *I         SLW   3     LAR1       L     DBD [AR1,P#20.0]     L     DBW [AR1,P#28.0]     +D         T     #cnt2_cmp_up     L     DBD [AR1,P#20.0]     L     DBW [AR1,P#28.0]     -D         T     #cnt2_cmp_down     L     DBD [AR1,P#24.0]     L     DBW [AR1,P#28.0]     +D         T     #cnt1_cmp_up      L    DBD [AR1,P#24.0]     L     DBW [AR1,P#28.0]     -D         T     #cnt1_cmp_down     A(         L     #cntv2_act// L     "TP_cntv2_save"     L     #cnt2_cmp_down     >=D        )          A(         L     #cntv2_act//  L     "TP_cntv2_save"     L     #cnt2_cmp_up     <=D        )          A(         L     #cntv1_act// L     "TP_cntv1_save"     L     #cnt1_cmp_down     >=D        )          A(         L     #cntv1_act// L    "TP_cntv1_save"     L     #cnt1_cmp_up     <=D        )          JCN   nt30     L     #loop_cnt     L     1     +I         OPN   DB [#AssignDBTmp]     T     DBB   13     L     DB32.DBB   13     T     #glass_type     JU    nt3nt30: L    #loop_cnt     L     1     +I         T     #loop_cnt     L     16     <I         JC    nxt3     L     0     T     #glass_type     T     DBB   13     S     "对中工位玻璃判别失败"     R     "对中工位玻璃判别完成"     JU    nt6//由于和客户沟通后决定,不需要做在自动情况下的自动取消涂胶工艺,故取消下列功能//  OPN   DB [#AssignDBTmp]//  A     DBX    8.2                  //取消涂胶?// JCN   n301                        //否//  L     100                         //是,将取消涂胶编号100发给机器人,任务100为空操作,只// T     #glass_type// T     DBB   13//n301: NOP   0                           //强制涂胶,等待转换到涂胶手动选择// L    0// T     #glass_type// T    DBB   13// JU    nt6//nt31: NOP   0nt31: NOP  0                           //手动选择玻璃型号     OPN   DB [#AssignDBTmp]     A     DBX   23.4     A     "对中横向对中汽缸原位"     A     "对中纵向对中1汽缸原位"     A     "对中纵向对中2汽缸原位"     A     "对中吸盘升降汽缸1上升位"     A     "对中吸盘升降汽缸2上升位"     A     "对中工位真空吸附完成"     JCN   nt3     L     DBB   12     T     #glass_type     T     DBB   13nt3: NOP   0    S     "对中工位玻璃判别完成"     R     "对中工位玻璃判别失败"nt6: NOP   0这个语句表从nxt3开始的程序不知道如何理解,什么左移三位,变量指针加AR1,麻烦高手指点下该语句表如何理解?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

共 1 个关于本帖的回复 最后回复于 2013-5-7 16:12

沙发
魏冲 新来的 发表于 2013-5-7 16:12:13 | 只看该作者
研发埠培训中心
1、首先了解双字指针:当使用在区域内寄存器间接寻址中时,我们知道这时的AR中的内容只是指明数值单元,因此,区域内寄存器间接寻址时,寄存器中的内容等同于上帖中提及的存储器间接寻址中的双字指针,也就是:    其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。  AR:  0000 00000000 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中。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们

360网站安全检测平台