SysSetUTCDateTime, set the system Date/Time on UTC

  1. Home
  2. Knowledge Base
  3. Manualistica
  4. Programmazione IEC 61131-3
  5. Gestione Data/Ora
  6. SysSetUTCDateTime, set the system Date/Time on UTC

Questa funzione imposta la Data/Ora di sistema in UTC nel Real Time Clock. Nei sistemi operativi Unix-like il tempo viene rappresentato come offset in secondi rispetto alla mezzanotte (UTC) del 1º gennaio 1970 (detta epoca). Questo tipo di rappresentazione, oltre che a essere compatta, è indipendente dai fusi orari, ed è quindi direttamente confrontabile anche tra systemi situati in posizioni geografiche diverse.

Function
CODESYS: Non disponibile
LogicLab: eLLabXUnified12Lib

UTCDateTime (UDINT) Valore Data/Ora di sistema in UTC, il valore è espresso in Epoch Time.

La funzione ritorna una variabile (BOOL) FALSE: Errore esecuzione, TRUE: Esecuzione Ok.

Esempi

Come utilizzare gli esempi.
Nel seguente esempio è possibile eseguire l'aggiornamento del Real Time Clock con valori impostabili da debug. Le operazioni da eseguire sono:

  1. Attivare la variabile Read per  eseguire lettura del valore Data/Ora attuale e convertirlo in valori leggibili.
  2. Modificare i valori per impostare i valori desiderati
  3. Attivare la variabile Update per convertire i valori in Epoch Time ed impostarli nel Real Time Clock.
LogicLab (Ptp116)
PROGRAM ST_SysSetUTCDateTime
VAR
    Read : BOOL; (* Read command *)
    Update : BOOL; (* Update command *)
    SSts : BOOL; (* Set status *)
    DToETime : SysDateToETime; (* Date/Time to epoch conversion *)
    EToDate : SysETimeToDate; (* Epoch time to date conversion *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysSetUTCDateTime"
// *****************************************************************************
// The Real Time Clock can be updated by using a Date/Time values.
// -----------------------------------------------------------------------------

    // On Read command, the RTC value has been read.

    IF (Read) THEN
        Read:=FALSE; //Read command
        EToDate.EpochTime:=SysGetUTCDateTime(TRUE); //Epoch time
        EToDate(); //Epoch time to date conversion
    END_IF;

    // On Update command, the RTC value has been updated.

    IF (Update) THEN
        Update:=FALSE; //Update command

        DToETime.Year:=EToDate.Year; //Year value
        DToETime.Month:=EToDate.Month; //Month value
        DToETime.Day:=EToDate.Day; //Day value
        DToETime.Hour:=EToDate.Hour; //Hour value
        DToETime.Minute:=EToDate.Minute; //Minute value
        DToETime.Second:=EToDate.Second; //Second value

        DToETime(); //Date/Time to epoch conversion
        SSts:=SysSetUTCDateTime(DToETime.EpochTime); //Set status
    END_IF;

// [End of file]

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 23 Marzo 2020