微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 转换问题新版,求解

转换问题新版,求解

时间:10-02 整理:3721RD 点击:
我现在想把dbl格式转换成整数在转换成hex码字符串给下位机,我应该怎么做(DBL含有小数)?或者谁有其他好的方法?

程序如下所示:


请注意数字"0"类型设置为I64


有点要跟你说,DBL的数据类型是64位浮点,你确定你要用那么大的吗?一般32位浮点SGL即单精度,如果你要改为单精度的,那就把程序中上面所说的“0”改为I32

这个应该要看规定吧,我见过的是由主控芯片定义的

我用了你的和刚刚那个人的方法,为什么最后显示是不一样的



为什么要一样?因为他的是错的啊!我不是跟你说了吗?他那个程序连数据类型都没理解,错得离谱。你输个300,看他还能不能转换?!

另外下图你做的,我方法转换出来的已经是16进制字符串了,你为做还要把字符串按16进制显示?我就问你一个简单的问题,你知不知道浮点数1的16进制是什么?不知道你百度一下,再对比一下两个方法哪种是对的,好吗?你都不知道答案,又怎么知道谁对谁错?

被你这一教训,我真的去搞明白了,十分感谢

外部设备,一般用第二种方式表示浮点数,你确定了外部设备需要的格式是什么了吗?

我外部设备需要的格式是这样的,中间四位是模拟输出,相当于1word,我就需要把我电脑里的出来的数据输出给这四位,才能控制外部设备


有话直说,请理解

那你这个才只有16位而已,又怎么能放浮点数进去?你有没有搞清楚到底是放什么值进去的?

是这样的,我现在需要把我这个pid得出来的值转换成我刚刚给出的格式1word打小,我才能控制外部设备,我不会的点其实就是在我应该怎么转换。

然而pid我用的就是pid工具包里的pid。

哈哈,我就说一般设备都有自己定义的格式

那你要搞清楚,你PID产生的值是什么范围,你外部设备接收的值又是什么范围?两者应该是有对应关系的吧?

我测量过我的水箱大小,还是刚刚那个格式,当hex码显示为为5A51的时候,我的水位达到了80还是90多,也就是最大的位置了,差不多这个数值,我把这些我需要的参数转换成了dbl格式放入了pid里,pid得出的值也必须在我水箱范围内,然后转换成模拟输出中间四位,才能控制我的水箱

也就是说,PID的运算结果跟你外部设备接收的值肯定有个对应关系,这个转换关系由下图可最终达到

好帖,必须支持一下!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top