Conception de l'architecture

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

  • Exécution de 2 DFB (S_WR_ETH_MX2 et MOVE) dans le PAC émetteur et de 2 DFB (S_RD_ETH_MX2 et MOVE) dans le PAC récepteur.

  • Scrutation via Modbus TCP pour le transport des données sécurisées de l'émetteur vers le récepteur.

  • Scrutation via Modbus TCP pour le transport des données de contrôle du récepteur vers l'émetteur.

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 précédente, Control Expert crée automatiquement - et cache à toute vue externe – Array1 et Array4 dans les zones globales des PAC homologues. Du point de vue d'un utilisateur, les liaisons sont établies de Array0 à Array2 et de Array3 à Array5.

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.20 ou ultérieure et Control Expert 15.0 ou supérieur :

Etape

Action

1

Sur le PAC émetteur, utilisez l'Editeur de données de processus pour créer un tableau de 100 entiers (Array2) en tant qu'entrée dans la zone Interface. Dans le même Editeur de données de processus, créez un tableau de 4 entiers (CtrlData2) en tant que sortie dans la zone Interface.

Les données de contrôle envoyées par le PAC récepteur seront écrites dans le tableau CtrlData2 via le scrutateur Modbus, à condition que cette variable CtrlData2 soit située à l'adresse définie dans le scrutateur du PAC émetteur (%MW100 dans cet exemple - voir l'étape 4) :

2

Sur le PAC émetteur, utilisez l'Editeur de données de sécurité pour créer un autre tableau de 100 entiers (Array0) en tant que sortie dans la zone Interface et liez ce tableau au tableau process.Array2 (créé à l'étape 1) dans la colonne Paramètre effectif.

Dans le même Editeur de données de sécurité , créez un tableau de 4 entiers (CtrlData0) en tant qu'entrée dans la zone de sécurité Interface et liez ce tableau au tableau process.CtrlData2 (créé à l'étape 1) dans la colonne Paramètre effectif.

NOTE : Les variables de type entier indexées de 0 à 90 dans le tableau contiennent les valeurs des variables de sécurité que vous souhaitez é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_MX2 dans une section de la tâche SAFE. Liez ce DFB à Array0 et CtrlData0 :

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 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 cet exemple) est automatiquement créé 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 du tableau "tab_p" vers le tableau défini plus haut dans la structure de l'é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.

Dans le même Editeur de données de sécurité , créez un tableau de 4 entiers (CtrlData5) en tant que sortie dans la zone Interface.

11

Sur le PAC récepteur, utilisez l'Editeur de données de sécurité pour créer un tableau de 100 entiers (Array3) en tant que sortie de la zone Interface. Liez le tableau Array3 au tableau Array5 (créé à l'étape 10) dans la colonne Paramètre effectif. Les données en provenance du PAC émetteur seront écrites dans le tableau Array3 via le scrutateur Modbus, à condition que Array3 soit situé à l'adresse définie dans le scrutateur du PAC émetteur (%MW0 dans cet exemple).

Dans le même Editeur de données de processus , créez un tableau de 4 entiers (CtrlData3) en tant qu'entrée dans la zone Interface. Liez le tableau CtrlData3 au tableau CtrlData5 (créé à l'étape 10) dans la colonne Paramètre effectif.

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_MX2 avec le tableau créé à l'étape 10 (Array5) en tant que paramètre d'entrée et avec les tableaux créés à l'étape 10 (CtrlData5) et à l'étape 12 (Array6) en tant que paramètres de sortie :

14

Sur le PAC récepteur, répétez les étapes 4 à 9 pour configurer une communication de 4 entiers en vue d'envoyer le tableau CtrlData2 du PAC récepteur vers le PAC émetteur.

Dans cet exemple, les données CtrlData doivent être écrites sur le PAC émetteur à l'adresse %MW100.

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. Avec le micrologiciel d'UC de version 3.20 ou ultérieure, cet horodatage est la valeur horaire sécurisée fournie par l'UC du 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.