Skip to main content

Exemples de configuration pour une communication croisée sécurisée

Important

Les exemples répertoriés ici servent uniquement à démontrer la configuration de CODESYS Safety NetVars dans un projet distribué. Ils ne prétendent pas utiliser des POU de sécurité conformément aux spécifications dans un environnement critique pour la sécurité. Pour ce type d'environnement, les instructions du manuel d'utilisation de CODESYS Safety doivent toujours être respectées.

Les exemples suivants se complètent les uns les autres. Dans l'exemple 1, une communication croisée est mise en œuvre entre deux contrôleurs. Dans l'exemple 2, le projet de l'exemple 1 est étendu par un contrôleur. Ce troisième contrôleur est connecté aux deux autres contrôleurs. Le POU de chaque application de sécurité contient un SF_EmergencyStop POU qui, en tant que signal d'entrée, recevrait normalement le signal de sortie d'un interrupteur d'arrêt d'urgence physique. Pour plus de simplicité, ce signal de sortie est simulé dans les exemples par un GVL avec une variable globale. En connectant les interrupteurs d'arrêt d'urgence respectifs aux variables du réseau de sécurité en tant que signal d'entrée du SF_EmergencyStop POU, le SF_EmergencyStop Le POU est également déclenché lorsque le commutateur d'un contrôleur est déclenché dans les contrôleurs connectés via des variables de réseau de sécurité.

Remarques générales sur la configuration des variables du réseau de sécurité dans ces exemples

Important

Avant d'effectuer des modifications sur les objets « Liste des variables du réseau de sécurité (émetteur) » et « Liste des variables du réseau de sécurité (récepteur) », vous devez vous déconnecter de l'application du contrôleur standard correspondant et de l'application de sécurité correspondante. Sinon, les éventuelles modifications dépendantes nécessaires ne pourront pas être effectuées correctement.

