FNS_InitConfigNameTable

Configurer des données pour les blocs FP-FNS.

La fonction FNS_InitConfigNameTable crée une variable ConfigNameTable à partir de la variable ProcessDataTable qui peut être d’un type de données à un ou plusieurs éléments.

Paramètres

Entrée

ProcessDataTable (INT, WORD, DINT, DWORD, REAL, TIME) et tableaux (arrays) de ces types de données

Variables des données d’entrée et sortie du process

Sortie

ConfigNameTable ARRAY of WORD

La sortie est un tableau (array) de données STRING comprenant les noms des éléments du DUT appliqué à ProcessDataTable.

  • La taille des tableaux de variables ConfigNameTable doit correspondre au nombre d’éléments de la variable ProcessDataTable.

  • La longueur de la chaîne de caractères des éléments du tableau doit être supérieure ou égale à la longueur maximale des noms des éléments.

Remarques

  • Veillez à ce que la taille de la variable ConfigNameTable corresponde à la structure de la variable ProcessDataTable, c.-à-d. si ProcessDataTable comporte trois entrées, ConfigNameTable doit être un tableau "Array[0..2] of WORD", dont la taille correspond au nombre d’entrées. Si ProcessDataTable n’a qu’une entrée (par ex. WORD), alors ConfigNameTable doit être un tableau "Array[0..0] of WORD" (de taille 1).

  • Les types de données d’entrée autorisés sont tous des variables 16 bits (INT, WORD), 32 bits (DINT, DWORD, TIME (32 bits), REAL) et 64 bits ou des tableaux (arrays) des mêmes types de données. Les variables 64 bits sont définies en tant que tableaux (arrays) à deux dimensions, par ex. "Array[0..0,0..3] of INT" est une variable 64 bits, tandis que "Array[0..3] of INT" représente un tableau (array) avec quatres éléments de variables de 16 bits.

  • Les types de données BOOL, STRING et les tableaux (arrays) de ces types de données NE SONT PAS autorisés en entrée de la fonction FNS_InitConfigDataTable.

ProcessDataTable

Le tableau de syntaxe suivant présente comment déclarer des variables et des tableaux de 16 bits, 32 bits et 64 bits lorsqu’ils sont utilisés en tant qu’entrées ProcessDataTable.

Type de données d’entrée

Taille des entrées

Commentaire

INT, WORD

16 bits

DINT, WORD, REAL, TIME

32 bits

Array[0..0,0..3] of INT

Array[0..0,0..3] of WORD

64 bits

Tableau (array) à 2 dimensions ;

Taille de la seconde dimension = 4

Array[a ..b] of INT/Array[a ..b] of WORD

Tableau (array) de 16 bits

Taille = b-a+1

Tableau (array) à 1 dimension

Array[a ..b] of DINT/Array[a ..b] of DWORD/

Array[a ..b] of REAL/Array[a ..b] of TIME

Tableau (array) de 32 bits

Taille = b-a+1

Tableau (array) à 1 dimension

Array[0..x,0..3] of INT

Array[0..x,0..3] of WORD

Tableau (array) de 64 bits

Taille = x+1

Tableau (array) à 2 dimensions ;

Taille de la seconde dimension = 4

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
		adiDInt1: ARRAY[2..3] OF DINT:=[2(0)];
		arReal1: ARRAY[0..1, 1..9] OF REAL:=[18(0.0)];
		aui1: ARRAY[1..15] OF UINT:=[15(0)];
		dwWord1: DWORD:=0;
		iInt1: INT:=0;
		udiUDInt1: UDINT:=0;
	END_VAR

La taille de la variable configNames1 doit correspondre au nombre d’entrées de la variable d’entrée myDUT60.

Les données de type DUT ayant trois entrées, la variable de sortie configNames1 doit être de type Array of WORD avec une taille de trois éléments (par ex. : Array [0..2] of WORD).

Corps du POU

Lorsque sys_bIsFirstScan est TRUE, c.-à-d. dans le premier cycle, la fonction est exécutée. La valeur de la variable configNames1 correspond à la structure de la variable d’entrée myDUT60, son nombre et type d’éléments.

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,,myDUT60,11,2,13,4,);
B(B_VAROUT,,configNames1,29,2,31,4,);
B(B_F,E_FNS_InitConfigNameTable!,Instance,13,0,29,4,,?DEN?dProcessNameTable?AENO?cConfigNameTable);
B(B_VARIN,,sys_bIsFirstScan,11,1,13,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

If sys_bIsFirstScan then
    configNames1:=FNS_InitConfigNameTable(myDUT60);
end_if;

Modifié le : 2024-10-08Commentaires sur cette pageAssistance téléphonique