FNS_InitConfigDataTable

Configurare i dati per i blocchi FP-FNS.

La funzione FNS_InitConfigDataTable crea una ConfigDataTable dalla variabile ProcessDataTable, la quale può essere un tipo di dato monoelemento o un tipo di dato multielemento. Questa ConfigDataTable è necessaria per configurare il blocco FP-FNS utilizzando il Function Block FNS_ProfibusDP, FNS_DeviceNet, FNS_CANopen e FNS_ProfinetIO.

Parametri

Ingresso

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

Ingresso e uscita delle variabili dei dati di processo

Uscita

ConfigDataTable (ARRAY of WORD)

Dati sulla configurazione per i blocchi FP-FNS. La dimensione array della variabile ConfigDataTable deve corrispondere al numero di elementi della variabile ProcessDataTable.

Note

  • Assicurarsi che la dimensione della variabile ConfigDataTable corrisponda alla struttura della variabile ProcessDataTable, p.es. se ProcessDataTable è composto da tre elementi, ConfigDataTable 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 ConfigDataTable deve essere un "Array[0..0] of WORD" (di dimensione 1).

  • I tipi di dati ammessi per l'ingresso di FNS_InitConfigDataTable 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.

  • L'uscita ConfigDataTable della funzione deve essere un array di WORD.

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 per la funzione FNS_InitConfigDataTable.

    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

  • Per ciascun elemento della DUT applicato a ProcessDataTable, un elemento nell'array WORD su ConfigDataTable viene generato secondo la seguente formula:

    enum class enumFnsDataTypeCode : int
    
          {
                INVALID     = -1,
                SIGNED_16   = 0x02,
                SIGNED_32   = 0x03,
                UNSIGNED_16 = 0x05,
                UNSIGNED_32 = 0x06,
                UNSIGNED_64 = 0x11,
                REAL_32     = 0x12
          };
    • Byte basso: codice tipo di dato richiesto per FNS

    • Byte alto: numero di elementi in caso di array

Esempio

Variabili globali

Nella lista variabili globali si definiscono variabili alle quali possono accedere tutti i POU del progetto.

DUT

In questo esempio, la variabile ProcessData è una DUT del tipo ProcessDataStructure avente la seguente struttura:

Poiché la DUT presenta tre elementi, la variabile di uscita ConfigData deve essere un array di WORD avente dimensione tre (p.es.: Array [0..2] of WORD).

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
		ConfigData: ARRAY [0..2] OF WORD:=[3(0)];
	END_VAR
	VAR_EXTERNAL
		ProcessData: ProcessDataStructure;
	END_VAR

La dimensione della variabile ConfigDataTable deve corrispondere al numero di elementi della variabile di ingresso ProcessData.

Corpo del POU

Quando sys_bIsFirstScan è TRUE, ossia nel primo ciclo, la funzione viene eseguita. Il valore della variabile ConfigData corrisponde alla struttura della variabile di ingresso ProcessData, 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,,ProcessData,11,2,13,4,);
B(B_VAROUT,,ConfigData,29,2,31,4,);
B(B_F,E_FNS_InitConfigDataTable!,,13,0,29,4,,?DEN?dProcessDataTable?AENO?cConfigDataTable);
B(B_CONTACT,,sys_bIsFirstScan,5,1,7,3,);
L(1,2,5,2);
L(7,2,13,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

If sys_bIsFirstScan then
    ConfigData:=FNS_InitConfigDataTable(ProcessData);
    end_if;

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