Elem_OfArray3D

Número de elementos en un array

Esta función devuelve el número de elementos de la primera, segunda y tercera dimensión de un Array.

Parámetros

Entrada

Array3D (ANY_IN_UNITS_OF_WORDS)

Variable de entrada (array de dimensión: 1, 2 ó 3) del que se va a determinar el número de elementos

Salida

NrOfElem1 (INT, DINT, UINT, UDINT)

Devuelve el número de elementos de la primera dimensión

NrOfElem2 (INT, DINT, UINT, UDINT)

Devuelve el número de elementos de la segunda dimensión

NrOfElem3 (INT, DINT, UINT, UDINT)

Devuelve el número de elementos de la tercera dimensión

Observaciones

Si la entrada Array3D es un array de una sola dimensión:

  • Devuelve a la salida Array3D, el número de elementos del array de entrada NrOfElem1.

  • La salida NrOfElem2 devuelve un 1.

  • La salida NrOfElem3 devuelve un 1.

Si la entrada Array3D es un array de dos dimensiones:

  • A partir del array en la entrada Array3D, devuelve en la salida NrOfElem1 el número de elementos de la primera dimensión y en la salida NrOfElem2 el número de elementos de la segunda dimensión.

  • La salida NrOfElem3 devuelve un 1.

Si la entrada Array3D es un array de tres dimensiones:

  • Devuelve en las salidas NrOfElem1, NrOfElem2 y NrOfElem3, el número de elementos de la primera, segunda y tercera dimensión del array en la entrada Array3D.

De esta forma, las funciones y bloques de función pueden procesar arrays de cualquier longitud (junto con las funciones:GetPointer, AreaOffs_ToVar, Var_ToAreaOffs).

NOTA

El resultado del producto NrOfElem1 * NrOfElem2 * NrOfElem3 siempre es igual al número total de elementos en el array.

Ejemplo

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

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

Cuerpo de la POU

En este caso la función Elem_OfArray3D se ejecuta en cada ciclo de scan (sin entrada EN). Determina el número de elementos de la variable ArrayOfInt. El resultado es: NumberOfDim1 = 14, NumberOfDim2 = 18 y NumberOfDim3 = 22.

Cuerpo 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

Se pueden obtener más ejemplos desde el directorio "Ejemplos" del CD de instalación del FPWIN : Cálculo de la traza de un array de tres dimensiones (FB)

Modificado el: 2021-07-15Comentarios sobre esta páginaLínea directa de Panasonic