Configurare i dati per i blocchi FP-FNS.
La funzione FNS_InitConfigNameTable crea una ConfigNameTable dalla variabile ProcessDataTable, la quale può essere un tipo di dato monoelemento o un tipo di dato multielemento.
Ingresso
Ingresso e uscita delle variabili dei dati di processo
Uscita
L'uscita è un array di STRING contenente i nomi dei membri della DUT applicati a ProcessDataTable.
La dimensione array della variabile ConfigNameTable deve corrispondere al numero di elementi della variabile ProcessDataTable.
La lunghezza della stringa degli elementi dell'array deve essere maggiore o uguale alla lunghezza massima dei nomi dei membri.
Assicurarsi che la dimensione della variabile ConfigNameTable corrisponda alla struttura della variabile ProcessDataTable, p.es. se ProcessDataTable è composto da tre elementi, ConfigNameTable deve essere un "Array[0..2] of WORD" la cui dimensione corrisponde al numero di elementi. Se ProcessDataTable presenta un solo elemento (p.es. WORD), allora ConfigNameTable deve essere un "Array[0..0] of WORD" (di dimensione 1).
I tipi di dati di ingresso ammessi sono tutti variabili a 16 bit (INT, WORD), 32 bit (DINT, DWORD, TIME (32 bit), REAL) e 64 bit o array di queste. Le variabili a 64 bit sono definite come array bidimensionali, p.es. "Array[0..0,0..3] of INT" è una variabile a 64 bit, mentre "Array[0..3] of INT" rappresenta un array con quattro elementi di variabili a 16 bit.
I tipi di dati BOOL, STRING e gli array di questi tipi NON sono ammessi all'ingresso della funzione FNS_InitConfigDataTable.
La seguente tabella sintattica illustra come dichiarare le variabili a 16 bit, 32 bit e 64 bit e gli array di queste nel caso vengano utilizzate come ingresso ProcessDataTable.
Tipo di dato di ingresso |
Dimensione dell'ingresso |
Commento |
---|---|---|
INT, WORD |
16 bit |
|
DINT, WORD, REAL, TIME |
32 bit |
|
Array[0..0,0..3] of INT Array[0..0,0..3] of WORD |
64 bit |
Array bidimensionale; dimensione della seconda dimensione = 4 |
Array[a ..b] of INT/Array[a ..b] of WORD |
Array di 16 bit Dimensione = b-a+1 |
Array monodimensionale |
Array[a ..b] of DINT/Array[a ..b] of DWORD/ Array[a ..b] of REAL/Array[a ..b] of TIME |
Array di 32 bit Dimensione = b-a+1 |
Array monodimensionale |
Array[0..x,0..3] of INT Array[0..x,0..3] of WORD |
Array di 64 bit Dimensione = x+1 |
Array bidimensionale; dimensione della seconda dimensione = 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 dimensione della variabile configNames1 deve corrispondere al numero di elementi della variabile di ingresso myDUT60.
Poiché la DUT presenta tre elementi, la variabile di uscita configNames1 deve essere un array di WORD avente dimensione tre (p.es.: Array [0..2] of WORD).
Quando sys_bIsFirstScan è TRUE, ossia nel primo ciclo, la funzione viene eseguita. Il valore della variabile configNames1 corrisponde alla struttura della variabile di ingresso myDUT60, con il relativo numero e tipo di elementi.
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;