Elem_OfArray1D

Anzahl der Elemente eines Arrays

Diese Funktion liefert die Anzahl der Elemente eines Arrays.

Am Ausgang NrOfElem1 wird die Gesamtzahl der Elemente der Array-Variablen am Eingang Array1D geliefert. Es können Array-Variablen beliebiger Dimension übergeben werden. In jedem Fall wird die Gesamtzahl der Elemente aller Dimensionen zurückgeggeben. 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).

Parameter

Eingang

Array1D (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 Eingangsvariablen

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] OF INT:=[14(0)];
		NumberOfDim1: INT:=0;
	END_VAR

POE-Rumpf

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

KOP-Rumpf

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

Weitere Beispiel-Projekte befinden sich im Installationsverzeichnis von Control FPWIN Pro unter "Samples": Berechnung der Summe aller Array-Elemente

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