DWORD_TO_LREALEX

DWORD_TO_LREALEX 1:

In TwinCAT 2 auf der ARM-Plattform wird die Konvertierung der vorzeichenlosen Zahlen in Fließkommazahlen von Typ: LREAL nicht unterstützt. Vorzeichenlose Zahlen mit einem gesetzten höchstwertigen Bit werden möglicherweise implizit in negative Fließkommazahlen konvertiert. Die hier beschriebene Funktion erlaubt in TwinCAT 2 eine explizite Konvertierung vom Typ DWORD in eine positive Fließkommazahl vom Typ LREAL (auch wenn das höchstwertige Bit gesetzt wurde und ohne Compiler-Warnung). Diese Funktion benötigen Sie nur um konvertierte TwinCAT 2 Projekte ohne Änderungen in TwinCAT 3 übersetzen zu können.

In TwinCAT 3 werden vorzeichenlose Zahlen von Typ DWORD immer (implizit und explizit) in eine positive Fließkommazahl Zahl konvertiert. Aus diesem Grund kann auf die Verwendung dieser Funktion verzichtet werden.

FUNCTION DWORD_TO_LREALEX : LREAL

VAR_INPUT

VAR_INPUT
    in : DWORD;
END_VAR

Beispiel:

PROGRAM MAIN
VAR
    nDword : DWORD := 16#FFFFFFFF;
    fLreal : LREAL := 0.0;
END_VAR

fLreal value

Tc2.x ARM

Tc2.x X86

Tc3.x ARM, X86, X64 

fLreal := nDword

-*1, Warning 1105**

4294967295

4294967295

fLreal := DWORD_TO_LREAL( nDword )

-*1, Warning 1105**

4294967295

4294967295

fLreal := DWORD#16#FFFFFFFF

-*1, Warning 1105**

4294967295

4294967295

fLreal := 16#FFFFFFFF

4294967295

4294967295

4294967295

fLreal := DWORD_TO_LREALEX( nDword )

4294967295

4294967295

4294967295

fLreal := DWORD_TO_LREALEX( DWORD#16#FFFFFFFF )

4294967295

4294967295

4294967295

fLreal := DWORD_TO_LREALEX( 16#FFFFFFFF )

4294967295

4294967295

4294967295

*not supported
**Conversion of unsigned integer to LREAL is not supported. The value is used as signed instead.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (x86, x64, ARM)

Tc2_Utilities (System)