DoubleToWord, Double à la conversion de mot

Liste

Cette page fait partie de la Manuel de programmation CEI 61131-3. Aller à l'index.

Ce bloc fonction vous permet de convertir une variable DWORD en deux variables WORD. Les hauts bits 16 de In sera transféré à l'opérande MSW, les bits 16 inférieurs seront transférés à l'opérande LSW.

Verrouillage de fonction
CODESYS: Non disponible
LogicLab: eLLabUtyLib

In (DWORD) Variable à convertir.

MSW (WORD) MSW de la valeur d'entrée.

LSW (WORD) LSW de la valeur d'entrée.

Exemples

Comment utiliser les exemples.
Dans l'exemple une variable DWORD avec la valeur 16 # 12345678 est transféré dans deux variables WORD qui aura la valeur 16 # 1234 et 16 # 5678. Dans l'exemple en langue ST il est souligné combien la même opération est beaucoup plus simple en l’écrivant directement avec les opérandes du langage.

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]
Cet article a-t-il été utile?