FR3147032A1 - Control device for a logistics center, and programming method - Google Patents

Control device for a logistics center, and programming method Download PDF

Info

Publication number
FR3147032A1
FR3147032A1 FR2302656A FR2302656A FR3147032A1 FR 3147032 A1 FR3147032 A1 FR 3147032A1 FR 2302656 A FR2302656 A FR 2302656A FR 2302656 A FR2302656 A FR 2302656A FR 3147032 A1 FR3147032 A1 FR 3147032A1
Authority
FR
France
Prior art keywords
wcs
flowchart
programming
sorter
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2302656A
Other languages
French (fr)
Inventor
Mickael GRAIL
Damien LIMONNE
Franck CESSIECQ
Rémi GUIGAS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Enjoy Automation Sas
Original Assignee
Enjoy Automation Sas
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Enjoy Automation Sas filed Critical Enjoy Automation Sas
Priority to FR2302656A priority Critical patent/FR3147032A1/en
Publication of FR3147032A1 publication Critical patent/FR3147032A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders

Landscapes

  • Business, Economics & Management (AREA)
  • Economics (AREA)
  • Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Finance (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Accounting & Taxation (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Warehouses Or Storage Devices (AREA)

Abstract

L’invention concerne un dispositif de pilotage d’un centre logistique, exécutant un logiciel de gestion d’entrepôt « WCS », et comprenant :- une interface homme machine « IHM » exécutant un logiciel de programmation du WCS : - le logiciel de programmation étant configuré pour concevoir un organigramme de programmation du WCS, dit « logigramme (1) » ; - le logiciel de programmation comprenant une bibliothèque de blocs de logigramme (1) ; - la conception du logigramme (1) consistant à disposer, relier et paramétrer des blocs de logigramme (1) paramétrables, au moyen de l’IHM ;- un compilateur pour générer un code objet à partir du logigramme (1). Figure pour l’abrégé : Fig. 1. The invention relates to a device for controlling a logistics center, executing a warehouse management software "WCS", and comprising: - a human-machine interface "HMI" executing a WCS programming software: - the programming software being configured to design a WCS programming flowchart, called a "flowchart (1)"; - the programming software comprising a library of flowchart blocks (1); - the design of the flowchart (1) consisting of arranging, connecting and parameterizing parameterizable flowchart blocks (1), by means of the HMI; - a compiler for generating an object code from the flowchart (1). Figure for the abstract: Fig. 1.

Description

Dispositif de pilotage d’un centre logistique, et procédé de programmationControl device for a logistics center, and programming method

L’invention se rapporte au domaine technique de centres logistiques équipés d’un trieur automatique, et plus particulièrement à la programmation de logiciels de gestion d’un tel centre.The invention relates to the technical field of logistics centers equipped with an automatic sorter, and more particularly to the programming of management software for such a center.

Art antérieurPrior art

Un trieur automatique d’un centre logistique est piloté par un logiciel couramment appelé « WCS » selon l’anglicisme « Warehouse Control System ».An automatic sorter in a logistics center is controlled by software commonly called “WCS” in English for “Warehouse Control System”.

Le WCS dirige les activités en temps réel du centre logistique, et fait l’intermédiaire entre :
- le système de gestion de stock, correspondant à un niveau supérieur, et désigné « WMS » selon l’anglicisme « warehouse management system » ; et
- les systèmes embarqués, ou automates des machines d’un trieur, correspondant à un niveau inférieur.
The WCS manages the real-time activities of the logistics center, and acts as an intermediary between:
- the inventory management system, corresponding to a higher level, and designated “WMS” according to the Anglicism “warehouse management system”; and
- embedded systems, or automatons of sorter machines, corresponding to a lower level.

Le WCS a la charge d'assurer la fluidité des opérations, de maximiser l'efficacité des matériels de manutention, et souvent des activités annexes à l'entrepôt. Il offre une interface unique pour de nombreux matériels de manutention, tels que des transtockeurs, des bandes transporteuses, des trieurs, des palettiseurs.The WCS is responsible for ensuring the fluidity of operations, maximizing the efficiency of handling equipment, and often activities ancillary to the warehouse. It offers a single interface for many handling equipment, such as stacker cranes, conveyor belts, sorters, palletizers.

Les principales tâches d'un WCS sont :
- Effectuer l’interface entre le système de niveau supérieur « WMS » et échanger avec le WMS des informations nécessaires à l'exploitation quotidienne du centre de distribution ;
- Assigner dynamiquement les colis aux gares, selon des algorithmes de tri ;
- Fournir en temps réel des consignes aux opérateurs et matériels du niveau inférieur, pour la préparation des commandes et le routage des produits ;
- Exporter des fichiers de rapport ou d'acquittement pour les systèmes de niveaux supérieurs ;
- Fournir des écrans, un environnement graphique, et fonctions opérationnels pour assurer une gestion et un contrôle efficace du centre logistique.
The main tasks of a WCS are:
- Perform the interface between the higher level system “WMS” and exchange with the WMS information necessary for the daily operation of the distribution center;
- Dynamically assign packages to stations, according to sorting algorithms;
- Provide real-time instructions to lower-level operators and equipment for order preparation and product routing;
- Export report or acknowledgment files for higher level systems;
- Provide screens, a graphical environment, and operational functions to ensure efficient management and control of the logistics center.

En pratique :
- le WCS traite des événements de « haut niveau », par exemple « un colis est arrivé », « un colis est hors gabarit » ;
- l’automate gère des événements de « bas niveau », par exemple « orienter le colis dans la gare indiquée par le WCS », « effectuer la pesée d’un colis pour fournir sa masse au WCS ».
In practice:
- WCS handles “high level” events, for example “a parcel has arrived”, “a parcel is oversized”;
- the automaton manages “low level” events, for example “direct the package to the station indicated by the WCS”, “weigh a package to provide its mass to the WCS”.

Le WCS exécute des règles de tri, qui peuvent être nombreuses, et qui sont propres aux souhaits du client et à l’implantation mécanique du trieur.The WCS executes sorting rules, which can be numerous, and which are specific to the wishes of the customer and the mechanical installation of the sorter.

Parmi les règles et les critères de tri les plus courants, il existe par exemple des règles portant :
- Sur des informations de l’étiquette du colis, telles qu’un code postal ;
- Sur des caractéristiques du colis, telles que son poids.
Among the most common sorting rules and criteria, there are for example rules relating to:
- On information on the package label, such as a postal code;
- On characteristics of the package, such as its weight.

Le WCS est conçu :
- soit par un éditeur de logiciel de WCS ;
- soit par le fabricant du trieur.
The WCS is designed:
- either by a WCS software publisher;
- either by the sorter manufacturer.

Lorsque le WCS est conçu par un éditeur de WCS, il s’agit alors d’un progiciel, généralement dédié à des utilisateurs disposant de plusieurs trieurs, et éventuellement multisites.When the WCS is designed by a WCS publisher, it is then a software package, generally dedicated to users with several sorters, and possibly multiple sites.

Le déploiement de nouvelles règles de tri ou de nouveaux procédés de tri sur un trieur est rendu compliqué car la modification du WCS concerne alors l’ensemble du progiciel. Le coût de déploiement d’une nouvelle règle ou d’un nouveau procédé est donc augmenté. De plus, la modification du code source du progiciel, destinée à un trieur ou à un site particulier, peut avoir un impact sur un autre trieur ou un autre site si jamais la reprogrammation du progiciel n’est pas correctement testée et déboguée. Ces étapes de vérification, préalables au déploiement de la nouvelle règle ou du nouveau procédé, empêchent l’utilisateur de faire des modifications sur site, et en temps réel.Deploying new sorting rules or new sorting processes on a sorter is complicated because the modification of the WCS then concerns the entire software package. The cost of deploying a new rule or a new process is therefore increased. In addition, the modification of the source code of the software package, intended for a particular sorter or site, can have an impact on another sorter or another site if the reprogramming of the software package is not properly tested and debugged. These verification steps, prior to the deployment of the new rule or the new process, prevent the user from making modifications on site, and in real time.

Lorsque le WCS est conçu par le fabricant du trieur, le WCS peut être modifié sur site, et en temps réel. En revanche, le WCS est peu évolutif, généralement conçu pour un seul procédé de tri, et impose à un client disposant de plusieurs trieurs de maitriser les langages de programmation ainsi que les architectures des programmes de chacun des WCS de ses différents trieurs.When the WCS is designed by the sorter manufacturer, the WCS can be modified on site, and in real time. On the other hand, the WCS is not very scalable, generally designed for a single sorting process, and requires a customer with several sorters to master the programming languages as well as the program architectures of each of the WCS of its different sorters.

Il existe donc des difficultés pour programmer un WCS.So there are difficulties in programming a WCS.

Le brevet EP1825424 décrit une méthode de programmation assistée. L’assistance se limite au débogage de règles isolées, qui doivent ensuite être intégrées dans un code général, destiné à exécuter plusieurs règles. Ce procédé offre donc une assistance limitée.Patent EP1825424 describes a method of assisted programming. The assistance is limited to the debugging of isolated rules, which must then be integrated into a general code, intended to execute several rules. This method therefore offers limited assistance.

Enfin, des inconvénients existent pour les deux types de WCS, que le WCS soit conçu par un éditeur de logiciel, ou par un fabricant de trieur :
- la modification de la programmation du WCS implique généralement un redémarrage du WCS, ce qui est synonyme d’une interruption du trieur automatisé. Dans le cas de modifications mineures ou concernant une partie isolée du WCS, l’interruption globale du trieur ne semble pas justifiée ;
- au cours de la vie du logiciel, la complexification progressive du code source entraîne des risques de dépendance de règles : certaines règles peuvent être impactées par d’autres développements ultérieurs, sans qu’il ne soit possible de détecter ces dépendances ;
- l’analyse a posteriori d’un tri d’un colis peut s’avérer complexe, car il faut alors soit disposer d’un outil spécifique de suivi de l’exécution du WCS, soit accéder à des fichiers de trace du WCS et comprenant un volume important de données. L’analyse a posteriori, qu’il s’agisse d’un débogage du WCS ou d’une détection d’une erreur de tri d’un colis, est difficile.
Finally, there are disadvantages to both types of WCS, whether the WCS is designed by a software publisher or by a sorter manufacturer:
- changing the WCS programming usually involves restarting the WCS, which means interrupting the automated sorter. In the case of minor changes or changes to an isolated part of the WCS, a complete interruption of the sorter does not seem justified;
- during the life of the software, the progressive complexity of the source code leads to risks of rule dependencies: certain rules may be impacted by other subsequent developments, without it being possible to detect these dependencies;
- the a posteriori analysis of a sorting of a parcel can be complex, because it is then necessary either to have a specific tool for monitoring the execution of the WCS, or to access WCS trace files containing a large volume of data. The a posteriori analysis, whether it is a debugging of the WCS or a detection of a sorting error of a parcel, is difficult.

L’un des buts de l’invention est de pallier les inconvénients de l’art antérieur, notamment en proposant une interface qui simplifie la programmation d’un logiciel de gestion d’entrepôt dit « WCS ».One of the aims of the invention is to overcome the drawbacks of the prior art, in particular by proposing an interface which simplifies the programming of warehouse management software known as “WCS”.

A cet effet, il a été mis au point un dispositif de pilotage d’un trieur automatisé d’un centre logistique, exécutant un logiciel de gestion d’entrepôt « WCS », et comprenant :
- une interface homme machine « IHM » exécutant un logiciel de programmation du WCS :
- le logiciel de programmation étant configuré pour concevoir un organigramme de programmation du WCS, dit « logigramme » ;
- le logiciel de programmation comprenant une bibliothèque de blocs de logigramme ;
- la conception du logigramme consistant à disposer, relier et paramétrer des blocs de logigramme paramétrables, au moyen de l’IHM ;
- un compilateur pour générer un code objet à partir du logigramme.
For this purpose, a device was developed for controlling an automated sorter in a logistics center, running “WCS” warehouse management software, and comprising:
- a human machine interface “HMI” running WCS programming software:
- the programming software being configured to design a WCS programming flowchart, called a “flowchart”;
- programming software including a library of flowchart blocks;
- the design of the flowchart consisting of arranging, connecting and parameterizing configurable flowchart blocks, using the HMI;
- a compiler to generate object code from the flowchart.

De cette manière, la programmation du WCS est simplifiée car la conception d’un logigramme permet :
- de structurer facilement les enchaînements des blocs, alors qu’un équivalent du logigramme rédigé en code source serait long de plusieurs milliers de lignes de codes, au sein desquelles il serait difficile de situer une règle précise ou un enchaînement de règles, car seules des indentations du code ou des référencements de fonctions seraient disponibles ;
- de fournir une interface visuelle de la structure du programme. En particulier, si le logigramme présente des légendes désignant le but ou le fonctionnement de chaque bloc, ces légendes permettent de comprendre le fonctionnement du logigramme sans aucun lecture de code source.
Le fonctionnement du logigramme est donc plus compréhensible.
In this way, WCS programming is simplified because the design of a flowchart allows:
- to easily structure the sequences of blocks, whereas an equivalent of the flowchart written in source code would be several thousand lines of code long, within which it would be difficult to locate a precise rule or a sequence of rules, because only indentations of the code or references of functions would be available;
- to provide a visual interface of the program structure. In particular, if the flowchart has legends designating the purpose or operation of each block, these legends make it possible to understand the operation of the flowchart without reading any source code.
The operation of the flowchart is therefore more understandable.

Les blocs sont paramétrables au moyen de courtes instructions en code source, ce qui permet de segmenter les instructions à coder. Ainsi :
- le codage est simplifié, car des fonctions simples peuvent être reprises facilement,
- le débogage est également simplifié, car il est plus facile d’isoler, au sein du logigramme, un embranchement qui serait non fonctionnel.
Blocks are configurable using short instructions in source code, which allows the instructions to be coded to be segmented. Thus:
- coding is simplified, because simple functions can be easily taken over,
- debugging is also simplified, because it is easier to isolate, within the flowchart, a branch that would be non-functional.

Les blocs du logigramme sont la base d’un « code source équivalent », composé de blocs codés individuellement, et dont l’enchaînement est effectué par le logiciel de programmation sur la base des liens établis entre les blocs. En particulier, le logiciel de programmation constitue le code source équivalent, sur la base des codes sources individuels contenus dans chaque bloc, en structurant par exemple le passage de paramètres ou de variables d'un bloc au suivant.The blocks of the flowchart are the basis of an “equivalent source code”, composed of individually coded blocks, and whose chaining is carried out by the programming software on the basis of the links established between the blocks. In particular, the programming software constitutes the equivalent source code, on the basis of the individual source codes contained in each block, by structuring for example the passage of parameters or variables from one block to the next.

La génération de code objet par le compilateur permet toutefois de surmonter l’inconvénient des logigrammes, qui est leur lenteur d’exécution : en effet, lors de l’exécution d’un logigramme rédigé en code source, l’ordinateur exécutant le logigramme doit interpréter le code source au moyen d’un interpréteur, dont une des tâches est l’analyse syntaxique du code source. Cette analyse rallonge les temps d’exécution du logigramme.However, the generation of object code by the compiler makes it possible to overcome the disadvantage of flowcharts, which is their slow execution: in fact, when executing a flowchart written in source code, the computer executing the flowchart must interpret the source code by means of an interpreter, one of whose tasks is the syntactic analysis of the source code. This analysis lengthens the execution times of the flowchart.

Or les cadences des trieurs automatiques, de l’ordre de 10 colis par seconde, ne sont pas compatibles avec la durée d’exécution directe d’un logigramme.However, the speeds of automatic sorters, of the order of 10 parcels per second, are not compatible with the direct execution time of a flowchart.

Le compilateur permet de traduire le code source équivalent du logigramme en un code objet dont l’exécution sera beaucoup plus rapide, car les étapes d’interprétation ou d’analyse syntaxique sont supprimées.The compiler allows the equivalent source code of the flowchart to be translated into object code that will run much faster, because the interpretation or syntactic analysis steps are eliminated.

L’invention rend donc possible :
- une programmation aisée du trieur, car les compétences nécessaires au codage de blocs à relier de manière graphique sont bien inférieures aux compétences nécessaires pour rédiger un code source codant l’intégralité des règles de tri ;
- d’obtenir un WCS dont la vitesse d’exécution est compatible avec la cadence d’un trieur automatique.
The invention therefore makes it possible:
- easy programming of the sorter, because the skills required to code blocks to be linked graphically are much lower than the skills required to write source code encoding all the sorting rules;
- to obtain a WCS whose execution speed is compatible with the rate of an automatic sorter.

Le logiciel de programmation prend en compte et implémente automatiquement les contraintes et les considérations techniques de codage informatique dans le code source équivalent. Il s’agit par exemple de la gestion de la temporalité des tâches, du nommage de variables du code ou de fonctions, ou encore de l’allocation de la mémoire vive de l’ordinateur. L’utilisateur n’a donc pas besoin de coder lui-même tous ces éléments, qui relèvent de l’expertise du codage informatique.The programming software automatically takes into account and implements the constraints and technical considerations of computer coding in the equivalent source code. This includes, for example, the management of the temporality of tasks, the naming of code variables or functions, or the allocation of the computer's RAM. The user therefore does not need to code all of these elements themselves, which are the subject of computer coding expertise.

Avantageusement, la bibliothèque comprend des blocs d’interfaçage préprogrammés, comprenant des instructions de code d’un protocole de communication programmé pour assurer la compatibilité entre un code objet du WCS et un protocole de communication du trieur. Plusieurs blocs d’interfaçage sont préprogrammés par l’éditeur du logiciel de programmation, de sorte que le WCS peut être compatible avec la majorité des trieurs automatiques du marché. La bibliothèque comprend également des blocs d’interfaçage programmables, conçus pour que l’utilisateur programme un protocole de communication manquant. Ainsi, un seul langage de code source est nécessaire pour programmer le WCS, alors que le WCS est compatible avec une multitude de trieurs, même s’ils doivent être pilotés par des langages différents.Advantageously, the library includes pre-programmed interface blocks, comprising code instructions of a communication protocol programmed to ensure compatibility between an object code of the WCS and a communication protocol of the sorter. Several interface blocks are pre-programmed by the publisher of the programming software, so that the WCS can be compatible with the majority of automatic sorters on the market. The library also includes programmable interface blocks, designed for the user to program a missing communication protocol. Thus, only one source code language is necessary to program the WCS, while the WCS is compatible with a multitude of sorters, even if they must be driven by different languages.

De préférence, le logiciel de programmation est configuré pour recharger à chaud le code objet, c’est-à-dire que le code objet généré est chargé dynamiquement dans le WCS : il n’y a pas besoin de redémarrer le WCS pour modifier les règles de tri. Ainsi, une modification du WCS peut se faire sans interruption du trieur automatique. La compilation puis le déploiement à chaud du code objet généré est généralement dénommée « compilation à chaud », sans que ne soit exclue la mise en œuvre d’une compilation à la volée.Preferably, the programming software is configured to hot-reload the object code, i.e. the generated object code is dynamically loaded into the WCS: there is no need to restart the WCS to modify the sorting rules. Thus, a modification of the WCS can be done without interrupting the automatic sorter. Compiling and then hot-deploying the generated object code is generally called “hot compilation”, without excluding the implementation of on-the-fly compilation.

De manière à programmer plus facilement un WCS qui soit compatible avec plusieurs trieurs, le WCS comprend un premier logigramme dit « logigramme-règle » conçu pour déterminer des sorties logiques d’une règle de tri, et un second logigramme dit « logigramme-machine ». Le logigramme-machine peut être conçu pour faire correspondre les sorties logiques de la règle à des sorties physiques du trieur. Avantageusement, le logigramme-machine est également conçu pour programmer l’interopérabilité entre le WCS et le trieur. Pour cela, il comprend des blocs d’interfaçage nécessaires pour adapter les données issues du code objet et les rendre interprétables par l’automate du trieur, et réciproquement. De cette manière :
- Un même logigramme-règle peut être mutualisé pour le pilotage de plusieurs trieurs mettant en œuvre la même règle de tri. Seule l’affectation d’une sortie physique pour chaque sortie logique de la règle doit être traitée au cas par cas pour chaque trieur, lors de la conception.
- les spécificités d’interfaçage de chaque trieur sont isolées dans le logigramme-machine de chaque trieur, ce qui permet de simplifier le logigramme-règle.
- Une modification matérielle du trieur, impliquant une modification des sorties physique, est gérée au sein d’un logigramme-machine qui est plus petit qu’un logigramme complet du trieur, et donc plus simple à mettre à jour.
In order to more easily program a WCS that is compatible with several sorters, the WCS comprises a first logic diagram called a "rule logic diagram" designed to determine logical outputs of a sorting rule, and a second logic diagram called a "machine logic diagram". The machine logic diagram can be designed to match the logical outputs of the rule to physical outputs of the sorter. Advantageously, the machine logic diagram is also designed to program the interoperability between the WCS and the sorter. To this end, it comprises interface blocks necessary to adapt the data from the object code and make them interpretable by the sorter's automaton, and vice versa. In this way:
- The same rule flowchart can be shared to control several sorters implementing the same sorting rule. Only the assignment of a physical output for each logical output of the rule must be handled on a case-by-case basis for each sorter, during design.
- the interface specificities of each sorter are isolated in the machine flowchart of each sorter, which makes it possible to simplify the rule flowchart.
- A hardware modification of the sorter, involving a modification of the physical outputs, is managed within a machine flowchart which is smaller than a complete flowchart of the sorter, and therefore simpler to update.

De manière que le WCS et le logiciel de programmation soient exécutés au sein d’une même interface graphique, le logiciel de programmation du WCS est un sous-programme du WCS, et de préférence le logiciel de programmation du WCS est lancé lors du démarrage du WCS. Cette structure logicielle facilite le déploiement à chaud du code objet, et offre également à l’utilisateur la possibilité de procéder à des modifications du logigramme et à des tests, sans nécessiter de naviguer entre plusieurs logiciels. L’ergonomie est améliorée.In order for the WCS and the programming software to run within a single graphical interface, the WCS programming software is a subroutine of the WCS, and preferably the WCS programming software is launched when the WCS is started. This software structure facilitates hot deployment of the object code, and also provides the user with the ability to make changes to the flowchart and perform tests without having to switch between multiple software packages. Ergonomics is improved.

Avantageusement, la bibliothèque comprend des blocs de logigramme pré-paramétrés avec des fonctions préprogrammées telles qu’une règle de tri courante d’un trieur, par exemple la lecture d’un code à barres. Le code source d’une fonction logique est déjà rédigé avec des opérateurs et des opérandes. L’utilisateur n’a plus qu’à affecter les bons opérandes, c’est-à-dire saisir les variables correspondant à son logigramme en cours de conception. Le code de ces fonctions préprogrammées par l’éditeur du logiciel est enregistré dans une librairie du logiciel de programmation, sous forme de code objet.Advantageously, the library includes pre-configured flowchart blocks with pre-programmed functions such as a common sorting rule of a sorter, for example reading a barcode. The source code of a logic function is already written with operators and operands. The user only has to assign the correct operands, i.e. enter the variables corresponding to his flowchart being designed. The code of these functions pre-programmed by the software publisher is saved in a library of the programming software, in the form of object code.

Pour laisser une plus grande marge de manœuvre à un utilisateur, la bibliothèque comprend des blocs de logigramme vierges, et programmables par un utilisateur au moyen de la saisie d’un code source.To give a user more flexibility, the library includes blank flowchart blocks, which can be programmed by a user by entering source code.

Afin que le WCS puisse exécuter des fonctions plus complexes, et notamment puisse interagir avec un logiciel externe tel qu’un logiciel de messagerie électronique, le logiciel de programmation est programmé pour intégrer dans la librairie des codes objets de fonctions de module d’extension (ou « plug in » en anglais), qui sont développées à l’aide d’un logiciel de développement dédié. . Le WCS peut ainsi être programmé pour déclencher l’envoi de courriels, pour mettre à jour une base de données consultable par internet pour un suivi de colis en ligne, ou encore pour interroger une base SQL.In order for the WCS to be able to perform more complex functions, and in particular to be able to interact with external software such as e-mail software, the programming software is programmed to integrate into the library object codes of extension module functions (or "plug in" in English), which are developed using dedicated development software. The WCS can thus be programmed to trigger the sending of e-mails, to update a database that can be consulted via the Internet for online parcel tracking, or to query an SQL database.

En d’autres termes, la bibliothèque comprend des blocs de logigramme d’appel de module d'extension, et programmables par un utilisateur au moyen de la saisie d’un code source.In other words, the library includes blocks of extension module call logic diagrams, and programmable by a user by means of entering source code.

Afin de disposer d’un outil ergonomique d’analyse a posteriori du tri d’un colis, le WCS est programmé pour afficher l'enchaînement des blocs exécutés pour une opération de tri réalisée de ce colis. De préférence, l’affichage des blocs exécutés comprend la mise en évidence, telle qu’en surbrillance, sur le logigramme, des blocs exécutés. Si un colis a été mal trié, il est plus facile de retrouver quel cheminement le colis a suivi au sein des règles de tri, et donc de comprendre d’où vient l’erreur.In order to have an ergonomic tool for a posteriori analysis of the sorting of a package, the WCS is programmed to display the sequence of blocks executed for a sorting operation carried out on this package. Preferably, the display of the executed blocks includes the highlighting, such as in highlighting, on the flowchart, of the executed blocks. If a package has been incorrectly sorted, it is easier to find which path the package followed within the sorting rules, and therefore to understand where the error comes from.

L’invention concerne également un procédé de programmation d’un système de gestion d’entrepôt dit « WCS », destiné à piloter un trieur d’un centre logistique, remarquable en ce qu’il comprend les étapes successives suivantes :
- concevoir un organigramme de programmation du WCS, dit « logigramme » ;
- exécuter un compilateur afin de traduire automatiquement le logigramme dans un code objet.
The invention also relates to a method for programming a warehouse management system called "WCS", intended to control a sorter of a logistics center, remarkable in that it comprises the following successive steps:
- design a WCS programming flowchart, called a “flowchart”;
- run a compiler to automatically translate the flowchart into object code.

Un tel procédé permet d’obtenir les avantages précités, c’est-à-dire de faciliter la programmation du WCS tout en obtenant un WCS dont la vitesse d’exécution est compatible avec la cadence d’un trieur automatique.Such a method makes it possible to obtain the aforementioned advantages, that is to say to facilitate the programming of the WCS while obtaining a WCS whose execution speed is compatible with the rate of an automatic sorter.

Avantageusement, le code objet est rechargé à chaud, ce qui permet de tester directement la programmation effectuée sans nécessiter le redémarrage du trieur. Les modifications peuvent donc être effectuées en temps réel, sur site.Advantageously, the object code is hot-reloaded, which allows the programming performed to be tested directly without requiring the sorter to be restarted. Changes can therefore be made in real time, on site.

L’invention concerne également un programme d'ordinateur comportant des instructions pour mettre en œuvre un procédé selon les caractéristiques précitées.The invention also relates to a computer program comprising instructions for implementing a method according to the aforementioned characteristics.

L’invention concerne également un support de données susceptible d'être lu par un système informatique, comportant des données ou des instructions pour mettre en œuvre un procédé selon les caractéristiques précitées.The invention also relates to a data medium capable of being read by a computer system, comprising data or instructions for implementing a method according to the aforementioned characteristics.

est un logigramme-règle, codant des règles de tri d’un trieur automatique. is a rule flowchart, encoding sorting rules of an automatic sorter.

est une interface graphique d’édition du logigramme-règle. is a graphical interface for editing the flowchart-rule.

est un logigramme-machine. is a machine flowchart.

est une interface graphique mettant en évidence le cheminement effectué lors du tri d’un colis. is a graphical interface highlighting the path taken when sorting a package.

est une interface graphique illustrant un horodatage ainsi que des valeurs d’opérandes et de résultats de fonctions lors du tri de ce colis. is a graphical interface illustrating a timestamp as well as values of operands and results of functions when sorting this package.

Description détaillée de l’inventionDetailed description of the invention

Un système de gestion d’entrepôt, dit « WCS », pilote un trieur automatisé de cet entrepôt. Le WCS est exécuté sur une interface homme machine « IHM », c’est-à-dire un ordinateur ou un serveur équipé de périphériques d’entrées et de sorties usuels (tels qu’un écran, un clavier, une souris), et de moyens de connexion avec le matériel du trieur automatique, en particulier les automates.A warehouse management system, called “WCS”, controls an automated sorter in this warehouse. The WCS is run on a human-machine interface “HMI”, i.e. a computer or server equipped with standard input and output devices (such as a screen, keyboard, mouse), and means of connection with the automatic sorter hardware, in particular the PLCs.

L’IHM est configurée pour exécuter un logiciel de programmation du WCS.The HMI is configured to run WCS programming software.

En référence aux figures 1 à 3, l’invention se rapporte essentiellement à la programmation du WCS sous forme de logigramme (1).With reference to Figures 1 to 3, the invention relates essentially to the programming of the WCS in the form of a flowchart (1).

L’intérêt d’une représentation graphique d’un WCS est de pouvoir visualiser simplement l’architecture complexe des règles de tri mises en œuvre par le WCS. Ces règles peuvent être nombreuses, et l’arborescence de ces règles est difficile à interpréter lorsqu’uniquement un code source du WCS est disponible.The interest of a graphical representation of a WCS is to be able to simply visualize the complex architecture of the sorting rules implemented by the WCS. These rules can be numerous, and the tree structure of these rules is difficult to interpret when only a source code of the WCS is available.

Le logigramme (1) du WCS comprend des blocs (11, 12) de logigramme, chacun correspondant :
- soit à un bloc de décision (11), au niveau duquel le WCS exécute une fonction booléenne afin de déterminer deux alternatives ;
- soit à un bloc d’action (12), au niveau duquel le WCS effectue une tâche spécifique, telle que fournir des informations à un système de gestion de stock « WMS », ou donner des instructions à un automate du trieur.
The WCS flowchart (1) includes flowchart blocks (11, 12), each corresponding to:
- either to a decision block (11), at which the WCS executes a Boolean function in order to determine two alternatives;
- either to an action block (12), at which the WCS performs a specific task, such as providing information to a stock management system “WMS”, or giving instructions to a sorter machine.

Chaque bloc (11, 12) du logigramme (1) comprend des instructions sous forme de code source. Dans le cas de blocs vierges, le code source est saisi par l’utilisateur du logiciel de programmation. Bien que l’utilisateur ait besoin de maîtriser des rudiments d’un langage de codage informatique, le code source à saisir dans chaque bloc est généralement simple.Each block (11, 12) of the flowchart (1) includes instructions in the form of source code. In the case of blank blocks, the source code is entered by the user of the programming software. Although the user needs to master the basics of a computer coding language, the source code to be entered in each block is generally simple.

En revanche, la complexité de la rédaction d’un code source complet, comprenant généralement plusieurs milliers de lignes de code, est évitée, car les enchaînements des blocs n’ont pas besoin d’être codés : il suffit de relier graphiquement des blocs (11, 12), au moyen de liens (13) tracés sur une interface graphique de programmation (2) du logiciel de programmation.On the other hand, the complexity of writing a complete source code, generally comprising several thousand lines of code, is avoided, because the sequences of blocks do not need to be coded: it is sufficient to graphically connect blocks (11, 12), by means of links (13) drawn on a graphical programming interface (2) of the programming software.

Sur le logigramme (1), il est possible de saisir des légendes (15) décrivant succinctement le contenu d’un bloc ou le résultat d’un test, à la manière d’un commentaire rédigé dans un code source. Néanmoins, les légendes (15) du logigramme (1) selon l’invention sont plus lisibles qu’un commentaire, car elles ne sont pas disséminées au sein des instructions du code source.On the flowchart (1), it is possible to enter captions (15) briefly describing the content of a block or the result of a test, in the manner of a comment written in a source code. However, the captions (15) of the flowchart (1) according to the invention are more readable than a comment, because they are not scattered within the instructions of the source code.

L’interface graphique de programmation (2) proposée permet donc une conception et une navigation au sein de l’algorithme de tri plus aisées.The proposed graphical programming interface (2) therefore allows easier design and navigation within the sorting algorithm.

Afin de faciliter la programmation de certaines étapes du logigramme (1), une bibliothèque du logiciel de programmation comprend des blocs pré-paramétrés. Ces blocs renvoient à un code source préalablement rédigé, et codant les instructions correspondant à des fonctions courantes d’un trieur automatique. Il peut s’agir par exemple d’un test selon le code postal d’une adresse de destination, ou encore d’une vérification d’un gabarit de colis.In order to facilitate the programming of certain steps of the flowchart (1), a library of the programming software includes pre-configured blocks. These blocks refer to a previously written source code, and encode the instructions corresponding to common functions of an automatic sorter. This could be, for example, a test according to the postal code of a destination address, or a verification of a parcel template.

En pratique, un bloc pré-paramétré ne charge pas le code source préprogrammé, seule la saisie des opérandes étant nécessaire. Lors de la compilation du code source équivalent, le logiciel de programmation reconstitue le code du bloc en question, en inscrivant les opérandes saisis par l’utilisateur au sein du code source préprogrammé. Les temps de conception du logigramme (1) et les risques d’erreurs de programmation sont donc réduits.In practice, a pre-parameterized block does not load the pre-programmed source code, only the entry of the operands being necessary. When compiling the equivalent source code, the programming software reconstructs the code of the block in question, by entering the operands entered by the user within the pre-programmed source code. The design times of the flowchart (1) and the risks of programming errors are therefore reduced.

En référence particulière à la , le WCS exécute un sous-programme programmé pour éditer le logigramme (1) du WCS. L’interface graphique de programmation (2) de ce logiciel de programmation permet de rajouter des blocs de logigramme (1) au moyen d’un bouton cliquable « ajouter » (21). L’utilisateur choisit le type de bloc à insérer au sein d’un menu déroulant, puis le positionne sur le logigramme (1) avant de le relier à un autre bloc par un lien (13). La liaison entre les blocs se fait au moyen de points d’ancrage (14) de chaque bloc (11, 12).With particular reference to the , the WCS executes a programmed subroutine to edit the WCS flowchart (1). The graphical programming interface (2) of this programming software allows adding flowchart blocks (1) by means of a clickable "add" button (21). The user chooses the type of block to be inserted from a drop-down menu, then positions it on the flowchart (1) before connecting it to another block by a link (13). The connection between the blocks is made by means of anchor points (14) of each block (11, 12).

Lorsque l’utilisateur clique sur un bloc du logigramme (1), l’interface graphique (2) ouvre une fenêtre de paramétrage (22) configurée pour paramétrer ce bloc.When the user clicks on a block of the flowchart (1), the graphical interface (2) opens a configuration window (22) configured to configure this block.

Cette fenêtre de paramétrage (22) contient des champs affichant des données non modifiables, telles qu’un « identifiant » du bloc qui est généré automatiquement par le logiciel de programmation. Cet identifiant est unique, permet au compilateur d’analyser la structure du logigramme (1), et de gérer l’unicité de chaque variable ou résultat d’un bloc au sein du « code source équivalent » du logigramme (1).This settings window (22) contains fields displaying non-modifiable data, such as a block “identifier” that is automatically generated by the programming software. This identifier is unique, allows the compiler to analyze the structure of the flowchart (1), and to manage the uniqueness of each variable or result of a block within the “equivalent source code” of the flowchart (1).

La fenêtre de paramétrage (22) contient également des champs affichant des données modifiables, telles que le « Code » du bloc, et qui correspond à un nom abrégé du bloc, choisi par l’utilisateur selon l’action ou la décision effectuée par ce bloc.The settings window (22) also contains fields displaying modifiable data, such as the block's "Code", which corresponds to an abbreviated name of the block, chosen by the user according to the action or decision carried out by this block.

Dans le cas d’un bloc vierge, un champ « Code » correspond à une zone de saisie du code source contenant les instructions que doit exécuter le bloc. L’utilisateur est libre de saisir les instructions qu’il souhaite, et correspondant à l’action élémentaire que doit effectuer le bloc au sein du logigramme (1). Un bloc vierge propose néanmoins une interface de programmation limitée : il n’est pas possible de faire appel à d’autres librairies que celle du logiciel de programmation, et les fonctions proposées sont limitées.In the case of a blank block, a "Code" field corresponds to a source code input area containing the instructions that the block must execute. The user is free to enter the instructions they wish, corresponding to the elementary action that the block must perform within the flowchart (1). A blank block nevertheless offers a limited programming interface: it is not possible to use libraries other than those of the programming software, and the functions offered are limited.

Dans le cas d’un bloc pré-paramétré, un champ « Process » contient un menu déroulant permettant de sélectionner la fonction désirée, au sein de la librairie du logiciel de programmation. Il suffit ensuite de saisir les opérandes nécessaires à l’exécution de la fonction, au sein d’un ou de plusieurs champs « Variable ». Lors de la sélection d’une fonction, les champs « Variable » s’affichent en nombre, et avec les intitulés nécessaires, définis par le code source de cette fonction.In the case of a pre-configured block, a "Process" field contains a drop-down menu allowing you to select the desired function, within the programming software library. You then simply enter the operands required to execute the function, within one or more "Variable" fields. When selecting a function, the "Variable" fields are displayed in number, and with the necessary labels, defined by the source code of this function.

La fenêtre de paramétrage (22) comprend également des cases à cocher permettant de paramétrer certains comportements du bloc lors de l’exécution du logigramme (1). La case « historiser le passage » permet d’inclure ou non l’exécution de ce bloc dans des fichiers de traces permettant d’historiser les événements survenus lors de l’exécution du WCS. Ces données sont également enregistrées au sein d’une base de données dont la durée de sauvegarde est plus longue que celle d’un fichier de traces. Dans le même but, la case « historiser les variables en sortie » permet d’inclure au sein des fichiers traces quelles valeurs ont prises les sorties logiques du code source de ce bloc.The settings window (22) also includes check boxes to configure certain behaviors of the block during the execution of the flowchart (1). The "historize the passage" box allows you to include or not the execution of this block in trace files allowing you to historize the events that occurred during the execution of the WCS. This data is also recorded in a database whose backup duration is longer than that of a trace file. For the same purpose, the "historize the output variables" box allows you to include in the trace files what values the logical outputs of the source code of this block took.

Il est possible d’ajouter des légendes (15) sur le logigramme (1), qui permettent de savoir quel est le but du code source saisi dans le champ « Process », sans consulter ledit code source. Ces légendes (15) sont ajoutées au moyen de même bouton « ajouter » qui est utilisé pour ajouter des blocs de logigramme. Dans le cas de blocs de décision (11), des champs de légendes (15) sont donc disponibles pour identifier, sur le logigramme (1), à quel résultat correspondent les deux sorties du bloc de décision (11). Dans un mode de réalisation, les légendes (15) sont des blocs de logigramme de type texte, et sont insérées au sein du logigramme (1) de la même manière que les blocs de décision (11) ou les blocs d’action (12).It is possible to add captions (15) to the flowchart (1), which make it possible to know what the purpose of the source code entered in the "Process" field is, without consulting said source code. These captions (15) are added using the same "add" button that is used to add flowchart blocks. In the case of decision blocks (11), caption fields (15) are therefore available to identify, on the flowchart (1), which result the two outputs of the decision block (11) correspond to. In one embodiment, the captions (15) are text-type flowchart blocks, and are inserted within the flowchart (1) in the same way as the decision blocks (11) or the action blocks (12).

Afin que le WCS puisse interagir avec d’autres systèmes ou d’autres logiciels, la librairie du logiciel de programmation est programmée pour intégrer des codes sources de fonctions des modules d’extension, servant à programmer des modules d’extension. Par exemple un module d’extension est programmé pour effectuer une mise à jour d’une base de données une fois que le tri d’un colis est effectué. Cette base de données est utilisée dans le cadre d’un service en ligne de suivi de colis, permettant à un destinataire de consulter par internet l’avancement de la livraison du colis.In order for the WCS to interact with other systems or other software, the programming software library is programmed to integrate source codes of functions of the extension modules, used to program extension modules. For example, an extension module is programmed to perform an update of a database once a package has been sorted. This database is used as part of an online parcel tracking service, allowing a recipient to consult the progress of the delivery of the package via the Internet.

Le développement du code source d’un module d'extension, plus complexe qu’un simple test d’une condition, ou qu’une instruction donnée au trieur, se fait au travers d'un éditeur de logiciel dédié, et permettant d'organiser le code source plus facilement. En particulier, il peut être nécessaire de séparer le code source du module d’extension en plusieurs fichiers.The development of the source code of an extension module, more complex than a simple test of a condition, or than an instruction given to the sorter, is done through a dedicated software editor, and allows to organize the source code more easily. In particular, it may be necessary to separate the source code of the extension module into several files.

Lorsque la programmation du module d’extension est achevée, son code source est compilé afin que son code objet soit constitué.When the programming of the extension module is completed, its source code is compiled so that its object code is formed.

Le fichier informatique de ce code objet est ensuite disposé dans un répertoire configuré pour être consulté par le logiciel de programmation, et le logiciel de programmation est programmé pour intégrer à sa bibliothèque les codes sources contenus dans ce répertoire.The computer file of this object code is then placed in a directory configured to be consulted by the programming software, and the programming software is programmed to integrate into its library the source codes contained in this directory.

De cette manière, il est possible de rajouter des fonctions au sein de la librairie du logiciel de programmation. Ces nouvelles fonctions sont donc proposées au sein du menu déroulant « Process » des blocs pré-paramétrés, et l’utilisateur n’a qu’à saisir les champs « Variables » afférents.In this way, it is possible to add functions within the programming software library. These new functions are therefore proposed within the “Process” drop-down menu of the pre-configured blocks, and the user only has to enter the relevant “Variables” fields.

Lors de la compilation du code source équivalent du logigramme, les blocs appelant des fonctions de module d’extension sont traités comme les blocs appelant des fonctions préprogrammées.When compiling the equivalent source code of the flowchart, blocks calling extension module functions are treated like blocks calling preprogrammed functions.

Il est donc possible de coder des fonctions plus complexes, notamment celles faisant appel à d’autres librairies que celle initialement incluse dans le logiciel de programmation.It is therefore possible to code more complex functions, in particular those using libraries other than those initially included in the programming software.

Pour simplifier la programmation du WCS, il peut être intéressant de séparer le logigramme (1) en plusieurs logigrammes distincts :
- un premier logigramme-règle définit les règles de tri à mettre en œuvre, c’est-à-dire le scénario de tri fournissant des sorties logiques ;
- un second logigramme-machine définit le protocole de communication, et comment est-ce que le trieur met en œuvre les règles définies, c’est-à-dire le plan de tri fournissant des sorties physiques.
To simplify WCS programming, it may be useful to separate the flowchart (1) into several distinct flowcharts:
- a first rule flowchart defines the sorting rules to be implemented, i.e. the sorting scenario providing logical outputs;
- a second machine flowchart defines the communication protocol, and how the sorter implements the defined rules, i.e. the sorting plan providing physical outputs.

Par exemple, pour le cas d’une fonction de tri sur la base d’un code postal :For example, for the case of a sorting function based on a postal code:

Le logigramme-règle définit les sorties logiques, en résultat d’un test :
- si le code postal commence par « 42 », orienter le colis vers la « sortie 1 » ;
- si le code postal commence par « 69 », orienter le colis vers la « sortie 2 ».
The flowchart-rule defines the logical outputs, as a result of a test:
- if the postal code begins with “42”, direct the package towards “exit 1”;
- if the postal code begins with “69”, direct the package towards “exit 2”.

Le logigramme-machine d’un premier trieur affecte chaque sortie logique à une sortie physique :
- si « sortie 1 », orienter le colis vers le convoyeur A ;
- si « sortie 2 », orienter le colis vers le convoyeur B.
The machine flowchart of a first sorter assigns each logical output to a physical output:
- if “exit 1”, direct the package towards conveyor A;
- if “exit 2”, direct the package towards conveyor B.

La illustre un logigramme-règle, tandis que la illustre un logigramme-machine.There illustrates a flowchart-rule, while the illustrates a machine flowchart.

Dans le cas où différents trieurs sont pilotés par les mêmes règles de tri, il devient très facile de dupliquer des scénarios et de ne modifier que les logigramme-machine. Par exemple le logigramme-machine du second trieur serait :
- si « sortie 1 », orienter le colis vers le convoyeur C ;
- si « sortie 2 », orienter le colis vers le convoyeur D.
In case different sorters are driven by the same sorting rules, it becomes very easy to duplicate scenarios and modify only the machine flowcharts. For example, the machine flowchart of the second sorter would be:
- if “exit 1”, direct the package towards conveyor C;
- if “exit 2”, direct the package towards conveyor D.

Le logigramme machine est également utilisé pour programmer les protocoles de communication entre le WCS et le trieur. Dans notre exemple :
- le premier trieur peut utiliser un premier protocole de communication comme le protocole de contrôle de transmissions (ou « TCP » selon l’anglicisme Transmission Control Protocol) ;
- le second trieur peut utiliser un second protocole de communication comme le « Modbus ».
The machine flowchart is also used to program the communication protocols between the WCS and the sorter. In our example:
- the first sorter can use a first communication protocol such as the Transmission Control Protocol (or “TCP” according to the Anglicism Transmission Control Protocol);
- the second sorter can use a second communication protocol such as “Modbus”.

La programmation du protocole de communication est également nécessaire pour que le WCS puisse obtenir des informations du trieur. Le logigramme machine homogénéise le format des données obtenues, et communique les informations finales au logigramme règle.Programming the communication protocol is also necessary for the WCS to obtain information from the sorter. The machine flowchart homogenizes the format of the data obtained, and communicates the final information to the rule flowchart.

Le logigramme règle peut donc être unique, quel que soit le trieur utilisé et quel que soit le protocole de communication qu’il met en œuvre.The rule flowchart can therefore be unique, regardless of the sorter used and regardless of the communication protocol it implements.

En pratique, un utilisateur du WCS peut devoir gérer un parc comprenant une vingtaine machines, réparties sur une quinzaine de sites. Une machine peut être dédiée à un type de produit particulier, par exemple des colis import, ou de la presse non adressée. Pouvoir dupliquer les logigrammes-règles et ne reparamétrer que les logigrammes-machine est donc une simplification évidente de la programmation mise en œuvre pour gérer le parc.In practice, a WCS user may have to manage a fleet comprising around twenty machines, spread over around fifteen sites. A machine may be dedicated to a particular type of product, for example imported parcels, or unaddressed press. Being able to duplicate the rule flowcharts and only reconfigure the machine flowcharts is therefore an obvious simplification of the programming implemented to manage the fleet.

Sur les figures 1 et 3, des blocs de départs permettent de réagir à des évènements paramétrés, tels que l’injection d’un colis sur un trieur, ou encore la connexion d'un opérateur à une interface homme-machine du trieur.In figures 1 and 3, starting blocks make it possible to react to parameterized events, such as the injection of a package onto a sorter, or the connection of an operator to a human-machine interface of the sorter.

Afin de simplifier la programmation de l’ensemble des règles de tri, il est également possible de programmer distinctement plusieurs logigramme-règles au sein du WCS. Par exemple, un logigramme règle peut être dédié à la gestion des colis import, alors qu’un autre logigramme-règle peut être dédié à la gestion de la presse non adressée. Différents logigrammes peuvent être disposés sur une même fenêtre de l’interface de programmation, afin que l’utilisateur puisse visualiser l’ensemble de la programmation.In order to simplify the programming of all sorting rules, it is also possible to program several separate flowchart-rules within the WCS. For example, one flowchart-rule can be dedicated to the management of import parcels, while another flowchart-rule can be dedicated to the management of unaddressed press. Different flowcharts can be arranged on the same window of the programming interface, so that the user can view the entire programming.

En pratique, lorsqu’un logigramme-machine obtient un évènement du trieur, le logigramme-machine informe tous les logigramme-règle en cours d’exécution au sein du WCS. Pour un évènement donné, il faut s'assurer qu'un seul logigramme-règle applique les règles de tri correspondant à cet événement et détermine la sortie trieur à utiliser. Certains logigrammes-règles comprennent donc un bloc de décision (11) jouant le rôle d’un filtre.In practice, when a machine flowchart obtains an event from the sorter, the machine flowchart informs all the rule flowcharts running within the WCS. For a given event, it is necessary to ensure that only one rule flowchart applies the sorting rules corresponding to this event and determines the sorter output to use. Some rule flowcharts therefore include a decision block (11) playing the role of a filter.

Par exemple sur la , un premier bloc de décision (11) « Etiquette Chronopost » ne comprend qu’une seule sortie : la suite du logigramme-règle ne peut être exécuté que si le colis en question est du type « Chronopost ». Si ce n’est pas le cas, le logigramme-règle illustré ne peut pas être poursuivi. Un autre logigramme-règle, non représenté, comprend les instructions pour traiter les autres types de colis.For example on the , a first decision block (11) "Chronopost Label" includes only one output: the rest of the flowchart-rule can only be executed if the parcel in question is of the "Chronopost" type. If this is not the case, the illustrated flowchart-rule cannot be continued. Another flowchart-rule, not shown, includes the instructions for processing other types of parcels.

En référence à la , la même démarche peut s’appliquer à des situations que l’utilisateur ne souhaite pas gérer : par l’exemple, si l’évènement d’automate détecté n'est ni une information de type poids, ni une information de type compte rendu de tri, il n’est pas nécessaire de déclencher une autre action.In reference to the , the same approach can be applied to situations that the user does not wish to manage: for example, if the detected automation event is neither weight type information nor sorting report type information, it is not necessary to trigger another action.

Pour ne pas alourdir la description, il ne sera ensuite fait référence qu’au logigramme (1) complet du WCS, c’est-à-dire comprenant éventuellement un ou plusieurs logigrammes-règles et un ou plusieurs logigrammes-machines.In order not to make the description too long, reference will then only be made to the complete WCS flowchart (1), i.e. possibly including one or more rule flowcharts and one or more machine flowcharts.

Une fois que la conception du logigramme (1) est achevée, l’utilisateur peut déclencher la compilation, et de préférence la compilation ainsi que le rechargement à chaud du code source équivalent du logigramme (1), en cliquant sur un bouton « sauvegarder » (23).Once the design of the flowchart (1) is completed, the user can trigger the compilation, and preferably the compilation as well as the hot reloading of the equivalent source code of the flowchart (1), by clicking on a "save" button (23).

Le logiciel de programmation exécute alors un compilateur qui convertit le coude source équivalent du logigramme (1) en un code objet exécutable par l’ordinateur ou le serveur exécutant le WCS.The programming software then runs a compiler that converts the equivalent source code of the flowchart (1) into object code that can be executed by the computer or server running the WCS.

Le code objet est rechargé à chaud, c’est-à-dire qu’il est rechargé alors que le WCS est en cours d’exécution, et la nouvelle version de code objet est injectée lors de l’exécution. De cette façon, le WCS n’est pas arrêté, c’est-à-dire que l’activité du trieur n’est pas interrompue. Ce principe est particulièrement utile lorsque l’utilisateur apport des modifications mineures au WCS.The object code is reloaded hot, that is, it is reloaded while the WCS is running, and the new version of the object code is injected at runtime. In this way, the WCS is not stopped, that is, the sorter activity is not interrupted. This principle is particularly useful when the user makes minor changes to the WCS.

Il ne s’agit pas d’un rechargement en direct, qui réinitialise complètement l’état du logiciel.This is not a live reload, which completely resets the software state.

Le rechargement à chaud permet donc de procéder à des modifications du WCS, et d’implémenter directement les modifications effectuées. Il est donc possible de bénéficier d’une flexibilité pour la modification du WCS, qui n’était pas disponible jusqu’alors.Hot reloading therefore allows modifications to be made to the WCS, and the modifications made to be implemented directly. It is therefore possible to benefit from flexibility for modifying the WCS, which was not available until now.

Lors du fonctionnement du trieur automatique, il peut arriver qu’un colis soit mal aiguillé. Afin de prévenir la répétition de cette erreur, il est important de détecter si ce mauvais aiguillage résulte par exemple d’un incident mécanique (convoyeur dysfonctionnel), d’un incident logiciel (programmation inadaptée) ou d’un incident électronique (lecture erronée d’un code à barre).When the automatic sorter is operating, it may happen that a package is misdirected. In order to prevent this error from recurring, it is important to detect whether this misdirection is the result of, for example, a mechanical incident (dysfunctional conveyor), a software incident (inadequate programming) or an electronic incident (incorrect reading of a bar code).

Pour ce faire, le WCS dispose d’une interface graphique de vérification de tri (3) au moyen de laquelle il est possible, pour un tri d’un colis qui a déjà été effectué, de vérifier quel parcours a suivi le logigramme (1) pour ce tri.To do this, the WCS has a graphical sorting verification interface (3) by means of which it is possible, for a sorting of a parcel which has already been carried out, to check which path the flowchart (1) followed for this sorting.

En référence à la , cette vérification se fait de préférence au moyen d’un affichage dédié (31) du parcours sur le logigramme (1), par exemple par la mise en évidence, telle qu’une mise en surbrillance de ce parcours.In reference to the , this verification is preferably done by means of a dedicated display (31) of the route on the flowchart (1), for example by highlighting, such as highlighting this route.

Ce premier niveau de visualisation permet de détecter rapidement au niveau de quel bloc est-ce que l’erreur est survenue, l’utilisateur pouvant repérer par exemple un bloc de décision (11) du logigramme (1) où le WCS n’a pas suivi le bon embranchement. La recherche de l’incident est donc facilitée.This first level of visualization allows to quickly detect at which block the error occurred, the user being able to locate for example a decision block (11) of the flowchart (1) where the WCS did not follow the correct branch. The search for the incident is therefore facilitated.

En référence à la , en cliquant sur un bouton « Afficher le détails des étapes et des variables » (non représenté) l’utilisateur peut accéder à une fenêtre de traces (32) affichant des données stockées dans un fichier de traces. Les données comprennent :
- l’identification du logigramme (1) considéré, dans le cas où le WCS exécute plusieurs logigramme (1)s (colonne « scénario ») ;
- un horodatage (colonne « date màj ») ;
- un identifiant d’une variable (colonne « Clé »), qu’il s’agisse d’une donnée d’entrée (obtenue auprès du WMS ou de l’automate du trieur), d’une donnée calculée (résultat du test d’un bloc de décision (11) ou d’une action d’un bloc d’action (12)) ;
- le cas échéant, une valeur d’une variable (colonne « Valeur actuelle »).
In reference to the , by clicking on a button "Show details of steps and variables" (not shown) the user can access a trace window (32) displaying data stored in a trace file. The data includes:
- the identification of the flowchart (1) considered, in the case where the WCS executes several flowcharts (1)s (“scenario” column);
- a timestamp (“updated date” column);
- an identifier of a variable (column "Key"), whether it is an input data (obtained from the WMS or the sorter's automaton), a calculated data (result of the test of a decision block (11) or an action of an action block (12));
- if applicable, a value of a variable (column “Current value”).

Lorsque l’utilisateur a détecté d’où venait le dysfonctionnement, au moyen de l’interface graphique de vérification de tri (3), il peut se focaliser directement au bon niveau du fichier de traces, correspondant au bloc où a survenu l’erreur. S’il n’avait pas le repérage graphique (31) du parcours suivi par le colis pour détecter le bloc où a survenu l’erreur, l’utilisateur aurait dû parcourir l’intégralité d’un fichier traces du logiciel pour essayer de reconstituer le parcours du colis, et pour essayer de comprendre l’origine de l’erreur. Cette analyse aurait été beaucoup plus compliquée.When the user has detected where the malfunction came from, using the sorting verification graphical interface (3), he can focus directly on the right level of the trace file, corresponding to the block where the error occurred. If he did not have the graphical identification (31) of the path followed by the package to detect the block where the error occurred, the user would have had to go through an entire trace file of the software to try to reconstruct the path of the package, and to try to understand the origin of the error. This analysis would have been much more complicated.

L’invention permet donc de profiter de la grande paramétrabilité des logigrammes, tout en évitant l’inconvénient de leur lenteur d’exécution.The invention therefore makes it possible to benefit from the great configurability of flowcharts, while avoiding the disadvantage of their slow execution.

La maitrise basique d’un seul langage de code source permet de programmer un WCS complet, via la programmation d’instructions élémentaires au sein de blocs du logigramme (1).Basic mastery of a single source code language allows you to program a complete WCS, via the programming of elementary instructions within blocks of the flowchart (1).

Par ailleurs, le dispositif de pilotage, le logiciel de programmation et le procédé de programmation peuvent être conformés différemment des exemples donnés sans sortir du cadre de l’invention, qui est défini par les revendications.Furthermore, the control device, the programming software and the programming method may be configured differently from the examples given without departing from the scope of the invention, which is defined by the claims.

En outre, les caractéristiques techniques des différents modes de réalisation et variantes mentionnés ci-dessus peuvent être, en totalité ou pour certaines d’entre elles, combinées entre elles. Ainsi, le dispositif de pilotage, le logiciel de programmation et le procédé de programmation peuvent être adaptés en termes de coût, de fonctionnalités et de performance.Furthermore, the technical characteristics of the various embodiments and variants mentioned above can be, in whole or in some cases, combined with each other. Thus, the control device, the programming software and the programming method can be adapted in terms of cost, functionality and performance.

Claims (13)

Dispositif de pilotage d’un centre logistique, exécutant un logiciel de gestion d’entrepôt « WCS », et comprenant :
- une interface homme machine « IHM » exécutant un logiciel de programmation du WCS :
- le logiciel de programmation étant configuré pour concevoir un organigramme de programmation du WCS, dit « logigramme (1) » ;
- le logiciel de programmation comprenant une bibliothèque de blocs de logigramme (1) ;
- un compilateur pour générer un code objet à partir du logigramme (1).
Device for controlling a logistics center, running “WCS” warehouse management software, and comprising:
- a human machine interface “HMI” running WCS programming software:
- the programming software being configured to design a WCS programming flowchart, called “flowchart (1)”;
- programming software comprising a library of logic diagram blocks (1);
- a compiler to generate object code from the flowchart (1).
Dispositif selon la revendication 1, caractérisé en ce que le logiciel de programmation est configuré pour recharger à chaud le code objet.Device according to claim 1, characterized in that the programming software is configured to hot reload the object code. Dispositif selon l’une des revendications précédentes, caractérisé en ce que le WCS comprend un premier logigramme (1) dit « logigramme-règle » conçu pour déterminer des sorties logiques d’une règle de tri, et un second logigramme (1) dit « logigramme-machine » conçu pour faire correspondre les sorties logiques de la règle à des sorties physiques du trieur et/ou conçu pour programmer l’interopérabilité entre le WCS et le trieur.Device according to one of the preceding claims, characterized in that the WCS comprises a first logic diagram (1) called "rule logic diagram" designed to determine logical outputs of a sorting rule, and a second logic diagram (1) called "machine logic diagram" designed to match the logical outputs of the rule to physical outputs of the sorter and/or designed to program the interoperability between the WCS and the sorter. Dispositif selon l’une des revendications précédentes, caractérisé en ce que le logiciel de programmation du WCS est un sous-programme du WCS, de préférence le logiciel de programmation du WCS est lancé lors du démarrage du WCS.Device according to one of the preceding claims, characterized in that the WCS programming software is a subroutine of the WCS, preferably the WCS programming software is launched when the WCS is started. Dispositif selon l’une des revendications précédentes, caractérisé en ce que la bibliothèque comprend des blocs de logigramme (1) pré-paramétrés.Device according to one of the preceding claims, characterized in that the library comprises pre-parameterized logic diagram blocks (1). Dispositif selon l’une des revendications précédentes, caractérisé en ce que la bibliothèque comprend des blocs de logigramme (1) vierges, et programmables par un utilisateur au moyen de la saisie d’un code source.Device according to one of the preceding claims, characterized in that the library comprises blank logic diagram blocks (1) which can be programmed by a user by entering a source code. Dispositif selon l’une des revendications précédentes, caractérisé en ce que la bibliothèque comprend des blocs de logigramme (1) d’appel de module d'extension, et programmables par un utilisateur au moyen de la saisie d’un code source.Device according to one of the preceding claims, characterized in that the library comprises logic diagram blocks (1) for calling an extension module, and programmable by a user by means of entering a source code. Dispositif selon l’une des revendications précédentes, caractérisé en ce que la bibliothèque comprend des blocs d’interfaçage préprogrammés, comprenant des instructions de code d’un protocole de communication programmé pour assurer la compatibilité entre un code objet du WCS et un protocole de communication du trieurDevice according to one of the preceding claims, characterized in that the library comprises pre-programmed interface blocks, comprising code instructions of a communication protocol programmed to ensure compatibility between an object code of the WCS and a communication protocol of the sorter. Dispositif selon l’une des revendications précédentes, caractérisé en ce que le WCS est programmé pour afficher l'enchaînement des blocs exécutés pour une opération de tri réalisée, de préférence par la mise en évidence, telle qu’en surbrillance, sur le logigramme (1), des blocs exécutés.Device according to one of the preceding claims, characterized in that the WCS is programmed to display the sequence of blocks executed for a sorting operation carried out, preferably by highlighting, such as by highlighting, on the flowchart (1), the blocks executed. Procédé de programmation d’un système de gestion d’entrepôt dit « WCS », destiné à piloter un trieur d’un centre logistique, remarquable en ce qu’ il comprend les étapes successives suivantes :
- concevoir un organigramme de programmation du WCS, dit « logigramme (1) » ;
- exécuter un compilateur afin de traduire automatiquement le logigramme (1) dans un code objet.
Method for programming a warehouse management system called “WCS”, intended to control a sorter in a logistics center, remarkable in that it comprises the following successive steps:
- design a WCS programming flowchart, called “flowchart (1)”;
- run a compiler to automatically translate the flowchart (1) into object code.
Procédé selon la revendication 10, caractérisé en ce que le code objet est rechargé à chaud.Method according to claim 10, characterized in that the object code is hot reloaded. Programme d'ordinateur comportant des instructions pour mettre en œuvre un procédé selon l'une des revendications 10 ou 11.Computer program comprising instructions for implementing a method according to one of claims 10 or 11. Support de données susceptible d'être lu par un système informatique, comportant des données ou des instructions pour mettre en œuvre un procédé selon l'une des revendications 10 ou 11.Data carrier capable of being read by a computer system, comprising data or instructions for implementing a method according to one of claims 10 or 11.
FR2302656A 2023-03-22 2023-03-22 Control device for a logistics center, and programming method Pending FR3147032A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2302656A FR3147032A1 (en) 2023-03-22 2023-03-22 Control device for a logistics center, and programming method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2302656A FR3147032A1 (en) 2023-03-22 2023-03-22 Control device for a logistics center, and programming method
FR2302656 2023-03-22

Publications (1)

Publication Number Publication Date
FR3147032A1 true FR3147032A1 (en) 2024-09-27

Family

ID=88146603

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2302656A Pending FR3147032A1 (en) 2023-03-22 2023-03-22 Control device for a logistics center, and programming method

Country Status (1)

Country Link
FR (1) FR3147032A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5936860A (en) * 1997-03-28 1999-08-10 International Business Machines Corporation Object oriented technology framework for warehouse control
EP1825424A2 (en) 2004-11-15 2007-08-29 Becton, Dickinson & Company Graphical user interface for use with open expert system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5936860A (en) * 1997-03-28 1999-08-10 International Business Machines Corporation Object oriented technology framework for warehouse control
EP1825424A2 (en) 2004-11-15 2007-08-29 Becton, Dickinson & Company Graphical user interface for use with open expert system

Similar Documents

Publication Publication Date Title
US7975262B2 (en) Error tracing with context history
US8595138B2 (en) Packaging system for customizing software
CN112799716B (en) Code management method and system
US20060206856A1 (en) System and method for software application development in a portal environment
CN110941467A (en) Data processing method, device and system
EP2015085B1 (en) Method of testing an electronic system
US20190392644A1 (en) Automatic dynamic diagnosis guide with augmented reality
WO2004013800A2 (en) Software for generating a computer application code and software description language
CN110795078A (en) APP engineering operation system architecture method based on IOS system
FR3105862A1 (en) METHOD AND SYSTEM FOR SELECTING A LEARNING MODEL WITHIN A PLURALITY OF LEARNING MODELS
CN106227654B (en) A kind of test platform
FR2798204A1 (en) CLOSED INTERRUPTION POINTS AND METHOD OF DEBUGGING COMPUTER PROGRAMS
WO2006136565A1 (en) Data processing method compatible with an object modelling formalism
FR2934388A1 (en) METHOD FOR CREATING COMPUTER PROGRAM
FR2713368A1 (en) Procedure and method of communication between machines and generalized method of preparing related programs.
Bampakos et al. Learning Angular: A no-nonsense guide to building web applications with Angular 15
Freeman Pro Go
Rosales-Morales et al. ImagIngDev: a new approach for developing automatic cross-platform mobile applications using image processing techniques
FR3147032A1 (en) Control device for a logistics center, and programming method
CN113064838B (en) Code debugging method and device, user equipment, server and storage medium
CN113342629A (en) Operation track restoration method and device, computer equipment and storage medium
EP0331551B1 (en) Programmable logic controller using a structured programming language
FR3105844A1 (en) PROCESS AND SYSTEM FOR IDENTIFYING RELEVANT VARIABLES
CN117369945A (en) K8S-based method and system for deploying containerized application by one key
CN114218085A (en) A method, device, device and readable storage medium for finding a key test set

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20240927

PLFP Fee payment

Year of fee payment: 3