IEC 61131-3 : les langages des automates expliqués aux non-automaticiens
Les automates programmables industriels utilisent des langages normalisés depuis 1993. Cinq langages, une seule norme, et un vocabulaire qui déroute quiconque ne vient pas de l'automatisme. Voici de quoi comprendre une conversation avec un intégrateur.
Lors d’une réunion de projet sur la modernisation d’une ligne de production, l’intégrateur parle de « blocs fonctionnels en ST avec un SFC pour le séquencement, et du Ladder pour les sécurités ». Le directeur industriel acquiesce ; le directeur informatique, lui, ne sait pas de quoi il s’agit. La norme IEC 61131-3, publiée pour la première fois en 1993, définit les langages de programmation des automates industriels. Elle est omniprésente dans l’industrie, et largement méconnue en dehors. Ce guide n’en fait pas un automaticien du lecteur ; il lui donne de quoi comprendre les choix et poser les bonnes questions.
Cinq langages, un seul automate
La norme définit cinq langages. Deux sont graphiques, deux sont textuels, un est un outil de structuration des séquences. Tous s’exécutent sur le même matériel.
Ladder Diagram (LD) — le schéma électrique
Le Ladder ressemble à un schéma de circuit électrique lu de gauche à droite : des contacts (entrées) activent des bobines (sorties) selon des conditions logiques. C’est le langage historique, celui que lisent naturellement les électriciens et les techniciens de maintenance. Il convient bien aux logiques combinatoires simples : si cette condition et cette condition, alors cette sortie.
Function Block Diagram (FBD) — les boîtes connectées
Le FBD représente le programme comme un assemblage de boîtes (blocs fonctionnels) reliées par des lignes. Chaque boîte a des entrées et des sorties, et réalise une fonction : un PID, un compteur, un temporisateur, un calcul. Il convient aux boucles de régulation et aux traitements continus, où l’on pense en flux de signaux.
Structured Text (ST) — le langage textuel
Le Structured Text ressemble à Pascal ou à un langage de programmation classique : variables typées, structures de contrôle (IF, CASE, FOR, WHILE), affectations, appels de fonctions. C’est le langage le plus expressif de la norme, celui qui permet les calculs complexes et les traitements de données. Il est de plus en plus utilisé, notamment par les ingénieurs formés à l’informatique.
Instruction List (IL) — l’assembleur
L’Instruction List est un langage textuel bas niveau, proche de l’assembleur : une instruction par ligne, un accumulateur. Il est historique, peu lisible, et en déclin. La troisième édition de la norme le marque comme déprécié. Il reste présent dans les bases de code anciennes.
Sequential Function Chart (SFC) — les étapes et les transitions
Le SFC n’est pas un langage de programmation au même titre que les quatre autres ; c’est un outil de structuration. Il décrit un processus comme une suite d’étapes (états) reliées par des transitions (conditions de passage). Chaque étape contient des actions écrites dans l’un des quatre autres langages. Il convient aux processus séquentiels : démarrage d’une machine, cycle de lavage, procédure de mise en sécurité.
Ce que cela change pour un décideur
Le choix du langage n’est pas anodin. Il détermine qui peut maintenir le programme, combien de personnes dans l’équipe ou sur le marché savent le lire, et dans quelle mesure le programme est portable d’un automate à un autre.
Un programme en Ladder est lisible par tout technicien de maintenance formé en électrotechnique. Un programme en Structured Text exige des compétences de programmation. Un SFC bien construit documente le processus autant qu’il le pilote. Le choix dépend du métier de l’équipe qui maintient, pas seulement de celui qui développe.
La portabilité promise par la norme a ses limites. Les fabricants d’automates ajoutent des extensions propriétaires (types de données, bibliothèques, fonctions de communication) qui rendent un programme difficile à transférer d’une marque à une autre sans adaptation. Vérifier, avant de s’engager, quelles parties du programme utilisent des fonctions standards et lesquelles dépendent du fournisseur.
Notre expertise en industrie et automates aide les industriels à évaluer la maintenabilité et la portabilité de leurs programmes d’automatisme. Pour les enjeux de modernisation plus larges, voir notre offre IA en entreprise.
Pour approfondir : IA d’entreprise
Questions fréquentes
Qu'est-ce qu'un automate programmable industriel ?
C'est un ordinateur industriel durci, conçu pour piloter des machines ou des processus en temps réel. Il lit des capteurs (température, pression, position), exécute un programme logique, et commande des actionneurs (vannes, moteurs, vérins). On le trouve dans les usines, les stations de traitement d'eau, les bâtiments, les infrastructures de transport.
Pourquoi plusieurs langages pour un même automate ?
Parce que les métiers et les habitudes diffèrent. Un électricien lit un schéma Ladder comme un schéma électrique. Un informaticien préfère le Structured Text, proche d'un langage de programmation. Un ingénieur process se retrouve dans le Sequential Function Chart, qui décrit des étapes et des transitions.
Peut-on mélanger les langages dans un même programme ?
Oui, la norme le prévoit. Un programme peut appeler un bloc écrit dans un langage différent. En pratique, un projet utilise un ou deux langages principaux et réserve les autres à des cas particuliers.
La norme IEC 61131-3 est-elle obligatoire ?
Non, c'est une norme volontaire. Mais elle est si largement adoptée que la quasi-totalité des automates du marché la supportent. Un programme écrit selon la norme est en principe portable d'un automate à un autre, même si des extensions propriétaires limitent parfois cette portabilité.