Labview 将数字解释为浮点数
Labview interprete number as float
我在使用 Labview 从 SPS(=PLC) 读取数据时遇到了有关数据类型的问题。
我从 S7Read_VI 中得到一个 32 位整数值的一维数组,我必须将其解释为浮点值,因为这些值在 SPS 中的类型为 REAL。
Labview 向我显示这样的数字:1131655987
应该是 243.7(当解释为浮点数时)。
s7Read_VI本身也提供 REAL 类型的读取,但不知何故这不起作用(一些同事也注意到了这个问题)。
我现在正在尝试将这些数字 (1131655987
) 解释为 labview 中的浮点数,但到目前为止还没有提出有效的解决方案。
andybody 知道如何将十进制数解释为浮点数吗?图片中显示的类似 SGL 的转换,我认为没有意义,因为数字已经是浮点数,只是显示为十进制。
此致,
乔尼克斯
我解决问题的方法是将 SPS 中的数据类型从 REAL 更改为 DWORD。
L value_REAL*1000 //REAL value like 243.7
RND
T value_DWORD //now DWORD but accuracy not lost: 243700
然后我用 LabView 读入我的值并将它们除以 1000。
希望任何人都能从中获利。
最好的祝福,
乔尼克斯
To Single Precision node is a cast operator on each element of the array. It does NOT reinterpret the array as an array of single-precision values. If you want to reinterpret the array as single-precision values, use the Type Cast 函数并将单个常量数组连接到类型(中心)接线端,并将您的数组连接到 x(左侧)接线端:
我在使用 Labview 从 SPS(=PLC) 读取数据时遇到了有关数据类型的问题。
我从 S7Read_VI 中得到一个 32 位整数值的一维数组,我必须将其解释为浮点值,因为这些值在 SPS 中的类型为 REAL。
Labview 向我显示这样的数字:1131655987
应该是 243.7(当解释为浮点数时)。
s7Read_VI本身也提供 REAL 类型的读取,但不知何故这不起作用(一些同事也注意到了这个问题)。
我现在正在尝试将这些数字 (1131655987
) 解释为 labview 中的浮点数,但到目前为止还没有提出有效的解决方案。
andybody 知道如何将十进制数解释为浮点数吗?图片中显示的类似 SGL 的转换,我认为没有意义,因为数字已经是浮点数,只是显示为十进制。
此致, 乔尼克斯
我解决问题的方法是将 SPS 中的数据类型从 REAL 更改为 DWORD。
L value_REAL*1000 //REAL value like 243.7
RND
T value_DWORD //now DWORD but accuracy not lost: 243700
然后我用 LabView 读入我的值并将它们除以 1000。
希望任何人都能从中获利。 最好的祝福, 乔尼克斯
To Single Precision node is a cast operator on each element of the array. It does NOT reinterpret the array as an array of single-precision values. If you want to reinterpret the array as single-precision values, use the Type Cast 函数并将单个常量数组连接到类型(中心)接线端,并将您的数组连接到 x(左侧)接线端: