Création d'un contrôleur logique programmable (PLC) sans fil personnalisé

Par Jacob Beningo

Avec la contribution de Rédacteurs nord-américains de DigiKey

L'IoT industriel croît rapidement, mais les ingénieurs industriels ont besoin d'une flexibilité et d'une connectivité personnalisées dépassant celles proposées par les contrôleurs logiques programmables (PLC) traditionnels. Toutefois, la création d'une solution sur mesure peut s'avérer coûteuse et prendre énormément de temps. En effet, peu d'ingénieurs industriels ont l'expérience nécessaire pour implémenter une solution véritablement embarquée basée sur un microcontrôleur.

Cet article a pour but de présenter rapidement les PLC avant d'expliquer comment les développeurs peuvent créer leur propre PLC sans fil pouvant utiliser la logique ladder pour implémenter des applications.

Présentation des contrôleurs logiques programmables (PLC)

Un PLC est un ordinateur robuste utilisé pour automatiser un processus spécifique dans une application industrielle. Le processus à automatiser peut aller de la chaîne de montage dans une usine de fabrication au système de contrôle de l'éclairage d'immeuble IoT, entre autres.

Une architecture PLC typique comprend (Figure 1) :

  • Une unité de traitement centrale avec mémoires RAM et ROM internes
  • Des entrées numériques et analogiques
  • Des sorties numériques et analogiques
  • Des alimentations de grade industriel
  • Une application logique pour exécuter les comportements souhaités

Schéma de l'architecture d'un PLC typique avec une série d'entrées analogiques et numériques

Figure 1 : L'architecture d'un PLC typique contient une série d'entrées analogiques et numériques qui sont traitées et exécutées par rapport à une application logique qui détermine ensuite le comportement des sorties analogiques et numériques associées. (Source de l'image : Unitronics)

Bien qu'il existe de nombreuses options disponibles sur le marché pour les PLC traditionnels, les développeurs peuvent souhaiter personnaliser le comportement du PLC ou créer un dispositif sur mesure. Il existe différentes manières de procéder, mais une solution intéressante et simple pour un ingénieur de systèmes embarqués traditionnel consiste à utiliser l'environnement de développement ouvert (ODE) STM32.

Conception d'un PLC sans fil

Les développeurs ont besoin de trois composants matériels principaux pour créer leur propre PLC sans fil :

  • Un CPU
  • Un conditionneur de signaux entrée/sortie
  • Un module Wi-Fi

Un développeur peut partir de zéro pour concevoir tous ces composants ou exploiter un écosystème existant. STMicroelectronics a simplifié la création d'un PLC en élaborant un pack de développement STM32 qui inclut chacun de ces composants et fournit également un logiciel de base pour le développement d'applications de logique ladder.

Examinons maintenant ces composants principaux et les conditions qu'ils doivent remplir pour fonctionner dans un environnement industriel.

Le premier composant à étudier est le CPU, qui dans ce cas est un STM32F401RE de STMicroelectronics. Le STM32F401RE est un processeur Arm® Cortex®-M4 32 bits fonctionnant à 84 MHz, doté de 512 Mo d'espace Flash pour le code d'application et de 96 Ko de mémoire RAM. Le STM32F401RE est fourni sur la carte d'évaluation Nucleo-401RE qui comprend également des embases Arduino pour interfacer avec d'autres matériels et un ST-Link pour la programmation du logiciel embarqué. La Nucleo-401RE correspond à l'emplacement d'exécution de l'ensemble du code du PLC.

Image de la carte de développement Nucleo-401RE de STMicroelectronics

