CETSIS 2020 - Final

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

Développement d’un connecteur logiciel pour

l’apprentissage de l’automatisme
Philippot Alexandre, Stéphane Lecasse, Bernard Riera, François Gellot

To cite this version:


Philippot Alexandre, Stéphane Lecasse, Bernard Riera, François Gellot. Développement d’un con-
necteur logiciel pour l’apprentissage de l’automatisme. Colloque de l’Enseignement des Technologies
et des Sciences de l’Information et des Systèmes (CETSIS), Jun 2021, Valenciennes, France. �hal-
03427264�

HAL Id: hal-03427264


https://hal.archives-ouvertes.fr/hal-03427264
Submitted on 13 Nov 2021

HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est


archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents
entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non,
lished or not. The documents may come from émanant des établissements d’enseignement et de
teaching and research institutions in France or recherche français ou étrangers, des laboratoires
abroad, or from public or private research centers. publics ou privés.
Développement d’un connecteur logiciel pour l’apprentissage de
l’automatisme
Alexandre Philippot1, Stéphane Lecasse1, Bernard Riera1, François Gellot1
1 CReSTIC (EA3804), Université de Reims Champagne-Ardenne,
Moulin de la Housse, 51687 Reims, France

RESUME : L’apprentissage de l’automatisme s’adresse aujourd’hui à un public d’étudiants ayant pour la plupart avant
tout un background informatique. Ils/elles passent par des phases d’apprentissage de langages compilés et/ou interpré-
tés. Il est compliqué alors pour eux de passer d’une réflexion informatique avec un langage venant du monde de l’IT
(Information Technology) vers la programmation d’Automates Programmable Industriel (API), au comportement cy-
clique, synchrone et aux langages normalisés (IEC 61131-3) issu du monde de l’OT (Operational Technology). Ce pa-
pier présente une proposition de mise en place d’un connecteur logiciel entre ces deux mondes aux travers de
l’utilisation d’un logiciel de simulation de Parties Opératives Factory I/O (realgames.co) et du langage Python.

Mots clés : Automatisme, Simulation, Information Technology, Operational Technology.


 Synthèse d'un système combinatoire, implanta-
1 INTRODUCTION tion.
En 2013, lors du CETSIS de Caen, le Centre de Re-  Logique séquentielle : mémoires, bascules RS,
cherche en STIC (CReSTIC EA3804) a présenté un D, JK, registres, compteurs.
interpréteur de Grafcet pour l’enseignement et la re-  Technologie de fabrication des circuits logiques
cherche [1]. L’outil, l’Interpréteur G7, permet de simu- combinatoire de base et leurs caractéristiques.
ler des Grafcets sans se soucier d’une transposition Le second module logique vise quant à lui à concevoir
dans un langage de programmation des Automates Pro- et réaliser des systèmes séquentiels synchrones et asyn-
grammables Industriels (API) de la norme IEC 61131- chrones, ainsi qu’à générer des fonctions logiques en
3. Cet outil s’est révélé très pertinent dans le cadre des utilisant des mémoires et des réseaux logiques pro-
cours où les étudiants se familiarisaient avec la modéli- grammables. Le programme se compose de l’analyse et
sation à l’aide de grafcet. Ils pouvaient ainsi visualiser, la synthèse d'un système séquentiel, de la technologie
en couplant l’outil avec le logiciel de simulation de des circuits ainsi que de l’initiation à la logique pro-
partie opérative ITS PLC développé par la société grammable.
REAL GAMES (realgames.co), le résultat et
l’exécution de leur modélisation. Le module « Algorithmique et langage C » est une ini-
Cependant, avant d’arriver à établir une spécification tiation aux structures matérielles et au langage informa-
Grafcet et comprendre le fonctionnement d’un API, tique. Il permet aux étudiants de voir la production de
l’enseignement des systèmes automatisés doit passer programmes, les compilateurs et interpréteurs. Il intro-
par plusieurs phases d’apprentissage. Par exemple, dans duit notamment les structures de données et algo-
la Licence Electronique, Energie Electrique, Automa- rithmes associés (tables, listes, piles, files). Le langage
tique (EEEA) de l’Université de Reims Champagne- C est utilisé comme élément de base pour la program-
Ardenne, ces différentes étapes s’expriment sur les 3 mation structurée. Le module « TP longue durée infor-
années à travers : matique » sert quant à lui de réalisation d'un pro-
 2 modules de « Logique » en année 1 pour un gramme informatique d'après un cahier des charges.
total de 42h ;
En licence 3ème année, le premier module « Systèmes
 1 module « Algorithmique et langage C » de 30h
