Elem_OfArray2D

Nombre d’éléments dans un tableau (ARRAY)

Cette fonction génère le nombre d’éléments de la première et de la seconde dimension d’un tableau Array.

Paramètres

Entrée

Array2D (ANY_IN_UNITS_OF_WORDS)

Variable d’entrée (array de dimension 1, 2 ou 3) dont le nombre d’éléments doit être déterminé

Sortie

NrOfElem1 (INT, DINT, UINT, UDINT)

Génère le nombre d’éléments de la première dimension

NrOfElem2 (INT, DINT, UINT, UDINT)

Génère le nombre d’éléments de la seconde dimension

Remarques

Si l’entrée Array2D est un tableau (Array) à une dimension :

  • Le nombre total d’éléments dans le tableau en entrée Array2D est généré en sortie NrOfElem1.

  • La valeur 1 est renvoyée en sortie NrOfElem2.

Si l’entrée Array2D est un tableau (Array) à deux dimensions :

  • Le nombre d’éléments dans la première dimension est généré en sortie NrOfElem1 et le nombre d’éléments dans la seconde dimension est généré en sortie NrOfElem2, à partir du tableau Array en entrée Array2D.

Si l’entrée Array2D est un tableau (Array) à trois dimensions :

  • Le nombre d’éléments dans la première dimension est généré en sortie NrOfElem1 et le produit de la deuxième et de la troisième dimension est généré en sortie NrOfElem2, à partir du tableau Array en entrée Array2D.

Il est ainsi possible d’écrire des fonctions et blocs fonctions qui traitent des tableaux Arrays de différentes dimensions (également en combinaison avec les fonctions GetPointer, AreaOffs_ToVar, Var_ToAreaOffs).

NOTA

Le produit NrOfElem1*NrOfElem2 est toujours égal au nombre total d’éléments dans le tableau Array.

Exemple

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.

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

Corps du POU

Dans ce cas, la fonction Elem_OfArray2D est exécutée à chaque cycle de l’unité centrale (sans entrée EN). Elle détermine le nombre d’éléments de la variable ArrayOfInt. Le résultat est le suivant : NumberOfDim1 = 14 et NumberOfDim2 = 18.

Corps en LD

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_VARIN,,ArrayOfInt,6,2,8,4,);
B(B_VAROUT,,NumberOfDim1,19,2,21,4,);
B(B_F,Elem_OfArray2D!,Instance,8,1,19,5,,?DArray2D?CNrOfElem1?CNrOfElem2);
B(B_VAROUT,,NumberOfDim2,19,3,21,5,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Autres exemples de projets (répertoire "Samples" dans le répertoire d’installation de FPWIN Pro) : Calculer le produit de tableaux (Arrays) à deux dimensions

Modifié le : 2021-08-09Commentaires sur cette pageAssistance téléphonique