Skip to main content

CODESYS Virtual Safe Time Provider

Le CODESYS Virtual Safe Time Provider est une interface standard que l'utilisateur peut utiliser pour transférer une seconde base de temps externe vers le CODESYS Virtual Safe Control.

L'implémentation est réalisée en tant que client, qui doit s'exécuter sur un autre système avec une base de temps indépendante.

Installation

Le CODESYS Virtual Safe Time Provider SL est installé via le CODESYS Control SL Deploy Tool Pour plus d'informations, voir : Scénario « The Safe House » : vPLC + vSafe + ProfiSafe + Time Provider + Serveur de licences.

Important

Le CODESYS Virtual Safe Time Provider SL ne doit pas s'exécuter sur le même hôte que le CODESYS Virtual Safe Control SL.

Fonctionnalité

Le Time Provider sert de deuxième source temporelle pour le CODESYS Virtual Safe Control SL et envoie un horodatage sous forme de message via le réseau à un intervalle défini.

Ce message peut ensuite être reçu et évalué par différents récepteurs (CODESYS Virtual Safe Controll SL, redondant Time Provider).

Le CODESYS Virtual Safe Control SL exécute l'application avec un temps de cycle défini où au moins un horodatage provenant d'un temporisateur externe doit arriver.

Important

L'intervalle d'envoi du Time Provider doit être configuré pour être inférieur à la moitié du temps de cycle de l'application.

_rtsl_img_time_provider1.png

Pour augmenter la stabilité en raison de problèmes de réseau ou de planification du Time Provider et donc le CODESYS Virtual Safe Control SL, le Time Provider peut être exécuté de manière redondante.

On distingue deux types.

Time Provider redondance

Dans le cas d Time Provider redondance, deux Time Provider Les instances s'exécutent sur deux hôtes indépendants. L'une agit comme expéditeur actif, tandis que l'autre surveille passivement l'envoi des horodatages.

Dès que l'envoi de l'horodatage de l'instance active est retardé ou n'a pas lieu, l'instance passive prend immédiatement le relais avec le dernier décalage connu de l'instance active. Cela signifie qu'il n'y a pas d'échec. CODESYS Virtual Safe Control SL. Il est important que les deux instances fonctionnent sur le même réseau. C'est seulement ainsi que l'instance passive peut surveiller les messages envoyés par l'instance active.

_rtsl_img_time_provider2.png

Important

Si un actif Time Provider dans un réseau détecte une autre instance active sur le bus, alors l'instance avec l'adresse IP de priorité la plus élevée reste active et toutes les autres instances passent en mode passif.

Redondance du réseau

Dans le cas de la redondance du réseau, le Time Provider les instances utilisent chacune leur propre réseau, contrairement à Time Provider redondance. Néanmoins, il est nécessaire pour le passif Time Provider instance pour recevoir les messages de l'instance active afin de prendre le relais de l'envoi en cas de retard ou de panne.

_rtsl_img_time_provider3.png

Important

La redondance du réseau n’a pas encore été mise en œuvre.

Configuration

Option

Description

Valeur par défaut

-a/--address

Adresse IP cible

127.0.0.1 (hôte local)

-p/--port

Port cible

60000

-c/--cycletime

Intervalle d'envoi du Time Provider horodatage en [ms]

3

-P/--priority

Priorité de planification SCHED_FIFO

55

-C/--cpu_pin

Brochage du processeur

Tous les threads sont épinglés à un processeur défini, en commençant par la valeur 0.

0

-r/--redundancy

Mode de redondance

Désactivé

-s/--syslog

Enregistrement de la syslog à /dev/log

Désactivé

--stat_print_time

Intervalle de diagnostic en [s]

60

Important

La valeur par défaut de l'adresse IP est 127.0.0.1 (localhost). Vous ne devez utiliser cette valeur que pour la mise en service et les tests. Time Provider fournit une base de temps indépendante et ne doit donc pas être exploité localement. Si vous utilisez la valeur par défaut, Time Provider émet un avertissement.

Diagnostic

Les erreurs qui peuvent survenir lors de l'évaluation des horodatages sur la page du CODESYS Virtual Safe Control SL:

  • Le port configuré est déjà utilisé.

    Si le port configuré est déjà utilisé et ne peut pas être ouvert, le message suivant est émis :

    Could not open port <Port number> it is already in use!

  • L'envoi de l'horodatage dans l'instance active est retardé ou n'a pas lieu.

    Si un horodatage de l'expéditeur actif est retardé ou n'est pas envoyé et un horodatage passif Time Provider l'instance prend le relais de l'envoi, puis le message de diagnostic suivant est émis :

    Started sending: take over from higher priority time provider <priority>

    Lorsque la priorité la plus élevée Time Provider l'instance est à nouveau disponible et reprend l'envoi de l'ancienne instance passive, le message suivant est émis :

    Stopped sending: higher priority time provider is active: <priority>

  • Statistiques cycliques sur les horodatages (instance active/expéditeur)

    Les statistiques relatives aux horodatages envoyés sont émises à l'intervalle configuré (-stat_print_time option) en microsecondes [us]. L'intervalle d'envoi minimal et maximal est indiqué, ainsi qu'une valeur moyenne sur la période configurée :

    Statistics: min: <minimum sending interval>, max: <maximum sending interval>, avg: <average sending interval> - send time interval

  • Statistiques cycliques sur les horodatages (instance passive/récepteur)

    Étant donné que l’instance passive reçoit les horodatages envoyés par l’instance active, les informations reçues peuvent être évaluées à des fins de diagnostic.

    Les statistiques sont émises à l'intervalle configuré (-stat_print_time (option) avec une résolution en microsecondes [us] et en pourcentages [%]. L'intervalle minimum et maximum est affiché, ainsi qu'une valeur moyenne sur la période configurée :

    _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

  • Compteur de messages perdus

    Si un horodatage n'est pas envoyé par l'instance active, un compteur est incrémenté et affiché :

    Statistics: lost messages: <number of lost messages>