FR 2489199 A1 19820305 FR 8116716 A 19810902 La présente invention concerne de façon générale le domaine des machines à commande numérique et elle offre plus particulièrement un procédé d'utilisation d'un élé- ment de détection sur une machine pour détecter une carac- téristique d'une pièce et pour modifier l'exécution des étapes opérationnelles dans un programme d'usinage. Avec les premières unités de commande numérique, un programmeur de pièces utilisant un plan de la pièce terminée devait programmer séquentiellement chaque mouve- ment d'usinage, créant ainsi un programme d'usinage compre- nant une série d'étapes opérationnelles. Un certain nombre d'aides de programmation ont été développées par la suite. Le progrès le plus important a été constitué par le dévelop- pement de langages de programmation de pièces permettant au programmeur de décrire la pièce en termes essentielle- ment géométriques, après quoi un ordinateur programmé convertit la description du programmeur en un programme d'usinage qui peut être utilisé directement par une unité de commande numérique. Cependant, l'exécution du programme d'usinage est toujours d'une nature fondamentalement sé- quentielle. Les constructeurs d'unités de commande numé- rique ont réalisé d'autres aides de programmation sous la forme d'ordres de mode. Ceux-ci permettent au program- meur de définir les paramètres d'un processus d'usinage élémentaire, et l'unité de commande numérique crée les séquences de mouvements de la machine qui sont nécessai- res à l'exécution du cycle. Ici encore, les étapes opéra- tionnelles du programme sont effectuées séquentiellement. Il existe une option de commande numérique appelée suppres- sion de bloc, qui peut modifier la nature strictement séquentielle de l'exécution du programme. Dans ce cas, un programmeur fait précéder une étape opérationnelle d'un code de suppression de bloc; et un interrupteur de sup- pression de bloc, placé sous la commande de l'opérateur de la machine, peut être ouvert ou fermé pour exécuter sélectivement l'étape opérationnelle codée. Cependant, à l'exception de cette variation mineure, la nature globa- lement séquentielle du programme d'usinage demeure. Dans le passé, il n'y avait aucune nécessité ou aucune raison de s'écarter-du fonctionnement séquentiel fondamental. Des développements plus récents dans le domai- ne des capteurs de pièce peuvent maintenant fournir des données relatives à la pièce usinée dont on ne disposait - pas précédemment au cours du processus d'usinage. Les cap- teurs de pièce peuvent maintenant déterminer si une pièce existe, son emplacement exact par rapport à l'outil de coupe, le type de pièce parmi une famille de pièces, si elle est comprise dans les tolérances dimensionnelles et la présence d'autres caractéristiques de la pièce. Par consé- quent, il est nécessaire de modifier le fonctionnement séquentiel traditionnel d'un programme d'usinage pour - tenir compte des données supplémentaires qui peutrent être recueillies au cours d'un processus d'usinage et pour uti- liser ces données. On peut par exemple écrire un programme d'usina- ge qui décrit chaque opération d'usinage du membre le plus complexe d'une famille de pièces. Si un membre moins complexe de la famille de pièces est chargé sur la machine, on peut utiliser le capteur de pièce pour identifier cette pièce particulière et pour usiner la pièce avec un bon rendement en sautant toutes les étapes opérationnelles qui ne sont pas nécessaires, c'est-à-dire que le programme d'usinage peut être exécuté d'une manière logique mais non séquentielle. Selon un autre exemple, si une pièce doit conte- nir une caractéristique particulière, par exemple un trou de noyau, pour permettre l'exécution d'autres étapes opé- rationnelles, le capteur de pièce peut déterminer si le trou existe et, si nécessaire, il peut commander le per- çage du trou, conduisant ainsi à l'exécution d'une série non séquentielle d'étapes opérationnelles dans le program- me d'usinage. Selon un autre exemple, si le capteur de pièce détecte que la pièce est absente ou est hors des tolérances dimensionnelles, la partie restante du programme d'usinage peut être sautée. Il existe de nombreuses applications dans les- quelles il est souhaitable d'améliorer le rendement du processus d'usinage en modifiant la séquence d'exécution des étapes opérationnelles dans le processus d'usinage. L'invention a pour but de permettre au programmeur de piè- ces d'utiliser un élément de détection commandé par pro- gramme et d'exécuter des étapes opérationnelles dans le programme d'usinage sur une base conditionnelle, en fonc- tion des caractéristiques de la pièce détectée. Un mode de réalisation de l'invention consiste en un procédé de détection de la présence d'une caractéris- tique d'une pièce et de commande de la séquence d'exécu- tion d'étapes opérationnelles dans un programme d'usinage. Le programme d'usinage est enregistré dans une unité de commande numérique pour une machine qui commande le mouve- ment relatif entre une pièce et un porte-outil qui contient sélectivement un outil de coupe ou un élément de détection de pièce. Le procédé comprend la première étape consistant à enregistrer dans le programme d'usinage des instructions qui, premièrement, définissent un cycle d'exploration des- tiné à détecter une caractéristique de la pièce, seconde- ment, définissent un cycle de test destiné à sélectionner une étape opérationnelle suivante sur la base de la pré- sence de la caractéristique de la pièce et, troisièmement, définissent l'emplacement d'une étape opérationnelle non séquentielle. Pendant l'exécution du programme d'usinage, le procédé exécute le cycle d'exploration, effectue le test déterminant la présence ou l'absence de la caractéris- tique de la pièce et sélectionne l'étape opérationnelle suivante à exécuter, sous la dépendance du test portant sur la caractéristique de la pièce. L'invention sera mieux comprise à la lecture de la description qui va suivre d'un mode de réalisation et en se référant aux dessins annexés sur lesquels: La figure 1 est une représentation des éléments fondamentaux d'une machine à laquelle on peut appliquer l'invention. La figure 2 est un schéma synoptique général d'une 2489 199 unité de commande numérique à ordinateur destinée à la mise en oeuvre de l'invention. La figure 3 est un organigramme qui montre les étapes de traitement destinées à l'exécution d'un cycle de fonctionnement de machine de type général. La figure 4 est un organigramme montrant les étapes de traitement destinées à l'exécution d'un cycle d'exploration pour détecter une caractéristique d'une pièce. La figure 5 est un organigramme qui montre les étapes de traitement destinées au test de la caractéristi- que de la pièce. La figure 6 est un organigramme montrant les éta- pes de traitement destinées au déclenchement d'un saut de programme. La figure 1 représente sous forme schématique un type de machine auquel on peut appliquer l'invention. Des moteurs 10 et des transducteurs de position associés 11 sont accouplés mécaniquement à des coulisseaux 12, afin de déplacer les coulisseaux 12 le long de glissières fixes 13 et de générer des signaux représentant les positions relatives des coulisseaux 12. Les coulisseaux 12 et les glissières fixes 13 sont disposés parallèlement aux axes mutuellement perpendiculaires du système de coordonnées tridimensionnel 17. Un système de coordonnées de machine est établi par les accouplements mécaniques des moteurs 10 et des transducteurs de position 11 avec les coulisseaux 12. La pièce à usiner 14 est portée par la table 18 qui est elle-même fixée sur ceux des coulisseaux 12 qui sont parallèles aux axes X et Y du système de coordonnées 17. Un porte-outil 15 est fixé à celui des coulisseaux 12 qui est parallèle à l'axe Z du système de coordonnées 17. Un élément de détection 16 est associé au porte-outil 15. Un mouvement relatif de l'élément de détection 16 par rap- port à la pièce 14 est obtenu en entraixiant les moteurs 10. La pièce 14 est maintenue en place sur la table 18 par des brides de fixation 21 situées sur des surfaces de référence de positionnement 19. Si la pièce 14 représentée est correc- tement alignée sur la table 18, les surfaces de référence de 2489 1 99 positionnement 19 définissent des plans parallèles aux plans définis par les axes de coordonnées 17. La pièce peut com- porter une caractéristique, telle qu'un trou 23, dont la position, par rapport aux surfaces de référence de position- nement 19, varie d'une pièce à une autre sous l'effet des variables de fabrication. En outre, la position précise des surfaces de référence de positionnement 19 par rapport au système de coordonnées de la machine peut varier d'une pièce à une autre à cause de changements dans les brides de fixation 21 ou d'un mouvement de ces dernières. Tous les mouvements des coulisseaux 12 sont com- mandés par l'unité de commande 25 représentée sur la figure 2, au moyen de signaux qui sont générés et échangés avec les dispositifs d'attaque de moteurs de coulisseaux et les transducteurs de position 42. L'invention décrit un procédé pour détecter de façon programmable la présence de carac- téristiques de la pièce, telles que le trou 23,et pour com- mander ensuite la sélection d'étapes opérationnelles sui- vantes dans le programme d'usinage. La figure 2 est un schéma synoptique général montrant l'architecture d'une unité de commande numérique à ordinateur 25 dans laquelle on peut employer l'invention. Bien que les composants particuliers qui sont représentés sur cette figure soient ceux utilisés dans l'unité de com- mande numérique à ordinateur qui est fabriquée par la firme Cincinnati Milacron Inc., l'invention peut être mise en oeuvre dans n'importe quelle unité de commande numérique à ordinateur comprenant des composants équivalents. Par con- séquent, on ne doit pas considérer que les détails de cons- truction constituent des limitations du procédé de l'inven- tion. La communication entre l'opérateur et l'unité de commande s'effectue essentiellement par l'ensemble de dis- positifs du pupitre de commande, comprenant le dispositif d'affichage à tube cathodique 20, le clavier 22, les dispo- sitifs d'entrée de programme 24 et 26 et les boutons-pous- soirs et les voyants de commande 28. Ces dispositifs sont eux-mêmes reliés à l'ordinateur 51 par l'intermédiaire du tiroir d'interface de module de commande 50. Toute l'infor- mation qui est échangée entre ces dispositifs et l'ordina- teur est acheminée par le bus de données d'entrée 48 et le bus de données de sortie 46. Ces bus sont constitués par huit lignes de signal parallèles. La communication entre la machine et l'unité de commande, par laquelle l'unité de commande contrôle les conditions de la machine et commande le fonctionnement de la machine, s'effectue par l'ensemble d'interfaces de machine comprenant la servocommande de coulisseau 30, l'interface d'électro-aimants de machine 32, l'interface de voyants de machine 34, l'interface d'in- terrupteurs de fin de course de machine 36, l'interface de boutons-poussoirs de machine 38 et le dispositif de comman- de de vitesse de broche 40. Ces interfaces commandent les éléments respectifs suivants de la machine: les disposi- tifs de commande des moteurs des coulisseaux et les trans- ducteurs de position 42, les éléments de changement d'ou- til et d'autres mécanismes diirers 44, les voyants de la machine 54, les interrupteurs de fin de course correspon- dant à un dépassement de la course autorisée des coulis- seaux et à d'autres mécanismes de la machine, 56, les bou- tons-poussoirs de fonctions d'opérateur, 58, et le dispo- sitif de commande du moteur de la broche, 60. Ces disposi- tifs de la machine sont reliés par les interfaces respec- tives à l'ordinateur, par l'intermédiaire du bus de module d'interface de la machine, 52, et tout l'échange d'informa- tion entre ces dispositifs et l'ordinateur s'effectue par le bus de données d'entrée 48 et le bus de données de sortie 46. L'information de détection de surface est détec- tée par une sonde 64 qui est connectée au bus d'interfaces de la machine, 52, par l'intermédiaire d'une interface de sonde 62. Dans le mode de réalisation préféré, la sonde 64 est une sonde à contact de type tridimensionnel, disponi- ble dans le commerce, qui contient un contact de fin de course qui est actionné lorsque la sonde est déformée et qui n'est pas actionné lorsque la sonde n'est pas défor- mée. L'interface de sonde 62 détecte l'état du contact de fin 248*199 de course de la sonde et elle émet cette information par le bus d'interfaces de la machine, 52. Comme l'homme de l'art pourra le noter, l'invention peut être mise en oeuvre avec d'autres moyens de détection de surface, comme par exemple un capteur capacitif, un capteur photoélectrique, un capteur acoustique ou d'autres moyens de détection de rayonnement. A titre d'alternative à la sonde de surface à contact, 64, l'invention utilise un module de commande de couple, 66, qui contrôle les transducteurs du moteur de broche, 68, et génère un signal de contact pour produire une interruption d'interface d'élément de détection lors- que le couple de coupe est supérieur ou égal à une limite de couple prédéterminée. Les transducteurs du moteur de broche mesurent le courant, la tension et la vitesse angu- laire du moteur de la broche. Les détails du module de commande de couple 66 sont décrits dans la demande de brevet U.S. 065 583, déposée le 10 Aoilt 1979 et qui est la propriété de la Demanderesse. On pourrait utiliser n'importe quel autre dispositif de détection de force de coupe disponible dans le commerce, permettant au program- meur de définir une limite de force détectable, à la place du module 66 et des transducteurs 68. L'ordinateur 51 comprend fondamentalement une mémoire 72 destinée à enregistrer des instructions de pro- gramme et des données de programme, et une unité centrale qui est destinée à interpréter les instructions de pro- gramme et à manipuler les données de programme. Un pro- gramme de système d'exploitation 81 commande la séquence des exécutions de programmes dans l'ordinateur. Sous la supervision du programme de commande de cycle de machine,80, un programme de commande de lecture/affichage de programme de pièce, 74, commande l'entrée d'un programme d'usinage et d'autres informations d'entrée à partir des dispositifs d'entrée 24, 26 et du clavier et des boutons-poussoirs, 22 et 28. Le programme de commande de dispositifs d'entrée 76 est un sous- programme destiné à commander le fonctionnement des dispositifs d'entrée 24 et 26 qui peuvent être constitués par un lecteur de bande ou un autre dispositif d'entrée. Le programme de format d'affichage 78 définit les emplace- ments des caractères et accomplit d'autres opérations d'af- fichage associées au dispositif d'affichage à tube catho- dique 20. Le programme de traitement de bloc de commande numérique, 82, décode les données. entrantes, accomplit des contrôles de parité et d'autres contrôles d'erreur et convertit les données sous un format utilisable pour l'uni- té de commande numérique. Le programme de traitement de bloc de commande numérique 82 contient un programme poin- teur de bloc suivant, 84, qui conserve la trace du bloc de données qui est exécuté et qui détermine l'emplacement du bloc de données suivant à utiliser. Le programme de préparation de données 86 accom- plit la fonction générale qui consiste à trier les données traitées par le programme de traitement de bloc de comman- de numérique 82 et à enregistrer les données dans ses posi- tions de mémoire respectives. Sous la commande du program- me de préparation de données 86, le programme de données d'outil 87 enregistre des mots d'identification pour les outils actifs qui sont utilisés, ainsi que des valeurs de compensation pour la longueur ou le diamètre de ces outils qui peuvent être introduites manuellement par l'opérateur ou automatiquement par un calibre d'outil automatique. L'uni- té de commande numérique à ordinateur 25 considère que la sonde 64 est un type d'outil et, par conséquent, le pro- gramme de données d'outil 87 enregistre l'information de numéro d'outil identifiant la sonde, ainsi que les données de longueur de la sonde et de diamètre de la pointe de la sonde. Le programme de préparation et de décodage et d'enre- gistrement de fonctions diverses, 88, réagit à un bloc de données et il décode toutes les informations diverses appro- priées concernant les fonctions mises en oeuvre avant les déplacements et après les déplacements et affectant les dé- placements qui sont exigés par les fonctions préparatoires. Ce programme réagit à un certain nombre de nouveaux codes de fonctions préparatoires, ou codes Get à des codes d'opé- ration définis par l'invention, de façon à déclencher le cycle d'exploration et les fonctions arithmétiques néces- saires. En outre, ce programme réagit à des données d'en- trée en mettant en fonction et en équilibrant le circuit de commande de couple, ainsi qu'en définissant des limi- tes de couple de référence. La mémoire de position et de vitesse d'avance courantes et commandées, 94, conserve des données de position et de vitesse d'avance couran- tes et futures. Connaissant les données de position et de vitesse d'avance ainsi que d'autres informations,leprogia=me de calcul de données de déplacement 96 détermine la va- leur de la longueur d'un déplacement courant et il détermi- ne les distances axiales et les vitesses d'avance pour réa- liser le déplacement désiré. La mémoire d'ordre d'outil et de vitesse de broche, 98, définit les vitesses de broche et les outils demandés par le programmeur pendant l'exécu- tion du déplacement. Le programme de commande de sortie 102 reçoit les données provenant du programme de préparation de don- nées 86 et il commande l'exécution et le transfert de ces données vers les éléments de la machine. Un programme de commande d'exécution de déplacement 104 commande la géné- ration et la distribution aux divers servomécanismes de signaux d'ordre représentant des données de coordonnées axiales. Le programme de demande de traitement de mécanis- me 106 commande l'exécution des fonctions de la machine avant et après déplacement. Le programme d'achèvement ou d'interruption de déplacement et de traitement, 108, suit l'exécution d'un déplacement d'usinage particulier par la machine, il détermine l'exécution avec succès d'un dépla- cement d'usinage particulier ou sa terminaison prématu- rée et il commande la réaction à ce déplacement. Le pro- gramme d'armement et de service d'interruption par l'élé- ment de détection, 110 commande la mise en action des cir- cuits d'interruption de l'interface 62, ou du module de détection de couple 66. Si l'interruption d'élément de dé- tection de surface est déclenchée, le programme indique qu'une surface a été détectée en arrêtant le mouvement et en positionnant les signaux de condition appropriés. Le programme de saut de bloc 112 commande le programme de traitement de bloc de commande numérique dans sa sélection de blocs de données non séquentiels, en agissant en asso- ciation avec le programme pointeur de bloc suivant, 84. Le programme de commande de mécanisme 116 réagit aux demandes provenant du programme de demande de traite- ment de mécanisme 106 en actionnant les éléments de machi- ne nécessaires pour exécuter le traitement de machine de- mandé. La file d'attente de demandes de traitement 118 enregistre un certain nombre de traitements demandés et le programme de déclenchement de traitement 120 dessert la file d'attente et déclenche les traitements qui sont enre- gistrés dans cette dernière. Le programme de commande d'exécution de traitement 122 contrôle l'exécution des traitements qui sont mis en action et il détermine le moment auquel l'activité de ces traitements est terminée. La figure 3 est un organigramme d'un cclye de machine général et montre l'interaction des composants des sous-ensembles de la figure 2, lorsqu'ils traitent un bloc d'information dans un programme d'usinage. En suppo- sant que l'unité de commande soit dans un mode de fonction- nement correspondant à la commande numérique, et non dans un mode manuel ou un mode d'introduction manuelle de données, le cycle de machine est déclenché au moment o l'opérateur appuiesur un bouton-poussoir de démarrage de cycle. Sous l'effet de la réception d'un signal d'entrée provenant du bouton-poussoir de démarrage de cycle, le programme de com- mande de cycle de machine 80 de la figure 2 commande le transfert d'un bloc d'instructions et de données associées, à partir de l'un des dispositifs d'entrée de programme 24 ou 26. L'étape de traitement 124 exige un transfert du bloc d'information vers l'unité de commande, à partir du disposi- tif d'entrée. Les lecteurs de bande perforée en papier et les unités de disque souple constituent des exemples carac- téristiques des types de dispositifs d'entrée de programme qui sont couramment utilisés. Le dispositif d'entrée actif 2489 1 99 11. courant est identifié par le programme de commande de lecture/affichage du programme de pièce, 74, qui sélec- * tionne à son tour le programme de fonctionnement du dispo- sitif d'entrée approprié parmi l'ensemble de programmes 76. Les données de programme de pièce sont ensuite transférées du dispositif d'entrée actif vers la zone de mémoire tam- pon qui est associée au programme de traitement de bloc de commande numérique 82. L'étape de traitement 126 de la figure 3 deman- de le traitement du bloc d'information. Le pointeur de bloc suivant 84 identifie le bloc de données suivant à introduire qui est dans ce cas le premier bloc du program- me d'usinage. Les programmes de traitement de bloc de com- mande numérique 82 de la figure 2 accomplissent des con- trôles d'erreur sur les données et ils convertissent les données en binaire, à partir du code dans lequel elles sont reçues du dispositif d'entrée. Le programme de com- mande de cycle de machine 80 fait alors en sorte que le programme de préparation de données 86 sépare les données de coulisseaux de la machine des données de mécanisme de la machine et calcule les déplacements incrémentiels des coulisseaux de la machine, à partir des données de pro- gramme d'usinage définissant une position initiale et une position finale. Le programme de commande de cycle de machine 80 commande le programme de commande de sortie 102 de façon qu'il sépare les données d'axe et d'interpo- lation d'opérations de mécanisme, telles que par exemple la vitesse de la broche, le numéro d'outil et des ordres de fonctions diverses. Le programme de com- mande de sortie 102 transfère ensuite les données de vites- se d'avance et de longueur de déplacement vers la servocom- mande 30, par le bus d'interface de machine 52. L'étape de traitement 128 détermine si une inter- polation est nécessaire. Dans l'invention, il peut exister certains blocs d'information programmés dans lesquels aucun mouvement des coulisseaux n'a lieu, mais dans lesquels cer- taines fonctions logiques doivent être accomplies. Si aucune interpolation n'est nécessaire, le traitement passe à l'éta- pe 130 qui demande l'exécution des fonctions logiques. En retournant à la figure 2, on note que dans les blocs d'in- formation demandant des fonctions logiques, le programme de décodage et d'enregistrement 88 décodera des codes pré- paratoires spéciaux et le programme de saut de bloc 100 assemblera l'information et lesdonnées nécessaires pour exécuter la fonction logique demandée. Ensuite, le pro- gramme de commande de sortie 102 fait en sorte que le programme de saut de bloc 112 exécute les fonctions logi- ques demandées. Le bloc d'achèvement de traitement de dé- placement 108 détecte le moment auquel ces fonctions logi- ques ont été accomplies et il fait passer le traitement à l'exécution du bloc de données suivant ou il interdit tout traitement ultérieur, conformément à ce que demandent les fonctions logiques. En retournant à la figure 3, on note que si l'interpolation est demandée par l'étape de traitement 128, le traitement passe à l'étape 132 qui déclenche l'exécution des traitements de machine qui doivent avoir lieu avant le déplacement des coulisseaux de la machine, - comme par exemple la mise en fonction de la broche et du liquide de refroidissement, la mise en fonction du module de commande de couple, l'établissement d'une limite de cou- ple nécessaire, etc. Le programme de commande de sortie 102 de la figure 2 déclenche un traitement de machine en actionnant le programme de commande de mécanisme 116 qui dessert la file d'attente de traitements 118. Cette mise en action a pour effet d'interdire le démarrage de l'inter- polation sur les axes et de permettre au programme de com- mande de mécanisme 116 d'exécuter les traitements de machi- ne avant déplacement qui sont demandés, de la manière défi- nie à l'étape 134 de la figure 3. Une fois que les traitements demandés sont ter- minés, le programme de commande d'exécution de traitement 122 fait en sorte que le programme de commande de mécanis- me 116 génère un signal de déclenchement de cycle de com- mande numérique relatif au démarrage du déplacement, qui permet au système d'exploitation de l'unité de commande nu- 248 9199 mérique à ordinateur d'autoriser l'interpolation sur les axes jusqu'à la fin du déplacement ou jusqu'à l'interrup- tion de surface, de la manière définie à l'étape de trai- tement 136 de la figure 3. Dans le cas-de l'exécution d'un cycle d'exploration selon un seul axe de mouvement, le bloc d'information d'exploration peut définir un point final dans une surface de la pièce. Par conséquent, lorsque l'élément de détection détecte la pièce, l'interface d'élé- ment de détection qui est active, c'est-à-dire le module de commande de couple 66 ou l'interface de sonde 62, génè- re une interruption demandant le service du programme d'armement et de service d'interruption d'élément de détec- tion, 110. Ceci provoque un arrêt immédiat du mouvement du coulisseau et un signal de fin de déplacement est généré au moment de l'achèvement du cycle d'exploration. Lorsque la pièce n'est pas présente, une fin de déplacement se produit de la manière normale. Dans tous les cas, l'étape de traitement 138 nécessite que le programme de commande de sortie 102 déclenche l'exécution d'un déplacement de retour, de la manière déterminée par la fonction de pré- paration qui est active et commandée par le programme d'achèvement ou d'interruption 108. Ensuite, le programme de commande de sortie exécute n'importe quelles fonctions demandées postérieures au déplacement. Les traitements particuliers à exécuter après interpolation comprennent des fonctions1tel1es que l'arrêt de la broche, la mise hors fonction du liquide de refroidis- sement et le changement d'outils. Le système d'exploitation de l'unité de commande numérique à ordinateur met en action le programme de commande de mécanisme 11.6 qui passe à l'exé- cution de ces traitements, conformément à l'étape de trai- tement 140 de la figure 3. Le système d'exploitation de l'unité de commande numérique à ordinateur ne peut pas reprendre le cycle de machine automatique jusqu'à ce que le programme de commande de mécanisme 116 génère un signal de déclenchement de cycle de commande numérique correspon- dant à la fin du déplacement. Conformément à l'étape de traitement 142 de la figure 3, si le programme d'usinage n'est pas terminé, le déclenchement du cycle de commande numérique final déclenche le transfert d'un autre bloc d'information et l'exécution d'un autre cycle de machine. Le traitement de la figure 3 se poursuit jusqu'à la fin du programme de pièce. L'invention offre au programmeur de pièces la possibilité d'utiliser un élément de détection de surface pour détecter la présence de caractéristiques d'une pièce. On supposera par exemple qu'on est en présence de deux pièces qui sont identiques à l'exception du fait que l'une d'elles comporte un trou de noyau autour duquel on doit percer un cercle de trous de boulons pour une plaque de fermeture. L'autre pièce ne nécessite pas la plaque de fermeture et, par conséquent, le cercle de trous de bou- lons ne doit pas être usiné. Sans l'invention, le program- meur de pièces prépare de façon caractéristique deux pro- grammes, l'un avec le cercle de trous de boulons et l'au- tre sans ce cercle. Selon une variante, on peut utiliser un seul programme,mais l'opérateur de la machine doit alors intervenir et sauter manuellement les étapes d'usi- nage du cercle de trous de boulons. Avec l'invention, le programmeur de pièces pré- pare un seul programme dans lequel, immédiatement avant les étapes opérationnelles d'usinage du cercle de trous de boulons, il définit des blocs d'information destinés à l'exécution d'un cycle d'exploration pour détecter la pré- sence du trou de noyau. Un autre bloc d'information effec- tue un test sur les résultats du cycle d'exploration et, si le trou de noyau existe, le programme est exécuté selon une séquence continue pour usiner le cercle de trous, de boulons. Si le trou de noyau est absent, le programme saute automatiquement à un emplacement non séquentiel qui est situé après les instructions d'usinage du cercle de trous de boulons, ce qui saute ces opérations d'usinage. Un cycle d'exploration est déclenché par des pre- mières instructions qui sont définies par une fonction de préparation spéciale ou un mot G. Un mot G à deux chiffres peut être choisi arbitrairement de façon à satisfaire aux - normes de programmation. Le cycle d'exploration est exécu- té en utilisant un élément de détection pour détecter une surface d'une pièce qui est associée à une caractéristique de la pièce. L'élément de détection peut être soit une sonde de contact avec une surface, 64, et son interface associée 62, soit un outil de coupe et le circuit de mesure de couple associé, comprenant les transducteurs 68 et le module d'interface 66. Lorsqu'on utilise l'outil de coupe, le programmeur définit une limite de couple prédéterminée qui est équivalente à un contact superficiel de l'outil de coupe avec une surface de la pièce. On utilise un mot G à deux chiffres particulier pour distinguer entre ces deux éléments de détection de surface. Comme on l'a envisa- gé précédemment, la fonction de changement d'outil est une fonction de fin de déplacement. Par conséquent, dans un bloc de bande précédant immédiatement la définition d'un cycle d'exploration, le programmeur de pièces doit définir un cycle de changement d'outil pour charger sur la broche soit une sonde de contact avec une surface, soit l'outil de coupe approprié. Pour détecter la présence du trou de noyau, le programmeur de pièces doit tout d'abord posi- tionner la broche de la machine face à l'ouverture du noyau, définissant ainsi une position de départ d'un dé- placement de cycle d'exploration. Le cycle d'exploration est exécuté en déplaçant l'élément de détection vers l'ou- verture du trou de noyau, le long de l'axe de mouvement Z. Pour effectuer le cycle d'exploration, le pro- grammeur définit des instructions d'exploration avec le bloc d'information suivant dans le programme d'usinage Nnnn Gpp Zzzzzzzz Le mot N définit le numéro de séquence de l'étape opéra- tionnelle dans le programme d'usinage. L'instruction G définit un cycle d'exploration de caractéristique de pièce utilisant la sonde de contact avec une surface. L'adresse Z définit l'axe de mouvement selon lequel le cycle d'explora- tion aura lieu et le mot Z définit une position finale du côté intérieur par rapport à la surface de la pièce, théo- riquement à l'intérieur de-l'ouverture du trou de noyau. Le cycle d'exploration est limité à un seul axe de mouvement à la fois. Cependant, il peut avoir lieu selon l'un quel- conque des trois axes rectilignes perpendiculaires et, par conséquent, au lieu de programmer un Z, on peut utili- ser un mot X ou un mot Y. En outre, d'autres mots M, S et T peuvent être inclus facultativement. Ce bloc d'informa- tion est lu et décodé par-le programme de traitement de bloc de commande numérique 82. Le programme de préparation de données 86 décode la fonction de préparation G et il prépare l'exécution d'un cycle d'exploration conformément au traitement qui est défini sur la figure 4. L'étape de traitement 144 de la figure 4 est exécutée par le programme d'armement et de service d'in- terruption d'élément de détection 110 du programme de commande de sortie 102, pour armer l'interruption de l'interface d'élément de détection, c'est-à-dire l'inter- face de sonde 62. L'étape de traitement 146 commande l'exécution des fonctions qui ont lieu avant le déplace- ment. L'étape de traitement 148 exécute un déplacement d'attaque qui a été préparé par le programme de données de déplacement et de calcul 96 du programme de prépara- tion de données 86. L'exécution du déplacement d'attaque est commandée par le programme de commande d'exécution de déplacement 104 qui fait partie du programme de commande de sortie 102 et qui génère un premier signal d'ordre pour déplacer l'élément de détection avec une première vitesse d'avance présélectionnée le long de l'axe. L'étape de décision 150 détecte l'apparition d'une interruption d'interface d'élément de détection. Si la sonde vient en contact avec une surface de la pièce, elle fait apparaî- tre une interruption à laquelle répondra le programme d'armement et de service d'interruption d'élément de détec- tion 110. Sous l'effet de cette interruption, le programme d'interruption de déplacement 108 arrête immédiatement le mouvement, ce qui définit un premier point de terminaison et positionne un indicateur de pièce présente représen- tant un premier état d'un signal de condition, de la maniè- re définie à l'étape de traitement 152. Si l'interruption R489199 d'interface d'élément de détection ne se produit pas, l'étape de traitement 154 détermine si la fin du déplace- ment est atteinte. Lorsque le programme d'achèvement de traitement de déplacement 108 détecte que la sonde s'est déplacée jusqu'à la position finale définie par le mot Z, un signal de fin de déplacement est généré, ce qui défi- nit un second point de terminaison. Le mouvement de l'élé- ment de détection est arrêté et l'étape de traitement 156 restaure l'indicateur de pièce présente, ce qui représente un second état du signal de condition. Dans un cas comme dans l'autre, à partir de n'importe quel point de terminaison, le programme de don- nées de déplacement et de calcul 96 du programme de pré- paration de données 86 génère un déplacement de retrait sous l'effet du programme d'achèvement de déplacement 108; et le programme de commande de sortie 102 provoque l'exé- cution du déplacement de retrait, par l'intermédiaire du programme de commande d'exécution de déplacement 104. Le déplacement de retrait génère un second signal d'ordre destiné à déplacer l'élément de détection avec une vitesse d'avance présélectionnée pour le faire retourner à son point de départ, le long de l'axe Z. Lorsque la sonde est retournée à sa position de départ, l'étape de traitement désarme l'interruption d'interface d'élément de détec- tion et l'étape de traitement 162 fait en sorte que le pro- gramme de commande de mécanisme 116 exécute les fonctions éventuelles qui interviennent après le déplacement. Si le circuit de mesure de couple doit être uti- lisé, le mot G est programmé sous la forme d'un Gtt, et un Fffff est programmé. Dans ce cas, le déplacement d'atta- que est exécuté le long de l'axe programmé avec une vitesse d'avance définie par le mot F. Si une vitesse d'avance est programmée avec un cycle de mesure Gpp, elle est enregis- trée pour le bloc d'information suivant ne correspondant pas à une mesure. A ce point, le cycle d'exploration a fourni au programmeur de pièces des données enregistrant l'existence du trou de noyau dans la pièce. Si la sonde est venue en et*O &4a 2489 199 contact avec la pièce, l'indicateur de pièce présente est positionné, ce qui indique qu'aucun trou de noyau n'existe. Si la sonde s'est déplacée jusqu'à l'extrémité de son dé- placement programmé, l'indicateur de pièce présente n'est pas positionné et, par conséquent, le trou de noyau existe effectivement. Pour tester l'état de l'indicateur de pièce présente, le programmeur doit définir le bloc d'informa- tion suivant dans le programme d'usinage Nnnn (TST G6 T2222 F3333) Ici encore, le mot N définit le numéro de séquence et les parenthèses sont utilisées conformément aux règles de pro- grammation recommandées. L'instruction TST définissant une fonction de test et l'instruction G6 définissant un test de l'indicateur de pièce présente sont des secondes instructions qui définissent une fonction de test logique. Les mots T et F sont des troisièmes instructions qui défi- nissent des emplacements à rechercher dans le programme de pièce, en fonction du résultat du test. L'adresse T est associée à un premier état du signal de condition repré- senté par l'indicateur de pièce présente et le mot T défi- nit un premier emplacement non séquentiel dans le program- me d'usinage qui devra être recherché sous l'effet du pre- mier état du signal de condition. L'adresse F est associée au second état du signal de condition et le mot F définit un second emplacement dans le programme d'usinage qui devra être recherché sous l'effet du second état du signal de condition. Dans le mode de réalisation préféré, les troi- sièmes instructions comprennent des blocs d'information sé- parés qui sont programmés dans le programme d'usinage aux premier et second emplacements. Au premier emplacement non séquentiel dans le programme d'usinage, le programmeur insère un bloc de label Nnnn (LAB L2222), et au second emplacement il programme un bloc de label Nnnn (LAB L3333). Par conséquent, une adresse de label correspondante, avec un mot L identique>est affectée aux mots T et F. Le traitement de test de G6 est représenté sur la figure 5. L'étape de traitement 164 détermine si l'indi- cateur de pièce présente est positionné- ou non. Si on suppose qu'il n'existe pas de trou de noyau, l'indicateur est posi- tionné. L'étape de traitement 166 détermine l'existence d'une adresse T et l'étape de traitement 168 déclenche une recherche dans le programme pour trouver le bloc de label ayant un mot L correspondant au mot T programmé. Dans l'exemple considéré, du fait qu'il existe pas de trou de noyau, il faut que les étapes d'usinage suivantes définis- sant l'usinage du cercle de trous de boulons soient sautées. Par conséquent, immédiatement après les étapes d'usinage pour le cercle de trous de boulons, le programmeur de piè- ces insère un bloc de label ayant un numéro de séquence et une adresse L avec un mot L identique au mot T. La-recherche dans le programme est déclenchée par le programme de saut de bloc 114 du programme de commande de sortie 102 qui transmet le mot L au programme de traite- ment de bloc de commande numérique 82 et qui fait en sorte que ce dernier positionne le pointeur de bloc suivant 84 sur le bloc de label avec un mot L égal au mot T. Ensuite, le programme d'achèvement de déplacement 108 génère un signal de fin de déplacement pour que le programme de commande de cycle de machine 80 déclenche le transfert du bloc suivant du programme d'usinage. Du fait que le poin- teur de bloc suivant 84 a été positionné sur le bloc de label ayant le mot L désiré, le programme de traitement de bloc 82 ne transfère pas les données de bloc relatives aux blocs intermédiaires entre le bloc de test et le bloc de label. Une fois que le programme de traitement de bloc détecte le bloc de label désiré, il positionne le pointeur de bloc suivant sur le bloc qui suit immédiatement le bloc de label, ce qui termine effectivement la recherche. L'exé- cution du programme d'usinage reprend alors avec ce bloc. En retournant à l'étape de traitement 164, on note que si l'indicateur de pièce présente n'a pas été posi- tionné, ceci indique que le trou de noyau est présent. L'étape de traitement 180 détecte l'existence de l'adresse F et l'étape de traitement 182 déclenche une recherche dans le programme pour trouver un bloc de label ayant un mot L égal au mot F. Cette opération est à nouveau exécutée par le programme de saut de bloc 114 du programme de commande de sortie 102 qui commande le fonctionnement du programme de pointeur de bloc suivant, 84, faisant partie du programme de traitement de bloc de commande numérique 82. Dans l'exemple considéré, si un trou de noyau existe effective- ment, les blocs d'information déterminant l'usinage du cer- cle de trous de boulons doivent être exécutés. Ces blocs d'information se trouvent très probablement immédiatement après le bloc d'information de test. Par conséquent, à ce point,le programmeur insère un bloc de label ayant une adresse L et un mot L égal au mot F. Le programme fait donc l'objet d'une recherche allant jusqu'au bloc d'infor- mation suivant dans lequel une correspondance entre le mot L et le mot F est détectée. L'étape de traitement 186 posi- tionne le pointeur de bloc suivant 84 au départ du bloc d'information, immédiatement après le bloc L. Ceci déclen- che évidemment l'usinage du cercle de trous de boulons. On vient de décrire une possibilité qui permet- à un programmeur de pièces d'utiliser un élément de détec- tion pour détecter la présence d'une caractéristique d'une pièce et d'utiliser cette information pour effectuer des sauts conditionnels dans le programme de pièce. L'inven- tion offre une autre possibilité. Si le programme de pièce contient un certain nombre d'étapes opérationnelles cons- tituant des alternatives, la progression du processus d'usi- nage peut nécessiter que le programmeur saute de façon inconditionnelle certaines de ces étapes opérationnelles. Par exemple, si on sait que la pièce présente sur la machi- ne appartient à une famille de pièces nécessitant le per- gage de configurations de trous de boulons différentes, le programmeur de pièces crée un programme contenant des éta- pes opérationnelles pour percer toutes les configurations de trous de boulons. De plus, le programmeur ajoute une série d'instructions d'exploration et de test de présence de pièce pour déterminer quelles sont les configurations de trous qui existent et pour définir ainsi la série appro- priée d'étapes opérationnelles pour l'usinage de la pièce. - Des instructions de saut sont ajoutées à la fin de chaque 248e199 série d'étapes opérationnelles définissant des configura- tions de trous, pour provoquer la reprise de l'usinage au point approprié dans le programme. Cette possibilité est offerte par la définition du bloc d'information de saut suivant dans le programme d'usinage: Nnnn (JMP L1111) Le terme JMP définit une instruction de saut et le terme L1111 définit une instruction d'emplacement de saut. En plus de ce bloc d'information, le programmeur doit insérer un bloc de label à l'emplacement de saut désiré. Le bloc de label contient un code d'opération LAB, une adresse L et un mot L identique au mot L qui figure dans le bloc de saut. Le bloc de label doit être placé immédiatement avant le bloc d'information qui constitue la destination du saut. Lorsque le programme de traitement de bloc de commande numérique 82 lit l'instruction JMP, le programme de saut de bloc 100 appartenant au programme de prépara- tion de données 86 prépare un bloc d'instructions sous l'effet duquel le programme de saut de bloc 114 apparte- nant au programme de commande de sortie 102 déclenche une recherche dans le programme, de la manière définie par le traitement de la figure 6. L'étape de traitement 188 né- cessite le déclenchement d'une recherche dans le programme. Pour accomplir ceci, le programme de saut de bloc 114 four- nit au pointeur de bloc suivant 84, appartenant au pro- gramme de traitement de-bloc de commande numérique 82, le mot L qui établit le bloc de label en tant que bloc ac- tif suivant. Ensuite, des blocs de programme sont transfé- rés vers le programme de traitement de bloc 82 jusqu'à la rencontre d'un bloc de label ayant un mot L identique au mot L qui figure dans le bloc de saut. Lorsque cette équi- valence est trouvée, ce qui est indiqué par l'étape de traitement 190, le pointeur de bloc suivant 84 est posi- tionné sur le bloc qui suit immédiatement le bloc de label, conformément à l'étape de traitement 192, et l'exécution du programme d'usinage reprend avec ce bloc. Le programmeur de pièces a ainsi la possibilité d'exécuter à la fois des sauts conditionnels et des sauts inconditionnels dans le programme t489199 * de pièce, sans aucune intervention de la part de l'opéra- teur de la machine, grâce à quoi le processus d'usinage n'est pas interrompu. On a choisi arbitrairement un certain nombre de codes de programmation dans la description du cycle d'ex- ploration, du cycle de test et du-cycle de saut de pro- gramme. L'homme de l'art notera que les codes réels qui sont utilisés pour exécuter ces fonctions dépendent du concepteur du système et des caractéristiques d'une unité particulière de commande numérique à ordinateur. On ne doit donc pas considérer de façon limitative les codes par- ticuliers qui sont utilisés dans la description ci-dessus. Il va de soi que de nombreuses autres modifica- tions peuvent être apportées au procédé décrit et représen- té, sans sortir du cadre de l'invention. REVENDICATIONS 1. Procédé de détection de la présence d'une caractéristique d'une pièce et de commande de la séquence d'exécution d'étapes opérationnelles dans un programme d'usinage qui est enregistré dans une unité de commande (25) connectée à une machine, cette machine comportant des coulisseaux de machine (12) qui se déplacent le long d'axes de mouvement sous l'effet du programme d'usinage pour produire un mouvement relatif entre une pièce à usi- ner (14) et un porte-outil (15) auquel un outil de coupe et un élément de détection (16) sont associés sélective- ment, caractérisé en ce que: (a) on enregistre en associa- tion avec le programme d'usinage (1) des premières instruc- tions destinées à définir un cycle d'exploration pour faire en sorte que l'élément de détection détecte la présence d'une caractéristique de la pièce, (2) des secondes ins- tructions destinées à tester la présence de la caractéris- tique de la pièce pour déterminer la séquence d'exécution d'étapes opérationnelles suivantes dans le programme d'usinage, et (3) des troisièmes instructions destinées à définir un emplacement non séquentiel dans le programme d'usinage qui est associé à une étape opérationnelle par- ticulière; (b) on exécute le cycle d'exploration sous l'effet de la première instruction pour produire un si- gnal de condition ayant un premier état lorsque l'élément de détection détecte la caractéristique de la pièce et ayant un second état lorsque l'élément de détection ne détecte pas la caractéristique de la pièce; (c) on teste l'état du signal de condition sous l'effet des secondes instructions; et (d) on commande la séquence d'exécution des étapes opérationnelles dans le programme d'usinage sous la dépendance de l'état du signal de condition et des troi- sièmes instructions. 2. Procédé selon la revendication 1, caractérisé en ce que l'opération consistant à commander la séquence d'exécution des étapes dans le programme d'usinage comprend en outre les opérations suivantes: (a) on poursuit l'exécu- tion séquentielle des étapes opérationnelles dans le pro- gramme d'usinage, sous l'effet d'un état du signal de con- dition; (b) on recherche dans le programme d'usinage l'emplacement non séquentiel des étapes opérationnelles- particulières qui sont définies par les troisièmes instruc- tions, sous l'effet d'un autre état du signal de condition; et (c) on poursuit. l'exécution de l'étape opérationnelle particulière dans le programme d'usinage. 3. Procédé selon la revendication 1, caractérisé en ce que l'élément de détection (16) est associé au porte-outil (15) et l'opération d'exécution d'un cycle d'exploration comprend en outre les opérations suivantes: (a) on enregistre en association avec les premières ins- tructions des données qui définissent un déplacement le long d'un axe de mouvement, depuis une position initiale jusqu'à une position finale située du c8té intérieur d'une siurface de la pièce; (b) on génère un premier si- gnal d'ordre pour déplacer l'élément de détection le long de l'axe de mouvement, vers la position finale; (c) on arrête le mouvement de l'élément de détection lorsque ce dernier détecte la caractéristique de la pièce; (d) on place le signal de condition dans le premier état lorsque l'élément de détection détecte la caractéristique de la pièce; (e) on arrête le mouvement de l'élément de détec- tion lorsque ce dernier atteint la position finale; (f) on place le signal de condition dans le second état lors- que l'élément de détection atteint la position finale; et (g) on génère un second signal d'ordre pour déplacer l'élément de détection depuis un point d'arrêt afin de le ramener à la position initiale, le long de l'axe de mouve- ment. 4. Procédé selon la revendication 1, dans lequel l'outil de coupe est associé au porte-outil (15) et l'uni- té de commande comprend un circuit de mesure de couple (68) qui réagit à l'outil de coupe en générant un signal de contact lorsque le couple de coupe qui est imposé à l'outil de coupe est égal à une limite de couple prédéter- minée représentant un contact superficiel de l'outil de coupe sur la pièce, caractérisé en ce que l'opération d'exécu- tion d'un cycle d'exploration comprend en outre les opé- rations suivantes: (a) on enregistre en association avec les premières instructions des données qui définissent un déplacement le long d'un axe de mouvement, depuis une posi- tion initiale jusqu'à une position finale située du côté intérieur d'une surface de la pièce; (b) on génère un premier signal d'ordre pour déplacer l'outil de coupe le long de l'axe de mouvement, vers la position finale; (c) on arrête le mouvement de l'outil de coupe sous l'effet du signal de contact; (d) on place le signal de condition dans le premier état lorsque l'outil de coupe vient en contact superficiel avec la pièce; (e) on arrête le mou- vement de l'outil de coupe lorsque ce dernier atteint la position finale; (f) on place le signal de condition dans le second état lorsque l'outil de coupe atteint la posi- tion finale; et (g) on génère un second signal d'ordre pour déplacer l'outil de coupe depuis un point d'arrêt afin de le ramener à la position initiale, le long de l'axe de mouvement. 5. Procédé selon la revendication 1, caractéri- sé en ce que l'opération d'enregistrement des troisièmes instructions comprend en outre les opérations suivantes (a) on enregistre des troisièmes instructions supplémentai- res qui identifient un premier emplacement non séquentiel dans le programme, en association avec le premier état du signal de condition; et (b) on enregistre d'autres troisiè- mes instructions qui identifient un second emplacement dans le programme, en association avec le second état du signal de condition. 6. Procédé selon la revendication 5, caractérisé en ce que l'opération de commande de la séquence d'exécution des étapes opérationnelles dans le programme d'usinage comprend en outre les opérations suivantes: (a) on effec- tue une recherche dans le programme d'usinage jusqu'au pre- mier emplacement non séquentiel, lorsque le signal de con- dition est dans le premier état; (b) on poursuit l'exécu- tion séquentielle des étapes opérationnelles du programme 248919w d'usinage qui apparaissent au premier emplacement non sé- quentiel; (c) on effectue une recherche dans le programme d'usinage jusqu'au second emplacement, lorsque le signal de condition est dans le second état; et (d) on poursuit l'exécution séquentielle des étapes opérationnelles du programme d'usinage qui apparaissent au second emplacement. 7. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'opération consistant à en- registrer, en association avec le programme d'usinage, une instruction de saut et une instruction d'emplacement de saut dans le programme d'usinage. 8. Procédé selon la revendication 7, caracté- risé en ce qu'il comprend en outre les opérations suivan- tes: (a) on détecte l'instruction de saut; (b) on effec- tue une recherche dans le programme d'usinage jusqu'à l'instruction d'emplacement de saut, sous l'effet de l'instruction de saut; et (c) on poursuit l'exécution sé- quentielle des étapes opérationnelles du programme d'usi- nage qui apparaissent après l'instruction d'emplacement de saut.