DoubleToWord, Double to word conversion

  1. Home
  2. Knowledge Base
  3. Manualistica
  4. Programmazione IEC 61131-3
  5. Conversione dati
  6. DoubleToWord, Double to word conversion

Questo blocco funzione permette di convertire una variabile DWORD in due variabili WORD. I 16 bits alti di In verranno trasferiti nell'operando MSW, i 16 bits bassi verranno trasferiti nell'operando LSW.

Blocco funzione
CODESYS: Non disponibile
LogicLab: eLLabUtyLib

In (DWORD) Variabile da convertire.

MSW (WORD) MSW del valore in ingresso.

LSW (WORD) LSW del valore in ingresso.

Esempi

Come utilizzare gli esempi.
Nell'esempio una variabile DWORD con valore 16#12345678 è trasferita in due variabili WORD che avranno valore 16#1234 e 16#5678. Nell'esempio in linguaggio ST viene evidenziato come la stessa operazione sia molto più semplice scrivendola direttamente con gli operandi del linguaggio.

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]

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 9 Agosto 2019