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.
Entrée
Variables des données d’entrée et sortie du process
Sortie
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.
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.
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 |
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).
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.
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
If sys_bIsFirstScan then
configNames1:=FNS_InitConfigNameTable(myDUT60);
end_if;