欢迎来到天天文库
浏览记录
ID:21467998
大小:25.50 KB
页数:5页
时间:2018-10-22
《变量指针程序如何理解?》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、变量指针程序如何理解?变量指针程序如何理解?变量指针程序如何理解? a#glass_id_auto//手动=1 //a”横向打开到位” //a”纵向打开到位1” //a”纵向打开到位2” //a”玻璃到位检测(顶柱)” jcnt31 nop0 o”cnt_read_ok”//编码器数据稳定,可以开始检测 //o”t允许玻璃识别延时” //o”m3工位自动涂胶准备好” a”对工工位支撑柱玻璃在位” jcnnt6 set r#start_timer l0 t#loop_cnt nxt3:nop0 opndb[#pro
2、ductdbtmp] l#loop_cnt l34 *i slw3 lar1 ldbd[ar1,p#20.0] ldbw[ar1,p#28.0] +d t#cnt2_cmp_up ldbd[ar1,p#20.0] ldbw[ar1,p#28.0] -d t#cnt2_cmp_down ldbd[ar1,p#24.0] ldbw[ar1,p#28.0] +d t#cnt1_cmp_up ldbd[ar1,p#24.0] ldbw[ar1,p#28.0] -d t#cnt1_cmp_down a( l#cntv
3、2_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_up 最佳答案 这个语句表从nxt3开始的程序不知道如何理解,什么左移三位,变量指针加ar1,麻烦高手指点下该语句表如何理解? 1、首先了解双字指针: 当使用在区域内寄存器间接寻址中时,我们知道这时的ar中的内容只是指明数值单元,因
4、此,区域内寄存器间接寻址时,寄存器中的内容等同于上帖中提及的存储器间接寻址中的双字指针,也就是: 其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。 ar: 0000000000000bbbbbbbbbbbbbbbb* 例如:当ar=d4(hex)=00000000000000000000000011010100(b),实际上就是等于26.4。 2、为什么左移三位? 据上述双字指针的格式,将一个32位整形数据转为双字指针,即字节指针,将这个个32位整形数据左移3位(即乘8)就是字节指针。
5、例如: l#l100//装入32为整形数据100 sld3//左移3位(即乘8) tld0//ld0得到p#100.0的指针常数。 3、楼主的程序: nxt3:nop0 opndb[#productdbtmp]//打开用#productdbtmp表示数据块号之db。 l#loop_cnt l34 *i slw3//#loop_cntch乘以34的结果,再左移3位(即乘8),形成字节指针。 lar1//将上述运算结果装入指针ar1。 ldbd[ar1,p#20.0]//取指针ar1加上偏移量20.0为地址的那个dbd中的数据。
6、ldbw[ar1,p#28.0]//取指针ar1加上偏移量28.0为地址的那个dbw中的数据。 +d//将上述两者相加 t#cnt2_cmp_up//将上述两者相加存入#cnt2_cmp_up中。 4、建议楼主系统看看下述两个文档,就全明白了: 、见《关于s7-300和s7-400指针寻址的说明与例程(更新版)(2008.03.04)》下载: http://www.ad.siemens.com.cn/download/searchresult.aspx?searchtext=f0215 、详见《step7编程之地址概念详解》连接: htt
7、p://www.plc365.com/jishu/57.html
此文档下载收益归作者所有