SysFfopen, file open

Home / Knowledge Base / Manualistica / Programmazione IEC 61131-3 / Gestione terminali (Streams) di I/O / SysFfopen, file open

La funzione permette l'apertura del collegamento tra la risorsa indicata dal parametro FName, ed un flusso di dati I/O stream da impiegare nelle successive chiamate alle funzioni di I/O. La funzione ritorna il puntatore alla risorsa.

Se la risorsa indicata è già aperta oppure il nome della risorsa è errato, la funzione ritorna eNULL. Se si sta aprendo un file su disco per crearlo, accertarsi che il disco sia formattato.

Function
CODESYS: Non disponibile
LogicLab: eLLabXUnified12Lib

FName (@STRING) Occorre indicare il nome della risorsa da utilizzare. Nel caso di un file su disco occorre indicare il file con il percorso completo (Esempio C:/Directory/File.txt). La lunghezza massima definibile è 70 caratteri.

Mode (@STRING) Occorre indicare il modo in cui la risorsa è aperta: r=read; w=write ; a=append. Per creare un file su disco, occorre eseguire l'apertura in 'w' o 'a'. Per le porte seriali definire 'rw'.

La funzione ritorna un (eFILEP) con il puntatore alla risorsa, eNULL in caso di errore.

Errori

In caso di errore la funzione ritorna eEOF, eseguendo immediatamente dopo la funzione SysGetLastError è possibile rilevare il codice di errore. Fare riferimento alla tabella seguente per la descrizione.

Esempi

Come utilizzare gli esempi.

ST_Sysfopen: Al primo loop di esecuzione viene aperto in lettura il file "C:/Logs.txt" e se presente vengono letti alcuni caratteri dal file e trasferiti nel buffer RData.

ST_MemoryDump: Questo programma permette attivando da debug il comando Write di trasferire tutta l'area di backup della DB100 (Da DB100.2048 a DB100.4095) su di un file su disco. Attivando da debug il comando Read viene letto il file ed eseguito il restore dell'area.

ST_PenDriveUse: Questo esempio da utilizzarsi su SlimLine  Raspberry dimostra come gestire un pen drive connesso al sistema. Ne viene controllata la presenza e all'inserimento nel sistema se sul pen drive è presente il file desiderato ne viene letta parte del contenuto. Il sistema Raspberry può montare i più comuni file  systems (FAT, NTFS, and HFS+), il disco viene di default montato nella cartella /media/pi/<HARD-DRIVE-LABEL>.

LogicLab (Ptp116)
PROGRAM ST_SysFfopen
VAR
    i : UDINT; (* Auxiliary counter *)
    Fp : FILEP; (* File pointer *)
    RData : STRING[ 32 ]; (* Read data *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysFfopen"
// *****************************************************************************
// It's opened the "C:/System/Logs.txt" file and readed some character from it.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // FILE READ
    // -------------------------------------------------------------------------
    // On First program loop open file and read from it.

    IF (SysFirstLoop) THEN 
        Fp:=SysFfopen(ADR('C:/Logs.txt'), ADR('r')); //File pointer
        
        IF (SysFIsOpen(Fp)) THEN
            i:=Sysfread(ADR(RData), TO_INT(SIZEOF(RData)), 1, Fp);
            i:=Sysfclose(Fp);
        END_IF;
    END_IF;

// [End of file]
LogicLab (Ptp116)
LogicLab (Ptp116)

Ti è stato utile questo articolo ?