Figure 2 : La carte de développement Nucleo-401RE constitue la base du contrôleur PLC et contient 512 Mo d'espace de code d'application et 96 Ko de mémoire RAM pour les données. (Source de l'image : STMicroelectronics)

Le second composant nécessaire à la conception d'un PLC est une carte de de conditionneur de signal pour les entrées et les sorties. Les développeurs disposent de deux cartes qu'ils peuvent sélectionner ou combiner si l'application l'exige.

La première est la carte d'extension E/S industrielle X-Nucleo-PLC01A1 (Figure 3). La carte X-Nucleo-PLC01A1 comporte huit entrées conditionnées via un limiteur d'entrée numérique haute vitesse CLT01-38SQ7. Le CLT01-38SQ7 fournit une protection d'entrée numérique au PLC en limitant le courant pouvant être consommé par la broche d'entrée. Huit sorties industrielles sont également conditionnées à l'aide d'un circuit d'attaque monolithique à 8 canaux VNI8200XP. Ce circuit se caractérise par un très faible courant d'alimentation, avec une interface SPI intégrée et une commutation de type abaisseur micropuissance 100 mA haut rendement. Le VNI8200XP fournit huit relais statiques sur puce pouvant chacun gérer jusqu'à 0,7 A. La carte X-Nucleo-PLC01A1 comprend également un voyant LED pour voir l'état de chaque entrée et chaque sortie, et trois voyants d'alarme pour signaler une surchauffe et d'autres défaillances de la carte. La carte X-Nucleo-PLC01A1 communique avec la carte Nucleo-401RE via une liaison de communication SPI.

Image de la carte X-Nucleo-PLC01A1 de STMicroelectronics

Figure 3 : La carte X-Nucleo-PLC01A1 est une carte de grade industriel, conçue pour fournir huit entrées et huit sorties numériques à une application PLC. (Source de l'image : STMicroelectronics)

Un PLC peut également exiger le contrôle des signaux analogiques et du courant élevé. La carte X-Nucleo-PLC01A1 est uniquement destinée aux signaux numériques. Afin de contrôler ces autres signaux, un développeur peut utiliser la carte X-Nucleo-OUT01A1 (Figure 4). La carte X-Nucleo-OUT01A1 contient le relais statique intelligent à haut potentiel octal à isolement galvanique ISO8200BQ de STMicroelectronics. La grande différence entre ces sorties et le PLC01A1 est que la carte peut fonctionner sur des tensions s'étendant de 10,5 V et 33 V, avec isolement galvanique entre les signaux analogiques et numériques. Plusieurs voyants LED sont également intégrés pour indiquer si une défaillance de communication ou un événement de protection thermique s'est produit.

Image de la carte X-Nucleo-OUT01A1 de STMicroelectronics

Figure 4 : La carte X-Nucleo-OUT01A1 est une carte de grade industriel, conçue pour fournir huit sorties de relais pouvant gérer jusqu'à 0,7 A à une application PLC. (Source de l'image : STMicroelectronics)

Le dernier composant pouvant être utilisé pour fournir un mécanisme de programmation sans fil ou être utilisé pour créer un PLC connecté IoT est une puce sans fil. Les développeurs peuvent utiliser le X-Nucleo-IDW01M1, un module d'extension Wi-Fi conforme 802.11 b/g/n, également de STMicroelectronics (Figure 5). Le module X-Nucleo-IDW01M1 est certifié FCC, IC et CE avec une antenne intégrée, ce qui le rend prêt à l'emploi pour un système de production.

Image du X-Nucleo-IDW01M1 de STMicroelectronics

Figure 5 : Le X-Nucleo-IDW01M1 est un module Wi-Fi de grade industriel pouvant être intégré à un PLC pour fournir une connectivité sans fil. (Source de l'image : STMicroelectronics)

Avec chacun de ces composants, un développeur peut assembler son PLC matériel dans l'ordre indiqué à la Figure 6. Il est possible d'installer les cartes à l'envers, ce qui ne les endommagera pas, mais entraînera un débogage supplémentaire. Au cas où il faudrait ajouter du matériel personnalisé au PLC, par exemple une puce RS-485, les développeurs peuvent utiliser un shield de prototypage Arduino tel que le Proto Shield d'Olimex ou le Proto Shield d'Adafruit.

Schéma de l'ordre d'assemblage d'une carte de développement de STMicroelectronics

Figure 6 : Ordre d'assemblage des cartes de développement de STMicroelectronics pour obtenir un PLC fonctionnel. (Source de l'image : Beningo Embedded Group)

Configuration logicielle du PLC

Plusieurs logiciels sont nécessaires pour configurer le PLC. Ces logiciels incluent :

  • Le logiciel embarqué du PLC
  • Un compilateur embarqué
  • Une application logique ladder

Le logiciel embarqué du PLC FP_IND_PLCWIFI1 a été développé par STMicroelectronics et peut être téléchargé à partir du site Web de STM. Il contient l'intégralité du code nécessaire pour le fonctionnement du STM32F401RE et inclut plusieurs configurations prédéfinies, en fonction des piles matérielles requises. Le logiciel embarqué est fourni avec trois projets déjà configurés pour STM System Workbench, IAR Workbench et Keil MDK, et il peut être téléchargé sur la page http://www.st.com/en/embedded-software/fp-ind-plcwifi1.html (Figure 7). Un développeur peut utiliser n'importe lequel de ces projets pour compiler et déployer le logiciel embarqué sur le PLC.

Image du progiciel d'application PLC embarqué

Figure 7 : Progiciel d'application PLC embarqué requis pour exécuter le PLC. (Source de l'image : Beningo Embedded Group)

Une fois l'application embarquée téléchargée, il est possible de l'importer dans l'IDE de compilateur souhaité et de la compiler. Le développeur ne devrait pas avoir de problème pour compiler le code. Il peut ensuite télécharger l'application compilée sur le PLC via une connexion USB standard au PC.

