Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
REAL-TIME DIGITAL SIMULATOR
Document Type and Number:
WIPO Patent Application WO/2011/036384
Kind Code:
A1
Abstract:
The invention relates to a digital simulator of an automated mechanical facility including a digital environment for multi-agent distributed simulation including first virtual digital objects (30) modelling functional components of the facility and second virtual digital objects (31) modelling items in motion in said facility, said virtual objects being cyclically stimulated to interact with real-time command and control software in order to simulate the real-time dynamic behaviour of the facility with the items. The digital simulation environment is structured such that the virtual objects interact with one another according to emergent behaviour based on the second virtual objects.

Inventors:
DAYMIER ERIC (FR)
GIRODET FRANCK (FR)
GHEZAL MOHAMMED (FR)
TRESSE DIDIER (FR)
Application Number:
PCT/FR2010/051948
Publication Date:
March 31, 2011
Filing Date:
September 20, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SOLYSTIC (FR)
DAYMIER ERIC (FR)
GIRODET FRANCK (FR)
GHEZAL MOHAMMED (FR)
TRESSE DIDIER (FR)
International Classes:
G05B17/02
Domestic Patent References:
WO2005101148A22005-10-27
Foreign References:
US20040139036A12004-07-15
US20070112912A12007-05-17
US20040186697A12004-09-23
Other References:
CORNELIA TRIEBIG ET AL: "Agent-Based Simulation for Testing Control Software of High Bay Warehouses", 1 January 2005, MULTIAGENT SYSTEM TECHNOLOGIES LECTURE NOTES IN COMPUTER SCIENCE;LECTURE NOTES IN ARTIFICIAL INTELLIG ENCE;LNCS, SPRINGER, BERLIN, DE, PAGE(S) 229 - 234, ISBN: 978-3-540-28740-7, XP019018076
SVEN DOMINKA, CHRISTIAN HEUSCHMANN: "Prozessgutsimulation und Anlagenteilsimulation zur Verkürzung der Inbetriebnahme", AUTOMATISIERUNGSTECHNISCHE PRAXIS (ATP), vol. 49, no. 3, March 2007 (2007-03-01), München, pages 55 - 60, XP002591965
Attorney, Agent or Firm:
PRUGNEAU-SCHAUB (FR)
Download PDF:
Claims:
REVENDICATIONS

1 ) Un simulateur numérique, comprenant un environnement numérique de simulation distribué du type multi-agents incluant des premiers objets numériques virtuels (30) modélisant des composants fonctionnels d'une installation électromécanique automatisée et des seconds objets numériques virtuels (31 ) modélisant des articles en mouvement entre une entrée et une sortie dans cette installation, ces objets virtuels pouvant être stimulés de façon cyclique pour interagir avec un logiciel de contrôle/commande temps réel (2) afin de simuler un comportement dynamique temps réel de l'installation avec les articles, caractérisé en ce que l'environnement distribué du type multi-agents est un environnement émergent dans lequel naissent et disparaissent les seconds objets virtuels, en ce qu'il comprend un générateur automatique (33) d'objets virtuels apte à générer lesdits seconds objets virtuels dans cet environnement multi-agents émergent de telle sorte que ces second objets virtuels stimulent les premiers objets virtuels et imposent une dynamique de comportement. 2) Le simulateur selon la revendication 1 , dans lequel les objets virtuels interagissent avec le logiciel de contrôle/commande en exploitant un protocole de communication TCP/IP.

3) Le simulateur selon la revendication 2, dans lequel des valeurs de terrain sont affectées auxdits seconds objets virtuels, ces valeurs de terrain provenant de relevés (MPR) réalisés sur articles réels dans une installation réelle.

4) Le simulateur selon la revendication 3, dans lequel ces valeurs de terrain incluent des données indicatives de dates de passage devant des détecteurs de passage dans l'installation réelle et/ou des données indicatives d'une latence de traitement dans l'installation.

5) Le simulateur selon l'une des revendications précédentes, dans lequel l'environnement de simulation est interfacé à un moteur graphique (12) pour afficher une représentation graphique animée de l'installation avec lesdits articles.

6) Le simulateur selon l'une des revendications précédentes, dans lequel les premiers objets virtuels modélisent respectivement des composants fonctionnels d'une machine de tri postal et les seconds objets virtuels modélisent des articles de courrier.

