Tutoriel n°3

Dans ce modèle, une logique de gestion de production est implémentée pour décider quand arrêter/redémarrer la production en fonction de seuils de niveau de stock. À la fin du tutoriel, voici à quoi ressemblera votre simulation:

Créer un nouveau modèle

  1. Dans la barre d'outils, cliquez sur le bouton pour créer un nouveau modèle:
  2. Une fenêtre vous propose de choisir les unités et la date de début du modèle. Pour ce tutoriel, gardez les unités proposées par défaut et cliquez sur OK.
  3. Dans la barre d'outils, cliquez sur le bouton pour enregistrer votre modèle:

Au fil des étapes du tutoriel, pensez à enregistrer régulièrement l'avancement de votre modèle.

Etape 1 Ajouter les objets 3D

Dans cette étape, vous allez commencer par construire l'implantation 3D de votre modèle.

  1. Glissez-déposez les objets suivants de la librairie vers la vue 3D:
    • 1 Source
    • 1 Processor
    • 1 Queue
    • 1 Processor
    • 1 Sink
  2. Si besoin, déplacez les objets pour avoir approximativement les mêmes espacements que dans l'image ci-dessous:
  3. Cliquez sur le Processor1 pour le sélectionner.
  4. Dans les propriétés à droite, renommez le Processor1:
    • Nom: Machine1

  5. De la même manière, renommez les objets suivants:
  6. Objet Nouveau nom
    Queue1 Stock1
    Processor2 Machine2
    Sink1 Sortie1

    Voici la ligne de production avec les nouveaux noms:

Etape 2 Créer les connexions de flux

Dans cette étape, vous allez créer des connexions pour définir le flux des produits.

  1. Dans la vue 3D, pressez et maintenez la touche enfoncée. Votre pointeur de souris affiche un nouveau symbole:
  2. Tout en maintenant la touche enfoncée, cliquez successivement sur la source, la machine 1, le stock 1, la machine 2, puis la sortie:

    Ceci crée 4 connexions de flux:
    • de la source vers la machine 1
    • de la machine 1 vers le stock 1
    • du stock 1 vers la machine 2
    • de la machine 2 vers la sortie

Etape 3 Editer les propriétés des objets

Dans cette étape, vous allez paramétrer l'arrivée des produits et les temps de process des machines.

  1. Cliquez sur la Source pour la sélectionner.
  2. On suppose que l'on ne manque jamais de produits, comme s'il y avait un stock infini de matières premières. Dans les propriétés à droite, paramétrez le temps d'inter-arrivée des produits à 0 secondes:
    • Inter-Arrivaltime: 0
  3. Astuce: utilisez le raccourci standard Windows Ctrl + A pour sélectionner tout le texte.

  4. Cliquez sur la machine 1 pour la sélectionner.
  5. Dans les propriétés à droite, paramétrez le temps de process à 4 secondes:
    • Process Time: 4

    Veillez bien à laisser le paramètre Setup Time temps de réglage par défaut à 0 secondes.
  6. Cliquez sur la machine 2 pour la sélectionner.
  7. Dans les propriétés à droite, paramétrez le temps de process à 14 secondes:
    • Process Time: 14

    Veillez bien à laisser le paramètre Setup Time temps de réglage par défaut à 0 secondes.
  8. Cliquez sur le bouton Reset pour réinitialiser le modèle, puis cliquez sur le bouton Run pour lancer la simulation.

Remarquez qu'au fil du temps, des produits s'accumulent dans le stock 1:

Ceci est logique puisque la machine 2 est plus lente que la machine 1.

Avant de passer à l'étape suivante, cliquez sur le bouton Reset pour réinitialiser le modèle.

Etape 4 Mesurer l'évolution du stock

Dans cette étape, vous allez créer un tableau de bord pour afficher le nombre de produits dans le stock 1 en fonction du temps.

  1. Dans la barre d'outils, cliquez sur le bouton Dashboards tableaux de bord , puis sur Add Blank Dashboard ajouter un tableau de bord vide pour créer un nouveau tableau de bord:
  2. Double-cliquez dans le tableau de bord pour ouvrir la libraire de graphes:
  3. Dans la catégorie Content contenu , cliquez sur l'indicateur Content:
  4. Trois choix de graphiques apparaissent:
    • Bar Chart: diagramme à barres
    • Line Chart: courbe en fonction du temps
    • Table: tableau

    Cliquez sur Line Chart:

  5. Cliquez sur le rectangle blanc pour sélectionner le graphe. Remarquez que le panneau de droite se met à jour pour afficher les propriétés du graphe sélectionné.
  6. Dans les propriétés à droite, cliquez sur la pipette , puis dans la vue 3D cliquez sur le stock 1:
  7. Dans les propriétés à droite, section Text, cochez la case Custom Title titre personnalisé et tapez le nouveau titre du graphique:
    • Custom Title: Nombre de produits

  8. Cliquez sur le bouton Reset pour réinitialiser le modèle, puis cliquez sur le bouton Run pour lancer la simulation afin de vérifier que la courbe est bien affichée:
  9. Comme remarqué précédemment, le nombre de produits dans le stock 1 augmente puisque la machine 2 est plus lente que la machine 1.

