DateTimeFormat, format the Date/Time

Home / Knowledge Base / Manualistica / Programmazione IEC 61131-3 / Gestione storicizzazione dati / DateTimeFormat, format the Date/Time

CODESYS:

LogicLab: eLLabLogLib

Restituisce una stringa formattata in base alla stringa di formato indicata in pFormat utilizzando il valore di epoch time indicato in EpochTime. Il FB ha esecuzione atomica, può essere eseguito come una funzione.

La stringa formattata viene ritornata nel buffer indicato da pRString la cui dimensione deve essere passata in RSLength. In caso di errore esecuzione viene attivata per un loop di programma l’uscita Fault. Function block

EpochTime (UDINT) Valore data in Unix Epoch time (1 gennaio 1970).

pFormat (@STRING) Puntatore a definizione formattazione.

pRString (@STRING) Puntatore a buffer stringa risultato formattata.

RSLength (UDINT) Dimensione buffer stringa risultato formattata.

Fault (BOOL) Attivo per un loop su errore esecuzione comando.

Definizione caratteri formattazione
FormatDescription
dDay of the month, 2 digits with leading zeros01~31
mNumeric representation of a month, with leading zeros01~12
YA full numeric representation of a year, 4 digitsExamples: 1999 or 2003
yA two digit representation of a yearExamples: 99 or 03
H24-hour format of an hour with leading zeros00~23
iMinutes with leading zeros00~59
sSeconds with leading zeros00~59
uMicrosecondExample: 500
vMillisecondExample: 654
USeconds since the Unix Epoch

Errori

In caso di errore si attiva l’uscita Fault, eseguendo immediatamente dopo la funzione SysGetLastError è possibile rilevare il codice di errore. Fare riferimento alla tabella seguente per la descrizione.

Codici di errore
10143050Definizione formattazione in pFormat non definito.
10143060Buffer risultato in pRString non definito.
10143080FB usata in task diversa da Back.

Esempi

Come utilizzare gli esempi.
Nell’esempio è riportata la formattazione della Data/Ora di sistema in diversi formati.

LogicLab (Ptp136)
PROGRAM ST_DateTimeFormat
VAR
    DFormat : DateTimeFormat; (* Date/Time format *)
    Result1 : STRING[ 32 ]; (* Result string *)
    Result2 : STRING[ 32 ]; (* Result string *)
    Result3 : STRING[ 32 ]; (* Result string *)
    Result4 : STRING[ 32 ]; (* Result string *)
    Result5 : STRING[ 32 ]; (* Result string *)
    Result6 : STRING[ 32 ]; (* Result string *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_DateTimeFormat"
// *****************************************************************************
// The system Date/Time is formatted in some various strings.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // DATE/TIME FORMATTING
    // -------------------------------------------------------------------------
    // Date/Time formatting examples.
    
    DFormat.EpochTime:=SysGetUTCDateTime(TRUE); //Epoch time UTC
    DFormat(pFormat:=ADR('H:i:s'), pRString:=ADR(Result1), RSLength:=SIZEOF(Result1)); //15:57:15
    DFormat(pFormat:=ADR('d/m/Y'), pRString:=ADR(Result2), RSLength:=SIZEOF(Result2)); //06/04/2021
    DFormat(pFormat:=ADR('H:i:s.v'), pRString:=ADR(Result3), RSLength:=SIZEOF(Result3)); //15:57:26.416
    DFormat(pFormat:=ADR('H:i:s.vu'), pRString:=ADR(Result4), RSLength:=SIZEOF(Result4)); //15:57:53.862040
    DFormat(pFormat:=ADR('d/m/y H:i:s'), pRString:=ADR(Result5), RSLength:=SIZEOF(Result5)); //06/04/21 15:56:59
    DFormat(pFormat:=ADR('d/m/Y H:i:s'), pRString:=ADR(Result6), RSLength:=SIZEOF(Result6)); //06/04/2021 15:56:47

// [End of file]

Ti è stato utile questo articolo ?