Enfin, STMicro a également créé un programme d'application PLC simple qui peut être utilisé pour créer des applications de logique ladder. Cette application est disponible pour iOS et Android. L'application peut être téléchargée sur les appareils mobiles en recherchant l'application ST PLC.

Exemple d'application simple

Une fois le logiciel embarqué du PLC opérationnel, un développeur peut se concentrer sur le développement de son code d'application à l'aide de l'application ST PLC. Le code d'application sera développé en utilisant la logique ladder. Un développeur peut lancer l'application et créer un projet basé sur les cartes de développement qu'il a choisi d'inclure dans la pile matérielle (Figure 8).

Image de l'application ST PLC

Figure 8 : À partir de l'application ST PLC, un développeur peut créer un projet (en rouge à gauche), sélectionner le nom du projet (en orange à droite), puis configurer le matériel utilisé (en vert à droite). (Source de l'image : Beningo Embedded Group)

Une fois le projet configuré, un développeur dispose d'une ardoise vierge pour créer les échelons pour son application. Un bon premier projet consiste à simplement tester si une entrée peut être lue et une sortie définie en fonction de l'entrée en question. Un développeur peut créer ce test en cliquant sur « Add rung », puis en implémentant la logique nécessaire dans l'application. Une fois cette étape terminée, le développeur peut créer un échelon semblable au côté gauche de la Figure 9.

Image du logiciel d'application ST PLC

Figure 9 : À partir de l'application ST PLC, un développeur peut implémenter sa logique pour contrôler son dispositif comme il le souhaite (à gauche). Une fois l'application créée, il est possible de la transmettre sans fil au PLC en cliquant sur le bouton d'envoi d'application (à droite). (Source de l'image : Beningo Embedded Group)

Une fois l'échelon enregistré, le développeur revient à l'écran principal du projet. À partir de là, il peut modifier un échelon ou créer des échelons supplémentaires dans l'application. Si l'application est prête à être déployée, un clic sur le bouton de transmission sans fil illustré à droite de la Figure 9 permet de se connecter puis de transmettre l'application PLC. Notez que le dispositif mobile du développeur doit être connecté au point d'accès du PLC, et que le développeur doit configurer son port et son adresse IP pour que la transmission de l'application réussisse.

Conseils et astuces pour concevoir un PLC sans fil

Il y a plusieurs conseils et astuces que les développeurs peuvent suivre lorsqu'ils créent leur propre PLC sans fil personnalisé. Ces conseils incluent :

  • Si la carte sans fil ne fonctionne pas, vérifiez qu'elle est correctement orientée sur la pile (c'est-à-dire qu'elle a été placée dans la bonne direction).
  • Améliorez la sécurité des systèmes en ajoutant une clé de sécurité au SSID.
  • Mettez à jour le PLC en changeant le comportement sans fil par défaut en mode station et uniquement pendant le changement de mise à jour vers le point d'accès.
  • Envisagez d'ajouter des protocoles de communication industriels tels que RS-485 et Modbus.
  • Le meilleur moyen de se familiariser avec les PLC est de réfléchir à un problème intéressant, puis d'essayer de le résoudre avec le PLC.
  • Utilisez IAR Embedded Workbench for Arm pour compiler le logiciel embarqué du PLC. La chaîne d'outils est illimitée au niveau code pendant 30 jours.

Conclusion

La conception d'un PLC personnalisé ne doit pas nécessairement être difficile. Comme démontré, l'écosystème fourni par STMicroelectronics permet au développeur de rendre le logiciel du PLC de base opérationnel très rapidement. L'application peut ensuite être facilement modifiée et personnalisée pour répondre à un large éventail d'applications et de défis.

Bien que l'objectif principal soit de créer le code de l'application finale à l'aide d'une logique ladder, si un développeur possède l'expérience et les connaissances requises, il peut facilement apporter des modifications au logiciel embarqué et disposer d'un système hybride beaucoup plus puissant et flexible.

DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo est un consultant en logiciels embarqués, et il travaille actuellement avec des clients dans plus d'une douzaine de pays pour transformer radicalement leurs activités en améliorant la qualité, les coûts et les délais de commercialisation des produits. Il a publié plus de 200 articles sur les techniques de développement de logiciels embarqués. Jacob Beningo est un conférencier et un formateur technique recherché, et il est titulaire de trois diplômes, dont un master en ingénierie de l'Université du Michigan. N'hésitez pas à le contacter à l'adresse jacob@beningo.com et sur son site Web www.beningo.com, et abonnez-vous à sa newsletter mensuelle Embedded Bytes.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey