# IEC 61499 : Retour d'expérience sur l'application de la norme en pédagogie

Alexandre Parant¹, Stéphane Lecasse¹, François Gellot¹, Alexandre Philippot¹

alexandre.parant@univ-reims.fr

¹ : EiSINe – CReSTIC – Université de Reims Champagne-Ardenne, Moulin de la Housse 51100 Reims.

**RESUME** : L'objectif de cet enseignement est de présenter à des étudiants la norme IEC 61499 et son utilisation dans le développement et l'implémentation du système de commande d'un système automatisé de production. Cet enseignement inclut un cours magistral présentant les concepts de la norme IEC 61499 et les différences avec les langages de la norme IEC 61131-3 traditionnellement utilisés dans les enseignements de l'automatisme. Il incorpore également une séance de travaux pratiques où le logiciel EcoStruxure Automation Expert est utilisé pour développer l'application de commande et où le logiciel Factory I/O est utilisé pour simuler des systèmes automatisés de production. Un retour d'expérience est présenté dans cette communication sur l'enseignement de la norme IEC 61499.

**Mots clés** : Automatisme, IEC 61499, Systèmes Cyber-Physiques, Retour d'expérience.

## 1 INTRODUCTION

Depuis le début de la quatrième révolution industrielle, on peut observer l'intégration de plus en plus importante des technologies de l'information et de la communication avec celui des sciences et technologies de la production. La frontière entre le monde numérique et le monde physique devient de plus en plus mince, les systèmes de production modernes sont dénommés les systèmes cyber-physiques (SCP).

Les SCP sont composés d'éléments hétérogènes autonomes capables de prendre des décisions en coopérant. De plus, un SCP doit être capable de s'adapter aux besoins des consommateurs et donc de produire une multitude de produits sur plusieurs générations. C'est un système dynamique, le besoin d'adaptativité doit être pris en compte lors de sa conception. Les systèmes de commande et les architectures de contrôle ont été grandement impactés par ces nouveautés. Actuellement, la majorité des systèmes automatisés de production est programmée à partir des langages de la norme IEC 61131-3. Cependant, ces langages sont limitants au niveau de la flexibilité et de la reconfigurabilité. En effet, il peut exister des incompatibilités lors du passage d'un constructeur d'automates programmables industriels (API) à un autre.

Afin de pallier ce problème, il est possible de développer et d'implémenter le système de contrôle d'un SCP avec le langage de la norme IEC 61499. Cette norme a été spécifiée par l'International Electrotechnical Commission (IEC) pour faciliter la conception et le développement de système de commande distribuée [1]. Elle offre la possibilité d'implémenter des applications sur un ensemble de contrôleurs connectés au même réseau. Les objectifs de la norme sont [2] :

* Portabilité : Les outils logiciels peuvent accepter et interpréter correctement les composants logiciels et les configurations produites par d'autres outils logiciels.

* Configurabilité : Les dispositifs et les composants logiciels peuvent être interconnectés et paramétrés par des outils logiciels provenant de plusieurs fournisseurs.

* Interopérabilité : Les dispositifs peuvent fonctionner ensemble pour exécuter les fonctions spécifiées par une ou plusieurs applications distribuées.

L'IEC 61499 a gagné en intérêt au niveau industriel et académique ces dernières années. De nombreux travaux sur les modèles de transformation, la modélisation et les techniques de mise en œuvre ont été réalisés sur l'IEC 61499 pour parvenir à une automatisation distribuée [3]. Il reste cependant un travail important de formations à effectuer auprès des étudiants pour améliorer la visibilité de cette norme et pour démontrer son intérêt dans les systèmes de production modernes. Cette communication a pour objectif de présenter les concepts de la norme IEC 61499 et les différences notables pour le développement du système de commande par rapport aux langages de la norme IEC 61131-3 dans la section 3. La section 3 présente une démarche pédagogique pour introduire les concepts de la norme IEC 61499 et un retour d'expérience dans l'objectif d'intégrer un enseignement complet dans les années futures.

## 2 DIFFERENCES ENTRE LE LANGAGE DE LA NORME IEC 61499 ET LES LANGAGES DE LA NORME IEC 61131-3