7) Le simulateur selon la revendication 6, comprenant un générateur automatique (33) d'objets virtuels apte à générer les seconds objets virtuels en série à une certaine cadence dans l'environnement distribué multi-agents.

8) Le simulateur selon la revendication 6, dans lequel les premiers objets virtuels modélisent des convoyeurs d'articles de courrier.

9) Le simulateur selon la revendication 6, dans lequel les premiers objets virtuels modélisent des volets d'aiguillage.

10) Le simulateur selon la revendication 5, dans lequel les premiers objets virtuels modélisent des cellules de détection de passage.

1 1 ) Le simulateur selon la revendication 5, dans lequel les premiers objets virtuels modélisent des empileurs de sortie de tri. 12) Procédé pour tester un logiciel de contrôle/commande d'une installation électromécanique automatisée, caractérisé en ce qu'il consiste à mettre en interaction le logiciel avec un simulateur selon la revendication 1 à travers un canal de communication, à inclure des stops de contrôle dans le logiciel à tester et à générer des seconds objets virtuels dans l'environnement multi-agents du simulateur pour stimuler le logiciel par interaction avec les premiers objets virtuels du simulateur.

Description:
Simulateur numérique temps réel

L'invention concerne le domaine de la simulation numérique d'une installation électromécanique automatisée comme une machine de tri postal automatisé d'articles de courrier.

Une machine de tri postal comprend des convoyeurs aptes à déplacer en série des articles de courrier le long d'un certain chemin de convoyage propre à chaque article, par exemple entre une entrée de dépilage et une sortie de tri. Des actionneurs, tels que des volets d'aiguillages, sont placés sur le chemin de convoyage pour faire suivre à chaque article de courrier une portion déterminée du chemin de convoyage. Des périphériques tels qu'une caméra avec un système de reconnaissance de caractères par OCR pour la lecture automatique d'une adresse postale sur chaque article, une imprimante pour l'impression d'un code à barres d'identification sur chaque article et des détecteurs de passage qui réagissent au passage de chaque article sont également disposés le long du chemin de convoyage afin de pouvoir réaliser un tri automatisé des articles de courrier.

Tous ces composants fonctionnels tels que convoyeurs, actionneurs, périphériques, détecteurs de passage sont bien entendu synchronisés en temps réel par un logiciel de contrôle/commande pour suivre le déplacement des articles de courrier dans la machine.

Ce logiciel de contrôle/commande peut inclure différentes couches de logiciel, en allant d'une couche à haut niveau d'abstraction correspondant à l'exploitation de la machine par un opérateur, par exemple la couche correspondant à une interface homme/machine, à une couche à bas niveau d'abstraction correspondant notamment à la gestion en temps réel des interactions entre les composants de la machine et les articles de courrier.

Le document de brevet US-2004/0186697 divulgue une méthode d'aide à la conception d'une telle installation automatisée en utilisant un simulateur numérique. La méthode consiste à représenter les composants fonctionnels de l'installation automatisée par un modèle numérique comprenant des objets numériques virtuels modélisant chacun un composant fonctionnel de l'installation. Ces objets virtuels interagissent les uns avec les autres dans un environnement de simulation distribué de type multi-agents, ces objets virtuels communiquant en outre selon un certain protocole de communication avec un logiciel de contrôle/commande temps réel de l'installation réelle. Dans cet environnement de simulation, le comportement dynamique de chaque composant individuel de l'installation automatisée est simulé par un objet virtuel correspondant et les interactions entre ces objets virtuels sont détectées de façon cyclique dans l'environnement de simulation et sont reportées à l'unité de contrôle/commande sous la forme d'événements d'entrée/sortie de telle sorte qu'il est possible de basculer entre une mise en exploitation réelle de l'installation automatisée et une mise en exploitation virtuelle de l'installation automatisée et inversement pour tester l'effet de modifications ou d'ajouts de composants fonctionnels dans l'installation automatisée réelle ou virtuelle.

Le document de brevet WO 2005/101 148 divulgue également un simulateur numérique d'une installation automatisée mais qui est agencée pour traiter des articles en nombre, ici des articles roulants qui sont déplacés dans l'installation. Dans l'environnement de simulation, les objets virtuels qui modélisent les articles roulants sont associés à des objets virtuels modélisant des composants dynamiques de l'installation tels que des convoyeurs de telle sorte que tous les états de l'installation automatisée avec les articles roulants peuvent être testés en s'appuyant sur une représentation graphique animée d'une simulation de l'installation automatisée.

