Conception de l'architecture

Avec un micrologiciel d'UC de version 3.10 ou antérieure, l'architecture de la solution repose sur les éléments suivants :

  • Service NTP pour la synchronisation temporelle.

  • Exécution de 2 DFB (S_WR_ETH_MX et MOVE dans le PAC émetteur et de 1 DFB (S_RD_ETH_MX) dans le PAC récepteur.

  • Scrutation via Modbus TCP pour le transport des données.

L'illustration suivante donne un aperçu du processus impliqué pour assurer la communication d'égal à égal de façon sécurisée :

Dans la figure ci-dessus, Control Expert crée automatiquement – et masque dans la vue externe – les tableaux 1 et 4 dans les zones globales des PAC homologues. Du point de vue d’un utilisateur, les liaisons sont établies du tableau Array 0 à Array 2, et du tableau Array 3 à Array 5.

NOTE : Sur le réseau Ethernet, vous êtes autorisé à mélanger des données liées à la sécurité et des données hors sécurité sans impacter le niveau de sécurité des premières. Aucune restriction ne s'applique au réseau Ethernet lorsque la communication d'égal à égal sécurisée est utilisée.

Détails de la configuration du transfert de données d'égal à égal

L'exemple suivant montre comment configurer un transfert de données d'égal à égal entre deux PAC de sécurité avec le micrologiciel d'UC de version 3.10 ou antérieure et Control Expert version 14.1 ou antérieure :

Etape

Action

1

Sur le PAC émetteur, utilisez l'Editeur de données de processus pour créer un tableau (array) de 100 entiers comme entrée dans la zone Interface. Dans cet exemple, le nom du tableau est Array2 :

2

Sur le PAC émetteur, créez un autre tableau de 100 entiers comme sortie dans l'onglet Interface de l'Editeur de données de sécurité et liez-le au tableau d'entrée créé à l'étape 1 dans la colonne Paramètre effectif. Dans cet exemple, le nom du tableau est Array0 :

NOTE : Les variables entières d'indices 0 à 90 de ce tableau contiennent les valeurs de variables de sécurité à échanger avec le PAC récepteur. La zone restante est réservée aux données de diagnostic générées automatiquement, dont la valeur CRC et l'horodatage. Ces données de diagnostic sont utilisées par le PAC récepteur pour déterminer si les données transférées sont sûres.

3

Sur le PAC émetteur, configurez le DFB S_WR_ETH_MX dans une section de la tâche SAFE. Liez ce DFB à Array0 :

4

Dans le Navigateur de DTM du PAC émetteur, sélectionnez l'UC (pour cet exemple) ou un module de communications NOC (le cas échéant), puis cliquez sur Ajouter... pour créer un scrutateur Modbus qui puisse envoyer des données via Modbus TCP depuis le PAC émetteur vers le PAC récepteur :

5

Sélectionnez Equipement Modbus et cliquez sur Ajouter un DTM pour ajouter le scrutateur Modbus :

6

Ouvrez l'équipement Modbus que vous venez d'ajouter, ajoutez une requête, puis effectuez les actions suivantes dans l'onglet Configuration de requête :

  • Affectez la valeur 100 à la colonne Longueur (écriture) (il s'agit de la longueur des données à écrire), puis

  • Renseignez la colonne Adresse (écriture) . Il s'agit de l'adresse à laquelle la table du PAC récepteur va écrire les données reçues (dans cet exemple : 0, ce qui signifie que le PAC émetteur va écrire dans la table à partir de %MW0 sur le PAC récepteur).

7

Sélectionnez le noeud Requête 001 : Eléments puis, dans l'onglet Sortie, définissez le type de tableau INT (soit ≥ 100 entiers). Il s'agit de la table du PAC émetteur qui sera écrite sur le PAC récepteur :

8

Une fois la configuration enregistrée et générée, le bloc (BLOCKA_QI0_100 dans l'exemple) est créé automatiquement en tant que variable de processus :

9

Sur le PAC émetteur, dans une section de code de processus, utilisez un DFB MOVE pour copier le contenu de Array2 vers le tableau défini précédemment dans la structure d'équipement Modbus :

10

Sur le PAC récepteur, utilisez l'Editeur de données de sécurité pour créer un tableau de 100 entiers (Array5) en tant qu'entrée dans la zone Interface :

11

Sur le PAC récepteur, dans l'Editeur de données de processus, créez un tableau (Array3) de 100 INT dans la section <sorties> de l'onglet Interface . Liez ce tableau au tableau de la zone des données (Array5, créé à l'étape 10) dans la colonne Paramètre effectif . Les données envoyées par le PAC émetteur seront écrites dans ce tableau via le scrutateur Modbus, à condition que cette variable soit située à l'adresse définie dans le scrutateur du PAC émetteur (%MW0 dans cet exemple) :

12

Sur le PAC récepteur, utilisez l'Editeur de données de sécurité pour créer un tableau de 100 entiers (Array6) :

13

Sur le PAC récepteur, dans une section de code de la tâche SAFE, instanciez le DFB S_RD_ETH_MX avec le tableau créé à l'étape 10 (Array5) comme paramètre d'entrée et le tableau créé à l'étape 12 (Array6) comme paramètre de sortie :

Communication d'égal à égal par canal noir

Chaque transmission de données d'égal à égal se compose à la fois de données de sécurité utilisateur, comprenant le contenu lié à l'application qui est transmis, et de données réservées. Les données réservées sont utilisées par le PAC de sécurité pour tester la fiabilité de la transmission par rapport aux exigences du niveau SIL3. Elles comprennent les éléments suivants :

  • CRC calculé par le PAC émetteur à partir des données à transmettre. Le PAC récepteur vérifie le CRC avant d'utiliser les données transmises.

  • Identifiant de communication inclus dans le calcul de CRC, afin de favoriser la prévention des attaques par insertion et déguisement de bits lors de la transmission de données de sécurité.

  • Horodatage de la transmission à la milliseconde près. Cette valeur s'appuie sur le service NTP et permet de synchroniser les PAC émetteur et récepteur. Le PAC émetteur de données ajoute une valeur d'horloge aux données envoyées au PAC récepteur. Le PAC récepteur compare l'horodatage reçu à sa propre valeur d'horloge, aux fins suivantes :

    • Vérifier l'ancienneté des données.

    • Rejeter les transmissions en double.

    • Déterminer l'ordre chronologique des transmissions reçues.

    • Déterminer le temps écoulé entre réceptions de données transmises.