Le passage des langages IEC 61131-3 vers le langage IEC 61499 peut entraîner des difficultés pour les étudiants dues au modèle d'application spécifique de la norme IEC 61499 et à la différence d'exécution. Nous conseillons d'intégrer la norme IEC 61499 lorsque les étudiants maîtrisent les principes de base de l'automatisme et l'implémentation de système de commande avec les langages API traditionnels.

### 2.1 Structure d'une application IEC 61499

Une application développée à partir du langage IEC 61499 est composée de blocs fonctionnels pilotés par les événements. Les blocs fonctionnels sont indépendants les uns des autres : ils possèdent chacun leurs variables et leurs algorithmes spécifiques (Figure 1). Le comportement du bloc fonctionnel est défini par

This is an Open Access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Article publié par EDP Sciences et disponible sur le site https://www.j3ea.org ou https://doi.org/10.1051/j3ea/20231033
l'Execution Control Chart (ECC) qui est similaire aux diagrammes d'états de Harel [4].

L'application IEC 61499 étant exclusivement pilotée par les événements, les données doivent être liées à des événements pour être transmises d'un bloc à l'autre. Les événements et les données ne peuvent pas être mélangés : un événement de sortie ne peut pas être relié à une donnée d'entrée et réciproquement. Il y a donc deux réseaux distincts dans l'application avec le réseau d'événements qui détermine l'exécution des blocs fonctionnels et le réseau de données qui assure la transmission d'informations.

<figure><img src="image_1.png" /><figcaption>fig 1 : Bloc fonctionnel IEC 61499</figcaption></figure>

De plus, l'IEC 61499-1 définit un modèle architectural pour distribuer et déployer l'application sur plusieurs appareils. Le modèle du système définit les relations entre les appareils de communication et les applications. Les blocs fonctionnels composant l'application sont répartis entre un ou plusieurs appareils pour contrôler un processus ou une machine. Un appareil peut exécuter une ou plusieurs applications (fig 2).

<figure><img src="image_2.png" /><figcaption>fig 2 : Structure d'une application IEC 61499</figcaption></figure>

## 2.2 Exécution d'une application IEC 61499

Le traitement d'une application IEC 61499 n'est pas cyclique contrairement aux applications développées à partir des langages IEC 61131-3 et exécutées par un API. Il n'y a pas de notion de temps de cycle dans une application IEC 61499, aucune action n'est effectuée

s'il n'y a aucun événement. Cette notion peut être difficile à appréhender pour des étudiants et il est important d'insister sur ce point.

La différence d'exécution entre un traitement cyclique et un traitement événementiel peut être illustrée avec une porte logique *ET* implémentée avec le langage Functional Block Diagram (FBD) (Fig 3.a) et la même porte logique implémentée en IEC 61499 (Fig 3.b). Dans le langage FBD, les entrées *IN1* et *IN2* sont lues en permanence et la sortie *OUT* est mise à jour à chaque cycle automate. Dans le langage IEC 61499, l'opération logique *ET* n'est pas effectuée en permanence. Le bloc fonctionnel attend de recevoir un événement sur son entrée d'événement *REQ* pour faire la lecture de ses entrées de données *IN1* et *IN2*, effectuer le traitement logique et mettre à jour sa donnée de sortie *OUT* en envoyant un événement sur sa sortie d'événement *CNF*.

<figure><img src="image_3.png" /><figcaption>fig 3 : a) bloc fonctionnel ET implémenté en langage FBD, b) bloc fonctionnel ET implémenté en langage IEC 61499</figcaption></figure>

## 2.3 Plateforme d'exécution IEC 61499

Le développement et l'exécution d'une application IEC 61499 nécessite un environnement de développement intégré et une plateforme d'exécution sur laquelle elle sera déployée. Différents outils logiciels et plateformes d'exécution ont été développés depuis la création de l'IEC 61499.

Les principaux outils sont Function Block Development Kit (FBDK)<fnref n="1" />, ISAGRAF<fnref n="2" />, 4Diac<fnref n="3" /> et EcoStruxure Automation<fnref n="4" />. Ces outils sont associés respectivement aux plateformes d'exécution FBRT, ISAGRAF Runtime, FORTE, et nxtRT61499F.

Pour la mise en place de travaux pratiques avec le langage IEC 61499, nous conseillons l'utilisation des logiciels 4Diac ou EcoStruxure Automation Expert car

