Aller au contenu

TP 2 : Simulation physique numérique

Réaliser un jumeau numérique d’un système de production industrielle permet de :

  • Simuler des interventions (Rétrofit, Amélioration continue … ) sans interrompre la production de la ligne physique
  • Optimiser le cycle de production en simulant les différents mode de fonctionnenent
  • Détecter des pannes et des divergence en amont de l’implantation
  • Concevoir le produit et le système de production conjointement.

Dans ce TP nous allons nous interesser à la méthode à mettre en oeuvre pour réaliser un jumeau numérique basé sur les solutions Siemens.

Objectifs

A partir de la liste des composant et du mode d’emploi, préparer la configuration de l’automate dans TIA Portal, afin de modifier le programme automate sans interompre l’ascenseur.

  • Savoir importer et configurer un projet TIA Portal
  • Savoir mettre en place un automate virtuel
  • Connaitre la démarche de réalisation d’un jumeau numérique 3D dans NX MCD
  • Piloter un jumeau numérique entièrement fonctionnel depuis un automate virtuel.

Matériel et logiciel nécessaire

  • PC équipé avec
    • TIA Portal
    • PLCSIM Advanced
    • Siemens NX (+MCD)

Support pédagogique

L’ascenseur. Le prototype d’ascenseur possède une cabine pouvant se déplacer entre 4 étage. Chaque étage est équipé de 3 fourche optique :

  • Analyse fonctionnelle
  • Analyse organique
  • Manuel utilisateur
  • Maquette d’ascenseur
  • Platine équipé d’automate Siemens S200

Téléchargement

Projet de Base

Documents

Bug

Télécharger le zip TIA Télécharger le zip NX

Travail à réaliser :

  • Configurer les compposant de la platine dans TIA portal
  • Créer un automate virtuel dans PLCSIM Advanced
  • Connecter l’automate virtuel à TIA Portal
  • Connecterl’automate virtuel avec le jumeau virtuel sous NX
  • Configurer la simulation physique sous NX
  • Simuler le programme automate et modifier le programme automate sans interruption de fonctionnement

Partie A - Siemens NX Mechatronics concept designer :

  • Importer l’assemblage de l’ascenseur
  • Créer les corps physique de la simulation
  • Créer les articulations
  • Créer les contrôle de vitesse
  • Créer les capteur
  • Créer les corps de collision
  • Créer les signaux de la simulation
  • Créer les expressions d’adaptation des signaux
  • Connecter les signaux à l’automate

1. Importation de l’assemblage

Commençons par créer un nouveau projet. Pour cela, créez un nouveau dossier sur la session. Renommez le dossier tp2_digitaltwin_nom_promo (ex : tp2_digitaltwin_JulesTOPART_I5GSPA). Dans ce dossier, téléchargez puis décompressez les fichiers Assembly.zip puis, lancer Siemens Mecatronics concept designer.

Warning

Si NX ne se lance pas et affiche un message d’erreur lié à un problème de licence, suivez ce tutoriel

Une fois que le logiciel NX est correctement démarré, cliquez sur l’icône Ouvrir en haut à gauche de l’interface. Dans l’explorer selectionnez Assembly.prt dans votre répertoire projet.

2. Création des corps soumis à la physique

NX MCD permet de simuler fidèlement un système mécatronique en mouvement. Pour cela il faut toutefois paramétrer la simulation de manière à la rendre réaliste. NX est capable de simuler les comportements cinématique des objets en tenant compte de la force de gravite, des force de frottement… Toutefois la simulation suppose l’utilisation de matériaux indéformable et homogène.

Afin d’alléger la simulation, NX permet de ne soumettre que quelques corps à une lois physique. Par défaut aucun corps n’est selectionner. Il nous faut donc lui communiquer quel corps doit simuler la gravité et lesquel simule un capteur par exemple. C’est cela que nous allons configurer maintenant.

Pour commencer, rendez dans l’application Mécatronic concept designer depuis l’onglet Application.

Un fois dans MCD, selectionnez l’outil Corps rigide dans le groupe Mécanique.

Nous allons maintenant créer un corps physique rigide (indéformable) soumis au loi de la physique dans notre simulation. Ici les objets soumis à la phisyque sont :

  • La cabine d’ascenseur
  • Les portes de chaque étages

