这个我用PLC 验证了一下,从PLC里面可以直接查看寄存器里面的值,并且直接用浮点数表示出来了。。这个计算是按照国际标准IEEE 754来的。。举个例子看图片,图片里%MW2、%MW3都存放整型,根据IEEE 754标准,得到了%MF中浮点数的值。。
这与MODBUS无关,你的要求是把两个字的单精度浮点,转换成数,其实就是类型的转换
而已,数本身不要转换。这C++语言最灵活,处理这种类型改变很简单:
char buf[100];
假设 buf[10] 开始就是你的浮点数;
float f= * (float *)(buf+10) ;
或 float f= (float &)buf[10];
简单吧。其它语言可能有点小麻烦;
计算出来的结果是:13.3552176183722,自己用vb.net做的小程序计算的。
41 55 AE F8 = 13.35522 度
取整后再处理吧,一般温度不用这么高的精度的