Comment créer un exemple de projet d'automatisation dans CODESYS
Avec la contribution de Rédacteurs nord-américains de DigiKey
2025-12-03
L'adoption d'une nouvelle plateforme d'automatisation peut engendrer des courbes d'apprentissage rudes et susciter des inquiétudes quant à la dépendance vis-à-vis du fournisseur. CODESYS relève ces défis grâce à un environnement de développement indépendant du matériel basé sur la norme CEI 61131-3. Il offre un flux de travail unifié pour la programmation, le mappage des E/S, la visualisation et le déploiement sur plusieurs plateformes matérielles.
Cet article explique comment créer un projet d'automatisation complet dans CODESYS, de la configuration initiale aux tests d'exécution. Les lecteurs apprendront à configurer l'arborescence des dispositifs, à mapper les canaux d'E/S, à programmer la logique en texte structuré, à concevoir des visualisations, à se connecter à un environnement d'exécution et à appliquer des stratégies de débogage pour vérifier le fonctionnement. Outre des instructions concrètes, l'article met en évidence les meilleures pratiques en matière d'organisation de projet, de gestion de bibliothèque et de déploiement sécurisé.
Bien que le tutoriel utilise le simulateur intégré de CODESYS pour des raisons d'accessibilité, le même flux de travail s'applique aux plateformes matérielles disponibles chez DigiKey, telles que les PLC compatibles CODESYS, les contrôleurs industriels Raspberry Pi (par exemple, l'EdgeBox-RPI-200 de Seeed) et les IHM avec environnement d'exécution intégré. À la fin, les lecteurs auront une idée claire de la manière de créer une application d'automatisation fonctionnelle dans CODESYS, avec un aperçu des techniques qui favorisent l'évolutivité et la fiabilité dans les environnements industriels.
Configuration du projet
La première étape consiste à créer un nouveau projet dans le système de développement CODESYS. Dans la liste des modèles, sélectionnez le projet « Standard Project » et attribuez-lui un nom descriptif, par exemple MotorControlDemo. Lorsque le système vous invite à sélectionner un dispositif, choisissez « CODESYS Control Win V3 », qui fournit un environnement d'exécution Windows pour la simulation sans matériel dédié. Cela permet de tester l'intégralité du flux de travail avant son déploiement sur des plateformes telles que des PLC ou des modules Raspberry Pi industriels.
Le projet s'ouvre avec une arborescence des dispositifs, qui organise les contrôleurs, les canaux d'E/S et les liaisons de communication. Dans cet exemple, l'arborescence contient un objet contrôleur, des entrées numériques pour les boutons de démarrage et d'arrêt, et des sorties numériques pour un moteur et un voyant lumineux. Pour connecter ces signaux à la logique de commande, il faut déclarer des variables booléennes telles que StartButton, StopButton, MotorOn et LampOn dans la liste des variables globales ou dans l'éditeur de programme. En simulation, le basculement entre ces valeurs imite le comportement du matériel. Au niveau matériel, elles sont directement liées aux points d'E/S physiques.
Figure 1 : Déclarations de variables booléennes pour les E/S de commande moteur. (Source de l'image : Auteur)
À ce stade, une dénomination claire et cohérente constitue une bonne pratique qui minimise les efforts de débogage et simplifie la mise à l'échelle lors de l'ajout de nouvelles fonctions ou de nouveaux dispositifs.
Programmation de la logique
Une fois la structure du projet en place, la prochaine étape consiste à implémenter la logique de commande en texte structuré (ST), l'un des langages CEI 61131-3 pris en charge par CODESYS. Le langage ST utilise une syntaxe de type Pascal qui allie lisibilité et puissance expressive, permettant une implémentation claire des routines séquentielles et de la logique basée sur les états.
Le projet de démonstration nécessite une simple bascule marche/arrêt : une pression sur le bouton marche active le moteur et le voyant, une pression sur le bouton arrêt les désactive tous les deux. Cela est exprimé en ST comme indiqué à la Figure 2.
Figure 2 : Implémentation en texte structuré de la logique de bascule marche/arrêt. (Source de l'image : Auteur)
Cet exemple illustre les principes fondamentaux du langage ST, notamment les instructions conditionnelles, la logique booléenne et l'affectation des variables. Les variables ayant été définies lors de la configuration du projet, elles peuvent être directement mappées aux canaux d'E/S, créant ainsi le lien entre les signaux matériels et l'exécution du programme.
Pour les projets de plus grande envergure, l'organisation est primordiale. Le code d'initialisation peut définir des états par défaut, tandis que les tâches cycliques surveillent les entrées et commandent les sorties. Les bibliothèques et les blocs fonctionnels permettent d'encapsuler la logique, de réduire la redondance et d'améliorer la lisibilité. Le même code ST développé en simulation peut ensuite être déployé sur du matériel disponible chez DigiKey, tel que des PAC ou des PLC compacts, avec seulement des modifications mineures. Cette portabilité renforce la valeur de CODESYS en tant qu'environnement indépendant du matériel. En particulier, la séparation de l'initialisation, de la surveillance cyclique et de la gestion des erreurs est une pratique éprouvée qui améliore la lisibilité et garantit une exécution prévisible à mesure que les projets se développent.
Configuration des dispositifs et mappage des E/S
Une fois la structure du projet et les variables définies, l'étape suivante consiste à relier les variables au matériel — ou aux E/S simulées — via le mappage des E/S. Dans CODESYS, cette tâche s'effectue dans l'onglet « I/O Mapping » de l'éditeur « Device Editor », où chaque canal est associé à une variable de projet.
Commencez par insérer un contrôleur et ses modules d'E/S dans l'arborescence des dispositifs. Par exemple, un module peut être ajouté avec deux entrées numériques et deux sorties numériques. Dès qu'un dispositif doté de capacités d'E/S est présent, l'onglet « I/O Mapping » est activé, affichant un tableau des canaux d'entrée et de sortie avec des colonnes pour le nom des variables, les adresses et les types de données. Bien que les descriptions des dispositifs fournissent généralement des noms et adresses par défaut, ceux-ci peuvent être modifiés pour correspondre au câblage du système ou aux conventions de dénomination.
Dans l'onglet « I/O Mapping », les variables peuvent être mappées aux canaux de trois manières : en associant une variable existante (par exemple, StartButton, MotorOn), en générant une nouvelle variable globale implicite dans l'interface ou en modifiant directement les adresses pour les adapter aux exigences du projet. Les variables mappées aux entrées sont, par définition, en lecture seule, et chaque variable ne peut être affectée qu'à un seul canal.
Dans les environnements de production, le mappage requiert également une attention particulière aux spécifications de l'interface électrique, notamment les niveaux de signal, les caractéristiques des modules et la mise à la terre. Ces facteurs dépassent le cadre de ce tutoriel, mais sont critiques pour le déploiement matériel.
À des fins de documentation ou de traitement de masse, les mappages peuvent être exportés ou importés sous forme de fichiers CSV. L'exportation des données de mappage au format CSV est une bonne pratique, car elle fournit une documentation pour les audits et une référence fiable pour la collaboration des équipes.
Visualisation et IHM
Une fois la logique en place, l'étape suivante consiste à créer une interface utilisateur qui commande et surveille le système. CODESYS propose un ensemble d'outils de visualisation intégrés prenant en charge plusieurs modes de déploiement — WebVisu, TargetVisu et CODESYS HMI — permettant l'exécution de la visualisation sur des navigateurs Web, des écrans locaux ou des dispositifs dédiés.
Dans l'arborescence des dispositifs, sous le nœud « Application », ajoutez un objet « Visualization Manager », puis ajoutez un ou plusieurs écrans de visualisation tels que MainVisu. Sur chaque écran, faites glisser des éléments d'interface utilisateur tels que des boutons, des voyants/indicateurs, des affichages de suivi ou des graphiques de tendance. Ces éléments sont liés à des variables de programme (par exemple, StartButton, LampOn) via la boîte de dialogue des propriétés de l'élément.
Par exemple, pour afficher l'état d'un moteur, placez un élément de voyant et définissez sa liaison de variable sur LampOn. Lorsque la variable a la valeur TRUE, le voyant s'allume, et si elle a la valeur FALSE, le voyant reste éteint. Cette liaison directe entre les variables et les éléments permet une interaction d'exécution intuitive.
Options du mode de déploiement
Une fois l'interface conçue, l'étape suivante consiste à décider comment déployer la visualisation pour les opérateurs ou les systèmes externes. CODESYS prend en charge plusieurs modes de déploiement, chacun ciblant des exigences de performances et de réseau différentes :
- WebVisu : s'exécute en HTML5 dans un navigateur Web, le dispositif faisant office de serveur Web via HTTP/HTTPS. Il permet un accès à distance sans écran dédié.
- TargetVisu : s'exécute sur un écran directement connecté au contrôleur ou au dispositif. Efficace pour les systèmes embarqués qui combinent commande et IHM dans une seule unité.
- CODESYS HMI : une instance d'exécution distincte dédiée à la visualisation, capable de se connecter à plusieurs contrôleurs.
Lors du choix d'un mode de déploiement, il convient de tenir compte des performances, des besoins d'affichage et de la topologie du réseau. Bien que WebVisu soit flexible, les contrôleurs peuvent avoir besoin de prendre en charge le serveur HTTP et des charges supplémentaires. TargetVisu réduit la latence du réseau, mais requiert un support d'affichage local, tandis que le mode HMI convient aux systèmes multi-contrôleurs.
Exemple de matériel pratique
À titre de référence matérielle, l'IHM 7 pouces cMT3072XHT de Maple Systems, disponible chez DigiKey, intègre un affichage et un environnement d'exécution CODESYS, ce qui lui permet d'héberger directement les écrans de visualisation créés dans le projet.
Les meilleures pratiques en matière de conception de visualisation incluent l'utilisation d'écrans de bibliothèque et d'interfaces de paramètres pour créer des modèles réutilisables. Le concepteur doit également configurer les affichages d'alarme et de suivi pour n'afficher que les variables critiques, minimisant ainsi la charge du contrôleur. Cela permet de prendre en charge plusieurs langages et conversions d'unités avec des listes de texte et une mise à l'échelle des variables. En outre, il est recommandé de verrouiller la position des éléments à l'aide de lignes d'accrochage ou de conteneurs afin de conserver une disposition cohérente entre les différentes tailles d'écran.
La visualisation étant désormais connectée, l'application est entièrement interactive. L'utilisateur peut démarrer et arrêter le moteur, surveiller les indicateurs et visualiser les états en temps réel via l'IHM. L'étape de visualisation est terminée et le projet est prêt pour les tests d'exécution.
Tests de déploiement et d'exécution
Une fois la programmation et la visualisation terminées, le projet doit être déployé dans un environnement d'exécution. CODESYS prend en charge plusieurs options, du simulateur Control Win SL intégré aux environnements d'exécution sous licence sur du matériel industriel.
Dans le menu « Online » du système « Development System », sélectionnez le dispositif ou le simulateur cible et établissez une connexion. Téléchargez le projet compilé vers l'environnement d'exécution, l'IDE affichant le statut du transfert et signalant les éventuelles incohérences de configuration. Une fois le téléchargement terminé, passez le contrôleur en mode RUN pour lancer l'exécution.
L'environnement d'exécution Windows intégré permet la vérification rapide sans matériel, tandis que les environnements d'exécution CODESYS s'exécutent également sur des plateformes Linux embarquées telles que Revolution Pi (RevPi) Connect 4 de KUNBUS, disponible chez DigiKey. Ce module Raspberry Pi industriel open-source démontre comment un même projet peut facilement évoluer de la simulation au déploiement sur le terrain.
Débogage et meilleures pratiques
Au-delà de la surveillance en temps réel, CODESYS fournit un environnement de débogage intégré pour affiner et gérer les projets. Les points d'interruption, le traitement pas-à-pas de la logique et l'analyse des flux d'exécution peuvent être définis et effectués manuellement. L'outil « Trace » étend les capacités de diagnostic en enregistrant l'historique des variables pour une analyse ultérieure, souvent utilisée dans le suivi post-événement.
Pour le dépannage, CODESYS peut générer des variables de force (Figure 3) qui remplacent temporairement les signaux mappés.
Figure 3 : Syntaxe de la convention de dénomination des variables de force dans CODESYS. (Source de l'image : Auteur)
Ces variables sont particulièrement utiles pour la mise en service ou la simulation de conditions telles que la pression sur des boutons. Lorsqu'un signal de force est actif, CODESYS substitue la valeur forcée au signal mappé. Le forçage pouvant perturber l'exécution en temps réel, il convient de l'appliquer avec prudence et uniquement sur des canaux déjà mappés.
La fiabilité à long terme dépend d'une gestion de projet structurée. Le gestionnaire « Library Manager » prend en charge la conception modulaire et le contrôle de version centralisé, tandis que les espaces réservés définis garantissent des versions cohérentes sur toutes les cibles matérielles. Le maintien de versions de bibliothèques stables réduit les risques de compatibilité lors du déploiement ou de la mise à niveau.
Outre ces garanties structurelles, les meilleures pratiques quotidiennes sont tout aussi importantes, notamment la validation des projets dans le simulateur avant leur transfert vers le matériel et l'utilisation prudente de points d'interruption ou du forçage en production afin d'éviter de perturber les cycles en temps réel. Il est également recommandé d'archiver les versions et les ensembles de bibliothèques fonctionnels afin de pouvoir effectuer une restauration rapide, tout en documentant le mappage des variables et en fournissant des liens de visualisation pour faciliter la transition entre les équipes.
Conclusion
CODESYS accélère la transition de la conception au déploiement en unifiant la configuration du projet, le mappage des E/S, la programmation logique, la visualisation et le débogage dans un seul environnement. Le flux de travail s'étend à toutes les plateformes de DigiKey, y compris les PLC compatibles CODESYS, les contrôleurs Raspberry Pi industriels et les IHM, offrant une infrastructure pratique pour passer du concept à l'automatisation évolutive.
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é.




