我看了编程软件帮助文档中关于间接寻址的说明,结果不是很明白。
它有个命令
MOVD &VB10, AC1
说的是把VB10的地址(而不是数据区存放的内容)放入到指针AC1中,我的V存储区的存放的数据如下:
VB10 12
VB11 34
VB12 56
VB13 78
我下载到PLC,然后在线观察,发现&VB10的数据是16进制的800000A,AC1中是十进制的134217738我搞不明白这个数是什么数?怎么出来的?
问题补充:
SG9,
为什么要这么寻址呢,如果要把VW10的值送入AC0,
我直接用MOVW VW10 AC0 不是更好,更简单?
最佳答案
AC1中的134217738是VB10的地址号数,也就是VW10的首地址。它是用十六进制来表达的,所以&VB10的地址=16#800000A经过指令MOVD &VB10,*AC1将其送入AC1后,得到的十进制数就是134217738了。如果再用指令MOVW *AC1,AC0,那么AC0中的数据就是1234了。这就是完成了对VB10VB11的间接寻址的任务。最终把VW10的值1234送到了AC0中。
提问者对于答案的评价:
您能在回答下我的补充问题吗?谢谢。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc357842.html