Projet d’automatisation PLC – Unity – La machine à pizza
Dans le cadre d’un projet de systèmes embarqués durant mon Erasmus en Finlande, j’ai eu l’occasion de travailler sur une solution combinant la programmation PLC en utilisant la plateforme TwinCat de Beckhoff.
Notre team: Mathieu Astruc, Pierre-Sacha Baglione, Luca de Genaro, Tim Marzocchinni
Le thème du projet étant libre, nous avons choisi de créer une machine à pizza prenant en charge toutes les étapes manuelles que nécessite la production d’une pizza traditionnelle.
De la préparation et l’agencement des ingrédients à la cuisson et à l’emballage dans des boîtes. Nous avons décidé que les différents éléments ‘préfabriqués’ seraient la pâte à cuire, des ingrédients comme des olives, des poivrons… ainsi que les boîtes pour l’emballage final et la livraison au client.
Le projet se composait de trois parties :
- La première partie, dont j’étais responsable, consistait à coder en PLC la machine permettant de contrôler divers éléments tels que les convoyeurs, un corps de chauffe (régulé de manière ON-OFF pour simplifier la simulation), un ascenseur permettant de transporter différents éléments d’un étage ainsi que des “droppers” rotatifs pour disposer les ingrédients sur le plateau d’assemblage que le client aurait choisis au préalable avant de lancer la production de sa pizza.
Luca de Genaro a créé une interface HMI en utilisant Beckhoff TwinCat HMI, permettant au client de sélectionner les différents ingrédients (garnitures) qu’il souhaite sur la base de sa pizza.
Une fois les ingrédients sélectionnés, le client peut lancer la production de sa pizza. Un indicateur lumineux montre l’état de la production de la pizza.
- La deuxième partie visait à créer une interface de communication entre le contrôleur PLC et le démonstrateur 3D créé sur Unity. Responsable de cette mission, j’ai développé plusieurs tests de méthodes de communication entre le PLC et notre démonstrateur.
Après plusieurs tests infructueux utilisant le protocole Modbus, qui prenait trop de temps à être traité par notre simulateur. Le choix final fût d’opter pour le protocole ADS développé par Beckhoff. J’ai créé les modules nécessaires pour la simulation ainsi qu’un module de communication IO virtuel dans l’espace de travail Unity. Grâce à l’ADS de Beckhoff, nous avons pu faciliter la communication entre le simulateur et le contrôleur PLC grâce à la prise en charge native du type de chaîne de caractères. Cela nous a permis d’envoyer directement depuis le PLC une chaîne de caractères concaténant les ingrédients désirés par le client, séparés par des virgules. Unity utilisant le langage de programmation C#, ce choix a facilité la désérialisation pour l’utilisation de la commande automatisée des “droppers” d’ingrédients.
- La troisième partie visait à créer un démonstrateur 3D qui servirait à simuler le comportement de notre machine.
Le PLC reçoit via le protocole ADS des informations de capteurs virtuels développés sur Unity et agit sur les actionneurs.
Grâce au travail acharné de Tim Marzocchinni et de son équipe composée de Mathieu Astruc et Luca de Genaro, nous avons pu réaliser une simulation 3D simple et efficace du comportement de notre machine à pizza.
Il ne restait plus qu’à intégrer et tester la solution PLC avec la simulation.
Plus facile à dire qu’à faire : ce n’est qu’après une nuit blanche que nous avons finalement réussi à atteindre notre objectif de communication entre le contrôleur PLC et la simulation sur Unity via un réseau IP interne.
Grâce au module TC31 de Beckhoff, nous avons pu créer un réseau IP ADS permettant la connexion entre le serveur PLC configuré sur une VM et le programme démonstrateur installé sur un PC client.Ce projet a été une excellente collaboration de groupe. Nous avons pu enrichir nos compétences majeures en systèmes embarqués mais aussi en compétences interpersonnelles. Notre groupe n’ayant jamais travaillé avec la plateforme Unity, c’était une véritable découverte !