DoubleToWord, Double-to-Word-Konvertierung

Liste

Diese Seite ist Teil der IEC 61131-3 Programmierhandbuch. Gehen Sie zum Index.

Mit diesem Funktionsbaustein können Sie eine Variable konvertieren DWORD in zwei Variablen WORD. Die 16-High-Bits von In wird in den Operanden übertragen MSWEs werden niedrige 16-Bits an den Operanden übertragen LSW.

Funktionssperre
CODESYS: Nicht verfügbar
LogicLab: eLLabUtyLib

In (DWORD) Variable zum Konvertieren.

MSW (WORD) MSW des Eingabewerts.

LSW (WORD) LSW des Eingabewerts.

Beispiele

Verwendung der Beispiele.
Im Beispiel eine Variable DWORD mit dem Wert 16 # 12345678 wird in zwei Variablen übergeben WORD die den Wert 16 # 1234 und 16 # 5678 haben. Im Beispiel in Sprache ST Es wird hervorgehoben, wie viel einfacher dieselbe Operation ist, indem sie direkt mit den Operanden der Sprache geschrieben wird.

LogicLab (Ptp114)
PROGRAM ST_DoubleToWord
VAR
    DData : DWORD := 16#12345678; (* Double word data *)
    High : ARRAY[ 0..1 ] OF WORD; (* MSW word *)
    Low : ARRAY[ 0..1 ] OF WORD; (* LSW word *)
    DDec : DoubleToWord; (* Double decompress *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_DoubleToWord"
// *****************************************************************************
// This program shows the use of DoubleToWord function block.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // DECOMPRESS DWORD
    // -------------------------------------------------------------------------
    // Decompress word using the FB.

    DDec(In:=DData);
    High[0]:=DDec.MSW; //MSW word
    Low[0]:=DDec.LSW; //LSW word

    // -------------------------------------------------------------------------
    // DECOMPRESS DWORD
    // -------------------------------------------------------------------------
    // The same operation as above executed directly using ST statements.

    High[1]:=TO_WORD(DData/16#10000); //MSW word
    Low[1]:=TO_WORD(DData); //LSW word

// [End of file]
War dieser Artikel hilfreich?