200PPLC的指针不知何物?&VB100中&符号代表什么,使用什么指令会出现。希望能者给讲解一下。最好有例子,简单易懂
问题补充:
几位朋友的解释,还是比较难理解。不过我做了测试,比如给VW100赋值1234.编辑MOVD &VB100, AC1 MOVB *AC1, BD10 那么VW10也等于1234.可不可以这样认为,1234通过指针间接的也存入了AC1中,当然VW100中也是1234
图片说明:
最佳答案
在200间接寻址中有一种叫法叫指针寻址法,这个指针相当于一个纸箱,里面放的(东西)数据是什么需要另外指定。这个把东西放进去的过程用标志符“&”表示,数据类型必须是32位的,如&VD0、&AC1。那这个(东西)数据有大有小,仍然需要有标志符把它拿出来,这个标志符就是“*”。
例子:建指针
LD SM0.1
MOVD &VB0, AC1
MOVD &VB100, VD200
建指针必须是32位指令及存储区地址编辑!
取指针中的数据:
LD M0.0
MOVB *VD0, VB10 //如果东西是8位的数据
MOVW *VD100, VW20 //如果东西是16位的数据
MOVD *VD100, VD30 //如果东西是32位的数据
假设,我事先把VB0赋值了一个数据为100,那么,上面VB10值的结果就是100,同样,事先将VB100中放入数据200,那么,VW20中的数据就是200.
间接寻址一般用于一串连续数据的比较、记录、选择中的程序编辑。
提问者对于答案的评价:
谢谢你回答的这么多。但是我没有理解。看一下我的问题补充理解的正确吗?再就是第一个回答者的第一张图片中是不是有错误。MOVD *AC1,AC0 应该是VW200的数据给AC0而不是VW202的。最好还是往简单里给解释一下
最佳答案作者回复:
AC1是通过指针把&VB100的数据地址指向AC1的,用“*”是取指针建立时的数据,按你补充问题MOVB *AC1, BD10含义,应该是取VB100地址中的数据到BD10,虽然,200没有数据块地址BD,但意思是这么个意思。我列举了建指针是32位指令(必须),和取指针地址数据,按数据类型可能有3种可能。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc369610.html