<footnote n="1">¹ FBDK 11 - The Function Block Development Kit (holobloc.com)</footnote>

<footnote n="2">² ISAGRAF Technology | Rockwell Automation France</footnote>

<footnote n="3">³ Eclipse 4diac - The Open Source Environment for Distributed Industrial Automation and Control Systems</footnote>

<footnote n="4">⁴ EcoStruxure™ Automation Expert – Professionals | Schneider Electric France (se.com)</footnote>
ils intègrent totalement les concepts de la norme et qu'ils sont compatibles avec un ensemble de protocoles de communication (Modbus, OPC UA, ...).

4Diac a l'avantage d'être gratuit et open source, c'est un environnement de développement intégré développé sous Eclipse. Il est compatible avec un ensemble de contrôleurs et peut être utilisé pour des systèmes de commande embarqués. La problématique de 4Diac et sa plateforme d'exécution est qu'ils nécessitent des outils de compilation pour créer des blocs fonctionnels personnalisés et l'installation de librairies annexes pour ajouter la compatibilité avec les protocoles de communication.

EcoStruxure Automation Expert a l'avantage d'être supporté par Schneider Electric et d'être plus simple d'utilisation. De plus, les applications peuvent s'exécuter sur des API du constructeur avec le firmware adéquat. Le désavantage par rapport à 4Diac est qu'il s'agit d'un outil logiciel commercial.

# 3 DEMARCHE PEDAGOGIQUE

L'introduction à la norme IEC 61499 s'est effectuée sur deux séances (1 CM et 1 TP), espacées de 2 jours, permettant progressivement aux étudiants de développer et d'implémenter des systèmes de contrôle/commande simple de manière autonome.

## 3.1 Acquisition des concepts de base de la norme IEC 61499

Dans cette première phase, l'objectif est de présenter les concepts introduits par la norme IEC 61499 et les différences avec les langages de la norme IEC 61131-3. Cette phase est constituée d'un cours magistral ayant pour objectif la familiarisation des concepts de distribution et d'exécution par les événements. Différentes architectures de conception sont présentées aux étudiants afin de les guider lors des TP.

Dans cette phase, des exemples pratiques sont mis en place avec la création de circuits logiques dans un premier temps pour appréhender l'exécution événementielle de l'application et l'échange de données entre les blocs fonctionnels. Ces exemples utilisent des blocs fonctionnels contenus dans les librairies des environnements de développement intégrés et ne nécessitent pas la création de blocs. Dans un second temps, les applications sont distribuées entre plusieurs contrôleurs pour inclure le modèle de système défini par la norme.

## 3.2 Mise en pratique d'applications d'automatisation de systèmes de production

Cette deuxième phase a pour objectif de créer des systèmes de contrôle/commande de systèmes automatisés de production. Cette phase s'est déroulée sur une séance de TP au cours de laquelle les étudiants ont utilisé le logiciel Factory I/O [5] pour la simulation des systèmes de production et le logiciel EcoStruxure Automation Expert pour développer et implémenter le système de commande. Cette séance s'est déroulée en deux parties : une partie guidée avec l'enseignant et une partie en autonomie.

Dans la première partie de la séance, les étudiants apprennent à faire l'interface entre l'application de commande et la partie matérielle du système de production et ils apprennent à créer des blocs fonctionnels personnalisés.

Dans la seconde partie, les étudiants doivent développer le système de commande d'un système de tri de pièces (fig 4) à partir d'une application où l'interface avec la partie matérielle est déjà effectuée. Le Grafcet spécifiant le comportement du système est fourni aux étudiants pour qu'ils puissent passer directement au développement.

<figure><img src="image_4.png" /><figcaption>fig 4 : Scène Sorting Station de Factory I/O</figcaption></figure>

# 4 RETOUR D'EXPERIENCE

Afin d'évaluer le ressenti des étudiants sur la norme IEC 61499 et son utilisation pour le développement de système de commande, nous avons conçu un questionnaire en douze points.

