恭喜,你发布的帖子
发布于 2024-03-21 13:26:15
1楼
同一个内存地址里面储存的数据,既可以把它当作字节(无符号 或 有符号的整数),也可以把它当作字(无符号 或 有符号的整数),还可以把它当作双字(无符号 或 有符号的长整数,或者 是浮点数)!
在作者没有告诉别人的前提下,每个人看到的结果很大可能就是不一样的。所以,你说的显示的结果出乎你的意料,那只是出乎你的意料而已!
有一个问题:
既然你的仪表采集的是浮点数,那么它就应该是 4 个字节的数据(两个 WORD)。从你的通讯读取指令来看,确实是读取了两个 WORD 的数据。
不过,它的储存地址起始地址是从 VB500,并不是你说的 VW502!
若这个数据真的是浮点数,那你下面的指令应该是直接使用 DI_R 指令,把 VD500 转换成 浮点数才对!注意,是 VD500,不是 VW500!
除非,仪表那边传送来的数据已经乘以一个系数,然后取整成一个不大于 32767 的整数,再转成一个 WORD!以前在 DCS 系统中,为了节省传送的字节数,我这么干过!
请填写推广理由:
分享
只看
楼主