Questa funzione accelera o rallenta la frequenza dell'RTC per controllare l'applicazione per la compensazione RTC, in funzione dell'ambiente operativo (temperatura, ...). Il valore di compensazione è specificato in secondi per settimana. Può essere positivo (accelerazione) o negativo (rallentamento).
Per la rappresentazione generale in linguaggio IL o ST, fare riferimento al capitolo Rappresentazione di funzioni e blocchi funzione.
Questa tabella descrive i parametri di ingresso:
Ingressi |
Tipo |
Commento |
---|---|---|
RtcDrift |
SINT (-29..29) |
Correzione in secondi per settimana (−29 - +29). |
La seguente tabella descrive la variabile di uscita:
Uscita |
Tipo |
Commento |
---|---|---|
SetRTCDrift |
Restituisce RTC_OK (00 hex) se il comando è corretto; altrimenti restituisce il codice ID dell'errore rilevato. |
In questo esempio, la funzione è chiamata solo una volta durante il primo ciclo del task MAST. Accelera l'RTC di 4 sec alla settimana (18 sec al mese).
VAR
MyRTCDrift : SINT (-29..+29) := 0;
MyDay : sec.DAY_OF_WEEK;
MyHour : sec.HOUR;
MyMinute : sec.MINUTE;
END_VAR
IF IsFirstMastCycle() THEN
MyRTCDrift := 4;
MyDay := 0;
MyHour := 0;
MyMinute := 0;
SetRTCDrift(MyRTCDrift, MyDay, MyHour, MyMinute);
END_IF