FR 2641095 A1 19900629 FR 8817056 A 19881223 L'invention a pour objet un procédé et un dispositif pour tester le fonctionnement du programme d'un automate programmable. A l'heure actuelle dans l'industrie, de nombreuses machines sont pilotées par des automates programmables. Il est donc nécessaire, avant la mise en route d'une installation, de vérifier si le programme de l'automate fonctionne correctement afin d'éviter des incidents en cours d'exploitation. Une première solution consiste à brancher directement l'automate sur la machine et à tester en vraie grandeur les différentes conditions de fonctionnement. Cependant, cette méthode est lourde à mettre en oeuvre et peut même dans certains cas, si l'automate est mal programmé, provoquer de graves détériorations à la machine. Dans une deuxième solution, un opérateur agit manuellement sur un pupitre pour effectuer les commandes et générer des défauts de la machine. Cette méthode a pour principal défaut d'être très longue à mettre en oeuvre. L'invention a pour but de remédier à ces inconvénients en proposant un procédé et un dispositif pour tester automati- quement le fonctionnement du programme d'un automate programmable de manière simple et fiable sans que l'automa- te soit relié à la machine et qui, de plus, peuvent s'adapter facilement à tout type de machine. Selon la principale caractéristique du procédé objet de l'invention, celui-ci, servant à tester le fonctionnement du programme d'au moins un automate programmable destiné à commander une machine donnée, comprend les étapes suivantes consistant à: a) - déterminer tous les composants élémentaires en lesquels une machine quelconque peut être décomposée, chaque composant élémentaire ayant des entrées et des sorties dont la valeur est fonction de celle des entrées; b) - établir, pour chaque composant élémentaire ainsi déterminé, un programme qui traduit son fonctionnement normal et défectueux, ce programme, appelé "modèle de comportement", déterminant la valeur des sorties en fonction de celle des entrées; c) - créer une bibliothèque de composants à partir de ces modèles de comportement; d) - structurer la machine donnée en un certain nombre de sous-ensembles et décrire le fonctionnement de chaque sous- ensemble sous la forme d'un assemblage de composants élémentaires; e) - assembler les modèles de comportement des différents composants élémentaires déterminés à l'étape d) pour faire un programme traduisant le fonctionnement complet de la machine; f) - introduire, dans le modèle de comportement de chaque composant élémentaire de la machine donnée, les condi- tions de fonctionnement pour lesquelles on veut tester le programme de l'automate; g) - introduire dans le programme établi à l'étape e) les valeurs des entrées correspondant aux sorties de l'automate; h) - exécuter ce programme; i) - introduire les valeurs de sorties ainsi obtenues dans les entrées de l'automate; j) - vérifier automatiquement si les ordres donnés par celui-ci en réponse aux informations reçues à l'étape i) sont corrects; k) - répéter les étapes f) à j) autant de fois que nécessaire selon les différentes conditions de fonction- nement que l'on veut étudier; et 1) - répéter les étapes d) à k) autant de fois que nécessaire selon les différents ensembles machine- automate que l'on veut étudier. Pour chaque modèle de comportement, les paramètres représentés par les entrées peuvent être, notamment, 'les ordres reçus, les puissances reçues, les conditions générales et particulières de fonctionnement, les para- mètres de fonctionnement, les défauts et incidents possibles, tandis que les sorties peuvent être, notamment, les ordres transmis, les puissances transmises, des messages d'information ou de contrôle. Selon une autre caractéristique du procédé objet de l'invention, si les conditions de fonctionnement mention- nées & l'étape f) correspondent à un défaut pouvant entraîner l'arrêt d'au moins un sous-ensemble de la machine, l'étape j) consiste à vérifier si le mode d'arrêt est correct. Dans ce cas, le procédé comprend les étapes supplémentaires suivantes, effectuées après l'étape j): m) - appliquer le mode de reprise associé au défaut; et n) - vérifier que la reprise s'effectue correctement. L'invention a également pour objet un dispositif pour la mise en oeuvre de ce procédé Selon la principale caracté- ristique de ce dispositif, celui-ci comporte un système informatique comprenant: - un premier élément servant d'une part.à créer une bibliothèque de composants et d'autre part & décrire. la machine, celleci étant structurée en un certain nombre de sous-ensembles et chaque sousensemble étant décrit sous la forme d'un assemblage de composants élémentaires ayant des sorties dont la valeur est fonction de celle des entrées; - un deuxième élément servant à créer un programme décrivant le comportement de la machine en assemblant les programmes des composants élémentaires nécessaires; ces derniers étant pris dans la bibliothèque de composants; et - un troisième élément relié à l'automate et servant à: a) - exécuter cycliquement ce programme; b) - transmettre cycliquement la valeur des sorties des composants aux entrées de l'automate; et c) transmettre cycliquement au système informatique la valeur des sorties de l'automate afin de modifier en conséquence la valeur des entrées des composants. Si la machine est commandée par au moins un pupitre opérateur de commande, le système informatique comprend en outre un quatrième élément servant à décrire et simuler ce pupitre, celui-ci étant représenté par un ensemble de composants élémentaires de la même manière que la machine. Ce dispositif peut comporter un ou plusieurs ordinateurs dont chacun constitue un ou plusieurs desdits éléments. De préférence, le troisième élément est relié à l'automate par une liaison série. Si l'automate fonctionne avec des cartes entrées-sorties de dialogue avec la machine, le dispositif comporte en outre une carte de couplage reliée au troisième élément et montée dans l'automate à la place des cartes entrées-sorties de dialogue avec la machine, cette carte de couplage servant d'une part & simuler la présence physique des cartes entréessorties et d'autre part à assurer la transmission des informations entre l'automate et le troisième élément. Si l'automate est équipé d'un terminal de dialogue, le troisième élément peut avantageusement être relié à ce terminal afin d'enregistrer le dialogue entre celui-ci et l'automate. Enfin, si la machine comporte au moins un axe numérique, le dispositif peut comporter en outre une carte spécifique reliée d'une part au troisième élément et d'autre part à l'automate programmable et servant à simuler le comporte- ment de l'axe numérique. L'invention apparaîtra mieux à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, faite en référence aux dessins annexés, dans lesquels: - la Figure 1 est un schéma de principe montrant le dispositif de l'invention relié à plusieurs automates programmables que l'on veut tester; - la Figure 2 est une vue schématique montrant le troisième élément du dispositif objet de l'invention relié par une liaison série à une carte de couplage montée dans l'un des automates; - la Figure 3 est une vue semblable à la figure 2 montrant une carte de simulation d'un axe numérique montée entre le troisième élément et l'un des automates; - les Figures 4a et 4b sont des vues schématiques illustrant les deux positions possibles d'un distributeur 4/2 à rappel à commandes maintenues; et - la Figure 5 est un logigramme traduisant le fonctionne- ment du distributeur des figures 4a et 4b dans des conditions normales et en cas d'incident. Si l'on se reporte à la figure 1, on voit que le dispositif objet de l'invention se compose essentiellement d'un système informatique, portant la référence générale 1, appelé "simulateur et qui, dans l'exemple décrit ici, se compose de quatre ordinateurs: - le premier, 2a, sert d'une part à créer une bibliothè- que de composants et d'autre part à décrire la machine, c'est-à-dire à représenter chacun des composants élémentaires de cette dernière ainsi que leurs liaisons; - le deuxième, 2b, est utilisé lorsque la machine est commandée par un ou plusieurs pupitres et sert à décrire ce(s) pupitre(s) de la même manière que la machine; - le troisième, 2c, sert à créer le programme décrivant le comportement de la machine, c'est-à-dire, à partir de l'assemblage des programmes des composants élémentaires nécessaires pris dans la bibliothèque de composants, le programme permettant de déterminer la valeur des sorties des différents composants en fonction de celle des entrées; - le quatrième, 2d, sert à exécuter ce programme et à introduire la valeur des sorties des composants dans les entrées du ou des automates 3a, 3b, 3c, etc...; de plus, il est également relié aux sorties des automates pour transmettre la valeur de ces dernières au système informatique 1 et modifier en conséquence la valeur des entrées des composants. Dans cet exemple, il y a quatre ordinateurs distincts, mais on ne sortirait pas du cadre de l'invention en remplaçant plusieurs d'entre eux par un seul exerçant les mêmes fonctions. De même, on peut supprimer ou ne pas utiliser l'ordinateur 2b si la machine n'est pas commandée par un pupitre. Le nombre d'informations échangées entre l'ordinateur 2d et chacun des automates 3a, 3b, 3c, etc... étant très élevé, il est préférable d'utiliser des liaisons séries pour le relier à ces automates, ce qui permet de faire passer ces informations les unes à la suite des autres dans un seul câble. Ceci est illustré à la figure 2 o l'on voit que l'ordinateur 2d est relié à l'automate 3a par la liaison série 5. Toujours sur la figure 2, on voit que l'automate 3a est équipé d'une carte de couplage 6a à laquelle aboutit la liaison série 5. En effet, les automates fonctionnent avec des cartes entrées-sorties de dialogue avec la machine. Comme le nombre d'informations échangées peut être grand, il est souvent nécessaire d'utiliser de nombreuses cartes, mais la présence de toutes ces cartes alourdirait la mise en oeuvre du procédé objet de l'invention et on préfère les retirer. Cependant, certains automates ne fonctionnent que si toutes les cartes sont en place. C'est pourquoi on utilise la carte 6a qui joue donc un double rôle: d'une part, elle est montée dans l'automate à la place des cartes entrées-sorties de dialogue avec la machine afin de simuler la présence physique de ces dernières et permettre le fonctionnement de l'automate; d'autre part, elle assure la liaison avec l'ordinateur 2d et donc avec le système informatique 1 qui simule la machine. Si l'on se reporte à nouveau à la figure 1, on voit que chaque automate 3a, 3b, 3c... est relié à un terminal de contrôle 4a, 4b, 4c... Un tel terminal permet un dialogue avec l'opérateur et peut se présenter par exemple sous la forme d'un écran o s'affichent des messages. L'ordinateur 2d est également relié aux terminaux 4a, 4b, 4c... afin d'enregistrer le dialogue entre chaque automate et son terminal associé pour voir si les messages sont corrects. Il se peut que la machine comporte un ou plusieurs axes numériques, c'està-dire des éléments dont le mouvement ne se fait pas uniquement d'une fin de course à une autre, mais peut comporter des arrêts intermédiaires. Afin de ne pas alourdir le programme de simulation du comportement de la machine, on utilise une carte spécifique interposée entre l'automate 3a, par exemple, et l'ordinateur 2d. Ceci est illustré à la figure 3 o l'on voit que l'ordina- teur 2d est relié directement non pas à l'automate 3a, mais à une carte 7 qui simule le comportement de l'axe numéri- que. Cette dernière est reliée simultanément à une carte d'axe 8a montée dans l'automate 3a et à l'ordinateur 2d. Un axe numérique peut être par exemple l'ensemble constitué par un moteur et le variateur et le codeur de position qui lui sont associés. La carte d'axe 8a permet à l'automate 3a de donner des ordres à la carte 7, par exemple une consigne de vitesse. L'ordinateur 2d indique si le mouvement est possible: plus précisément, il indique si les systèmes de verrouillage sont en position de verrouillage ou de déverrouillage, s'il y a ou non un blocage accidentel, etc... ces renseignements étant prévus dans le programme de simulation du comportement de la machine. Quant à la carte 7, elle indique à l'ordinateur 2d l'activité de l'axe (arrêt ou mouvement) et, s'il y a mouvement, dans quel sens celui-ci s'effectue. Elle lui indique également la position de l'axe. Enfin, elle indique à l'automate les informations données par le codeur de position. Bien entendu, la carte 7 doit être paramétrée pour tenir compte des caractéristiques du moteur (rapport de réduction, etc...) et du nombre d'impulsions du codeur par tour de moteur s'il s'agit d'un codeur incrémental. On va maintenant montrer comment on peut traduire le fonctionnement d'un composant élémentaire d'une machine en prenant l'exemple d'un distributeur 4/2 à rappel à commandes maintenues. Toute machine peut être structurée en un certain nombre de sous-ensembles et le fonctionnement de chaque sous-ensemble peut être décrit sous la forme d'un assemblage de compo- sants élémentaires. Un tel composant peut être par exemple le distributeur illustré aux figures 4a et 4b. Celui-ci, portant la référence générale 9, est mobile entre une position non excitée illustrée à la figure 4a et une position excitée illustrée à& la figure 4b. Dans cette dernière position, le sens de circulation du fluide dans les sorties S1 et S2 est le contraire de ce qu'il est dans la position de la figure 4a. Un ressort 10 rappelle le distributeur dans la position de la figure 4a. Le fonctionnement de ce distributeur est traduit par le logigramme de la figure 5. En fonctionnement normal, les entrées (sur la partie gauche de la figure) sont E1 et la puissance P reçue pour effectuer le mouvement à l'encontre du ressort 10, les sorties étant SI1 et S2. El, P, S1 et S2 sont des variables logiques qui peuvent prendre la valeur 0 ou 1. On conviendra que, dans la position de la figure 4a, E1=0 (état non excité), S1=0 et S2=1 tandis que, dans la position de la figure 4b, E1=1 (état excité), S1=1 et S2=0. Les entrées 11, 12, 13 et 14 indiquées à la partie inférieure de la figure 5 correspondent respectivement aux divers incidents de fonctionnement possibles: chute de tension de commande de la machine, chute de la puissance (hydraulique, électrique, etc...) reçue par le distribu- teur, blocage à gauche ou à droite, c'est-à-dire dans la position de la figure 4a ou 4b respectivement. Les sorties 3 et 4 à la partie supérieure de la figure sont des messages de contrôle pour vérifier si les défauts "bloqué à gauche" ou "bloqué à droite" ont bien été pris en compte lorsqu'on les introduit dans le programme. La valeur de S1 est réintroduite au niveau des entrées 13 et 14 à titre de contrôle (référence 1 sur la figure 5). Enfin, à t est un retard qui correspond à l'inertie du dispositif. Les symboles utilisés sont connus des spécialistes et ne seront pas expliqués ici. En fonctionnement normal, toutes les entrées 11 à 14 correspondant aux incidents sont mises à 0. On voit, à la lecture de ce logigramme que, si E1=0, on aura S1=0 et S2=1. Mais si E1=1, il faut que P=1 pour avoir Si=1 et S2=0. On comprend donc qu'à partir d'un tel logigramme, on puisse établir un programme permettant de déterminer S1 et S2 dans toutes les conditions de fonctionnement possibles. On traduirait de la même manière le fonctionnement d'autres composants élémentaires d'une machine. Il se peut que certains défauts entraînent un arrêt de la machine. Celuici peut être de différents types, par exemple immédiat ou différé (si on peut attendre la fin d'un cycle). A chaque défaut est associé un type d'arrêt et un type de reprise, ce dernier traduisant la démarche à suivre pour faire redémarrer la machine. Cette procédure de reprise peut être plus ou moins complexe suivant qu'il est nécessaire ou non de couper l'alimentation de la machine en courant électrique, etc... Selon une caractéristique importante de l'invention, pour chaque défaut, le programme de simulation du comportement de la machine est prévu pour vérifier le mode d'arrêt et, si le comportement d'arrêt est correct, appliquer le mode de reprise correspondant et vérifier que la reprise s'effectue correctement. Ainsi, le procédé et le dispositif objets de l'invention présentent de nombreux avantages dont le principal est de pouvoir tester automatiquement le programme d'un automate programmable d'une manière simple et fiable puisque c'est un système informatique qui simule le fonctionnement de la machine. On ne risque pas de détériorer celle-ci en cas de défaut dans le programme de l'automate et le système est plus facile à mettre en oeuvre qu'avec un opérateur qui appuie sur des boutons pour effectuer les commandes sur les pupitres et générer des défauts de la machine. Le test peut être effectué avant l'installation de celle-ci et permettre de corriger & temps certains défauts dans le programme de l'automate. L'invention peut être utilisée non seulement par l'utilisateur d'une machine, mais aussi par le concepteur qui pourra, si nécessaire, remédier à certains défauts avant même de lancer les premières fabrications. De plus, le procédé objet de l'invention est très souple et s'adapte facilement à de nombreux types de machines. Ceci est rendu possible par le principe de décomposition de la machine en composants élémentaires car le nombre de composants possibles est limité. D'une machine à l'autre, on retrouve en effet les mêmes types d'éléments tels que: vérins, contacteurs, distributeurs, axes numériques, capteurs,... Enfin, ce principe rend le procédé objet de l'invention facile à utiliser pour les raisons suivantes: - l'utilisateur final sait identifier facilement, sur les divers plans et schémas, les composants technologiques; - il connaît leur comportement mécanique ou électrique. Il pourra donc aisément prévoir le comportement attendu du modèle de la machine sur génération d'un défaut et pourra même, le cas échéant, corriger le modèle de la' machine et surtout juger la réaction du programme de l'automate en réponse à ce défaut; - le faible nombre d'entrées et de sorties ainsi que de défauts associés à un composant technologique élémentaire rend la description de son comportement plus simple. Il va de soi que l'invention ne doit pas être considérée comme limitée aux modes de réalisation décrits et repré- sentés, mais qu'elle en couvre au contraire toutes les variantes. 2 6 4 1095 REVENDICATIONS 1. Procédé pour tester le fonctionnement du programme d'un automate programmable (3a) destiné & commander une machine donnée, caractérisé en ce qu'il comprend les étapes suivantes consistant a: a) - déterminer tous les composants élémentaires en lesquels une machine quelconque peut être décomposée, chaque composant élémentaire ayant des entrées. et des sorties dont la valeur est fonction de celle des entrées; b) - établir, pour chaque composant élémentaire ainsi déterminé, un programme qui traduit son fonctionnement normal et défectueux, ce programme, appelé "modèle de comportement", déterminant la valeur des sorties en fonction de celle des entrées; c) - créer une bibliothèque de composants & partir de ces modèles de comportement; d) - structurer la machine donnée en un certain nombre de sous-ensembles et décrire le fonctionnement de chaque sous-ensemble sous la forme d'un assemblage de composants élémentaires ayant des entrées et des sorties dont la valeur est fonction de celle des entrées; e) assembler les modèles de comportement des différents composants élémentaires déterminés & l'étape d) pour faire un programme traduisant le fonctionnement complet de la machine; f) - introduire, dans le modèle de comportement de chaque composant élémentaire de la machine donnée, les condi- tions de fonctionnement normales et anormales pour lesquelles on veut tester le programme de l'automate; g) - introduire dans le programme établi à l'étape e) les valeurs des entrées correspondant aux sorties de l'automate; h) - exécuter ce programme; i) - introduire les valeurs des sorties ainsi obtenues dans les entrées de l'automate; j) - vérifier automatiquement si les ordres donnés par celui-ci en réponse aux informations reçues à l'étape i) sont corrects; k) - répéter les étapes f) à j) autant de fois que nécessaire selon les différentes conditions de fonction- nement que l'on veut étudier; et l) - répéter les étapes d) à k) autant de fois que nécessaire selon les différents ensembles machine- automate que l'on veut étudier. 2. Procédé selon la revendication 1, caractérisé en ce que, pour chaque modèle de comportement, les paramètres représentés par les entrées appartiennent au groupe constitué par: les ordres reçus, les puissances reçues, les conditions générales et particulières de fonctionnement, les paramètres de fonctionnement, les défauts et incidents possibles. 3. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que, pour chaque modèle de comporte- ment, les paramètres représentés par les sorties appartien- nent au groupe constitué par: les ordres transmis, les puissances transmises, des messages d'information ou de contrôle. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que, les conditions de fonctionnement mentionnées à l'étape f) correspondant à un défaut pouvant entraîner l'arrêt d'au moins un sous-ensemble de la machine, l'étape j) consiste à vérifier si le mode d'arrêt est correct. 5. Procédé selon la revendication 4, caractérisé en ce qu'il comprend les étapes supplémentaires suivantes, effectuées après l'étape j): m) appliquer le mode de reprise associé au défaut, et n) - vérifier que la reprise s'effectue correctement. 6. Dispositif pour tester le programme d'au moins un automate programmable (3a) destiné à commander une machine donnée, caractérisé en ce qu'il comporte un système informatique (1) comprenant: - un premier élément (2a) servant à décrire la machine, celle-ci étant structurée en un certain nombre de sous- ensembles et chaque sous-ensemble étant décrit sous la forme d'un assemblage de composants élémentaires ayant des entrées et des sorties dont la valeur est fonction de celle des entrées; - un deuxième élément (2c) servant à créer un programme décrivant le comportement de la machine en assemblant les programmes des composants élémentaires nécessaires, ces derniers étant pris dans la bibliothèque de composants; et - un troisième élément (2d) relié à l'automate (3a) et servant à: a) - exécuter cycliquement ce programme; b) - transmettre cycliquement la valeur des sorties des composants aux entrées de l'automate (3a); et c) - transmettre cycliquement au système informatique (1) la valeur des sorties de l'automate (3a) afin de modifier en conséquence la valeur des entrées des composants. 7. Dispositif selon la revendication 6, caractérisé en ce que, la machine étant commandée par au moins un pupitre opérateur de commande, le système informatique comprend en outre un quatrième élément (2b) servant à décrire et simuler ce pupitre, celui-ci étant représenté par un ensemble de composants élémentaires de la même manière que la machine. 8. Dispositif selon l'une quelconque des revendications 6 et 7, caractérisé en ce qu'il comprend un ou plusieurs cOrdinateurs dont chacun constitue un ou plusieurs desdits éléments (2a à 2d). 9. Dispositif selon l'une quelconque des revendications 6 à 8, caractérisé en ce que le troisième élément (2d) est relié à l'automate (3a) par une liaison série (5). 10. Dispositif selon l'une quelconque des revendications 6 à 9, caractérisé en ce qu'il comporte en outre une carte de couplage (6a) reliée au troisième élément (2d) et montée dans l'automate (3a) à la place des cartes entrées-sorties de dialogue avec la machine, cette carte de couplage (6a) servant d'une part à simuler la présence physique des cartes entrées-sorties et d'autre part à assurer la transmission des informations entre l'automate (3a) et le troisième élément (2d). 26 4 1 0 95 11. Dispositif selon l'une quelconque des revendications 1 à 5, caractérisé en ce que, l'automate (3a) étant relié. à un terminal de contrôle (4a), le troisième élément (2d) est également relié à ce terminal (4a) afin d'enregistrer le dialogue avec l'automate. 12. Dispositif selon l'une quelconque des revendications 6 à 11, caractérisé en ce que, la machine comportant au moins un axe numérique, il comprend en outre une carte spécifique (7) reliée d'une part au troisième élément (2d) et d'autre part à l'automate programmable (3a) et servant à simuler le comportement de l'axe numérique.