Skip to main content

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.

_rtsl_img_time_provider1.png

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.

_rtsl_img_time_provider2.png

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.

_rtsl_img_time_provider3.png

Importante

La ridondanza di rete non è ancora stata implementata.

Configurazione

Opzione

Descrizione

Valore predefinito

-a/--address

Indirizzo IP di destinazione

127.0.0.1 (host locale)

-p/--port

Porto di destinazione

60000

-c/--cycletime

Intervallo di invio del Time Provider timestamp in [ms]

3

-P/--priority

Priorità di pianificazione SCHED_FIFO

55

-C/--cpu_pin

Pinning della CPU

Tutti i thread sono associati a una CPU definita, a partire dal valore 0.

0

-r/--redundancy

Modalità di ridondanza

Disabili

-s/--syslog

Registrazione del syslog A /dev/log

Disabili

--stat_print_time

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:

    _rtsl_img_time_provider4.png

    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>