LongToDouble, Long to double conversion
Questo blocco funzione permette di convertire una variabile LWORD in due variabili DWORD. I 32 bits alti di In verranno trasferiti nell’operando MSDW, i 16 bits bassi verranno trasferiti nell’operando LSDW.
Descrizione
| Parametro | Tipo | Descrizione |
|---|---|---|
| In | L_WORD | Variabile da convertire. |
| MSDW | DWORD | MSDW del valore in ingresso. |
| LSDW | DWORD | LSVW del valore in ingresso. |
Esempi
Come utilizzare gli esempi.
Nell'esempio una variabile LWORD con valore 16#123456789ABCDEF è trasferita in due variabili DWORD che avranno valore 16#1234567 e 16#89ABCDEF.
LogicLab (Ptp114, ST_LongToDouble)
PROGRAM ST_LongToDouble
VAR
High : ARRAY[0..1] OF DWORD; (* MSDW double word *)
Low : ARRAY[0..1] OF DWORD; (* LSDW double word *)
LData : LWORD := 16#123456789ABCDEF; (* long word data *)
LDec : LongToDouble; (* long decompress *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_LongToDouble"
// *****************************************************************************
// This program shows the use of LongToDouble function block.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// DECOMPRESS LWORD
// -------------------------------------------------------------------------
// Decompress word using the FB.
LDec(In:=LData);
High[0]:=LDec.MSDW; //MSDW word
Low[0]:=LDec.LSDW; //LSDW word
// -------------------------------------------------------------------------
// DECOMPRESS LWORD
// -------------------------------------------------------------------------
// The same operation as above executed directly using ST statements.
High[1]:=TO_DWORD(LData/16#100000000); //MSDW word
Low[1]:=TO_DWORD(LData); //LSDW word
// [End of file]