Avant de passer à l'étape suivante, cliquez sur le bouton Reset pour réinitialiser le modèle.

Etape 5 Déclencher un arrêt de production

Dans la suite du tutoriel, on souhaite programmer la logique suivante:

  • lorsque le stock 1 atteint 5 produits, on arrête la machine 1
  • puis quand le stock 1 redescend à 2 produits, on redémarre la machine 1, après un délai de redémarrage de 7 secondes

Voici cette logique représentée sous forme d'organigramme:

Le but principal de ce tutoriel est de vous faire découvrir comment programmer votre propre logique, avec l'outil Process Flow. Process Flow est un mode de programmation par logigramme, particulièrement bien adapté pour visualiser de façon séquentielle et logique les actions à mener.

Dans cette étape, vous allez implémenter la 1ère partie de la logique: lorsque le stock 1 atteint 5 produits, on arrête la machine 1.

  1. Dans la barre d'outils, cliquez sur le bouton Process Flow, puis sur Add a General Process Flow pour créer une nouvelle logique:
  2. À présent, vous avez 3 onglets ouverts dans votre espace de travail:

    De préférence, organisez ces 3 fenêtres comme ci-dessous:

    • à gauche: l'onglet et en-dessous l'onglet
    • à droite: l'onglet

    Ceci vous permettra de garder un oeil sur chaque fenêtre pour la suite du tutoriel.

  3. Cliquez dans la fenêtre Process Flow. Remarquez que le panneau de gauche se met à jour pour afficher la librairie d'activités:
  4. Pour cette 1ère partie de la logique, 3 activités seront nécessaires:

  5. Glissez-déposer une activité Schedule Source de la librairie vers la fenêtre Process Flow:
  6. Le rôle de cette activité est de créer des jetons en suivant un planning (schedule). Dans notre logigramme, cette activité va nous servir à créer 1 seul jeton au temps t = 0 secondes, pour démarrer la logique dès le début de la simulation.

  7. Cliquez sur l'icône de l'activité Source pour ouvrir ses propriétés, et renommez l'activité:
    • Nom: démarrer logique à t=0

  8. Laissez tous les autres paramètres par défaut. Remarquez qu'au temps t = 0, cette activité va créer une quantité de 1 jeton:
  9. Cliquez dans le vide à côté de l'activité pour fermer ses propriétés. Comme le nouveau nom de l'activité est plus long, n'hésitez pas à augmenter la largeur de l'activité pour que le texte soit plus lisible:
  10. Cliquez sur le bouton Reset pour réinitialiser le modèle, puis cliquez sur le bouton Run pour lancer la simulation.
  11. Remarquez que, comme prévu, 1 jeton est créé dès le début de la simulation:

  12. Cliquez sur le bouton Reset pour réinitialiser le modèle.

  13. Glissez-déposer une activité Wait for Event en-dessous de l'activité précédente:
  14. Le rôle de cette activité est d'attendre un événement. Ici, cette activité va nous servir à attendre que le stock 1 monte à 5 produits.

  15. Remarquez qu'il y a un symbole à côté de l'activité Wait for Event, pour vous avertir que vous devez préciser l'événement à attendre:
    • Déplacez votre curseur sur le symbole : la pipette apparaît.
    • Cliquez sur la pipette , puis cliquez sur le stock 1 dans la vue 3D.
    • Choisissez l'événement Stock1 > On Content Change quand le contenu du stock 1 change .

  16. Cliquez sur l'icône de l'activité Wait for Event pour ouvrir ses propriétés, et modifiez les 3 paramètres suivants:
    • renommez l'activité: attendre seuil d'arrêt
    • Change Rule règle de changement: Increase To Exact Value augmenter à une valeur exacte
    • Value: 5

  17. Cliquez dans le vide à côté de l'activité pour fermer les propriétés. Déplacez l'activité pour l'aligner à gauche avec la précédente activité, et redimensionnez l'activité pour avoir la même largeur que la précédente:
  18. Connectez les 2 activités à l'aide de la méthode suivante:
    • Déplacez votre curseur sur la 1ère activité. Remarquez que 4 points d'accroche apparaissent:
    • Déplacez votre curseur sur le point d'accroche inférieur de la 1ère activité. Votre pointeur de souris affiche le symbole de connexion:
    • Cliquez et glissez, tout en maintenant le clic enfoncé, jusqu'au bord supérieur de la 2ème activité.
  19. Glissez-déposez une activité Custom Code en-dessous de l'activité précédente:
  20. Le rôle de cette activité est de créer une action personnalisée. Ici, cette activité va nous servir à arrêter la machine 1.

  21. Déplacez l'activité Custom Code pour la coller en-dessous de l'activité précédente:
  22. Les 2 activités collées forment un bloc d'activités. Former un bloc ou créer une flèche entre 2 activités est équivalent.

  23. Cliquez sur l'icône de l'activité Custom Code pour ouvrir ses propriétés, et modifiez les paramètres suivants:
    • renommez l'activité: arrêter machine 1
    • Cliquez sur le bouton et choisissez l'option Control > Stop Object arrêter l'objet :
    • Pour désigner l'objet à arrêter, cliquez sur la pipette du paramètre Object, puis cliquez sur la machine 1 dans la vue 3D:
    • Laissez tous les autres paramètres par défaut, et cliquez dans le vide à côté de l'activité pour fermer ses propriétés.
  24. Cliquez sur le bouton Reset pour réinitialiser le modèle, puis cliquez sur le bouton Run pour lancer la simulation.

