Cisco France Blog

J’ai testé… les contacts secs des switches industriels

5 min read



 

Dans un monde industriel en pleine transformation numérique (avec Industry 4.0 notamment), le mode de communication a évolué : on passe de protocoles utilisant des interfaces série à des protocoles reposant sur du niveau 2 ou de l’IP sur une couche Ethernet.

Cisco propose une gamme d’équipements industriels pour répondre à ces besoins :

  • Environnement (humidité, poussière, …),
  • Normes et certifications (ATEX, IEC, …)
  • Protocoles industriels (Profinet, OPC UA, …)
  • Gestion fine des anneaux (PRP, HSR, …)
  • Option de montage (Rail-DIN, rack, circuit imprimé, …)
  • Simplicité (carte SD pour remplacement des équipements, IOS-XE, …)
  • Interopérabilité (contacts secs, API, Docker, …)

En répondant à ces besoins, cette gamme d’équipements industriels s’intègrent au plus près des outils de production (machines, automates, cellules, …). Certaines de leurs fonctionnalités relèvent même du domaine de l’électronique, comme la gestion des contacts secs.

Et si on pouvait faire de l’électronique avec des équipements réseau Cisco ?

Quand je parle de faire de l’électronique, je ne parle pas de jouer avec les jumpers ou les nappes d’un AGS Cisco (clin d’oeil à nos vétérans Cisco), mais je parle bien d’interagir avec le monde industriel via de l’électronique (capteurs, LEDs, boutons, …),

Il s’agit de contacts secs, présents sur les équipements de la gamme industrielle Cisco.

Pourquoi faire de l’électronique avec des équipements réseau Cisco ?

Les contacts secs ouvrent la porte à de nombreux cas d’usage :

  • Détection d’ouverture d’une porte (d’un coffret électrique, d’un rack, …)
  • Détection d’une anomalie sur le switch (ports, température, …)
  • Ouverture d’une session de télémaintenance (via Secure Equipment Access)

Ce sont les cas d’usage les plus communs chez nos clients, néanmoins vous pouvez imaginer tous les cas d’usage dont vous avez besoin : il suffit simplement de comprendre le fonctionnement les contacts secs (c’est l’objectif de cet article)

 

 

Comment fonctionnent les contacts secs sur les équipements Cisco ?


Quand on fait du réseau, on a l’habitude de travailler avec les symboles des switches, des routeurs, des firewalls, …, mais moins avec les symboles d’électronique :

Pour comprendre le fonctionnement des contacts secs, il nous faut d’abord comprendre les symboles électroniques présents sur le switch,

Pour la suite des explications, je vais m’appuyer sur l’IE3300, un switch industriel au format Rail-DIN, modulaire (qui peut avoir des modules d’extensions), capable de faire PoE+, … :

 

Le bornier de l’IE3300 contient des contacts secs d’entrée et des contacts secs de sortie, voici leur rôle :

Les contacts secs d’entrée : on souhaite détecter le signal d’un système externe (exemple : capteur d’ouverture de porte), le switch va donc se comporter comme un transistor :

  •  Signal d’entrée pour l’alarme numéro 1
  •  Correspond à la référence pour le signal d’entrée (généralement la masse)
  •  Signal d’entrée pour l’alarme numéro 2

Les contacts secs de sortie : on souhaite envoyer un signal à un système externe (exemple :  éclairer une LED), le switch va donc se comporter comme un interrupteur commandé :

  • Correspond à la borne normalement fermée (NC) du contact / relais
  • Correspond à la borne commune du contact / relais
  • Correspond à la borne normalement ouverte (NO) du contact / relais

 

Les contacts secs, entrée ou sortie, s’inscrivent dans une démarche d’automatisation / de supervision.

Il est tout à fait possible d’utiliser ces contacts avec des outils réseaux, que ce soit en entrée avec les informations opérationnelles du switch (température, status des ports, FCS, …), ou en sortie avec la génération d’alerte réseau (Syslog, SNMP, …) :

Note : Il est possible de faire l’automatisation avec ces contacts secs et du Python (ou autre language de programmation) via un Docker hébergé directement sur le switch par exemple.

 

A quoi ressemble l’utilisation de ces contacts secs ?

 

 

Mise en place d’un cas d’usage simple : Allumer une lumière lorsqu’un port n’est pas opérationnel


Avec un diplôme d’ingénieur en électronique embarquée, je n’ai pas pu m’empêcher de tester ces contacts secs.

 

