File system

Le “CPU SlimLine ARM7” a partire dal firmware versione SFW167C100, possono gestire il file system. In tali CPU esistono due directories predefinite:

Storage: Directory allocata sulla memoria EEPROM presente su SlimLine (Tutte le versioni).

SDCard: Directory allocata sul chip SD Card che deve essere inserito nell’apposito connettore.

Per le operazioni di formattazione del file system si rimanda al manuale utente, il file system è raggiungibile da FTP, quindi utilizzando un client FTP è possibile creare nuovi files, cancellare files esistenti, rinominare files esistenti, leggere e scrivere dati nei files.

Sysremove, file remove

image0

Type Library
Function XTarget_07_0

Questa funzione esegue la rimozione (cancellazione) di un file. In Name occorre definire il nome del file da eliminare specificando l’intero percorso (Esempio Storage/File.txt).

Se l’operazione di rimozione va a buon fine la funzione ritorna TRUE, in caso di errore viene ritornato FALSE.

Parametri funzione:

Name (STRING[32]) Nome del file da cancellare.

La funzione ritorna:

(BOOL)

FALSE: Errore esecuzione.

TRUE: Ok esecuzione.

Codici di errore

In caso di errore la funzione torna FALSE e con SysGetLastError è possibile rilevare il codice di errore.

9961100 Funzione eseguita in task diversa da Back.
9961150 Errore nella dichiarazione del nome file.
9961160 Directory non accessibile da utente “Admin”.
9961200 Errore nella cancellazione del file.
9961990 Non implementata nel simulatore.

Esempi

Sul fronte di attivazione dell’ingresso digitale Di00M00 viene eliminato il file File.txt presente nella directory Storage.

Definizione variabili
image1

Esempio LD

image2

Sysrename, file rename

image3

Type Library
Function XTarget_07_0

Questa funzione esegue il cambiamento del nome di un file. In OldName occorre definire il nome del file da rinominare specificando l’intero percorso (Esempio Storage/OldFile.txt), in NewName occorre definire il nuovo nome del file specificando l’intero percorso (Esempio Storage/NewFile.txt).

Se l’operazione di rinomina va a buon fine la funzione ritorna TRUE, in caso di errore viene ritornato FALSE.

Parametri funzione:

OldName (STRING[32]) Nome del file da rinominare.
NewName (STRING[32]) Nuovo nome da dare al file.

La funzione ritorna:

(BOOL)

FALSE: Errore esecuzione.

TRUE: Ok esecuzione.

Codici di errore

In caso di errore la funzione torna FALSE e con SysGetLastError è possibile rilevare il codice di errore.

9960100 Funzione eseguita in task diversa da Back.
9960150 Errore nella dichiarazione OldName.
9960160 Directory file OldName non accessibile da utente “Admin”.
9960170 Errore nella dichiarazione NewName.
9960180 Directory file NewName non accessibile da utente “Admin”.
9960200 Errore nella rinominazione del file.
9960990 Non implementata nel simulatore.

Esempi

Sul fronte di attivazione dell’ingresso digitale Di00M00 viene rinominato il file OldFile.txt presente nella directory Storage. Il file assumerà il nuovo nome di NewFile.txt.

Definizione variabili
image4

Esempio LD

image5

Sysfilelength, file lengh

image6

Type Library
Function XTarget_07_0

Questa funzione ritorna la lunghezza in bytes di un file. In Name occorre definire il nome del file di cui si vuole conoscere la lunghezza specificando l’intero percorso (Esempio Storage/File.txt).

Se il file indicato non è presente, la funzione ritorna -1.

Parametri funzione:

Name (STRING[32]) Nome del file di cui si vuole conoscere la lunghezza.

La funzione ritorna:

(DINT) Lunghezza file (Bytes). EOF se file non presente.

Codici di errore

In caso di errore la funzione torna EOF e con SysGetLastError è possibile rilevare il codice di errore.

9959100 Funzione eseguita in task diversa da Back.
9959990 Non implementata nel simulatore.

Esempi

