LREAL_TO_FIX16

Converts a floating-point number of type: LREAL to a signed 16 bit fixed-point number with the required number of decimal places.
VAR_INPUT
VAR_INPUT
in : LREAL;
n : WORD(0..15) := 15;
END_VAR
in: The LREAL number to be converted.
n: Number of required decimal places.
Example:
In the following example several constants are converted to fixed-point numbers. The number of decimal places can be specified for the conversion. Please note that (similar to the conversion of floating-point numbers) rounding errors may occur (q2 and q15 in our example).
PROGRAM TEST
VAR
q2, q4, q8, q12, q15 : T_FIX16;
r2, r4, r8, r12, r15 : LREAL;
END_VAR
q2 := LREAL_TO_FIX16( 0.6, 2 );
q4 := LREAL_TO_FIX16( -0.25, 4 );
q8 := LREAL_TO_FIX16( -0.75, 8 );
q12 := LREAL_TO_FIX16( 2.30078125, 12 );
q15 := LREAL_TO_FIX16( 0.6, 15 );
r2 := FIX16_TO_LREAL( q2 ); (* 0.5 *)
r4 := FIX16_TO_LREAL( q4 ); (* -0.25 *)
r8 := FIX16_TO_LREAL( q8 ); (* -0.75 *)
r12 := FIX16_TO_LREAL( q12 ); (* 2.30078125 *)
r15 := FIX16_TO_LREAL( q15 ); (* 0.600006103515625 *)
Requirements
Development environment | Target platform | PLC libraries to include |
---|---|---|
TwinCAT v2.10.0 Build >= 1326 | PC or CX (x86, ARM) | TcUtilities.Lib |