XSIZEOF

XSIZEOF 1:

Verfügbar ab TC3.1 Build 4026

Der Operator ist eine Erweiterung der Norm IEC 61131-3.

Der Operator XSIZEOF bestimmt die Anzahl an Bytes, die in der übergebenen Variable oder dem übergebenen Datentyp benötigt werden.

Dabei wird immer ein vorzeichenloser Wert zurückgegeben. Der Datentyp des Rückgabewerts <return value> ist folgendermaßen festgelegt: bei 64-bit-Plattformen ist der Typ ULINT, auf allen anderen Plattformen UDINT. Um Code zu erzeugen, der auf allen Plattformen läuft, kann der Rückgabewert mit dem Datentyp __UXINT deklariert werden.

Syntax:

<return value> := XSIZEOF( <variable> );

Beispiel:

PROGRAM MAIN
VAR
    nReturnValue : __UXINT;             // Datentyp bei 64-bit-Plattformen: ULINT
    aData1       : ARRAY[0..4] OF INT;
END_VAR
nReturnValue := XSIZEOF(aData1);

Ergebnis:

nReturnValue = 10
XSIZEOF 2:

Bei der Zuweisung an eine Variable vom Typ __UXINT ist es ratsam, den Operator XSIZEOF anstelle des Operators SIZEOF zu verwenden. Denn bei XSIZEOF hängt der Datentyp des Rückgabewerts von der jeweiligen Plattform ab. Infolgedessen treten Probleme, die bei der Verwendung des Operators SIZEOF auftreten, nicht auf.