Aucune autres pièces ne doit se déplacer. Nous aurons donc 5 Corps rigide dans l’arbre du navigateur physique. Selectionner la cabine d’ascenseur dans sont intégralité (En utilisant l’arbre du navigateur d’assemblage)

Pour cette exemple nous laisserons les paramètre de masse et d’inertie à leur valeurs automatiques.

Info

Il est possible d’afiner les paramètres de simulation en donnant précisément la masse des éléments ou encore en précisant leur moment d’inertie. On peut alors simuler le comportement cinématique d’objet dont la répartition du poinds n’est pas homogène. La plupart des logiciel de CAO moderne permettent d’obtenir ces données pour peu que la maquette numérique soit suffisamment détaillée. Notons aussi qu’il est possible d’attribuer des étiquettes à des objets afin de simuler les intéractions entre plusieurs objets de manière optimisée. Par exemple si je créer des objets ayant une étiquette A, il n’interagirons pas avec les objets ayant l’étiquette B. Cela permet de fluidifier la simulation en évitant de couteux calcul au CPU.

Renommez le corps rigide en RB-Cabine (RB pour Rigid body) puis valider avec Appliquer.

Répéter cette opération afin de créer les corps rigide suivants :

  • RB-Porte0
  • RB-Porte1
  • RB-Porte2
  • RB-Porte3

Désormais, tout ces RigidBody obéissent à la gravité. Utiliser le bouton Jouer pour lancer la simulation.

Info

Vous pouvez essayer d’intéragir avec les objets de la simulation en utilisant la souris (drag & drop). Il est également possible de créer des boutons (ARU) ainsi que des voyants dans la simulation.

2. Création des articulations

Afin de contraindre les corps rigides crées précédemment, nous allons maintenant créer les articulations. Pour commencer, créons une articulation glissière entre la cabine et la le repère principal.

Cliquez d’abord sur articulation de glissement dans la rubrique Mécanique

Selectionnez ensuite la cabine comme objet à contraindre, mais laissez la base vide. De cette façon, NX contraindra la cabine par rapport au repère global (Sans quoi nous aurions du créer une corps rigique fixe ayant pour composant le chassis de l’ascenseur).

Et enfin, spécifer le vecteur. Selectionner un verteur vertical. Notons l’on donnera plus tard une vitesse de déplacement à la cabine. Une vitesse positive fera monter l’ascenseur et une valeur négative contrôlera la descente. Si le vecteur est dirigé vers le bas cela inversera cette configuration.

Renommez la liason en JT-Cabine-slider puis Valider avec OK.

Si vous essayer maintenant de lancer la simulation, vous ne remarquerez aucun changement flagrant. Pourtant nous avons contraint la cabine à un déplacement selon un seul axe. Elle ne peut pas tourner sur elle même par exemple contrairement au porte.

Recommencez maintenant ce processus afin de contraindre les 4 portes en utilisant une contrainte de glissement vers X positif.

Renommez les liasons afin d’obtenir l’abre suivant dans le navigateur physique (JT pour Joint):

Si vous tentez maintenant de lancer la simulation, vous remarquerez que seul la cabine continue de tomber. En effet, elle est soumise à une force vertical (la gravité) qui est orienté dans le même sens que son axe de glissement. Par conséquent, elle tombe avec une accélération de :

a = cos(0).g = g

3. Création des contrôles de vitesse

Nous allons mainteant contraindre nos RigidBody en termes de vitesse pour pouvoir les contrôler grâce à l’automate. Commencons par ouvrir le menu de Contrôle de vitesse situté dans le groupe Electrique de l’onglet Acceuil.

Selectionner ensuite l’une des articulation glissière créée précédemment, puis renommer le contrôle en CT-Porte0-slider-speed.

Répétez pour chaque liason afin d’obtenir l’arbre suivant :

Si vous lancez la simulation maintenant, aucune des pièces ne devrait se déplacer car nous leur avont imposer une vitesse de déplacement constante de 0mm/s. Essayer de modifier la vitesse d’une des corps en éditant le contrôle nouvellement créé.

4. Création des capteurs et des corps de collision.

NX offre la possibilité de simuler une large gamme de capteurs, des capteurs de contacts ou de distance jusqu’à tout d’encodeurs.

