当前位置: 主页 > PLC控制

寄存器寻址与指针型参数

图片实例来廖常出书里面,目前读到这比较难理解。希望大家帮忙解释下。
1.LP##STaRT_addr存储的应该是db2.dbx4.0对应的数值为什么不是P#V4.0,而是P#V21.0
2,Lw[ar1,P#0.0]这句话为啥能把db块的号都出来?W指的什么?
3,LD[ar1,P#2.0]同理,这个怎么理解?同时D代表什么
感谢各位解惑。

图片说明:

寄存器寻址与指针型参数寄存器寻址与指针型参数

最佳答案

对于指针一直理解不好,我试这回答下,大伙帮忙看看
1.LP##start_addr存储的应该是db2.dbx4.0对应的数值为什么不是P#V4.0,而是P#V21.0
答:指针的格式你需要看看,书中写到了第一条指令后,
累加器1为2#10000111000000000000000010101000,这个明白了,其实指针转换后2进制的最后三位,代表了平时存储数据点后的0到7。你移三位后那么最后就是10101.000
转换后就是21.0了。
2,Lw[ar1,P#0.0]这句话为啥能把db块的号都出来?W指的什么?
答:这一步DB块的编号应该还没有出来。首先W代表了一个字的长度。程序前三步的意思是
首先把指针的地址存在一个地方。然后在累加器1放入数字0。再放入第二个数字比较。说白了就是比较是不是0。这第二个数字就是从指针所指向的地方开始的1个字内获得。
3,LD[ar1,P#2.0]同理,这个怎么理解?同时D代表什么
答:D代表双字,也是地址长度。他的意思和上面差不多,区别在于P2.0
上面的意思是指针指向的第一个字,这条的意思就是从指针指向第一个地址的地方偏移2.0。
比如上面的是MW0那么这步的地址就是MD2。
下面的地址你可以先看看指针相关资料。
如果还不明白再留言吧
参考资料:htTP://www.ad.siemens.com.cn/serviCE/answer/soLUtion.ASpx?Q_ID=131412&cid=1029

提问者对于答案的评价:

  • 关注微信

猜你喜欢

微信公众号