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 (scheda SD).

Il blocco funzione DataFileCopy può:

  • leggere i dati da un file formattato o

  • Copiare i dati dalla memoria a un file formattato. Per ulteriori informazioni, consultare Non-Volatile Memory Organization.

Rappresentazione grafica

Rappresentazione IL e ST

Per la rappresentazione generale in linguaggio IL o ST, fare riferimento al capitolo Rappresentazione 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.

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 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 (scheda SD).

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-3 (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-3 (variabili, array, strutture), quali:

Variable : int;

dwAdd := ADR (Variable);

 AVVERTIMENTO
FUNZIONAMENTO ANOMALO 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 = indica che 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 modificano i dati nella memoria (variabili, array, strutture) utilizzata per scrivere il file, si verifica 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=> );