FR 2660451 A1 19911004 FR 9103498 A 19910322 PROCÉDÉ POUR CONVERTIR UNE CONFIGURATION MATÉRIELLE ET UN PROGRAMME DE COMMANDE CORRESPONDANT PRÉVUS POUR UN PREMIER CONTRÈLEUR LOGIQUE PROGRAMMABLE POUR UN AUTRE CONTRÈLEUR LOGIQUE PROGRAMMABLE La présente invention concerne de façon générale les contrôleurs logiques programmables, et plus particu- lièrement un procédé pour convertir une configuration matérielle et un programme de commande d'un contrôleur logique programmable existants en une configuration maté- rielle et un programme de commande équivalents pour un autre contrôleur logique programmable. Les contrôleurs logiques programmables (CLP) ont été développés récemment dans les technologies de com- mande de processus Dans une commande de processus, un contrôleur logique programmable est utilisé pour surveil- ler les signaux d'entrée provenant de plusieurs modules d'entrée (capteurs d'entrée) qui détectent des éléments et des conditions ayant lieu dans un processus contrôlé Par exemple, un CLP peut surveiller des conditions d'entrée telles qu'une vitesse de moteur, une température, une pression, un débit volumique ou similaires Un programme de commande est stocké dans une mémoire du CLP pour signa- ler au CLP quelles actions doivent être prises en réponse à des signaux ou des conditions d'entrée particuliers En réponse à ces signaux d'entrée fournis par des capteurs d'entrée, le CLP produit des signaux de sortie qui sont transmis à divers dispositifs de sortie pour contrôler le processus Par exemple, le CLP fournit des signaux de sor- tie pour accélérer ou ralentir un moteur, ouvrir ou fermer un relais, élever ou abaisser une température ou régler une pression ainsi que beaucoup d'autres fonctions de com- mande possibles trop nombreuses pour les énumérer. Un CLP typique comprend une baie dans laquelle plusieurs cartes d'entrée/sortie peuvent être insérées. Une baie comprend plusieurs connecteurs dans lesquels ces cartes d'entrée/sortie sont installées Chaque carte d'en- trée/sortie comprend plusieurs points d'entrée/sortie Un bus d'entrée/sortie couple les cartes dans les connecteurs au processeur du CLP Le processeur particulier employé dans un CLP ainsi que le choix particulier de cartes d'en- trée/sortie installées dans la baie du CLP sont souvent appelés "la configuration matérielle" du CLP La configu- ration matérielle comprend aussi les adresses particuliè- res que les cartes d'entrée/sortie utilisent. Comme la technologie des contrôleurs logiques programmables progresse, il est souvent souhaitable de remplacer de vieux contrôleurs logiques programmables (CLP) par des nouveaux Quand il est nécessaire de confi- gurer un nouveau contrôleur logique programmable pour qu'il soit équivalent à un ancien, on doit sélectionner une configuration matérielle nouvelle équivalente et une programmation logique nouvelle équivalente du contrôleur (programme de commande) doit être générée Il existera souvent des incompatibilités au niveau des dimensions des baies, des densités des modules d'entrée/sortie, de l'adressage des points d'entrée/sortie et des ensembles d'instructions de programme entre des anciens et des nou- veaux CLP La sélection de la configuration matérielle et la programmation logique du programme de commande sont souvent complexes. Par conséquent, un objet de la présente inven- tion est de prévoir un procédé pour convertir une configu- ration matérielle et un programme de commande pour un premier CLP en une configuration matérielle et un program- me de commande équivalent pour un deuxième CLP différent du premier. Un autre objet de la présente invention est de prévoir un procédé pour convertir et traduire un programme de commande à logique en échelle utilisable sur le premier CLP en un programme de commande à logique en échelle équi- valent utilisable sur le deuxième CLP. Un autre objet de la présente invention est de générer un deuxième programme de commande équivalent sous la forme d'un format à haut niveau à frappes de touches qui est sensiblement indépendant de la logique interne du deuxième contrôleur logique programmable. Selon la présente invention, il est prévu un procédé pour convertir un premier programme de commande et une première configuration matérielle pour un premier con- trôleur logique programmable (CLP) en un deuxième program- me de commande et une deuxième configuration matérielle pour un deuxième CLP Les premier et deuxième programmes de commande comprennent une pluralité de déclarations Le procédé selon la présente invention comprend les étapes suivantes: fournir des informations de configuration sur la première configuration matérielle du premier CLP à un processeur; fournir le programme de commande du premier CLP au processeur; et sélectionner la deuxième configura- tion matérielle pour qu'elle soit équivalente à la premiè- re configuration matérielle à l'aide du processeur qui se réfère à une base de données qui met en relation la pre- mière configuration matérielle à des possibles deuxièmes configurations matérielles Le procédé comprend aussi la génération d'un mappage des points d'entrée/sortie du pre- mier CLP au deuxième CLP Le procédé comprend encore la génération du deuxième programme de commande pour qu'il soit équivalent au premier programme de commande, le deuxième programme de commande étant généré par le proces- seur qui référence chaque déclaration du premier programme de commande et qui détermine une déclaration équivalente fonctionnant sur le deuxième CLP. Pour une meilleure compréhension de la présente invention, on pourra se référer à la description détaillée suivante et aux figures jointes parmi lesquelles: la figure 1 représente un schéma sous forme de blocs de baies d'un ancien contrôleur logique programmable et d'un nouveau contrôleur logique programmable cible, avec lequel le procédé selon la présente invention peut être utilisé; la figure 2 représente un schéma fonctionnel du traducteur de configuration matérielle et de logique selon la présente invention; la figure 3 représente un organigramme du pro- gramme de traduction pour convertir des applications de CLP; la figure 4 représente un mappage biunivoque entre des points d'entrée/sortie physiques de l'ancien CLP et du nouveau; et la figure 5 représente une portion d'un diagram- me en échelle pour un CLP illustrant la logique en échelle pour un échelon. Une description de haut niveau du procédé de conversion selon la présente invention suit. La première étape du procédé de conversion selon la présente invention est d'obtenir un mappage entre les points d'entrée/sortie physiques de l'ancien système à CLP (premier CLP) et ceux du nouveau système à CLP cible (deu- xième CLP) Un programme d'intelligence artificielle à apprentissage est utilisé pour sélectionner les modules ou les cartes d'entrée/sortie nécessaires dans la baie du nouveau contrôleur logique programmable en utilisant un procédé d'appariement basé sur les modules ou les cartes d'entrée/sortie dans la baie de l'ancien contrôleur logi- que programmable Les adresses des points d'entrée/sortie équivalents sont alors déterminées et un mappage entre les adresses des nouveaux points d'entrée/sortie et les adres- ses des anciens points d'entrée/sortie est généré. Dans la deuxième étape du procédé, la liste des déclarations du programme logique de l'ancien programme de commande de CLP est convertie en les nouveaux ensembles d'instructions du nouveau système à CLP Le programme d'intelligence artificielle agit sur un ancien ou premier fichier de programme de commande contenant une représenta- tion en ASCII des ensembles d'instructions logiques en échelle de l'ancien système à CLP sous la forme d'une représentation symbolique Ce fichier est traité échelon par échelon et symbole par symbole de manière à automati- quement réattribuer les adresses d'entrée/sortie à partir du mappage effectué dans la première étape du procédé dans un ensemble de frappes de touches qui produisent une logi- que équivalente pour le nouveau contrôleur logique pro- grammable Des portions de l'ancienne logique du programme de commande qui ne peuvent pas être automatiquement con- verties sont identifiées et sont signalées pour une inter- vention et une résolution manuelles. Une caractéristique de reproduction d'un système de programmation de contrôleur logique programmable pour le nouveau CLP frappe automatiquement la nouvelle configu- ration matérielle équivalente et le nouveau programme de commande équivalent dans le nouveau contrôleur logique programmable pour que l'utilisateur ne doive pas effectuer cette tâche manuellement Cette logique traduite est sous la forme d'un fichier de frappes de touches C'est-à-dire que le nouveau CLP comprend un système de programmation associé qui est capable d'accepter, soit un programme de commande introduit par des frappes de touches générées manuellement, soit un fichier de frappes de touches qui remplace des frappes de touches générées manuellement. Après la résolution d'un pourcentage relativement petit de logique non convertie qui nécessite une intervention manuelle, un nouveau programme de commande exécutable par le nouveau contrôleur programmable est généré comme cela est expliqué plus loin. De façon plus détaillée, le procédé selon la présente invention est illustrée à l'aide de la figure 1, dans laquelle la configuration matérielle logique d'un ancien contrôleur logique programmable (CLP) 10 doit être convertie en une configuration matérielle logique équiva- lente d'un nouveau CLP 20 L'ancien CLP 10 comprend des baies 110 et 120 couplées l'une à l'autre par un bus 130. Les composants de la configuration matérielle des baies et 120 de l'ancien CLP 10 sont identifiés et une liste d'entrées/sorties correspondante est générée Une liste de composants de configuration matérielle équivalents est générée pour le nouveau CLP 20 et un mappage d'adresses d'entrée/sortie entre les composants de l'ancien CLP 10 et les composants du nouveau CLP 20 est généré. L'ancien CLP 10 comprend une alimentation en alternatif 140 de 115 volts et cinq composants de configu- ration matérielle dont une unité centrale de traitement (CPU) 150 et des composants 160, 170, 180 et 190 tous mon- tés dans des connecteurs respectifs de la baie 110 La deuxième baie 120 comprend une autre alimentation en alternatif 210 de 115 volts ainsi que des composants de configuration matérielle 220, 230 et 240 montés dans des connecteurs respectifs dans la baie 120 Les connecteurs 250 de la baie 120 ne sont pas utilisés dans cet exemple. Dans l'exemple représenté en figure 1, l'ancien CLP 10 est un contrôleur logique programmable SERIES 1 et les compo- sants 110 à 250 sont des modules de configuration maté- rielle SERIES 1 et des composants fabriqués par GE Fanuc North America, Inc. Dans cet exemple, le nouveau CLP 20 est configu- ré comme équivalent à l'ancien CLP 10 par le procédé décrit ci-après Le programme de commande équivalent pour le nouveau CLP 20 est généré de la même manière à partir du programme de commande pour l'ancien CLP 10 comme cela sera aussi décrit Dans cet exemple particulier, l'ancien CLP 10 comprend une seule baie 310 qui contient une ali- mentation en alternatif 320 de 115 volts et quatre compo- sants de configuration matérielle 330, 340, 350 et 360 montés dans des connecteurs respectifs de la baie 310 Le connecteur 370 de la baie 310 n'est pas utilisé dans cet exemple Dans le mode de réalisation représenté en figure 1, le nouveau CLP 20 est un contrôleur logique programma- ble SERIES 90-30, et les composants de configuration maté- rielle 310 à 370 sont des modules SERIES 90-30 et des composants fabriqués par GE Fanuc North America, Inc. La conversion de la configuration matérielle et du programme logique de commande du CLP 10 en une configu- ration matérielle et un programme logique de commande équivalents pour le CLP 20 comprend les étapes de généra- tion d'un fichier de programme à logique en échelle du programme logique de commande du CLP 10 et la génération d'une liste des modules d'entrée/sortie de l'ancien CLP En outre, le procédé comprend l'étape de génération d'une configuration matérielle équivalente pour le nouveau CLP 20 cible et l'étape de création d'un mappage des points d'entrée/sortie entre l'ancien CLP 10 et le nouveau CLP 20 Le procédé comprend aussi l'étape de génération d'un programme logique de commande pour le nouveau CLP 20, qui est équivalent au programme logique de commande de l'ancien CLP 10 Les traductions de la configuration maté- rielle et du programme logique de commande sont effectuées à l'aide d'un programme à intelligence artificielle à apprentissage, qui est utilisé comme programme de tra- duction de logique en échelle comme cela sera expliqué ul- térieurement. La figure 2 représente un diagramme de déroule- ment du procédé pour convertir le programme logique de commande ou une application du CLP 10 en un programme logique de commande ou une application pour le nouveau CLP cible Un programme 400 de traduction à intelligence artificielle à apprentissage, qui utilise la méthodologie de l'intelligence artificielle, emploie les entrées sui- vantes: un fichier 410 de configuration matérielle de l'ancien CLP, qui est fourni à l'entrée du programme de traduction par une interaction de l'opérateur et qui décrit la configuration matérielle, et un fichier 420 du programme de commande de l'ancien CLP 10 Le programme de traduction 400 est interactif avec un opérateur et génère les sorties suivantes: une liste 430 de correspondance entre des points d'entrée/sortie de l'ancien CLP 10 et des points d'entrée/sortie du nouveau CLP 20 cible, une nou- velle configuration matérielle 440 du CLP 20 et un nouveau programme de commande 450 annoté du CLP 20. Le programme de traduction 400 comprend une base de données contenant des informations sur tous les modules de configuration matérielle ou les cartes d'entrée/sortie disponibles pour l'ancien CLP 10 et pour le nouveau CLP 20 cible ainsi que les correspondances entre eux En outre, il comprend des règles compilées à apprentissage qui com- prennent des informations d'adressage et des heuristiques pour mapper les points d'entrée/sortie de l'ancien CLP 10 au nouveau CLP 20 cible Le programme de traduction 400 comprend aussi une base de données de mnémoniques de touches de programmation du nouveau CLP 20 cible et leurs équivalents en nombres entiers, un interpréteur, et un mappage qui met en relation tous les éléments du programme de commande de l'ancien CLP 10 à un ensemble d'étapes interprétatives et de frappes de touches. Le programme de traduction 400 génère un fichier de sortie 450 (voir figure 2) qui est une entrée de liste de frappes de touches pour le nouveau CLP 20 cible Dans le passé, les CLP étaient programmés par des opérateurs humains en entrant manuellement des frappes de touches alors que selon la présente invention de telles frappes de touches sont essentiellement effectuées par le programme de traduction 400 De plus, le même fichier de liste de frappes de touches généré pour le nouveau CLP 20 est uti- lisable comme programme d'entrée de haut niveau pour de futurs CLP ayant la même entrée de programme de frappes de touches ou similaire mais fonctionnant avec un code machi- ne interne totalement différent. La figure 3 représente un organigramme du pro- gramme de traduction 400 qui est utilisé pour mettre en oeuvre le procédé selon la présente invention Le program- me de traduction 400, qui est préférablement exécuté sur un ordinateur personnel, fonctionne de la manière suivan- te Le programme 400 commence au bloc de début 505 et affiche un menu de choix d'utilisateur CONFIGURATION 506, PROGRAMME 507 ou SORTIE 508 qui peuvent être sélectionnés au bloc 510 D'habitude, le choix CONFIGURATION 506 est généralement d'abord sélectionné, et dans ce mode une con- figuration matérielle d'un nouveau CLP cible est générée en prenant comme base une configuration matérielle d'un ancien CLP. Ensuite, PROGRAMME 507 est sélectionné, et dans ce mode, le programme à logique en échelle (programme de commande) de l'ancien CLP 10 est traduit en un programme de frappes de touches (programme de commande) pour le nou- veau CLP 20 cible Finalement, le programme de traduction 400 est terminé par la sélection de SORTIE ou du bloc 508. Plus en détail, quand CONFIGURATION est sélec- tionné dans le bloc 506, l'utilisateur est questionné au bloc 515 A sur le CPU particulier de la configuration de l'ancien CLP 10 Comme cela est indiqué au bloc 515 B, un menu de présentation graphique est alors affiché, à partir duquel le restant de la configuration matérielle de l'ancien CLP 10 est sélectionné Les blocs d'interface avec l'utilisateur 515 C à 515 E du programme 400 permettent à l'utilisateur de marquer des connecteurs de configura- tion matérielle du CLP 10 sur une présentation de menu graphique correspondant à des positions de connecteurs de modules du CLP 10 Tandis que l'utilisateur actionne les touches de déplacement de curseur, les différents connec- teurs de module sont marqués et, pour chaque connecteur marqué, un menu de choix possibles de configuration maté- rielle est présenté sur l'écran de l'ordinateur L'utili- sateur sélectionne à partir de ces choix en frappant les touches marquées Fl, F 2, Fn correspondant à la sélec- tion désirée à partir du menu affiché par le programme 400 et correspondant à des blocs de décision de programme 515 F à 515 H A chaque choix Fl à Fn est associé un parmi n modules possibles qui peuvent être contenus dans l'ancien CLP 10 Lors de la sélection par l'utilisateur d'un module approprié, le programme 400 rassemble, à partir de sa base de données, les possibilités de configurations matérielles appropriées pour le module choisi dans un des blocs 520 A à 520 C, construit un menu d'utilisateur des choix disponi- bles au bloc 525, et affiche ce menu au bloc 530. Le programme 400 apparie la configuration maté- rielle sélectionnée par l'utilisateur à une configuration matérielle équivalente correspondante pour le CLP 20 cible au bloc de programme 535, détermine les correspondances d'entrée/sortie entre les modules de l'ancien CLP 10 et les modules du nouveau CLP 20 au bloc 540 et effectue une entrée de mappage d'entrées/sorties approprié dans le fichier de table d'entrées/sorties au bloc 545. Le programme 400 retourne à l'interface graphi- que d'utilisateur 515 définie par les blocs 515 A à 515 H au niveau desquels des choix de configuration matérielle sont subséquemment entrés par l'utilisateur Pour sortir de la boucle de programme décrite ci-dessus, l'utilisateur sé- lectionne le choix F 10 au bloc 550 Le programme 400 écrit alors la configuration matérielle et le mappage d'entrées/ sorties déterminé dans les blocs 530 à 545 dans des fi- chiers d'utilisateur permanents au bloc 555 Ces fichiers d'utilisateur sont représentés comme des sorties 430 et 440 du programme 400 en figure 2 Les fichiers d'utilisa- teur 430 et 440 sont utilisés plus tard avec le système de programmation logique du CLP 20 de la manière précédemment indiquée pour entrer automatiquement la configuration matérielle et les configurations des adresses de base CLP cible. En se référant à nouveau à la figure 3, après avoir quitté, par exemple au niveau du bloc 550, le com- mande du programme 400 revient au menu principal au bloc 510, à la suite de quoi le choix PROGRAMME peut être sé- lectionné au bloc 507 Cette sélection est utilisée pour traduire le fichier de programme de commande de l'ancien CLP 10 (représenté comme l'entrée 420 du programme 400 en figure 2) en un ensemble de frappes de touches qui entrent un élément de programme équivalent ou un algorithme équi- valent dans le CLP 20 cible par l'intermédiaire du système de programmation logique du CLP 20. Un fichier de programme d'utilisateur (représen- té comme l'entrée 420 en figure 2) représentant le pro- gramme de commande de l'ancien CLP 10 est ouvert au bloc 560 Ce fichier est un fichier d'impression ASCII qui con- tient une représentation symbolique de logique en échelle échelon par échelon du programme de commande de l'ancien CLP 10 Les blocs 565 A à 565 D du programme 400 lisent ce fichier d'entrée ligne par ligne, reconnaissent des éléments de programme et apparient des éléments à une liste d'étapes. De façon plus détaillée, le bloc 565 A avec le bloc de décision 565 B lit des lignes d'entrée de l'ancien programme de commande jusqu'à ce qu'une ligne de début soit trouvée Le bloc 565 C sépare les lignes de l'ancien programme de commande en des éléments reconnaissables et le bloc 565 D apparie les éléments à une liste d'étapes. Dans des blocs 570 A à 570 F du programme 400, la liste d'étapes est alors interprétée sêquentiellement, si néces- saire, et est convertie en des frappes de touches pour le programmeur logique du nouveau CLP 20 cible sous la forme d'un fichier de sortie (désigné par 450 en figure 2). Les anciens échelons et les anciens commentaires du programme de CLP sont conservés sous forme de commen- taires annotés dans le nouveau programme de commande con- tenu dans le fichier de sortie 450 C'est-à-dire que le bloc 470 A retire une étape de la liste d'étapes et le bloc de décision 470 B vérifie si l'étape est une frappe de touches du programme du nouveau CLP 20 S'il est déterminé dans le bloc de décision 470 B que l'étape concernée est en effet une frappe de touches, alors l'étape est convertie en nombres entiers et écrite dans le fichier de sortie du nouveau programme de commande au bloc 570 C Si l'étape n'est pas une frappe de touches, elle est interprétée en des frappes de touches équivalentes dans le bloc 570 D et écrite dans le fichier de sortie au niveau du bloc 570 E. Le bloc 570 F provoque une itération des blocs de traduc- tion 570 A à 570 E jusqu'à ce que toutes les étapes dans la liste d'étapes soient traduites et écrites dans le fichier de sortie 450 pour le nouveau programme de commande. La fonction PROGRAMME du programme 400 se termi- ne au bloc 575 à la fin des données d'utilisateur et pro- voque un retour à la section du menu principal o on peut sélectionner QUITTER au bloc 508 Le programme 400 se ter- mine alors au bloc 580 et rend la commande à l'ordinateur. En revenant à la figure 2, selon ce mode de réalisation du procédé selon la présente invention, le programme de traduction 400 faisant partie du procédé de conversion selon la présente invention est un programme d'intelligence artificielle écrit en utilisant le langage Turbo Prolog (marque déposée par Borland International) et est exécuté sur un IBM PC (marque déposée par Internatio- nal Business Machines Corp) ou un ordinateur compatible sous DOS (système d'exploitation de disques) L'entrée 420 est maintenant reconnue comme un fichier d'entrée DOS et les sorties 430, 440 et 450 sont des fichiers de sortie DOS sur l'ordinateur L'entrée 410 est l'ensemble d'en- trées de frappes de touches d'utilisateur et de réponses de choix de menu sélectionnés sous le commande du program- me 400 L'homme du métier remarquera que d'autres langages d'ordinateur, d'autres systèmes d'exploitation et d'autres ordinateurs peuvent être utilisés à la place de ceux men- tionnés ci-dessus avec sensiblement les mêmes résultats. Pour illustrer plus clairement une portion du procédé de conversion selon la présente invention, un exemple de listage partiel de fichier de mappage de points d'entrée/sortie physiques est représenté en figure 4 Dans chaque déclaration du mappage, le premier nombre 610, qui est un point d'entrée/sortie de l'ancien CLP 10, est directement équivalent à un deuxième nombre 615, qui est un point d'entrée/sortie du nouveau CLP 20 cible Dans l'exemple particulier de la figure 4, les premiers nombres 610 entre parenthèses sont des adresses en octal de con- necteurs spécifiques au CLP SERIES 1, alors que les deuxièmes nombres associés 615 sont selon une numérotation décimale du type indicateur de mémoire du standard IEC: %I pour des entrées et %Q pour des sorties, qui sont spé- cifiques au CLP SERIES 90-30. Il n'est pas toujours souhaitable que la traduction de programme de CLP ou que la conversion soit entièrement automatique Dans certains cas, il existe des possibilités d'améliorer la performance de certaines fonc- tions de programme de CLP lors du transfert d'une applica- tion de programme de commande d'une ancienne configuration matérielle à une nouvelle configuration cible La nouvelle configuration cible peut comprendre des fonctions souhai- tables qui n'existaient pas sur l'ancien CLP, ou il peut y avoir des moments o il n'y a pas d'équivalence directe entre des ensembles d'instructions de logique en échelle de l'ancien CLP et celles du CLP cible Dans ces cas, une intervention manuelle dans le procédé de traduction est souhaitable Dans le cas o il n'existe pas d'équivalence directe, des symboles spéciaux sont insérés par le traduc- teur dans le fichier 450 pour identifier si un tel cas a lieu De façon similaire, l'option est donnée à l'utilisa- teur du programme de traduction de laisser certains ensem- bles d'instructions du programme de commande de l'ancien CLP non traduits, de manière qu'il puisse mettre à profit des améliorations du jeu d'instructions du CLP cible Si cette option est utilisée, les symboles spéciaux sont insérés dans le fichier 450 pour identifier chaque occur- rence Dans les deux cas, l'intervention manuelle est effectuée ultérieurement en utilisant le logiciel de pro- grammation pour le CLP cible pour éditer les commandes désirées dans le programme cible. La figure 5 représente un échelon 630 (échelon 8) d'un fichier ASCII comprenant une représentation d'un programme de commande à logique en échelle d'un ancien CLP qui sert d'un échelon du fichier d'entrée 420 pour le programme de traduction 400 Le traducteur 400 traite cette information ASCII en reconnaissant la chaîne de caractères 635 (" 003 ") comme un point d'entrée et génère les frappes de touches correspondantes du CLP 20 en tant que point d'entrée/sortie correspondant comme cela a été représenté en figure 4 Le programme de traduction 400 comprend beaucoup de déclarations "équivalent" dans sa base de données, comme par exemple, lesdéclarations d'équivalence suivantes: equiv(" l l ", lCONTACTNO,REF,NOM,ENTRERl) equiv(" ()",lBOBINE,REF,NOM,ENTRERl) Chaque fois que les symboles ASCII " l l " sont rencon- trés par le programme de traduction 400, le traducteur 400 mettra ces symboles en équation avec la liste entre cro- chets Il effectuera les opérations suivantes: ( 1) Convertir CONTACTNO (contact normalement ouvert) en son équivalent entier et écrire l'entier dans le fichier de frappes de touches 450 Cet entier est directement reconnu comme une entrée par le système de programmation du nouveau CLP 20. * ( 2) Traiter le symbole REF en vérifiant la réfé- rence qui était associée avec le contact dans le fichier ASCII du programme de l'ancien CLP 10, par exemple, la référence aux symboles " 003 " est convertie en la référence d'entrée/sortie correspondante "%I 4 " Les caractères ASCII devant appartenir à cette référence d'entrée/sortie sont rajoutés au fichier de frappes de touches 450. ( 3) Traiter le symbole NOM en repérant le surnom (aucun n'est représenté dans cet exemple) associé à la référence, et le modifier conformément aux conventions de notation du programmeur du CLP 20, et entrer les caractè- res ASCII correspondants dans le fichier de frappe de touches 450. ( 4) Convertir le symbole ENTRER en son entier équivalent et entrer cet entier équivalent dans le fichier de frappes de touches 450. Ainsi, les références aux contacts 640 A, 640 B et 640 C en figure 5 sont similairement traduites en utilisant les règles de base de données mentionnées ci-dessus. Quand le programme de traduction 400 rencontre les symboles ASCII " ()", c'est-à-dire, les symboles entre guillemets représentés dans la deuxième déclaration d'équivalence ci-dessus, il effectue un ensemble d'opéra- tions analogues selon la deuxième déclaration d'équivalen- ce de la base de données Ainsi, la bobine 640 D de la figure 5 est traduite en les frappes de touches appro- priées selon la deuxième déclaration d'équivalence ci-des- sus Les références 645 et 650 aux adresses " 601 " et " 600 " en figure 5 sont respectivement traduites en des adresses "%T 0236 " et "%T 0235 " comme cela est représenté sur la table de la figure 4 D'autres déclarations d'équivalence de la base de données (non représentées ici) ont des niveaux additionnels de complexité et sont manipulés de façon appropriée par le programme de traduction 400. Ce qui précède décrit un procédé pour convertir une ancienne application de CLP en une nouvelle applica- tion de CLP Ainsi, un procédé est décrit pour sélection- ner les composants matériels et la configuration d'un nouveau CLP en prenant comme référence les composants matériels et la configuration d'un ancien CLP De plus, le procédé prévoit la traduction d'un ancien programme de commande à logique en échelle en un fichier de frappes de touches qui est directement utilisable pour programmer le nouveau CLP. Alors que certaines caractéristiques préférées selon la présente invention ont été indiquées à titre d'exemple, de nombreuses variantes et modifications appa- raitront à l'homme de l'art Par conséquent, les revendi- cations ci-après sont destinées à couvrir toutes ces variantes et modifications qui tombent dans le domaine de la présente invention. REVENDICATIONS 1 Procédé pour convertir un premier programme de commande ( 420) et une première configuration matérielle ( 410) pour un premier contrôleur logique programmable (CLP) ( 10) en un deuxième programme de commande ( 450) et une deuxième configuration matérielle ( 440) pour un deu- xième CLP ( 20), les premier et deuxième programmes de com- mande comprenant une pluralité de déclarations, caractéri- sé en ce qu'il comprend les étapes suivantes: fournir des informations de configuration sur la première configuration matérielle du premier CLP ( 10) à un processeur ( 400); fournir le programme de commande du premier CLP ( 420) au processeur; sélectionner la deuxième configuration matériel- le ( 440) pour qu'elle soit équivalente à la première con- figuration matérielle ( 410) à l'aide du processeur ( 400) qui se réfère à une base de données ( 430) qui met en rela- tion la première configuration matérielle à des possibles deuxièmes configurations matérielles; générer un mappage des points d'entrée/sortie du premier CLP ( 10) au deuxième CLP ( 20); et générer le deuxième programme de commande ( 450) pour qu'il soit équivalent au premier programme de comman- de ( 420), le deuxième programme de commande étant généré par le processeur qui référence chaque déclaration du pre- mier programme de commande et qui détermine une déclara- tion équivalente fonctionnant sur le deuxième CLP ( 20). 2 Procédé selon la revendication 1, caractérisé en ce que le premier programme de commande ( 420) est une représentation selon la norme ASCII d'ensembles d'instruc- tions de logique en échelle du premier CLP ( 10). 3 Procédé selon la revendication 1, caractérisé en ce que le deuxième programme de commande ( 450) est un fichier de frappes de touches. 4 Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape consistant à marquer pour une conversion manuelle des déclarations prédétermi- nées du premier programme de commande ( 420), de telle manière que des déclarations n'ayant pas d'équivalents exacts et des déclarations qui peuvent être manuellement optimisées pour le deuxième CLP ( 20) puissent être conver- ties manuellement. Procédé pour convertir un premier programme de commande ( 420) et une première configuration matérielle ( 410) pour un premier contrôleur logique programmable (CLP) ( 10) en un deuxième programme de commande ( 440) et une deuxième configuration matérielle ( 450) pour un deu- xième CLP ( 20), le premier CLP comprenant une baie dans lequel plusieurs modules de configuration matérielle du premier CLP peuvent être insérés, le deuxième CLP compre- nant une baie dans laquelle plusieurs modules de configu- ration matérielle du deuxième CLP peuvent être insérés, le premier programme de commande ( 420) comprenant plusieurs déclarations logiques, caractérisé en ce qu'il comprend les étapes suivantes: afficher une représentation de plusieurs modules matériels qui sont utilisables avec le premier CLP; sélectionner à partir de ces modules matériels dans ladite étape d'affichage les modules qui sont effec- tivement utilisés dans une configuration matérielle parti- culière du premier CLP ( 10); créer une première représentation de configura- tion matérielle de la configuration matérielle sélection- née dans ladite étape de sélection; déterminer les modules de configuration maté- rielle du deuxième CLP ( 20), qui sont équivalents aux modules du premier CLP ( 10) utilisés dans la première con- figuration matérielle ( 410) en se référant à une première base de données qui comprend des informations d'équivalen- ce entre des modules de configuration matérielle pour le deuxième CLP ( 20) et les modules correspondants du premier CLP ( 10); générer un mappage des points d'entrée/sortie du premier CLP ( 10) et des points d'entrée/sortie du deuxième CLP ( 20), lesdites étapes de détermination et de généra- tion d'un mappage définissant ainsi la deuxième configura- tion matérielle ( 440) du deuxième CLP ( 20); et générer le deuxième programme de commande ( 450) pour le deuxième CLP ( 20) à partir des déclarations du premier CLP ( 10) et le mappage des points d'entrée/sortie. 6 Procédé selon la revendication 5, caractérisé en ce que l'étape de génération du deuxième programme de commande ( 450) comprend l'étape de faire référence, pour chaque déclaration du premier programme de commande ( 420), à une deuxième base de données qui établit la relation entre des déclarations utilisables sur le premier CLP ( 10) et des déclarations équivalentes utilisables sur le deu- xième CLP ( 20), de manière que chaque déclaration du premier programme de commande ( 420) soit référencée pour déterminer une déclaration équivalente fonctionnant sur le deuxième CLP ( 20). 7 Procédé selon la revendication 5, caractérisé en ce que le premier programme de commande ( 420) est une représentation selon la norme ASCII d'ensembles d'instruc- tions de logique en échelle du premier CLP ( 10). 8 Procédé selon la revendication 5, caractérisé en ce que le deuxième programme de commande ( 450) est un fichier de frappes de touches. 9 Procédé selon la revendication 5, caractérisé en ce qu'il comprend en outre l'étape consistant à marquer pour une conversion manuelle des déclarations prédétermi- nées du premier programme de commande ( 420), de telle manière que des déclarations n'ayant pas d'équivalents exacts et des déclarations qui peuvent être manuellement optimisées pour le deuxième CLP ( 20) puissent être conver- ties manuellement.