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¶
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 |
![]() |
Esempio LD
Sysrename, file rename¶
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 |
![]() |
Esempio LD
Sysfilelength, file lengh¶
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 |
![]() |
Esempio LD
Sysfseek, file seek¶
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 |
![]() |
Esempio LD
SysDirListing, directory listing¶
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 |
![]() |
Esempio LD
image14|