Vai all indice del manuale di programmazione
Tipo:
Funzione
Libreria LogicLab:
eLLabXUnified12Lib
Libreria Codesys:
Non disponibile
La funzione ritorna il tipo di endianness del sistema.
Se sistema Little-Endian, memorizzazione che inizia dal byte meno significativo per finire col più significativo, la funzione ritorna FALSE.
Se sistema Big-Endian, memorizzazione che inizia dal byte più significativo per finire col meno significativo, la funzione ritorna TRUE.
Ecco un esempio di come nel caso di una DWORD (32 bit), il numero esadecimale 0x01234567 viene immagazzinato:
Little endian Big endian
+----+----+----+----+ +----+----+----+----+
|0x67|0x45|0x23|0x01| |0x01|0x23|0x45|0x67|
+----+----+----+----+ +----+----+----+----+
Byte: 0 1 2 3 0 1 2 3
Descrizione
Cmd (BOOL) Deve sempre essere TRUE.
La funzione ritorna una variabile (BOOL) con il tipo di endianness del sistema.

Esempi
Come utilizzare gli esempi.
Viene inviata alla console di spionaggio indicazione sull’endianness del sistema.
LogicLab (Ptp116, ST_SysGetEndianness)
PROGRAM ST_SysGetEndianness
VAR
TBase: TON; (* Time base *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_SysGetEndianness"
// *****************************************************************************
// An example to acquire system endianness.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// SYSTEM ENDIANNESS DETECTION
// -------------------------------------------------------------------------
// At every second the system endiannes is reported on spy console.
TBase(IN:=NOT(TBase.Q), PT:=T#1s); //Time base
IF (TBase.Q) THEN
IF NOT(SysGetEndianness(TRUE)) THEN
eTO_JUNK(SysWrSpyData(SPY_ASCII, 0, 16#00000001, ADR('---'), ADR('Little endian')));
ELSE
eTO_JUNK(SysWrSpyData(SPY_ASCII, 0, 16#00000001, ADR('---'), ADR('Big endian')));
END_IF;
END_IF;
// [End of file]