Nous allons découvrir comment créer une application avec CODESYS sur notre contrôleur HAI-P200-4G. Pour se connecter au contrôleur, nous utiliserons l’adresse IP par défaut sur le port du bas : 192.168.1.16
. Si nécessaire, je vous invite à lire ou relire l’article Première Connexion.
Pré-requis
Pour suivre ce tutoriel, veillez à disposer de :
- CODESYS 3.5 SP20 Patch 4 installé sur votre poste de travail.
- Le runtime CODESYS Control for Raspberry Pi SL version 4.14.0.0 déjà déployé sur votre HAI-P200-4G.
- Le module CODESYS Control SL Deploy Tool 4.14.0.0 ainsi que le package CODESYS Control for Raspberry Pi 4.14.0.0, nécessaires pour déployer et mettre à jour votre runtime.
CODESYS est téléchargeable gratuitement depuis le CODESYS Store, et tous les modules (runtime, Deploy Tool, packages) s’installent simplement via l’application CODESYS Installer. Pour ceux qui découvrent CODESYS, nous proposons également des formations sur mesure : des sessions d’initiation pour les débutants ainsi que des stages de perfectionnement pour maîtriser pleinement l’environnement.
État des lieux
La première vocation de notre contrôleur HAI-P200-4G est d’être un automate programmable industriel (PLC). Pour ce faire, nous avons doté son OS (Raspberry Pi OS / Debian 12) d’un noyau temps réel afin d’obtenir le déterminisme nécessaire à la plupart des applications d’automatisme industriel.
En automatisme industriel, le déterminisme se définit comme la capacité d’un système à réagir de manière prédictible et reproductible, tant sur le plan fonctionnel que temporel, lorsque les mêmes conditions d’entrée se présentent. Autrement dit, un système déterministe garantit que :
- Déterminisme fonctionnel
Chaque état de l’automate ou du contrôleur conduit toujours vers le même état suivant pour un même jeu de conditions (entrées, variables internes, signaux de contrôle), sans comportement aléatoire ni ambiguïté.
- Déterminisme temporel
Les délais d’exécution (cycles de scan d’un automate programmable, temps de réponse d’un réseau de terrain, latences de communication, etc.) sont toujours bornés et connus à l’avance. On peut ainsi garantir que toutes les opérations critiques seront réalisées dans un intervalle de temps maximal préétabli.
Création du projet CODESYS
- Dans CODESYS, créez un nouveau projet via Fichier > Nouveau Projet > Projet Standard.
- Sélectionnez la cible CODESYS Control for Raspberry Pi 64 SL (CODESYS).
- Pour cet exemple, choisissez le langage Langage à Contacts (LD) ou LD2, selon votre version.
Dans le menu Outils, cliquez sur Déployer Control SL.
Cet outil permet de déployer, d’activer, de désactiver ou de mettre à jour le runtime CODESYS. Les contrôleurs HAI-P200-4G sont déjà équipés d’un runtime CODESYS, mais la licence est à acheter sur le CODESYS Store.
Nos contrôleurs sont fournis sans licence CODESYS, celles-ci dépendant de la volumétrie de votre application (tarifs de 29 € à 600 €) ; nous ne souhaitons ni surdimensionner ni sous-dimensionner votre licence.
Sans licence, le runtime fonctionne en mode démonstration pendant deux heures et les protocoles de communication sont limités à 30 minutes. Nous allons donc activer le runtime avec l’outil Déployer Control SL (pensez à le réactiver dans deux heures).
Dans l’onglet Communication, saisissez les informations de connexion :
- Adresse IP :
192.168.1.16
- Nom d’utilisateur :
admin
- Mot de passe :
hai1@
Cliquez ensuite sur Connecter.
Allez dans l’onglet Opérations. Si vous venez de mettre le contrôleur sous tension, les services Runtime et Gateway sont peut-être déjà en cours d’exécution ; sinon, cliquez sur Démarrer tout.
Ecriture d’un premier programme
Rendez-vous dans le programme principal, le PLC_PRG afin de saisir une ligne de programme à exécuter.
Nous créons deux variables locales xBouton
et xVoyant
de type BOOL.
Connexion et chargement du programme
- Sélectionnez Device dans l’arborescence de gauche, puis l’onglet Paramètres de communication.
- Saisissez l’adresse IP et validez avec la touche Entrée.
- Identifiez-vous avec
admin
/hai1@
.
La vidéo ci-dessous vous guide jusqu’au démarrage de l’application :
Précisions sur les tâches et le temps réel
CODESYS permet de régler les tâches gérant l’appel de vos programmes (Intervalle et priorité).
Voici un tableau simplifié pour vos tâches IEC et leur traduction en priorité Linux sur un noyau PREEMPT_RT (Debian/Raspberry Pi) :
Priorité IEC | Mode Linux | Priorité Linux |
0 (tâche la plus critique) | Temps réel (FIFO) | 56 |
15 (tâche RT la moins critique) | Temps réel (FIFO) | 41 |
16 (première non-RT) | Standard | 0 |
31 (dernière non-RT) | Standard | 0 |
Explications simples :
- Tâches RT (0–15)
- Tâches non-RT (16–31)
Elles tournent en mode temps réel (SCHED_FIFO), c’est-à-dire qu’elles sont servies en priorité pour garantir un cycle de commande sans retard.
Elles tournent en mode standard (SCHED_OTHER) et n’interfèrent pas avec vos traitements critiques.
Ainsi, vous pouvez régler vos priorités IEC dans CODESYS (0 à 31) et le runtime se charge de les exécuter en priorité ou en tâche de fond, sans que vous ayez besoin de connaître les détails de Linux.