Dans la vue 3D, vérifiez que la machine 1 est bien arrêtée dès qu'il y a 5 produits dans le stock:

Dans la fenêtre Process Flow, remarquez aussi que le jeton attend dans l'activité attendre seuil d'arrêt. Et dès qu'il y a 5 produits en stock, le jeton avance vers l'activité suivante pour commander l'arrêt de la machine 1.

Dans le tableau de bord, n'hésitez pas à augmenter la hauteur du graphique pour affiner l'échelle des ordonnées:

Le graphique montre bien que le stock est monté à 5 produits. Puis, comme la machine 2 continue de consommer des produits alors que la machine 1 est à l'arrêt, le stock redescend à zéro.

Et quand le dernier produit quitte la machine 2, la simulation s'arrête toute seule, car il n'y a plus aucun événement à venir.

Avant de passer à l'étape suivante, cliquez sur le bouton Reset pour réinitialiser le modèle.

Etape 6 Redémarrer la production

Dans cette étape, vous allez implémenter la logique suivante: lorsque le stock 1 descend à 2 produits, on redémarre la machine 1.

Pour l'instant, nous souhaitons tester de redémarrer la machine 1 sans délai. Le délai de redémarrage de 7 secondes sera ajouté ultérieurement.

  1. Cliquez dans la fenêtre Process Flow. Remarquez que le panneau de gauche se met à jour pour afficher la librairie d'activités.
  2. Pour cette partie de la logique, 2 activités seront nécessaires:

  3. Glissez-déposer une activité Wait for Event en-dessous de l'activité précédente:
  4. Ici, cette activité va nous servir à attendre que le stock 1 descende à 2 produits.

  5. Déplacez l'activité Wait for Event pour la coller en-dessous de l'activité précédente:
  6. Pour préciser l'événement à attendre, la méthode est la même qu'en 1ère partie de la logique:
    • Déplacez votre curseur sur le symbole : la pipette apparaît.
    • Cliquez sur la pipette , puis cliquez sur le stock 1 dans la vue 3D.
    • Choisissez l'événement Stock1 > On Content Change quand le contenu du stock 1 change .

  7. Cliquez sur l'icône de l'activité Wait for Event pour ouvrir ses propriétés, et modifiez les 3 paramètres suivants:
    • renommez l'activité: attendre seuil de redémarrage
    • Change Rule règle de changement: Decrease To Exact Value diminuer à une valeur exacte
    • Value: 2

  8. Glissez-déposez une activité Custom Code en-dessous de l'activité précédente:
  9. Ici, cette activité va nous servir à redémarrer la machine 1.

  10. Déplacez l'activité Custom Code pour la coller en-dessous de l'activité précédente:
  11. Cliquez sur l'icône de l'activité Custom Code pour ouvrir ses propriétés, et modifiez les paramètres suivants:
    • renommez l'activité: redémarrer machine 1
    • Cliquez sur le bouton et choisissez l'option Control > Resume Object redémarrer l'objet:
    • Pour désigner l'objet à redémarrer, cliquez sur la pipette du paramètre Object, puis cliquez sur la machine 1 dans la vue 3D:
    • Laissez tous les autres paramètres par défaut, et cliquez dans le vide à côté de l'activité pour fermer ses propriétés.
  12. Cliquez sur le bouton Reset pour réinitialiser le modèle, puis cliquez sur le bouton Run pour lancer la simulation.

