FR 2960075 A1 20111118 FR 1053771 A 20100514 1 PROCEDE DE COMMANDE D'UNE CELLULE DE TRAVAIL AUTOMATISEE L'invention concerne un procédé de commande d'une cellule de travail comprenant un robot, une centrale de commande, un dispositif de contrôle du robot et un bus de communication entre la centrale de commande et le dispositif de contrôle du robot. Dans le domaine du pilotage de bras robotisés, il est connu qu'une centrale de commande communique, par l'intermédiaire d'un bus, avec des contrôleurs d'axes adaptés pour piloter des moteurs permettant de mouvoir les différentes parties d'un robot. Une telle centrale de commande interprète les consignes de mouvement données par un utilisateur ou un programme créé par l'utilisateur, de façon à définir des consignes de mouvement de chacun des axes de mouvement du robot. Les mouvements des parties du robot par rapport aux différents axes sont calculés au niveau de la centrale de commande en appliquant un modèle géométrique inverse qui dépend du type de bras de robot utilisé. Pour déplacer effectivement les différentes parties du robot, chacun des moteurs se voit ordonner des déplacements correspondant aux consignes de mouvement d'axes. Dans la mesure où chaque robot comporte des caractéristiques cinématiques spécifiques, il est nécessaire d'incorporer à la centrale de commande des caractéristiques inhérentes au type de robot utilisé. Il en résulte des complications relativement élevées des programmes incorporés à la centrale de commande. La centrale de commande communiquant avec chacun des contrôleurs d'axes, alors que les ordres de mouvement concernent chacune des parties du robot, cette communication induit la nécessité de transmettre les ordres de la centrale de commande à chacun des contrôleurs d'axes, ce qui induit des temps de communication relativement longs. C'est à ces inconvénients qu'entend remédier l'invention en proposant un nouveau procédé de commande d'une cellule de travail automatisée, permettant de simplifier la programmation de la centrale de commande, d'améliorer la vitesse de communication avec les différents contrôleurs d'axes ainsi que d'améliorer la précision de la commande du robot. A cet effet, l'invention concerne un procédé de commande d'une cellule de travail automatisée, incluant au moins un bras de robot avec au moins trois degrés de liberté pilotés suivant plusieurs axes de commande, une centrale de commande, un dispositif de contrôle du bras de robot, incluant plusieurs contrôleurs de moteurs pilotant chacun le fonctionnement d'un moteur adapté pour manoeuvrer au moins une partie du bras du robot, et un bus de communication entre la centrale de commande et le dispositif de contrôle du bras de robot. Ce procédé est caractérisé en ce qu'il comprend les étapes suivantes : a) transmettre des consignes, émises par la centrale de commandepour le pilotage des axes de commande, à une unique unité de calcul appartenant au dispositif de contrôle du bras de robot ; b) déterminer, au sein de cette unité de calcul et à partir de plusieurs des consignes reçues de la centrale de commande, des ordres pour le moteur piloté par chaque contrôleur de moteur ; c) transmettre à chaque contrôleur de moteur un ordre, déterminé à l'étape b), pour le moteur piloté par ce contrôleur de moteur ; Le pilotage d'un bras de robot s'appuie sur l'identification d'axes de commande de mouvement, c'est-à-dire des grandeurs géométriques telles que des longueurs ou des angles qui permettent d'exprimer le mouvement de l'extrémité du bras de robot. Grâce à l'invention, les calculs des ordres de mouvement pour chacun des moteurs du robot sont effectués de façon interdépendante dans l'unité qui appartient au dispositif de contrôle du robot, en prenant en compte l'ensemble des consignes émises par la centrale de commande. Cela permet d'optimiser le fonctionnement du robot. La présence de l'unité de calcul dans le dispositif de contrôle du robot permet de simplifier la programmation de la centrale de commande, dans la mesure où celle-ci n'a pas à incorporer des données spécifiques à chaque robot et ne doit pas gérer la communication avec chacun des contrôleurs d'axe. Comme la détermination des consignes incluant les calculs des ordres de mouvement pour chacun des moteurs du robot est effectuée, dans l'unité de calcul qui appartient au dispositif de contrôle du robot, en prenant en compte l'ensemble des consignes émises par la centrale de commande, on peut optimiser le fonctionnement du robot et de la cellule de travail robotisée. De plus, l'unité de calcul met en oeuvre les traitements imposés par la spécificité d'un bras de robot. Elle épargne ainsi au programmeur de la cellule de la centrale de commande la nécessité d'incorporer des procédures d'arrêt ou de démarrage sophistiquées qui relèvent du savoir faire des roboticiens.Selon des caractéristiques avantageuses mais non obligatoires de l'invention, un tel procédé de commande peut incorporer une ou plusieurs des caractéristiques suivantes, prises avec toute combinaison techniquement admissible : - Le procédé comprend des étapes supplémentaires consistant à : d) transmettre, à partir de chaque contrôleur de moteur et à destination de l'unité de calcul, la position du moteur qu'il pilote ; e) calculer, au sein de l'unité de calcul et sur la base de l'ensemble des positions des moteurs, les positions de chacun des axes de commande du bras de robot ; f) transmettre à la centrale de commande les positions calculées à l'étape e). - L'unité de calcul tient compte dans le calcul de l'étape e) des dates de mesure des positions des moteurs et de la date de la transmission à la centrale de commande des positions de chacun des axes de commande du bras de robot pour corriger les positions des axes de commande en fonction du mouvement présumé du bras de robot. - A l'étape b), des ordres de mouvements comprenant les positions à atteindre pour chaque moteur pour respecter les consignes émises par la centrale de commande sont calculés. - A l'étape b), le calcul des ordres de mouvements pour chaque moteur s'accompagne d'une prévision du couple à fournir pour chaque moteur, basée sur les consignes émises par la centrale de commande. - Le procédé comprend une étape consistant à : g) transmettre à la centrale de commande un signal représentatif de l'état de mise sous tension du bras de robot, dans lequel le bras du robot est respectivement déclaré comme prêt à fonctionner ou mis hors tension seulement si tous les moteurs sont mis sous tension ou mis hors tension et freinés. - Le procédé comporte une étape consistant à : h) transmettre à partir de l'unité de calcul et à destination de la centrale de commande un signal représentatif de l'état de fonctionnement de toutes les parties du bras de robot, dans lequel toutes les parties du bras de robot sont déclarées comme étant en défaut si au moins une de ces parties est détectée comme ne fonctionnant pas. - Le bus supporte un mode de communication synchrone. - Le bus fonctionne sur un modèle d'interface de type SERCOS. - La centrale de commande communique avec l'unité de calcul en utilisant les commandes du profil de matériel « profile drive ». L'invention sera mieux comprise et d'autres avantages de celle-ci apparaîtront plus clairement à la lumière de la description qui va suivre d'un procédé de commande d'une cellule de travail automatisée conforme à son principe, donnée uniquement à titre d'exemple et faite en référence aux dessins annexés dans lesquels : - la figure 1 est un schéma structurel d'une cellule de travail automatisée mettant en oeuvre un procédé de commande conforme à l'invention ; la figure 2 est un schéma fonctionnel de principe qui fait apparaître les fonctions principales et les flux de communication en relation avec le procédé de commande conforme à l'invention. Comme représenté à la figure 1, une cellule de travail automatisée 2 comprend un bras de robot 4, un dispositif 6 de contrôle du bras de robot 4, une centrale de commande 8 ainsi que deux actionneurs électriques partiellement représentés. Le bras de robot 4 est ici constitué par un bras robotisé à six axes référencés Al à A6. Le terme « axe » est ici utilisé au sens robotique, c'est-à-dire concerne un degré de liberté. Dans le cas d'espèce, les degrés de liberté ou axes Al à A6 sont des rotations. Le dispositif 6 de contrôle du robot est disposé à proximité du bras de robot 4 et comprend six contrôleurs de moteurs 61 à 66. Chacun de ces contrôleurs de moteurs 61 à 66 est adapté pour piloter le fonctionnement d'un moteur M1 à M6 apte à manoeuvrer une partie du bras de robot 4. L'actionnement du moteur M1 permet la rotation d'ensemble de la partie du bras de robot 4 située entre l'axe Al et l'extrémité mobile du bras de robot (4) sans qu'aucun autre axe ne tourne sur lui-même. De même, l'actionnement des moteurs M2, M3, M4 et M6 permettent respectivement la rotation isolée des axes A2, A3, A4 et A6. En revanche, l'actionnement du moteur M5 a pour conséquence la rotation des axes A5 et A6. Il existe un couplage entre les axes A5 et A6 et une rotation isolée de l'axe A5 requiert l'actionnement des moteurs M5 et M6. Chacun des moteurs M1 à M6 est équipé d'un codeur 12 placé sur l'arbre du moteur, permettant de mesurer la position angulaire de l'arbre du moteur et de délivrer un signal électrique S12i, pour i entier entre 1 et 6, contenant l'information de cette position. Chacun des deux actionneurs électriques est manoeuvré par un moteur M21 et M22, chacun de ces moteurs étant respectivement piloté par un contrôleur d'axe 121 et 122 et associé à un codeur 12 qui délivre un signal de position S1221 ou S1222. Comme représenté schématiquement à la figure 2, la centrale de commande 8 commande le fonctionnement de la cellule automatisée 2 à partir de programmes 30 créés par des utilisateurs pour la réalisation d'actions précises, comme par exemple l'assemblage d'un objet nécessitant des mouvements du bras de robot 4 et d'éventuelles actions d'un préhenseur ou d'un convoyeur qui comprend les actionneurs électriques manoeuvrés par les moteurs M21 et M22. Par exemple, de tels programmes peuvent contenir des suites de coordonnées cartésiennes à atteindre par l'extrémité du bras de robot 4. En variante, les actions peuvent être décidées en temps réel par l'utilisateur à partir d'un panneau de contrôle 32 fixe ou portatif accessible à l'utilisateur ou au programmeur de la cellule de travail automatisée 2. La centrale de commande 8 communique avec le dispositif de contrôle 6 par l'intermédiaire d'un bus de terrain 14, fonctionnant de préférence sur le modèle d'interface temps réel série SERCOS 3. La centrale de commande 8 est « maître » alors que le dispositif de contrôle 6 est « esclave ». Le dispositif de contrôle 6 comporte une carte de communication 60 dédiée à la communication avec la centrale de commande 8 par l'intermédiaire du bus de terrain 14. Le dispositif de contrôle 6 comporte également une unité de calcul 10, dont la fonction est d'assurer l'élaboration et la transmission de consignes telles que des ordres de mouvements ou de mise sous tension vers les contrôleurs de moteurs 61 à 66. L'unité de calcul 10 comprend notamment à cet effet des microprocesseurs et des mémoires. L'unité de calcul 10 est adaptée pour communiquer avec chacun des contrôleurs de moteurs 61 à 66. De cette façon, chaque transmission de données entre les contrôleurs de moteurs 61 à 66 et la centrale de commande 8 est gérée par l'unité de calcul 10, aussi bien des contrôleurs de moteurs vers la centrale que de la centrale vers les contrôleurs de moteurs. Les axes de commande du bras de robot 4 sont choisis comme étant les axes Al à A6 qui correspondent aux degrés de liberté du bras de robot 4. Lors de la phase d'initialisation propre au modèle d'interfaçage SERCOS 3, la communication est définie de sorte que chaque axe Al à A6 du bras de robot 4 est associé à un contrôleur d'axe fictif. Ces contrôleurs d'axes fictifs sont censés recevoir des consignes de la centrale de commande 8, de la même façon que des contrôleurs d'axes génériques et piloter au moins un moteur sur la base de ces consignes. Ils sont déclarés comme conformes au profil de matériel « Profil drive » qui définit un ensemble de commandes pour la configuration, le pilotage, l'interrogation des états et des positions, le diagnostic et la supervision. Les consignes élaborées par la centrale de commande 8 sur la base des commandes associées au profil de matériel « Profil drive » et exploitables par les contrôleurs d'axe fictifs sont réceptionnées par l'unité de calcul 10. Chaque contrôleur d'axe fictif se voit attribuer une adresse au même titre que les deux contrôleurs d'axe 121 et 122 qui commandent les actionneurs extérieurs au bras de robot 4 et présents dans la cellule de travail automatisée 2. Le procédé de commande selon l'invention s'applique à la phase de mise sous tension de tous les moteurs du bras de robot 4 préalable à toute opération du bras de robot de la cellule de travail automatisée 2. Cette mise sous tension est initiée par la centrale de commande 8 qui émet sur le bus 14 un ou plusieurs télégrammes de données maître comportant des consignes Co;, avec i entre 1 et 6, de mise sous tension de chacun des axes Al à A6. La carte de communication 60 du dispositif de contrôle 6 capte ces télégrammes. Elle adresse alors des demandes d'interruption à l'unité de calcul 10 qui récupère ces télégrammes, en extrait les consignes Co; pour chacun des axes Al à A6 du bras de robot 4 et procède à leur traitement. Le protocole d'interfaçage SERCOS 3 prévoit que chacun des dispositifs connectés sur le bus 14 est instruit de la localisation des données qui le concernent dans un télégramme de données maître. L'unité de calcul 10 enregistre les consignes de mise sous tension et émet un télégramme de réponse à destination de la centrale de commande 8 dans lequel les axes concernés par la consigne sont déclarés comme étant mis sous tension. Les moteurs ne sont réellement mis sous tension et les freins desserrés qu'après réception de la dernière consigne de mise sous tension émise par la centrale de commande 8. Des ordres de mise sous tension 02;, avec i entre 1 et 6, pour chaque moteur M1 à M6 sont envoyés par l'unité de calcul 10 à chaque contrôleur de moteur 61 à 66. Lorsque tous les moteurs sont mis sous tension et lorsque l'unité de calcul 10 a reçu des contrôleurs de moteurs 61 à 66 l'information que chacun des moteurs M1 à M6 est sous tension, un télégramme To, indiquant à la centrale de commande 8 que le dernier axe est prêt à fonctionner, est émis par l'unité de calcul 10, à travers la carte 60. Pour le programmeur de la centrale de commande 8, les ordres de mise sous tension des moteurs M1 à M6 des axes Al à A6 du bras de robot 4 sont semblables à ceux de mise sous tension des autres moteurs M21 et M22 mis en oeuvre dans la cellule automatisée 2 puisque les axes du bras de robot 4 et les deux autres axes sont connus de la centrale de commande 8 comme conformes au profil de matériel « Profile drive ». Comme l'unité de calcul 10 considère l'ensemble des consignes destinées à chacun des axes Al à A6 du bras de robot 4 pour gérer la mise sous tension des différents moteurs, la programmation de la centrale de commande 8 est simplifiée. Lorsque la cellule automatisée 2 réalise le processus qu'elle automatise, la centrale de commande 8 exécute un programme de fonctionnement 30 qui contient des ordres de mouvement que le robot doit exécuter. A chaque cycle de communication, les consignes de mouvement C,;, avec i entre 1 et 6 pour chaque axe Al à A6 associé à un contrôleur d'axe fictif du bras de robot 4 sont calculées par un générateur de trajectoire 34 qui met en oeuvre un modèle géométrique inverse 36 lorsque les ordres de mouvement du bras de robot 4 expriment les coordonnées cartésiennes d'un déplacement de son extrémité. Conformément au protocole d'interfaçage SERCOS 3, pour chaque cycle de communication défini, l'intégralité des consignes C,; de mouvements d'axes est envoyée sur le bus sous la forme d'un télégramme de données maître T,(C,;). La carte de communication 6 reçoit ce télégramme. Elle adresse alors une demande d'interruption à l'unité de calcul 10 qui récupère le télégramme, en extrait les consignes C,; de mouvements d'axes et procède à leur traitement. Lors de ce traitement, l'unité de calcul 10 calcule des ordres de mouvements Oli, avec i entre 1 et 6, pour chacun des moteurs M1 à M6 pilotés par les contrôleurs de moteurs 61 à 66. Les ordres de mouvements O,; pour chacun des moteurs sont calculés à partir de l'ensemble des consignes C,; reçues en provenance de la centrale de commande 8 en appliquant le modèle cinématique des transmissions 38. Ces ordres comprennent les positions à atteindre pour les moteurs. Le calcul prend alors en compte le couplage existant entre l'axe A5 et l'axe A6, le mouvement de l'axe A5 nécessitant la mise en oeuvre des moteurs M5 et M6. Le calcul des ordres de mouvement O,; pour chaque moteur tient également compte des rapports de réduction entre les moteurs et les axes de rotation de robot. Les ordres de mouvements O,; pour chaque moteur M1 à M6 sont transmis au contrôleur de moteurs 61 à 66 de chacun des moteurs qui, se chargent de déterminer et de réguler le courant d'alimentation des phases des moteurs. La position angulaire des arbres de chaque moteur est détectée grâce au codeur 12 placé sur l'arbre de chaque moteur. Cette information transmise à chaque contrôleur de moteur sous la forme de signaux S121 à S126 permet l'asservissement 48 du courant d'alimentation des phases des moteurs. L'unité de calcul 10 dispose également au travers de ses connections avec les contrôleurs de moteurs 61 à 66 de la position angulaire des arbres de chaque moteur du bras de robot 4 et calcule les positions angulaires P;, avec i entier entre 1 et 6, des parties mobiles autour des axes Al à A6 du bras de robot 4 en appliquant un modèle cinématique inverse des transmissions 40. Du fait du couplage des axes A5 et A6, les positions angulaires des arbres des moteurs M5 et M6 interviennent dans la détermination de la position angulaire P6 de l'axe A6. L'unité de calcul 10 peut également, à partir des mesures, calculer les vitesses de rotation des parties mobiles autour des axes du robot, les couples fournis lors de ces mouvements, ou toute autre donnée utile. Dès lors et suivant le protocole de communication SERCOS 3, à chaque cycle de communication synchrone, l'unité de calcul 10 du robot élabore un télégramme de données T', qui contient les positions angulaires P; des axes du bras de robot 4 et le transmet à la centrale de commande 8 au travers de la carte de communication 60. Ces informations sont alors exploitables par le programme 30 qui régit le fonctionnement de la cellule automatisée 2. La centrale de commande 8 peut appliquer un modèle géométrique direct 42 pour obtenir par exemple la position cartésienne Pc de l'extrémité du bras de robot 4 qui pourra ensuite être affichée sur le panneau de contrôle 32. Le comportement du bras de robot 4 est sensiblement amélioré si l'asservissement de chaque moteur tient compte d'une prédiction du couple F;, avec i entre 1 et 6, appliqué aux articulations du fait de la gravité ou des efforts d'inertie. Cette prédiction de couple F; est établie pour chaque moteur du bras de robot 4 au niveau de l'unité de calcul 10 qui met en oeuvre un modèle dynamique 44. Le modèle dynamique s'appuie sur la connaissance des consignes de mouvement C,; de chaque axe qui permettent d'évaluer les accélérations requises au niveau de chaque partie du bras de robot 4. Compte tenu de la structure du bras de robot 4, la prédiction du couple F; sur l'arbre de chaque moteur du bras de robot 4 doit prendre en compte les consignes de mouvement C,; de tous les axes Al à A6. Une fois la prédiction de couple F; établie, elle est traduite en consigne de courant en appliquant les données ou « constantes » 46 des moteurs et transmise aux contrôleurs de moteurs 61 à 66 pour être incorporée en entrée des boucles de contrôle 50 des courants d'alimentation des phases des moteurs. Suivant une variante, le calcul de la prévision du couple F; à fournir au niveau de chaque articulation peut utiliser également les positions angulaires P; des axes du bras de robot 4. Le procédé selon l'invention prend également en compte les éventuels défauts de fonctionnement de chacune des parties du robot 4. L'unité de calcul 10 du dispositif de contrôle 6 du bras de robot 4 supervise le fonctionnement de l'ensemble des contrôleurs de moteurs 61 à 66. Il met en oeuvre des logiciels qui permettent de détecter les défauts de fonctionnement au niveau des contrôleurs de moteurs 61 à 66, des moteurs M1 à M6 ou des codeurs 12. Dans le cas où une panne d'un moteur se produit, l'unité de calcul 10 procède à l'arrêt de tous les autres moteurs du bras de robot 4 et commande l'émission, à destination de la centrale de commande 8, d'un télégramme de données T2 dans lequel non seulement l'axe dont la rotation est normalement permise par le moteur en question est déclaré comme étant en défaut de fonctionnement, mais également tous les axes du bras de robot 4. En d'autres termes, un défaut de fonctionnement sur l'un des axes du bras de robot 4 entraîne la déclaration de l'impossibilité de fonctionner de l'ensemble du bras de robot. Cette information est envoyée à la centrale de commande 8. Dans la mesure où la centrale de commande 8 n'a pas à gérer la mise en défaut de tous les axes du robot, sa programmation est simplifiée. Cela permet d'éviter la communication entre chaque contrôleur de moteurs 61 à 66 et la centrale de commande 8, ce qui accélère le traitement des défauts et améliore la sécurisation du bras de robot 4. Comme il vient d'être décrit, l'unité de calcul 10 assure la cohérence du comportement du bras de robot 4 en cas de défaut sur l'un des axes Al à A6. Il en est de même lors de la mise hors tension d'un des axes du bras de robot 4. Chacun des moteurs mi à M6 doit alors nécessairement être mis hors tension. De plus, pour des raisons de sécurité, la mise hors tension d'un moteur doit être précédée du serrage de freins permettant d'arrêter la rotation des moteurs. La consigne de mise hors tension du bras de robot 4 en provenance de la centrale de commande 8 est appliquée par l'unité de calcul 10 à chacun des contrôleurs de moteurs. Dès qu'une consigne, de mise hors tension d'un des axes Ai, avec i entier entre 1 et 6 du bras de robot 4, est détectée par l'unité de calcul 10, cette consigne est généralisée à tous les moteurs M1 à M6 du bras de robot 4 L'unité de calcul 10 envoie alors à chaque contrôleur de moteur 61 à 66 un ordre O';, avec i entre 1 et 6, de mise hors tension des moteurs M1 à M6. Lors de la coupure effective du courant, l'unité de calcul 10 s'assure que les arbres de chacun des moteurs du bras de robot 4 sont bien freinés afin d'éviter tout accident. Lorsque toutes les vérifications sont effectuées, l'unité de calcul 10, émet, un télégramme T3 spécifiant à la centrale de commande 8 que tous les axes Ai, avec i entier entre 1 et 6, du bras de robot 4 ont été mis hors tension. Le procédé de l'invention permet l'amélioration de la synchronisation des mouvements gérés par la centrale de commande 8. Il s'appuie sur un modèle de communication client-serveur dans lequel la centrale de commande 8 est le serveur. Le bus 14 permet un mode de communication synchrone. La communication entre la centrale de commande 8 et le dispositif de contrôle 6 du bras de robot 4 par l'intermédiaire du bus 14 se fait à une fréquence, dite fréquence de communication, dont la valeur est adaptée au nombre de dispositifs, tels que les contrôleurs de moteurs, à commander. L'unité de calcul 10 fonctionne à une fréquence, dite fréquence de contrôle, dont la valeur est plus élevée que celle de la fréquence de communication. L'asservissement effectué au sein d'un contrôleur de moteurs 61 à 66 se fait à une fréquence, dite fréquence d'asservissement, dont la valeur est plus élevée que celle de la fréquence de contrôle. Des calculs d'interpolations sont donc nécessaires entre chaque transmission d'ordre de mouvement 01; pour les moteurs de l'unité de calcul 10 au contrôleur de moteur. Ces calculs sont effectués, au sein de chaque contrôleur de moteurs 61 à 66. Le programme de fonctionnement de la cellule de travail automatisée 2 mis en oeuvre par la centrale de commande 8 génère des consignes C,; et nécessite la connaissance des positions angulaires P; des axes du bras de robot 4. A chaque transmission de consigne C,;, la centrale de commande 8 demande les positions angulaires de chacun des axes du bras de robot 4. L'unité de calcul 10 dispose des positions des arbres de chaque moteur grâce aux codeurs 12. Elles lui proviennent des contrôleurs de moteurs 61 à 66 et lui permettent de calculer les positions angulaires P; des axes du bras de robot 4 en appliquant le modèle cinématique inverse des transmissions 40. Ces traitements et ces transmissions de données génèrent des délais susceptibles de désynchroniser l'unité de calcul 10 et la centrale de commande 8. Pour éviter cette désynchronisation, l'unité de calcul 10 date les informations de position angulaire en provenance des contrôleurs de moteurs 61 à 66. Chaque mesure de la position angulaire de l'arbre du moteur détectée par les codeurs 12 est donc associée à une date de mesure. Comme la communication par le bus 14 est de type synchrone, l'unité de calcul 10 sait à quel moment elle devra émettre les valeurs de position angulaire P; des axes du bras de robot 4 à la demande de la centrale de commande 8. Elles sont alors corrigées en fonction de la date de mesure, en fonction du mouvement présumé du bras du robot 4 au moment de la mesure et de l'intervalle de temps séparant la date de mesure de la date de transmission à la centrale de commande 8. L'unité de calcul 10 effectue une synchronisation. En variante, le procédé de commande selon l'invention peut mettre en oeuvre un bus portant un mode de communication asynchrone. Dans une autre variante, le procédé selon l'invention peut être mis en oeuvre avec un bus CAN (Controller area network) qui intègre une couche applicative CANopen. Il est également compatible avec les protocoles de communication Powerlink et EtherCAT. Selon une autre variante, les axes de commande de mouvement du bras de robot 4 sont choisis comme étant les axes cartésiens X, Y, Z, et les rotations correspondantes Rx, Ry, Rz au lieu des axes Al à A6 du bras de robot 4. Le programmeur de la centrale de commande 8 exprime alors les déplacements souhaités de l'extrémité du bras de robot 4 suivant 3 directions X, Y et Z et l'orientation de l'extrémité du bras de robot 4 suivant les rotations Rx, Ry et Rz autour des axes X, Y et Z. Dans ce cas, la centrale de commande 8 transmet au dispositif de contrôle 6 du bras de robot 4 des positions cartésiennes à atteindre. Cela permet de simplifier la programmation de la centrale de commande 8, dans la mesure où il n'est pas nécessaire d'inclure dans celle-ci les caractéristiques spécifiques au robot commandé. L'unité de calcul 10 incorpore le modèle géométrique inverse du bras de robot 4 et le met en oeuvre pour déterminer les consignes de déplacement à destination des contrôleurs de moteurs 61 à 66. De même, l'unité de calcul 10 incorpore et met en oeuvre le modèle géométrique direct qui permet de calculer avant de transmettre à la centrale de commande 8 les positions des axes de commande de mouvement X, Y, Z, et les rotations correspondantes Rx, Ry, Rz à partir des positions angulaires des arbres de chaque moteur du bras de robot 4. L'invention ne se limite pas à l'utilisation d'un robot à 6 degrés de liberté et peut s'appliquer par exemple à des robots à 7 degrés de liberté. Dans ce cas, le programmeur pourra avantageusement choisir comme axes de commande de mouvement les axes cartésiens X, Y, Z, et les rotations correspondantes Rx, Ry, Rz de déplacement de l'extrémité du bras de robot. L'unité de calcul du dispositif de contrôle du bras de robot mettra en oeuvre le modèle géométrique inverse sophistiqué permettant de résoudre les redondances. L'invention a été décrite avec un dispositif de contrôle du robot 6 qui comprend une carte de communication 60, une unité de calcul 10 et des contrôleurs de moteurs 61 à 66. L'unité de calcul 10 est apte à traiter les informations en provenance de la centrale de commande 8 et générer des consignes de déplacement à destination des contrôleurs de moteurs 61 à 66. Ces contrôleurs de moteurs 61 à 66 sont fonctionnellement assimilables à des contrôleurs d'axe usuels tels que les contrôleurs d'axe 121 et 122. Ils reçoivent des consignes de position et assurent le pilotage asservi des courants qui alimentent les phases des actionneurs électriques. Cependant, l'invention s'applique également à une structure qui met en oeuvre une unité de calcul directement capable de générer les consignes de courant à destination de cartes de puissance non représentées. Ces cartes de puissance sont aptes à contrôler les courants circulants dans les phases de un ou plusieurs actionneurs électriques. L'invention n'est pas limitée par la structure du dispositif de contrôle 6 du bras de robot 4. REVENDICATIONS1.- Procédé de commande d'une cellule de travail (2) automatisée comprenant au moins un bras de robot (4), avec au moins trois degrés de liberté pilotés suivant plusieurs axes de commande (A1-A6, X, Y, Z, Rx, Ry, Rz) - une centrale de commande (8), - un dispositif (6) de contrôle du bras de robot (4), incluant plusieurs contrôleurs de moteurs (61-66) pilotant chacun le fonctionnement d'un moteur (M1-M6) adapté pour manoeuvrer au moins une partie du bras du robot (4), - un bus (14) de communication entre la centrale de commande (8) et le dispositif de contrôle du bras du robot (4), caractérisé en ce que ce procédé comprend des étapes consistant à : a) transmettre des consignes (C,;), émises par la centrale de commande (8)pour le pilotage des axes de commande, à une unique unité de calcul (10) appartenant au dispositif (6) de contrôle du bras de robot (4) ; b) déterminer au sein de l'unité de calcul (10) et à partir de plusieurs des consignes (C,;) reçues de la centrale de commande (8), des ordres (0,;, 02;, O';) pour le moteur (M1-M6) piloté par chaque contrôleur de moteur (61-66) ; c) transmettre à chaque contrôleur de moteur un ordre (0,;, 02;, O';)), déterminé à l'étape b), pour le moteur (M1-M6) piloté par ce contrôleur de moteur. 2.- Procédé de commande selon la revendication 1, caractérisé en ce qu'il comprend des étapes supplémentaires consistant à : d) transmettre, à partir de chaque contrôleur de moteur (61-66) et à destination de l'unité de calcul (10), la position du moteur (M1-M6) qu'il pilote ; e) calculer, au sein de l'unité de calcul (10) et sur la base de l'ensemble des positions des moteurs, les positions (P;, Pc) de chacun des axes de commande (A1-A6, X, Y, Z, Rx, Ry, Rz) du bras de robot (4) ; f) transmettre à la centrale de commande (8) les positions (P;, Pc)calculées à l'étape e). 3.- Procédé de commande selon la revendication 2, caractérisé en ce que l'unité de calcul (10) tient compte dans le calcul de l'étape e) des dates de mesure des positions des moteurs (Ml-M6) et de la date de la transmission à la centrale de commande (8) des positions (P;, Pc) de chacun des axes de commande (Al-A6, X, Y, Z, Rx, Ry, Rz) du bras de robot (4) pour corriger les positions (P;, Pc) des axes de commande en fonction du mouvement présumé du bras de robot (4). 4.- Procédé de commande selon l'une des revendications précédentes, caractérisé en ce que, à l'étape b) des ordres de mouvements (O,;) comprenant les positions à atteindre pour chaque moteur (M1-M6) pour respecter les consignes (C,;) émises par la centrale de commande (8) sont calculés. 5.- Procédé de commande selon la revendication 4, caractérisé en ce qu'à l'étape b), le calcul des ordres de mouvements (O,;) pour chaque moteur (M1-M6) s'accompagne d'une prévision du couple à fournir pour chaque moteur, basée sur les consignes (C,;) émises par la centrale de commande (8). 6.- Procédé de commande selon l'une des revendications précédentes, caractérisé en ce qu'il comprend une étape consistant à : transmettre à la centrale de commande (8) un signal (To, T3) représentatif de l'état de mise sous tension du bras de robot (4), dans lequel le bras du robot (4) est respectivement déclaré comme prêt à fonctionner ou mis hors tension seulement si tous les moteurs (M1-M6) sont mis sous tension ou mis hors tension et freinés. 20 7.- Procédé de commande selon l'une des revendications précédentes, caractérisé en ce qu'il comporte une étape consistant à : h) transmettre à partir de l'unité de calcul (10) et à destination de la centrale de commande (8) un signal (T2) représentatif de l'état de fonctionnement de toutes les parties du bras de robot (4), dans lequel toutes les parties du bras de robot (4) sont déclarées comme étant en défaut si au moins une de ces parties est détectée comme ne fonctionnant pas. 8.- Procédé de commande selon l'une des revendications précédentes, caractérisé en ce que le bus (14) supporte un mode de communication synchrone. 9.- Procédé de commande selon l'une des revendications précédentes, caractérisé en ce que le bus (14) fonctionne sur un modèle d'interface de type SERCOS. 10.- Procédé de commande selon la revendication 9, caractérisé en ce que la 35 centrale de commande (8) communique avec l'unité de calcul (10) en utilisant les commandes du profil de matériel « Profile drive ». g) 15 25 30