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 <#VarSysDateTime>`__, 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 <#FctSysGetLastError>`__ è 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)* .. code-block:: none (\* 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)* .. code-block:: none (\* 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 <#FctSysGetLastError>`__ è 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)* .. code-block:: none (\* 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)* .. code-block:: none (\* 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 \*) .. |image0| image:: media/image1.jpg :width: 1.46944in :height: 1.96944in .. |image1| image:: media/image2.jpg :width: 7.08681in :height: 0.89792in .. |image2| image:: media/image3.jpg :width: 7.08681in :height: 2.93681in .. |image3| image:: media/image4.jpg :width: 1.44861in :height: 1.41736in .. |image4| image:: media/image5.jpg :width: 7.08681in :height: 1.62569in .. |image5| image:: media/image6.jpg :width: 7.08681in :height: 2.22431in