ARRAY_LENGTH-Baustein

Kurz-Information

Name

ARRAY_LENGTH, ARRAY_LENGTH_2D, ARRAY_LENGTH_3D, ARRAY_LENGTH_4D

→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/481067525/ARRAY_LENGTH-version-1-modificationdate-1636375275417-api-v2.png , images/download/thumbnails/481067531/ARRAY_LENGTH_2D-version-1-modificationdate-1636375304939-api-v2.png , images/download/thumbnails/481067540/ARRAY_LENGTH_3D-version-1-modificationdate-1636375410793-api-v2.png , images/download/thumbnails/481067571/ARRAY_LENGTH_4D-version-1-modificationdate-1636388664622-api-v2.png

Verfügbar ab

Version 3.2.5 (für Bibliothek Standard) – Anfangsvariante

Funktionalität

Der Baustein liefert die Größe (Anzahl der Elemente) der anliegenden →Array-Variable.

Keine Prüfung von ungültigen Dimensionen

Bei der Verwendung dieser Bausteine wird von logi.CAD 3 nicht geprüft, ob die anliegende Array-Variable die korrekte Dimension hat. Verbinden Sie z.B. eine zweidimensionale Array-Variable mit dem Eingang von ARRAY_LENGTH (hier wird eine eindimensionale Array-Variable erfordert), kann die Anwendung mit dem Baustein in Folge nicht erfolgreich erstellt und auf die SPS geladen werden.
Stellen Sie daher mit Hilfe von anderen Mitteln sicher (z.B. durch eine eindeutigen Namen der Variable), damit Sie einfach feststellen können, dass die anliegenden Array-Variable und der verwendete Baustein hinsichtlich der Dimension übereinstimmen.

Eingänge, Ausgänge, Ergebniswert

ARRAY_LENGTH

Bezeichner

→Datentyp

Beschreibung

Ein-/Ausgänge
(VAR_IN_OUT):

IN

ARRAY [*] OF 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 oder ein →anwenderdefinierter Datentyp

eindimensionaler Array von variabler Länge

Ergebniswert:

UDINT

Anzahl der Elemente des Arrays

ARRAY_LENGTH_2D

Bezeichner

→Datentyp

Beschreibung

Ein-/Ausgänge
(VAR_IN_OUT):

IN

ARRAY [*,*] OF 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 oder ein →anwenderdefinierter Datentyp

zweidimensionaler Array von variabler Länge

Ausgänge:

DIM1

UDINT

Anzahl der Elemente in Dimension 1

DIM2

UDINT

Anzahl der Elemente in Dimension 2

Ergebniswert:

UDINT

Anzahl aller Elemente des Arrays

ARRAY_LENGTH_3D

Bezeichner

→Datentyp

Beschreibung

Ein-/Ausgänge
(VAR_IN_OUT):

IN

ARRAY [*,*,*] OF 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 oder ein →anwenderdefinierter Datentyp

dreidimensionaler Array von variabler Länge

Ausgänge:

DIM1

UDINT

Anzahl der Elemente in Dimension 1

DIM2

UDINT

Anzahl der Elemente in Dimension 2

DIM3

UDINT

Anzahl der Elemente in Dimension 3

Ergebniswert:

UDINT

Anzahl aller Elemente des Arrays

ARRAY_LENGTH_4D

Bezeichner

→Datentyp

Beschreibung

Ein-/Ausgänge
(VAR_IN_OUT):

IN

ARRAY [*,*,*,*] OF 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 oder ein →anwenderdefinierter Datentyp

vierdimensionaler Array von variabler Länge

Ausgänge:

DIM1

UDINT

Anzahl der Elemente in Dimension 1

DIM2

UDINT

Anzahl der Elemente in Dimension 2

DIM3

UDINT

Anzahl der Elemente in Dimension 3

DIM4

UDINT

Anzahl der Elemente in Dimension 4

Ergebniswert:

UDINT

Anzahl aller Elemente des Arrays

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

Die berechneten Werte werden mit Hilfe des Assert-Bausteins ausgewertet.

FUNCTION_BLOCK ExampleArrayLength
VAR
arrayVar1D : ARRAY [1..5] OF INT;
arrayVar2D : ARRAY [2..5, 3..5] OF INT;
arrayVar3D : ARRAY [1..6, 1..7, 1..8] OF INT;
Dim1Var2, Dim2Var2, Dim1Var3, Dim2Var3, Dim3Var3 : UDINT;
result1D, result2D, result3D : UDINT;
eno1, eno2, eno3 : BOOL;
END_VAR
result1D := ARRAY_LENGTH(in:=arrayVar1D, ENO=>eno1);
ASSERT(result1D=5);
ASSERT(eno1);
result2D := ARRAY_LENGTH_2D(in:=arrayVar2D, DIM1=>Dim1Var2, DIM2=>Dim2Var2, ENO=>eno2);
ASSERT(result2D=12);
ASSERT(Dim1Var2 = 4);
ASSERT(Dim2Var2 = 3);
ASSERT(eno2);
result3D := ARRAY_LENGTH_3D(in:=arrayVar3D, DIM1=>Dim1Var3, DIM2=>Dim2Var3, DIM3=>Dim3Var3, ENO=>eno3);
ASSERT(result3D=336);
ASSERT(Dim1Var3 = 6);
ASSERT(Dim2Var3 = 7);
ASSERT(Dim3Var3 = 8);
ASSERT(eno3);
 
(* Die Verwendung des ARRAY_LENGTH_4D-Bausteins erfolgt analog zu den anderen Bausteinen. *)
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.