Gestione dei file di registro dati
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:
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 |
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:
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:
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 |
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 automaticamente 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.