Sul fronte di attivazione dell’ingresso digitale Di00M00 viene ritornata la lunghezza del file File.txt presente nella directory Storage.

Definizione variabili
image7

Esempio LD

image8

Sysfseek, file seek

image9

Type Library
Function XTarget_07_0

Questa funzione permette di cambiare l’indicatore di posizione dello stream collegato al parametro File, precedentemente aperto dalla funzione Sysfopen.

Offset specifica il numero di bytes dall’origine dove andrebbe posizionato l’indicatore di posizione. Origin specifica la posizione di origine rispetto alla quale spostare l’indicatore di posizione.

La funzione ritorna il valore attuale dell’indicatore di posizione. In caso di errore di posizionamento, l’indicatore di posizione rimane inalterato e la funzione ritorna EOF.

Parametri funzione:

File (FILEP) Flusso dati stream ritornato dalla funzione Sysfopen.
Offset (DINT) Numero di bytes dall’origine dove posizionare l’indicatore di posizione
Origin (INT) Occorre specificare la posizione di origine, FSeek origin definition.

La funzione ritorna:

(DINT) Valore attuale dell’indicatore di posizione. EOF se errore.

Codici di errore

In caso di errore la funzione torna EOF e con SysGetLastError è possibile rilevare il codice di errore.

9958100 Funzione eseguita in task diversa da Back.
9958990 Non implementata nel simulatore.

Esempi

Sul fronte di attivazione dell’ingresso Di00M00 viene posizionato l’indicatore di posizione all’inizio del file File.txt presente nella directory Storage.

Definizione variabili
image10

Esempio LD

image11

SysDirListing, directory listing

image12

Type Library
FB XTarget_10_0

Questo blocco funzione esegue il listing di tutti i files contenuti in una directory, occorre passare il nome della directory di cui eseguire il listing in PathName. Attivando l’ingresso Init si inizializza la lista dei files e viene ritornato il primo file trovato. Ad ogni comando Next si esegue la ricerca di un nuovo file nella directory selezionata.

Se file trovato l’uscita Found si attiva per un loop e ne viene rtornato il nome in FileName. Terminato l’elenco di tutti i files presenti nella directory su comando Next non viene più attivata l’uscita Found e FileName è abblencato. L’uscita IsDir si attiva se il nome del file ritornato è quello di una sottodirectory.

Init (BOOL) Alla attivazione viene inizializzato l’indice dei files nella directory indicata e viene ritornato il nome del primo file trovato.
Next (BOOL) Alla attivazione viene ritornato il nome del file puntato dall’indice nella directory indicata. L’indice si incrementa puntando il successivo file.
PathName (STING[32]) Definizione directory di cui eseguire il listing. E” possibile definire anche eventuale filtro di ricerca (Esempio Storage*.log).
Found (BOOL) Si attiva per un loop se su comando Init o Next è stato trovato un nuovo file da listare.
Fault (BOOL) Si attiva per un loop se errore esecuzione.
IsDir (BOOL) Attiva se il nome di file ritornato appartiene ad una sottodirectory.
Size (UDINT) Dimensione in bytes del file.
Time (UDINT) Data ultima modifica del file in Epoch time (UTC).
FileName (STING[16]) Nome del file comprensivo di eventuale estensione.

Codici di errore

In caso di errore si attiva l’uscita Fault, con SysGetLastError è possibile rilevare il codice di errore.

9952050 Errore allocazione blocco funzione.
9952060 Terminato spazio memoria rilocabile, non è possibile eseguire l”“FB.
9952070 Errore versione blocco funzione.
9952100 FB eseguita in task diversa da Back.
9952200 Errore esecuzione directory listing.
9952990 Non implementata nel simulatore.

Esempi

Sul fronte di attivazione dell’ingresso digitale Di00M00 viene inizializzato il puntatore ai files presenti nella directory Storage. Ad ogni attivazione dell’ingresso digitale Di01M00 viene ritornato il nome del file presente nella directory. Se file presente si attiva per un loop Ok, se si tratta di una sottodirectory si attiva per un loop Dir.

Definizione variabili
image13

Esempio LD

image14|