Impostare sincronizzazione data e ora per il server NTP
Questa istruzione FP imposta il tempo per eseguire una sincronizzazione data e ora automatica con il server NTP.
Ingresso
Specifica il tempo per eseguire una sincronizzazione data e ora automatica con il server NTP.
Impostare il tempo con una o più delle seguenti impostazioni di parole chiave:
Sincronizzazione giornaliera (parametro opzionale)
Parola chiave: DAY
Sintassi: 'DAY=xxx'
Valori: DISABLE, HHMM
HH=ore (0–23), MM=minuti (0–59)
Esempi:
Nessuna sincronizzazione giornaliera: 'DAY=DISABLE'
Giornaliera alle 13:30: 'DAY=1330'
Sincronizzazione settimanale (parametro opzionale)
Parola chiave: WEEK
Sintassi: 'WEEK=xxxxx'
Valori: DISABLE, WHHMM
W=giorno della settimana (0=domenica, 1=lunedì, 2=martedì, 3=mercoledì, 4=giovedì, 5=venerdì, 6=sabato), HH=ore (0–23), MM=minuti (0–59)
Esempi:
Nessuna sincronizzazione settimanale: 'WEEK=DISABLE'
Ogni domenica alle 23:59: 'WEEK=02359'
Sincronizzazione mensile (parametro opzionale)
Parola chiave: MONTH
Sintassi: 'MONTH,xxxxxx'
Valori: DISABLE, DDHHMM
DD=giorno (0–28), HH=ore (0–23), MM=minuti (0–59)
Esempi:
Nessuna sincronizzazione mensile: 'MONTH=DISABLE'
Ogni 15 del mese alle 15:30: 'MONTH=150330'
Uscita
Impostare su TRUE quando l'operazione termina in modo anomalo senza esecuzione, p.es. quando sys_bIsEthernetInitializing è TRUE
Quando si verifica un errore, controllare la variabile di sistema sys_iEthernetConnectionErrorCode per verificare il numero di codice di errore.
Questa istruzione non è disponibile nei programmi di interrupt.
Non modificare l'ordine delle parole chiave. Specificare le parole chiave e i loro parametri di impostazione nell'ordine in cui vengono elencati qui.
Una parte della sintassi del parametro può essere omessa. Le impostazioni non vengono modificate se i parametri vengono omessi parzialmente.
Omettendo la parte prima di una parola chiave specificata, omettere solo la parola chiave ma non la virgola "," che separa le parole chiave: ',,MONTH=150300'
.
Omettendo la parte dopo una parola chiave specificata, omettere sia la virgola "," che la parola chiave: 'DAY=1130,WEEK=DISABLE'
.
Non specificare la stessa parola chiave per più di una volta. se la stessa parola chiave è specificata più di una volta, si verifica un errore.
I tempi della richiesta di sincronizzazione data e ora per il server NTP è impostato secondo sSynchronizeTime.
I dati già impostati nei registri di sistema ( ) non sono validi e la richiesta di sincronizzazione data e ora NTP viene eseguita nel momento specificato da tale istruzione.
Nei seguenti casi il PLC torna alle impostazioni dei registri di sistema:
L'alimentazione viene scollegata.
Si passa da Modo PROG a Modo RUN.
Si passa a un progetto diverso.
I dati di impostazione non andranno persi anche se l'istruzione FP_IPV4_SET_ADDRESS viene eseguita.
Prima di eseguire l'istruzione, assicurarsi che sys_bIsEthernetInitializing sia FALSE. sys_bIsEthernetInitializing passa a TRUE quando l'istruzione viene eseguita. Se si esegue l'istruzione mentresys_bIsEthernetInitializing è TRUE, si verifica un errore.
Quando questa istruzione è stata eseguita correttamente, le variabili di sistema sys_bIsCarry e sys_iEthernetConnectionErrorCode vengono resettate.
Quando si verifica un errore, controllare la variabile di sistema sys_iEthernetConnectionErrorCode per verificare il numero di codice di errore.
se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.
se l'istruzione viene eseguita in un programma di interrupt
se il sistema sincronizza la data e l'ora con il server NTP.
se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.
se l'istruzione viene eseguita in un programma di interrupt
se il sistema sincronizza la data e l'ora con il server NTP.
se l'istruzione viene eseguita durante l'inizializzazione di Ethernet, sys_iEthernetConnectionErrorCode viene impostato su "11: Ethernet viene inizializzato".
All input and output variables used for programming this function have been declared in the POU header.The same POU header is used for all programming languages.
VAR
sSynchronizeTime: STRING[32]:='DAY=1130,WEEK=62345,MONTH=280200';
bIsError: BOOL:=FALSE;
bEnable: BOOL:=FALSE;
END_VAR
When the system variable sys_bIsEthernetInitializing is FALSE and the variable bEnable is set to TRUE, the function is carried out.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,sys_bIsEthernetInitializing,6,2,8,4,N);
B(B_CONTACT,,bEnable,14,2,16,4,);
B(B_F,FP_NTP_SET_SYNCHRONIZE_TIME!,,22,1,38,5,,?DEN?DsSynchronizeTime?AENO?AbError);
B(B_VARIN,,sSynchronizeTime,20,3,22,5,);
B(B_VAROUT,,bIsError,38,3,40,5,);
L(1,0,1,5);
L(1,3,6,3);
L(8,3,14,3);
L(16,3,22,3);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
if NOT (sys_bIsEthernetInitializing) AND (bEnable) then
FP_NTP_SET_SYNCHRONIZE_TIME(sSynchronizeTime := sSynchronizeTime,
bError => bIsError);
end_if;