Elem_OfArray3D

Numero di elementi in un array

Questa funzione restituisce il numero di elementi della 1a, 2a e 3a dimensione di un array.

Parametri

Ingresso

Array3D (ANY_IN_UNITS_OF_WORDS)

Variabile di ingresso (dimensione array 1, 2 o 3) il cui numero di elementi deve essere determinato

Uscita

NrOfElem1 (INT, DINT, UINT, UDINT)

Restituisce il numero di elementi nella prima dimensione

NrOfElem2 (INT, DINT, UINT, UDINT)

Restituisce il numero di elementi nella seconda dimensione

NrOfElem3 (INT, DINT, UINT, UDINT)

Restituisce il numero di elementi nella terza dimensione

Note

Se l'ingresso Array3D è un array monodimensionale:

  • Il numero di elementi nell'array all'ingresso Array3D viene restituito all'uscita NrOfElem1.

  • Il valore 1 viene restituito all'uscita NrOfElem2.

  • Il valore 1 viene restituito all'uscita NrOfElem3.

Se l'ingresso Array3D è un array bidimensionale:

  • Dall'array all'ingresso Array3D, il numero di elementi nella prima dimensione viene restituito all'uscita NrOfElem1 e il numero di elementi nella seconda dimensione all'uscita NrOfElem2.

  • Il valore 1 viene restituito all'uscita NrOfElem3.

Se l'ingresso Array3D è un array tridimensionale:

  • Alle uscite NrOfElem1, NrOfElem2 e NrOfElem3 viene restituito il numero di elementi nella prima, seconda e terza dimensione dell'array all'ingresso Array3D.

È quindi possibile scrivere funzioni e Function Block che elaborano array di varie lunghezze (anche insieme con le funzioni (GetPointer, AreaOffs_ToVar, Var_ToAreaOffs).

NOTA

Il prodotto NrOfElem1 * NrOfElem2 * NrOfElem3 è sempre equivalente al numero totale degli elementi nell'array.

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

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

Corpo del POU

In questo caso la funzione Elem_OfArray3D viene eseguita in ogni ciclo della CPU (nessun ingresso EN). Determina il numero di elementi della variabile ArrayOfInt. Il risultato qui è: NumberOfDim1 = 14, NumberOfDim2 = 18 e NumberOfDim3 = 22.

Corpo LD

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

Altri progetti d'esempio (directory "Esempi" dell'installazione di FPWIN Pro): Calcolare la traccia di un array tridimensionale (FB)

L'ultima revisione: 2021-07-05Feedback su questa paginaPanasonic hotline