Floating point Labview将数字解释为浮点数

Floating point Labview将数字解释为浮点数,floating-point,type-conversion,labview,Floating Point,Type Conversion,Labview,我在使用Labview从SPS(=PLC)读取数据时遇到了一个数据类型问题 我从S7Read_VI中得到一个包含32位整数值的1D数组,我必须将其解释为浮点值,因为这些值在SPS中是实数类型 Labview显示的me数字如下:1131655987应该是243.7(当解释为浮点时) s7Read_VI本身也提供REAL类型的读取,但不知何故,这并不起作用(一些同事也注意到了这个问题) 我现在试图在labview中将这些数字(1131655987)解释为浮点数,但到目前为止还没有找到有效的解决方案

我在使用Labview从SPS(=PLC)读取数据时遇到了一个数据类型问题

我从S7Read_VI中得到一个包含32位整数值的1D数组,我必须将其解释为浮点值,因为这些值在SPS中是实数类型

Labview显示的me数字如下:
1131655987
应该是243.7(当解释为浮点时)

s7Read_VI本身也提供REAL类型的读取,但不知何故,这并不起作用(一些同事也注意到了这个问题)

我现在试图在labview中将这些数字(
1131655987
)解释为浮点数,但到目前为止还没有找到有效的解决方案

andybody知道如何将十进制数解释为浮点数吗?我认为,像图中所示的SGL这样的转换是没有意义的,因为numner已经是浮点的,并且只是显示为十进制

致以最良好的祝愿,
jonnyx解决问题的方法是将SPS中的数据类型从REAL更改为DWORD

L值\u REAL*1000//实际值如243.7
RND
T值\u DWORD//现在为DWORD,但精度未丢失:243700

然后我用LabView读取我的值,并将它们除以1000

希望任何人都能从中获益。 顺致敬意,
jonnyx解决问题的方法是将SPS中的数据类型从REAL更改为DWORD

L值\u REAL*1000//实际值如243.7
RND
T值\u DWORD//现在为DWORD,但精度未丢失:243700

然后我用LabView读取我的值,并将它们除以1000

希望任何人都能从中获益。 顺致敬意, jonnyx

节点是数组中每个元素上的强制转换操作符。它不会将数组重新解释为单精度值数组。如果要将数组重新解释为单精度值,请使用函数并将单个常量数组连接到类型(中间)端子,将数组连接到x(左侧)端子:

节点是数组中每个元素上的强制转换操作符。它不会将数组重新解释为单精度值数组。如果要将数组重新解释为单精度值,请使用函数并将单个常量数组连接到类型(中间)端子,将数组连接到x(左侧)端子:

1131655987
是一个32位整数。如果将该值(32位)解释为32位浮点,则确实会得到
243.7
(我刚刚检查了这个)。不过,我不知道如何在Labview中将这样一个整数转换为浮点。在Pascal中,它将是
IntValue:=1131655987;myFloat:=PSingle(@Intvalue)^,用C(可能是UB)表示:
intinvalue=1131655987;float myfloat=*((float*)(void*)和intvalue)
是的,对于那些想知道,
1131655987
是六进制的
4373B333
,你可以通过一个你可以在线找到的浮点转换器,例如:
1131655987
是一个32位整数。如果将该值(32位)解释为32位浮点,则确实会得到
243.7
(我刚刚检查了这个)。不过,我不知道如何在Labview中将这样一个整数转换为浮点。在Pascal中,它将是
IntValue:=1131655987;myFloat:=PSingle(@Intvalue)^,用C(可能是UB)表示:
intinvalue=1131655987;float myfloat=*((float*)(void*)和intvalue)
是的,对于那些想知道,
1131655987
是六边形的
4373B333
,你可以通过一个你可以在网上找到的浮点转换器传递它,例如: