Nombre d’éléments dans un tableau (ARRAY)
Cette fonction génère le nombre d’éléments dans un tableau Array.
Le nombre total d’éléments de la variable d’entrée Array1D est généré en sortie NrOfElem1. Une variable array peut être transférée quelle que soit sa dimension. Dans tous les cas, le nombre total d’éléments de toutes les dimensions est renvoyé. 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).
Entrée
Variable d’entrée (array de dimension 1, 2 ou 3) dont le nombre d’éléments doit être déterminé
Sortie
Génère le nombre d’éléments de la variable d’entrée
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] OF INT:=[14(0)];
NumberOfDim1: INT:=0;
END_VAR
Dans ce cas, la fonction Elem_OfArray1D 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.
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
Autres exemples de projets (répertoire "Samples" dans le répertoire d’installation de FPWIN Pro) : Calculer la somme de tous les éléments Array