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.
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 commande afin d'observer la réaction du système global distribué.
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.
Sélectionnez le point nodal Application de sécurité dans l'arborescence des périphériques et cliquez sur dans le menu contextuel.
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.
Insérer un
SF_EmergencyStop
bloc fonctionnel dans le POU ouvert et attribuer la valeurTRUE
au Activer entrée.Ajouter un GVL à Application de sécurité au moyen de la commande .
Dans ce GVL, déclarez la variable globale
Local_EStop
de type de donnéesSAFEBOOL
avec la valeur initiale deTRUE
(qui remplace l'interrupteur d'arrêt d'urgence physique dans l'exemple).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.
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
Ouvrir le POU à partir de Application de sécurité dans le projet et insérez un
AND
opérateur avant le POUSF_EmergencyStop
afin que la sortie de laAND
l'opérateur est connecté à l'entrée du POUE_StopIn
.Affecter la variable globale
Local_EStop
à la première entrée de laAND
opérateur.Dans le POU, déclarez une variable locale
bVar_Reset
de type de donnéesBOOL
et lier ceci à laReset
entrée du POUSF_EmergencyStop
Ceci est nécessaire pour le débogage.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 variableSApp1_EStop
de type de donnéesSAFEBOOL
dans la liste des variables du réseau de sécurité (expéditeur).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 variableSApp1_EStop
.Ouvrez la boîte de dialogue des propriétés de Application de sécurité et renommez-le en Application de sécurité 1.
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.
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.
Ensemble SafetyApp2 comme l'application active et cliquez sur . La construction aboutit à une nouvelle application de cartographie Cartographie de SafetyApp2 en cours de création sous le nouveau contrôleur standard.
Après la construction, plusieurs erreurs concernant la communication croisée sécurisée s'affichent dans la vue des 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é commeSApp1_EStop_1
parce que leSApp1_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) enSApp1_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.
Ouvrir le POU de SafetyApp2.
Affecter la variable
SApp1_EStop
à la deuxième entrée de laAND
opérateur.Affecter la variable locale
Local_EStop
(signal de l'interrupteur d'arrêt d'urgence de SafetyApp2) à la variable d'envoiSApp2_EStop
.Ensemble Application de sécurité 1 à nouveau comme application active et cliquez sur .
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.
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.
Ouvrir le POU de Application de sécurité 1.
Affecter la variable distante disponible SApp2_EStop à la deuxième entrée de la
AND
opérateur.Reconstruire Application de sécurité 1.
Aucune autre erreur n'est signalée.
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 :
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.
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 IP192.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.
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 duReset
entrée et lebVar_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 .
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.
Ajoutez un contrôleur standard supplémentaire au projet avec un contrôleur de sécurité en dessous (menu contextuel : Ajouter un appareil).
Copiez le Pouvoir et GVL objets de Application de sécurité 1 ci-dessous le nouveau contrôleur de sécurité.
Renommer le nouveau Application de sécurité à SafetyApp3.
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.
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.
Déclarer la variable
SApp3_EStop
de type de donnéesSAFEBOOL
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.
Modifier l'affectation dans le POU de SafetyApp3 de sorte que la variable
Local_EStop
est assigné à la variableSApp3_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).Sélectionnez le
AND
opérateur, cliquez Ajouter une entrée dans le menu contextuel et liez cette nouvelle entrée à la variableSApp1_EStop
.Les entrées de la
AND
les opérateurs sont désormais liés à laLocal_EStop
,SApp2_EStop
, etSApp1_EStop
entrées.Ensemble SafetyApp3 comme l'application active et créez l'application en cliquant sur .
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é.
Dans les étapes suivantes, vous modifierez SafetyApp2.
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.
Si nécessaire, modifiez le Heure de surveillance.
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 à laSApp3_EStop
variable.Dans les étapes suivantes, vous modifierez Application de sécurité 1.
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.
Si nécessaire, modifiez le Heure de surveillance.
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 à laSApp3_EStop
variable.Comme dans l'exemple précédent, la configuration du réseau est décrite avec des adresses explicites.
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.
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é.
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 :
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 liste1080 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.
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 SafetyApp2192.168.0.22
.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 variableSApp1_EStop
.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 valeurTRUE
. Il s'agit de la valeur initiale qui est écrite dans leSAppX_EStop
variables par les interrupteurs d'arrêt d'urgence simulés.Si nécessaire, définissez le
SF_EmergencyStop
POU au moyen duReset
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 globaleLocal_EStop
àFALSE
sur l'un des contrôleurs puis en écrivant la valeur de ce contrôleur au moyen de la commande .