mardi 7 février 2023

[Electro] Protocole RS232

Le RS-232 (parfois appelée EIA RS-232, EIA 232 ou TIA 232) est une norme standardisant une voie de communication de type série. Disponible sur presque tous les PC depuis 1981 jusqu'au milieu des années 2000, il est communément appelé le « port série ». 

Sur les systèmes d'exploitation MS-DOS et Windows, les ports RS-232 sont désignés par les noms COM1, COM2, etc. Cela leur a valu le surnom de « ports COM », encore utilisé de nos jours. Il est graduellement remplacé par le port USB depuis l'apparition de ce dernier.

1. Historique :

Le protocole d'origine, RS-232, a été standardisé par l'EIA (Electronic Industries Alliance) en 1962. Des déclinaisons ont suivi, notamment les RS-232C en 1969 et RS-232D en 19864. Peu à peu tombé dans l'obsolescence, il finit par être remplacé par les ports USB et FireWire4 dans les années 2000.

Toutefois, les liaisons RS-232 sont encore utilisées dans l'industrie pour connecter différents appareils électroniques (automate, appareil de mesure, etc.).

2. Description :

Le standard RS-232 permet une communication sérielle, asynchrone et duplex entre deux équipements. La transmission des éléments d'information (ou bit) s'effectue bit par bit, de manière séquentielle.

La connectique de cette liaison se présente fréquemment sous la forme du connecteur DB-9 ou DB-25, mais peut aussi être d'un autre type (RJ25). Seule la version DB-25 est vraiment standardisée, la DB-9 est une adaptation d'IBM lors de la création du PC AT.

3. Protocole :

Pour établir une communication effective via RS-232, il est nécessaire de définir le protocole utilisé : notamment, le débit de la transmission, le codage utilisé, le découpage en trame, etc. La norme RS-232 laisse ces points libres, mais en pratique on utilise souvent des UART qui découpent le flux en trames d'un caractère ainsi constituées :
  • 1 bit de départ ;
  • 7 à 8 bits de données ;
  • 1 bit de parité optionnel ;
  • 1, 1.5 ou 2 bits d'arrêt.
Le bit de départ a un niveau logique "0" tandis que le bit d'arrêt est de niveau logique "1". Le bit de donnée de poids faible est envoyé en premier suivi des autres (on parle de "MSB" pour "Most Significant Bit" et de "LSB" pour "Least Significant Bit"). 

La spécification RS-232 prescrit des débits inférieurs à 20 000 bit/s. Cependant, les débits utilisés en pratique varient entre 75 bit/s et 115 200 bit/s.

4. Signal électronique :

Un niveau logique "0" est représenté par une tension de +3 V à +25 V et un niveau logique "1" par une tension de −3 V à −25 V (codage NRZ). D'ordinaire, des niveaux de +12 V et −12 V sont utilisés.

Il existe une "zone morte" allant de +3 V à -3 V qui est destinée à l'adsorption du bruit de ligne. Cependant, cette plage peut être différente. Par exemple, la définition V.10 a une "zone morte" de +0.3 V à -0.3 V.

La norme V.28 indique qu'un "0" est reconnu si la tension est supérieure à +3 V et qu'un "1" est reconnu si la tension est inférieure à −3 V

5. Limitations :

Le protocole RS-232 présente de sérieuses limitations en termes de performances de portée et de débit de données.


dimanche 5 février 2023

[IT] OPC-UA

 

Plus connu sous l’acronyme OPC UA, le protocole 'OPen Connectivity – Unified Architecture' est un standard d’échange de données adapté aux besoins des systèmes industriels. Il est particulièrement dédié à l’Internet Industriel des Objets (IoT ou IIoT).

1. Historique :

La norme OPC est maintenue par la fondation OPC, consortium industriel regroupant un ensemble hétéroclite de constructeurs qui crée et maintient les standards et les normes de l’automation.

Hormis la standardisation du dialogue entre machines et systèmes d’information, le protocole OPC-UA est d’abord élaboré pour la sécurisation des flux de données lors des échanges intra et/ou inter-équipements d’automatisme industriel.

Il est important de préciser que c’est un standard ouvert. Il est par exemple possible de partir du projet Open62541 directement disponible sur la plateforme de gestion de code source github. Cette version est écrite en C99 et C++. Mais il existe aussi des partages plus officiel comme l’OPC Foundation qui propose des librairies en .NET.

2. Architecture :

Ce protocole repose sur le principe de client-serveur. Un serveur OPC est un logiciel adapté à un ou plusieurs constructeurs d’automates/machines. Un serveur OPC "sert" des données au client qui les "réclame".

Le plus souvent installé sur le même serveur que l’application, ce serveur client se connecte aux automates par l’intermédiaire d’un réseaux Ethernet "classique".

Le client va sélectionner, trier et traduire les informations renvoyées par l’automate pour les traiter dans son logiciel.

Comme les serveurs peuvent à la fois être des clients eux-mêmes, ils peuvent aussi collecter et compiler des données d’autres serveurs à leurs propres clients, et ainsi de suite. Les informations échangées s’adaptent à chaque équipement.

3. Avantages :

  • Un standard ouvert
  • Il est conçu pour l’interopérabilité
  • Son concept de "Publisher/subscriber"
  • Il est conçu sur une architecture orientée service appelée SOA (Service oriented Architecture)
  • La sécurité de transmission a été intégrée dès sa conception que ce soit au niveau de l’authentification ou lors des échanges de données
  • Il est flexible et évolutif grâce aux nombreuses implémentations que ce soit en C/C++ mais aussi en Java, .NET, NodeJS ou encore Python
  • Une large compatibilité dans l'industrie actuelle
  • De grands industriels ont dores et déjà implémentés cette norme