Dans la vue 3D, vérifiez que la machine 1 redémarre bien dès que le stock redescend à 2 produits:

Dans la fenêtre Process Flow, remarquez aussi que le jeton attend dans l'activité attendre seuil de redémarrage. Et dès que le stock descend à 2 produits, le jeton avance vers l'activité suivante pour commander le redémarrage de la machine 1.

Par contre, pour l'instant toute la logique ne s'exécute qu'une seule fois, elle ne tourne pas en boucle.

Avant de passer à l'étape suivante, cliquez sur le bouton Reset pour réinitialiser le modèle.

Etape 7 Exécuter la logique en boucle

Dans cette étape, vous allez configurer la logique pour tourner en boucle:

  1. Déplacez votre curseur sur le bord gauche de l'activité redémarrer machine 1. Votre pointeur de souris affiche le symbole de connexion:
  2. Cliquez et glissez, tout en maintenant le clic enfoncé, jusqu'au bord gauche de l'activité attendre seuil d'arrêt:
  3. Puis vous pouvez cliquer dans le vide à côté du bloc pour le déselectionner.

  4. Cliquez sur le bouton Reset pour réinitialiser le modèle, puis cliquez sur le bouton Run pour lancer la simulation.
  5. Quand le stock descend à 2 produits, la machine 1 redémarre, et vérifiez bien que le jeton revient à l'activité attendre seuil d'arrêt:

    Pendant la simulation, vous n'avez pas le temps de voir le jeton passer sur les activités arrêter machine 1 et redémarrer machine 1, car ces activités sont exécutées instantanément.

  6. Cliquez sur le bouton Reset pour réinitialiser le modèle.
  7. Dans le tableau de bord , cliquez sur le graphique Nombre de produits pour le sélectionner. Remarquez que le panneau de droite se met à jour pour afficher les propriétés du graphe sélectionné.
  8. Dans les propriétés à droite, cliquez sur la pipette , puis dans la vue 3D cliquez sur la machine 1:
  9. Cliquez sur le bouton Reset pour réinitialiser le modèle, puis cliquez sur le bouton Run pour lancer la simulation.

Maintenant le graphique montre 2 courbes en fonction du temps:

  • le nombre de produits dans le stock 1
  • le nombre de produits sur la machine 1, qui ici ne varie qu'entre 0 et 1

Ce graphique est aussi un excellent outil pour bien vérifier que:

  • lorsque le stock 1 monte à 5 produits, la production de la machine 1 est arrêtée
  • puis quand le stock 1 redescend à 2 produits, la production redémarre sur la machine 1
  • et ainsi de suite en boucle

Avant de passer à l'étape suivante, cliquez sur le bouton Reset pour réinitialiser le modèle.

Etape 8 Ajouter un délai de redémarrage

Dans cette dernière étape, vous allez ajouter un délai de 7 secondes avant de redémarrer la machine 1:

  1. Cliquez dans la fenêtre Process Flow. Remarquez que le panneau de gauche se met à jour pour afficher la librairie d'activités.
  2. Dans la catégorie Basic, glissez-déposer une activité Delay en-dessous des activités précédentes:
  3. Déplacez l'activité Delay pour la glisser juste au-dessus de l'activité redémarrer machine 1:
  4. Cliquez sur l'icône de l'activité Delay pour ouvrir ses propriétés, et modifiez les paramètres suivants:
    • renommez l'activité: délai de redémarrage
    • Delay Time: 7

  5. Cliquez sur le bouton Reset pour réinitialiser le modèle, puis cliquez sur le bouton Run pour lancer la simulation.

Vérifiez que lorsque le stock descend à 2 produits, la machine 1 ne redémarre pas immédiatement, mais après le délai défini.

Dans la fenêtre Process Flow, remarquez qu'il y a une animation sur le jeton pendant le délai de redémarrage:

Vous pouvez aussi constater ce délai de redémarrage dans le graphique:

Conclusion

Félicitations ! Vous avez complété votre 3ème tutoriel.

Le modèle corrigé est disponible en téléchargement sur ce lien:
tuto3_logique_production.fsm.

Vous souhaitez découvrir plus de fonctionnalités ? Consultez des tutoriels disponibles en anglais:
docs.flexsim.com/en/25.0/Tutorials/Introduction/

N'hésitez pas à nous contacter pour toute question à l'adresse [email protected].

Auteurs: C. Augsburger, A. Wilson, P. Gauly.