Notre ascenseur est doté de fourche optique TOR (Tout ou rien) que nous simulerons par des capteurs de distance très courte portée. Sous NX les capteurs de distance sont capable de calculer la distance qui les sépare d’un objet. Il est aussi possible de lui faire retourner un booléen lorsqu’un objet entre dans son champ. Ici encore et par soucis d’optimisation il nous faudra préciser quels objet sont compris dans les calculs de collision. Il nous faudra donc créer des corps de collision.

Les fourches optiques de notre système sont utile pour détecter l’état des portes (ouvertes ou fermées) ainsi que la position de l’ascenseur (étage). Il nous faut donc définir les portes et la cabine comme corps de collisions pour qu’il soit détectable par nos capteurs. Toutefois nous ne selectionneront que les surfaces utile à la detection.

Commençons par ouvrir l’outils de création de Corps de collisions située dans la rubrique Mécanique.

Selectionner ensuite la petite surface détectable par la fourche de présence cabine situé en bas à gauche de la cabine.

Puis renommer le corps de collission : CB-Cabine. Enfin, validez en laissant les paramètre par défaut :

Répeter cette opération pour les 4 portes (en selectionnant la face avant de chaque porte) afin d’oobtenir l’arbre suivant :

Nous pouvons désormais ajouter les capteurs. Pour créer un capteur mobile il est possible d’attacher le capteur à un corps rigide pour les synchroniser. Comme ici nos capteurs sont fixe, pas besoin de selectionner de corps rigide.

Ouvrez le menu de création de capteurs de distance située dans la rubrique Électrique.

A l’aide de l’outil Point sur Face, selectionnez la face vertical opposée à la surface à détecter. Essayer de placer le point au centre de la face.

En guise de paramètre, nous réduirons le champ d’action des capteur à 8mm et à 10° d’angle. Selectionner ensuite le vecteur normal à la face du capteur pour obtenir un aperçu comme ci-dessous :

Répéter avec tout les autres capteurs pour obtenir l’arbre suivant :

5. Création des signaux d’entrées

Maintenant que les capteurs et les actionneurs sont configuré, nous pouvons définir les signaux qui contrôleront la simulation. Comme dans un API, la simulation possède des signaux d’entrée et de sortie. Ici les sortie seront les capteurs puisque cette information doit remonter à l’automate. Les entrées seront les ordres de contrôles des actionneurs.

Pour simplifier la simulation nous n’utiliserons que des signaux booléen. Toutefois nous devrons convertir certain de ces signaux en vitesse pour contrôler les actionneurs.

Commençons par créer les signaux d’entrée permettant de faire monter et descendre la cabine. Ouvrez le menu de création de signaux situé dans la rubrique Électrique.

Créer ensuite un signal booléen d’entrée appelé : MOT_CAB_UP puis validez.

Les signaux doivent appartenir à des tables de signaux. Ici nous n’utiliserons qu’une seule table des signaux. Créer donc une nouvelle table en cliquant sur l’icône en bas à gauche de la fenêtre d’ajout de signal, puis renommer la table Signaux internes

Répeter l’opération (sans recréer de nouvelle table) afin de créer le signal MOT-CAB-DOWN.

Puis Créer les signaux booléen d’entrée de commandes des portes pour obtenir l’arbre suivant :

6. Création des signaux de sorties

Nous allons maintenant configurer les signaux de sortie. Pour cela il faut répétez le processus précédent en attachant un paramètre physique existant, ici l’état des capteurs de distance.

Cochez la case Connecter avec un paramètre Runtime puis selectionner le paramètre déclenché pour que la sortie soit configuré sur un paramètre booléen (TOR).

Renommez le signal CPT_CAB_0 puis validez avec OK.

Répétez jusqu’a obtenir l’arbre suivant :

7. Déplacement de l’Ascenseur

Nous avons terminer la création des signaux d’entrée et de sorties, nous devrons ensuite les connecter avec les variables automates. Toutefois, bien que nous ayons créé les signaux MOT_CAB_UP et MOT_CAB_DOWN, les contrôleurs de vitesse ne peuvent être contrôlé avec des booléen. Nous devons par conséquent convertir ces signaux booléen en une vitesse en mm/s.

Pour cela vous aller créer un bloc d’expression dans les Comportements Runtime. C’est à dire que nous allons modifier le comportement des objets physique que nous simulons.

