【发布时间】:2017-09-13 10:33:07
【问题描述】:
我在使用 Labview 从 SPS(=PLC) 读取时遇到的数据类型存在问题。
我从 S7Read_VI 中得到一个 32 位整数值的一维数组,我必须将其解释为浮点值,因为这些值在 SPS 中是 REAL 类型。
Labview 向我显示这样的数字:1131655987 应该是 243.7(当解释为浮点数时)。
s7Read_VI 本身也提供 REAL 类型的读取,但不知何故这不起作用(一些同事也注意到了这个问题)。
我现在试图在 labview 中将这些数字 (1131655987) 解释为浮点数,但到目前为止还没有找到有效的解决方案。
andybody 是否知道如何将十进制数解释为浮点数?像图片中显示的 SGL 这样的转换,我认为没有意义,因为数字已经是浮点数并且只显示为十进制。
最好的问候, 强尼克斯
【问题讨论】:
-
1131655987是一个 32 位整数。如果您将值(32 位)解释为 32 位浮点数,您确实会得到243.7(我刚刚检查过这个)。不过,我不知道如何将这样的整数转换为在 Labview 中浮动。在 Pascal 中,它将是IntValue := 1131655987; myFloat := PSingle(@Intvalue)^;,在 C 中(可能是 UB):int invalue = 1131655987; float myfloat = *((float *)(void *)&intvalue); -
是的,对于那些想知道的人,
1131655987是十六进制的4373B333,您可以将其传递给您可以在网上找到的浮点转换器,例如:link
标签: floating-point type-conversion labview