WriteDataToFileRegisterBank

Scrivi i dati nel file banco di memoria 1 o 2

Questa istruzione legge il numero di word specificato da DataNumberOfWords a partire da DataStartAddresse lo scrive nel file banco di memoria 1 o 2 come specificato da BankNumber a partire da BankOffset.

Parametri

Ingresso

BankNumber (INT)

Specifica il numero di banco

BankOffset (INT)

Specifica l'offset del numero di banco

DataStartAddress (WORD, INT, UINT)

Specifica l'indirizzo iniziale del dato da scrivere nel file banco di memoria

DataNumberOfWords (INT)

Specifica il numero di unità word da scrivere nel file banco di memoria

Note

Con questa funzione non è possibile scrivere i dati nell'area FL (file banco di memoria 0), il che significa che la variabile applicata in DataStartAddress non deve trovarsi nell'area FL.

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
		awProcessDataToStore: ARRAY [0..10] OF INT:=[-111,111,222,333,444,555,666,777,888,999,1100];
		awProcessDataToGet: ARRAY [0..10] OF INT:=[11(0)];
		bStoreData: BOOL:=FALSE;
		bGetData: BOOL:=FALSE;
	END_VAR

Corpo del POU

Se bStoreData passa da FALSE a TRUE l'intera variabile unità dati awProcessDataToStore (una DUT contenente 11 elementi) viene riempita con i dati del file banco di memoria 2 BankOffset 1000.

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 9 ;
        NETWORK_BODY
B(B_F,WriteDataToFileRegisterBank!,Instance,22,1,36,7,,?DBankNumber?DBankOffset?DDataStartAddress?DDataNumberOfWords);
B(B_VARIN,,2,20,3,22,5,);
B(B_VARIN,,1000,20,4,22,6,);
B(B_VARIN,,awProcessDataToStore[0],10,5,12,7,);
B(B_CONTACT,,bStoreData,5,2,7,4,R);
B(B_F,Adr_Of_Var_I!,Instance,12,5,19,7,,?D?C);
B(B_F,Size_Of_Var!,Instance,12,7,19,9,,?D?C);
L(1,3,5,3);
L(7,3,22,3);
L(19,6,19,8);
L(12,6,12,8);
L(1,0,1,9);
L(19,6,22,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

if (DF(bStoreData)) then
    WriteDataToFileRegisterBank(BankNumber := 2, 
    BankOffset := 1000, 
    DataStartAddress := Adr_Of_Var(awProcessDataToStore), 
    DataNumberOfWords := Size_Of_Var(awProcessDataToStore));
end_if;

L'ultima revisione: 2021-06-29Feedback su questa paginaPanasonic hotline