Un bloc d’expression permet d’écrire une nouvelle loi de simulation. Cette loi possèdera des entrées, et des sorties. Ici les entrées seront nos paramètre booléen, et notre sorties sera une commande de vitesse en mm/s. Commencez par renommer le bloc d’expression en BE-Cabine (BE pour Behavior).

Créez ensuite 2 entrées à l’aide du bouton de droite :

  • IN_CAB_UP
  • IN_CAB_DOWN

Ascossié ensuite les Entrée avec leurs signaux respectifs :

Créer ensuite une sortie appelée OUT_CAB_SPEED. Cette sortie sera une Vitesse en mm/s

Liez ensuite la sortie a CT-Cabine-slider-speed. Dans le dernière onglets du Bloc d’expression, selectionner OUT_CAB_SPEED puis entrez une formule afin de donner à l’ascenseur une vitesse positive pour le faire monter ou négative pour le faire descendre.

Répétez le même processus pour créer un bloc d’expression qui contrôlera les portes…

Partie B - TIA portal & PLCSIM Advanced :

Le programme automate est déjà pré-écrit dans le fichier TIA.zip. Cependant ce programme comporte des erreurs que vous devez corriger en vous appuyant sur le jumeau numérique. Voici le Grafcet théorique du fonctionnement de l’automate :

Maintenant que tout les signaux sonts créé, nous allons configurer l’automate virtuel le connecter à la simulation.

  • Créer un nouveau projet
  • Ajouter les composants
    • Ajouter le CPU (ET 200SP CPU - CPU 1512SP F-1 PN - 6ES7 512-1SK01-0AB0)
    • Ajouter les 4 Entrées DI 8x24VDC HF 6ES7131-6BF00-0CA0
    • Ajouter les 4 Sorties DQ 8x24VDC HF 6ES7132-6BF00-0CA0
  • Connecter le PC et l’API Virtuel
    • Démarer l’automate virtuel dans PLCSIM Advanced
    • Cliquer sur le switch réseau de l’API
    • Dans les propriétés, cliquer sur adresses Ethernet
    • Ajouter un sous réseau
    • Définir l’IP de l’automate virtuel dans le projet
  • Simuler l’interface graphique sous TIA
    • Configurer l’IP de l’interface virtuel
    • Connecter l’interface virtuel à l’automate virtuel
  • Mettre à jour le programme pour faire fonctionner le dernière étage.

Ouvrir le projet

Dans le dossier TIA de votre dossier de travail ouvrez le fichier Ascenseur_UniLaSalle_VB6.ap16 avec TIA Portal. Lancer ensuite le logiciel PLCSIM Adv V3.0

Aller dans la vue du projet puis rendez vous dans la configuration de l’automate (PLC_1). Double-cliquez sur Configuration des appareils.

Ouvrez ensuite PLCSIM Advanced v3.0 et créez un nouvel automate virtuel ET 200SP, nommez le API-TP. Cliquer sur Start pour démarer l’automate virtuel.

Dans TIA Portal double-cliquez sur l’automate.

Dans les propriétés de l’automate rendez vous dans la rubrique Interface PROFINET, et renseignez l’IP de l’automate virtuel (Par défaut : 192.168.0.1).

Dans l’arbre de gauche, selectionner PLC_1 [CPU 1512…] puis cliquer sur Charger dans l’automate dans la barre d’outils.

Valider en cliquant sur charger pour envoyer le programme et la configuration dans l’automate virtuel.

Dans PLCSIM Advanced, Selectionner l’automate puis passer le en mode RUN.

Interconnexion WINCC - TIA - PLSIM - NX

Pour terminer, retourner dans Siemens Mecatronics concept designer. Dans la rubrique automatisation, ouvrez Configuration de signal externe.

Dans l’onglet PLCSIM, selectionnez l’automate API-TP puis cliquer sur Mettre à jour les Balises. Enfin, selectionnez toutes les balises.

Nous allons maintenant faire correspondre les signaux de la simulation avec les variable API. Pour cela rendez vous dans la rubrique Automatisation et ouvrez l’outil Corresp. de signaux.

Cliquer ensuite sur Executer correspondance auto ou assoscier les signaux mannuellement.

Info

Notons qu’il est important que les variable API et les signaux aient le même nom pour faciliter le processus.

Validez avec OK.


Auteur : Jules Topart - Sebastian GOMEZ - Dernière mise à jour: 5 février 2025