Vai al contenuto

SysGetLastError, get last error

Vai all indice del manuale di programmazione
Tipo: Funzione
Libreria LogicLab: eLLabXUnified12Lib
Libreria Codesys: Non disponibile

La funzione ritorna il numero dell’ultimo errore rilevato da una funzione e/o da un blocco funzione. Occorre eseguirla su abilitazione del bit di fault in uscita dalla funzione e/o blocco funzione da controllare. E’ possibile definire con il valore di Cmd se si vuole avere il valore attuale dell’ultimo errore (Cmd:=TRUE) oppure quello memorizzato con la precedente esecuzione della funzione (Cmd:=FALSE).

Descrizione

Cmd (BOOL) Indica il numero di errore ritornato. Se TRUE viene salvato e ritornato l’ultimo valore di errore. Se FALSE viene ritornato il numero salvato dalla precedente chiamata con Cmd:=TRUE.

La funzione ritorna una variabile (UDINT) con il valore dell’errore.

Immagine funzione SysGetLastError

Esempi

Come utilizzare gli esempi.
Al termine della esecuzione del FB di acquisizione ingressi digitali, se attivo il Fault viene acquisito il numero di errore riscontrato che è trasferito nella variabile Error.

LogicLab (Ptp116, ST_SysGetLastError)
PROGRAM ST_SysGetLastError
VAR
    Error : UDINT; (* Error number *)
    DInp : SysGetPhrDI; (* Digital input acquisition *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysGetLastError"
// *****************************************************************************
// An example of how acquire the last execution error.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // DIGITAL INPUT ACQUISITION
    // -------------------------------------------------------------------------
    // Acquires digital inputs 0 to 7 on CPU module.

    DInp.Address:=0; //Module address
    DInp.Mode:=DI_MODE#DI_8_LL; //Acquisition mode
    DInp(); //Digital input acquisition
    IF (DInp.Fault) THEN Error:=SysGetLastError(TRUE); END_IF;

// [End of file]
Was this article helpful?