Gestione dei file di registro dati

Introduzione

Per la scrittura di voci di stringhe di testo sul file di registro dati è disponibile un blocco funzione chiamato LogRecord. Questo blocco funzione memorizza la stringa immessa in un buffer interno. Quando il buffer raggiunge l'80% di capacità, la stringa viene trasferita al file reale sul controller. È possibile forzare questo meccanismo di salvataggio utilizzando il blocco funzione Dump.

L'interruzione dell'alimentazione potrebbe causare perdite di dati nel buffer interno o un allungamento dei tempi di ciclo per lo svuotamento del buffer.

AVVISO

PERDITA DI DATI

oNon disinserire l'alimentazione elettrica del controller finché tutte le informazioni del buffer interno non sono state trasferite al file system corrente.

oSe i dati che vengono registrati sono importanti per l'applicazione, configurare la dimensione del buffer interno a 1.

Il mancato rispetto di queste istruzioni può provocare danni alle apparecchiature.

Aggiunta di un record con il blocco funzione LogRecord

Questo blocco funzione consente la registrazione di una stringa UNICODE in un registro specifico:

G-SE-0001545.1.gif-high.gif

 

 

Parametri di ingresso

Parametro

Tipo

Commento

xExecute

BOOL

La funzione è eseguita sul fronte di salita di questo ingresso.

NOTA: quando xExecute è impostato a TRUE al primo ciclo del task in RUN dopo un reset a caldo o a freddo, il fronte di salita non viene rilevato.

wsRecord

WSTRING

La stringa di testo UNICODE specificata dall'utente viene scritta sul file di registro dati.

NOTA: Il tipo WSTRING è disponibile nella libreria Standard64.lib automaticamente inserita all'aggiunta del gestore del registro dati all'applicazione.

Parametri di uscita

Parametro

Tipo

Commento

xDone

BOOL

L'uscita viene impostata su TRUE quando il record è correttamente memorizzato nel buffer interno, ovvero quando è salvato senza che siano visualizzati messaggi di errore.

xBusy

BOOL

Questa uscita rimane impostata su TRUE mentre LogRecord è occupato (ovvero finché il trasferimento al buffer non viene completato).

xError

BOOL

Questa uscita è impostata su TRUE quando si verifica un errore (ad esempio, quando il buffer interno è pieno).

eError

ERROR

Questa uscita contiene il codice di errore quando xError è TRUE:

oNO_ERROR

oINIT_ERROR

oDUMP_ERROR

oBUFFER_FULL_ERROR

oFILE_FULL_ERROR

oDUMP_INCOMPLETED

oINPUT_ERROR

oFILE_OPEN_ERROR

oFILE_SETPOINTER_ERROR

oFILE_WRITE_ERROR

oFILE_CLOSE_ERROR

NOTA: il record che dovesse superare la lunghezza impostata viene troncato.

Le uscite xDone e xError rimangono impostate su TRUE finché xExecute è TRUE. Quando xExecute è impostato su FALSE prima che xDone o xError sia impostato su TRUE (xBusy è ancora TRUE), uno di due viene impostato su TRUE quando il blocco funzione viene completato durante un ciclo del controller, in modo che l'applicazione rilevi questa fine:

G-SE-0003662.1.gif

 

1   Un ciclo come Ex è FALSE.

Il blocco funzione LogRecord include un'istanza che corrisponde a ciascun file di registro dati configurato.

NOTA: Non dichiarare esplicitamente un'istanza del blocco funzione perché l'istanza è dichiarata automaticamente. Se si dichiara in maniera esplicita un'istanza del blocco funzione, viene visualizzato un messaggio (Doppia dichiarazione di variabile) e il blocco funzione viene reso inutilizzabile.

Aggiungere il blocco funzione alla POU e specificare l'istanza del registro dati appropriata con la guida agli input (vedere Aggiunta di LogRecord).

Forzatura di un salvataggio con il metodo Dump

Per forzare i dati dell'applicazione a trasferire i record memorizzati nel buffer interno su un file reale nel file system del controller, è possibile utilizzare il metodo Dump, che può essere considerato una sottofunzione di un blocco funzione, in questo caso LogRecord:

G-SE-0001546.1.gif-high.gif

 

 

Parametri

Ingresso

Tipo

Commento

xExecute

BOOL

La funzione di memorizzazione è eseguita sul fronte di salita di questo ingresso.

NOTA: quando xExecute è impostato su 1 al primo ciclo di task del controller, il fronte di salita non è rilevato.

Uscita

Tipo

Commento

xDone

BOOL

Questa uscita è impostata su TRUE quando i record sono memorizzati correttamente, ovvero senza che siano visualizzati messaggi di errore.

xBusy

BOOL

Questa uscita rimane impostata su TRUE mentre Dump è occupato (finché il file non viene scritto completamente).

xError

BOOL

Questa uscita è impostata su TRUE quando viene rilevato un errore (ad esempio, quando il file di registro dati è pieno).

eError

ERROR

Questa uscita contiene il codice di errore quando xError è TRUE:

oNO_ERROR

oINIT_ERROR

oDUMP_ERROR

oBUFFER_FULL_ERROR

oFILE_FULL_ERROR

oDUMP_INCOMPLETED

oINPUT_ERROR

oFILE_OPEN_ERROR

oFILE_SETPOINTER_ERROR

oFILE_WRITE_ERROR

oFILE_CLOSE_ERROR

per l'implementazione del metodo , fare riferimento alla sezione Aggiunta di un metodo di scaricoDump.

Salvataggio automatico sul file di registro dati

Quando si utilizza il blocco funzione LogRecord, il sistema trasferisce automati­camente i dati dal buffer interno al file di registro dati quando raggiunge l'80% della capacità.  Il blocco funzione Dump consente di forzare questo trasferimento prima di raggiungere l'80% della capacità del buffer. Con il limite dell'80% è possibile iniziare il processo di scrittura prima che il buffer sia pieno e mentre si aggiunge un nuovo record.

Questa tabella mostra il numero di record nei quali viene memorizzato il file per una determinata dimensione del buffer configurata (l'80% delle dimensioni del buffer arrotondate al numero intero più prossimo):

Dimensioni del buffer

Limite dell'80%

Commento

1

1

Il salvataggio nel file di registro dati si attiva quando si aggiunge un record con uno slot aggiuntivo disponibile per un nuovo record che sopraggiunge durante questo salvataggio.

2

1

Il salvataggio nel file di registro dati si attiva quando il buffer raggiunge l'80% con uno slot aggiuntivo disponibile per un nuovo record che sopraggiunge durante questo salvataggio.

3

2

4

3

5

4

Il salvataggio nel file di registro dati si attiva quando il buffer raggiunge l'80% con slot aggiuntivi disponibili per nuovi record che sopraggiungono durante questo salvataggio.

6

4

7

5

8

6

...

 

Con il salvataggio esplicito (Dump) o automatico (80%), il file di registro dati si chiude dopo ogni record (o gruppo di record) in caso di successiva interruzione dell'alimentazione esterna.