DataFileCopy: comandi di copia file

Descrizione del blocco funzione

Questa 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 (chiave USB).

Il blocco funzione DataFileCopy può:

oleggere i dati da un file formattato o

ocopiare i dati dal buffer di memoria a un file formattato. Per ulteriori informazioni, vedere Organizzazione della memoria Flash.

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:

L'ingresso

Tipo

Commento

xExecute

BOOL

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

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

NOTA: Con il fronte di discesa, la funzione continua fino a concluderne l'esecuzione e aggiornarne le uscite. Le uscite sono mantenute per un ciclo e azzerate.

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 (chiave USB).

NOTA: Il file, se 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-31 (variabili, array, strutture), quali:

Variable : int;

uiSize := SIZEOF (Variable); 

dwAdd

DWORD

Indica l'indirizzo nella memoria letta dalla funzione o in cui la funzione scriverà.

Si possono utilizzare solo gli indirizzi delle variabili conformi a IEC 61131-31 (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, verrà generato un errore 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=> );