CODESYS Virtual Safe Time Provider
IL CODESYS Virtual Safe Time Provider è un'interfaccia standard che l'utente può utilizzare per trasferire una seconda base temporale esterna al CODESYS Virtual Safe Control.
L'implementazione avviene come client, che deve essere eseguito su un altro sistema con una base temporale indipendente.
Installazione
IL CODESYS Virtual Safe Time Provider SL viene installato tramite CODESYS Control SL Deploy Tool Per ulteriori informazioni, vedere: Scenario «La casa sicura»: vPLC + vSafe + PROFIsafe + Time Provider + License Server.
Importante
IL CODESYS Virtual Safe Time Provider SL non deve essere eseguito sullo stesso host del CODESYS Virtual Safe Control SL.
Funzionalità
IL Time Provider serve come una seconda fonte temporale per il CODESYS Virtual Safe Control SL e invia un timestamp come messaggio tramite la rete a intervalli definiti.
Questo messaggio può quindi essere ricevuto e valutato da diversi ricevitori (CODESYS Virtual Safe Controll SL, ridondante Time Provider).
IL CODESYS Virtual Safe Control SL esegue l'applicazione con un tempo di ciclo definito in cui deve arrivare almeno un timestamp da un timer esterno.
Importante
L'intervallo di invio del Time Provider dovrebbe essere configurato in modo da essere inferiore alla metà del tempo di ciclo dell'applicazione.

Per aumentare la stabilità dovuta a problemi di rete o di programmazione del Time Provider e quindi il CODESYS Virtual Safe Control SL, il Time Provider può essere eseguito in modo ridondante.
Si distingue tra due tipi.
Time Provider ridondanza
In caso di Time Provider ridondanza, due Time Provider Le istanze vengono eseguite su due host indipendenti. Un'istanza funge da mittente attivo e l'altra monitora passivamente l'invio dei timestamp.
Non appena l'invio del timestamp dell'istanza attiva viene ritardato o non avviene, l'istanza passiva subentra immediatamente nell'invio con l'ultimo offset noto dell'istanza attiva. Ciò significa che non si verificano errori di CODESYS Virtual Safe Control SL. È importante che entrambe le istanze funzionino sulla stessa rete. Solo allora l'istanza passiva può monitorare i messaggi inviati dall'istanza attiva.

Importante
Se un attivo Time Provider in una rete rileva un'altra istanza attiva sul bus, quindi l'istanza con l'indirizzo IP di priorità più alta rimane attiva e tutte le altre istanze passano in modalità passiva.
Ridondanza di rete
In caso di ridondanza di rete, il Time Provider le istanze utilizzano ciascuna la propria rete, a differenza di Time Provider ridondanza. Tuttavia, è necessario che il passivo Time Provider istanza per ricevere i messaggi dall'istanza attiva in modo da subentrare nell'invio in caso di ritardo o errore.

Importante
La ridondanza di rete non è ancora stata implementata.
Configurazione
Opzione | Descrizione | Valore predefinito |
---|---|---|
| Indirizzo IP di destinazione | 127.0.0.1 (host locale) |
| Porto di destinazione | 60000 |
| Intervallo di invio del Time Provider timestamp in [ms] | 3 |
| Priorità di pianificazione SCHED_FIFO | 55 |
| Pinning della CPU Tutti i thread sono associati a una CPU definita, a partire dal valore 0. | 0 |
| Modalità di ridondanza | Disabili |
| Registrazione del | Disabili |
| Intervallo di diagnosi in [s] | 60 |
Importante
Il valore predefinito dell'indirizzo IP è 127.0.0.1 (localhost). Si consiglia di utilizzare questo valore solo per la messa in servizio e i test. Time Provider fornisce una base temporale indipendente e pertanto non deve essere utilizzato localmente. Se si utilizza il valore predefinito, Time Provider emette un avviso.
Diagnosi
Gli errori che possono verificarsi durante la valutazione dei timestamp sulla pagina del CODESYS Virtual Safe Control SL:
La porta configurata è già in uso.
Se la porta configurata è già in uso e non può essere aperta, viene visualizzato il seguente messaggio:
Could not open port <Port number> it is already in use!
L'invio del timestamp nell'istanza attiva è ritardato o non avviene.
Se un timestamp del mittente attivo viene ritardato o non viene inviato e un mittente passivo Time Provider l'istanza prende il controllo dell'invio, quindi viene emesso il seguente messaggio diagnostico:
Started sending: take over from higher priority time provider <priority>
Quando la priorità più alta Time Provider l'istanza è nuovamente disponibile e riprende l'invio dalla precedente istanza passiva, viene emesso il seguente messaggio:
Stopped sending: higher priority time provider is active: <priority>
Statistiche cicliche sui timestamp (istanza attiva/mittente)
Le statistiche per i timestamp inviati vengono emesse all'intervallo configurato (
-stat_print_time
opzione) nella risoluzione di microsecondi [us]. Viene emesso l'intervallo di invio minimo e massimo, nonché un valore medio sul periodo configurato:Statistics: min: <minimum sending interval>, max: <maximum sending interval>, avg: <average sending interval> - send time interval
Statistiche cicliche sui timestamp (istanza passiva/ricevitore)
Poiché l'istanza passiva riceve i timestamp inviati dall'istanza attiva, le informazioni ricevute possono essere valutate a fini diagnostici.
Le statistiche vengono emesse all'intervallo configurato (
-stat_print_time
opzione) nella risoluzione di microsecondi [us] e percentuali [%]. Viene emesso l'intervallo minimo e massimo, nonché un valore medio sul periodo configurato:Statistics: min: <minimum deviation>, max: <maximum deviation>, avg: <average deviation> - remote to sample time deviation
Statistics: min: <minimum sample interval>, max: <maximum sample interval>, avg: <average sample interval> - sample time interval
Statistics: min: <minimum remote interval>, max: <maximum remote interval>, avg: <average remote interval> - remote time interval
Contatore per messaggi persi
Se l'istanza attiva non invia alcun timestamp, un contatore viene incrementato e restituisce il seguente output:
Statistics: lost messages: <number of lost messages>