Elem_OfArray3D

Anzahl der Elemente eines Arrays

Diese Funktion liefert die Anzahl der Elemente der 1., 2. und 3. Dimension eines Arrays.

Parameter

Eingang

Array3D (ANY_IN_UNITS_OF_WORDS)

Eingangsvariable (Array Dimension 1, 2 oder 3), deren Anzahl an Elementen ermittelt werden soll

Ausgang

NrOfElem1 (INT, DINT, UINT, UDINT)

Liefert Anzahl der Elemente der ersten Dimension

NrOfElem2 (INT, DINT, UINT, UDINT)

Liefert Anzahl der Elemente der zweiten Dimension

NrOfElem3 (INT, DINT, UINT, UDINT)

Liefert Anzahl der Elemente der dritten Dimension

Anmerkungen

Wenn Eingang Array3D ein eindimensionales Array ist:

  • Am Ausgang NrOfElem1 wird die Anzahl der Array-Elemente am Eingang Array3D geliefert.

  • Am Ausgang NrOfElem2 wird der Wert 1 zurückgegeben.

  • Am Ausgang NrOfElem3 wird der Wert 1 zurückgegeben.

Wenn Eingang Array3D ein zweidimensionales Array ist:

  • Am Ausgang NrOfElem1 wird die Anzahl der Elemente der ersten Dimension, am Ausgang NrOfElem2 wird die Anzahl der Elemente der zweiten Dimension des Arrays am Eingang Array3D geliefert.

  • Am Ausgang NrOfElem3 wird der Wert 1 zurückgegeben.

Wenn Eingang Array3D ein dreidimensionales Array ist:

  • An den Ausgängen NrOfElem1, NrOfElem2 und NrOfElem3 werden die Anzahl der Elemente der ersten, der zweiten und der dritten Dimension des Arrays am Array3D geliefert.

Damit können Funktionen oder Funktionsbausteine geschrieben werden, die Arrays mit variablen Längen verarbeiten (auch im Zusammenspiel mit den Funktionen (GetPointer, AreaOffs_ToVar,Var_ToAreaOffs).

Anmerkung

Das Produkt NrOfElem1 * NrOfElem2 * NrOfElem3 ist immer gleich der Gesamtzahl der Elemente des Arrays.

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		ArrayOfInt: ARRAY [2..15,3..20,4..25] OF INT:=[5544(0)];
		NumberOfDim1: INT:=0;
		NumberOfDim2: INT:=0;
		NumberOfDim3: INT:=0;
	END_VAR

POE-Rumpf

Hier wird die Funktion Elem_OfArray3D in jedem SPS Zyklus ausgeführt (kein EN-Eingang). Sie ermittelt die Anzahl der Elemente der Variablen ArrayOfInt. Das Funktionsergebnis ist hier: NumberOfDim1 = 14, NumberOfDim2 = 18 und NumberOfDim3 = 22.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_VARIN,,ArrayOfInt,6,2,8,4,);
B(B_VAROUT,,NumberOfDim1,19,2,21,4,);
B(B_F,Elem_OfArray3D!,Instance,8,1,19,6,,?DArray3D?CNrOfElem1?CNrOfElem2?CNrOfElem3);
B(B_VAROUT,,,19,3,21,5,);
B(B_VAROUT,,,19,4,21,6,);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Weitere Beispiel-Projekte befinden sich im Installationsverzeichnis von Control FPWIN Pro unter "Samples": Berechnung der Spur eines dreidimensionalen Arrays (FB)

Letzte Änderung am: 2021-07-28Feedback zu dieser SeitePanasonic Hotline