Câblage


Pour ce cas d’usage, nous avons besoin d’une source d’alimentation, d’une LED et d’une résistance (pour protéger la LED et la source d’alimentation).

On souhaite que la lumière soit éteinte lorsqu’il n’y a pas d’alarme, et on souhaite que la lumière s’allume lorsqu’il y a une alarme.

Il faut donc utiliser le contact normalement ouvert (NO) des contacts de sortie.

Electriquement, cela revient à l’installation suivante :

Note : pour les symboles électriques, nous avons le choix entre deux conventions : NEMA (américaine) et IEC (européenne), Vous trouverez ici un comparatif pour les différents symboles. Pour les schémas électroniques de cet article, je suis la norme IEC, alors que Cisco suit la norme NEMA.

Si on veut aller un peu plus dans les détails, on peut se poser la question : Comment choisir la bonne valeur de resistance R ?

Cela va dépendre de la LED et de l’alimentation que nous avons : dans notre cas, j’utilise une alimentation de 3,3V (via une Arduino UNO) et une LED rouge (703-0100) qui fonctionne idéalement à 1,8V (Uled) et 20mA (I) d’après la datasheet.

La loi des mailles nous dit que “la tension aux bornes d’un ensemble de récepteurs branchés en série est égale à la somme des tensions aux bornes de chacun d’eux”, ce que traduit la formule suivante :

Ualim = Ures + Uled

A présent le calcul est une simple application de la loi d’Ohm et se fait en deux temps.

Nous calculons d’abord la chute de tension nécessaire (Ures) pour que la LED soit soumise à une tension de 1,8 V (Uled) :

Ures = Ualim - Uled = 3,3V - 1,8V = 1,5V

Cette tension résultante de 1,5 V (Ures) représente la tension qui sera présente aux bornes de notre résistance de limitation.

Nous calculons maintenant la valeur de la résistance en tenant compte de la valeur du courant qui traversera la LED (soit 20 mA) :

R = Ures / I = 1,5 / 0,020 = 75Ω

En pratique nous utiliserons une résistance de la série E24 (tolérance ±5 %) de 100 Ω (bien sûr, d’autres modèles / valeurs peuvent fonctionner).

A présent, nous avons tout ce qu’il nous faut pour faire le câblage :

Note : L’Arduino Uno dans le schéma ci-dessus est assimilable à une pile

 

Configuration


La configuration se fait en CLI, directement dans l’IOS-XE, et elle est très simple :

  • Pour le statut du switch, cela se fait en global config, via “alarm facility”
  • Pour le statut d’un port, cela se fait dans un profil d’alarme, via “alarm”

Pour cet exemple, nous souhaitons surveiller l’interface GigabitEthernet 1/7, qui est connecté à un Raspberry PI (qui simule un automate).

Pour allumer la LED en cas de problème sur la liaison avec l’automate, il faut d’abord créer le profil d’alarme (“alarm-profile”), puis lier le relais électrique au profil, et enfin assigner le profil d’alarme à l’interface :

Note : La Raspberry PI émule un équipement industriel Ethernet comme un automate, alors que l’Arduino Uno émule une alimentation (assimilable à une simple pile).

 

Résultat


Voici le résultat en vrai :

Concrètement, quand l’interface GigabitEthernet1/7 est en statut UP, protocole UP, et avec l’état FORWARDING, alors le switch agira comme un interrupteur ouvert :

Néanmoins, si une des conditions n’est pas vérifiée, c’est à dire que le câble n’est pas branché, ou bien que l’interface a été shuttée, ou encore que le port est bloqué par du Spanning Tree, alors le switch agira comme un interrupteur fermé (allumant la LED) :

 

 

 

Pour mieux comprendre dans quelles conditions la LED s’allume, et dans quelles conditions la LED s’éteint, rien de mieux qu’une vidéo (format GIF ci-dessous):

https://app.vidcast.io/share/cdfc432c-9e13-490d-b81e-a1c242537443

Et voilà pour ce premier cas d’usage simple, permettant d’appréhender un peu plus les contacts secs.

Je prévois de réaliser quelques cas d’usage plus avancés dans de prochains articles.

 

Et vous, quels sont vos cas d’usage avec ces contacts secs ? Dites le nous en commentaire !

Authors

Xavier VALETTE

Solutions Engineer

Laisser un commentaire