Cet enseignement a été réalisé auprès d'élèves ingénieurs en apprentissage en troisième année (bac+5) dans la formation A2I (Automatique et Informatique Industrielle). Cette dernière est une formation ingénieurs de l'UTT (Université de Technologie de Troyes) mais en convention avec l'Université de Reims Champagne-Ardenne et sa composante EiSINe (Ecole d'ingénieurs en Sciences Industrielles et Numérique). Le module est intitulé « Commande et IHM de process industriels » où les étudiants voient également de la programmation d'API Siemens sous TIA Portal pour la commande de cellules flexibles et de leur jumeau numérique, de la programmation d'IHM avec WinbCC Flexible et de la supervision industrielle sous Intouch (Wonderware) et Panorama (Codra). Ils disposent normalement d'un éventail en automatisme assez large car ils ont par ailleurs programmé auparavant des API Schneider Electric avec Unity Pro.

Une échelle de Likert à 5 points (Pas du tout d'accord, Peu d'accord, Indifférent, D'accord et Tout à fait d'accord) est proposée afin de permettre aux étudiants d'exprimer leur ressenti sur la majorité des questions posées. La formation A2I étant à la carte, chaque année le nombre d'étudiants peut varier énormément. Neuf réponses ont été données à ce questionnaire.

La première question porte sur l'intérêt des étudiants à l'intégration d'enseignement de la norme IEC 61499 dans leur cursus. 62,5% des élèves ingénieurs sont Tout
à fait d'accord et 37,5% des élèves sont D'accord et un étudiant n'a pas répondu.

La question suivante traite de l'année d'étude de début de cet enseignement et la majorité des étudiants pensent qu'il faut l'intégrer en 2ème ou 3ème année d'études ingénieur.

Nous avons exprimé dans l'introduction qu'il était préférable d'enseigner cette matière à des étudiants ayant déjà des connaissances dans l'automatisme et dans les langages de la norme IEC 61131-3. Les questions trois et quatre interrogent les étudiants sur ces points pour vérifier ces propos. 33,3% des étudiants sont Tout à fait d'accord et 55,6% sont D'accord alors qu'un étudiant est Indifférent concernant l'automatisme. Pour les langages API classiques, un étudiant n'est Pas d'accord ce qui fait baisser le pourcentage d'étudiant D'accord à 44,4% par rapport à l'automatisme.

La question 5 aborde le contenu de l'enseignement. 88.9% des étudiants estiment qu'il faut plusieurs séances de cours magistraux pour aborder les concepts de la norme IEC 61499 alors qu'un étudiant trouve qu'un cours peut être suffisant.

Les deux questions suivantes s'intéressent à la complexité d'implémentation et de compréhension d'une application IEC 61499 par rapport à une application IEC 61131-3. 22.2% sont D'accord avec le fait que l'application IEC 61499 est plus complexe, 33,3% répondent Indifférent et 44,4% répondent Pas d'accord.

Au niveau de la compréhension, un étudiant est Tout à fait d'accord avec le fait que l'application IEC 61499 est plus compréhensible, ce qui fait baisser les étudiants qui ont répondu Indifférent à 22,2% alors que les autres pourcentages restent identiques. Ces pourcentages doivent cependant être modérés car l'enseignement s'est déroulé sur une courte période et que les concepts les plus complexes n'ont pas pu être abordés. Les étudiants ont été confrontés au développement d'applications plus complexes avec les langages API traditionnels dans leur cursus universitaire ce qui peut induire un biais dans leur réponse.

La question suivante traite des concepts les plus difficiles à comprendre dans la norme. La majorité des étudiants ont indiqué que l'Execution Control Chart est le concept qu'ils ont eu le plus de mal à comprendre. L'explication de cette réponse est que les étudiants ont principalement travaillé ce concept lors de la séance de TP. Certains étudiants pointent tout de même le concept d'événement et la difficulté de séparer le modèle de l'application et la structure du modèle du système.

Les étudiants sont interrogés par la suite sur les avantages d'utilisation de la norme IEC 61499 dans le développement du système de commande par rapport aux langages API classiques. Les étudiants trouvent la norme IEC 61499 plus intuitive en mettant en avant le côté graphique du langage et la rapidité de programmation par rapport aux langages avec de nombreuses lignes de code. Comme pour les questions précédentes, ces réponses sont à nuancer avec le contexte d'intervention sur une courte période.

Les deux questions suivantes s'intéressent à l'utilisation du logiciel EcoStruxure Automation Ex-

