在LabVIEW中将两个16位无符号整数转换为32位浮点数

更新 Jan 4, 2019

适用于

Software

  • LabVIEW

问题详述

我收到了一对16位无符号整数并需要将他们转换为一个32位浮点数。我尝试将数组发送到强制类型转换(type cast)使输出数值设置为32位单精度浮点数,但它没有返回正确的数据。如何将这两个数字转换为32位单精度浮点数?

解决方案

两个16位数字提供32位数字的高位和低位。以下步骤分步解释了操作过程。
  1. 需要使用整数拼接(Join Number)函数连接两个16位数字以创建32位整数。
  2. 根据您的数据格式和您想要执行的任何其他操作,您可能需要使用“交换字(Swap Words”功能来获取正确的值。
  3. 然后,您可以将整数连接至强制类型转换函数以使其输出指定表示格式的数值。
  4. 通过将数值常量连接到强制类型转换函数顶部来设置强制转换类型 。接下来,右键单击数值常量(Numeric Constant),转到表示法(Representation),然后选择单精度(SGL)。
下图显示了如何使用任意数据进行转换的简单示例。请注意,根据您的数据格式,您可能不需要使用交换字功能。我们只在下面展示它以演示如何使用它。

相关信息

如果使用Modbus IO服务器,则无需执行此操作,因为它已使用F寻址处理此情况。有关如何执行此操作的详细信息,请参阅“ 使用Modbus I / O服务器”手册 。可能必须根据您的设备交换浮点值。有关此主题的更多信息,请参阅如何交换Modbus浮点值的寄存器 。

本文是否有帮助?

无帮助