Description de la fonction

Utilisez le bloc fonction S_RD_ETH_MX conjointement avec le bloc fonction S_WR_ETH_MX pour effectuer un transfert de données de sécurité entre des CPU de sécurité équipées du micrologiciel de version 3.10 ou antérieure. Chaque UC de sécurité permet d'isoler les données de sécurité des données de processus en transmettant des données via une zone globale, accessible depuis la zone de sécurité et la zone de processus. De cette manière, les fonctions de processus n'affectent pas directement les données de sécurité.

Avec le bloc fonction S_RD_ETH_MX, un PAC récepteur peut copier les données provenant de la zone de processus dans la zone de sécurité, et vérifier leur exactitude.

EN et ENO peuvent être configurés en tant que paramètres supplémentaires.

Le bloc fonction S_RD_ETH_MX :

  • copie les données du registre INPUT_DATA dans le registre OUTPUT_DATA_SAFE à condition que les tests soient concluants :

    • Le bloc fonction vérifie la redondance cyclique (CRC) du dernier paquet de données reçu, par messagerie explicite via Modbus TCP. Si le CRC est incorrect, les données sont considérées comme non sûres et ne sont pas inscrites dans le registre OUTPUT_DATA_SAFE de la zone de sécurité.

    • Le bloc fonction vérifie les dernières données reçues pour savoir si elles sont postérieures à celles inscrites dans le registre OUTPUT_DATA_SAFE de la zone de sécurité (en comparant les horodatages). Si les dernières données reçues ne sont pas plus récentes, elles ne sont pas copiées dans le registre OUTPUT_DATA_SAFE de la zone de sécurité.

  • vérifie l'âge des données dans la zone de sécurité. Si l'âge est supérieur à la valeur maximale configurable définie dans le registre d'entrée SAFETY_CONTROL_TIMEOUT, les données sont déclarées non sûres et le bit HEALTH est défini sur 0.

    NOTE : L'âge des données correspond à la différence entre l'heure à laquelle elles sont calculées dans le PAC émetteur et l'heure à laquelle elles sont vérifiées dans le PAC récepteur. La référence horaire est mise à jour régulièrement en fonction de l'heure reçue d'un serveur NTP.

    Si le bit HEALTH est réglé sur 0, les données disponibles dans le tableau OUTPUT_DATA_SAFE sont considérées comme non sûres. Vous devez alors prendre les mesures qui s'imposent.

Concevez votre application de telle sorte que le bloc fonction dérivé S_RD_ETH_MX soit appelé à chaque cycle de la tâche SAFE du PAC récepteur et exécuté avant que les données ne soient utilisées au cours de ce cycle.

NOTE : Pour plus d'informations, reportez-vous au chapitre Communications poste à poste.

Représentation en FBD

Représentation :

Paramètres d'entrée

Description des paramètres d'entrée :

Paramètre

Type de données

Signification

INPUT_DATA

ARRAY[0..99] of INT

Tableau des variables de données reçues dans la zone mémoire globale par messagerie explicite via Modbus TCP. Tableau constitué de « Données de sécurité utilisateur » (indice 0 à 90) et de « Données réservées » (indice 91 à 99).

NOTE : Définissez ces variables de données comme variables d'entrée partagées, correspondant chacune à une variable globale équivalente, à l'aide de l'onglet Interface de données de sécurité de Control Expert.

ID

INT

Identifiant de communication. Valeur ID unique utilisée pour calculer le CRC, définie sur la valeur utilisée par l'expéditeur.

NOTE : Attribuez une valeur unique au paramètre ID qui identifie la communication poste à poste sécurisée entre un émetteur et un récepteur.

SAFETY_CONTROL_TIMEOUT

UINT

Valeur de timeout (en ms). Permet de vérifier l'âge des données de la zone de sécurité pour déterminer si elles doivent être considérées comme sûres ou non.

Consultez la section Calcul d'une valeur SAFETY_CONTROL_TIMEOUT, ci-dessous.

Paramètres de sortie

Description des paramètres de sortie :

Paramètre

Type de données

Signification

OUTPUT_DATA_SAFE

ARRAY[0..99] of INT

Tableau des variables de données de sécurité. Ce tableau est constitué de "données de sécurité utilisateur" (indices 0 à 90) et de "données réservées" (indices 91 à 99).

SYNCHRO_NTP

BOOL

  • 1 : Indique que la synchronisation horaire NTP est opérationnelle.

  • 0 : Indique que la synchronisation horaire NTP n'est pas opérationnelle.

NEW

BOOL

  • 1 : Indique qu'un nouvel ensemble de données a été actualisé dans OUTPUT_DATA_SAFE pendant le cycle en cours.

  • 0 : Indique qu'aucune nouvelle donnée de sécurité n'a été actualisée.

HEALTH