Globalement, il est donc connu de réaliser un simulateur numérique d'une installation électromécanique automatisée comprenant dans une unité de traitement de données un environnement numérique de simulation distribué du type multi-agents incluant des objets numériques virtuels modélisant des composants fonctionnels de l'installation et des objets numériques virtuels modélisant des articles en mouvement dans cette installation et de stimuler de façon cyclique ces objets virtuels en les faisant interagir avec un logiciel de contrôle/commande temps réel afin de représenter graphiquement une simulation du comportement dynamique de l'installation avec les articles. Bien que ce genre de simulateur numérique puisse apporter des avantages pour valider une nouvelle conception mécanique d'une machine de tri postal sans passer par des étapes de maquettage de la machine de tri postal, il ne permet pas de simuler de manière exacte le comportement dynamique de cette machine parce que l'exactitude du comportement dynamique de la machine dépend non seulement des valeurs de sortie des composants fonctionnel de la machine mais aussi des temps de latence pour les produire. Or ces temps de latence sont très dépendants des caractéristiques intrinsèques des articles de courrier qui sont passés dans la machine de tri postal, ces temps de latence variables provoquant des perturbations que le contrôle/commande temps réel doit gérer.

Il se trouve que, par exemple, pour réaliser des tests de non régression sur des évolutions d'un logiciel de contrôle/commande temps réel d'une machine de tri postal, il est utile de pouvoir prendre en compte un très grand nombre d'articles de courrier ayant des comportements très hétérogènes dans la machine en raison de leurs dimensions physiques (hauteur, largeur, épaisseur), de leur texture (plastique, papier), des temps de latence variables (temps de réponse pour la lecture de l'adresse postale par exemple) au cours de leur traitement dans la machine de tri et des données acquises par la machine (résultat de la lecture de l'adresse postale par exemple). Le but de l'invention est donc de proposer un simulateur numérique pour une machine de tri postal par exemple apte à prendre en compte un comportement hétérogène d'un grand nombre d'articles de courrier dans la machine. A cet effet, l'invention a pour objet un simulateur numérique, comprenant un environnement numérique de simulation distribué du type multi-agents incluant des premiers objets numériques virtuels modélisant des composants fonctionnels d'une installation électromécanique automatisée et des seconds objets numériques virtuels modélisant des articles en mouvement entre une entrée et une sortie dans cette installation, ces objets virtuels pouvant être stimulés de façon cyclique pour interagir avec un logiciel de contrôle/commande temps réel afin de simuler un comportement dynamique temps réel de l'installation avec les articles, caractérisé en ce que l'environnement distribué du type multi-agents est un environnement émergent dans lequel naissent et disparaissent les seconds objets virtuels, en ce qu'il comprend un générateur automatique d'objets virtuels apte à générer lesdits seconds objets virtuels dans cet environnement multi-agents émergent de telle sorte que ces second objets virtuels stimulent les premiers objets virtuels et imposent une dynamique de comportement. Le simulateur selon l'invention peut présenter les particularités suivantes :

- les objets virtuels interagissent avec le logiciel de contrôle/commande en exploitant un protocole de communication TCP/IP.

- des valeurs de terrain sont affectées auxdits seconds objets virtuels, ces valeurs de terrain provenant de relevés réalisés sur des articles réels dans une installation réelle.

- l'environnement de simulation est interfacé à un moteur graphique pour afficher une représentation graphique animée de l'installation avec lesdits articles, cette représentation graphique pouvant être en 3 dimensions.

- les premiers objets virtuels modélisent respectivement des composants fonctionnels d'une machine de tri postal et les seconds objets virtuels modélisent des articles de courrier. L'idée à la base de l'invention est donc de faire en sorte de privilégier dans les interactions entre objets virtuels de l'environnement de simulation, le comportement individuel des objets modélisant les articles de courrier par rapport au comportement individuel des autres objets modélisant les composants fonctionnels de la machine de tri postal.

Les objets virtuels qui modélisent les articles de courrier peuvent être représentés par exemple sous la forme d'une classe dans un langage de modélisation unifié et comporter des méthodes de classe pour la réception, l'envoi et le traitement de messages. La structuration des objets virtuels et de leurs interactions est telle que les objets virtuels qui modélisent les composants fonctionnels de la machine subissent la dynamique de comportement des objets virtuels qui modélisent les articles postaux.

Un tel agencement est particulièrement bien adapté pour affecter aux objets virtuels correspondant aux articles de courrier des valeurs d'attribut très hétérogènes et représentatifs de la réalité d'un contexte de tri postal. En particulier, avec cet agencement, on peut facilement affecter à ces objets virtuels des valeurs de terrain provenant de relevés réalisés sur articles postaux passés dans une machine de tri postale réelle. On peut également générer, dans l'environnement de simulation, des objets virtuels correspondant aux articles postaux ayant des valeurs d'attributs arbitraires, par exemple pour réaliser des tests aux limites. En pratique, dans une machine de tri postal, on peut avoir des sections de convoyage avec des zones de frottement plus accentuées, par exemple dans un virage du convoyeur ce qui entraîne une variation de la vitesse de déplacement des articles de courrier. Pour autant, les articles de courrier qui passent dans cette section de convoyage ne ralentissent pas de la même façon. On peut donc attacher à un objet virtuel correspondant à un article de courrier des données de terrain correspondant respectivement à des dates de passage relevées devant des capteurs de passage dans une machine réelle et, en fonction de ces dates, générer par extrapolation pour cet objet virtuel un profil de vitesse qui sera suivi par l'objet virtuel pendant le processus de simulation en temps réel. On comprendra que ce profil de vitesse influencera le comportement dans le temps des autres composants fonctionnels de la machine et donc garantira un fonctionnement du simulateur très proche du fonctionnement réel de la machine de tri postal.

Le simulateur selon l'invention permet donc de simuler le comportement d'une machine de tri postal avec des données de terrain ce qui offre la possibilité de réaliser par exemple de façon virtuelle un même processus de tri d'articles de courrier avec différentes versions du logiciel de contrôle/commande temps réel en y incluant des « stop de contrôle logiciel », le stop de contrôle logiciel figeant au même instant le logiciel lui-même ainsi que tout le contexte d'environnement machine, ce qui est exclu avec une machine de tri postal réelle. On peut donc comprendre qu'un tel simulateur permet de mettre au point rapidement du logiciel pour une telle machine sans disposer de la machine réelle ce qui peut contribuer à réduire les coûts de développement de ce logiciel et de manière plus générale les coûts de développement d'une telle machine de traitement automatisé du courrier. Le simulateur selon l'invention peut s'appliquer encore à la simulation d'une installation automatisée de manipulation de bacs destinés à transporter des articles de courrier, mais également à tout autre type d'installation électromécanique automatisée dans laquelle des articles en nombre sont par exemple fabriqués, manipulés ou encore exploités sous le pilotage d'un logiciel de contrôle/commande temps réel.

Le simulateur selon l'invention est maintenant décrit ci-après plus en détail en relation avec les figures.

La figure 1 montre de façon schématique le simulateur temps réel selon l'invention constitué ici d'un émulateur numérique de machine de tri postale interfacé à un poste de contrôle/commande temps réel.

La figure 2 représente de façon schématique une architecture logicielle de l'émulateur dans lequel l'environnement virtuel de simulation prend en compte des enregistrements de données de terrain représentatives de caractéristiques dynamiques d'envois réels passés dans une machine de tri postal.

La figure 3 représente schématiquement la structure de l'environnement virtuel de simulation à comportement émergent.

La figure 4 représente de façon schématique la structure d'un enregistrement de données de terrain pris en compte dans l'environnement virtuel de simulation.

La figure 5 est un diagramme de classe qui illustre un exemple d'architecture logicielle de l'émulateur.

La figure 6 est un diagramme de classe qui illustre plus particulièrement les objets virtuels modélisant les composants fonctionnels de la machine de tri postal.

La figure 7 est un diagramme de classe qui illustre plus particulièrement les objets virtuels qui modélisent les articles postaux.

La figure 8 est une représentation dynamique de l'interaction entre les objets virtuels modélisant les articles postaux et les objets virtuels modélisant les composants fonctionnels de la machine pour mettre en évidence le comportement émergent selon l'invention.

Sur la figure 1 , on a représenté schématiquement un simulateur temps réel selon l'invention appliqué ici à une machine de tri postal automatisée d'articles de courrier.

Ce simulateur temps réel est constitué d'une partie dite émulateur numérique 1 de la physique de la machine de tri postal et d'une autre partie qui correspond à un poste de contrôle/commande temps réel 2 de la physique de la machine de tri.

Le poste de contrôle commande temps réel 2 comprend ici une couche de logiciel de bas niveau d'abstraction 2A pour le pilotage temps réel des actionneurs, des capteurs et des périphériques de la machine de tri. Cette couche de logiciel peut être elle-même pilotée par une autre couche de logiciel à plus haut niveau d'abstraction 2B constituant par exemple une interface homme/machine permettant de réaliser une séquence de tri postal en simulation. On peut aussi prévoir en relation avec ce poste un panneau de commande avec des boutons poussoirs par exemple pour le démarrage ou l'arrêt de la machine virtuelle.

L'émulateur 1 est implémenté ici dans une unité de traitement de données avec écran d'affichage qui est raccordée au poste de contrôle/commande 2 par l'intermédiaire d'un canal de communication, par exemple un bus Ethernet 3, exploitant un protocole de communication tel que « TCP/IP », ce canal de communication remplaçant ici un bus de terrain, appelé par la suite IBS, existant normalement entre les composants fonctionnels de la machine de tri et le poste de contrôle/commande temps réel.

Sur la figure 2, on a représenté l'architecture logicielle générale de l'émulateur 1 . L'émulateur 1 comprend une première tâche 10 qui a la fonction d'une interface de communication sur le bus Ethernet 3 selon le protocole TCP/IP. Cette tâche 10 fait transiter de façon cyclique des données d'entrée/sortie formatées dans des trames qui circulent sur le bus 3.

L'émulateur comprend encore une tâche d'émulation 1 1 qui crée l'environnement virtuel numérique de simulation dans un espace à trois dimensions. Cet environnement virtuel modélise dans cet espace le comportement dynamique des composants fonctionnels de la machine de tri postal mais également des articles postaux qui sont déplacés dans la machine de tri postal. L'environnement de simulation est rafraîchi de façon cyclique selon ici une période de 1 ms qui peut être plus courte que la période de travail d'un bus de terrain ce qui permet de solliciter le système de contrôle/commande temps réel dans des conditions réelles. Le simulateur comprend également un moteur graphique 12, ici un moteur graphique 3D qui vient exploiter une représentation graphique de l'environnement de simulation stockée dans une base de données 13 mise à jour par la tâche 1 1 . En pratique, l'émulateur de la machine de tri postal est créé à partir d'une représentation numérique statique des composants fonctionnels de la machine, par exemple en utilisant un système de conception assistée par ordinateur tel que le système connu sous le nom de CATIA™. Cette représentation numérique statique est enrichie pour attribuer un comportement dynamique à ces composants fonctionnels, par exemple en utilisant un outil de modélisation, d'animation et de rendu en 3D tel que le logiciel connu sous le nom de 3DStudioMax™. Par exemple, pour un objet modélisant un moteur de la machine de tri postal, cet outil va permettre d'y associer des attributs de comportement tels que vitesse nominale et accélération, mais aussi des attributs d'entrée/sortie pour communiquer avec le logiciel de contrôle/commande. A partir de cette modélisation enrichie de la machine de tri postal, on peut construire à l'aide d'un langage de modélisation unifié tel que java™ ou C++™ des objets numériques virtuels de modélisation des composants fonctionnels de la machine de tri postal qui constituent un système distribué du type multi-agents. Ce système distribué forme l'environnement de simulation.

La figure 3 montre plus en détail l'environnement de simulation distribué comprenant des premiers objets virtuels 30 qui modélisent respectivement les composants fonctionnels de la machine de tri, par exemple un moteur d'entraînement d'une courroie, une courroie de convoyage, un volet d'aiguillage, un capteur de passage, un périphérique, etc.... Ces objets virtuels peuvent être implémentés dans l'environnement de simulation par exemple par instanciation d'une classe d'objets d'un langage de programmation de haut niveau d'abstraction.

L'environnement de simulation comporte aussi des seconds objets virtuels 31 qui modélisent des articles de courrier générés en série et qui interagissent avec les premiers objets virtuels 30. Les flèches 32 symbolisent que ces objets virtuels 30 et 31 sont structurés de telle manière à interagir entre eux selon un comportement émergent dont la base d'activation est constituée par les seconds objets virtuels 31 .

Sur la figure 3, le bloc 33 représente le générateur d'objets virtuels 31 qui fait partie de l'environnement de simulation. Ce générateur 33 peut générer selon l'invention des objets virtuels 31 en exploitant une base 34 d'enregistrements indiquée par MPR (« Mail Pièce Record ») sur la figure 2 contenant des valeurs de terrain relevées sur des articles postaux réels passant dans une machine de tri postal réelle. La figure 4 illustre un exemple du contenu d'un enregistrement 35 de la base 34. Celui-ci comprend un numéro d'identification d'article de courrier ID, des valeurs de dimensions de l'article de courrier considéré telles que la hauteur H, longueur L et épaisseur E, ainsi que d'autres valeurs de terrain relevées à différents instants sur l'article pendant son déplacement dans la machine, par exemple une date de passage devant un premier capteur D1 , les valeurs d'entrée/sortie d'un actionneur I/O 1 , la latence sur un traitement de périphérique L1 . Il est entendu que cette liste n'est pas exhaustive et que plusieurs de telles valeurs peuvent être empilées dans l'enregistrement 35. L'utilisation de ces données de terrain permet selon l'invention de tester un logiciel de contrôle/commande pour machine de tri postal avec une simulation de la machine de tri postal cible et des données de terrain relevées sur une machine de tri postal réelle du même modèle. L'utilisation de ces données de terrain permet encore de contrôler le test d'un tel logiciel de contrôle/commande avec la simulation d'une machine de tri postal, dont le contexte est étudié et qui n'existe pas encore physiquement, et des données de terrain relevées sur une machine de tri postal réelle d'un autre modèle.

Le comportement émergent des objets virtuels 30 et 31 favorise une rapidité d'exécution en machine et est donc également adapté à la présence d'un grand nombre de tels objets virtuels qui interagissent les uns avec les autres.

En fonctionnement du simulateur, le générateur 33 dépile les enregistrements 35 du fichier MPR 34 à une certaine cadence correspondant à une cadence de dépilage de plis dans une machine de tri postale en respectant un certain écart entre plis consécutifs. A chaque dépilage d'un enregistrement 35, le générateur crée un objet numérique virtuel qui correspond à un article postal et lui affecte des valeurs d'attribut de classe qui correspondent aux valeurs dans l'enregistrement 35. Cet objet virtuel 31 peut être conçu avec des méthodes de classes qui interagissent avec les autres objets virtuels 30 de telle sorte par exemple qu'à sa création cet objet 31 peut être associé à un moteur d'entraînement de la machine de tri pour hériter par agrégation de classe de sa vitesse et de son accélération, puis de façon cyclique être stimulé pour progresser virtuellement dans les composants fonctionnels de la machine de tri en les stimulant à tour de rôle.

Egalement, un temps de latence de périphérique peut être implémenté dans un objet virtuel 31 par une méthode modélisant une temporisation qui déclenche avec un certain retard une interaction avec le logiciel de contrôle/commande 2 à travers la tâche interface 10. Les dates de passage dans un enregistrement 35 permette encore d'implémenter dans un objet virtuel 31 une méthode modélisant une courbe de vitesse imposé à cet objet virtuel dans la simulation pour que le déplacement de cet objet virtuel sur son chemin de convoyage virtuel et les interactions successives avec les autres objets virtuels 30 modélisant les composants fonctionnels de la machine s'approche au mieux du comportement réel d'un article de courrier modélisé.

Globalement, la tâche d'émulation 1 est donc une tâche de priorité élevée ayant une contrainte d'exécution avec une fréquence compatible avec la fréquence de fonctionnement de l'installation cible.

Elle exécute à chaque cycle un processus identique :

- elle lit l'état des entrée/sorties mises à jour par le logiciel de contrôle/commande 2 dans un message courant transitant sur le bus 3

- elle stimule les objets virtuels 31 lesquels stimulent à leur tour les objets virtuels 30 ce qui produit des modifications de l'état des entrées/sorties lesquelles sont consignées dans une autre trame courante sur le bus 3 à destination du logiciel de contrôle/commande temps réel 2. En même temps, la base de données graphique 13 est mise à jour par la tâche d'émulation 1 1 .

Ce processus se répète donc à chaque cycle de la tâche d'émulation. On comprend donc que cette tâche a pour rôle de faire toute la simulation (ou l'émulation) de fond. Il construit tous les composants fonctionnels de la machine de tri postal comme les « DP » (Détecteurs de Passage), les Moteurs, les « diverter » (volets d'aiguillage), etc.... Il accomplit les demandes de création d'objets virtuels (lettres, bacs, etc.), les transformations des objets virtuels, les calculs de collisions (ex : intersection cellule), les mises à jour moteur, etc.... il simule la mécanique des volets d'aiguillage, le dépileur de plis, l'automate de sécurité, etc...

Sur la figure 5, on a représenté par un diagramme de classe un exemple d'architecture logicielle de l'émulateur selon l'invention dans lequel chaque classe est représenté par un bloc dont l'intitulé correspond au nom de la classe. Dans chaque bloc, figurent le cas échéant des attributs de classe et des méthodes de classe en langage « UML ». CEmulator : c'est la classe mère, elle gère les composants fonctionnels, les enregistrements auprès de l'émulateur de bus (tâche 10). Elle cadence l'émulation grâce à un timer Windows™ qui fournit une résolution maximale de 1 ms.

■ StartQ : cette méthode démarre la tâche d'émulation 1 1 .

CreatePlcSimulator() : cette méthode crée un automate de sécurité.

RegisterToBuslnterface() : cette méthode crée le lien entre l'émulateur de bus et les composants de simulation.

CResourceManagerExtender : c'est une classe qui étend le « sgResourceManager » de la bibliothèque « DLL SofiaEngine », grâce à des renvois « callback ». Elle construit tout les objets de la scène de simulation et les ajoute à la classe « CEmultorScene ».

OnModifierSelectQ : la bibliothèque « SofiaEngine » vient de charger un modificateur d'objet, on dispose donc du noeud XML.

■ OnNodeSelectQ : la bibliothèque « SofiaEngine » vient de charger un objet 3D, on dispose du noeud XML et aussi de la possibilité de passer à travers l'objet.

OnLoadSceneFinished (): la bibliothèque « SofiaEngine » vient de terminer un chargement de scène 3D.

CEmulatorScene : c'est une classe miroir de « sgScene » de la bibliothèque « DLL SofiaEngine ». Elle va contenir et mettre à jour tous les composants fonctionnels (créés par CResourceManagerExtender) : moteurs, cellules etc. Elle est cadencée par CEmulator.

SynchroniseRenderSceneQ : cette méthode crée un automate de sécurité. RegisterToBuslnterface() : cette méthode crée le lien entre l'émulateur de bus et les composants de simulation.

CEmulatorObject : c'est la classe de base pour tout les composants émulés/simulés. Elle fournit une interface pour l'interface graphique utilisateur « GUI » et CEmulatorScene.

■ UpdateQ : l'appel de cette méthode est cadencé par la tâche d'émulation et si l'objet change d'état ce doit être dans cette classe.

Sur la figure 6, on a représenté par un diagramme de classe l'architecture logicielle des objets virtuels modélisant les composants fonctionnels de la machine. Sur la figure 6, les blocs grisés représentent les objets virtuels construits par CResourceManagerExtender et qui ont pour classe de base CEmulatorObject.

CBusObjectOut : les classes dérivant de ce type, sont des objets dont leur fonction directe est de recevoir une commande (moteurs, voyants etc.) du contrôle/commande. Ils agrègent, de façon externe, les composants de l'émulateur de bus du contrôle/commande.

m_pOut m_DatedOut : sont des pointeurs sur les objets de l'émulateur de bus.

CBusObjectln : les classes dérivant de ce type, sont des objets dont leur fonction directe est de remonter des informations matérielles vers le contrôle/commande. Ils agrègent, de façon externe, les composants de l'émulateur de bus.

m_pln m_Datedln m_pGio : sont des pointeurs sur les objets de l'émulateur de bus.

CLight : c'est un voyant qui réagit avec une sortie sur le bus pour changer la couleur d'un noeud 3D.

CMotor : c'est un moteur ON/OFF piloté par une sortie sur le bus.

Update () : c'est le rafraîchissement de la tache d'émulation, le moteur met à jour sa vitesse suivant sont état, et modifie son « GIO ».

CMailPieceDivertor : c'est une classe qui va manipuler un volet d'aiguillage le long du chemin de convoyage des articles de courrier en fonction d'une entrée datée sur le bus.

SetDatedState () : méthode qui sert à modifier l'état d'un volet d'aiguillage.

CButton : classe qui modélise un bouton poussoir ou un bistable.

CCell : classe qui modélise cellule pouvant être occulté par des articles de courrier.

Update () méthode qui permet de remonter sur le bus de contrôle/commande l'état de la cellule.

CBynarySensorByCell : classe modélisant un simple capteur de passage.

CMailPieceDetectorByCell : classe modélisant un détecteur de position pour une cellule CCell, l'information d'état est complété par une date GIO.

CMailPieceStacker : classe qui modélise une sortie de stockage d'articles postaux qui se trouve toujours au bout d'une courroie. Cette classe gère également deux cellules CBynarySensorByCell pour remonter vers le contrôle/commande des informations de remplissage. M_pMailPieceVec : vecteur d'attributs d'article de courrier.

Dump () : vide le vecteur d'attributs d'article de courrier.

TakeMailPiece () : ajoute un pli dans la zone de stockage et modifie le niveau de remplissage de la sortie de stockage.

Sur la figure 7 enfin, on a représenté par un diagramme de classe l'architecture logicielle des objets virtuels modélisant les articles ou plis postaux qui sont convoyés à travers la machine de tri postale. Dans la simulation, le convoyage de plis consiste en une transformation, dans l'espace, de boites sur une courbe qui possède une composante de rotation (ce qui modélise le chemin d'un convoyeur).

CBeltConveyor : classe qui compose la scène d'émulation contenant toutes les courroies de la simulation ainsi que tout le courrier qui traverse la machine de tri postal. Cette classe gère la destruction des articles de courrier modélisés par la classe CMailPiece à partir de laquelle s'effectue le comportement émergent.

Update() : méthode de rafraîchissement de la tache d'émulation. Le rafraîchissement est répercuté sur la classe CPathSIave.

CBeltPath : cette classe est agrégée par la classe CBeltConveyor. Elle modélise un trajet d'une courroie de convoyage dont la vitesse est définie par un moteur (CMotor).

m_pChildlD () : méthode qui assure la transition d'une courroie amont vers une courroie aval.

CPathSIave : cette classe modélise le déplacement d'un article de courrier dans la machine de tri sur les courroies de convoyage modélisées par CBeltPath. A chaque période du processus de simulation, on effectue un déplacement relatif et un test de collision.

Update () : c'est le rafraîchissement de la tache d'émulation.

CMailPieceGenerator : cette classe modélise le cas échéant des articles de courrier générés automatiquement.

La figure 8 illustre le comportement émergent des objets virtuels de la classe « CMailPiece » dans la figure 7 qui modélisent des articles postaux. A chaque cycle du processus de simulation, fourni par la méthode de classe OnUpdateTimer(), les objets virtuels modélisant les articles postaux effectuent un test de collision. En cas de détection de collision, il y a une activation des autres composants de la scène.

On comprend de ce qui précède que la classe « CMailPiece », qui modélise un article de courrier, hérite de la classe « CPathSIave » dans la simulation de sorte que l'article de courrier emprunte et suit un chemin de convoyage décrit par des courroies du convoyeur de la machine par héritage sur les classe « CBeltPath » et « CBeltConveyor ». Le long de ce chemin de convoyage, sont disposés des composants machine passifs et actifs tels que des volets d'aiguillage modélisés par la classe « CMailPieceDiverter », des cellules de détection de passage modélisées par la classe « CCell » et des empileurs de sortie de tri modélisés par la classe « CMailPieceStacker ». Au cours de sa progression sur le chemin de convoyage, imposé par le cadencement du simulateur qui est modélisé par la classe « CEmulator », l'article de courrier va donc interagir avec les composants fonctionnels de la machine et imposer la dynamique du système.

En se référant de nouveau à la figure 2, la tâche d'affichage 12 est un moteur graphique 3D qui peut être exécuté de façon cyclique mais avec une priorité plus faible que celle de la tâche 1 1 . La tâche d'affichage 12 vient prendre la représentation graphique actualisée dans la base 13 de la modélisation de la machine de tri postal avec les articles postaux pour réaliser un affichage animé de celle-ci. Les tâches de l'émulateur numérique selon l'invention peuvent donc être implémentées à partir d'une hiérarchie de classes d'objets virtuels dans un langage de modélisation unifié selon laquelle les objets virtuels peuvent être composés avec un cycle de vie pour naître et disparaître dans l'environnement de simulation.

Dans cette implémentation, il est possible d'affecter aux objets virtuels 31 modélisant les articles postaux des effets de glissement avec prise en compte de la gravité pour simuler des variations de l'adhérence des articles aux courroies des convoyeurs. On peut aussi prévoir dans les enregistrements 35 contenant des valeurs de terrain d'introduire l'image du bloc d'adresse d'un article de courrier pour réaliser pendant la simulation un processus de lecture automatique d'adresse par OCR.