. Explication des valeurs de configuration modifiables des listes de variables du réseau de sécurité des exemples
  • Languette: Réseau PLC:

    • Identifiants de liste: Les identifiants de liste sont requis par le protocole NetVarUDP subordonné pour l'attribution de télégrammes et doivent donc être uniques dans le domaine de diffusion pour une paire émetteur-récepteur d'une liste de variables de réseau de sécurité. Les identifiants de liste sont donnés par paires, car une valeur est requise pour chaque direction (émetteur -> récepteur) et une valeur pour la direction (récepteur -> émetteur).

    • Groupe d'identifiants de listes de variables sur l'automate principal (Uniquement pour les listes de variables de réseau de sécurité (expéditeur) : ce groupe définit une plage unique d'identifiants de liste à utiliser pour cette liste de variables de réseau de sécurité pour l'envoi. Les valeurs d'un groupe ne chevauchent pas les valeurs d'un autre groupe.

    • Adresse du réseau de destination:Si l'option de diffusion ne doit pas être utilisée, l'adresse IP du terminal distant avec lequel la communication doit avoir lieu doit être utilisée comme adresse réseau de destination. L'adresse IP du contrôleur avec la liste des variables du réseau de sécurité (expéditeur) doit donc être saisie au niveau du récepteur et l'adresse IP du contrôleur avec la liste des variables du réseau de sécurité (récepteur) au niveau de l'expéditeur.

    • Port: Peut être modifié si nécessaire (par exemple, en raison de routeurs ou de pare-feu). Les exemples supposent qu'aucune modification n'est nécessaire et que la valeur par défaut est conservée. Une paire de connexion (émetteur/récepteur) d'une liste de variables de réseau de sécurité doit utiliser le même port.

  • Languette: Configuration de sécurité (Liste des variables du réseau de sécurité (expéditeur)

    • Adresse de sécurité: Cette adresse doit avoir une valeur unique sur l'ensemble du réseau, car elle est utilisée pour l'identification interne de la connexion (voir : Manuel d'utilisation de la sécurité). Dans l'exemple, on veille donc à ce qu'elle soit unique sur l'ensemble du projet. On suppose qu'aucune variable de réseau de sécurité supplémentaire n'a été configurée dans le même réseau.

    • Nombre maximal de récepteurs: Ce paramètre reste à la valeur par défaut de 4 Dans les exemples, on prévoit un niveau d'extension maximal de quatre contrôleurs intercommunicants. Si cette valeur est modifiée ultérieurement, l'application de sécurité et les applications associées du contrôleur standard doivent être à nouveau téléchargées. L'augmentation de la valeur augmente également la consommation de ressources, car l'émetteur réserve déjà des ressources pour les connexions inutilisées. Par conséquent, la valeur ne doit pas être définie plus haut que nécessaire.

  • Languette: Configuration de sécurité (Liste des variables du réseau de sécurité (récepteur)

    • ID de connexion: Cet ID doit avoir une valeur unique à l'échelle du réseau, car l'ID de connexion : est utilisé pour l'identification interne de la connexion (voir : Manuel d'utilisation de la sécurité). Dans l'exemple, on veille donc à ce qu'il soit unique dans tout le projet. On suppose qu'aucune variable de réseau de sécurité supplémentaire n'a été configurée dans le même réseau.

    • Heure de surveillance: Doit être défini de manière judicieuse pour l'exemple en fonction du système. Pour des exigences ou des restrictions supplémentaires sur la valeur à utiliser, reportez-vous au Manuel d'utilisation de sécurité.

Préparation du projet

Astuce

Pour tester la fonction de variable réseau, l'interrupteur d'arrêt d'urgence physique peut d'abord être simulé au moyen d'un GVL avec un seul SAFEBOOL variable dont la valeur initiale est fixée à TRUE. Au lieu d'actionner un interrupteur physique, la valeur de cette variable peut être modifiée au moyen de la Déboguer → Écrire des valeurs commande afin d'observer la réaction du système global distribué.

  1. Créer un nouveau projet à partir du modèle Projet de sécurité vide avec un contrôleur standard et un contrôleur de sécurité en dessous.

  2. Sélectionnez le point nodal Application de sécurité dans l'arborescence des périphériques et cliquez sur Ajouter un objet → POU étendu (sécurité) dans le menu contextuel.

  3. Saisissez un nom pour le POU dans le champ Ajouter un POU étendu (sécurité) dialogue et sélectionnez PROGRAMME comme le Type de POU. Cliquez ensuite sur Ajouter.

  4. Insérer un SF_EmergencyStop bloc fonctionnel dans le POU ouvert et attribuer la valeur TRUE au Activer entrée.

  5. Ajouter un GVL à Application de sécurité au moyen de la commande Ajouter un objet → Liste des variables globales (sécurité).

  6. Dans ce GVL, déclarez la variable globale Local_EStop de type de données SAFEBOOL avec la valeur initiale de TRUE (qui remplace l'interrupteur d'arrêt d'urgence physique dans l'exemple).

  7. Ajouter un Liste des variables du réseau de sécurité (récepteur) et un Liste des variables du réseau de sécurité (expéditeur) à l'application de sécurité au moyen de la Ajouter un objet commande.

  8. Si nécessaire, modifiez le Heure de surveillance valeur (Liste des variables du réseau de sécurité (récepteur) sur le Configuration de sécurité (tab) de manière à ce que la valeur corresponde au comportement temporel de l'application pour le matériel et les exigences appliqués.

Exemple 1 : Création et configuration d'un dispositif de communication croisée sécurisée en copiant le contrôleur standard avec le contrôleur de sécurité situé en dessous

  1. Ouvrir le POU à partir de Application de sécurité dans le projet et insérez un AND opérateur avant le POU SF_EmergencyStop afin que la sortie de la AND l'opérateur est connecté à l'entrée du POU E_StopIn.

  2. Affecter la variable globale Local_EStop à la première entrée de la AND opérateur.

  3. Dans le POU, déclarez une variable locale bVar_Reset de type de données BOOL et lier ceci à la Reset entrée du POU SF_EmergencyStopCeci est nécessaire pour le débogage.

  4. Afin de préparer le signal de l'interrupteur d'arrêt d'urgence (variable globale Local_EStop) pour la publication au moyen d'une variable de réseau de sécurité (expéditeur), créez la variable SApp1_EStop de type de données SAFEBOOL dans la liste des variables du réseau de sécurité (expéditeur).

  5. Ajoutez un nouveau réseau dans le POU en cliquant Insérer le réseau (ci-dessous), et attribuez la valeur de la variable Local_EStop (signal de l'interrupteur d'arrêt d'urgence) à la variable SApp1_EStop.

  6. Ouvrez la boîte de dialogue des propriétés de Application de sécurité et renommez-le en Application de sécurité 1.

  7. Créez maintenant un deuxième contrôleur dans votre projet en copiant et collant le contrôleur standard configuré dans les étapes précédentes avec le contrôleur de sécurité situé en dessous. Pour les contrôleurs standard et de sécurité copiés, les modifications suivantes doivent d'abord être effectuées.

  8. Modifications à la copie insérée : Renommer le Application de sécurité 1 s'opposer à SafetyApp2 car le nom d'un objet d'application de sécurité doit être unique dans un projet.

  9. Ensemble SafetyApp2 comme l'application active et cliquez sur Construire → Construire. La construction aboutit à une nouvelle application de cartographie Cartographie de SafetyApp2 en cours de création sous le nouveau contrôleur standard.

  10. Après la construction, plusieurs erreurs concernant la communication croisée sécurisée s'affichent dans la vue des messages (Voir → Messages). Cela permet de détecter les erreurs de configuration actuelles, qui doivent être corrigées en premier. Pour ce faire, tenez compte des messages d'erreur suivants affichés :

    • Erreur P0100 signifie que le groupe d'identifiants de liste dans le projet n'est pas unique (car le Liste des variables du réseau de sécurité (expéditeur) l'objet a été copié). Pour corriger l'erreur, ouvrez l'objet liste de variables du réseau de sécurité (expéditeur) de l' SafetyApp2 application. Saisissez ensuite une valeur pour Groupe d'identifiants de liste de variables sur l'automate principal dans le Réseau PLC onglet. Cette valeur ne doit pas déjà être attribuée dans le projet (exemple : 2).

      Pour une dénomination claire dans l'exemple, le nom de la variable publiée doit encore être modifié. Pour cela, ouvrez le Configuration de sécurité onglet de la liste des variables du réseau de sécurité (expéditeur) du SafetyApp2 application et renommez la variable déclarée en SApp2_EStop.

      Selon le manuel d'utilisation de sécurité, l'utilisation de variables de réseau de sécurité nécessite que les adresses de sécurité de tous les expéditeurs appliqués soient uniques. C'est pourquoi vous saisissez une nouvelle Adresse de sécurité de cette liste de variables dans le Configuration de sécurité onglet de la liste des variables du réseau de sécurité (expéditeur) du SafetyApp2 application (exemple : 1001).

    • Erreur P0200 signifie qu'aucun expéditeur autorisé n'a encore été sélectionné pour une liste de variables de réseau de sécurité (récepteur). Cela peut être corrigé comme suit : ouvrez la liste de variables de réseau de sécurité (récepteur) de SafetyApp2 (par exemple en double-cliquant sur le message d'erreur dans la vue des messages). Sélectionnez ensuite la liste des variables de l'expéditeur dans la Expéditeur associé liste déroulante qui contient les SApp1_EStop variable publiée à l'étape 4. Si la logique de programmation le souhaite, le nom local de la variable peut maintenant être renommé. Dans l'exemple, il est réservé comme SApp1_EStop_1 parce que le SApp1_EStop la variable est déjà définie en copiant l'application. Étant donné que le POU est modifié à l'étape suivante, modifiez le nom dans la liste des variables du réseau de sécurité ouvert (récepteur) en SApp1_EStop afin qu'il concorde à nouveau avec les variables publiées.

      Étant donné que les identifiants de connexion de tous les récepteurs appliqués doivent être uniques dans le réseau, vous devez saisir un autre identifiant unique. ID de connexion dans la liste des variables du réseau de sécurité copiées (récepteur) dans le Configuration de sécurité languette.

  11. Ouvrir le POU de SafetyApp2.

  12. Affecter la variable SApp1_EStop à la deuxième entrée de la AND opérateur.

  13. Affecter la variable locale Local_EStop (signal de l'interrupteur d'arrêt d'urgence de SafetyApp2) à la variable d'envoi SApp2_EStop.

  14. Ensemble Application de sécurité 1 à nouveau comme application active et cliquez sur Construire → Construire.

  15. Double-cliquez sur l'erreur P0200 dans la vue message.

    La liste des variables du réseau de sécurité (récepteur) de Application de sécurité 1 s'ouvre.

  16. Sélectionnez la liste des variables de l'expéditeur SafetyApp2 de la Expéditeur associé liste déroulante.

    En se connectant à l'expéditeur de l'autre contrôleur, les identifiants de liste sont mis à jour dans la zone définie dans l'expéditeur.

  17. Ouvrir le POU de Application de sécurité 1.

  18. Affecter la variable distante disponible SApp2_EStop à la deuxième entrée de la AND opérateur.

  19. Reconstruire Application de sécurité 1.

    Aucune autre erreur n'est signalée.

  20. Dans les étapes suivantes, vous effectuez la configuration du réseau avec des adresses explicites.

    Tout d’abord, les paramètres de communication des deux contrôleurs du projet doivent être définis en conséquence afin qu’il soit possible de se connecter ultérieurement aux contrôleurs.

    Si une diffusion vers une adresse réseau 255.255.255.255 n'est pas souhaité ou pas possible pour des raisons techniques (par exemple en raison des paramètres du routeur), les contrôleurs qui doivent communiquer via SafetyNetvars peuvent également être définis explicitement.

    Pour l'exemple ci-dessus avec deux contrôleurs impliqués, les paramètres réseau sur le Réseau PLC Les onglets des objets expéditeur et destinataire sont définis comme suit :

  21. Désactivez d'abord l'option Utiliser les valeurs par défaut pour l'adresse réseau et le port de destination (255.255.255.255, 1202) dans le Réseau PLC onglet de toutes les listes de variables du réseau de sécurité du projet.

  22. sil3_img_nvl_config_example1.png

    Saisissez les adresses IP du terminal distant concerné conformément à cette figure. Vous devez modifier les adresses IP de votre réseau en conséquence.

    L'adresse réseau de destination 192.168.0.22 doit être donné les listes de variables du réseau de sécurité de Application de sécurité 1 et l'adresse IP 192.168.0.1 pour les listes de variables du réseau de sécurité SafetyApp2. L'entrée au niveau de l'expéditeur doit être effectuée pour l'entrée où les identifiants de liste correspondent à ceux du récepteur correspondant. Cela permet aux paquets d'être correctement attribués par la couche subordonnée.

    Important

    Afin de détecter pour laquelle des entrées d'expéditeur une adresse IP est saisie, une liste des récepteurs connectés peut être affichée sur l'expéditeur au moyen de l' Afficher les récepteurs bouton dans le Configuration de sécurité L'éditeur de la liste des variables du réseau de sécurité connecté (récepteur) peut être ouvert rapidement en double-cliquant sur une entrée de cette liste. Dans l'éditeur, vous pouvez vérifier quelle paire d'identifiants de liste est utilisée par le récepteur.

    Le projet est configuré pour l'exemple de communication croisée.

  23. Pour tester le projet, téléchargez les deux applications sur les contrôleurs de sécurité. Vous devrez peut-être également vous assurer que les Cartographie de SafetyAppX est téléchargé sur le contrôleur et démarré. Ensuite, démarrez les applications et réinitialisez toutes les SF_EmergencyStop POU au moyen du Reset entrée et le bVar_Reset variables connectées à l'étape 3.

    Vous pouvez maintenant déclencher le POU SF_EmergencyStop dans les deux contrôleurs interconnectés en déclenchant le signal d'arrêt d'urgence dans un contrôleur. Dans l'exemple, l'interrupteur d'arrêt d'urgence est simulé en définissant la variable globale Arrêt_local à FALSE sur l'un des deux contrôleurs puis en écrivant la valeur pour ce contrôleur au moyen de la commande Déboguer → Écrire des valeurs.

Exemple 2 : Extension du projet précédent avec un autre appareil en « créant » les composants de la variable réseau

Prérequis : Le projet de l’exemple 1 a été créé et il est ouvert.

  1. Ajoutez un contrôleur standard supplémentaire au projet avec un contrôleur de sécurité en dessous (menu contextuel : Ajouter un appareil).

  2. Copiez le Pouvoir et GVL objets de Application de sécurité 1 ci-dessous le nouveau contrôleur de sécurité.

  3. Renommer le nouveau Application de sécurité à SafetyApp3.

  4. Ajouter un Liste des variables du réseau de sécurité (expéditeur) et deux Liste des variables du réseau de sécurité (récepteur) objets ci-dessous SafetyApp3 au moyen de la Ajouter un objet commande.

  5. Ouvrir le Configuration de sécurité onglets des deux listes de variables du réseau de sécurité (récepteur) et sélectionnez dans le Expéditeur associé liste déroulante l'expéditeur de Application de sécurité 1 pour la première liste de variables du réseau de sécurité (récepteur) et l'expéditeur de SafetyApp2 et pour le deuxième.

    Si nécessaire, modifiez le Heure de surveillance dans la liste des variables du réseau de sécurité (récepteur).

    Astuce

    L'ID de connexion est prédéfini avec une valeur unique à l'échelle du projet lors de l'insertion de l'objet. Il n'est donc plus nécessaire de le modifier au cours de la procédure décrite dans cet exemple.

  6. Déclarer la variable SApp3_EStop de type de données SAFEBOOL dans le nouveau Liste des variables du réseau de sécurité (expéditeur).

    Astuce

    L'adresse de sécurité de la liste de variables est prédéfinie avec une valeur unique à l'échelle du projet lors de l'insertion de l'objet. Il n'est donc plus nécessaire de la modifier au cours de cette procédure. Le groupe d'identifiants de la liste de variables est également prédéfini avec une valeur unique à l'échelle du projet afin d'éviter les conflits.

  7. Modifier l'affectation dans le POU de SafetyApp3 de sorte que la variable Local_EStop est assigné à la variable SApp3_EStop. De cette manière, la valeur de l'interrupteur d'arrêt d'urgence est publiée au moyen de la Liste des variables du réseau de sécurité (expéditeur).

  8. Sélectionnez le AND opérateur, cliquez Ajouter une entrée dans le menu contextuel et liez cette nouvelle entrée à la variable SApp1_EStop.

    Les entrées de la AND les opérateurs sont désormais liés à la Local_EStop, SApp2_EStop, et SApp1_EStop entrées.

  9. Ensemble SafetyApp3 comme l'application active et créez l'application en cliquant sur Construire → Construire.

    Pendant l'opération de construction, le système vérifie si la configuration des variables du réseau de sécurité à l'échelle du projet correspond et si Cartographie de SafetyApp3 est généré.

  10. Dans les étapes suivantes, vous modifierez SafetyApp2.

  11. Ajouter un nouveau Liste des variables du réseau de sécurité (récepteur) à SafetyApp2 et sélectionnez la liste des variables du réseau de l'expéditeur SafetyApp3 de la Expéditeur associé liste déroulante.

  12. Si nécessaire, modifiez le Heure de surveillance.

  13. Ouvrir le POU de SafetyApp2 et ajouter une nouvelle entrée à la AND opérateur (menu contextuel : Ajouter une entrée). Liez cette nouvelle entrée à la SApp3_EStop variable.

  14. Dans les étapes suivantes, vous modifierez Application de sécurité 1.

  15. Ajouter un nouveau Liste des variables du réseau de sécurité (récepteur) à Application de sécurité 1 et sélectionnez la liste des variables du réseau de l'expéditeur SafetyApp3 de la Expéditeur associé liste déroulante.

  16. Si nécessaire, modifiez le Heure de surveillance.

  17. Ouvrir le POU de Application de sécurité 1 et ajouter une nouvelle entrée à la AND opérateur (menu contextuel : Ajouter une entrée). Liez cette nouvelle entrée à la SApp3_EStop variable.

  18. Comme dans l'exemple précédent, la configuration du réseau est décrite avec des adresses explicites.

  19. Définissez les paramètres de communication pour les trois contrôleurs du projet afin qu'il soit possible de se connecter ultérieurement aux contrôleurs.

  20. Désactiver l'option Utiliser les valeurs par défaut pour l'adresse réseau et le port de destination (255.255.255.255, 1202) dans toutes les listes de variables du réseau de sécurité.

  21. sil3_img_nvl_config_example2.png

    Saisissez les adresses IP des terminaux distants respectifs conformément à cette figure. Vous devez modifier les adresses IP de votre réseau en conséquence.

    Pour Application de sécurité 3 cette opération est décrite plus en détail dans les étapes suivantes :

  22. Tapez le Adresse du réseau de destination 192.168.0.22 du contrôleur avec SafetyApp2 comme l'entrée pour le Identifiants de liste 1080 1081 dans le Réseau PLC onglet de la liste des variables du réseau de sécurité (expéditeur) de SafetyApp3.

    Important

    Assurez-vous d'attribuer les adresses réseau de destination aux identifiants de liste corrects, sinon le transfert des variables réseau ne fonctionnera pas.

  23. Ouvrez la liste des variables du réseau de sécurité (récepteur) qui importe la variable SApp2_EStop. Tapez le Adresse du réseau de destination du contrôleur avec SafetyApp2 192.168.0.22.

  24. Tapez ensuite le Adresse du réseau de destination 192.168.0.1 pour le contrôleur avec Application de sécurité 1 aux endroits suivants :

    Premier dans la liste des variables du réseau de sécurité (expéditeur) pour les identifiants de liste 1082 1083 et ensuite dans la liste des variables du réseau de sécurité (récepteur) qui importe la variable SApp1_EStop.

  25. Le projet est désormais configuré pour la communication croisée.

    Pour tester l'exemple de communication croisée, téléchargez d'abord les applications sur tous les contrôleurs concernés et démarrez les applications. Assurez-vous que le SafetyAppX_Mapping correspondant est également en cours d'exécution.

    Le SAppX_EStop les variables publiées à l'aide des variables du réseau de sécurité sont désormais transférées vers les POU des autres SafetyApps avec la valeur TRUE. Il s'agit de la valeur initiale qui est écrite dans le SAppX_EStop variables par les interrupteurs d'arrêt d'urgence simulés.

  26. Si nécessaire, définissez le SF_EmergencyStop POU au moyen du Reset entrée et le connecté bVar_Reset variables.

    Vous pouvez maintenant déclencher le POU SF_EmergencyStop dans les trois contrôleurs interconnectés en déclenchant le signal d'arrêt d'urgence dans un contrôleur. Dans l'exemple, l'interrupteur d'arrêt d'urgence est simulé en définissant la variable globale Local_EStop à FALSE sur l'un des contrôleurs puis en écrivant la valeur de ce contrôleur au moyen de la commande Déboguer → Écrire des valeurs.