Funzioni ed FB per gestione Data/Ora

SysETimeT oDate, epoch time to date conversion

image0

Type Library
FB XTarget_07_0

Questo blocco funzione esegue la conversione della data espressa in epoch time. Occorre fornire al blocco funzione la data espressa nel formato epoch ime come presente nella variabile di sistema SysDateTime, in uscita dal blocco funzione avremo i valori di data espressi nel formato Giorno/Mese/Anno ed Ora:Minuti:Secondi.

EpochTime (UDINT) Occorre specificare la data espressa in epoch time.
Done (BOOL) Attivato al termine della conversione.
Fault (BOOL) Errore di conversione, viene attivato in caso di errore nella conversione.
Year (UINT) Ritorna il valore di anno (Range da 1970 a 2099)
Month (USINT) Ritorna il valore di mese dell’anno (Range da 1 a 12)
Day (USINT) Ritorna il valore di giorno del mese (Range da 1 a 31)
WeekDay (USINT)

Ritorna il valore di giorno della settimana (Range da 0 a 6)

0: Domenica, 1:Lunedì, 2:Martedì, 3:Mercoledì, 4:Giovedì, 5:Venerdì, 6:Sabato

Hour (USINT) Ritorna il valore di ora (Range da 0 a 23)
Minute (USINT) Ritorna il valore di minuti (Range da 0 a 59)
Second (USINT) Ritorna il valore di secondi (Range da 0 a 59)

Codici di errore

In caso di errore si attiva l’uscita Fault, con SysGetLastError è possibile rilevare il codice di errore.

9986050 Errore allocazione blocco funzione.
9986060 Errore versione blocco funzione.

Esempi

Viene convertito il valore di data ed ora espresso in epoch time dalla variabile SysDateTime e viene ritornato il valore di anno, mese e giorno nelle tre variabili definite.

Definizione variabili
image1

Esempio LD (PTP116A100, LD_SysETimeToDate)

image2

Esempio IL (PTP116A100, IL_SysETimeToDate)

(\* Transfer system date e time to FB input variable. \*)
LD SysDateTime
ST FB_SysETimeToDate.EpochTime
CAL FB_SysETimeToDate (\* Call the SysETimeToDate function block \*)
(\* Transfer the FB output variables to program variables. \*)
LD FB_SysETimeToDate.Year
ST Year
LD FB_SysETimeToDate.Month
ST Month
LD FB_SysETimeToDate.Day
ST Day

Esempio ST (PTP116A100, ST_SysETimeToDate)

(\* Here FB SysETimeToDate is executed and variables copied. \*)
FB_SysETimeToDate.EpochTime:=SysDateTime;
FB_SysETimeToDate();
Year:=FB_SysETimeToDate.Year; (\* Year \*)
Month:=FB_SysETimeToDate.Month; (\* Month \*)
Day:=FB_SysETimeToDate.Day; (\* Day \*)

SysDateTo ETime, date to epoch time conversion

image3

Type Library
FB XTarget_07_0

Questo blocco funzione esegue la conversione della data-ora in epoch time. Occorre fornire al blocco funzione la data e l’ora ed in uscita dal blocco funzione avremo un valore in epoch time.

Year (UINT) Definisce il valore di anno (Range da 1970 a 2099)
Month (USINT) Definisce il valore di mese dell’anno (Range da 1 a 12)
Day (USINT) Definisce il valore di giorno del mese (Range da 1 a 31)
Hour (USINT) Definisce il valore di ora (Range da 0 a 23)
Minute (USINT) Definisce il valore di minuti (Range da 0 a 59)
Second (USINT) Definisce il valore di secondi (Range da 0 a 59)
Done (BOOL) Attivato al termine della conversione.
Fault (BOOL) Errore di conversione, viene attivato in caso di errore nella conversione.
EpochTime (UDINT) Ritorna data espressa in epoch time.

Codici di errore

In caso di errore si attiva l’uscita Fault, con SysGetLastError è possibile rilevare il codice di errore.

9987050 Errore allocazione blocco funzione.
9987060 Errore versione blocco funzione.
9987200 Errore durante l’esecuzione del blocco funzione.

Esempi

Viene convertito il valore di data ed ora in epoch time. Esempio definendo il valore di data 9/4/2010 e ora 14:20:15 avremo in uscita il valore 1270822815.

Definizione variabili
image4

Esempio LD (PTP116A100, LD_SysDateToETime)

image5

Esempio IL (PTP116A100, IL_SysDateToETime)

(\* Transfer date e time to FB input variable. \*)
LD Year
ST FB_SysDateToEtime.Year
LD Month
ST FB_SysDateToEtime.Month
LD Day
ST FB_SysDateToEtime.Day
CAL FB_SysDateToEtime (\* Call the SysDateToEtime function block \*)
(\* Transfer the FB output variables to program variables. \*)
LD FB_SysDateToEtime.EpochTime
ST EpochTime

Esempio ST (PTP116A100, ST_SysDateToETime)

(\* Here FB SysDateToETime is executed and variables copied. \*)
FB_SysDateToEtime.Year:=Year;
FB_SysDateToEtime.Month:=Month;
FB_SysDateToEtime.Day:=Day;
FB_SysDateToEtime(); (\* Call the SysDateToEtime function block \*)
EpochTime:=FB_SysDateToEtime.EpochTime; (\* Epoch time \*)