Questa funzione permette di calcolare il valore di Data/Ora locale partendo dal valore UTC utilizzando il valore di TimeZone e DaylightZone definiti.
Descrizione
UTCDateTime (UDINT) Valore data in UTC espressa in secondi.
TimeZone (SINT) Fuso orario numero che indica la differenza in ore dell’ora locale rispetto al Tempo Coordinato Universale (UTC) riferito al meridiano di Greenwich. Per l’Italia il valore da definire è +1.
DaylightZone (USINT) Zona di cambio ora legale, il sistema provvede automaticamente al cambio di ora in base alla zona definita. Le zone sono 3 (Per l’Italia occorre impostare 1).
0) Nessun cambiamento di ora legale.
1) Europa, ora legale da Aprile ad Ottobre.
2) USA, ora legale da Aprile a Novembre.
La funzione ritorna un UDINTcon il valore di data locale espressa in secondi.

Esempi
Come utilizzare gli esempi.
Ad ogni secondo viene calcolato il valore di Data/Ora locale per l’Italia.
LogicLab (Ptp116, ST_SysDateLocalize)
PROGRAM ST_SysDateLocalize
VAR
Pulse : BOOL; (* One-Shot flag *)
DTimeLocal : DATE_AND_TIME; (* Local Date/Time *)
DTimeUTC : DATE_AND_TIME; (* UTC Date/Time *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_SysTimeZoneAdj"
// *****************************************************************************
// At every second it's returned the Date/Time for Italy.
// -----------------------------------------------------------------------------
// Time trigger.
IF (SysClock1000 <> Pulse) THEN
Pulse:=SysClock1000; //One-Shot flag
DTimeUTC:=TO_DATE_AND_TIME(SysDateGetS()); //UTC Date/Time
DTimeLocal:=TO_DATE_AND_TIME(SysDateLocalize(SysDateGetS(), +1, 1)); //Local Date/Time
END_IF;
// [End of file]