pert. 77,8% des élèves trouvent que la prise en main du logiciel est Facile, un étudiant est indifférent et un étudiant trouve le logiciel Difficile. Dans le cadre plus spécifique du développement d'une application avec le logiciel, 44,4% des étudiants trouvent le logiciel Facile, 33,3% répondent Indifférent et 22,2% trouvent le logiciel Difficile. Le ressenti des étudiants est positif sur le logiciel, la plupart des difficultés viennent de la norme qui distingue le modèle d'application et le modèle du système. Cela induit que les éléments de l'application sont dispersés sur plusieurs fenêtres et plusieurs onglets différents, ce qui fait que les étudiants sont parfois un peu désorientés.

La dernière question est une question ouverte sur les avis des élèves par rapport à cette intervention. 6 réponses ont été données à cette question dont trois sont sans avis. Deux réponses estiment que le cours est intéressant et qu'il mériterait des heures supplémentaires pour aborder les concepts plus en profondeur ou sous forme de petits projets. Un étudiant estime que le volume horaire de l'intervention reste faible mais qu'il est suffisant par rapport à la faible utilisation de la norme IEC 61499 dans les industries à l'heure actuelle.

## 5 CONCLUSION

La révolution technologique apportée par la quatrième révolution industrielle et les nouvelles exigences demandées aux systèmes de production modernes font que les architectures de commande sont amenées à évoluer. Dans ce contexte, la norme IEC 61499 offre des facultés d'interopérabilité et de distributivité pouvant répondre à ces problématiques. Cette norme reste cependant peu connue au niveau universitaire et le manque de formations est un frein à son développement dans les industries.

Dans cette communication, la norme IEC 61499 a été présentée ainsi que le retour d'expériences d'une intervention auprès d'élèves ingénieurs de deuxième année. Certaines réponses du retour d'expériences sont à nuancer du fait du faible volume horaire de cette intervention et de l'application sur des systèmes de production simples. Les retours des étudiants sont néanmoins positifs quant à cet enseignement et la majorité des étudiants ont été intéressés dans le fait de découvrir une nouvelle manière de développer un système de commande dans l'automatisme.

Une évolution de cette intervention serait de proposer plusieurs séances de TP au cours desquelles les étudiants seraient confrontés à plusieurs particularités de la norme IEC 61499. Différentes implémentation seraient imposées aux étudiants pour qu'ils puissent découvrir les forces et les faiblesses de chacune. Ainsi, les concepts autour de la distribution et l'exécution événementielle seraient davantage mis en avant.

## Remerciements

Les travaux présentés ont été réalisés dans le cadre du projet DeMETeRE (Déploiement de Micro-Environnements Territoriaux pour la Réussite Etudiante), lauréat du PIA4 DemoES (Démonstrateur de
l'Enseignement Supérieur) et financé au titre du plan
France 2030 (ANR-21-DMES-0011). DeMETERE est
un projet expérimental de l'URCA qui repose sur la
création de véritables écosystèmes de formation sur le
territoire champardennais, appelés les micro-
environnements territoriaux (MET). Le projet s'appuie
sur trois livrables : la virtualisation du poste de travail,
l'utilisation de la simulation et de la réalité virtuelle et
la mise en place d'un portail mobile.

Bibliographie

[1] International Electrotechnical Commission, « IEC 61499-1: Function Blocks-Part 1 Architecture », Int. Stand. First Ed. Geneva, vol. 1, 2005.

[2] T. Strasser, A. Zoitl, J. H. Christensen, et C. Sünder, « Design and Execution Issues in IEC 61499 Distributed Automation and Control Systems », IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), vol. 41, n° 1, p. 41-51, janv. 2011, doi: 10.1109/TSMCC.2010.2067210.

[3] G. Lyu et R. W. Brennan, « Towards IEC 61499-Based Distributed Intelligent Automation: A Literature Review », IEEE Transactions on Industrial Informatics, vol. 17, n° 4, p. 2295-2306, avr. 2021, doi: 10.1109/TII.2020.3016990.

[4] Harel, D. (1986). A visual formalism for complex systems. Science of Computer Programming, 8(3)

[5] B. Riera et al., « HOME I/O et FACTORY I/O: 2 logiciels innovants de simulation de PO pour la formation à l'automatique », in Colloque consacré à l'Enseignement des Technologies et des Sciences de l'Information et des Systèmes (CETSIS), 2017.