PLC间接寻址好难呀看不明白,求大神解答

<1>.题目里面明明写的VW100~VW146,为什么起始地址写成VB100,不写成VW100?<2>.MOVD&VB100,VD10,B是字节,怎么不用MOVB而用MO... <1>.题目里面明明写的VW100~VW146,为什么起始地址写成VB100,不写成VW100?<2>.MOVD &VB100,VD10,B是字节,怎么不用MOVB而用MOVD?MOVW *VD10,VW30,*VD是双字,怎么不用MOVD却用MOVW?<3>.为什么不把&VB100直接放入VD20,要放入VD10?<4>.VD10 VD20都是双字,应该偏移4次怎么才偏移两次? 展开
 我来答
任务操作票
2020-07-18 · TA获得超过108个赞
知道小有建树答主
回答量:121
采纳率:92%
帮助的人:36.1万
展开全部

200plc的间接寻址先要理解&和*:操作数前加&代表取地址,加*号表示该操作数为地址指针

(1) VW100~VW146取初始地址&VB100,这里100代表起始“字节”,所以是VB而非VW。

(2) MOVW *VD10,VW30  这里面*VD10并不是双字,这段指令表示把VD10为起始地址的长度为一个WORD的数据送入VW30。

(3) 题目里说了VD20是读取的实时小时值,&VB100是一个初始地址100,不是一回事,也是放不进去的。

(4)这里偏移两次,是因为从VW100~VW146共48个字节对应24个小时的有功功率,可以看出每个小时的有功功率占用2个字节的长度,所以偏移两次。

举个例子:例如想要知道晚上23点时的有功功率数值,那么VD20=23,初始地址100+23+23=146,根据题意将VW146传送给VW30即可。

  • LD         SM0.0

  • MOVD  &VB100,VD10       把VB100的初始地址指针100放入VD10(地址指针32位)

  • +D        VD20,VD10              VD10先偏移23个字节

  • +D        VD20,VD10              VD10再偏移23个字节,此时VD10中地址指针为&VB146

  • MOVW *VD10,VW30           将*VD10指向的VW146放入VW30

百度网友c97fcb436
2020-07-18 · TA获得超过1026个赞
知道小有建树答主
回答量:847
采纳率:100%
帮助的人:287万
展开全部
1.那个V100是表的起始地址,用VB100,VW100是一样的,都是100,怎么写都可以的;2.这里是把100这个地址,装入VD10,你操作VD10当然是要用MOVD,&VB100的B其实没什么用,写&VW100一样的。重要的是V100这个地址,把100装入VD10;3.这里操作的寄存器是VW30,当然不能用MOVD,这表示把 VD10存储的地址对应的数据,按word处理,送到VW30中。地址是按D的长度,地址对应的数据,是按W的格式。举例就是一个小区非常多房子,120000号楼里面有8户人家,120000是个D值,但里面的8户人家,就是W值,这地址和数据,是两码事,要分开
追问
谢谢大神,第三和第四个问题也说一下哈,还是看不懂
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式