SIZEOF-Baustein

Kurz-Information

Name

SIZEOF

→POE-Typ

→Funktion

Kategorie

IEC-Baustein, MemoryEnh

Konform zur →IEC-Norm

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/add.svg nicht in IEC-Norm vorgesehen

Grafische Schnittstelle

images/download/thumbnails/414781845/SIZEOF-version-1-modificationdate-1535027074385-api-v2.png

Verfügbar ab

Version 1.34.0 (für logi.CAD 3)

Funktionalität

Der Baustein liefert den Speicher (in Bytes), den das am Eingang IN anliegende Element benötigt (z.B. eine →Variable oder ein →Literal).

Spezialfälle (siehe unter " Beispiel für Verwendung im ST-Editor" )

  • Der Aufruf des SIZEOF-Bausteins ohne anliegendes Element (d.h. ohne Parameterliste) liefert den Wert 1. Grund: Hier wird der Datentyp BOOL verwendet.

  • Bei einem anliegenden STRING-Element mit einer Länge wird die Länge des STRING-Buffers geliefert. Die Länge des STRING-Buffers wird durch die Deklaration bestimmt.
    STRING-Elemente mit einer Länge sind von Ihnen deklarierte STRING-Variablen; siehe "Deklaration von STRING-Variablen (inkl. Zugriff)".

  • Bei einem anliegenden STRING-Element ohne einer Länge wird ebenfalls die Länge des STRING-Buffers geliefert. Die Länge des STRING-Buffers wird jedoch durch den resultierenden Wert bestimmt.
    STRING-Elemente ohne einer anwenderdefinierten Länge ergeben sich, wenn Sie STRING-Funktionen oder →Zeichenfolge-Literale verwenden.

Eingänge, Ergebniswert


Bezeichner

→Datentyp

Beschreibung

Eingänge:

IN

REAL, LREAL, USINT, UINT, UDINT, ULINT, SINT, INT, DINT, LINT, TIME, BOOL, BYTE, WORD, DWORD, LWORD, STRING, CHAR, DATE_AND_TIME, DATE, TIME_OF_DAY, ein →anwenderdefinierter Datentyp oder eine →Referenz
Einschränkung: Bei →ARRAY-Datentypen sind nur ein-dimensionale Arrays zulässig.

Eingangswert

Ergebniswert:

UDINT


Der Eingang EN und der Ausgang ENO sind für den →Aufruf des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN und zum Ausgang ENO.

Informieren Sie sich unter:

Beispiel für Verwendung im ST-Editor

PROGRAM Test
VAR
result : ARRAY[1..12] OF UDINT;
RealVar : REAL := 1.234E6;
StringVar : STRING[10] := 'abcdef';
RefVar : REF_TO STRING[10] := REF(StringVar);
StructVar : MyStruct;
ArrayVar : MyArray;
FB1 : MyFB;
END_VAR
result[1] := SIZEOF(IN := BOOL#TRUE); (* The variable 'result[1]' evaluates to '1'. *)
result[2] := SIZEOF(IN := INT#500); (* The variable 'result[2]' evaluates to '2'. *)
result[3] := SIZEOF(IN := RealVar); (* The variable 'result[3]' evaluates to '4'. *)
result[4] := SIZEOF(IN := StringVar); (* The variable 'result[4]' evaluates to '11'. *)
result[5] := SIZEOF(IN := CONCAT(StringVar,StringVar)); (* The variable 'result[5]' evaluates to '13'. *)
result[6] := SIZEOF(IN := STRING#'abcdef'); (* The variable 'result[6]' evaluates to '7'. *)
result[7] := SIZEOF(); (* The variable 'result[7]' evaluates to '1'. *)
result[8] := SIZEOF(IN := RefVar); (* The variable 'result[8]' evaluates to '4'. *)
result[9] := SIZEOF(IN := RefVar^); (* The variable 'result[9]' evaluates to '11'. *)
result[10] := SIZEOF(IN := StructVar); (* The variable 'result[10]' evaluates to '8' - due to alignment rules. *)
result[11] := SIZEOF(IN := ArrayVar); (* The variable 'result[11]' evaluates to '20'. *)
result[12] := SIZEOF(IN := FB1); (* The variable 'result[12]' evaluates to '8' - due to alignment rules and ENO variable. *)
END_PROGRAM
TYPE
MyStruct : STRUCT
Elem1 : BOOL := TRUE;
Elem2 : INT := 500;
Elem3 : REAL := 1.234E6;
END_STRUCT;
MyArray : ARRAY [1..10] OF INT;
END_TYPE
FUNCTION_BLOCK MyFB
VAR_INPUT
I1 : BOOL;
I2 : INT;
END_VAR
VAR_OUTPUT
O1 : BOOL;
O2 : INT;
END_VAR
END_FUNCTION_BLOCK

Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.