关于西门子PLC MOV_W BLKMOV_W指令
第一个图,书上说定时器的预设值为16位的整数,故用字的传送,我看不懂20从十进制转换成二进制就是10100,才5位怎么就变成16位了?应该用MOV_B指令?第二个图字块传...
第一个图,书上说定时器的预设值为16位的整数,故用字的传送,我看不懂20从十进制转换成二进制就是10100,才5位怎么就变成16位了?应该用MOV_B指令?
第二个图字块传送,书上说是VW0对应VW100,VW2对应VW102,VW4对于VW104,为什么不是VW0对应VW100,VW1对应VW101,VW2对应VW102? 展开
第二个图字块传送,书上说是VW0对应VW100,VW2对应VW102,VW4对于VW104,为什么不是VW0对应VW100,VW1对应VW101,VW2对应VW102? 展开
展开全部
1、因为定时器T的预设值为16位字,所以采用MOV_W,虽然20的二进制为10100,实际上就是
0000 0000 0001 0100 ,当然,你采用MOV_B 将20传输给 VB5也是可以的,但是你需要确保VB4中的值为0.
2、因为西门子中,其地址序号是按字节来排列的,所以,VW100实际上是由VB100,VB101组成的,如果你直接使用了VW100,VW101,那么就会产生地址重叠的问题,VW100由VB100,VB101组成,VW101由VB101,VB102组成,地址会发生重叠,所以,为了避免由于地址重叠而造成一些逻辑错误,一般对于字的应用,采用偶数地址序号。
0000 0000 0001 0100 ,当然,你采用MOV_B 将20传输给 VB5也是可以的,但是你需要确保VB4中的值为0.
2、因为西门子中,其地址序号是按字节来排列的,所以,VW100实际上是由VB100,VB101组成的,如果你直接使用了VW100,VW101,那么就会产生地址重叠的问题,VW100由VB100,VB101组成,VW101由VB101,VB102组成,地址会发生重叠,所以,为了避免由于地址重叠而造成一些逻辑错误,一般对于字的应用,采用偶数地址序号。
展开全部
第一个问题:vw4 包含vb4和vb5 如果你只用movb指令给vb4赋值,那么vb5的值就是不确定的,最后你写到定时器T37的预设值就可能不是你期望的值。当然如果你确认vb4里本来就是0,那么直接给vb5赋值20也是没问题的。
第二个问题:你的块传送指令选的是按字传送,所以传送3次,要传送的是3个字。
通过这两个问题,能够知道,你还不清楚,一个字饱含两个字节的含义。
第二个问题:你的块传送指令选的是按字传送,所以传送3次,要传送的是3个字。
通过这两个问题,能够知道,你还不清楚,一个字饱含两个字节的含义。
追问
第二个问题我还不是不懂,1字=2字节=16位,也就是1个VW等于=2VB=16B,VW0 VW1 VW2不是刚好对应VW100 VW101 VW102吗?
追答
vw0=vb0+vb1
vw1=vb1+vb2
vw2=vb2+vb3
3个word一共是4个byte,但是这里面有字节重合了。
而在这种word操作中,每次操作的是2个byte。总共应该是6个byte。
所以应该是
vw0、vw2、vw4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的同行,留下联系方式,一起探讨。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
光是听说,还没听说具体着呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询