您可以使用 UNION 类型,它将在同一地址保存一个字节数组(就像您从 UDP 通信中获得的那个)和您要转换为的真实 var。
当你改变字节数组时,real 会自动反映它。事实上,转换也以相反的方式工作。
TYPE U_Convert :
UNION
arrUDP_Data: ARRAY [0 .. 3] OF BYTE; // Array must start with LSB
rReal : REAL;
END_UNION
END_TYPE
在 MAIN 中,您可以声明以下 var。
VAR
uConvert: U_Convert;
fValue : REAL;
END_VAR
在 MAIN 的主体中,将字节数组更新为请求的值。
// Here we update the byte array
uConvert.arrUDP_Data[0] := 16#F4; // LSB
uConvert.arrUDP_Data[1] := 16#E0;
uConvert.arrUDP_Data[2] := 16#7A;
uConvert.arrUDP_Data[3] := 16#BE; // MSB
// Here we 'use' the converted value
fValue := uConvert.rReal;