DataFileCopy: comandi di copia file

Descrizione del blocco funzione

Questo blocco funzione consente di copiare i dati di memoria in un file e viceversa. Il file può trovarsi nel file system interno o in un file system esterno (SD Card).

Il blocco funzione DataFileCopy può:

oleggere i dati da un file formattato o

ocopiare i dati dal di memoria a un file formattato. Per informazioni più dettagliate, consultare Flash Memory Organization.

Rappresentazione grafica

G-SE-0017243.2.jpg

 

 

Rappresentazione IL e ST

Per la rappresentazione generale in linguaggio IL o ST, fare riferimento al capitolo Rappresen­tazione di funzioni e blocchi funzione.

Descrizione delle variabili di I/O

Questa tabella descrive le variabili di ingresso:

Ingresso

Tipo

Commento

xExecute

BOOL

Sul fronte di salita, avvia l'esecuzione del blocco funzione.

Sul fronte di discesa, azzera le uscite del blocco funzione al termine di un'esecuzione in corso.

sFileName

STRING

Nome file senza estensione (l'estensione .DTA viene aggiunta automaticamente). Usare solo i caratteri alfanumerici a...z, A...Z, 0...9.

xRead

BOOL

TRUE: copia dati dal file identificato da sFileName nella memoria interna del controller.

FALSE: copia dati dalla memoria interna del controller nel file identificato da sFileName.

xSecure

BOOL

TRUE: l'indirizzo MAC è sempre memorizzato nel file. Solo un controller con lo stesso indirizzo MAC può leggere i dati dal file.

FALSE: un altro controller con lo stesso tipo di memoria può leggere i dati dal file.

iLocation

INT

0: il percorso del file è /usr/DTA nel file system interno.

1: il percorso del file è /usr/DTA nel file system esterno (SD Card).

NOTA: Se il file non esiste già nella directory, viene creato.

uiSize

UINT

Indica le dimensioni in byte. Il valore massimo è 65534 byte.

Si possono utilizzare solo gli indirizzi delle variabili conformi a IEC 61131-3 (variabili, array, strutture), quali:

Variable : int;

uiSize := SIZEOF (Variable); 

dwAdd

DWORD

Indica

Si possono utilizzare solo gli indirizzi delle variabili conformi a IEC 61131-3 (variabili, array, strutture), quali:

Variable : int;

dwAdd := ADR (Variable); 

Warning_Color.gifAVVERTIMENTO

FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA

Accertarsi che la posizione di memoria abbia una dimensione corretta e che il file sia del tipo corretto prima di copiarlo nella memoria.

Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.

Questa tabella descrive le variabili di uscita:

Uscita

Tipo

Commento

xDone

BOOL

TRUE = indica che l'azione è stata conclusa correttamente.

xBusy

BOOL

TRUE = il blocco funzione è in esecuzione.

xError

BOOL

TRUE = indica che è stato rilevato un errore e che il blocco funzione ha interrotto l'azione.

eError

DataFileCopyError

Indica il tipo di errore di copiatura del file di dati.

NOTA: Se si scrive nella variabile di memoria nell'area di scrittura file, vengono generati degli errori di integrità CRC.

Esempio

Questo esempio descrive come copiare i file dei comandi

VAR
LocalArray : ARRAY [0..29] OF BYTE;
myFileName: STRING := 'exportfile';
EXEC_FLAG: BOOL;
DataFileCopy: DataFileCopy;
END_VAR
DataFileCopy(
xExecute:= EXEC_FLAG,
sFileName:= myFileName,
xRead:= FALSE,
xSecure:= FALSE,
iLocation:= DFCL_INTERNAL,
uiSize:= SIZEOF(LocalArray),
dwAdd:= ADR(LocalArray),
xDone=> ,
xBusy=> ,
xError=> ,
eError=> );