Brevet FR2916549A1 — publié le 20081128

Méthode de recherche d'anomalies dans le programme constructeur d'un module automate La présente invention se rapporte à une méthode pour rechercher une anomalie dans le programme constructeur d'un module automate et à un système pour rechercher une anomalie dans le programme constructeur du module. Un automate programmable ou PLC ("Programmable Logical Controller") est un équipement d'automatisme capable de piloter, commander et/ou surveiller un ou plusieurs process à commander. De construction généralement modulaire, un automate programmable PLC est composé de différents modules qui communiquent entre eux par un bus de transmission, appelé dans ce domaine bus "fond de panier" (ou "backplane"). Les modules sont fixés mécaniquement dans un rack, lequel comprend un circuit imprimé qui supporte également le bus fond de panier ainsi que les éléments de connexion destinés à coopérer avec des connecteurs présents généralement sur la partie arrière des modules de manière à réaliser la liaison nécessaire entre les modules et le bus. Le nombre de modules dépend bien entendu de la taille et du type de process à automatiser. Typiquement, un automate programmable peut comporter : - un module d'alimentation fournissant les différentes tensions aux autres modules à travers le bus fond de panier. - un module unité centrale UC qui comporte un logiciel embarqué, appelé programme constructeur ("firmware"), intégrant un système d'exploitation OS temps réel, et un programme d'application, ou programme utilisateur, contenant les instructions à exécuter par le logiciel embarqué pour effectuer les opérations d'automatisme souhaitées. Le module UC comporte aussi généralement une connexion en face avant vers des outils de programmation de type ordinateur personnel PC. - des modules d'entrées/sorties E/S de divers types en fonction du process à commander, tels que E/S numériques ou TOR, analogiques, de comptage, etc. Ces modules E/S sont reliés à des capteurs et des actionneurs participant à la gestion automatisée du process. - un ou plusieurs modules de communication vers des réseaux de communication (Ethernet, CAN, ...) ou des interfaces homme-machine (écran, clavier,...). A titre d'exemple, un module d'entrées/sorties peut comporter entre 1 et 32 voies E/S, un automate PLC pouvant être capable suivant les modèles de gérer plusieurs centaines de voies E/S. En cas de besoin, plusieurs racks sont donc connectés entre eux dans un même PLC. Ainsi, en fonction de l'application et du process à automatiser, un automate PLC peut comporter un grand nombre de modules. Certains modules spécifiques d'entrées/sorties comportent un microprocesseur et intègrent également une mémoire non volatile stockant un programme constructeur et une mémoire volatile dans laquelle est chargé leur programme constructeur pendant l'exécution. Après leur sortie d'usine, ces modules dotés d'un microprocesseur peuvent présenter des anomalies entraînant un comportement anormal pouvant causer des défaillances importantes du process automatisé. Dans cette situation, le programme constructeur de ces modules doit être contrôlé avant d'être éventuellement réparé. Pour rechercher la présence d'une anomalie dans le programme constructeur du module, il est nécessaire d'exécuter le programme constructeur à vide, par une commande extérieure. Actuellement, cette recherche d'anomalie est réalisée en dessoudant le microprocesseur et en le remplaçant par un support sur lequel est monté un émulateur de microprocesseur. La recherche d'anomalie dans le programme constructeur du module exige donc de modifier la structure du module. Actuellement, rien ne permet donc de réaliser cette recherche d'anomalie de manière simple, rapide et efficace, sans affecter le module. Le but de l'invention est de proposer une méthode et un système pour détecter une anomalie dans le programme constructeur d'un module d'automate programmable qui soit simple, rapide et efficace et qui ne modifie en rien ni le matériel ni le contenu de la mémoire volatile du module à diagnostiquer. Ce but est atteint par un système pour rechercher une anomalie dans un programme constructeur stocké dans une mémoire non volatile d'un module d'un automate programmable, ledit système comportant une station informatique dotée d'outils logiciels de recherche d'anomalie, caractérisé en ce que : le système comporte un câble de liaison apte à relier le module à la station informatique, ledit câble comportant un organe d'identification, le module comporte un connecteur et des moyens logiciels d'identification du câble de liaison lorsque le câble de liaison est branché sur son connecteur, la mémoire non volatile du module stocke un composant logiciel apte à coopérer avec les outils logiciels de recherche d'anomalie de la station informatique pour rechercher une anomalie dans le programme constructeur du module. Selon une particularité dé l'invention, l'organe d'identification du câble de liaison est une boucle apte à relier deux broches du connecteur lorsque le câble de liaison est branché sur le connecteur. Selon une autre particularité, le composant logiciel du module comporte des moyens de dialogue pour dialoguer avec la station informatique sur la liaison créée grâce au câble de liaison. Selon une autre particularité, le câble de liaison comporte à une extrémité un connecteur cinq points complémentaire du connecteur du module et à une autre extrémité un connecteur neuf points complémentaire d'un port série situé sur la station informatique. Selon une autre particularité, le câble de liaison comporte une interface d'adaptation apte à convertir des signaux échangés entre la station informatique et le module. L'invention concerne une méthode pour rechercher une anomalie dans un programme constructeur stocké dans une mémoire non volatile d'un module d'un automate programmable et chargé dans une mémoire volatile du module pour son exécution, ladite méthode utilisant une station informatique dotée d'outils logiciels de recherche d'anomalie. La méthode consiste à : relier le module à la station informatique à laide d'un câble de liaison doté d'un organe d'identification, détecter la présence du câble de liaison à l'aide de moyens logiciels d'identification du câble de liaison, lesdits moyens étant activés lorsque le câble de liaison est branché sur un connecteur spécifique du module, sous contrôle d'un composant logiciel exécuté dans la mémoire volatile du module coopérant avec les outils logiciels de recherche d'anomalie de la station informatique, exécuter le programme constructeur dans la mémoire volatile du module pour rechercher une anomalie dans le programme constructeur du module. D'autres caractéristiques et avantages vont apparaître dans la description détaillée qui suit en se référant à un mode de réalisation donné à titre d'exemple et représenté par les dessins annexés sur lesquels : la figure 1 montre le système de l'invention mis en place pour la recherche d'anomalie dans le programme constructeur d'un module d'automate programmable, la figure 2 représente schématiquement le câble utilisé pour mettre en oeuvre l'invention. 15 De manière connue, un automate programmable comporte une pluralité de modules connectés entre eux par l'intermédiaire d'un bus fond de panier. L'automate programmable comporte notamment un module d'alimentation, un module unité centrale et des modules d'entrées/sorties. Certains de ces modules d'entrées/sorties 20 peuvent être des modules TOR (Tout Ou Rien) ou des modules spécifiques dotés d'un microprocesseur. Un module 1 spécifique à microprocesseur est schématisé en figure 1. Il est équipé d'une carte électronique sur laquelle est monté le microprocesseur 10. Il comprend en outre une mémoire volatile 11, par exemple de type RAM qui peut être intégrée au microprocesseur 10 et une mémoire non volatile 25 12 par exemple de type EEPROM ou Flash. La mémoire non volatile 12 stocke un programme constructeur 120 ("firmware") apte à être exécuté dans la mémoire volatile 11, par exemple pour réaliser des fonctions simples d'automatisme ou des opérations de conversion analogique-numérique. 30 Selon l'invention, un tel module 1 comporte sur sa carte un connecteur 13 (figure 2), doté par exemple de cinq broches 130 ("pins" en anglais). Ce connecteur 13 est relié directement au microprocesseur par des pistes électriques réalisées sur la carte. 10 Lorsque le module présente un comportement anormal, il est nécessaire de diagnostiquer son état et de rechercher les éventuelles anomalies présentes dans son programme constructeur 120. Pour effectuer un diagnostic de l'état du module 1 et détecter une éventuelle anomalie dans son programme constructeur 120, le système de l'invention comporte une station informatique 2 reliée au module 1 par l'intermédiaire d'un câble 3 de liaison série. La station informatique 2 est par exemple un ordinateur de type PC comportant notamment un microprocesseur 20, une mémoire volatile 21 de type RAM et une mémoire non volatile 22. En référence à la figure 2, le câble 3 de liaison série présente à une extrémité un connecteur 30 à cinq points complémentaire du connecteur 13 présent sur la carte du module 1 pour être branché directement sur celui-ci et à une autre extrémité un connecteur 31 neuf points pour se connecter sur un port série (appelé également port COM) classique de la station informatique 2. Selon l'invention, le connecteur 30 du câble 3 de liaison série est doté d'un organe matériel d'identification 300 constitué d'une boucle ou "strap" reliant entre elles deux broches du connecteur 13 du module 1 lorsque le câble 3 de liaison série est branché sur la carte du module. Un signal envoyé sur l'une de ces deux broches est automatiquement renvoyé sur l'autre broche par l'intermédiaire de la boucle de l'organe d'identification sans passer par la station informatique 2. Ainsi, lorsque le câble 3 de liaison série est branché, le microprocesseur 10 du module 1 détecte la présence du câble 3 sur son connecteur 13 et peut lancer un mode recherche d'anomalies dans son programme constructeur 120. La détection de la boucle ou "strap" du câble est par exemple réalisée lors du démarrage de la carte du module 1 à examiner. En référence à la figure 2, par l'intermédiaire de trois fils 301, 302, 303, le câble 3 de liaison connecte uniquement trois broches du connecteur 13 de la carte au port série de la station 2 informatique. L'un de ces fils (301) correspond à la masse et les deux autres fils (302, 303) permettent de véhiculer les signaux de commande dans un sens ou dans l'autre entre le module 1 et la station informatique 2. Le câble 3 comporte en outre une interface d'adaptation électrique 32 permettant de réaliser la conversion des signaux de type CMOS provenant du module 1 en signaux de ligne RS232 à destination de la station 2 informatique et inversement. Cette interface 32 se présente sous la forme d'une carte électronique située préférentiellement à proximité du connecteur 30 du câble et peut éventuellement être intégrée au connecteur 30 du câble 3 de liaison. Le mode recherche d'anomalies est lancé grâce à un composant logiciel 121 stocké avec le programme constructeur 120 dans la mémoire non volatile 12 du module 1. Le composant logiciel 121 (appelé "Rom monitor") permet au module 1 de dialoguer sur la liaison série avec la station informatique 2 pour réaliser les opérations de recherche d'anomalie et sert de passerelle à la station informatique 2 pour commander l'exécution du programme constructeur dans le module 1. Il offre ainsi à des outils logiciels de recherche d'anomalie 220 chargés dans la mémoire volatile 21 de la station informatique 2 la capacité de lire ou d'écrire dans la mémoire volatile 11 du module et dans les registres mémorisés dans la mémoire non volatile 12 du module 1. Les outils logiciels de recherche d'anomalie 220 permettent alors à la station 2, par l'intermédiaire du composant logiciel 121 présent dans le module 1, de commander le chargement du programme constructeur 120 dans la mémoire volatile 11 du module 1. La version du programme constructeur à charger dans le module est alors celle à examiner. Le programme constructeur peut donc être directement celui stocké dans la mémoire non volatile 12 du module 1 ou peut éventuellement être téléchargé depuis la station 2. Une fois le programme constructeur 120 chargé, sous le contrôle du composant logiciel 121, les outils logiciels de détection d'anomalie 220 permettent de commander l'exécution du programme constructeur 120 dans la mémoire volatile 11 du module et de commander le déroulement de ce programme, par exemple en effectuant des points d'arrêt, ou en effectuant un déroulement pas-à-pas du programme. Lorsque l'exécution du programme constructeur 120 est stoppée, le composant logiciel 121 présent dans le module 1 permet à la station informatique 2 de lire et d'afficher n'importe quelle valeur contenue dans la cible. Il est bien entendu que l'on peut, sans sortir du cadre de l'invention, imaginer d'autres variantes et perfectionnements de détail et de même envisager l'emploi de moyens équivalents. REVENDICATIONS 1. Système pour rechercher une anomalie dans un programme constructeur (120) stocké dans une mémoire non volatile (12) d'un module (1) d'un automate programmable, ledit système comportant une station informatique (2) dotée d'outils logiciels de recherche d'anomalie (220), caractérisé en ce que : le système comporte un câble de liaison (3) apte à relier le module (1) à la station informatique (2), ledit câble (3) comportant un organe d'identification (300), le module (1) comporte un connecteur (13) et des moyens logiciels d'identification du câble de liaison (3) lorsque le câble de liaison (3) est branché sur son connecteur (13), la mémoire non volatile (12) du module (1) stocke un composant logiciel (121) apte à coopérer avec les outils logiciels de recherche d'anomalie (220) de la station informatique (2) pour rechercher une anomalie dans le programme constructeur (120) du module (1). 2. Système selon la revendication 1, caractérisé en ce que l'organe d'identification (300) du câble de liaison (3) est une boucle apte à relier deux broches (130) du connecteur (13) lorsque le câble de liaison (3) est branché sur le connecteur (13). 3. Système selon la revendication 1 ou 2, caractérisé en ce que le composant logiciel (121) du module (1) comporte des moyens de dialogue pour dialoguer avec la station informatique (2) sur la liaison créée grâce au câble de liaison (3). 4. Système selon l'une des revendications 1 à 3, caractérisé en ce que le câble de liaison (3) comporte à une extrémité un connecteur (30) cinq points complémentaire du connecteur (13) du module (1) et à une autre extrémité un connecteur (31) neuf points complémentaire d'un port série situé sur la station informatique (2). 5. Système selon la revendication 4, caractérisé en ce que le câble de liaison (3) comporte une interface d'adaptation (32) apte à convertir des signaux échangés entre la station informatique (2) et le module (1). 6. Méthode pour rechercher une anomalie dans un programme constructeur (120) stocké dans une mémoire non volatile (12) d'un module (1) d'un automate 5 10 15programmable et chargé dans une mémoire volatile (11) du module lors de son exécution, ladite méthode utilisant une station informatique (2) dotée d'outils logiciels de recherche d'anomalie (220), la méthode étant caractérisée en ce qu'elle consiste à : relier le module (1) à la station informatique (2) à laide d'un câble de liaison (3) doté d'un organe d'identification (300), détecter la présence du câble de liaison (3) à l'aide de moyens logiciels d'identification du câble de liaison (3), lesdits moyens étant activés lorsque le câble de liaison (3) est branché sur un connecteur (13) spécifique du module (1), sous contrôle d'un composant logiciel (121) exécuté dans la mémoire volatile du module coopérant avec les outils logiciels de recherche d'anomalie (220) de la station informatique (2), exécuter le programme constructeur (120) dans la mémoire volatile (11) du module pour rechercher une anomalie dans le programme constructeur (120) du module (1).