logiques et Automatismes » effectue des rappels de
en semestre 3 et 1 module « TP longue durée
logique afin d’étudier, analyser et synthétiser les sys-
informatique » de 30h également en semestre
tèmes séquentiels synchrones et asynchrones. Le deu-
4;
xième ne fait que du cours magistral et des travaux di-
 3 modules de « Systèmes logiques et Automa- rigés en automatismes séquentiels. On y retrouve :
tismes » d’un total de 63h.
 Introduction à l’automatisme
L’objectif du premier module de logique est la concep-  Formalisation d'un système à l'aide d'un grafcet :
tion et réalisation des systèmes logiques combinatoires définition, concept de base.
de base et suit le programme suivant :  Lien bascules, automate, grafcet : implantation
 Numération, codage. câblée du grafcet
 Fonctions logiques élémentaires : définition,
simplification, Karnaugh.
 Implantation programmée du grafcet : mise en et. La troisième partie est un développement en cours
œuvre d'un automate programmable indus- qui illustre un des benchmarks utilisé sous Factory I/O
triel. sur une maquette réelle.
Le troisième module se concentre uniquement sur des
travaux pratiques autour de la logique programmée et 2 CONNECTEUR LOGICIEL POUR
de la programmation d'un automate programmable in- L’APPRENTISSAGE DE L’AUTOMATISME
dustriel.
2.1 Factory I/O
De ce programme annoncé (fig. 1), il est rapide de Factory I/O (https://factoryio.com/) est un logiciel de
constater qu’il est compliqué pour les étudiants de pas- simulation 3D de systèmes industriels pour la formation
ser d’une réflexion informatique avec un langage ve- aux automates programmables industriels (API) et aux
nant du monde de l’IT (Information Technology) vers technologies de l’automatisation. Sa première version a
la programmation d’Automates Programmables Indus- été notamment introduite durant le CETSIS 2017 [4].
triels (API), au comportement cyclique, en langage Pour rappel, il est destiné à l’enseignement technique et
normalisé (IEC 61131-3) issu du monde de l’OT (Ope- professionnel (lycées, IUT, BTS, écoles d’ingénieurs,
rational Technology) [2, 3]. licences, master…) et est le successeur du logiciel ITS
PLC [5]. Factory I/O permet de construire ses propres
installations à partir d’une bibliothèque de composants
standards que l’on trouve dans le monde industriel et
propose également 20 systèmes prêts à l’emploi (cf.
figure 3) permettant de couvrir un large éventail
d’applications de commande.

fig 1 : Mondes de l’IT et de l’OT

Par ailleurs, le module « TP longue durée informa-


tique » ne s’applique qu’à du logiciel alors que les TP
d’automatismes vont s’appliquer sur des parties opéra-
tives réelles.
Afin de combler ce gap, nous proposons d’exploiter le fig 3 : Système « Pick and Place » de Factory I/O
SDK Engine I/O fourni avec Factory I/O pour per- Factory I/O intègre des drivers de communication per-
mettre aux étudiants de programmer des contrôleurs mettant de s’interfacer directement avec des Automates
logiques en langage Python sous l’environnement de Programmables Industriels (API de marque SIEMENS,
développement intégré IDLE. Par ailleurs, un serveur Allen-Bradley, Schneider Electric), avec des simula-
websocket a été mis en place pour disposer d’une page teurs d’automates au travers d’une connexion Modbus
HTML afin de piloter le système virtuel en mode ma- TCP ou d’une connexion à un serveur OPC (DA ou
nuel (fig. 2). UA) ou tout autre type de matériel (API, microcontrô-
leur…) au travers des boitiers d’E/S logiques ou analo-
giques (DAQ Advantech 4750 et 4704).
Enfin, il est également possible d’interfacer ses propres
drivers de communication au moyen du SDK Engine
I/O fourni permettant par exemple une connexion
simple avec MATLAB ou LabVIEW.
2.2 Engine I/O
Engine I/O est disponible depuis un lien de télécharge-
ment GitHub fourni dans la page de documentation
pour le développement d’outils SDK de Factory I/O
(https://docs.factoryio.com/sdk/). Une fois débloqué, il
permet de visualiser les différentes variables de la
scène actuellement en Run sur Factory I/O grâce à une
fig 2 : Connecteur logiciel
dll installé dans le même dossier que le fichier python.
Ce tableau indique notamment le type et l’adresse de la
La deuxième partie du papier détaille la mise en place variable échangée (fig. 4).
du connecteur logiciel et de l’installation du Websock-
1. Import de l’adressage des variables à travers la
dll EngineI/O.
2. Déclaration des entrées/sorties avec mappage.
3. Déclaration des variables locales avec initialisa-
tion des valeurs. Cette section se termine par
une première mise à jour des variables
4. Reproduction du programme cyclique de l’API
dans une boucle While avec mise à jour de la
valeur des variables à chaque cycle. Ce pro-
gramme traduit la spécification Grafcet obte-
nue par les étudiants par la méthode dite de
l’auto-maintien [6].
Le lancement de ce script depuis IDLE est réalisé par
F5 (Run/Run Module) qui ouvrira Python 3.7.6 Shell
jusqu’à son interruption par Ctrl+C (Shell/Interrupt
Execution).

fig 4 : Vue des variables d’une scène Factory I/O de-


puis le connecteur logiciel Engine I/O
C’est depuis ce connecteur logiciel, que Python va
pourvoir interagir sur le système automatisé simulé de
Factory I/O.
2.3 Python
Python est un langage de programmation interprété
multiplateforme et placé sous une licence libre
(https://www.python.org/). Il fonctionne sur la plupart
des plateformes informatiques et utilise une syntaxe
simple qui en fait un outil d’initiation aux concepts de
base de la programmation apprécié par de nombreux
enseignants car fortement inspiré d’autres langages
comme le langage C.
Pour notre utilisation, nous utiliserons la version 3.7.6
(32 bits). Avant de débuter la programmation d’une
scène, il convient d’installer les différents environne-
ments et bibliothèques de communication. Pour la
communication avec Engine I/O, la commande « pip
install pythonnet » doit être exécutée depuis l’invite
cmd.exe mais aussi sa mise à jour par « pip install –
upgrade pip ». Pythonnet (Python pour .NET) permet
une intégration presque parfaite avec le CLR (Common
Language Runtime) de .NET 4.0+ sous Windows. Py-
thon pour .NET fournit un puissant outil de script d'ap-
plication pour les développeurs .NET. Cet outil permet fig 5 : Structure du fichier Python
de créer des applications .NET ou des applications
complètes en Python, en utilisant des composants .NET 2.4 Serveur Websocket de page HTML pour un
écrits dans n'importe quel langage qui cible le CLR mode manuel
(C#, VB.NET, F#, C++/CLI). Python pour .NET est En termes d’apprentissage, il est essentiel pour
actuellement compatible et testé avec les versions 2.7 et l’étudiant de comprendre le comportement d’un sys-
3.5-3.7 de Python. tème sous la forme d’un mode manuel où il est acteur
Par ailleurs, pour l’installation et la communication du des ordres envoyés. La création d’un mode manuel par
serveur web en mode manuel, l’invite de commande serveur Websocket demande de modifier la structure du
« pip install SimpleWebSocketServer » est lancée. fichier python (fig. 6). Celui-ci est composé de 5 par-
Il est possible ensuite d’éditer avec l’environnement de ties (sans compter l’import de toutes les bibliothèques
développement intégré pour le langage Python IDLE nécessaires) :
32 bits le fichier de la scène à exécuter (fig. 5). La 1. La déclaration sous forme de tableau des en-
structure de ce fichier est composée de 4 zones (sans trées/sorties du système avec mappage, mais
compter l’import des bibliothèques classiques) : aussi la déclaration des anciennes variables à
l’instant précédent. Ainsi que la définition de
boutons de type « switch » pour la commande 3 MISE EN PLACE D’UNE MAQUETTE
manuelle des actionneurs REELLE
2. Création du serveur Web
En termes d’application pédagogique, il convient de
3. Ecriture des valeurs des boutons dans la mé-
mélanger les mondes virtuels et réels [7, 8]. Dans ce
moire des actionneurs
cadre, une maquette du système de tri de caisses de
4. Mise en tableau des valeurs des capteurs avec
Factory I/O a été réalisé sur la base de briques LEGO
lecture en temps réel par l’intermédiaire d’une
(fig. 9).
instruction parallèle thread.
5. Exécution du serveur en localhost.
L’interaction est nécessaire par l’intermédiaire de
cartes d'acquisition de données. L’utilisation d’une
carte de type Raspberry Pi utilisé comme un API et
exploitant ses E/S directement
(https://www.framboise314.fr/unipi-un-automate-
industriel-avec-le-raspberry-pi/) est en cours de déve-
loppement pour être présenté durant le colloque. Ainsi,
la maquette pilotée par un contrôleur réel permettra une
mise en service virtuelle lors de l’utilisation de Factory
I/O comme « jumeau numérique ».
.

fig 6 : Structure du fichier Python pour le mode ma-


nuel
L’instruction javascript sur le fichier html est défini en
figure 7. L’interface de développement obtenue pour le
système de tri de Factory I/O est illustrée en figure 8.
On y voit les voyants des différents capteurs ainsi que fig 9 : Maquette LEGO du système de tri
les boutons de mise en marche des actionneurs.
4 RETOUR D’EXPERIENCE AVEC HOME I/O
ET FACTORY I/O
FACTORY I/O est utilisé à l’URCA en TP de logique
séquentielle dans plusieurs formations parmi lesquelles
la licence 3 SPI EEA (56 étudiants), la 1ère année de
cycle ingénieur A2I (URCA-UTT, 48 étudiants). Le
retour d’expérience réalisé pour le moment porte sur
l’utilisation de FACTORY I/O et non encore sur le
connecteur python. La durée des séances de TP était
fig 7 : Instruction serveur Websocket en HTML similaire pour les 2 formations (3 heures), les objectifs
pédagogiques identiques (initiation à la logique combi-
natoire et séquentielle), les enseignants différents pour
les 2 filières, et les sujets de TP différents. L’évaluation
a été faite au travers de 3 critères : l’utilité pour
l’adéquation entre l’objectif d’apprentissage et
l’atteinte de cet objectif, l’utilisabilité pour la facilité
d’utilisation (la maniabilité) et l’acceptabilité pour
s’approprier l’outil. L’analyse statistique des résultats
donne :
• Sur la facilité d’utilisation de FACTORY I/O :
70% d’avis de relativement facile à très facile.
• Sur l’aspect ludique : 56% des répondants sont
fig 8 : Interface web pour le système de tri d’accord pour dire que ce logiciel est ludique.
86% des répondants considèrent l’aspect lu-
dique comme étant motivant.
• Sur l'utilisabilité : (i) une qualité bonne
ou excellente pour 99% des répondants ; (ii)
une facilité à comprendre le fonctionnement
de 90% de relativement facile à très facile.
• Pour l'utilité : toutes les dimensions (partie opé-
rative, partie commande, logique séquentielle,
capteurs, actionneurs) sont travaillées. Entre
93% et 100% des répondants affirment avoir
travaillé au moins partiellement ces concepts.

5 CONCLUSION
L’application de ce développement sur un échantillon
d’étudiants n’a pas encore été mise en œuvre sur
l’utilisation du connecteur de logiciel. Une expérimen-
tation avec suivi et questionnaire afin d’analyser le re-
tour d’expérience des étudiants sera prochainement
mise en place. Elle est en effet nécessaire sur le côté
utilisation de Python et compréhension de la connexion
des briques technologiques.
Concernant la maquette LEGO, la situation sanitaire
depuis un an n’a pas permis son utilisation.

Bibliographie
[1] D. Annebicque, A. Philippot, F. Gellot et B. Riera. Un
interpréteur de GRAFCET pour l’enseignement et la re-
cherche. 10ème Colloque Enseignement des Technologies
et des Sciences de l'Information et des Systèmes (CETSIS
2013), Caen, mars 2013.
[2] Arango, F., Aziz, E-S., Esche, S.K., Chassapis, C., «A
review of applications of computer games in education
and training », Frontiers in Edu. Conf.. Pp. T4A.1-4A.6,
2008.
[3] Bainbridge, L., « Ironies of automation ». Automatica, vol
19, N°6, pp.775-779.
[4] Bernard Riera, Romain Pichard, Alexandre Philippot,
Ramla Saddem, François Gellot, David Annebicque, Fa-
bien Emprin. HOME I/O et FACTORY I/O : 2 logiciels
innovants de simulation de PO pour la formation à l'auto-
matique. 12e Colloque consacré à l'Enseignement des
Technologies et des Sciences de l'Information et des Sys-
tèmes 2017.
[5] Riera, B., Vigario, B., Chemla, J-P., Correia, L., Gellot,
F., « 10 ans de Maquettes Virtuelles pour l'enseignement
des automatismes : de WINSIM en 1998 à ITS PLC PE
en 2008 », J3eA 8 (HORS SÉRIE 1) 1004 (2009).
[6] William S. Levine. « The Control Handbook, Second
Edition ». CRC Press, December 2010. ISBN
9781420073669.
[7] Corlu, M. S., Capraro, R. M., & Capraro, M. M. (2014).
Introducing STEM education: Implications for educating
our teachers in the age of innovation. Education and Sci-
ence, 39(171), 74-85.
[8] Gonzalez H.B., Kuenzi J.J. (2012). Science, technology,
engineering and mathematics (STEM) education: A pri-
mer Congressional Research Service, Washington: DC
(2012).

Vous aimerez peut-être aussi