FNS_InitConfigNameTable

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.

Parametri

Ingresso

ProcessDataTable (INT, WORD, DINT, DWORD, REAL, TIME) e ARRAY di questi tipi

Ingresso e uscita delle variabili dei dati di processo

Uscita

ConfigNameTable ARRAY of WORD

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.

Note

  • 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.

ProcessDataTable

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

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
	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).

Corpo del POU

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.

Corpo 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

Corpo ST

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

L'ultima revisione: 2024-12-18Feedback su questa paginaPanasonic hotline