Operator: XSIZEOF Permalink

The operator is an extension of the IEC 61131-3 standard.

The ‎XSIZEOF‎ operator determines the number of bytes which are needed in the passed variable or data type.

In doing so, an unsigned value is always returned. The data type of the return value ‎<return value>‎ is fixed as follows: type ‎ULINT‎ on 64-bit platforms and type ‎UDINT‎ on all other platforms. To generate code which runs on all platforms, the return value can be declared with the ‎__UXINT‎ data type.

Syntax:

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

Example in ST

PROGRAM PLC_PRG
VAR
    uxiReturnValue : __UXINT;  (* Datentyp bei 64-bit-Plattformen: ULINT *)
    aData_1 : ARRAY[0..4] OF INT; 
END_VAR
uxiReturnValue := XSIZEOF(aData_1);

‎uxiReturnValue = 10‎

‎uxiReturnValue = 10‎

In the case of assignment to a variable of type ‎__UXINT‎, we recommend that you use the ‎XSIZEOF‎ operator instead of the ‎SIZEOF‎ operator. This is because with ‎XSIZEOF‎ the data type of the return value depends on the platform. As a result, any problems when using the SIZEOF operator do not occur.