BOOL

  • 1 : Indique que les données de la zone Données de sécurité utilisateur sont sûres.

  • 0 : Indique que les données de la zone Données de sécurité utilisateur ne sont pas sûres.

TIME_DIFF

INT

Renvoie l'âge (en millisecondes) des données reçues et inscrites dans le paramètre de sortie OUTPUT_DATA_SAFE.

Réglé sur -1 si l'heure NTP interne n'est pas initialisée ou si aucune donnée correcte n'a encore été reçue.

Description des tableaux INPUT_DATA et OUTPUT_DATA_SAFE

Les données du tableau INPUT_DATA proviennent de la zone mémoire des données de processus. Le tableau OUTPUT_DATA_SAFE contient des variables de sécurité. Vous pouvez associer les variables de processus et les variables de sécurité à l'aide des onglets Interface de données de sécurité et Interface de données de processus de Control Expert.

Les tableaux INPUT_DATA et OUTPUT_DATA_SAFE sont composés de deux zones :

  • La zone Données de sécurité utilisateur contient les données utilisateur. Cette zone commence à l'indice 0 et se termine à l'indice 90.

  • La zone Données réservées est réservée aux données de diagnostic générées automatiquement, dont la valeur CRC et l'horodatage. Le PAC récepteur utilise cette information d'horodatage pour déterminer si les données de la zone Données de sécurité utilisateur sont sûres ou non. Cette zone commence à l'indice 91 et se termine à l'indice 99.

    NOTE : Il est déconseillé d'inscrire des données dans la zone Données réservées, sous peine d'écraser les données de diagnostic automatiquement générées.

Représentation de la structure des tableaux (array[0..99] of INT) INPUT_DATA et OUTPUT_DATA_SAFE :

Calcul d'une valeur SAFETY_CONTROL_TIMEOUT

Tenez compte des points suivants pour calculer une valeur SAFETY_CONTROL_TIMEOUT :

  • Valeur minimale : SAFETY_CONTROL_TIMEOUT > T1

  • Valeur recommandée : SAFETY_CONTROL_TIMEOUT > 2 * T1

T1 = Temps de cycle MAST UCémettrice + Temps de cycle SAFE UCémettrice + Période de répétition + Délai de transmission réseau + Temps de cycle MAST UCréceptrice + Temps de cycle SAFE UCréceptrice

Où :

  • Temps de cycle MAST UCémettrice correspond au temps de cycle MAST du PAC émetteur.

  • Temps de cycle SAFE UCémettrice correspond au temps de cycle SAFE du PAC émetteur.

  • Période de répétition correspond à la période pendant laquelle le scrutateur d'E/S transmet la requête du PAC émetteur au PAC récepteur.

  • Délai de transmission réseau correspond au délai nécessaire pour que les données soient transmises du PAC émetteur au PAC récepteur sur le réseau Ethernet.

  • Temps de cycle MAST UCréceptrice correspond au temps de cycle MAST du PAC récepteur.

  • Temps de cycle SAFE UCréceptrice correspond au temps de cycle SAFE du PAC récepteur.

La valeur attribuée au paramètre SAFETY_CONTROL_TIMEOUT a une incidence directe sur la fiabilité et la disponibilité de la communication poste à poste sécurisée. Lorsque la valeur SAFETY_CONTROL_TIMEOUT dépasse trop largement T1, la communication peut connaître des retards (à cause du réseau, par exemple) ou des données corrompues peuvent être transmises.

C'est à vous de configurer votre réseau Ethernet de manière que la charge n'entraîne pas un retard excessif sur le réseau lors de la transmission de données, sous peine de dépasser le délai imparti. Pour éviter que les communications poste à poste sécurisées ne subissent des retards excessifs dus à la transmission de données non sûres sur le même réseau, il est conseillé d'utiliser un réseau Ethernet dédié pour le protocole poste à poste sécurisé.

Lors de la mise en service du projet, estimez les performances des communications poste à poste sécurisées en vérifiant les valeurs du paramètre de sortie TIME_DIFF et en évaluant le temps restant en fonction du paramètre SAFETY_CONTROL_TIMEOUT.

Description du bit HEALTH

Lorsque le bit HEALTH est à :

  • 1 : L'intégrité des données est correcte (CRC) et l'âge des données est inférieur à la valeur définie dans le registre d'entrée SAFTETY_CONTROL_TIMEOUT.

    NOTE : L'âge des données correspond à l'écart entre :
    • le début du cycle de calcul des données dans le PAC émetteur et

    • le début du cycle de vérification des données dans le PAC récepteur.

  • 0 : Aucune nouvelle donnée valide n'a été reçue dans l'intervalle indiqué (la temporisation est écoulée et le bit HEALTH est réglé sur 0).

    NOTE : Lorsque le bit HEALTH est à 0, les données du tableau de sortie OUTPUT_DATA_SAFE sont considérées comme non sûres. Prenez alors les mesures qui s'imposent.