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.
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. |
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); |
|
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 |
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.
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=> );