FR 2583671 A1 19861226 FR 8608935 A 19860620 MOUVEMENT PROGRAMME POUR LE RETRAIT ET LE RETOUR AUTOMATIQUE D'OUTIL EN REPONSE A UN SEUIL DE PERTE DE QUALITE La présente invention concerne de façon générale les machines outils à commande numérique, et plus particulièrement l'interruption de l'usinage selon un trajet programmé en réponse à la détection de la dégradation d'un outil ou de conditions défectueuses d'usinage. De façon spécifique, la présente invention se rapporte au retrait automatique d'outil à partir d'un point arbitraire au cours d'un mouvement d'usinage lorsqu'un signal d'interruption est produit, et au retour automatique de l'outil ou d'un outil de remplacement pour poursuivre ensuite l'usinage, de telle manière que le retrait et le retour de l'outil ne produisent pas de collision ou d'interférence avec la pièce usinée. On connaît déjà le fait d'interrompre automatiquement l'exécution normale du programme de pièce d'une machine outil à commande numérique en réponse à la détection de conditions anor- males d'usinage. Diverses sortes de conditions d'usinage ont été surveillées, et diverses actions ont été prises en réponse aux conditions anormales. Divers processus ont été prévus pour détecter différents états d'un outil, sur la base de la force appliquée à l'outil de coupe. La force peut être mesurée directement, mais il est généralement préférable de détecter la puissance électrique consommée par les moteurs de broche ou d'avance. Le brevet américain 4 442 494 délivré le 10 avril 1984 au nom de Fromson et al. décrit un dispositif de détection d'usure et de défaut d'outil, qui mesure la dérivée seconde de la puissance appliquée à l'outil de coupe, de façon à détecter la défaillance prochaine de l'outil, et une représentation statisti- que de tels événements avec une série d'outils est utilisée pour déterminer l'usure moyenne d'un outil. Dans la revendication 4, en colonne 10, il est dit que le fonctionnement de la machine- outil est interrompu lorsque la dérivée seconde de la puissance consommée croît au-delà d'un niveau critique. Le brevet US 4 509 126 délivré le 2 avril 1985 au nom de Olig et Ladwig, (également publié le 22 décembre 1983 comme demande de brevet PCT N PCT/US83/00847 et N de publication inter- nationale W083/04445), décrit un dispositif de commande adaptative qui mesure la puissance électrique consommée par le moteur d'entratnement de la broche d'un tour, calcule la puissance d'usinage à l'extrémité de l'outil de coupe et le rendement de coupe (c'est-à-dire la puissance nécessaire pour enlever une unité de matière de la pièce), et contrôle le rendement de coupe pour réaliser les fonctions élémentaires d'usure d'outil, de bris d'outil et de protection d'outil. La commande adaptative du taux d'usinage en réponse à la puissance d'usinage est supprimée pen- dant des courses programmées de début Ap et de fin Bp par rapport à la profondeur de coupe dans la pièce. Les courses de début Ap et de fin Bp sont appelées constantes de bloc ou paramètres modaux. Un cycle "outil cassé" est exécuté en réponse à un rendement de coupe relatif devenant inférieur à une fraction prédéterminée du rendement initial de coupe pour l'usinage. Un cycle "protection d'outil" est exécuté en réponse à un rendement de coupe devenant supérieur d'une fraction prédéterminée au rendement initial d'usinage. Un cycle "outil usé" est exécuté en réponse à une moyenne courante du rendement de coupe excédant, d'une fraction prédéterminée, le rendement de coupe d'un outil aiguisé. Un dispositif de détection de défaut d'outil annoncé dans les documents publicitaires de Kabushiki Kaisha Komatsu Seisakusho (ou Komatsu Ltd.) est présenté comme contrôlant les charges de moteur pour la broche principale ou l'axe d'avance, et comme déterminant si la charge de chaque moteur est normale. Il est dit que, si la charge d'un moteur est jugée anormale, un programme de cycle de sécurité agit pour replacer l'outil utilisé à sa position de changement d'outil. L'utilisateur doit presser le bouton de démarrage après que l'outil présentant le défaut a été remplacé. Il est dit que le nouvel outil retourne automatiquement à sa position de fonctionnement initiale, et que les opérations de coupe se poursuivent. Le retrait de l'outil à l'écart de la pièce et son retour ultérieur sont en elles-mêmes des opérations difficiles pour des pièces complexes. Dans le cas d'opérations d'usinage simples sur un tour, telle que le tournage ou le dressage, l'outil peut être retiré de la pièce sans collision ou interférence en déplaçant l'outil d'une certaine valeur selon une direction prédéterminée, et l'outil peut ensuite être déplacé directement à une position de changement d'outil. Durant le retrait, le trajet parcouru par l'outil peut être enregistré en mémoire de sorte que, après un changement d'outil, le nouvel outil peut retourner jusqu'à la pièce et que l'usinage peut reprendre là o il a été interrompu. Toutefois, on doit en général choisir le trajet de l'outil entre la pièce et la position de changement d'outil en fonction de l'emplacement de l'outil au moment o l'usinage a été interrompu. Sinon, il peut se produire une collision ou interférence entre l'outil et la pièce. Le brevet US 3 496 805 délivré le 24 février 1970 au nom de Ulrichsen et Brataas décrit un procédé pour le mouvement de retour automatique d'un porte-outil le long d'un trajet choisi arbitrairement, et pour un nouveau mouvement d'avance du porte- outil. On déplace l'outil depuis un point arbitraire sur la course d'usinage jusqu'à une position de changement d'outil en déplaçant l'outil le long du trajet d'usinage ou parallèlement à celui-ci en réponse à un ensemble de données auxiliaires. Depuis la position de changement d'outil, le nouvel outil est dirigé en retour par l'ensemble de données auxiliaires jusqu'au point arbitraire à par- tir duquel l'usinage normal est repris. Le brevet US 4 055 787 délivré le 25 octobre 1977 au nom de Beadle et al. décrit un dispositif dans lequel on amine rapide- ment l'outil à un point d'arrêt sur la course programmée d'usi- nage, en réponse à tout signal d'arrêt de durée aléatoire, et l'on déplace ensuite l'outil par contrôle manuel pour l'écarter du tra- jet programmé. Le trajet déterminé manuellement est enregistré et, en réponse à un signal de redémarrage, l'outil est ramené auto- matiquement au point d'interruption sur la course programmée. Le trajet de retour consiste à suivre à l'inverse le chemin enregistré. La reprise du mouvement de l'outil le long du trajet d'usinage programmé est annulée jusqu'à ce que l'outil soit, d'une façon ou d'une autre, ramené retourné au point d'interruption sur le trajet programmé. Le brevet US 4 442 493 délivré le 10 avril 1984 au nom de Wakai et al. décrit un dispositif dans lequel un outil est automatiquement retiré d'une pièce, le long d'un trajet déterminé en fonction du type d'opération d'usinage en cours. Sur la base des informations trouvées dans le programme commandant les opérations d'usinage normales, le type d'opération d'usinage est déterminé comme étant soit un usinage du diamètre externe, soit un usinage de face frontale, soit un usinage de diamètre intérieur. Ces informations, combinées avec la position du point d'interrup- tion le long du trajet d'usinage et le type d'usinage, et avec un paramètre programmable relatif à la taille de la pièce, font l'objet d'un calcul mathématique pour déterminer un trajet de retrait jusqu'à une première position pour échapper à la pièce, puis, en évitant le contact avec la pièce, jusqu'à une position de changement d'outil. Il est également précisé que l'outil de coupe est ramené sur le trajet d'usinage normal programmé en un point précédant, dans la séquence, le point d'interruption pour assurer un recouvrement de l'usinage dans cette région. Les modes de retrait et de retour d'outil sont enregistrés dans des zones prédéterminées d'une bande de commande numérique. Des codes de transfert sont également enregistrés sur la bande de commande numérique pour sélectionner ces modes. Les codes de transfert comprennent, par exemple, M81, M82 et M83 correspondant au mode d'usinage de diamètre extérieur, au mode d'usinage de face fron- tale et au mode d'usinage de diamètre intérieur. Il est dit que chaque mode comprend des variables représentant la position de début de retrait (c'est-à-dire les coordonnés du point d'inter- ruption), la position de retrait, etc. Les données pour la position de retrait sont, par exemple, programmes dans la bande de commande numérique ou introduites manuellement par un opéra- teur. Une condition anormale d'usinage est détectée en comparant le courant d'alimentation du moteur à un seuil prédéterminé de courant. On prévoit plusieurs seuils de courant en relation avec des portions respectives de la pièce et des outils respectifs. Les seuils appropriés sont choisis en fonction de "codes T" dans le programme de pièce. La société Kennametal, Inc. de Latrobe, 15650 Penn- sylvanie, a développé un détecteur d'état d'outil pour produire des signaux d'interruption et d'usure d'outil, et a choisi, pour une machine outil à commande numérique, des réponses appropriées aux signaux d'interruption et d'usure d'outil. Selon les réponses préférées, un outil usé est retiré et remplacé à la fin de la passe. Le retrait de l'outil comprend un mouvement incrémentiel l'éloignant de la pièce, suivi d'un ou plusieurs mouvements secon- daires jusqu'à la position de changement d'outil. Les mouvements sont programmables. Pour un outil cassé, la réponse préférée est un retrait immédiat suivi d'un changement à la fois de l'outil et de la pièce. Ces réponses préférées ont été mises en oeuvre dans une commande Dynapath utilisant les macro-possibilités de la commande. Durant une démonstration de ce dispositif à la Foire Internationale de la Machine-Outil (IMTS) de Chicago en septembre 1984, les changements d'outil étaient suivis d'un cycle de décalage d'outil utilisant un dispositif video. Les aspects généraux d'un tel dispositif ont Èté décrits dans l'article de Powell et al., "Sensing and Automation For Turning Tools", Tech- nical Paper N MS84-909, Society of Manufacturing Engineers, Détroit, Michigan (5 avril 1984). Le détecteur d'état d'outil de Kennametal est également décrit dans un compte-rendu intitulé "Electrical Interface Speci- fication", 2ème révision (30 novembre 1984). Le détecteur d'état d'outil contr8le la force d'avance, la force radiale et la force tangentielle en fonction de l'outil et transmet à la machine outil un signal d'outil usé et des signaux prioritaires d'interruption. Les interruptions prioritaires comprennent une interruption pour bris d'outil, une interruption pour surcharge de transducteur, et une interruption pour défaut. L'interruption pour bris d'outil indique soit une rupture d'outil soit une fragmentation d'outil. L'interruption pour surcharge de transducteur indique que des conditions anormales d'usinage se sont produites. L'interruption pour défaut indique qu'un mauvais fonctionnement est intervenu. La programmation ou configuration suggérée de la com- mande de machine-outil pour une utilisation avec le détecteur d'état d'outil de Kennametal est décrite dans un rapport intitulé "Kennametal Tool Condition Sensor: Functional Specification", révision 2 (août 1984). En particulier, la commande de machine- outil doit entreprendre et exécuter une séquence de rétablissement appropriée en réponse aux signaux d'outil usé ou d'interruption prioritaire. La séquence de rétablissement suggérée dans le cas d'un outil usé est de finir le passage, d'effectuer le retrait, de changer l'outil, et de reprendra l'usinage. Si l'outil n'est pas utilisé à nouveau pour usiner la même pièce, le changement d'outil peut toutefois être différé. jusqu'à ce que l'usinage de la pièce soit terminé. En réponse à un signal d'interruption pour outil brisé, un ordre immédiat d'"arrêt de mouvement" est émis, qui est suivi par un retrait en sécurité jusqu'en position de changement d'outil. Pour éviter tout problème qui pourrait intervenir à cause des débris d'outil encastrés dans la pièce non terminée, la procédure recommandée est de changer la pièce et de recommencer l'usinage à partir du début sur une nouvelle pièce. Aussi, dans le cas particulier d'une opération de filetage, l'outil doit être retiré sur une course suffisante pour dégager les filets avant l'exécution du mouvement de retrait; sinon, les filets existants seraient détruits et l'outil pourrait subir d'autres dégradations. D'une façon similaire, le mode opératoire recommandé en réponse à une interruption pour surcharge ou pour défaut comprend un arrêt immédiat de mouvement et un retrait en sécurité, mais ensuite on produit un signal pour requérir l'assistance de l'opérateur. Pour exécuter ces procédures de rétablissement, la commande de machine- outil doit comprendre une procédure de "saut logique sur signal extérieur" et une procédure de retrait en sécurité. La procédure de saut logique sur signal extérieur requiert la possibilité d'entreprendre un saut logique dans le programme de pièce en réponse à un signal extérieur et de garder la trace de l'endroit à partir duquel le saut a été exécuté de façon quel'exécution puisse retourner et reprendre à partir du point d'interruption. La procédure de retrait en sécurité requiert la possibilité de déplacer de manière sûre l'outil de coupe depuis un point arbitraire au cours du programme de pièce jusqu'à une position de changement d'outil ou d'indexation de tourelle. Le document "Kennametal Tool Condition Sensor: Func- tional Interface Specification" considère diverses procédures de retrait en sécurité. Il est dit que la procédure procurant une sécurité absolue consiste à exécuter le programme de pièce en arrière jusqu'à la position précédente d'indexation de tourelle: Il est dit que cela peut s'avérer difficile, voire impossible, à exécuter avec les dispositifs de commande connus, mais que cela devrait être inclus dans les dispositifs futurs. Il est également précisé qu'une procédure alternative de retrait en sécurité, décrite dans une annexe A, pourrait être plus facile à exécuter, bien qu'étant d'utilisation un peu lourde; de plus, il est dit que cela conduit à augmenter la taille du programme de pièce et les risques d'erreur de programmation. Il est reconnu que la plu- part des dispositifs modernes de commande de machine-outil procure à l'utilisateur des moyens de macro-programmation incluant des fonctions en langage de haut niveau. En ce qui concerne la procédure alternative de retrait en sécurité, il est suggéré que cette possibilité soit exploitée pour écrire une fonction générale de retrait en sécurité qui peut être adaptée à des situations par- ticulières. L'ordre d'appel macro-programma de cette fonction doit être placé dans le bloc de programme de pièce auquel il se rap- porte et doit contenir les paramètres nécessaires pour configurer le macro-programme selon les conditions correspondant à cette por- tion du programme de pièce. La fonction générale de retrait en sécurité consiste en une série de mouvements pour ramener l'outil en position d'indexation de la tourelle. Les mouvements compren- nent (1) un saut incrémentiel à l'écart de la pièce, (2) des mouvements optionnels en X et en Z pour éviter les obstructions, (3) pour des outils de travail sur diamètre extérieur, un retrait en X suivi d'un retrait en Z jusqu'à la position d'indexation de tourelle; et (4) pour des outils de travail sur diamètre intérieur, un retrait en X jusqu'à l'axe central de broche, suivi de retraits en Z et en X jusqu'à la position d'indexation de tourelle. Il est dit qu'un macroprogramme relativement simple pour un retrait en sécurité peut être écrit et configuré par un nombre minimal de paramètres dans l'ordre d'appel. Un exemple particulier d'ordre d'appel peut être: MACRO = (IF SET, ID/OD, ORIENT., JOG, X, Z, X, Z) Le paramètre "IF SET" désigne le déclencheur qui exécute le saut logique jusqu'au macro-programme, le paramètre ID/OD indique si l'outil de coupe travaille en diamètre intérieur ou extérieur, le paramètre ORIENT. est l'orientation d'outil prise comme direction pour le saut incrémentiel, le paramètre JOG est la distance de saut incrémentiel et les paramètres X et Z sont les paramètres optionnels de mouvement d'axe utilisés pour éviter les obstacles. La fonction générale de retrait en sécurité prévue dans l'ordre d'appel de macro-programme de Kennametal est un exemple de programme enregistré prédéfini ou "cycle enregistré" qui est appelé par le programme de pièce de l'utilisateur. Les cycles enregistrés sont généralement fournis par le fabricant de machines-outils pour aider l'utilisateur à programmer des fonc- tions répétitives par appels répétés à des cycles enregistrés. Les cycles enregistrés peuvent être à usage général aussi bien que spécifique pour une passe d'usinage particulière. Par exemple, le brevet US 4 446 525 délivré le premier mai 1984 au nom de Hotch et al, décrit l'utilisation d'un macro-programme exécuté par un pro- cesseur qui compare des paramètres dans le macro-programme à un ensemble de paramètres ayant des valeurs définies dans une table de paramètres. Pendant l'exécution du macro-programme, le pro- cesseur obtient les valeurs respectives à partir de la table de paramètres. En conséquence, l'opérateur peut effectivement éditer des blocs de programme de pièce juste avant de les faire fonc- tionner en changeant les valeurs sélectionnées enregistrées dans la table de paramètres. Au vu de ce qui précede, l'objet général de l'invention est de faciliter l'usage d'une procédure automatique de retrait en sécurité et de retour pour une machine-outil à commande numérique, pour éviter dans tous les cas les collisions et interférences entre la pièce et l'outil, et réduire les imperfections d'état de surface de la pièce usinée. Un autre objet de l'invention est de faciliter la programmation de la fonction générale de retrait en sécurité et de retour pour une séquence d'usinage désirée. Pour cela, un objet particulier est de réduire la probabilité d'erreurs de program- mation pendant l'écriture d'une procédure particulière de retrait en sécurité et de retour. Un autre objet de l'invention est d'empêcher le déclen- chement erroné de la fonction de retrait d'outil. Selon l'invention, on prévoit une fonction générale de retrait en sécurité et de retour qui est facilement programmable pour tous les cas et qui évite collisions et inerférences entre la pièce et l'outil, et qui réduit les risques de détérioration et d'imperfection à la surface de la pièce à usiner lors de l'arrêt ou de la reprise de l'usinage. Selon un aspect important de l'invention, la fonction générale de retrait en sécurité et de retour inclut des paramètres définissant un vecteur de retrait incrémentiel par rapport à la direction du trajet d'usinage dans la région du point d'interrup- tion. De préférence, les paramètres précisent la distance du vec- teur de retrait et l'angle du vecteur de retrait par rapport à la direction ou vecteur d'avance d'outil du trajet d'usinage au point d'interruption. En définissant le vecteur incrémentiel de retrait par rapport au vecteur d'avance d'outil, on peut programmer une fonction de retrait en sécurité en utilisant un moins grand nombre de commandes macroprogrammées pour la fonction générale, puisque, pour des surfaces incurvées complexes, le vecteur incrémentiel de retrait est modifié en fonction de l'emplacement du point d'interruption. Selon un autre aspect important de l'invention, la fonc- tion générale de retrait en sécurité comprend des paramètres définissant un vecteur incrémentiel d'entrée pour le réengagement de l'outil sur la pièce au point d'interruption, le vecteur d'entrée étant orienté selon un angle rasant par rapport à la sur- face à usiner, de telle manière que l'outil ne touche pas la pièce à un point précédent et qu'il n'y a pas de réusinage de la pièce. En conséquence, l'état de surface d'une pièce usinée n'est pas endommagé ou marqué par le réusinage après un retrait et retour d'outil. De préférence, les paramètres d9finisant le vecteur d'entrée incrémentiel sont fonction du vecteur d'avance d'outil programmé selon le trajet programmé, et le vecteur d'entrée est défini par un paramètre précisant la valeur du vecteur d'entrée et son angle par rapport au vecteur d'avance d'outil le long du tra- jet programmé, au point d'interruption. Selon une autre caractéristique de l'invention, la fonc- tion générale de retrait en sécurité est programmée dans le programme de pièce par au moins une commande paramétrable incluant les spécifications de pièce données par le programmeur pour l'outil choisi ou les conditions d'usinage et les limites respec- tives, ainsi que l'action corrective qu'il faut entreprendre dans le cas o les limites spécifiées sont atteintes. En d'autres ter- mes, la comparaison des différents signaux d'état d'outil ou d'usinage aux différents seuils respectifs permet de définir un saut logique vers différents sous-programmes, et le programmeur n'a pas besoin de connaître l'organigramme interne des sauts logi- ques vers les sous-programmes pour les différents cas respectifs. La fonction générale interprète une expression conditionnelle spécifiée pour tester la présence de conditions nécessaires pour une interruption ou un 3aut logique produisant une action spécifié. On prévoit toutefois des commandes macro-programmées spécifiques pour mettre à jour ou changer des paramètres spécifiques de façon modale pour éviter d'avoir à répéter des com- mandes macro-programmées plus générales. Selon une autre caractéristique de l'invention, l'inter- ruption de l'usinage normal est sélectivement conditionnée par l'engagement et le désengagement de l'outil sur la pièce pour éviter les faux retraits dus à des états transitoires lorsque l'outil entre en contact ou s'écarte de la pièce. De préférence, la fonction générale de retrait en sécurité et de retour inclut des paramètres B et E pour déterminer les distances de début et de O3671 fin, respectivement, d'un passe pendant laquelle on empêche l'interruption de l'usinage normal sauf en réponse à un dépasse- ment des limites maxima admissibles.-Pour éviter d'avoir recours à une détection ou autre moyen pour déterminer les points du trajet de l'outil auxquels l'engagement ou le désengagement d'outil intervient, on peut à titre de variante interdire sélectivement l'interruption d'usinage normal pendant des distances spécifiées de début et de fin de mouvement d'usinage. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante de modes de réalisation particuliers faite en relation avec les figures jointes parmi lesquelles: la figure 1 est une vue de face d'un centre de tournage vertical à commande numérique avec un poste de changement auto- matique d'outil; la figure 2A est une courbe pour un outil particulier représentant la puissance moyenne en fonction du temps, montrant la puissance moyenne en augmentation progressive tandis que l'outil devient usé, jusqu'à atteindre une limite d'usure; la figure 2B est une courbe pour un outil particulier, représentant la constante de puissance calculée en fonction du temps, montrant la limite intérieure de rupture atteinte lors de la rupture de l'outil; la figure 2C est une courbe pour un outil particulier, montrant la constante de puissance calculée en fonction du temps, présentant une limite supérieure de rupture atteinte lors de la rupture de l'outil; la figure 3 est un schéma bloc de circuits pour la mesure de la puissance fournie à un moteur de broche dans une machine-outil telle que le centre de tournage de la figure 1; la figure 4 représente schématiquement l'interface entre la pièce et l'outil pour le centre de tournage de la figure 1, la pièce étant représentée en coupe, en cours de réalisation d'un alésage; la figure 5 est un schéma bloc montrant de manière très générale le traitement des signaux pour réaliser la fonction de retrait d'outil selon un aspect important de la présente inven- tion; la figure 6 est un diagramme schématique montrant une opération interne d'usinage réalisée par le centre de tournage vertical de la figure 1 et illustrant un trajet de retrait en sécurité de l'outil; la figure 7 est un diagramme schématique illustrant les définitions des vecteurs d'entrée et de retrait pour une opération de retrait en sécurité selon un aspect important de la présente invention; la figure 8 est un diagramme schématique illustrant un trajet de retrait en sécurité à partir d'un point de départ jusqu'à un point de changement d'outil pendant une opération de tournage externe; la figure 9 est un diagrame schématique montrant un trajet de retrait en sécurité à partir d'un point de départ jusqu'à un point de changement d'outil durant une opération d'usinage interne; la figure 10 est un organigramme pour une séquence d'interruption comprise dans un programme de commande interne d'une unité de commande numérique et exécuté périodiquement ou en réponse à un ordre externe pour tester la présence de conditions limites, et, lorsque les conditions limites sont satisfaites, pour executer un saut logique depuis la partie en cours du programme de pièce jusqu'à un programme de retrait d'outil; la figure 11 est une table de paramètres correspondant a la séquence d'interruptions périodiques de la figure 10 pour réaliser les fonctions de surveillance d'outil; la figure 12 est un organigramme pour le sous-programme de retrait d'outil pour retirer l'outil jusqu'a un point de retrait primaire progra c lorsque des conditions particulières limites ou un signal extérieur sont détectés par la séquence d'interruption de la figure 10; la figure 13 est un organigramme pour un sous-programme de changement d'outil permettant le mouvement de l'outil depuis un point de retrait primaire jusqu'au point de changement d'outil, et permettant le retour et le réengagement de l'outil changé sur la pièce; la figure 14 est un organigramme d'un sous-programme de réengagement d'outil, utilisé pour engager l'outil changé sur la pièce conformément à un vecteur d'entrée programmé; la figure 15 est un organigramme d'un sous- programme convertissant les coordonnées polaires d'un vecteur de retrait ou d'entrée, en fonction de la direction d'usinage, en coordonnées rectangulaires absolues; la figure 16 est un diagramme montrant la définition du vecteur d'avance lors d'une interpolation circulaire; la figure 17 est un organigramme d'un sous-programme de conversion entre coordonnées rectangulaires et po'aires; la figure 18A est un diagrammeschématique illustrant un usinage frontal pour un exemple particulier de programmation du retrait en sécurité selon la présente invention; la figure 18B est un diagramme schématique montrant l'opération d'usinage frontal de la figure 18A à échelle réduite, et montrant le trajet depuis la pièce jusqu'au poste de changement d'outil; la figure 19A est un organigramme du programme de pièce pour l'exemple de programmation correspondant aux figures 18A et 18B; et la figure 19B est un organigramme du sous-programme d'interruption pour l'exemple de programmation. Bien que l'invention ait été illustrée et décrite ci- dessous en détail en relation avec des modes de réalisation préférés donnés à titre d'exemple, elle n'est en aucune manière limitée à de tels détails. Au contraire, l'invention couvre toutes modifications, variantes et équivalents, qui sont dans l'esprit et dans le domaine de l'invention telle que définie dans les reven- dications jointes. Pour illustrer un environnement particulier dans lequel on pourra très avantageusement l'utiliser, la présente invention sera décrite ci-dessous en relation avec un centre de tournage vertical à commande numérique 10 représenté sur la figure 1. Cette machine-outil indiquée à titre d'exemple comprend une table de travail 11 rotative prévue pour tenir et tourner une pièce 13 qui est usinée pour obtenir un contour désiré selon un système de coordonnées X-Z. L'axe Z du système de coordonnées est défini de manière classique comme l'axe de rotation de la table de travail 11 et de la pièce 13. Un outil 14 est monté sur, et est mobile avec, un porte-outil 15 qui peut glisser le long de l'axe Z, entre des guides verticaux formés dans un chariot 16. Le chariot est à son tour mobile horizontalement le long d'un axe X défini par un rail 17 supporté par deux colonnes verticales espacées 18 et 19. L'outil 14 peut ainsi être déplacé selon des axes ortbogonaux, horizontal et vertical, X et Z par rapport à la pièce 13. En ajustant de façon adéquate les composantes en X et en Z du mouve- ment et de la vitesse du porte-outil 15, aussi bien que la vitesse de rotation de la table de travail 11, l'outil 14 se déplace à travers la pièce 13 le long d'un trajet et à une profondeur choisie pour tailler sur cette pièce un contour choisi. Pour réaliser un tel mouvement contr8lé de l'outil 14 par rapport à la pièce, le chariot 16 comprend un écrou engagé sur une vis 20 entraînée à des vitesses adéquates par un servo-moteur réversible 21. Lorsque le moteur 21 tourne dans l'une ou l'autre direction à différentes vitesses, le chariot 16 se déplace horizontalement dans les directions plus X ou moins X et à des vitesses déter- minées par la vitesse du moteur 21. De façon similaire, le porte- outil 15 comprend un écrou engagé avec une vis verticale 22 entraînée par un servo-moteur réversible 23, de sorte que l'ali- mentation de ce moteur dans une direction ou dans l'autre entraîne l'outil 14 dans la direction plus Z ou moins Z. Les moteurs 21 et 23 d'axes X et Z constituent des par- ties de systèmes d'asservissement en axe X et en axe Z qui alimen- tent les moteurs par des tensions choisies en fonction de l'erreur entre une position désirée et une position réelle. Pour produire les signaux représentant les positions réelles de l'outil le long des deux axes, on utilise des transducteurs de réaction tels que des capteurs de position de rotation 25 et 27 solidaires de la vis correspondante ou accouplés avec elle. Les signaux de réaction correspondants sont retournés à des servo-amplificateurs 28 et 30 qui reçoivent respectivement les signaux de sortie analogiques de convertisseurs numérique/analogique (CNA) 31 et 32, qui à leur tour reçoivent les signaux de sortie numériques variables Xc et c Z d'un ordinateur ou calculateur de commande numérique 33. Les convertisseurs numérique/analogique sont bien-connus des hommes du métier, de sorte qu'aucun détail supplémentaire n'a besoin d'être donné; il faut toutefois noter que les boucles de régulation avec un gain relativement élevé permettent de garder dynamiquement les posi- tions X et Z de l'outil 14 en conformité étroite avec les signaux numériques de sortie variables Xc et Zc fournis par l'ordinateur 33. Les organes commandés se déplacent ainsi selon des vitesses axiales Vx et Vz correspondant aux vitesses de changement de ces signaux. L'enlèvement de matière sur la pièce 13 est effectué par un insert 34 amovible et remplaçable, tenu dans un support d'insert 35 porté par l'outil 14. Des machines-outils de ce type sont souvent équipées de changeurs automatiques d'outils, du type du changeur automatique d'outil 36 illustré sur le c8té gauche du centre de tournage vertical 10 de la figure 1. De cette manière, une grande variété d'outils différents 14 peut être utilisée pour des opérations d'usinage différentes, ou même pour des étapes différentes d'une seule opération d'usinage. Ces différents outils utilisent plusieurs inserts différents 34, et on peut placer plu- sieurs supports d'inserts différents 35 en des positions diverses et variées sur les divers outils 14. L'ordinateur 33 qui commande la machine-outil contient des informations concernant l'outil par- ticulier et la position particulière ou le décalage de l'insert sur l'outil particulier. L'insert de coupe 34 s'use progressivement et doit être remplacé. Egalement, il n'est pas rare que l'insert 34 ou le sup- port d'insert 35 se brise pendant l'usinage. Si l'insert 34 devient usé de manière excessive ou si l'insert ou le support d'insert 35 se brise durant l'usinage, il est nécessaire d'arrêter l'usinage à ce point arbitraire et de changer l'outil 14 ou l'insert 34. Pour cela, l'outil 14 est retiré en sécurité de la d'insert 35 se brise durant l'usinage, il est n6cessaire d'arrêter l'usinage à ce point arbitraire et de changer l'outil 14 et l'insert 34. Pour cela, l'outil 14 est retiré en sécurité de la pièce 13 et est changé ou remplacé par un outil de remplacement dans le poste de changement d'outil 36. L'outil changé ou l'outil de remplacement peut alors être ramené vers la pièce 13 pour con- tinuer l'usinage. Comme cela sera décrit ci-dessous, cette opération de changement d'outil est seulement l'une des nombreuses actions que l'on peut entreprendre lorsque l'outil 14 devient usé de manière excessive ou brisé pendant l'usinage. De préférence l'usure excessive d'outil et la rupture d'outil sont mesurées automatiquement et rapidement détectées pour protéger la pièce et l'outil contre toute dégradation dans les conditions d'un outil use, ou pour empêcher des dommages ultérieurs sur l'outil ou la pièce après la rupture d'outil. Bien sûr, la détection automatique et la correction d'une usure excessive d'outil ou d'une rupture d'outil sont particulièrement importantes pendant les opérations non surveillées d'usinage. Une autre raison pour surveiller automatiquement les outils est de réduire le coût des inserts en favorisant un usage optimal de l'insert. Au lieu de changer l'insert après une durée fixe conser- vatoire, l'insert peut être changé en réponse à ces conditions réelles de dégradation. Un procéd6 de surveillance relativement aisé et peu gênant des conditions de déroulement d'usinage au niveau de l'interface entre l'outil et la pièce consiste à surveiller la puissance réelle consommée durant l'opération d'usinage. En par- ticulier, on définit l'usure de l'outil comme la d6térioration graduelle du bord de coupe de l'insert en cours d'usinage. On remarque que, lorsque l'outil s'use ou s'émousse, les forces de coupe et la puissance réelle de coupe croissent progressivement. La rupture d'outil, par ailleurs, est définie comme un défaut catastrophique ou la destruction de l'insert d'usinage. Lorsque se produit la rupture de l'insert, les forces de coupe et la puis- sance réelle d'usinage subissent soit une diminution rapide due à l'interruption du processus d'enlèvement de matière, soit une augmentation rapide due à l'engagement de l'insert brisé dans la pièce. La surveillance de la puissance d'usinage est également utile pour mesurer l'usure d'outils lors d'opérations d'usinage autres que les simples opérations de tournage illustrées sur la figure 1. Bien que la présente invention doive être décrite en détail dans le contexte d'un centre de tournage vertical, elle peut être aisément appliquée à un usinage horizontal et à un fraisage, un perçage ou un alésage. En général, la puissance réelle d'usinage est fonction de la vitesse à laquelle on effectue l'usinage, et des propriétés et caractéristiques du matériau formant la pièce, ainsi que de l'état du bord de coupe. Les relations entre ces facteurs ainsi que d'autres ont été décrites dans le brevet US 4 509 126 délivré le 2 avril 1985 au nom de OLIG et LADWIG mentionné ci-dessus, en relation avec le contrôle adaptatif d'un processus d'usinage. Comme ce document le décrit, la difficulté d'usinage ou d'enlèvement de matière sur une pièce en un matériau particulier est quantifiée avantageusement par une constante de puissance (KHP) définie comme étant la puissance requise pour un taux uni- taire d'enlèvement de matière sur la pièce. En terme d'unités de mesure britannique, la constante de puissance (XHP) est la puissance requise pour enlever un pouce cube de matière chaque minute. Le taux d'enlèvement de matière de la pièce est propor- tionnel à la vitesse d'avance de l'outil par rapport à la pièce (IPR) en pouces par tour de pièce, à la vitesse de déplacement de surface de la pièce par rapport à l'outil (SFM) en pieds par minute, et à la profondeur de passe de l'outil par rapport à la pièce (DOC) en pouces. Selon ces unités britanniques, une cons- tante de puissance calculée (KHPc) peut être obtenue à partir des données mesurées et connues selon la formule: KHPc = HPc / (IPR x SFM x DOC x 12) (Equation 1) o HPc est la puissance réelle d'usinage en chevaux vapeur. Le facteur 12 convertit les pouces en pieds et, si l'on utilisait un système d'unités rationnelles, tel que le système métrique ou MKS, le facteur 12 ne serait pas nécessaire. A partir de l'équation 1 ci-dessus, on peut voir que pour déterminer la constante de puissance (KHP), il faut connaftre ou mesurer la puissance de coupe (HPC), la vitesse d'avance (IPR), la vitesse de surface (SFM) et la profondeur de passe (DOC). La puissance de coupe (HPc) est calculée à partir de la mesure de puissance moteur, comme cela sera décrit cidessous. La vitesse d'avance (IPR) et la vitesse de surface (SFM) sont connues à par- tir des positions commandées Zc et Xc de l'outil 14 et à partir de la vitesse de rotation mesurée ou commandée (RPMc, RPMm) de la table 11. En d'autres termes, la vitesse d'avance (IPR) et la vitesse de surface (SFM) sont des paramètres connus du dispositif de contr8le. Les valeurs de ces paramètres sont programmées et introduites dans le programme de pièce lu par un lecteur de bande 37 et exécuté par l'ordinateur numérique de commande 33. Il est également avantageux de permettre à l'opérateur de machine (non représenté) d'ajuster ou de commander les valeurs programmées au moyen d'un poste de travail 38 incluant un écran 39 et un clavier en relation avec l'ordinateur 33. Puisque la constante de puissance (KHP) est indépendante de la vitesse et de l'avance réelles, elle constitue une mesure fiable de l'état de la lame de coupe lorsque la vitesse et l'avance sont ajustées selon des valeurs déterminées par contr8le adaptatif ou par l'opérateur. Mais la constante de puissance (KHP) est une indication fiable de l'état de la lame de coupe seulement pour des opérations d'usinage dans lesquelles la profondeur de coupe (DOC) est connue. Il en résulte que la constante de puissance (KHP) peut devenir une mauvaise indication pour cer- taines coupes grossières. En outre, des irrégularités dans la dureté du matériau provoquent des changements dans la valeur de la puissance de coupe (KHP) qui ne peuvent pas être distingués de changements provoqués par une usure ou une rupture d'outil. Les figures 2A, 2B, et 2C, illustrent le procédé pour surveiller la constante de puissance (KHP) pour détecter l'état de plus d'un outil. La figure 2A illustre de manière plus spécifique un procédé pour détecter l'usure progressive d'un insert. Lorsque le bord de coupe de l'insert s'use, le processus d'usinage ou d'enlèvement de matière devient moins efficace. Puisque la constante de puissance (KHP) est une mesure de l'inefficacité d'enlèvement de matière, la constante de puissance augmente progressivement au fur et à mesure que l'insert s'use. Pour supprimer le bruit, causé par exemple par une profondeur fluc- tuante de coupe (DOC) ou par une dureté fluctuante de matière, et pour opérer la distinction avec la rupture d'outil comme cela sera décrit ci-dessous, on détecte que l'outil est usé de façon excessive en comparant un seuil ou limite d'usure à une valeur moyenne de la constante de puissance calculée ou enregistrée au cours d'une certaine période. La durée de cette période est choisie pour être plus grande que le temps requis pour détecter la rupture d'outil, comme cela sera décrit ci-dessous. En pratique, il est préférable de calculer la constante de puissance (KHP) sur une base périodique, et de calculer la moyenne (KHPa) comme étant la moyenne d'un nombre-prédéterminé des dernières valeurs consécutives qui ont été calculées. De préférence la moyenne comprend au moins quatre valeurs. Mais le nombre des dernières valeurs dont on fait la moyenne est de préférence une fonction de la période utilisée pour le calcul, de façon a obtenir un certain intervalle de temps sur lequel la moyenne est calculée. Par exemple, pour un intervalle de 64 milli- secondes entre les calculs, il est préférable de calculer une moyenne sur seize valeurs pour obtenir un intervalle d'environ une seconde sur lequel la moyenne est calculée. Pour déterminer une limite indépendante de la valeur absolue de la constante de puissance (KHP), la limite d'usure (W) est de préférence exprimée par un pourcentage ou une fraction de la constante de puissance programmée (KHPp), que l'on devrait déterminer expérimentalement pour chaque matière de pièce et géométrie d'outil. Lorsqu'un nouvel outil aiguisé est utilisé pour la première fois pour un enlèvement de matière, par exemple, la constante de puissance moyenne (KHPa) au début de l'opération d'enlèvement de matière est mise en mémoire comme constante programmée de puissance (KHPp). Comme on le décrit ci-dessous, on utilise une fonction spécifique incluse dans le programme de pièce pour enregistrer la constante de puissance programmée. Une fois que la constante de puissance programmée (KHPp) est enregistrée, on calcule un rapport de puissances unitaires (UPR) par: UPR = KHPC / KHPp (Equation 2) ou en termes de pourcentage: UPR Z (KHPc / KHPp) x 100 (Equation 3) o: UPR = Rapport de Puissance Unitaire KHPc = Constante de Puissance Calculée KHPp = Constante de Puissance Programmée. Pour contr8ler l'état d'usure d'un outil, le rapport de puissance unitaire (UPR) est comparé a une limite d'usure (W) qui est exprimée de manière convenable en pourcentage. Comme le représente la figure 2A, le. pourcentage de limite d'usure (WZ) est choisi égal à 125 et la limite est comparée à la constante de puissance moyenne (KHPa) pour déterminer si l'outil devient usé de manière excessive à un instant déterminé (Tw) et pour générer un signal de commande en réponse à cette comparaison. Comme cela sera décrit ci-dessous, l'ordinateur numérique de commande 33 répond à ce signal de coamande d'usure d'outil d'une manière qui peut être programée par l'utilisateur. La figure 2B montre une réponse possible 43 de la constante de puissance (KHPC) dans le cas d'une rupture d'insert. La réponse 43 comprend une chute rapide 44 provoquée par l'interruption du processus d'usinage après la rupture de l'insert supprimant tout contact entre l'outil et la pièce. La diminution rapide 44 est suivie par une remontée rapide 45 de la constante de puissance (KHPc) lorsque l'insert brisé entre à nouveau en contact avec la surface de la pièce. Pour détecter ce cas particulier de rupture d'outil, la constante de puissance calculée (KHPc) est comparée à une limite ou seuil inférieur de rupture (L) et on produit un signal de commande de rupture d'outil à l'instant (Tb) auquel on atteint la limite inférieure de rupture. De mime que dans le cas de l'usure d'outil, il faut exprimer la limite infé- rieure de rupture (L) comme une valeur particulière du rapport de puissance unitaire (UPR) et en particulier comme un pourcentage. Comme le montre la figure 2B, la limite inférieure de rupture en pourcentage (L%) est choisie égale à 75. La figure 2C montre une seconde réponse possible 46 de la constante de puissance lors d'une rupture d'insert. Dans ce cas, l'insert se brise mais s'engage immédiatement entre le sup- port d'insert et la pièce, produisant une montée rapide et con- tinue de la constante de puissance calculée (KHPC). La rupture d'outil est détectée à un certain instant (Tb), et on produit un signal de commande, en réponse à la comparaison entre la constante de puissance calculée (KHPc) et une limite de rupture supérieure (U). Comme précédemment, il est préférable d'exprimer la limite supérieure de rupture (U) comme une valeur particulière du rapport instantané de puissance unitaire (UPR) et en particulier comme un pourcentage. Comme représenté, la limite supérieure en pourcentage (U%) est choisie égale à 150. Les réponses de l'ordinateur numérique de commande 33 et de la machineoutil 10 à un signal de commande d'outil usé et aux signaux de commande d'outil brisé ne sont pas nécessairement les mêmes. Alors que dans le cas d'une limite de rupture la réponse est généralement de remplacer la totalité de l'outil 14, dans le cas d'un Insert 34 usé il est possible de changer simplement l'insert 34, par exemple dans le cas d'un insert ayant plusieurs arêtes de coupe, par indexation de l'insert pour présenter en position de coupe une nouvelle arête. Pour distinguer les conditions de rupture de la figure 2C et les conditions d'outil usé de la figure 2A, la limite supérieure de rupture (U) doit être supérieure à la limite d'usure (W), et la limite d'usure (W) doit être définie comme une valeur moyenne de la constante de puissance (KHP). En particulier, la durée au cours de laquelle on calcule la constante de puissance moyenne (KHPa) doit être supérieure à la durée de la rampe mon- tante 47 de la réponse 46 de la figure 2C entre la valeur limite * d'usure (par exemple 125 %) et la valeur limite supérieure de rup- ture (par exemple 150 %). En outre, pour éliminer les déclenche- ments erronés, il peut être nécessaire d'effectuer un calcul de moyenne sur la constante de puissance calculée (KHPc) avant de la comparer à la limite inférieure de rupture et à la limite supérieure de rupture. On peut obtenir le même résultat en exi- geant que la valeur instantanée du rapport de puissance unitaire (UPR) soit en dehors de la zone entre les limites correspondantes de rupture (L) et (U) pour deux ou plusieurs échantillons suc- cessifs. Avant de remplacer l'insert brisé, l'outil doit être inspecté pour déterminer si on doit remplacer le support d'insert ou l'outil pour éviter toute dégradation supplémentaire de l'outil. La figure 3 montre un diagramme-schématique d'une dispo- sition préférée pour mesurer la constante de puissance (KHP) de l'ensemble outil et pièce. Comme cela a été déjà discuté, la détermination de la constante de puissance (KHP) nécessite de mesurer la puissance réelle d'enlèvement de matière (HPc) ainsi que la vitesse de rotation (RPM) de la pièce 13. Pour entraîner le moteur de broche 12, l'alimentation de broche 50 reçoit l'énergie électrique par une ligne d'alimentation 51 et transfère à partir de la ligne de puissance 51 sur les con- ducteurs 52 du moteur de broche 12 une quantité de puissance régulée en fonction d'un signal de commande de vitesse (RPMc). L'alimentation de broche 50, par exemple, comprend des thyristors, et l'angle d'ouverture des thyristors est commandé par le signal de commande de vitesse (RPMc) pour obtenir la vitesse désirée. A cause de l'inertie de rotation relativement importante du moteur de broche 12, de la table de travail 11 et de la pièce 13, la vitesse réelle (RPM) peut différer sensiblement de la vitesse désirée (RPMC). En conséquence, en pratique il est nécessaire de mesurer directement la vitesse de rotation de la pièce 13, par exemple au moyen d'un tachymètre 53 mesurant la rotation de l'arbre 12' du moteur de broche 12. Pour éviter les problèmes de retour par la masse, le signal du tachymètre 53 est transmis à l'ordinateur numérique 33 par l'intermédiaire d'un isolateur continu-continu 54. Un filtre 55 est également interposé à la sor- tie de l'isolateur 54 pour éliminer les bruits tels que les com- posantes à la fréquence de ligne de 60 Hertz et est converti en valeur numérique par un canal d'un convertisseur 56 analogique/ numérique à 12 bits et 2 canaux. A titre de variante, on peut réaliser la mesure de vitesse de rotation de la table 11 ou de la pièce 13 au moyen d'un transducteur de position de rotation tel qu'un capteur de position angulaire. Un capteur peut déjà être prévu pour la coupure automa- tique de filets sur la pièce. De toute manière, la vitesse de rotation est le taux de changement de position angulaire, et est proportionnelle à la différence entre deux positions angulaires successives échantillonnées de manière périodique. Pour mesurer la puissance fournie au moteur de broche 12, un transducteur de puissance 57 mesure la tension sur les con- ducteurs 52 et reçoit un signal produit par un transducteur de courant 58. La tension instantanée est multipliée par le courant instantané pour obtenir un signal de puissance réelle qui est transmis à travers un filtre 59 au second canal du convertisseur analogique/numérique 56. Un transducteur de puissance approprié est le OSI DC WATT TRANSDUCER modèle PC8-4-04 fabriqué et vendu par OHIO SEMITRONICS, 1205 Chesapeake avenue, Columbus, Ohio 43212. De préférence, l'ordinateur numérique de commande 33 doit déterminer et mettre à jour la constante de puissance (KHP) aussi rapidement que possible, de façon que la commande puisse répondre de manière instantanée à des changements de la constante de puissance. A cause de la durée finie disponible pour effectuer les calculs pour la commande, les calculs sont toutefois effectues périodiquement à un taux maximum d'environ une mise à jour chaque millisecondes. Pour réduire le bruit électrique, à un tel taux d'échantillonnage élevé, correspondant à cinq mises à jour par tour à 300 tours par minute, il peut être nécessaire de prévoir un filtrage numérique ou un lissage des valeurs mises à jour. De préférence la constante de puissance (KHP) est calculée à partir de la puissance réelle développée à l'extrémité de l'outil de coupe (HPc) plutôt qu'à partir de la puissance électrique mesurée (HPm) fournie au moteur de broche 12. La puissance réelle développée à l'extrémité de l'outil de coupe (HPc) est de préférence déduite de la puissance globale (HPm) par soustraction des pertes résistives électriques estim4es (HPe), des SaIlNdu Ts do A = A (6 uopurnbR) sRwfdX is (sR) / (doA) (RaX) = A :anb alIa2 (dOA) aueviuoD aluulmou UOTSual aun ful al (A) UOTSUal ut attanbvT Q (Sa) aauuop OTPuumou assalçA aun Vnbsnç (wa>) uoTi -voi ap assalTA Uel ap aiTrgutl uoTiouol aun luamaaTiumTxoldde Isa OC (A) uoTsual eU 'nulluoa quenoD Q inalom un inod 'anbsTnd quamal -aaiTp aginsam exz p ujosaq sud esu (A) uoTsual uT sTuR (8 uoTienbZ) (99L)/(I8) (ZA / zIm) =adH (L UOTIunbR) A/MM = I : B Iuam.mOzUO 5z (9 uoTaunba) (ÂH) (9tL) = M : ed (mK) s22B ua (dH) agansam aoDuessTnd U1 ap uoTivuog ua gmTzdxa Isa (I) lueinou ao sioIe canuuoD sa I nalom np siuam -aInolua sal suep (A) uoTsual uT TS '(%da) UOTriuloa ap assaT UT ap ainsam UT ap la (ujH) aTuqoTS aDuussTnd ap eansam ut ap aTi oZ -and B (I) Iuevnouo ai Iuuufflalp ua snualqo azl 3uaAnad sluusTe; -sTus sBzulnsla sap nuTpuoa lueinoD ZL aqgqoaq ap inalom un inod 's9Tm '85ç uuanoO ap anaolnpsuuzl ao aIdmaxa aed 'zaimaiZdmu un aae anupiuou aet.uum ap gansam azl inad (I) inanom np apuem -moD ap jupinoz al *sanalom ap luuaziqeu; a and Tuanog ail ind çg aluiga us no aixamqo un oaAe agansea axla nad (aX) aDulsTs-a ul -xnuaaq ua slui sae aJaeauoa inod 9sTlTin Ise 99L ineiv ae -smqo ua Isa ea la saiQdm u na sa I 4sanadeA xneAaoq una sa adH to (ç uoilvpba) (9'>L) f (eU) (zI) = dH : inaom aeI sup UeiTnD 0I --aT (I) juvinoa np gaiea ne le inaqom np szuamalnoiua sap (aa) anbpsplagqOBeO atuu;-eo sgx eu B sauieuuoTîaodoad Iuos ZL atoozq ap inalom np sauamaînoaua sao suep anbTm'aiq uojludfssfp aud saegmosuoo sa-STiua no saTISTsgZ sanbTlpaal saolad sal (9 UOTqenba) eH AH - aaH - ElucT = JaH ç : almnuoj UT uOlas (edH) suoTleZgigzD3 sat iueanp autpom eut ap uoTivuoa ua saT-ud set sainoi suUp la aaQTd ut suep anbTiguTa a2Tiaug un agmosueil azuessTnd UT ap la '(AdH) quamallolg aud sanbTuezgm saliead IZ LL9úSSZ La vitesse nominale (BS) et la tension nominale (VOP) sont des caractéristiques constantes d'un type donné de moteur et sont habituellement imprimées sur la plaque du moteur par le fabricant. Les pertes mécaniques par frottement (HPv) sont essen- tiellement proportionnelles à la vitesse de rotation (RPM). Les pertes par frottement sont prédominantes à une vitesse de rotation constante (RPM). Des résultats satisfaisants sont obtenus en sup- posant que les pertes totales par frottement (HPv) sont une fonc- tion linéaire d'un coefficient prédéterminé de frottement (Ms) et d'une constante d'interception (Bi) selon: HPv = (Ms) (RPM) + Bi (Equation 10) Les constantes de frottement (Ms) et d'interception (Bi) sont de préférence déterminées pour chaque pièce en faisant tourner initialement la machine-outil avec l'outil de coupe désengagé, selon plusieurs vitesses de rotation constante (RPM). La perte par frottement (HPV) à chaque vitesse de rotation constante (RPM) est déterminée en soustrayant la perte électrique (HPe) de la puissance globale mesurée (HPm)* Un calcul selon la formule habituelle statistique des moindres carrés peut être utilisa pour calculer les constantes (Ms) et (Bi) à partir des différentes données de vitesse de rotation (RPM) et des pertes associées par frottement (HPv). Une estimation plus précise des pertes par frottement (HPv) pourrait être obtenue en supposant que les pertes par frottement mesurées (HPV) sont une fonction polyno- miale quadratique ou de degré supérieur de la vitesse de rotation (RPM). Les variations dans la puissance globale mesurée (HPm) dues aux accélérations sont très importantes puisqu'elles peuvent produire des modifications de la constante de puissance (KHP) de même amplitude que les changements provoqués par une usure impor- tante d'outil ou une cassure d'outil. La puissance nette requise pour les accélérations est proportionnelle au couple et à la vitesse de rotation (RPM), mais le couple (T) est lui-même propor- tionnel à un moment d'inertie constant (J), et à la dérivée de la vitesse de rotation (dRPM/dt) conformément à: T = (J) (dRPM/dt) (Equation 10) HPa = (J) (RPM) (dRPM/dt) / 63 000 Le facteur de conversion d'unités 63 000 est utilisé pour conver- tir les unités britanniques dans les équations ci-dessus. Pour un tour tel que le centre de tournage vertical 10 représenté sur la figure 1, le moment d'inertie est déterminé de préférence pour chaque pièce par une procédure initiale dans laquelle la machine-outil est accélérée et décélérée avec l'outil de coupe désengagé. La puissance nécessité pour l'accélération (HPa) est calculée à partir de la puissance globale mesurée (HPm) lorsque la vitesse de rotation (RPM) change: HPa = HPm - HPe - HPv - (Equation 11) Ainsi le moment d'inertie (J) est calculé par: J = (HPa) (63 000) (RPM) (dRPM/dt) (Equation 12) Pendant une procédure initiale, les constantes (Ms) et (Bi) représentant les pertes par frottement (Hv) sont déterminées de préférence lors d'une étape initiale d'accélération du moteur de broche, puis le moment d'inertie J est calculé pendant une décélération continue du moteur de broche. En alternative, pour un moteur de broche à courant continu, le moment d'inertie (J) est rapidement calculé pendant une accélération successive en comman- dant le moteur A courant continu par un palier large de commande de vitesse (RPMc). Le moteur à courant continu de broche répond automatiquement en accélérant de manière continue à un taux constant, au moins aussi longtemps que la vitesse de rotation (RPM) est inférieure à la vitesse de base (BS) du moteur à courant continu de broche. Cette technique utilise le fait qu'un moteur à courant continu, tel qu'habituellement utilisé dans les machines- outils, présente un couple maximum constant lorsqu'il fonctionne en deçà de sa vitesse de base (BS). La valeur finale requise pour calculer la constante de puissance (KHPc) est la profondeur de passe (DOC). La profondeur de passe est définie comme la dimension de l'enlèvement de matière normale à la fois à la direction d'avance de l'outil dans la pièce et à la direction de la surface de pièce par rapport à l'outil (SFM). En conséquence, le produit (DOC) (IPR) (SFM) (12) est le taux volumique d'enlèvement de matière sur la pièce en pouces cube par minute lorsque (DOC) est en pouces, (IPR) est en pouces par tour et (SFM) est en pieds carrés par minute. Pour simplifier les calculs, on suppose que la profon- deur de passe (DOC) varie linéairement au cours d'un enlèvement de matière. La figure 4 montre une opération de tournage externe pour une pièce 50 montée sur la table 11 (non représentée) par des machoires 51 et 52, l'usinage étant effectué par un outil 53. La profondeur de passe (DOC) est la dimension d'enlèvement de matière dans la direction radiale ou X, et l'outil 53 est entraîné à la vitesse (IPR) dans la direction négative Z. L'enlèvement de matière ou plus précisément le trajet programmé d'usinage 54 se situe entre un point initial (G) et un point final (H). Le long de cette portion de trajet d'usinage 54, qui est programmé comme une mouvement unique d'usinage, la profon- deur de passe est supposée être une fonction linéaire satisfaisant à: DOC(x,z) = (DOCh - DOCg) (DIST/LCUT) + DOCg (Equation 13) o: LCUT = [(Xg Xh)2 + (Zg - Zh)2]1/2 DIST = [(Xg - X)2 + (Zg - Z)2]1/2 et o (DOCh) est la profondeur de coupe programmée à la fin de l'opération d'alésage, (DOCg) est la profondeur au début de l'opération d'alésage, (Xg, Zg) sont les coordonnées du point ini- tial (G) pour l'opération d'alésage, et (Xh, Zh) sont les coordonnées du point final (H) de l'opération d'alésage. On a également représenté sur ia figure 4 les distances de début (B) et de fin (E) qui peuvent être programmées pour tout mouvement d'usinage pour empêcher l'apparition de signaux de com- mande pour outil usé ou outil brisé avant que l'outil 53 n'entre en contact avec la pièce 50, ou juste avant que l'outil ne se désengage de la pièce, respectivement. Pour simplifier la program- mation de pièce, ces distances (B), (E) sont repérées par rapport aux points respectifs initiaux et finaux de leurs actions de coupe respectives, comme le représente la figure 4. En variante, on pourrait détecter l'engagement et le désengagement réel de l'outil sur la pièce. L'engagement de l'outil sur la pièce peut être détecté en surveillant la constante de puissance (KHP) sans interférence ou conflit avec la surveillance de la constante de puissance pour l'usure d'outil ou le bris d'outil. Dans cette variante, lorsqu'une distance de début (B) est programmée pour un enlèvement de matière, les signaux de commande pour usure d'outil ou rupture d'outil sont inhibés jusqu'à ce que le contact entre l'outil et la pièce soit détecté par le calcul de la constante de puissance (KHPc) qui dépasse alors la limite inférieure de rupture (L). Les signaux de commande sont ensuite inhibés pendant la distance initiale (B) pour éviter la commande lorsque la surface de pièce est rugueuse ou décentrée, ce qui pourrait produire des fluctuations dans la constante de puissance calculée au-dessus et en dessous de la limite inférieure de la rupture. La figure 5 montre un diagramme schématique des signaux produits par le dispositif préféré de surveillance d'outil utili- sant la présente invention. On peut utiliser n'importe quel nombre de capteurs, généralement désignés par 60, pour surveiller la dégradation de l'outil. La mesure de la puissance globale fournie au moteur de broche a déjà été discutée, mesure par laquelle la puissance de coupe (HPc) et la constante de puissance (KHP) peuvent être obtenues par les circuits de surveillance" 61. D'autres capteurs et signaux peuvent être surveillées, par exemple le temps pendant lequel l'outil de coupe est en fonctionnement, la température de l'outil détectée par exemple par un capteur infrarouge; l'analyse des vibrations, détectées par exemple par un accéléromètre ou un capteur acoustique; ou une mesure intégr6e dans le processus pour la mesure de dimension de l'usure de l'outil. Comme cela a été discuté cidessus en relation avec le calcul de la constante de puissance (KHPc) et du rapport de puissance unitaire (UPR), la surveillance des signaux de capteurs peut prendre en compte des paramètres connus 62 de pièce et d'outil de coupe et la position relative 63 entre l'outil de coupe et la pièce. Dans l'exemple ci-dessus, le paramètre connu de pièce et d'outil de coupe était la constante de puissance initiale (KHPC) ou une constante de puissance programmée (KHPp). Les signaux de surveillance produits par les circuits de surveillance 61 sont transmis à des détecteurs de seuils respec- tifs généralement désignés par 64 pour générer des signaux limites qui sont traités par des circuits de décision généralement désignés par 65 qui génèrent des signaux de commande respectifs pour des actions respectives de commande généralement désignées par 66. Les circuits de décision répondent selon un ordre de priorité aux signaux de limite et les signaux de commande peuvent ensuite être sélectionnés ou utilisés en réponse aux paramètres connus 62 de pièce et d'outil de coupe. Comme cela a été décrit ci-dessus, certains signaux particuliers parmi les signaux de com- mande peuvent être produits par un comparateur 67 comparant la position relative outil de coupe/pièce 63 telle qu'indiquée, par exemple, par la distance d'une opération programmée d'enlèvement de matière et des distances 68 programmées de début et de fin. Les circuits de décision 65 peuvent introduire une temporisation entre la détection d'une condition de limite et la génération d'une action en réponse. En particulier, un signal de commande pour changer un outil usé ou un insert usé peut être généré en réponse à un signal de limite d'usure d'outil seulement après que l'opération d'enlèvement de matière a été achevée et que l'on a exécuté dans le programme de pièce une rapide commande de traversée ou "coupe dans l'air". De plus, les circuits de décision peuvent générer un signal de commande pour une action particulière seulement lorsque de l'apparition de plusieurs signaux limites. Par exemple, une action pourrait être conditionnellement exécutée lorsque la force d'avance dépasse une force limite et lorsque la constante de puissance dépasse une limite respective. En outre, un signal de commande pourrait être spécifié par une expression con- ditionnelle, par exemple utilisant un calcul arithmétique booléen. Une action pourrait être commandée, par exemple, lorsque la force d'avance est au-delà d'une force limite ET que la puissance de coupe est au delà d'une limite OU que le niveau d'émission acoustique est au delà d'une limite ET que le temps pendant lequel la puissance de coupe a excédé un certain niveau est supérieur à un temps limite. Un procédé particulier pour programmer ces expressions conditionnelles pour des signaux de commande sélec- tionnés sera exposé ci-dessous. Les actions 66 peuvent comprendre un nombre quelconque de réponses tel que des messages d'erreurs, un "arrêt d'avance", un "arrêt principal", un "arrêt d'urgence", des "mouvements secon- daires de retrait", un "retrait pendant la coupe", un "retrait en fin de bloc", un "retrait à la prochaine traversée rapide", une "reprise d'avance", un "changement d'outil par un outil équi- valent", un "changement d'insert", un "chargement d'un nouvel outil", un "remplacement de pièce", et un "chargement d'une nouvelle pièce". Des exemples spécifiques de ces réponses seront décrits plus loin. Il faut noter que les circuits de traitement de signal de la figure 5 sont réalisés en programmant l'ordinateur numérique de commande 33 (figure 1). Pour chaque signal traité par ces cir- cuits il y a un paramètre correspondant ou variable de programme dans le programme de commande pour l'ordinateur numérique de commande. Dans une large mesure, les fonctions de traitement de signal sont définies par l'utilisateur ou programmables, par exemple, en incluant des fonctions prédéterminées ou codes dans le programme de pièce. Les fonctions ou codes, par exemple, sont de préférence conformes aux standards EIA RS-274D et RS-447 établis par Electronic Industries Association, 2001 Eye Street, Northwest, Washington, D.C. 20006. Les codes prédéfinis et fonctions compren- nent de préférence à la fois des données de "type 1" et de "type 2" telles que définies dans le standard RS-447. Les données de type 1 comprennent les données classiques de programmation de machine conformes aux standards RS-274-D et RS-358-A. Les données de type 2 comprennent des données d'entrée ou message d'opérateur conformes au standard RS-447 et au standard USAS X3.4-1968. Dans un programme de pièce conforme à ces conventions standards, les données de type 2 ou instructions sont mises entre parenthèses pour les distinguer des données ou instructions de type 1. Selon un mode de réalisation donné à titre d'exemple, on a trouvé utile de prédéfinir un certain nombre de données ou instructions de type 1. Le code M70 est un code non modal prévu pour inhiber la mesure des limites d'usure d'outil et de cassure d'outil. Comme cela est bien connu, un code "non modal" est actif pour le bloc particulier de programme machine dans lequel il est inclus, à la différence d'une commande modale qui s'applique dans le bloc de programmation qui inclut la commande et dans tous les blocs suivants qui n'incluent pas un code correspondant non modal jusqu'au premier bloc incluant un code correspondant modal. Le code modal M71 sert à mettre en fonction la mesure des limites en réponse à la constante de puissance, excepté lorsqu'il est inhibé par un code G00 ou fonction de positionnement rapide jusqu'à être à nouveau débloqué par un code G01 ou code de positionnement en rupture d'avance. Un code modal M72 déclenche le calcul de la constante de puissance (KHPC) et du taux de puissance unitaire (UPR), mais interdit les signaux de limites. I1 est également souhaitable de prévoir un certain nombre de codes de type 2 classés comme paramètres dans une fonc- tion de définition de type 2 appelée "TDM" ayant le format suivant: (TDM, [Type 2 data code list]) Les codes de type 2 sont identifiés par une lettre alphabétique désignant un paramètre programmable par l'utilisateur suivie d'une valeur pour le paramètre sélectionné par le program- meur de pièce. Dans les descriptions qui suivent des codes de type 2, la lettre alphabétique est suivie de deux nombres séparés par un point décimal. Le nombre à gauche du point décimal désigne le nombre maximum de chiffres pour la valeur sélectionnée pour le paramètre du code ou la fonction identifiée par la lettre alpha- bétique. Le nombre à droite du point décimal désigne le nombre maximum possible de chiffres à droite du point décimal pour spécifier ce paramètre. Pour programmer la distance de début (B) et la distance de fin (E) comme le représente la figure 4, des codes respectifs de type 2 B4.4 et E4.4 sont prévus pour sélectionner de façon modale la valeur du trajet du vecteur incrémentiel de déplacement des axes avant que le circuit de surveillance de dégradation d'outil soit déclenché et la distance du trajet incrémentiel depuis la fin du trajet pendant lequel le circuit de détection de dégradation d'outil a été inhibe. De préférence, lorsque se produisent des changements du taux d'avance consécutifs, par exemple des changements commandés par la commande G01, la distance de début spécifiée (B) s'applique seulement au premier de ces mouvements, et la distance de fin spécifiée (E) s'applique seulement au dernier de ces mouvements; à condition, toutefois, que le code de type 2 soit spécifié pour un mouvement particulier de taux d'avance, le code s'appliquera à ce mouvement quel que soit le mouvement qui précède ou qui suive. Pendant l'interprétation ou l'exécution du programme de pièce, par exemple, les codes modaux de type 2 B4.4 et E4.4 mettent a un des cases nmmoire respectives (qui sont de préférence initialement mises à zéro au début du programme de pièce). Lorsque le disposi- tif de surveillance de dégradation d'outil, comme cela sera décrit cidessous, recherche si les conditions limites doivent être mesurées pour un mouvement d'avance en cours, il obtient les valeurs enregistrées dans les cases-mémoire respectives; mais si le mouvement précédent était aussi un mouvement d'avance, qu'une distance de début n'était pas spécifiée dans le mouvement en cours, et qu'une distance de fin n'était pas spécifiée dans le précédent mouvement, la valeur obtenue pour la distance de début (B) est mise à zéro; de manière similaire si le mouvement ultérieur est aussi un mouvement d'avance, qu'une distance de fin n'était pas spécifiée dans le mouvement en cours, et qu'une distance de début n'est pas spécifiée dans le mouvement ultérieur, la valeur obtenue pour la distance de fin est mise à zéro. En uti- lisant cette procédure, le programmeur de pièce n'a pas besoin de spécifier de manière explicite une distance de début et de fin pour chaque coupe, et donc peut traiter des cas particuliers de cette manière qui est naturelle et découle de manière apparente du rograme de pièce. Pour spécifier la profondeur de coupe aux points de début et de fin de coupe, les codes de type 2 A1.4 et Z1.4, respectivement, fixent les valeurs correspondant à (DOCg) et (DOCh), respectivement, d'une façon modale. Pour deux commandes consécutives de taux d'avance, toutefois, la profondeur de début de coupe est rendue égale à la profondeur précédente de fin de coupe et, si la fin de coupe n'est pas programmée, elle est rendue égale à la profondeur de début de coupe. Pour fixer la constante programmée de puissance (KHPp) d'une façon modale, on choisit un code de type 2 K2.2. En outre, si ce code n'est pas utilisé, la constante programmée de puissance (KHPp) prend la valeur de la constante de puissance (KHPc) qui est calculée au cours du premier mouvement d'avance après la première distance de début (B) pour ce mouvement. Des codes distincts de type 2 sont prévus pour fixer la valeur des limites d'usure d'outil et des limites de rupture haute et basse, comme le représente la figure 2C. Le code W3.2 fixe la valeur de la limite d'usure du taux de puissance unitaire (W%) de façon modale. Lorsque cette valeur est fixée, si le taux moyen de puissance unitaire (UPR%) est supérieur à la limite (W%), on exécute alors un sous-programme d'interruption sur limite d'usure définie par l'utilisateur, comme cela sera décrit ci-dessous. Le code L3.2 fixe la limite (L%) de rupture basse et de taux de puissance unitaire de façon maodale. Lorsqu'il est utilisé, si le rapport de puissance unitaire instantanée (UPR%) est inférieur à la limite (L%), on exécute un sous-programme d'interruption sur limite de rupture définie par l'utilisateur, comme cela sera décrit ci-dessous. De manière similaire, un code U3.2 fixe de manière modale la limite (U%) de rupture haute et de rapport de puissance unitaire. Lorsque ce code est utilisé, si le rapport de puissance unitaire instantané (UPR%) est supérieur à la limite (U%), alors le sous-programme d'interruption sur limite de rupture est exécuté. Les sous-programmes d'interruption définis par l'utilisateur sont de préférence écrits dans le standard EIA RS- 447 et RS-274-D, de la même façon que le programme de pièce lui- même. Pour faciliter la programmation de tels sous-programmes, on fournit de préférence à l'utilisateur un certain nombre de sous- programmes internes prédéfinis ou de fonctions pour réaliser des actions spécifiques ou des étapes permettant de corriger l'usure excessive d'outil ou les conditions de rupture d'outil. Une fonc- tion, par exemple, pourrait être définie pour afficher un message d'erreur défini par le programmeur sur l'écran 39 du poste d'opérateur 38 (voir figure 1). Une fonction arrêt d'avance" devrait être définie pour arrêter tout mouvement axial. De manière similaire, une fonction "arrêt forcé" devrait être définie pour arrêter tout mouvement axial et également tout mouvement de broche ou de table. Une fonction "retrait" devrait être définie pour retirer en sécurité ou désengager l'outil de la pièce le long du trajet spécifié par l'utilisateur de mouvements incrémentiels (X, Z). Il faut mettre en mémoire les coordonnées des points ini- tiaux de tous ces mouvements, à partir du "point de départ" auquel l'outil est désengagé de la pièce. Ces coordonnées sauvegardées sont utilisées pour refaire à l'inverse le trajet initial de l'outil. Comme le représente la figure 6, le trajet de retour, généralement désigné par 60, est une réponse à la coupure ou au blocage particulier dans le programme de pièce qui est interrompu en réponse au signal de commande. De manière spécifique, la figure 6 montre l'usinage interne d'une pièce 61 avec un outil spécifique 62 adapté à l'usinage interne. Dans cet exemple particulier, l'outil coupant n'est pas retiré de la pièce dans le sens normal; au contraire, un retrait en sécurité requiert que l'outil coupant soit déplacé en direction du centre de la pièce avant que l'outil coupant 62 puisse être éloigné de la pièce dans la direction posi- tive Z de l'axe de broche. Selon un aspect important de la présente invention, des fonctions spécifiques sont prévues pour déterminer en coordonnées polaires relatives un vecteur de retrait initial et un vecteur d'entrée, comme le représente la figure 7 pour une opération de tournage externe sur une pièce 65. L'outil (non représenté) est déplacé le long d'un vecteur d'avance (F) qui suit le chemin d'usinage défini par le programme de pièce. Sur une interruption du chemin d'usinage au point de départ, l'outil coupant est retiré de manière incrémentielle le long d'un vecteur de retrait (Vr) spécifié par un angle (er) correspondant au chemin d'usinage. En particulier, l'angle de retrait (er) est un angle aigu par rapport à l'opposé de la direction d'avance définie par le vecteur d'avance (F). En définissant le vecteur de retrait relatif au tra- jet d'usinage d'une façon modale, l'angle relatif (er) est auto- matiquement ajusté sur chaque segment d'un chemin linéaire de pièce. De manière similaire, pour un chemin incurvé tel qu'un che- min produit par une interpolation circulaire, le vecteur de retrait est ajusté de manière continue durant la coupe ou le bloc de programme de pièce. Pendant le retrait le long du vecteur de retrait, l'outil de coupe est déplacé depuis le point de départ jusqu'à un point de retrait primaire, à partir duquel l'outil, est ensuite retiré pour le changement d'insert ou le changement d'outil. Selon un autre aspect important de la présente inven- tion, lors du retour vers la pièce, l'outil de coupe se déplace jusqu'à un point d'approche définissant un vecteur d'entrée faisant un angle d'incidence aigu par rapport à la pièce. L'outil de coupe est réengagé par déplacement depuis le point d'approche le long du vecteur d'entrée jusqu'au point de départ sans effectuer de réusinage de la pièce. Cette procédure permet de minimiser le changement de l'état de surface de la pièce 65 dans la région du point de départ. En outre, le vecteur d'entrée, (Ve) est défini par un angle (Me) fonction de la direction du che- min d'usinage. Comme représenté, l'angle d'entrée (Oe) est défini en fonction de l'opposé de la direction du vecteur d'avance (F). Puisque l'angle d'entrée (Me) est un angle d'incidence aigu, le fait de définir le vecteur d'entrée par rapport au chemin d'usi- nage est particulièrement avantageux pour les coupes incurvées dans lesquelles la direction du chemin d'usinage au cours de la coupe peut changer de manière importante ou même excéder la valeur de l'angle d'entrée (ee). On notera que l'angle de retrait (Or) et l'angle d'en- trée (8e) sont tous deux des quantit's arithmétiques, avec un signe défini de manière standard, un angle positif indiquant que le vecteur respectif de retrait ou d'approche est angulairement tourné dans le sens trigonométrique depuis la direction inverse du vecteur d'avance (F). Il est important de noter que dans quelques cas le signe des angles doit être négatif plut8t que positif pour éviter la collision entre la pièce et l'outil. Le signe de l'angle change, par exemple, selon que l'usinage se produit dans la direc- tion positive ou négative de X ou dans la direction positive ou négative de Z, et également selon que l'on réalise une opération d'usinage externe ou interne. La figure 8 illustre un procédé préféré pour retirer l'outil de la pièce jusqu'à un point de changement d'outil et ensuite réengager l'outil sur la pièce. Lorsque se produit un signal d'usure d'outil ou de rupture d'outil, le programme de pièce est interrompu et l'ordinateur numérique de contr8le calcule le vecteur de retrait (Vr) et déplace l'outil jusqu'au point de retrait primaire, écarté de la pièce 65. Ensuite, l'outil est déplacé directement jusqu'à un point secondaire de retrait. Depuis le point secondaire de retrait, le point de changement d'outil peut être atteint par un seul mouvement. Le chemin de retour depuis le point de retrait primaire jusqu'au point de changement d'outil est stocké en mémoire. Au point de changement d'outil, on change l'outil ou l'organe de coupe. En parcourant à l'inverse le chemin de retrait qui a été enregistré, l'outil chang6 est ramené tout d'abord au point secondaire de retrait, puis au point pri- maire de retrait. Lorsque le point primaire de retrait est atteint, le point d'approche est calculé en soustrayant les com- posants du vecteur d'entrée (Ve) des coordonnées du point de départ. En utilisant une opération de mouvement direct (coordon- nées absolues), on déplace l'outil jusqu'aux coordonnées du point d'approche, puis on le déplace le long du vecteur d'entrée jusqu'au point de départ. Comme le représente la figure 9, un retrait en sécurité d'un outil pendant une opération d'usinage interne peut requérir des mouvements de retrait additionnels. En réponse à un signal de commande, l'outil est retiré jusqu'a un point de retrait primaire près du centre de la pièce 66. Ensuite l'outil est déplacé dans la direction positive Z ou axe de broche jusqu'à un point de retrait tertiaire. Depuis le point de retrait tertiaire, on atteint le point de retrait secondaire par un mouvement direct. Après un déplacement jusqu'au point de changement d'outil et après le déplacement d'outil, le trajet de retrait est parcouru à l'envers jusqu'au point de retrait primaire. Dans l'exemple particulier de la figure 9, il arrive que le point d'approche est resté situé sur le trajet entre le point de retrait primaire et le point de retrait tertiaire. Pour cela, lors du retour jusqu'au point de retrait primaire, le mouvement de l'outil est inversé pour atteindre le point d'approche. Le réengegement de l'outil entre l'outil et la pièce 66 est obtenu par un mouvement direct selon le vecteur d'entrée (Ve) jusqu'au point de départ- Comme décrit ci-dessus, le programmeur introduit des fonctions de définition dans le programme de pièce pour fixer les valeurs des limites de mesure et pour 6tablir les divers signaux de commande. Egalement le programmeur écrit les sous-programmes d'interruption pour réaliser les actions choisies en réponse aux actions des signaux de commande. La réalisation effective de ces fonctions de définition et l'exécution des procédures de retrait et d'entrée illustrées sur les figures 7, 8 et 9 nécessitent une modification du programme ae commande de base exécuté par l'ordinateur numérique de contr8le pendant d'interprétation ou l'exécution du programme de pièce. La figure 10 illustre un organigramme d'une procédure habituelle d'interruption généralement désignée sous la référence 70. Cette procédure pourrait être utilisée en réponse à un signal périodique d'interruption 70a, par exemple, généré par une bascule d'interruption câblée, ou en réponse à un signal externe de com- mande 70b provenant d'un capteur indépendant tel qu'un des cap- teurs 60 de la figure 5. La procédure est exécutée en réponse à une interruption périodique, par exemple, chaque fois qu'une nouvelle valeur de la constante de puissance (KHP) est calculée comme décrit ci-dessus. Au cours d'une première étape 71, on teste une variable logique indicateur, commutateur ou bascule pour déterminer si la fonction de retrait d'outil est permise. Sinon, on saute l'évaluation des conditions limites pour produire des signaux de commande. On a mentionné que la fonction de retrait d'outil peut être interdite pendant une distance de début (B) d'usinage pour s'assurer que l'outil est entièrement engagé dans la pièce, avant de permettre certains signaux de commande, d'usure d'outil ou de cassure. La distance parcourue lors de la coupe (DIST), obtenue par l'équation 13, est comparée à la distance de début (B) lue dans la mémoirecomme décrit ci-dessus, et de manière similaire la distance depuis la fin de coupe (LCUT-DIST) est comparée à la distance finale (E) pour déterminer si les con- ditions de limite pour bris d'outil ou usure d'outil peuvent être permises ou inhibées. Le retrait d'outil est également interdit lorsque l'outil a déjà été retiré de la pièce le long du vecteur de retrait (Vr). Ceci est nécessaire pour éviter les interruptions multiples du programme de.pièce pendant le retrait d'outil. On peut également vouloir interdire le retrait d'outil pendant un temps très court après un réengagement le long du vecteur d'entrée (Ve), pour permettre le rétablissement des conditions d'équilibre de l'usinage avant de permettre à nouveau le retrait. Pour cela, à l'étape 71, une temporisation ou un compteur pourrait être mis à zéro pour interdire le retrait d'outil, fixé à un nombre prédéterminé N pour permettre le retrait d'outil et fixé à un nombre plus grand que zéro mais plus petit que N pour autoriser le retrait d'outil seulement après un nombre d'interruptions périodiques prédéterminées. Au cours de l'étape 71, par exemple, la valeur de ce compteur est comparée à zéro et le retrait d'outil est immédiatement sauté si la valeur est égale à zéro. Autrement, la valeur du compteur est incrémentée et ensuite comparée au nombre prédéterminé N. Si la valeur du compteur excède alors la valeur N, la valeur du compteur est fixée à N et l'exécution con- tinue par la phase 72. En d'autres termes, en fixant la valeur du compteur à une valeur entre 1 et N, le retrait d'outil sera autorisé ultérieurement après un nombre choisi d'interruptions périodiques. Au cours de l'étape suivante 72 la procédure de commande numérique recherche une certaine zone de mémoire pour déterminer si des conditions limites ont été définies. Comme mentionné plus 3671 haut, des commandes spécifiques de type 2 peuvent être insérées dans le programme de pièce pour définir de telles limites. Lorsqu'un sous-programme de définition est trouvé, la limite est identifiée ou repérée en mémoire. Une façon particulièrement flexible de fixer les limites consiste à définir une table de paramètres de commande comme le représente la figure 11. Lorsqu'une limite est définie, un nom pour cette limite est inséré dans l'entrée suivante de la colonne limite de la table. En outre, la position du nom de la limite identifie sa priorité. Au cours de l'étape 72, par exemple, l'ordinateur numérique de commande recherche s'il existe dans la colonne limite de la table de paramètres de commande d'outil un nom qui n'est pas identique à "NIL" qui signifie un effacement de la table, ou "EOF" qui signifie la fin d'un fichier ou dans ce cas la fin de la table de paramètres de commande d'outil. La fonction de surveillance d'outil est sautée si aucune condition limite n'a été définie. A l'inverse, au cours de la phase 73 de la figure 10, les conditions limites sont testées. Les conditions limites pourraient être définies en terme de fonction booléenne associant des paramètres spécifiés aux limites spécifiées. Comme le montre la table de paramètres de surveillance d'outil de la figure 11, une limite de puissance maximum à haute priorité appelée "HPMAX" est définie par la condition booléenne "AVHP.GT.75" qui précise que la limite HPMAX est atteinte lorsque la puissance moyenne dépasse la valeur de 75. Une telle condition reliant un paramètre à une valeur par un opérateur relationnel est le terme le plus simple possible dans une expression booléenne comprenant des paramètres non booléens. De tels termes peuvent être liés à d'autres termes ou des paramètres booléens par les opérateurs booléens tels que "NON", "ET", et "OU". Pour définir de manière explicite les limites, on peut définir les fonctions suivantes de type 2 à insérer dans le programme de pièce: (DEF, NAME_ OF LIMIT, CONDITION) (DEL, NAME_ OFLIMIT) o la fonction DEF insère le nom de la limite et sa condition B3671 associée dans la table de paramètres de surveillance d'outil de la figure 11 et dans lequel la fonction DEL efface la limite et la condition respective de la table. Ces fonctions de définition pourraient être utiles pour des besoins d'expérimentation et, une fois qu'une certaine limite a été déterminée comme étant particulièrement utile, une telle limite pourrait être définie de manière interne. Lorsque la limite est définie de manière interne, le programmeur peut supposer que la limite est placée dans la table. Puisque les conditions de limites sont rangées dans la table de paramètres de surveillance d'outil par ordre de priorité, l'étape 73 de la figure 10 au cours de laquelle on évalue les con- ditions de limite comprend successivement l'interprétation des conditions dans la table de surveillance d'outil jusqu'à trouver une condition vraie telle que spécifiée dans l'étape 74 de la figure 10. Si aucune des conditions de limite n'est réalisée, alors le reste de la procédure de surveillance d'outil de l'interruption périodique est saute. Par ailleurs, au cours de l'étape 75, le prograsmme de commande numérique recherche la table de paramètres de surveillance d'outil pour déterminer si un sous- programme d'interruption est prévu pour la condition limite vraie dont la priorité est la plus haute. La table de paramètres de surveillance d'outil de la figure 11 est établie pour stocker des paramètres pour trois types de sous-programmes pouvant correspondre à une limite particulière. Puisque la première chose qui peut se produire lors de la détection d'une condition limite vraie est le retrait loin de la pièce, une colonne particulière de la table de paramètres de sur- veillance d'outil est prévue à part pour stocker des paramètres ENR qui spécifient un vecteur de retrait (Vr) et ce qu'il faut faire lorsque le point de retrait primaire est atteint. Selon un mode de réalisation spécifique correspondant à la table de paramètres de surveillance d'outil de la figure 11, les paramètres ENR sont chargés dans la table de paramètres lors de l'exécution du sous-programme suivant de type 2 dans le programme de pièce: (ENR, NAME OF LIHIT, R5.3 T3.3 Pn) Le code R5.3 fixe la longueur ou amplitude du vecteur de retrait, le code T3.3 fixe l'angle de retrait (Or), et le code Pn fixe l'action à entreprendre une fois que l'outil est retiré jusqu'au point de retrait primaire. Au lieu de spécifier les coordonnées polaires relatives du vecteur de retrait, les codes X5.3 et Z5.3 pourraient être utilisés pour établir les composantes absolues Xr et Zr du vecteur de retrait comme le représente la figure 7. (Pour des machines-outils ayant plus de deux axes, un code optionnel tel que W5.3 peut préciser une composante du vec- teur de retrait d'un troisième axe perpendiculaire au plan d'usinage présentement défini.) L'action de P0 ou P non programmée fixe l'action de défaut, qui est utn arrêt d'avance. Le code Pl indique un arrêt forcé qui doit se produire après le retrait. Le code P2 indique généralement qu'il faut exécuter un sous-programme et/ou une commande d'entrée comme cela sera plus précisément décrit ci-dessous dans l'annexe 2. Une fois que l'on a défini un sous-programme à exécuter, le nom du sousprogramme autorisé apparatt dans la colonne ENS de la table de paramètres de surveillance d'outil. De manière simi- laire, si une commande d'entrée autorisée a été définie, alors l'entrée est spécifiée dans la colonne ENE de la table. Le sous-programme suivant de type 2 peut être inclus dans le programme de pièce' pour autoriser un sous-programme: (ENS, NAME OF LIMIT, NAME OF SUBROUTINE; PE, PE,....) o PE représente toute expression valable de paramètres qui peut être optionnellement introduite pour le sous-programme d'inter- ruption défini. De manière similaire, le sous-programme suivant de type 2 permet au programmeur de pièce de définir une action d'entrée: (ENE, NAMEOFLIMIT, R5.3 T3.3 Pn) Le code R5.3 fixe la longueur ou amplitude du vecteur d'entrée, le code T3.3 représente l'angle relatif (ee) du vecteur d'entrée, et le code Pn représente l'action à entreprendre une fois que l'outil a été déplacé jusqu'au point d'approche. (Pour des machinesoutils ayant plus de deux axes, un code optionnel tel que W5.3 peut spécifier une composante du vecteur de retrait le long d'un troisième axe perpendiculaire au plan d'usinage présentement défini.) Il faut noter que la première étape à entreprendre au cours de la procédure de retour est de déplacer l'outil depuis son emplacement en cours, qui est de préférence le point de retrait primaire, directement jusqu'au point d'approche de façon que l'outil puisse ensuite être déplacé le long du vec- teur d'entrée sélectionné et programmé jusqu'au point de départ. Pour effacer les paramètres dans la colonne ENR, ENS ou ENE de la table de paramètres de surveillance d'outil pour une limite sélectionnée, les codes suivants de type 2 peuvent être introduits dans le programme de pièce: (DSR, NAME_ OFLIMIT) (DSS, NAhE_ OF LIMIT) (DSE, NAME OF LIMI.T) o DSR détruit l'"autorisation de retrait" pour la limite spécifiée, DSS détruit l'"autorisation de sous-programme" pour la limite spécifiée, et DSE détruit l'"autorisation d'entrée" pour la limite particulière. Une grande variété d'actions peut être choisie par le programmeur de pièce parmi un choix judicieux de paramètres ENR, ENS et ENE. Ces actions qui se produisent pour les combinaisons possibles sont présentées et résumées dans l'annexe II. Pour revenir à l'organigramme d'interruption périodique de la figure 10, si dans l'étape 75 on a défini un sous- programme de saut logique pour la condition limite de priorité la plus haute, alors au cours de l'étape 76 une interruption de programme du programme de pièce est exécutée pour produire un saut logique vers le sous-programme de priorité supérieure ayant une condition limite vraie. Comme cela a été décrit plus haut, le retrait d'outil a une première priorité, le sous-programme défini par l'utilisateur a une seconde priorité, et le retour d'outil a une troisième priorité. Il faut noter que, dans l'étape 76, l'exécution par l'ordinateur de commande numérique ne réalise pas un saut directement vers l'un quelconque de ces trois sous- programmes. Au contraire, certains pointeurs pointant vers l'adresse courante dans le programme de pièce sont stockés en Ou3671 mémoire et remplacés par des pointeurs pointant sur la première étape dans le sousprogramme de plus haute priorité, ou, pour l'exemple spécifique représenté sur la table de la figure 11 et décrit ci-dessous, pointant sur la première étape dans le sous- programme ENR (par exemple l'étape 81 dans la figure 12 comme décrit ci-dessous). En plus du stockage de ces pointeurs, plu- sieurs paramètres utilisés par le programme de pièce sont également stockés pour être disponibles pour le rebouclage du programme de pièce. Ces paramètres comprennent les coordonnées du point final de l'action de coupe interrompue, le point de départ, la distance depuis le point de départ jusqu'au point de fin de coupe pour chaque axe (appelée la distance du vecteur à l'axe), le rapport entre la distance du vecteur à l'axe et la longueur totale du trajet, toutes les données modales incluant les codes standards M et G, les avances et les vitesses, la vitesse limite pour le présent bloc, et on sauvegarde également le rayon du cercle pour l'interpolation circulaire. Si, à l'étape 75, on n'a pas défini de sous-programme de saut logique pour la condition limite de haute priorité qui est réalisée, alors au cours de l'étape 77 une interruption de programme du programme de pièce intervient pour bloquer l'avance et revenir au programme de pièce sur commande manuelle de l'opérateur. La dernière étape 78 de la procédure d'interruption périodique 70 représentée sur la figure 10 consiste à empêcher les retraits multiples d'outils. Le drapeau logique, commutateur ou bascule testé au cours de l'étape 71 est remis à zéro pour éviter les interruptions de programme successives par les étapes 76 ou 77 dans la procédure d'interruption. La figure 12 représente un organigramme généralement désigné par la référence 80 pour un sous-programme interne de retrait d'outil. Le sousprogramme interne de retrait d'outil est un sous-programme de haut niveau inséré dans le programme de com- * mande de l'ordinateur numérique de commande, et il est exécuté à la place du programme de pièce après qu'une interruption de programme a été commandée ou exécutée dans l'étape 76 dans la 3671 procédure d'interruption périodique 70 de la figure 10. Dans la première étape 81 du sous-programme de retrait d'outil, l'ordina- teur de commande numérique recherche l'entrée dans la colonne ENR de la table de paramètres de surveillance d'outil pour la limite correspondante qui a causé l'interruption du programme de pièce. Si aucun vecteur de retrait n'a été spécifié dans cette entrée particulière de la table, l'ordinateur recherche plus haut dans la colonne ENR la spécification d'un vecteur de retrait expressément défini pour une autre limite. Si un vecteur de retrait est défini sous forme polaire, alors, dans l'étape 82, la forme polaire rela- tive à la direction du trajet d'usinage est convertie en coordon- nées rectangulaires absolues en appelant le sous-programme représenté sur la figure 15. Ensuite, dans l'étape 83, les coor- données du point de retrait primaire sont calculées en ajoutant les coordonnées du point de départ en cours aux composantes respectives du vecteur de retrait, et on appelle un sous-programme de mouvement direct pour déplacer rapidement l'outil jusqu'au point de retrait primaire. Ensuite, dans l'étape 84, l'ordinateur de commande numérique recherche à nouveau l'entrée dans la colonne ENR de la table de paramètres de surveillance d'outil pour la limite ccorespondante permettant de déterminer si une action est définie par un paramètre Pn. Dans la négative, on exécute alors une étape 85 d'arrêt d'avance de défaut. Sinon, dans l'étape 86, on exécute l'action spécifiée par le paramètre Pn en appelant son, sous-programme correspondant. Pour revenir quelque peu sur l'étape 81, si le vecteur de retrait n'est pas sous forme polaire, alors au cours de l'étape 87 les paramètres ENR sont recherchés pour déterminer si le vec- teur de retrait est en coordonnées rectangulaires. Dans l'affirma- tive, on saute à l'étape 83 pour retirer l'outil. Sinon, aucun vecteur de retrait n'a été correctement défini, de sorte que l'on affiche un message d'erreur au cours de l'étape 88, et un arrêt d'avance est exécuté au cours de l'étape 89. Le sous-programme correspondant appelé dans l'étape 86 est par exemple un sous-programme défini par l'utilisateur tel qu'un sous-programme de changement d'outil. On a représenté sur la S3671 figure 13 un exemple d'organigramme généralement désigné par la référence 90 d'un sousprogramme de changement d'outil. Dans la première étape 91 on sauvegarde en mémoire les coordonnées du point de retrait primaire. Puis à l'étape 92 on exécute une série de mouvements spécifiés par les paramètres (comprenant la désignation d'une vitesse rapide de mouvement tansversal) dans la liste de paramètres de sous-programme, et le point final de chaque mouvement est sauvegardé en mémoire. Ensuite dans l'étape 93 on exécute un mouvement direct jusqu'au point de changement d'outil. A l'étape 94, l'ordinateur numérique de commande rechercha ai un outil de remplacement est disponible, et, dans la négative, affiche un message d'erreur au cours de l'étape 95 jusqu'à ce qu'un outil de remplacement devienne disponible. Lorsque l'outil de remplacement est disponible, l'outil d'origine est remplacé dans l'étape 96. En d'autres termes, le changeur automatique d'outil est commandé pour exécuter un cycle d'opérations normales, dans lequel l'outil de remplacement est sens& être identique à l'outil d'origine. Alors au cours de l'étape 97 l'outil changé est déplacé jusqu'au point de retrait primaire par un mouvement inverse utilisant une série de mouve- ments directs jusqu'aux coordonnées sauvegardées en mémoire. Lorsque le point de retrait primaire est atteint, à l'étape 98, on appelle un sous-programme de réengagement d'outil. La figure 14 montre un organigramme généralement désigné désigné par la référence 100 du sous-programme de réengagement d'outil. Ce sousprogramme est un sous-programme de haut niveau inséré dans le programme de commande de l'ordinateur numérique de commande 33 de la figure 1. Au cours de la première étape 101 on recherche dans la colonne ENE de la table de paramètres de sur- veillance d'outil de la figure 11 pour obtenir les paramètres ENE pour la limite correspondante, et les paramètres sont testés pour déterminer si le vecteur d'entrée est en forme polaire. Dans l'affirmative, l'étape 102 du sous-programme représenté en figure est alors exécutée pour convertir les coordonnées polaires du vecteur d'entrée, correspondant à la direction du trajet d'usi- nage, en des coordonnées rectangulaires absolues. Ensuite au cours de l'étape 103 on calcule les coordonnées du point d'approche en ajoutant les coordonnées du point de départ en cours aux composan- tes respectives du vecteur d'entrée. Ainsi, un mouvement direct (en coordonnées absolues) peut être exécuté à l'étape 104 jusqu'au point de départ. Si le vecteur d'entrée n'est pas sous forme polaire, alors, au cours de l'étape 105, les paramètres ENE sont testés pour déterminer si le vecteur d'entrée est en coordonnée rec- tangulaire. Dans l'affirmative, on saute alors à l'exécution de l'étape 103. Sinon, le vecteur d'entrée n'est pas défini. On affiche un message d'erreur a l'étape 106 et on exécute un blocage d'avance à l'étape 107. La figure 15 représente un sous-programme généralement désigné par la référence 110 pour convertir les coordonnées polaires relatives d'un vecteur d'entrée ou de retrait en des com- posantes rectangulaires absolues. Au cours de la première étape 111, l'ordinateur numérique de commande détermine si le bloc interrompu du programme de pièce utilisait l'interpolation cir- culaire ou l'interpolation linéaire. La différence est importante parce que le vecteur d'avance F est stocké de manière interne dans un format spécial lorsque l'interpolation circulaire est utilisée. De manière spécifique, pour l'interpolation circuiaire, le vecteur d'avance est stocké de façon interne indirectement en tant que vecteur de rayon interne de l'opération de coupe en cours. Considérant momentanément la figure 16, on a représenté un diagramme illustrant comment on relie le vecteur d'avance stocké de manière interne (Fr) et le vecteur d'avance réelle (F) qui est tangent au chemin d'usinage circulaire au point de départ. Il parait évident que l'angle absolu du vecteur d'avance réelle (F) peut être déduit de l'angle du vecteur d'avance radiale interne (Fr) en ajoutant ou en soustrayant 1/2 radians, selon que l'interpolation circulaire est faite dans le sens des aiguilles d'une montre, comme cela est représenté, ou dans le sens inverse. De manière spécifique, dans l'étape 113 de la figure 15 l'angle absolu (0r) du vecteur radial interne (Fr) est obtenu en appelant le sous-programme de calcul d'angle décrit sur la figure 17. Alors, dans l'étape 114, l'ordinateur de commande numérique recherche si l'interpolation s'effectue dans le sens des aiguilles d'une montre ou à l'inverse. Si elle s'effectue dans le sens des aiguilles d'une montre, alors, dans l'étape 115, l'angle absolu (Of) est obtenu en ajoutant IT/2 radians à l'angle absolu (Or) du vecteur radial interne. L'angle résultant (Of) est normalisé pour être plus grand ou égal à zéro mais plus petit que 21T radians. De façon similaire, si l'interpolation est circulaire dans le sens inverse des aiguilles d'une montre, alors dans l'étape 116 l'angle absolu (0f) est calculé en soustrayant W/2 radians à l'angle absolu (0r) du vecteur radial interne (Fr) et en normalisant le résultat. Pour revenir maintenant à l'étape 111 de la figure 15, si le déroulement du bloc en cours n'implique pas une inter- polation circulaire, alors il s'agit d'un mouvement linéaire et, à l'étape 117, les composantes rectangulaires du vecteur d'avance F sont obtenues directement à partir de l'interpolateur linéaire. Ensuite, dans l'étape 118, on appelle le sous-programme de calcul d'angle de la figure 17 pour calculer l'angle absolu (if) du vec- teur d'avance (F). Maintenant que l'angle absolu (Of) du vecteur d'avance (F) a été obtenu quelle que soit l'interpolation linéaire ou cir- culaire utilisée, l'angla absolu (0) du vecteur d'entrée ou de retrait peut être aisément calculé en ajoutant l'angle absolu (if) et l'angle relatif (0) et une constante iT radians. On notera que la somme de l'angle relatif (8) et de V radians représente l'angle d'entrée respectif du vecteur de retrait par rapport à la direc- tion d'avance du vecteur d'avance (F). L'angle absolu qui en résulte (0) est alors normalisé pour être supérieur ou égal à zéro et inférieur à 2 7 radians. Finalement. à l'étape 120, la forme polaire du vecteur d'entrée ou de retrait est convertie en coordonnées rectangulaires en appelant le sous-programme de con- version de coordonnées polaires en rectangulaire représenté sur la figure 17. Des exemples spécifiques de sous-programmes pour conver- tir des coordonnées rectangulaires en coordonnées polaires et pour 253367 1 calculer l'angle d'un vecteur spécifié en coordonnées rec- tangulaires sont décrits sur la figure 17. La conversion de coordonnées polaires en coordonnées rectangulaires à l'étape 131 est relativement simple. La composante X est obtenue en multi- pliant l'amplitude (R) par le cosinus de l'angle absolu (0). Pour cela, l'angle (0) nul est défini comme la direction positive de l'axe X. De façon similaire, la composante Z du vecteur est obte- nue en multipliant l'amplitude (R) par le sinus de l'angle absolu La conversion des coordonnées rectangulaires en coordonnées polaires est plus compliquée du fait que le quadrant particulier dans lequel l'angle tombe doit être déterminé séparément. Au cours de l'étape 132, l'amplitude (R) du vecteur est aisément calculée par la racine carrée de la somme des carrés des composantes Z et X. En général, l'angle absolu (0) est l'arc tangente du rapport des amplitudes des composantes Z et X, mais le cas de l'angle (0) nul doit être considéré séparément pour éviter la division par zéro, et le quadrant dans lequel l'angle tombe doit également &tre déterminé. A l'étape initiale 133, la composante X est comparée à zéro, et si elle est trouvée égale à zéro, alors l'angle absolu est 11/2 radians, 3 1/2 radlans ou est indéfini. Pour lever cette ambiguïté, à l'étape 134, la composante Z est comparée à z6ro. Si la composante Z est nul-le, alors à l'étape 135 on affiche un message d'erreur disant que l'angle est indéfini puisque l'amplitude (R) est nulle, et à l'étape 136 on réalise un blocage d'avance. A l'inverse, à l'étape 137, la composante Z est à nouveau comparée à zéro pour déterminer si la composante est posi- tive ou négative. Si la composante Z est négative, alors l'angle absolu (0) est fixé à 3 1T/2 radians à l'étape 138. Sinon, à l'étape 139, l'angle absolu (t) est fixé à 1X/2 radians. Si,-à l'étape 133, la composante X n'était pas égale à zéro, alors à l'étape 140 l'angle absolu est calculé comme étant l'arc tangente du rapport entre l'amplitude des composantes Z et X. L'arc tangente, toutefois, donne toujours une valeur d'angle dans le premier quadrant, et l'angle doit en outre être ajust6 si le vecteur se trouve dans les autres quadrants. Pour cela, à l'étape 141, la composante X du vecteur est comparée à zéro, et lors des étapes 142 ou 143, la composante Z est également comparée à zéro. Si les deux composantes sont positives, alors le vecteur est dans le premier quadrant et l'angle absolu (0) n'a pas à être ajusté. Si la composante X est n&gative mais la composante Z non négative, alors le vecteur est dans le second quadrant et l'angle (0) est ajusté à l'étape 144 en soustrayant l'angle (0) de iTra- dians. Si la composante X et la composante Z sont toutes deux négatives, alors le vecteur est dans le troisième quadrant, et l'angle (0) est ajusté à l'écape 145 en ajoutant TM radians. Fina- lement, si la composante X n'est pas négative mais que la com- posante Z est négative, alors le vecteur est dans le quatrime quadrant, et, à l'étape 146, l'angle (e) est ajusté en soustrayant l'angle (0) de 2 Tr radians. Sur la figure 18A, on a représenté à plus grande Échelle une description de l'usinage d'une pièce finie 150 incluant les dimensions 151 d'"ébauche" avant usinage et plusieurs découpes frontales 152, 153, 154 et 155. La pièce 150 est représentée à échelle réduite sur la figure 18B. La figure 18B montre également la relation entre la pièce 150, la table 13, l'outil 14 et le porte-outil 15, et le poste de changement d'outil 36. Etant donaé les diagrammes montrés sur les figures 18A et 18B, le programmeur de pièce peut écrire un programme de pièce pour réaliser les découpes frontales, et un sous-programme d'interruption pour retirer en sûreté l'outil 14 jusqu'au poste de changement d'outil 36 et reprendre l'usinage avec un nouvel outil dans le cas o on détecterait une usure excessive d'outil ou un bris d'outil à un point arbitraire le long du chemin d'usinage 152-155. L'annexe I montre la suite des instructions d'un programme simple. Pour organiser les tâches de programmation, le program- meur peut tout d'abord établir un organigramme du problème d'usi- nage comme l'illustrent les figures 19A et 19B. Le programme principal de pièces est défini par l'organigramme généralement désigné par la référence 160 sur la figure 19A, et le sous- programme d'interruption est défini par l'organigramme 170 de la figure 19B. Le sous-programme d'interruption 170 inclut les étapes qui sont exécutées en réponse à un signal de commande sur usure d'outil ou bris d'outil pendant l'interruption du programme prin- cipal 160. A la première étape 161 du programme principal 160, le porteoutil 15 et l'outil 14 sont rapidement déplacés jusqu'à une position prédéfinie 6cartée avant la première étape de coupe fron- tale 152. Ensuite, à l'étape 162, les paramètres d'usinage tels que l'avance d'outil (IPR), la vitesse de broche (SFM), l'outil à utiliser, l'écart d'usinage, la direction d'usinage, la valeur d'usinage, et la fonction de refroidissement par fluide sont définis. A l'étape 163, on autorise le fonctionnement du disposi- tif de surveillance d'outil.et on définit les conditions limites. Alors à l'étape 164, les r6ponses, limites ou actions sont également définies. Maintenant que les paramètres d'usinage et de sur- veillance d'outil ont été définis, l'usinage réel peut être effectué. A l'étape 165, l'outil est positionné au début du premier usinage 152 et l'opération d'usinage frontal est exécutée. Ensuite, à l'étape 166, l'outil est positionné au début de la seconde opération de coupe 153, et l'usinage se produit pour cette seconde opération. A l'étape 167, l'outil est positionné au début de la troisième opération de coupe 154 et celle-ci est exécutée. A l'étape 168, l'outil est positionné au début de la quatrième coupe et celle-ci est exécutée pour terminer la pièce. Au cours d'une étape finale 169, l'outil 14 est rapidement déplacé vers la position écartée. La rotation de la table 13 est arrêtée et on arrête l'écoulement de liquide de refroidissement. Le sous-programme d'interruption 170 de la figure 19B est exécuté après un signal de commande sur outil usé ou outil brisé. Les sous-programmes définis de manière interne, tels que représentés sur les figures 10 et 12 et décrits plus haut, assurent le retrait de l'outil 14 de la pièce 150 jusqu'au point de retrait primaire (voir figure 18A) avant d'appeler le sous-programme d'interruption 170. A la première étape 171, les coordonnées du point de retrait primaire sont sauvegardées dans la mémoire pour qu'un nouvel outil puisse être ramené au point de retrait primaire pour continuer l'usinage. Ensuite, à l'étape 172, l'outil 14 est déplacé directement jusqu'au point de retrait secondaire à partir duquel il atteint le poste de changement d'outil 36. A ce moment, le programmeur suppose que le nouvel outil est dans la sixième position du poste de changement d'outil et, de cette manière, l'outil initial est remplacé par l'outil n 6. Alors, à l'étape 173, on jauge les dimensions du nouvel outil pour que les arêtes coupantes du nouvel outil n 6 soient en rela- tion très précise avec les positions des arêtes de l'outil d'origine. Finalement, à l'étape 174 le nouvel outil retourne aux coordonnées du point de retrait primaire. Ces coordonnées sont les coordonnées qui ont été sauvegardées en mémoire dans la première étape 171. Lors du retour à partir du sous-programme d'interrup- tion 170, on execute le sous-programme d'engagement défini en interne et montré sur la figure 14 et précédemment décrit, pour engager le nouvel outil sur la pièce et pour reprendre l'usinage. Considérant maintenant le code spécifique du programme principal dans l'annexe I, on peut voir que chaque ligne ou bloc du programme principal est repéré par une ligne ou numéro de bloc suivant le code alphabétique "N". Apres chaque numéro de ligne, il y a un ou plusieurs codes de type 1 ou 2. La première ligne ou bloc N1 inclut un code entre parenthèses- Les parenthèses indi- quent que le code est un code de type 2. Le code à trois lettres PGM signifie que le code de type 2 est utilisé pour donner le nom "RFACE au programme principal. Le bloc suivant N10 inclut un code de type 1 GO pour le positionnement point à point, un code G90 pour préciser les coordonnées absolues, un code X30.0 pour les valeurs de coordonnées X, et un code Z10.O pour-les coordonnées Z. En d'autres termes, l'outil 14 est rapidement positionné au point de dégagement à X = 30 et Z = 10. Le troisième bloc N20 comprend un code GO et un code G90 comme précédemment, et comprend en outre un code G95 définissant un taux d'avance (IPR) en pouces par tour, un code G96 définissant une vitesse de surface constante (SFM), un code FO0O25 définissant la vitesse d'avance à 0,025 pouce par tour, un code S400 définis- sant la vitesse de surface (SFH) à 400 pieds par minute, un code X4.9 fixant une coordonnée X à la valeur 4,9, un code T2 comman- dant de remplacer un outil par un second outil, un code D2 pour choisir un second écart d'outil en mémoire, un code M03 pour lancer la rotation de table en direction positive, un code M08 pour établir la circulation du fluide de refroidissement, et un code M41 pour fixer la plage haute de rotation de table ou de broche. Cette seconde étape a pour résultat de positionner l'outil à la position d'écart à X = 4,9, Z = 10. Le bloc suivant N30 comprend le code M74 pour actionner le dispositif de détection de puissance de coupe, et des codes de type 2 comprenant le code à trois lettres HPM pour définir une limite HPMUPPER pour produire un signal de commande lorsque la puissance de coupe HPC est supérieure à 60, et également pour définir une limite HPM WEAR pour produire un signal de commande lorsque la puissance moyenne de coupe AVHPC est supérieure à 50. Le bloc suivant N40 inclut un code de type 2 pour définir le vecteur de retrait selon une longueur de 2 pouces et un angle relatif de 45 degrés dans le sens des aiguilles d'une montre à partir de l'inverse de la direction d'avance en cours. Le code P2 précise qu'après le retrait complet de l'outil, l'exécution reprend immédiatement dans le sous-programme défini par l'utili- sateur pour la limite HPN WEAR. Le bloc suivant N41 autorise et définit que le sous- programme RETSUB est le sous-programme défini par l'utilisateur, exécuté après le retrait de l'outil sous la condition HPM WEAR. Le bloc suivant N42 comprend un code de type 2 pour autoriser le retour au trajet d'usinage sous la condition HPM WEAR. Le code de type 2 précise que l'outil doit être déplacé jusqu'à un point d'approche qui est à 0,5 pouce selon un angle de degrés dans le sens des aiguilles d'une montre par rapport à l'inverse de la direction d'avance le long du chemin d'usinage interrompu. Le code P2 précise qu'une fois que l'outil a atteint le point d'approche, l'outil doit &tre réengagé sur la pièce le long du vecteur d'entrée et l'usinage doit être repris. Le bloc N43 inclut un code de type 2 autorisant un retrait d'outil en réponse à la condition limite HPM UPPER. Puisque le code dans le bloc N43 ne définit pas un vecteur de retrait, le sous-programme interne de retrait d'outil de la figure 12 utilise le vecteur de retrait défini précédemment dans le bloc N40. Le bloc N43 inclut également le code Pi, pour que le retrait soit suivi par un arrêt obligatoire. Maintenant que les conditions d'usinage et les con- ditions limites ont été définies, le programme principal se pour- suit avec plusieurs blocs qui exécutent les opérations d'usinage. Ces blocs comprennent le positionnement point à point ou code transversal rapide GO pour définir des coordonnées, et les mouve- ments d'usinage précisés par le code G1 pour des coordonnées programmées. Le bloc N50 positionne l'outil à l'ordonnée Z = 0,03 pour la première coupe frontale 152. Le bloc suivant N60 réalise effectivement la première coupe frontale 152, et le dispositif de surveillance d'outil est actif pour cette opération d'usinage et les mouvements ultérieurs d'usinage. Les blocs N70 à N90 position- nent successivement l'outil pour la seconde coupe frontale 153. Cette coupe est réalisée dans le bloc N100. A la fin de la coupe 153, dans le bloc NllO, on réalise un mouvement vers le haut dans la direction Z pour Tourner autour de l'arête 156. Pendant ce mouvement vers le haut, le code non modal M70 interdit le retrait d'outil. Alors les blocs N120 et N130 positionnent l'outil pour la troisième coupe frontale 154, qui est réalisée dans le bloc Ni40. A la fin de la troisième coupe frontale 154, dans le bloc N150, la retrait de l'outil est interdit et un mouvement vers le haut dans la direction Z est réalisé pour tourner autour de l'arête 156. De manière similaire, les blocs N160 et N170 repositionnent l'outil pour l'opération de coupe frontale finale 155 réalisée dans le bloc N180. A la fin de l'opération finale de coupe frontale 155, dans le bloc N190, le retrait d'outil est interdit de façon non modale par le code M70 et l'outil est déplacé vers le haut pour tourner autour de l'arête 156. Après les opérations d'usinage, dans le bloc N200, l'outil est rapidement déplacé verticalement jusqu'à une position écartée à Z = 10,0. Alors, dans le bloc N210, l'outil est déplacé horizontalement jusqu'à une seconde position écartée à X = 30. De plus, un code M05 arrête la rotation de la table et un code M09 arrête l'écoulement de liquide de refroidissement. Finalement, dans le bloc N220, le code M02 repère la fin du programme prin- cipal. Considérant maintenant le sous-programme d'interruption, il faut rappeler que le sous-programme d'interruption est exécuté après le retrait d'outil jusqu'à un point de retrait primaire. Dans le premier bloc Ni, on définit le nom du sous-programme d'interruption par RETSUB" correspondant au nom utilisé dans le bloc N41 du programme principal. Le code de type 2 inclut également un code 2 réservant l'espace pour deux paramètres. Ces deux paramètres sont définis ensuite dans les blocs N10 et N20. Dans le bloc NlO, le premier paramètre P1 est défini comme étant la coordonnée en X de la position d'outil au début du programme d'interruption. En d'autres termes, la coordonnée X du point de retrait est sauvegardée dans l'adresse mémoire Pi. De façon simi- laire, dans le bloc N20 le second paramètre P2 est défini comme étant la coordonnée Z du point de retrait primaire. Le bloc suivant N30 utilise les codes de déplacement rapide GO et de déplacement absolu G90 pour déplacer rapidement l'outil à un second point de retrait à X = 25 et Z = 10, comme le représente la figure 18B. Alors, dans le bloc N40, le code T6 remplace l'outil en cours par l'outil n 6, et le code D6 rend actif l'écart n 6. Puis, dans le bloc N50, le code M92 déplace la sonde de mesure d'outil. Le code de type 2 CLS est une commande pour un sous-programme de contrôle d'écart d'outil appelé PRBTOOL, ayant trois paramètres incluant la différence maximale d'écart de positionnement permise entre les directions X et Z, et, respec- tivement, le nombre d'écarts d'outil à modifier. Après la vérifi- cation d'outil, dans le bloc N60, le code M90 retire la sonde de mesure d'outil et l'outil retourne rapidement au point de retrait secondaire X = 25 et Z = 10. Finalement, dans le bloc N70, l'outil est rapidement ramené au point de retrait primaire spécifié par les coordonnées sauvegardées dans les paramètres P1 et P2. On a décrit ci-dessus un dispositif de contr8le d'outil qui utilise une stratégie aisément programmée de retrait automati- que en sécurité et de retour d'outil. La stratégie évite la colli- sion et l'interférence entre la pièce et l'outil dans tous les cas et réduit les imperfections d'état de surface de la pièce usinée. Le programmeur dispose d'une panoplie de fonctions prédéfinies selon des codes de commande de machine de type 1 et de type 2 qui lui procurent une grande flexibilité lors de la programmation de retrait général en sécurité et de fonction de retour, mais qui incluent des tests internes de conditions de défauts qui réduisent la probabilité d'erreurs de programmation au cours de la r alisa- tion d'une stratégie spécifique de retrait en sécurité et de retour. Le programmeur peut définir les vecteurs de retrait et d'entrée selon des coordonnées polaires par rapport à la direction d'usinage. Cela facilite le maintien des angles de retrait et d'entrée lors des coupes en courbe. De plus, le signe de l'angle relatif dépend de manière apparente du fait que la pièce est restée d'un c8té ou de l'autre du trajet d'usinage dans le plan X- Z. La programmation des fonctions de retrait général en sécurité et de retour peut être en outre facilitée en permettant au pro- grammeur de spécifier les conditions limites sous forme booléenne. De cette façon, le programmeur de pièce a à sa disposition tous les paramètres définis de façon interne décrivant les conditions d'usinage rencontrées par l'outil. ANNEXE I LISTAGE D'UN EXEMPLE D'UN PROGRAMME PRINCIPAL ET SOUS-PROGRAMME D'INTERRUPTION POUR CHANGEMENT D'OUTIL Programme principal N1 (PG(, RFACE) NIO GO G90 X30.O Z10.O N20 G0 G90 G95 G96 FO.025 S400 X4.9 T2 D2 M03 M08 M41 N30 M74 (HPM, U60 W50) N40 (ENR, HPMWEAR, R2.O T-45 P2) N41 (ENS, HP_ WEAR, RETSUB) N42 (ENE, HPMRIEAR, RO.5 T-5 P2) N43 (ENR, Pf_ UPPR, P1) N50 GO ZO.03 N60 G1 X20.1 N70 GO Zi.0 N80 GO X4.9 N90 GO Z-0.33 NIOO G1 X14.97 N110 M70 Gl Z-0.03 N120 GO X4.9 N130 GO Z-0.66 N140 Gl X14.97 N150 M70 G1 Z-0.33 N160 GO X4.9 N170 GO Z-O.97 N180 Gi X14.97 N190 M70 G1 Z-0.66 N200 GO Z10.0 N210 GO X30. M05 M09 N220 M02 Sous-programme d'interruption (PGM, RETSUB;2) (LET, P1 = PSPOSX) (LET, P2 = PSPOSZ) GO G90 X25.0 Z10.0 T6 D6 M92 (CLS, PRBTOOL; M90 X25.0 Z10.0 X = Pi, Z = P2 0.02, 0.02,6) NI N10 N20 N30 N40 N50 N60 N70 (aiTns) II aXHNNV 6 X SVD a SYD H SYD (Zaç' 'I&I]Iq'CNH) M1 SVD 0 SVD f SYD (I'LU-I L Z9úOSZ ANNEXE II (suite) CAS A: Quand la limite intervient, on produit un retrait le long du vecteur de retrait programmé jusqu'à un point de retrait primaire. Lorsque le point de retrait primaire est atteint, on effectue un arrêt d'avance. Le bloc interrompu peut être poursuivi par incrémentation inverse vers le trajet et interruption de l'arrêt d'avance, ou par utili- sation du bouton de retour au trajet. CAS B: Lorsque la limite intervient, on produit un retrait le long d'un vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait-primaire est atteint, l'arrêt d'avance devient actif. Puisqu'un sous- programme est en cours, le point d'arrêt d'avance est le point de retrait primaire, et non pas le point de départ. Si les axes sont incrémentés à partir du point de retrait primaire, ils doivent retourner au point de retrait pri- maire avant de permettre la sortie de l'arrêt d'avance pour retourner au sous-programme en cours. Lorsque l'on sort de l'arrêt d'avance, le sousprogramme en cours est exécuté. L'arrêt d'avance peut être utilisé à tout moment dans le sous-programme d'interruption. Lorsque le sous- programme est exécuté, il se produit un arrêt d'avance parce qu'aucun code d'entrée n'était programmé. Le bloc interrompu peut être poursuivi par incrémentation inverse le long du trajet et en sortant de l'arrêt d'avance ou par utilisation du bouton de retour au trajet. CAS C: Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, l'arrêt d'avance devient actif. Lorsque l'arrêt d'avance est achevé en poussant le bouton de début de cycle, on exécute le sous-programme. Quand le sous- programme est terminé, les axes se positionnent au point d'approche. Lorsque le point d'approche est atteint, un arrêt d'avance devient actif. Lorsque l'arrêt d'avance est achevé par le bouton de début de cycle, les axes se déplacent jusqu'au point de départ avant de reprendre automatiquement le bloc interrompu. CAS D: Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, l'arrêt d'avance devient actif. Lorsque l'arrêt d'avance est achevé en poussant le bouton de début de cycle, on exécute le sous-programme. Lorsque le sous- programme est terminé, les axes se positionnent au point d'approche. Lorsque. le point d'approche est atteint, un arrêt forcé intervient, arrêtant tout mouvement de la machine et un cycle d'enlèvement commence. CAS E: Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, l'arrêt d'avance devient actif. Lorsque l'arrêt d'avance est achevé en poussant le boutin de début de cycle, on exécute le sous-programme. Lorsque le sous- programme est terminé, les axes se positionnent au point d'approche. Lorsque le point d'approche est atteint, les axes se déplacent immédiatement jusqu'au point de départ avant de reprendre i diatement le bloc interrompu. CAS F: Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, l'arrêt d'avance devient actif. Lorsque l'arrêt d'avance est achevé en poussant le bouton de début de cycle, on exécute le sous-programme. Lorsque le sous- programme est terminé, les axes se positionnent au point d'approche. Lorsque le point d'approche est atteint, il se produit un arrêt d'avance. Lorsque l'arrêt d'avance est excité en poussant le bouton de début de cycle, les axes se déplacent à leurs coordonnées supprimées avant de re- * prendre automatiquement le bloc interrompu. CAS G: Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, l'arrêt d'avance devient actif. Lorsque l'arrêt d'avance est achevé en poussant le bouton de début de cycle, on exécute le sous-programme. Lorsque le sous- programme est terminé, les axes se positionnent au point d'approche. Lorsque le point d'approche est atteint, il se produit un arrêt forcé. CAS H: Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programme jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, l'arrêt d'avance devient actif. Lorsque l'arrêt d'avance est achevé en poussant le bouton de début de cycle, on exécute le sous-programme. Lorsque le sous- programme est terminé, les axes se positionnent au point d'approche. Quand le point d'approche est atteint, les axes se déplacent jusqu'au point de départ avant de reprendre automatiquement le bloc interrompu. CAS Lorsque la limite intervient, il se produit un retrait le I-P: long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, il se produit un arrêt forcé, laissant les axes au point de retrait primaire. Le bloc interrompu ne peut pas être repris. CAS Q: Le cas Q est le même que le cas A parce qu'il n'y a pas d'entrée ou de sous-programme utilisable. CAS R: Quand la limite intervient, un retrait intervient le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, le sous-programme en cours commence immédiatement à s'exécuter. Lorsque le sous-programme est terminé, un arrêt d'avance intervient. Le bloc interrompu peut être repris en incrémentant à l'inverse jusqu'au trajet et en U3671 achevant l'arrêt d'avance ou en utilisant le bouton de retour au trajet. CAS S: Quand la limite intervient, on effectue un retrait le long du vecteur programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, on com- mence immédiatement à exécuter le sous-programme en cours. Lorsque le sous-programme est terminé, les axes se posi- tionnent au point d'approche. Lorsque le point d'approche est atteint, un arrêt d'avance devient actif. Lorsque l'arrêt d'avance est achevé en poussant un bouton de début de cycle, les axes se déplacent au point de départ avant da reprendre automatiquement le bloc interrompu. CAS T: Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, on commence immédiatement à exécuter le sous- programme ABORT SUB. Lorsque le sous-programme est exécuté, les axes se positionnent au point d'approche. Lorsque le point d'approche est atteint, il se produit un arrêt forcé. CAS U: Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, on commence immédiatement à exécuter le sous- programme ABORT SUB. Lorsque le sous-programme est exécuté, les axes se positionnent au point d'approche. Lorsque le point d'approche est atteint, les axes se déplacent immédiatement jusqu'au point de départ avant de reprendre immédiatement le bloc interrompu. Le cas U ne nécessite aucune opération d'opérateur. CAS V: Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, les axes se positionnent au point d'approche. Lorsque le point d'approche est atteint, un arrêt d'avance devient actif. Lorsque l'arrêt d'avance est achevé en poussant le bouton de début de cycle, les axes se déplacent jusqu'au point de départ avant de reprendre automatiquement le bloc interrompu. CAS W: Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, les axes se positionnent au point d'approche. Lorsque le point d'approche est atteint, il se produit un arrêt forcé. CAS X: Le cas X est conçu pour être le même que le cas V. Quand la limite intervient, on effectue un retrait le long du vecteur de retrait programmé jusqu'au point de retrait primaire. Lorsque le point de retrait primaire est atteint, les axes se positionnent au point d'approche. Lorsque le point d'approche est atteint, les axes se blo- quent au point de départ avant de reprendre automati- quement le bloc interrompu. u3671 REVENDICATIONS 1. Procédé pour commander une machine-outil à commande numérique (10) du type ayant un outil de coupe (14) déplaçable par rapport à une pièce (13), l'outil de coupe étant déplacé relative- ment durant le fonctionnement normal le long d'un trajet d'usinage pendant l'exécution d'un programme de pièce incluant des instruc- tions définissant le trajet d'usinage, le procédé comprenant les étapes suivantes: interruption du mouvement relatif de l'outil coupant le long du trajet d'usinage à un point de départ arbitraire en réponse à un signal de commande, et déplacement automatique de l'outil de coupe par rapport à la pièce jusqu'à un endroit prédéfini de telle manière qu'il ne se produise aucune interférence entre l'outil de coupe et la pièce, ladite étape de déplacement automatique de l'outil de coupe incluant une étape initiale de déplacement de l'outil de coupe selon un vecteur de retrait incrémentiel depuis ledit point de départ jusqu'à un point de retrait, le vecteur de retrait étant déterminé au moins en par- tie par des signaux représentant des valeurs prédéterminées, caractérisé en ce que ledit vecteur de retrait est déterminé par lesdites valeurs prédéterminées des signaux sur la base de la direction du trajet d'usinage dans la région dudit point de départ. 2. Procédé selon la revendication 1, caractérisé en ce que lesdits signaux représentant lesdites valeurs prédéterminées incluent des signaux représentant des valeurs choisies spécifiant l'amplitude du vecteur de retrait et l'angle de ce vecteur de retrait par rapport à la direction du trajet d'usinage dans la région du point de départ. 3. Procédé selon la revendication 2, caractérisé en ce que lesdits signaux représentant lesdites valeurs choisies comprennent un signal représentant une valeur spécifiant l'amplitude du vecteur de retrait et un signal distinct représentant une valeur spécifiant l'angle du vecteur de retrait par rapport A la direction du trajet d'usinage dans la région du point de départ. S3671 4. Procédé selon la revendication 3, caractérisé en ce que la valeur spécifiant ledit angle du vecteur de retrait par rapport à la direction du trajet d'usinage dans la région du point de départ est l'angle entre le vecteur de retrait et la direction opposée à la direction d'avance de l'outil le long du trajet d'usinage dans la région du point de départ avant ladite interrup- tion du mouvement relatif. 5. Procédé selon la revendication 2, caractérisé en ce que lesdites valeurs prédéterminées sont spécifiées par des constantes programmées dans le programme de pièce. 6. Procédé selon la revendication 1, caractérisé en ce que les valeurs prédéterminées sont spécifiées par des constantes programmées dans le programme de pièce. 7. Procédé selon la revendication 6, caractérisé en ce que les constantes sont des valeurs de paramètres d'une fonction générale de retrait et sont programmées dans une commande de fonc- tion dans le programme de pièce. 8. Procédé selon la revendication 6, caractérisé en ce qu'au moins l'une desdites valeurs prédéterminées est spécifiée de façon modale. 9. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre les étapes suivantes: déplacement auto- matique d'un outil par rapport à la pièce pour le ramener vers le trajet d'usinage le long d'un trajet d'approche incluant un vec- teur d'entrée se terminant sur le trajet d'usinage, et reprise du mouvement relatif interrompu le long de ce trajet d'usinage, et en ce que le vecteur d'entrée est déterminé au moins en partie par un signal d'approche prédéterminé basé sur la direction du trajet d'usinage dans la région du point de départ. 10. Procédé selon la revendication 9, caractérisé en ce que ledit signal d'approche définit l'angle entre le vecteur d'entrée et ladite direction du trajet d'usinage dans la région du point de départ. 11. Procédé selon la revendication 10, caractérisé en ce que l'angle entre le vecteur d'entrée et la direction opposée à la direction du trajet d'usinage est un angle d'incidence aigu, et en ce que l'extrémité de ce vecteur d'entrée est ledit point de départ. 12. Procédé pour la commande d'une machine-outil à com- mande numérique du type comprenant un outil de coupe initial déplaçable relativement par rapport à une pièce, l'outil de coupe initial étant déplacé relativement pendant le fonctionnement nor- mal le long d'un trajet d'usinage pendant l'exécution d'un programme de pièce incluant des instructions définissant le trajet d'usinage, ce procédé incluant les étapes suivantes: interruption du mouvement relatif de l'outil de coupe initial le long du trajet d'usinage à un point de départ arbitraire en réponse à un signal de commande produit en réponse à la comparaison d'un signal de dégradation d'outil et d'un seuil prédéterminé, et l'étape de déplacement automatique de l'outil de coupe initial par rapport à la pièce jusqu'à un emplacement de changement d'outil de telle façon qu'aucune interférence ne se produise entre l'outil de coupe initial et la pièce, ladite étape de déplacement automatique de l'outil de coupe initial comprenant les étapes de déplacement de l'outil de coupe initial selon un vecteur de retrait incrémentiel depuis ledit point de départ Jusqu'à un point de retrait, de déplacement automatique de l'outil de coupe initial depuis ledit point de retrait jusqu'au point de changement d'outil, de change- ment de l'outil de coupe initial et de déplacement automatique de l'outil changé. pour le ramener vers le trajet d'usinage sans interférence entre l'outil de coupe change et la pièce, et de reprise de l'usinage le long du trajet d'usinage au moyen de l'outil de coupe changé, caractérisé en ce que l'étape de déplacement automatique de l'outil de coupe changé en direction du trajet d'usinage inclut le déplacement relatif de l'outil changé par rapport à la pièce le long d'un vecteur d'entrée commençant à un point initial et se terminant au point de départ, en ce que le vecteur de retrait présente un angle notable par rapport à la direction opposée à la direction du trajet d'usinage, et en ce que ledit vecteur d'entrée présente un angle d'incidence plus faible par rapport à la direc- tion inverse du trajet d'usinage, de façon que le réusinage de la pièce de se produit pas et qu'une surface relativement lisse est obtenue sur la pièce à l'endroit du point de départ. 13. Procédé selon la revendication 12, caractérisé en ce que ledit vecteur d'entrée est déterminé par la direction dudit trajet d'usinage dans la région du point de départ et par un signal prédéterminé spécifiant l'amplitude de l'angle du vecteur d'entrée par rapport à la direction dudit trajet d'usinage dans la région du point de départ. 14. Procédé selon la revendication 12, caractérisé en ce que lesdites étapes de déplacement automatique de l'outil de coupe changé pour le ramener vers le trajet d'usinage comprennent les étapes de parcours inverse du trajet de l'outil de coupe initial depuis ledit point de retrait jusqu'audit endroit de changement d'outil de sorte que l'outil de coupe changé est déplacé depuis l'endroit de changement d'outil jusqu'au point de départ, et ensuite de déplacement relatif de l'outil de coupe changé par rap- port à la pièce directement depuis le point de départ jusqu'au point initial défini par ledit vecteur d'entrée. 15. Procédé selon la revendication 12, caractérisé en ce que ladite étape d'interruption du mouvement relatif de l'outil de coupe initial le long du trajet d'usinage à un point de départ arbitraire en réponse à un signal de commande généré en réponse à la comparaison d'un signal de dégradation d'outil et d'un seuil prédéterminé est soumise à la condition d'un engagement et d'un désengagement dudit outil de coupe initial et de la pièce. 16. Procédé selon la revendication 15, caractérisé en ce que ladite étape d'interruption a pour condition l'engagement et le désengagement dudit outil de coupe initial sur des distances respectives choisies de début et de fin au cours d'une opération de coupe de pièce. 17. Procédé selon la revendication 15, caractérisé en ce que ledit trajet d'usinage est spécifié par une série de mouve- ments comprenant certains mouvements d'usinage programmés dans le programme de pièce, et en ce que ladite étape d'interruption est inhibée sur une distance choisie de début et une distance choisie de fin desdits mouvements d'usinage. u3671 18. Procédé pour coander une machine-outil à commande numérique du type ayant un outil de coupe initial d6plaçable rela- tivement par rapport à une pièce, l'outil de coupe initial étant actionné relativement au cours du fonctionnement normal le long d'un trajet d'usinage pendant l'exécution d'un programme de pièce incluant des instructions définissant le trajet d'usinage, ledit proc5dé comprenant les étapes suivantes interruption du mouve- ment relatif de l'outil de coupe initial le long du trajet d'usinage à un point de départ arbitraire en réponse à un signal de comande généré en réponse à la comparaison d'un signal de d6gradation d'outil et d'un seuil prédéterminé, et déplacement automatique de l'outil de coupe initial par rapport à la pièce jusqu'à un emplacement de changement d'outil de manière qu'aucune interférence entre l'outil de coupe initial et la pièce ne se pro- duise, ladite étape de déplacement automatique de l'outil de coupe initial comprenant les étapes de déplacement de l'outil de coupe initial le long d'un vecteur de retrait incr6mentiel depuis le point de départ jusqu'à un point de retrait, de déplacement auto- matique de l'outil de coupe initial depuis ledit point de retrait jusqu'au point de changement d'outil, de changement de l'outil de coupe initial et de déplacement automatique de l'outil de coupe changé pour le ramener vers le trajet d'usinage sans interf6rence entre l'outil de coupe changé et la pièce, et de poursuite de l'usinage le long du trajet d'usinage en utilisant l'outil de coupe change, caract6ris6 en ce que l'étape d'interruption du mouve- ment relatif de l'outil de coupe initial le long du trajet d'usinage à un point de départ arbitraire en r6ponse à un signal de comande généré en réponse à la comparaison d'un signal de dégradation d'outil et d'un seuil prédétermin6 est conditionnée par la position dudit outil de coupe initial sur des distances respectives choisies de début et de fin des mouvements d'usinage spécifiés dans la pièce, et en ce que, pour des s6ries successives desdits mouvements d'usinage, la distance choisie de d6but s'applique seulement à la première coupe de ladite s6rie, et en ce que la distance de fin choisie s'applique seulement à la dernière coupe de ladite série. 19. Procédé de commande d'une machine-outil 4 commande numérique du type comprenant un outil de coupe mobile relativement par rapport à une pièce, l'outil de coupe étant déplaçable relati- vement pendant le fonctionnement normal le long d'un trajet d'usinage pendant l'exécution d'un programme de pièce comprenant des instructions définissant le trajet d'usinage par plusieurs mouvements d'usinage, ledit procédé comprenant les étapes d'interruption du mouvement relatif de l'outil de coupe le long du trajet d'usinage à un point de départ arbitraire en réponse à un signal de commande produit en réponse à la comparaison d'un signal de dégradation d'outil et d'un seuil prédéterminé, et de désengagement automatique de l'outil de coupe de la pièce de telle manière qu'aucune interférence entre l'outil de coupe et la pièce n'intervienne, caractérisé en ce que la profondeur de coupe est spécifiée dans ledit programme de pièce pour les points de début et de fin desdits mouvements d'usinage, et en ce que le signal de dégradation d'outil est produit en déterminant la position de l'outil dans le mouvement en cours parmi les mouvements d'usinage et, en réponse à cette position, en déterminant la profondeur en cours de coupe S partir des profondeurs spécifiées de coupe aux points de début et de fin ou mouvement d'usinage en cours par interpolation, et en produisant ledit signal de dégradation d'outil en fonction de ladite profondeur en cours de coupe. 20. Procédé selon la revendication 19, caractérisé en, ce que ladite interpolation est linéaire. 21. Procédé de commande d'une machine-outil à commande numérique du type ayant un outil de coupe d&plaçable relativement par rapport à une pièce, un ordinateur numérique et un programme de commande pour exécuter un programme de pièce, l'outil de coupe étant déplacé relativement pendant le fonctionnement normal le long d'un trajet d'usinage pendant l'exécution dudit programme de pièce comprenant des instructions définissant le trajet d'usinage, ledit procédé comprenant les étapes d'interruption du mouvement relatif de l'outil de coupe le long du trajet d'usinage a un point de départ arbitraire en réponse à un signal de commande, et de déplacement automatique de l'outil de coupe par rapport à la pièce jusqu'à un endroit prédéfini de façon qu'aucune interférence n'intervienne entre l'outil de coupe et la pièce, ladite étape de déplacement automatique de l'outil de coupe incluant une étape initiale de déplacement de l'outil de coupe le long d'un vecteur de retrait incrémentiel depuis le point de départ jusqu'à un point de retrait, le vecteur de retrait étant déterminé au moins en par- tie par des signaux représentant des valeurs prédéterminées pour certains paramètres, caractérisé en ce que le procédé comprend en outre la génération desdits signaux de commande par des conditions de détection à l'interface entre ledit outil de coupe et la pièce pendant le mouvement relatif dudit outil de coupe le long du tra- jet d'usinage, et l'actionnement dudit ordinateur numérique pour exécuter de manière répétitive des instructions dans ledit programme de commande pour déterminer les valeurs de plusieurs signaux en réponse auxdites conditions détectées et pour comparer certaines choisies de ces valeurs à des valeurs de seuil choisies pour produire des signaux de commande pour des actions respec- tives, et en ce que les signaux, valeurs de seuil et actions sont choisis en réponse à des ordres fonctionnels de définition codes dans le programme de pièce et interprétés pendant l'exécution dudit programme de pièce. 22. Procédé selon la revendication 21, caractérisé en ce que lesdits signaux et valeurs de seuil sont spécifiés par des expressions conditionnelles dans lesdites commandes fonctionnelles de définition. 23. Procédé selon la revendication 22, caractérisé en ce que lesdites expressions conditionnelles sont des expressions booléennes définissant les signaux de commande respectifs. 24. Procédé de commande d'une machine-outil à commande numérique du type ayant un outil de coupe actionnable relativement par rapport à une pièce le long d'un vecteur d'avance programmé lorsque l'outil de coupe est engagé avec la pièce de façon que de la matière est enlevée de la pièce par l'outil de coupe, ledit procédé assurant le retrait de l'outil initialement engagé sur la u3671 pièce à l'écart de la pièce selon un angle choisi par rapport audit vecteur d'avance et comprenant les étapes suivantes: a) obtention de l'angle dudit vecteur d'avance par rap- port à ladite machine-outil; b) addition dudit angle désiré audit angle du vecteur d'avance par rapport a la machine-outil pour obtenir un troisième angle; et c) déplacement dudit outil de coupe le long d'un vecteur de retrait présentant ledit troisième angle par rapport à ladite machine-outil. 25. Procédé selon la revendication 24, caractérisé en ce qua ladite étape (c) de déplacement de l'outil de coupe comprend les étapes de normalisation de la somme calculée dans l'étape (b) pour obtenir un résultat compris dans la plage angulaire infé- rieure à 2 T radians pour obtenir ledit troisième angle, de calcul du sinus et du cosinus du troisième angle, de calcul respec- tivement des composantes orthogonales du vecteur d'avance en multipliant un facteur de longueur par lesdits sinus et cosinus respectivement, et simultanément de déplacement dudit outil de coupe le long des directions d'avances orthogonales respectives en réponse aux composantes respectives orthogonales du vecteur d'avance. 26. Procédé selon la revendication 25, caractérisé en ce que ladite machine-outil comprend des moyens pour effectuer une interpolation circulaire par calcul d'un vecteur radial par rap- port à la machine-outil, et en ce que ladite étape (a) d'obtention de l'angle dudit vecteur d'avance comprend l'étape d'obtention de l'angle du vecteur radial, et d'ajustement dudit angle du vecteur radial par IT/2 radians. 27. Procédé de commande d'une machine-outil à commande numérique du type ayant un outil de coupe mobile relativement par rapport à une pièce le long d'un vecteur d'avance programmé lorsque l'outil de coupe est engagé sur la pièce de telle façon que de la matière est enlevée de la pièce par l'outil de coupe, ledit procédé assurant l'engagement de l'outil de coupe sur la pièce à un point prédéterminé après un dégagement initial de l'outil loin de ladite pièce, le procédé comprenant les étapes suivantes: a) obtenir un angle dudit vecteur d'avance par rapport à ladite machineoutil audit point prédéterminé; b) ajouter ledit angle désiré audit angle du vecteur d'avance par rapport à ladite machine-outil pour obtenir un troisième angle; c) déterminer un point d'approche écarté du point prédéterminé le long d'un vecteur d'entrée présentant ledit troisième angle par rapport à ladite machine-outil; d) déplaeer relativement ledit outil de coupe jusqu'au- dit-point d'approche; et e) déplacer ledit outil de coupe directement jusqu'audit point prédéterminé. 28. Procédé selon la revendication 27, caractérisé en ce que la machine-outil comprend des moyens pour assurer une inter- polation circulaire par calcul d'un vecteur radial par rapport à la machine-outil, et en ce que ladite étape (a) comprend l'obtention de l'angle du vecteur radial, et l'ajustement dudit angle de vecteur radial par T /2 radian 29. Procédé pour permettre à un outil de coupe dans une machine-outil à commande numérique d'entrer en contact avec la surface usinée d'une pièce le long d'un trajet ayant un angle désiré par rapport a ladite surface usinée, ladite surface usinée de ladite pièce étant spécifiée par un second angle par rapport audit outil de la machine, caractérisé en ce qu'il comprend les étapes suivantes: a) additionner ledit angle désiré et ledit second angle pour obtenir un troisième angle, et b) déplacer ledit outil de coupe dans la direction dudit troisième angle par rapport audit outil de machine jusqu'à ce que l'outil de coupe entre en contact avec la surface usinée de ladite pièce.