字节转换为浮点数

各位老铁,  如图蓝色画圈部分。这三个指令B-I    VB0存储的数据转换后存储到LW0 中这个我当然明白。往后的两个指令同理。  但是  VB0 转换整数后 存储到  LW0  也就是就是整数数据的%ignore_a_1%16位。LW0=(LB0+LB1)     LW0  转换成双整数存放到  LD2 中,  不能存放 LD0  中,因为  LW0已经占用了LB0   LB1 两个字节。 LD2  双整数占用 32位就是4个字节。也就是LB2+  LB3  +  LB4  +LB5    最后的最后整数LD2转换成浮点数,浮点数存放在VD4 的里面。  我的疑问是既然VB0  已经在最开始占用了,但是VB 2  VB3    还都没有占用,是否可以不存放VD4而存放在  VD2 里面???   毕竟VB2这个字节也没有用着嘛。。

图片说明:

字节转换为浮点数   

最佳答案

前面理解的都对。
但是VB 2  VB3    还都没有占用,是否可以不存放VD4而存放在VD2 里面?
回答:
仅仅看这一段,那回答是肯定可以的,但在整个项目来说是不一定的。
因为 V 存储区是全局存储区,在主程序、中断程序、子程序中都可以寻址,如果与成 VD2,那就一定要确认在整个程序中其它地方有没有对这一存储区域的访问含上位机。如果没有那是可以写成 VD2 的,这样可以确保没有任何非预期的引用。
如果其它地方有使用这一区域,只要保证在使用前都有预期的值,即值是可用的,那也没问题。
这一区域的引用包括:
比如,位引用 V2.0-V2.7、V3.0-3.7;
字节引用 VB2、VB3;
字引用 VW1(含了VB1、 VB2)、VW2、VW3(含了VB2、VB3)。
双字引用 VD0(含了VB0、VB1、 VB2、VB3)
               VD1(含了VB1、VB2、VB3、VB4)
               VD2(含了VB2、VB3、VB4、VB5)
               VD3(含了VB3、VB4、VB5、VB6)

提问者对于答案的评价:
OK  OK     谢谢啦

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc361568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论