CODESYS Virtual Safe Time Provider
El CODESYS Virtual Safe Time Provider es una interfaz estándar que el usuario puede utilizar para transferir una segunda base de tiempo externa al CODESYS Virtual Safe Control.
La implementación se realiza como cliente, el cual debe ejecutarse en otro sistema con una base de tiempo independiente.
Instalación
El CODESYS Virtual Safe Time Provider SL se instala a través de CODESYS Control SL Deploy Tool Para más información, consulte: Escenario «The Safe House»: vPLC + vSafe + PROFIsafe + Time Provider + Servidor de licencias.
Importante
El CODESYS Virtual Safe Time Provider SL no debe ejecutarse en el mismo host que el CODESYS Virtual Safe Control SL.
Funcionalidad
El Time Provider sirve como una segunda fuente de tiempo para el CODESYS Virtual Safe Control SL y envía una marca de tiempo como mensaje a través de la red en un intervalo definido.
Este mensaje puede luego ser recibido y evaluado por varios receptores (CODESYS Virtual Safe Controll SL, redundant Time Provider).
El CODESYS Virtual Safe Control SL ejecuta la aplicación con un tiempo de ciclo definido donde debe llegar al menos una marca de tiempo de un temporizador externo.
Importante
El intervalo de envío del Time Provider debe configurarse para que sea menos de la mitad del tiempo de ciclo de la aplicación.

Para aumentar la estabilidad debido a problemas de red o programación del Time Provider y así el CODESYS Virtual Safe Control SL, el Time Provider puede ejecutarse de forma redundante.
Se distinguen dos tipos:
Time Provider redundancia
En el caso de Time Provider redundancia, dos Time Provider Las instancias se ejecutan en dos hosts independientes. Una instancia actúa como remitente activo y la otra supervisa pasivamente el envío de las marcas de tiempo.
En cuanto el envío de la marca de tiempo de la instancia activa se retrasa o no se realiza, la instancia pasiva asume inmediatamente el envío con el último desplazamiento conocido de la instancia activa. Esto significa que no hay fallos de... CODESYS Virtual Safe Control SL. Es importante que ambas instancias se ejecuten en la misma red. Solo así la instancia pasiva podrá monitorear los mensajes enviados por la instancia activa.

Importante
Si un activo Time Provider en una red detecta otra instancia activa en el bus, entonces la instancia con la dirección IP de mayor prioridad permanece activa y todas las demás instancias pasan al modo pasivo.
Redundancia de red
En el caso de redundancia de red, la Time Provider Cada instancia utiliza su propia red, a diferencia de Time Provider redundancia. Sin embargo, es necesario para el pasivo Time Provider instancia para recibir los mensajes de la instancia activa para hacerse cargo del envío en caso de retraso o falla.

Importante
La redundancia de red aún no se ha implementado.
Configuración
Opción | Descripción | Valor predeterminado |
---|---|---|
| Dirección IP de destino | 127.0.0.1 (host local) |
| Puerto de destino | 60000 |
| Intervalo de envío del Time Provider marca de tiempo en [ms] | 3 |
| Prioridad de programación SCHED_FIFO | 55 |
| Fijación de CPU Todos los subprocesos están anclados a una CPU definida, comenzando con el valor 0. | 0 |
| Modo de redundancia | Desactivado |
| Registro de la | Desactivado |
| Intervalo de diagnóstico en [s] | 60 |
Importante
El valor predeterminado de la dirección IP es 127.0.0.1 (localhost). Debe usar este valor solo para la puesta en marcha y las pruebas. Time Provider proporciona una base de tiempo independiente y, por lo tanto, no debe operarse localmente. Si utiliza el valor predeterminado, Time Provider emite una advertencia.
Diagnóstico
Los errores que pueden ocurrir al evaluar las marcas de tiempo en la página del CODESYS Virtual Safe Control SL:
El puerto configurado ya está en uso.
Si el puerto configurado ya está en uso y no se puede abrir, se emite el siguiente mensaje:
Could not open port <Port number> it is already in use!
El envío de la marca de tiempo en la instancia activa se retrasa o no se realiza.
Si una marca de tiempo del remitente activo se retrasa o no se envía y una pasiva Time Provider La instancia se hace cargo del envío, luego se emite el siguiente mensaje de diagnóstico:
Started sending: take over from higher priority time provider <priority>
Cuando la prioridad más alta Time Provider La instancia está disponible nuevamente y se hace cargo del envío de la instancia pasiva anterior, se emite el siguiente mensaje:
Stopped sending: higher priority time provider is active: <priority>
Estadísticas cíclicas sobre las marcas de tiempo (instancia activa/remitente)
Las estadísticas de las marcas de tiempo enviadas se emiten en el intervalo configurado (
-stat_print_time
Opción) con resolución de microsegundos [us]. Se emite el intervalo de envío mínimo y máximo, así como un valor promedio durante el período configurado:Statistics: min: <minimum sending interval>, max: <maximum sending interval>, avg: <average sending interval> - send time interval
Estadísticas cíclicas sobre las marcas de tiempo (instancia pasiva/receptor)
Debido a que la instancia pasiva recibe las marcas de tiempo enviadas por la instancia activa, la información recibida se puede evaluar para fines de diagnóstico.
Las estadísticas se emiten en el intervalo configurado (
-stat_print_time
Opción) con resolución en microsegundos [us] y porcentajes [%]. Se emite el intervalo mínimo y máximo, así como un valor promedio durante el período configurado: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
Contador de mensajes perdidos
Si la instancia activa no envía una marca de tiempo, se incrementa un contador y se genera:
Statistics: lost messages: <number of lost messages>