FR 2489200 A1 19820305 FR 8116709 A 19810902 2489i0O La présente invention concerne de façon générale le domaine-des machines à commande numérique. L'invention porte plus particulièrement sur une machine à commande numé- rique comportant un élément de détection commandé par pro- gramme qui est destiné à détecter l'emplacement et la posi- tion de caractéristiques de référence sur une pièce. Cette possibilité permet au programmeur de pièces de faire face aux variations de montage d'une pièce à une autre, ce qui réduit au minimum l'intervention de l'opérateur et amé- liore considérablement la productivité. Bien que l'invention de la commande numérique ait considérablement amélioré la vitesse et la fiabilité avec lesquelles on peut usiner de nombreuses pièces, il existe de nombreuses pièces qui nécessitent encore une interven- tion prenant du temps et effectuée par un opérateur quali- fié, au cours du processus d'usinage. Le processus d'usinage commence par la prépara- tion par un programmeur de pièces d'un programme d'usinage basé sur les plans d'une pièce représentée à l'état termi- né. Pour préparer le programme, le programmeur définit un emplacement particulier de la pièce sur la machine, ainsi que des surfaces de référence dimensionnelle particulières de la pièce non usinée. Le programmeur prépare ensuite un programme d'usinage qui est constitué par des blocs d'instructions et de données définies par rapport à un système de coordonnées de programme, créé par le program- meur. Au cours du fonctionnement, une unité de commande connectée à la machine génère des signaux d'ordre sous l'action du programme d'usinage, afin de déplacer un outil de coupe par rapport à la pièce, grâce à quoi la pièce est usinée pour donner la pièce terminée désirée. Cependant, avant l'usinage, l'opérateur de la machine doit tout d'abord positionner la pièce dans le système de coordonnées de la machine, à un emplacement défini par le programmeur de pièces. Le système de coordon- nées de la machine est représenté de façon caractéristique par trois axes de déplacement rectilignes et mutuellement perpendiculaires. Après avoir positionné la pièce, l'opéra- teur de la machine fait avancer manuellement le porte-outil jusqu'à proximité des surfaces de référence désignées sur la pièce ou sur sa monture; et ensuite, en utilisant un cali- bre tenu à la main et des incréments d'avance de plus en plus faibles, l'opérateur positionne le porte-outil aussi près de la pièce qu'il est humainement possible. Lorsque les axes sont en position, l'opérateur actionne un bouton- poussoir de fixation de position qui affecte une coordonnée de programme spécifiée à la surface de la pièce positionnée. La procédure consistant à définir avec précision l'emplace- ment de la pièce dans le système de coordonnées lié à la machine peut prendre de 10 à 15-minutes. De nombreuses pièces de fonderie brutes et de grandes dimensions présentent des variations dimensionnelles importantes par rapport à ce qui a été supposé par le pro- grammeur. Par exemple, l'emplacement des trous et des bossa- ges peut varier d'une valeur atteignant 13 mm par rapport à une position nominale, d'une pièce de fonderie à une autre. Par conséquent, avant.l'usinage de trous ou de surfaces, l'opérateur doit réaligner les coordonnées dimensionnelles du programme avec l'emplacement réel des éléments sur la pièce. Pour faire face à ce problème, l'unité de commande numérique comporte un dispositif de décalage qui établit un décalage de coordonnées pouvant être sélectionné par pro- gramme, dans le but de décaler toutes les dimensions, dans une partie du programme, d'un incrément introduit par l'opé- rateur, pour chacun des axes rectilignes principaux de la machine. Par conséquent, l'opérateur mesure les distances depuis une référence jusqu'aux trous ou aux bossages, en suivant les instructions du programmeur. Il introduit manuellement dans des décalages sélectionnés à l'avance la différence entre ces distances et les distances indiquées par le programmeur. Du fait qu'une pièce de grandes dimen- sions nécessite un grand nombre de décalages et que la perte de productivité est cumulative, les opérations manuelles ci-dessus nécessitent un niveau de qualification relative- ment élevé et, en outre, elles réduisent en fait une machine 2489'00 à commande numérique, très perfectionnée et très coûteuse, en une machine utilisée manuellement. L'invention a pour but de supprimer la nécessité d'interruption du cycle d'usinage par l'opérateur, pour définir l'emplacement exact de la pièce et la position des caractéristiques de référence sur la pièce. L'invention a également pour but de réaliser un dispositif de mesure de pièce destiné à mesurer la position de plusieurs points sur une surface de référence et à déterminer les valeurs maximale, minimale et moyenne des mesures. On peut utiliser les valeurs moyennes pour définir l'emplacement du centre d'une ouverture, d'un trou ou d'un bossage brut, ou pour trouver la surface qui coincide le mieux avec une surface brute. On peut utiliser la valeur maximale pour définir le dégagement par rapport à une sur- face brute et on peut utiliser la valeur minimale pour définir la quantité minimale de matière à enlever pour dresser une surface brute. L'invention a également pour but d'utiliser la position mesurée sur une surface pour calculer une valeur de décalage par rapport à une définition programmée de la surface. L'invention permet également de comparer les valeurs mesurées et les décalages avec des maximums et des minimums définis par le programmeur pour assurer que la pièce est comprise dans les tolérances. Enfin, l'invention a pour but d'utiliser un outil de coupe et un circuit de mesure de couple pour réaliser la détection de surface et pour mesurer de façon précise l'emplacement de la pièce et les positions des sur- faces de la pièce. Un mode de réalisation de l'invention consiste en un procédé destiné à modifier des données de coordonnées dans un programme d'usinage, conformément aux positions de surfaces sur une pièce qui est mesurée par un élément de détection. Un cycle d'exploration est exécuté sous la com- mande du programme pour enregistrer l'emplacement d'un cer- tain nombre de points sur une surface de la pièce. Le 2489i0O cycle d'exploration peut être exécuté en utilisant un outil de coupe et un circuit de mesure de couple ou tout autre mécanisme de détection de surface. Le procédé comprend les opérations consistant à enregistrer les valeurs maximale, minimale et moyenne des valeurs mesurées. Le procédé com- prend en outre le calcul de décalages qui sont utilisés pour aligner des données programmées par rapport à la pièce. En outre, les valeurs mesurées peuvent être comparées avec des valeurs maximales et minimales programmées afin de déterminer si la pièce est comprise dans les tolérances. L'invention sera mieux comprise à'la lecture de la description qui va suivre de modes de réalisation et en se référant aux dessins annexés sur lesquels: La figure 1 est une représentation d'une machine à laquelle on peut appliquer l'invention. La figure 2 est un schéma synoptique général d'une unité de commande numérique à ordinateur qu'on peut utiliser pour mettre en oeuvre l'invention. La figure 3 est un organigramme montrant les éta- pes de traitement pour l'exécution d'un cycle de fonction- nement de machine de type général. Les figures 4a à 4c sont un organigramme montrant les étapes de traitement nécessaires pour mesurer un point sur la pièce. Les figures 5a et 5b sont un organigramme montrant les étapes de traitement destinées au calcul de décalages. Les figures 6a à 6f sont un organigramme montrant les étapes de traitement destinées à la comparaison des valeurs mesurées et calculées avec des maximums et des mini- mums programmés. La figure 7 est un organigramme montrant les étapes de traitement destinées à la restauration de la mémoire de données de surface. La figure 8 est un organigramme montrant les étapes de traitement destinées à mettre en fonction et hors fonction une sonde de détection de surface, conformé- ment aux modes de fonctionnement. 2489.00 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 rela- tives des coulisseaux 12. Les coulisseaux 12 et les glis- siè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 rapport à la pièce 14 est obtenu en entraînant 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 correctement alignée sur la table 18, les surfaces de référence de positionnement 19 définissent des plans parallèles aux plans définis par les axes de coordonnées 17. La pièce peut comporter une caractéristique, telle qu'une nervure 23, dont la position, par rapport aux sur- faces de référence de positionnement 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 mouve- ment de ces dernières. Tous les mouvements des coulisseaux 12 sont commandé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é de détermination des variations de position des surfaces de référence de positionnement 19 et des caracté- ristiques de la pièce, comme la caractéristique 23, et de modification automatique des ordres de positionnement géné- rés par l'unité de commande 25, dans le but d'usiner la pièce 14 conformément à un programme d'usinage qui est enregistré dans l'unité de commande 25, indépendamment de ces variations de position. 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 - commande 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 conséquent, on ne doit pas considérer que les détails de construction constituent des limitations du procédé de l'invention. La communication entre l'opérateur et l'unité de commande s'effectue essentiellement par l'ensemble de dispositifs du pupitre de commande, comprenant le disposi- tif d'affichage à tube cathodique 20, le clavier 22, les dispositifs d'entrée de programme 24 et 26 et les boutons- poussoirs et les voyants 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 com- mande le fonctionnement de la machine, s'effectue par l'en- semble 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'interrupteurs de fin de course de machine 36, l'interface de boutons-poussoirs de machine 38 et le dispositif de commande de vitesse de broche 40. Ces interfaces commandent les éléments respectifs suivants de la machine: les dispositifs de commande des moteurs des coulisseaux et les transduc- teurs de position 42, les éléments de changement d'outil et d'autres mécanismes divers 44, les voyants de la machine 54, les interrupteurs de fin de course correspondant à un dépassement de la course autorisée des coulisseaux et à d'autres mécanismes de la machine, 56, les boutonspoussoirs de fonction d'opérateur, 58, et le dispositif de commande du moteur de la broche, 60. Ces dispositifs de la machine sont reliés parleursinterfaces respectives à l'ordinateur, par l'intermédiaire du bus d'interfaces de la machine, 52, et tout l'échange d'information 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éformée. L'interface de sonde 62 détecte l'état du contact de fin 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 bro- che, 68. Les transducteurs du moteur de broche mesurent le courant, la tension et la vitesse angulaire 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 Août 1979 et qui est la propriété de la Demanderesse. On pourrait utiliser n'importe quel autre dispositif de détec- tion de force de coupe disponible dans le commerce, permet- tant au programmeur de définir une limite de force détecta- ble, à 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 program- me de système d'exploitation 81 commande la séquence des exécutions de programmes dans l'ordinateur. Sous la super- vision 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 dispositif d'entrée 76 est un sous-programme destiné à commander le fonctionne- ment d'un lecteur de bande ou d'un autre mécanisme 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'affichage associées au dispositif d'affichage à tube cathodique 20. Le programme de traitement de bloc de com- mande numérique, 82, décode les données entrantes, accom- plit des contrôles de parité et d'autres contrôles d'erreur et convertit les données sous un format utilisa- ble pour la commande numérique. 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 commande numérique 82 et à enregistrer les données dans ses posi- tions de mémoire respectives. Sous la commande du programme de préparation de données 86, le programme de données d'outil 87 enregistre 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'unité de commande numérique à ordinateur 25 considère que la sonde 64 est un type d'outil et, par conséquent, le programme 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'enregistrement de fonctions diverses, 90, réagit à un bloc de données et il décode toutes les informations diverses approprié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épara- toires, ou codes G, définis par l'invention, dans le but de déclencher le cycle d'exploration et les fonctions arithmé- tiques nécessaires. En outre, ce programme réagit à des données d'entrée en mettant en fonction et en équilibrant le circuit de commande de couple, ainsi qu'en définissant des limites de couple. Le programme identificateur de sur- face active 90 met en fonction un décalage demandé par le programmeur et il met en fonction les tables de données de surface appropriées, 92, pour enregistrer l'information mesurée. La mémoire de position et de vitesse d'avance courantes et commandées, 94, conserve des données de posi- tion et de vitesse d'avance courantes et futures. Connais- sant les données de position et de vitesse d'avance ainsi que d'autres informations relatives à la modification de la position de l'outil, le programme de calcul de données de déplacement 96 détermine la valeur de la longueur d'un déplacement courant et il détermine les distances axiales et les vitesses d'avance pour réaliser le déplacement dési- ré. 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écution du déplacement. Le programme de commande de sortie 102 reçoit les données provenant du programme de préparation de donné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 pro- gramme de demande de traitement de mécanisme 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 et il détermine l'exécution avec succès d'un déplacement d'usi- nage particulier, ou sa terminaison prématurée. Le pro- gramme d'armement et de service d'interruption par l'élé- ment de détection, 110, commande la mise en action de la sonde 64 ou du module de détection de couple 66. Si l'élé- ment de détection de surface est mis en action, le program- me contrôle alors l'apparition d'une interruption provenant de l'élément de détection de surface qui indique que la surface a été détectée, et il commande l'action que nécessi- te la fonction préparatoire effective. Le programme de déca- lage et de test 112 exécute des fonctions entièrement arith- métiques définies par le programmeur pour calculer des décalages ou pour effectuer des comparaisons avec des bandes de tolérance, à la suite d'une détection de surface. Le dispositif de commande de mécanisme 116 réagit aux demandes provenant du programme de demande de traitement de mécanisme 106, de façon à actionner les éléments nécessai- res de la machine pour exécuter le traitement de machine demandé. 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 il-déclenche les traitements qui sont enregis- trés dans cette dernière. Le programme de commande d'exécu- tion 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 cycle 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 supposant que l'unité de commande soit dans un mode de fonctionnement 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 appuie sur 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 commande 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 demande un transfert du bloc d'information vers l'unité de commande, à partir d'un dispositif d'entrée. Les lecteurs de bande perforée en papier et les unités de disque souple sont des exemples caractéristiques des types de dispositifs d'entrée de pro- gramme couramment utilisés. Le dispositif d'entrée actif au moment considéré est identifié par le programme de commande d'affichage et de lecture du programme de pièce, 74, qui sélectionne à son tour le programme de fonctionne- ment de dispositif d'entrée approprié parmi l'ensemble de programmes 76. Les données du programme de pièce sont ensuite transférées du dispositif d'entrée actif vers la zone de mémoire tampon qui est associée au programme de traitement de bloc de commande numérique 82. L'étape de traitement 126 de la figure 3 demande le traitement du bloc d'information. Les programmes de traitement de bloc de commande numérique 82 de la figure 2 effectuent des contrôles d'erreur de données et ils con- vertissent les données en binaire, à partir du code dans lequel elles sont reçues à partir du dispositif d'entrée. Le programme de commande de cycle de machine 80 fait - ensuite en sorte que le programme de préparation de données 86 sépare les données de coulisseaux de machine des données de mécanisme de machine et calcule les déplacements incré- mentiels des coulisseaux de la machine. Le programme de commande de cycle de machine 80 fait en sorte que le pro- gramme de commande de sortie 102 sépare les données d'axe et d'interpolation de ces opérations relatives au mécanis- me, telles que la vitesse de la broche, le numéro de l'outil ét divers ordres de fonctions. Le programme de commande de sortie 102 transfère ensuite les données de longueur de déplacement et de vitesse d'avance vers la servocommande 30, par le bus d'interfaces de la machine, 52. L'étape de traitement 128 détermine si une inter- polation est nécessaire. Dans le cas de l'invention, il peut exister certains blocs d'information programmés dans lesquels aucun mouvement des coulisseaux n'a lieu, mais dans lesquels certaines fonctions de calcul doivent être accomplies. Si aucune interpolation n'est nécessaire, le traitement passe à l'étape 130 qui nécessite l'exécution de fonctions arithmétiques. En retournant à la figure 2, on note que dans les blocs d'information nécessitant des opé- rations arithmétiques, des codes de préparation spéciaux sont décodés par le sous-ensemble de décodage et d'enregis- trement 88. Le programme de fonction de surface 100 assem- ble l'information et les données nécessaires pour exécuter la fonction arithmétique demandée. Ensuite, le programme de commande de sortie 102 fait en sorte que le programme de décalage et de test 112 exécute les fonctions arithmétiques nécessaires. Le programme d'achèvement du traitement rela- tif à un déplacement, 108, détecte le moment auquel ces fonctions arithmétiques ont été achevées et il fait passer le traitement au bloc de données suivant. On retournera maintenant à la figure 3 pour noter que si l'interpolation est exigé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, c'est-à- dire la mise en action de la broche et du fluide de refroidissement, la mise en action du module de commande de couple, l'établissement d'une limite de couple nécessaire, etc. Le programme de commande de sortie 102 de la figure 2 déclenche un traitement de machine en actionnant le disposi- tif de commande de mécanisme 116 qui dessert la file d'attente de traitement 118. Cette mise en action a pour effet de bloquer le démarrage de l'interpolation relative aux axes et de permettre au dispositif de commande de méca- nisme 116 d'exécuter les traitements de machine nécessaires avant le déplacement, de la manière définie à l'étape 134 de la figure 3. Une fois que les traitements demandés sont ache- vés, le programme de commande d'exécution de traitement 122 fait en sorte que le dispositif de commande de mécanisme 116 génère un signal de déclenchement de cycle de commande numé- rique de démarrage de déplacement, qui permet au système d'exploitation de commande numérique par ordinateur d'effec- tuer l'interpolation sur les axes jusqu'à l'extrémité du déplacement ou jusqu'à l'interruption émise par l'élément de détection, de la manièredéfinie à l'étape de traitement 136 de la figure 3. Dans le cas de l'exécution d'un cycle d'exploration le long d'un seul axe de mouvement, le bloc d'information d'exploration définit un point d'extrémité à l'intérieur d'une surface de la pièce. Par conséquent, lorsque la sonde vient en contact avec la pièce ou lorsque l'outil de coupe détecte la pièce, l'interface d'élément de détection active, c'est-à-dire le module de commande de cou- ple 66 ou l'interface de sonde 62, génère une interruption qui doit être traitée par le programme d'armement et de ser- vice d'interruption d'élément de détection, 110. Ceci pro- voque un arrêt immédiat du mouvement du coulisseau et lorsque le cycle d'exploration est terminé, un signal de fin de déplacement est généré. Lorsque la pièce n'est pas présente, une fin de déplacement est produite de la manière normale. Dans un cas comme dans l'autre, l'étape de traite- ment 138 nécessite que le programme de commande de sortie 102 déclenche l'exécution de traitements de machine après déplacement. Les traitements particuliers qui doivent être exécutés après l'interpolation comprennent des fonctions telles que l'arrêt de la broche, la mise hors fonction du fluide de refroidissement et le changement d'outils. Le système d'exploitation de commande numérique par ordinateur actionne le dispositif de commande de mécanisme 116 qui exécute ensuite ces traitements, conformément à l'étape de traitement 140 de la figure 3. Le système d'exploitation de commande numérique à ordinateur ne peut pas reprendre le cycle de machine automatique jusqu'à ce que le dispositif de commande de mécanisme 116 génère un signal de déclenche- ment de cycle de commande numérique, correspondant à 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 final du cycle de commande numérique 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 la possibilité d'utiliser des éléments de détection de surface pour mesu- rer les positions de caractéristiques d'une pièce et en- registrer les positions en vue d'une utilisation ultérieu- re. Dans le mode de réalisation préféré, un cycle de mesure de surface est déclenché avec des fonctions préparatoires désignées par une adresse G. Un motG à deux chiffres peut être choisi arbitrairement de façon à satisfaire aux normes de programmation. Dans le cadre de la description, un mot Gpp définira un cycle de mesure utilisant la sonde de con- tact de surface et un mot Gtt définira un cycle de mesure utilisant le couple de l'outil de coupe. Comme il a été envisagé précédemment, la fonc- tion de changement d'outil est une fonction de fin de déplacement. Par conséquent, dans le bloc d'information précédant un cycle de mesure, le programmeur doit définir un cycle de changement d'outil pour charger soit la sonde, * soit l'outil de coupe approprié sur le porte-outil. Dans le traitement d'une pièce, il est générale- ment nécessaire de définir tout d'abord l'emplacement de la pièce par rapport aux données de coordonnées programmées. On peut ensuite définir diverses caractéristiques de la pièce. La pièce brute comporte de façon caractéristique des surfaces de référence de positionnement, usinées préalable- ment, correspondant aux axes X, Y et Z. Le programmeur peut donc définir des cycles de mesure successifs le long de chacun des axes de mouvement, pour mesurer l'emplacement exact de ces surfaces et pour établir un point de départ de programme à partir de ces surfaces. En pratique, si on suppose qu'on utilise la sonde à contact sur la surface, le programmeur charge la sonde sur le porte-outil et déplace la sonde jusqu'à une position située face à la surface de référence X. Les données de bloc suivantes, définissant un bloc d'instruction de positionnement de pièce, sont alors programmées dans le programme d'usinage Nnnn Gpp Xxxxxxxx Iiiiiiii Le terme Nnnn définit le numéro de séquence du bloc dans le programme d'usinage. Le terme Gpp est une instruction de mesure de surface qui définit un cycle de mesure par contact sur la surface. L'adresse X définit l'axe pour lequel le cycle de mesure aura lieu, et les données numéri- ques correspondant au mot X définissent un emplacement le long de l'axe X. Le terme Iiiiiiii, qui est une coordonnée supposée, définit la valeur de coordonnée à affecter à la surface de référence de positionnement relative à l'axe X. En supposant que le cycle de positionnement de pièce doit avoir lieu après que l'opérateur a initialisé la machine et a aligné les coulisseaux, tous les mouve- ments des coulisseaux survenant par la suite génèrent des données de position courante dont les valeurs sont mesu- rées par rapport au système de coordonnées de la machine. Cependant, comme il a été indiqué précédemment, les valeurs de coordonnées de programme d'usinage sont mesu- rées par rapport à un système de coordonnées de programme qui est défini par le programmeur. L'affectation d'une valeur de coordonnées programmée à une position réelle d'un coulisseau a pour effet de générer une position de coulisseau courante soumise à une translation, qui repré- sente une translation de la position courante du coulis- seau par rapport au système de coordonnées de la machine. Ensuite, tous les ordres de positionnement de coulisseau générés par l'unité de commande sous l'effet du programme d'usinage seront modifiés pour correspondre à cette transla- tion. Ainsi, le système de coordonnées de programme est effectivement soumis à une translation par rapport au systè- me de coordonnées de la machine. Le bloc d'information ci-dessus sera lu et décodé par le programme de traitement de bloc de commande numérique 82. Les programmes de prépara- tion de données 86 décoderont la fonction préparatoire et prépareront un cycle de fonctionnement de mesure à exécuter par le programme de commande de sortie 102. Les étapes de traitement relatives à l'exécution du cycle de fonctionne- ment sont représentées sur les figures 4a à 4c. On va maintenant considérer la figure 4a, sur laquelle on note que l'étape de traitement 144 nécessite que le programme de service d'interruption d'élément de détection 110 arme l'interruption de l'interface d'élément de détection active, c'est-à-dire le module de coupie 66 ou l'interface de sonde 62. L'étape de traitement 146 nécessite que le programme de commande de sortie 102 exécute toutes les fonctions nécessaires qui précèdent le déplacement. Dans le mode de réalisation préféré, un bloc d'information conte- nant une instruction de cycle de mesure peut comprendre n'importe quelle fonction parmi les fonctions diverses de type standard concernant la vitesse de la broche et les outils. Ensuite, l'étape de traitement 148 fait en sorte que l'unité de commande génère des signaux d'ordre d'exploration pour exécuter un déplacement d'attaque le long du chemin programmé, avec une vitesse d'avance fixée au préalable. On choisit une vitesse d'avance fixée au préalable et non pro- grammable afin d'améliorer la répétabilité et de réduire au minimum le temps de cycle. Si une vitesse d'avance est pro- grammiée avec les instructions de cycle de mesure, elle sera enregistrée pour le bloc d'information suivant ne faisant pas intervenir de mesure. La sonde se déplace le long de l'axe X, vers la surface de référence de positionnement de l'axe X. L'étape de décision 150 détermine si une interrup- tion du capteur apparaît le long de ce chemin. Si aucune interruption n'apparatt et si la sonde atteint la dimension X programmée, ce qui est déterminé par l'étape de décision 151, l'étape de traitement 153 arrête le coulisseau et signale une condition d'erreur, du fait que la pièce ne se trouve pas à un emplacement prévu par le programmeur. Si la sonde vient en contact avec un point sur la surface de réfé- rence et émet une interruption vers le système, l'étape de décision 150 fait en sorte que l'étape de traitement 152 arrête les coulisseaux. L'étape de traitement 154 provoque l'enregistrement d'un signal de position initiale représen- tant la position dix point sur la surface de référence. Au moment du contact, la position de l'élément de détection peut être déterminée à partir de plusieurs sour- ces. Dans certaines situations, la servocommande de coulis- seau 30 contient des registres qui indiquent la position courante du coulisseau. Dans ces situations, on peut lire ces registres et enregistrer un signal de position d'axe. Dans d'autres situations, la commande d'exécution de dépla- cement qui fait partie du programme de commande de sortie 102 peut contenir une table des positions courantes du coulisseau. Dans le cas o le programme de service d'inter- ruption d'élément de détection 110 détecte une interruption et fait en sorte que le programme d'arrêt de déplacement 108 arrête le mouvement du coulisseau, le signal de posi- tion d'axe peut être lu dans la table de position courante du coulisseau, dans le programme de commande d'exécution du déplacement, 104. Dans le cas de l'exécution d'un cycle de mesure le long d'axes de mouvement perpendiculaires à l'axe central de l'élément de détection, le signal de position d'axe représentant la position de l'élément de détection est modifié par une première compensation représentant le rayon de l'élément de détection, pour produire le signal de position initiale enregistré qui représente la position du point détecté sur la surface de référence. Lorsqu'on exécute un cycle de mesure parallèlement à l'axe central de l'élé- ment de détection, le signal de position d'axe est modifié par un second signal de compensation représentant la lon- gueur de l'élément de détection, pour produire le signal de position initiale enregistré. Le déplacement d'attaque de la sonde vers la sur- face de référence X est effectué de façon caractéristique avec une vitesse d'avance relativement élevée. Par consé- quent, du fait des erreurs suivantes et d'autres caractéris- tiques du système, la position initiale enregistrée ne sera pas comprise dans une plage de tolérance acceptable. Si on utilise la sonde venant en contact sur la surface, l'étape de décision 156 fera avancer le traitement jusqu'à l'étape 158 qui générera un signal d'ordre de retrait représentant un mouvement supplémentaire le long de l'axe X, jusqu'à une position située à une distance prédéterminée du c8té intérieur de la surface de référence de positionnement, de la manière définie par le signal de position initiale. Le traitement passe ensuite à l'étape 160 de la figure 4b qui arme à nouveau l'interruption par le capteur. Ensuite, l'étape de traitement 162 génère un signal d'ordre d'acqui- sition de données qui provoque un mouvement, avec un dépla- cement fixe, vers un point situé du c8té extérieur de la surface de référence de positionnement, avec une vitesse d'avance plus lente. L'étape de décision 164 détecte l'interruption de capteur qui indique que la sonde a perdu le contact avec le point détecté sur la surface de référen- ce de positionnement qui correspond à l'axe X. Sous l'effet de cette interruption, l'étape de traitement 166 arrêté le mouvement du coulisseau et l'étape de traitement 168 enre- gistre un signal de coordonnées X qui représente la posi- tion du point sur la surface de référence, c'est-à-dire la position de l'élément de détection, modifiée par la lon- gueur ou le rayon de l'élément de détection. Si aucune interruption de capteur ne se produit et si la fin du déplacement est atteinte, ce qui est déterminé par l'étape de décision 170, le mouvement du coulisseau est arr8té et -une erreur est indiquée. Si on suppose qu'une interruption de capteur apparaît effectivement sous l'effet de la perte de contact entre la sonde et la pièce, l'étape de traite- ment 174 génère un signal d'ordre final pour déplacer la sonde avec une vitesse d'avance lente fixée au préalable, jusqu'à une position adjacente à la surface de référence de positionnement qui correspond à l'axe X; et l'axe central du porte-outil est alors déplacé à partir de la surface sur une distance égale au rayon de la sonde. Le traitement passe ensuite à une étape de déci- sion 176 qui détecte la présence de l'adresse I. L'adresse I nécessite que l'étape de traitement 178 établisse que le point détecté sur la surface de référence qui est représen- tée par la position courante de la sonde, modifiée par le rayon de la sonde, reçoive la valeur de coordonnée qui est définie par le mot I. On notera que pendant le réglage de la machine en préparation de l'exécution du programme, lorsque l'opérateur de la machine charge la sonde dans la zone de magasin d'outil sur la machine, il doit également charger les données de longueur de sonde et de diamètre de sonde. Ces données sont enregistrées dans la mémoire de données d'outil 87 avec d'autres informations d'outil. Du fait qu'aucune autre information n'a été programmée dans ce bloc particulier, aucune fonction intervenant après le déplacement n'est nécessaire et le traitement se poursuit en passant au bloc d'information suivant. Pour définir les coordonnées de programme pour les surfaces de référence Y et Z, le programmeur définit tout d'abord un bloc d'instruction de positionnement de pièce qui génère des signaux d'ordre d'exploration, de façon à positionner la sonde face à la surface de référence de positionnement relative à l'axe Y, après quoi il définit le bloc d'information suivant: Nnnn Gpp Yyyyyyyy Jjjjjjjj Au moment de la détection de l'instruction Gpp et de l'adresse Y, le programme de préparation de données 86 et le programme de commande de sortie 102 préparent et exécu- tent respectivement un déplacement d'attaque, un déplacement de retrait, un déplacement d'acquisition de données et un déplacement final,-pour déplacer la sonde le long de l'axe de mouvement Y et pour amener la sonde en contact avec la surface de référence de positionnement relative à l'axe Y. A ce point, l'étape de décision 180 détecte l'adresse J et fait en sorte que l'étape de traitement 182 définisse en tant que mot J la surface de référence de positionnement relative à l'axe Y. Le traitement est achevé en utilisant les étapes de traitement 184 et 186 pour le mouvement relatif à l'axe Z, afin d'établir en tant que mot K la surface de référence de positionnement relative à l'axe Z, en utilisant le bloc d'information d'instruction de positionnement de pièce sui- vant: Nnnn Gpp Zzzzzzzz Kkkkkkkk Rrrrrrrr L'étape de décision 188 détecte la présence de l'adresse R dans le bloc d'information ci-dessus. Le mot R définit un plan de dégagement correspondant à un cycle fixe qui se trouve à une distance prédéterminée au-dessus de la surface de la pièce, afin de déplacer l'outil entre des cycles fixes dans les opérations de perçage de trou et de finition. Le cycle de mesure permet au programmeur d'établir de façon précise l'emplacement de ce plan. Le mot R représente un incrément à additionner à la position de la surface pour définir le plan R. Ainsi, sur la figure 4b, une fois que l'adresse R a été détectée par l'étape 188, l'étape 190 fixe le plan R à l'incrément défini par le mot R augmenté de la valeur du signal de coordonnée Z qui est enregistré à l'étape 168. 2.5 Si le programmeur de pièces a décidé d'utiliser le couple de l'outil de coupe pour détecter les surfaces de référence, les blocs d'information ci-dessus sont identi- ques, à l'exception du fait que Gtt est utilisé à la place de Gpp et qu'un Fffff est programmé. Lorsque e programme de préparation de données détecte le code de préparation de couple, il fait en sorte que le programme de commande de sortie 102 arme l'interruption de module de commande de cou- ple qui réagit au fait que le couple de coupe est égal ou supérieur à une limite de couple définie préalablement. La limite de couple représente une valeur de couple qui indi- que un contact superficiel de l'outil de coupe avec la pièce. En ce qui concerne les étapes de traitement 144, 146 et 148 de la figure 4a, le programme de préparation de données 86 et le programme de commande de sortie 102 fonc- tionnent de la manière décrite précédemment et ils déclen- chent un déplacement d'attaque le long de l'axe programmé, vers la surface de référence de positionnement, à une vitesse d'avance qui est définie par le mot F. L'interrup- tion de capteur se produit lorsque le module de commande de couple produit un signal de contact représentant un couple de coupe égal ou supérieur à la limite de couple, et l'in- terruption fait en sorte que le programme de service d'in- terruption 110 arrête le mouvement du coulisseau et enre- gistre un signal de coordonnée Z représentant la position de la surface. L'étape de décision 156 fait avancer le traitement jusqu'à l'étape 192 qui génère un signal d'ordre de retrait sous l'effet du signal de coordonnée Z, pour exécuter un déplacement de retrait le long de l'axe pro- grammé, jusqu'à la position enregistrée. A ce point, le traitement passe à l'étape de décision 176 et se déroule de la manière décrite précédemment. La description des figures 4a - 4c faite jusqu'à ce point décrit un premier mode de cycle de mesure dans lequel les surfaces de référence sont relativement bien définies et sont par exemple des surfaces usinées. Cepen- dant, des pièces de fonderie brutes peuvent comporter des surfaces brutes et des nervures qui présentent des varia- tions importantes. Dans ce cas, le fait de détecter avec une sonde un seul point de la surface ne peut pas donner une définition précise de l'emplacement de la surface. Par conséquent, le cycle de détection de surface comporte un second mode de fonctionnement qui permet au programmeur de détecter au moyen d'une sonde un grand nombre de points le long de la surface et d'accumuler des caractéristiques statistiques significatives pour les coordonnées mesurées, par exemple les valeurs maximales, les valeurs minimales, les valeurs moyennes, l'écart type, la médiane, etc. On supposera que la pièce contient une nervure venue de fonderie et non usinée qui s'étend parallèlement à l'axe de déplacement Y et que le programmeur désire défi- nir la position d'une arête de la nervure sur l'axe de mou- 248M2OO vement X. Pour effectuer ceci, la sonde doit être position- née à différents emplacements le long de l'axe Y et, à cha- que emplacement, un cycle de mesure est défini le long de l'axe de mouvement X en utilisant le bloc d'information sui- vant: Nnnn Gpp Xxxxxxxx Hhh Le code préparatoire indique à nouveau que la sonde venant en contact avec la surface doit être utilisée dans le cycle de mesure, et le programme de préparation de données 86 et le programme de commande de sortie 102 préparent un déplace- ment d'attaque vert l'arête de la nervure, le long de l'axe X, à la vitesse d'avance choisie au préalable. Du fait qu'on utilise la sonde pour détecter la surface, un déplace- ment de retrait, un déplacement d'acquisition de données et un déplacement final seront exécutés et un signal de coor- donnée X représentant la position d'un point sur l'arête de la nervure sera enregistré, comme le demande l'étape 168 de la figure 4b. Le traitement passe ensuite à l'étape 194 de la figure 4c qui détermine si l'adresse H est présente. Un mot à deux chiffres est associé à l'adresse H et ce mot définit une zone de mémoire de surface active qui fait par- tie de la table d'identificateur de surface active 90. Cha- que zone de mémoire du mot H comporte cinq emplacements de mémoire principaux destinés à enregistrer des signaux de coordonnées sélectionnés. Le premier emplacement enregistre un ensemble de signaux de coordonnées X, Y et Z représen- tant les valeurs maximales des positions dont les coordon- nées sont mesurées; la seconde position enregistre un ensemble de signaux de coordonnées X, Y et Z représentant les valeurs minimales des positions dont les coordonnées sont mesurées; le troisième emplacement enregistre un ensemble de signaux de coordonnées X, Y et Z représentant la somme des positions mesurées et le quatrième emplacement enregistre un signal de nombre d'incréments représentant le nombre de mesures effectuées pour définir une surface de référence. Ainsi, en prélevant les signaux qui proviennent des troisième et quatrième emplacements de mémoire, on peut calculer la moyenne des positions définies par les coordon- nées mesurées sur le cycle de mesure complet. Le cinquième emplacement enregistre un ensemble de signaux de décalage X, Y et Z qu'on décrira ultérieurement. En retournant à l'étape de traitement 194 de la figure 4c, on note que la présence de l'adresse H nécessite que l'étape de traitement 196 rappelle un signal de coordon- née X enregistré précédemment, à partir du premier emplace- ment dans la mémoire identifié par le mot H. Pour déterminer le plus grand signal de coordonnée, l'étape de traitement 198 compare les valeurs du signal enregistré précédemment et du signal de coordonnée X courant. Si le signal de coordon- née courant est le plus grand, l'étape de traitement 200 provoque l'enregistrement du signal de coordonnée X courant en tant que position mesurée maximale dans le premier empla- cement qui est défini par le mot H. Dans le cas contraire, le signal de coordonnée enregistré dans le premier emplace- ment demeure inchangé. Ensuite, l'étape de traitement 202 rappelle un signal de coordonnée X enregistré précédemment, à partir du second emplacement de mémoire dans la mémoire du mot H. L'étape de traitement 204 compare les valeurs du signal de coordonnée X courant et du signal enregistré précédemment pour déterminer le plus petit signal de coor- donnée. Si le signal de coordonnée X courant est le plus petit, il est enregistré dans le second emplacement de la mémoire du mot H en tant que nouvelle position minimale mesurée, conformément à l'étape de traitement 206. Dans le cas contraire, la position minimale enregistrée demeure inchangée. Ensuite, le signal de coordonnée X courant est sommé avec les signaux de coordonnée X qui ont été enregis- trés précédemment dans le troisième emplacement de mémoire dans la mémoire du mot H, par l'étape de traitement 208. Dans l'étape de traitement 210, le nombre contenu dans le quatrième emplacement de mémoire de la mémoire du mot H est incrémenté d'une unité. Le traitement passe ensuite à l'éta- pe 193 pour exécuter les fonctions qui interviennent après le déplacement. Chaque fois que le cycle de mesure est exécuté à un emplacement différent le long de l'axe Y, un signal de coordonnée X différent définissant la position de l'arête de la nervure est généré, et les signaux présents dans les emplacements de la mémoire du mot H sont mis à jour. Par con- séquent, après un certain nombre de cycles de mesure, le programmeur aura accumulé des données significatives identi- fiant l'arête de la nervure. Il connaîtra les points hauts le long de l'arête ainsi que les points bas et il sera capa- ble de générer un signal de coordonnée X moyenne représen- tant la position mesurée moyenne de la nervure sur l'axe X. On peut utiliser les positions maximale et minimale mesurées pour déterminer la quantité de matière qui peut être enlevée pour juste dresser la surface, ou pour définir le dégagement réel au-dessus de la surface. S'il est nécessaire de placer des trous le long d'une ligne à une certaine distance de l'arête de la nervure, on peut utiliser la position moyenne mesurée de l'arête pour situer la ligne. Cependant, si les trous doivent être placés le long de l'axe de la nervure, on exécute un cycle de mesure qui mesure un nombre égal de points sur chaque arête de la nervure. La position moyenne mesurée des points définira l'axe moyen de la nervure. Bien que l'exemple précédent décrive l'utilisation d'une sonde et l'accumulation des positions mesurées pour l'axe de mouve- ment X, on peut procéder d'une manière similaire pour mesu- rer et enregistrer des positions par rapport aux axes de mouvement Y et Z. Pour percer les trous le long de l'axe central de la nervure, le programmeur doit positionner le centre de chaque trou par rapport à l'arête de la nervure sur l'axe X. Par conséquent, une coordonnée programmée selon l'axe X, représentant la définition faite par le programmeur de l'arête de la nervuredoit être corrélée à la position réelle de l'arête telle que la sonde la détermine. Comme on l'a envisagé précédemment, on peut utiliser le premier mode de mesure en association avec un mot I programmé représen- tant la définition faite par le programmeur de l'arête de la nervure. Cependant, cette opération a pour effet de produire une translation de l'ensemble des coordonnées programmées par rapport à l'emplacement mesuré. Ceci est souhaitable au moment du positionnement initial de la pièce, mais lorsqu'on définit des caractéristiques individuelles de la pièce, par exemple une arête d'une nervure, il suffit de modifier les coordonnées programmées qui définissent le fonctionnement de la machine par rapport à la caractéristique considérée et d'autres caractéristiques programmées ne doivent pas être affectées. De ce fait, l'invention fait appel à plusieurs codes préparatoires arithmétiques dont l'un peut être utili- sé pour calculer un signal de décalage représentant la différence entre une position mesurée d'une caractéristique de la pièce, par exemple une arête d'une nervure, et la définition faite par le programmeur de cette position. Cha- que fois que le programmeur désire travailler par rapport à cette caractéristique de la pièce, il utilise le décalage associé qui donne lieu à une modification des signaux d'ordre déduits des valeurs de coordonnées programmées, con- formément à la position réelle mesurée d'une caractéristique de la pièce. Cependant, les signaux d'ordre qui sont déduits d'autres coordonnées du programme ne sont pas modi- fiés. Ainsi, pour calculer un décalage par rapport à l'arête de la nervure, le programmeur définit le bloc de données suivant: Nnnn (OFS Gi Hhh Xxxxxxxx) Le terme Nnnn définit l'emplacement dans le programme et les parenthèses sont utilisées conformément aux règles de programmation recommandées. L'instruction OFS est détectée par le programme de-fonction dé surface 100 du programme de préparation de données 86. Le programmeréagit au mot de surface active et aux données de coordonnées dans le bloc d'information et il fait en sorte que le programme de déca- lage et de test 112 du programme de commande de sortie 102 calcule le décalage approprié. L'invention permet de calcu- ler un décalage parmi quatre possibles. La sélection du calcul désiré s'effectue en utilisant un code G parmi quatre, GO à G3. Si un GO est programmé dans le bloc d'in- formation, le signal de décalage X qui est calculé représen- te la différence de valeur entre le mot X programmé et un signal de coordonnée X courant enregistré qui est déterminé soit par l'étape 168 de la figure 4bsoit par l'étape 154 de la figure 4a, selon qu'on utilise une détection de contact ou une détection de couple. Le mot X est une valeur de réfé- rence représentant la définition faite par le programmeur de la position d'un point prédéterminé sur la pièce. Le signal de décalage X est calculé et est enregistré dans le cinquiè- me emplacement de mémoire du mot H programmé. Dans l'exemple de l'arête de la nervure, seul l'axe X fait l'objet d'une détection par une sonde et d'une mesure. Cependant, on peut calculer des signaux de décalage Y et Z pour les axes Y ou Z en ajoutant simplement des-mots Y et Z au bloc d'informa- tion de décalage. Si un G3 est programmé dans le bloc d'information, le signal de décalage X qui est calculé représente la différence entre le mot X et la position X mesurée maximale qui est enregistrée dans la mémoire du mot H. Si un G2 est programmé dans le bloc de décalage, le signal de décalage X qui est calculé représente la différence entre le mot X et la position X mesurée minimale qui est enregistrée dans la mémoire du mot H. Enfin si, comme on l'a envisagé pré- cédemment-, un Gi est programmé dans le bloc de décalage, le signal de décalage X qui est calculé représente la diffé- rence entre le mot X et la position X mesurée moyenne qui est enregistrée dans la mémoire du mot H. Dans l'exemple considéré, on désire positionner les trous le long de l'axe central de la nervure et il est très souhaitable de posi- tionner ces trous par rapport à la position X mesurée moyenne définissant les arêtes de la nervure. Les figures 5a et 5b représentent un organigramme qui montre les étapes de traitement destinées à l'exécution d'un bloc d'information de décalage. Une fois que l'ins- truction OFS a été décodée par le programme de préparation de données 86 de la figure 2, le traitement passe à l'étape 212 de la figure 5a, pour déterminer l'existence d'une adresse H. Si aucune adresse H ne se trouve dans le bloc de bande, il n'est pas possible d'enregistrer une valeur de décalage calculée et, par conséquent, le programme de déca- lage n'est pas exécuté. Si une adresse H est décodée, l'éta- pe 214 détermine s'il existe un GO. Si un GO existe effec- tivement, l'étape 216 détermine s'il existe une adresse X. Si une adresse X est présente, l'étape 218 calcule un déca- lage X en soustrayant la valeur du mot X de la valeur du signal de coordonnée X courant; et un signal de décalage X est enregistré dans le cinquième emplacement de mémoire de la mémoire de mot H. De façon similaire, le traitement effectué aux étapes 220 à 226 détecte la présence d'adresses Y ou Z, calcule des décalages Y et Z et enregistre des signaux de décalage Y et Z. L'étape de décision 228 détermine s'il existe une instruction Gi. Si cette instruction existe et si une adresse X est présente, ce qui est déterminé par l'étape 230, les étapes 232 et 234 utilisent la somme des positions mesurées et du nombre d'incrément du mot H identifié pour calculer un signal de coordonnée X moyenne. A l'étape 236, un décalage est calculé en soustrayant la valeur du mot X de la valeur du signal de coordonnée X moyenne; et un signal de décalage X correspondant est enregistré. De façon similaire, aux étapes 238 à 252 le traitement détermine si des adresses Y ou Z sont programmées; et des signaux de décalage Y et Z sont enregistrés sur la base des signaux de coordonnées Y et Z moyennes. L'étape de décision 253 de la figure 5b détermine si un G2 existe et s'il existe, l'étape de traitement 254 détermine la présence d'une adresse X. Si une adresse X est présente, l'étape de trai- tement 256 calcule une valeur de décalage en soustrayant la valeur du mot X de la valeur de la position X mesurée mini- male et enregistre un signal de décalage X correspondant dans le cinquième emplacement de la mémoire du mot H. De façon similaire, les étapes 258 à 264 déterminent la pré- sence d'adresses Y ou Z et enregistrent de façon correspon- dante des signaux de décalage Y ou Z. L'étape de décision 268 détermine la présence d'une instruction G3. En associa- tion avec une adresse X qui est définie par une étape 270, cette instruction fait en sorte qu'une étape de traitement 272 calcule une valeur de décalage X en soustrayant la valeur du mot X de la valeur de la position X mesurée maxi- male et enregistre un signal de décalage X correspondant dans la mémoire de mot H. De façon similaire, les étapes de traitement 274 à 280 déterminent si des adresses Y ou Z sont contenues dans le bloc d'information de décalage, et des signaux de décalage Y et Z sont enregistrés de façon correspondante. L'invention offre également la possibilité arith- métique de comparer une position correspondant à une coor- donnée mesurée, avec des limites programmées représentant des maximums et des minimums. On supposera que dans l'exem- ple précédent le programmeur désire comparer le signal de coordonnée X moyenne, définissant l'arête de la nervure, avec des limites supérieure et inférieure. Pour réaliser ceci, il doit programmer le bloc d'information suivant Nnnn (TST Gi Hhh Xxxxxxxx Iiiiiiii) L'instruction TST est reconnue par le programme de fonc- tion de surface 100 du programme de préparation de données 86 qui réagit aux autres données dans le bloc d'informa- tion de comparaison ou de test et exécute le test désiré, en association avec le programme de décalage et de test 112 du programme de commande de sortie 102. Lorsque le program- meur utilise la fonction de test, il peut choisir de tester jusqu'à six valeurs différentes, en fonction du mot G pr.o- grammé. Par exemple, l'instruction Gi représente un test de la position mesurée moyenne par rapport aux mots X et I programmés. Le mot X représente une limite inférieure défi- nissant un minimum et le mot I représente une limite supé- rieure définissant un maximum. Si le programmeur désire tester des positions mesurées Y ou Z, il doit programmer un mot Y et un mot J associé ou un mot Z et un mot K associé. La présence des adresses X, Y ou Z provoque l'exécution du test approprié. Il convient de noter qu'on peut exécuter un test portant sur une limite inférieure ou sur une limite supérieure, selon qu'on programme les adresses X, Y et Z ou les adresses I, J et K. Par conséquent, si on programme seulement l'adresse X, seul est exécuté un test se rappor- tant à la limite inférieure; et si on programme seulement l'adresse I, seul est exécuté un test se rapportant à la limite supérieure. Si une instruction GO est programmée dans le bloc d'information de test, la valeur du signal de coordon- née courant enregistré est testée. Si une instruction G2 est programmée, c'est la position correspondant à la coor- donnée mesurée minimale qui est testée. Si une instruction G3 est utilisée dans le bloc de test, c'est la position correspondant à la coordonnée mesurée maximale qui est testée. Si une instruction G4 est programmée, le test porte sur la différence entre les positions correspondant aux coordonnées mesurées maximale et minimale. Si une instruc- tion G5 est programmée, c'est la valeur du signal de déca- lage dans la mémoire du mot H qui est testée. Une fois que le programme de fonction de surface a détecté l'instruction de test ou TST, le traitement représenté sur les figures 6a à 6e est exécuté. L'étape 284 détecte la présence d'une instruction GO. Si une instruction GO existe effectivement, l'étape de traitement 286 détermine la présence d'une adresse X. Si une adresse X est présente, l'étape de traitement 288 détermine si la valeur du signal de coordonnée X courant est supérieure à la valeur du mot X qui définit un minimum. Dans la négati- ve, un indicateur d'erreur est positionné par l'étape 293, ce qui indique que la position mesurée est hors tolérance. L'étape 290 détermine la présence d'un mot I et l'étape 292 détermine si la valeur du signal de coordonnée X est inférieure à la valeur du mot I ou du maximum. Dans la négative, un indicateur d'erreur est à nouveau positionné pour indiquer que la position mesurée est hors tolérance. D'une manière similaire, les étapes 294 à 310 exécutent un test des signaux de coordonnées Y et Z courants. Du fait que les tests restants nécessitent des données provenant d'une mémoire du mot H, s'il n'existe pas d'adresse H, le test ne peut pas être effectué. L'étape de décision 312 détecte la présence d'une adresse H. L'étape de traite- ment 314 détermine l'existence du code Gi. L'étape de -24 89200 décision 316 détermine la présence d'une adresse X. Si une adresse X est présente, l'étape de traitement 318 utilise la somme mesurée et un nombre d'incrément provenant de la mémoire de mot H désignée pour calculer une position X mesu- * rée moyenne. Sur la figure 6b, l'étape de traitement 320 compare la valeur de la position X moyenne mesurée avec la valeur du mot X représentant un minimum. Si la position X moyenne mesurée est supérieure au minimum, l'étape de trai- tement 322 détermine l'existence d'un mot I. L'étape de traitement 324 détermine si la valeur de la position X moyenne mesurée est inférieure à la valeur du mot I ou maximum programmé. Si l'un ou l'autre des tests donne un résultat négatif, la position X moyenne mesurée est hors des limites de tolérances et l'étape de traitement 326 positionne un indicateur d'erreur "hors tolérance". D'une manière similaire, les positions Y et Z moyennes mesurées font l'objet d'une comparaison avec les limites supérieures et inférieures programmées, par les étapes de traitement 328 à 350. Dans les étapes de traitement 352 à 382, les valeurs des positions correspondant aux coordonnées minima- les du mot H sont comparées avec les valeurs des maximums et des minimums programmés. Au cours des étapes de traite- ment 384 à 414, les valeurs des positions correspondant aux coordonnées maximales mesurées de la mémoire de mot H sont comparées avec les valeurs des maximums et des mini- mums programmés. Au cours des étapes de traitement 416 à 452, la différence entre les positions correspondant aux coordonnées maximales et minimales mesurées du mot H iden- tifié est comparée avec les maximums et les minimums pro- grammés et les étapes de traitement 454 à 484 comparent la valeur du signal de décalage enregistré avec la valeur des maximums et des minimums programmés. La figure 7 montre les étapes de traitement desti- nées à la remise à zéro des mémoires de mot H. Pour réaliser ceci, on programme un bloc d'information qui contient un numéro de séquence, une instruction RST et un mot H. L'étape de traitement 486 détermine la présence de l'adresse H et l'étape de traitement 488 positionne à zéro lés cinq emplace- ments de mémoire qui sont associés au mot H. Par conséquent, le maximum mesuré, le minimum mesuré, la somme mesurée, le nombre d'incrément et les positions de décalage associés au mot H programmé sont remis à zéro. La description qui précède montre que les princi- pales sources d'intervention de l'opérateur dans un processus d'usinage sont éliminées par la mise en oeuvre de l'inven- tion. L'invention offre au programmeur non seulement la possibilité de positionner initialement la pièce sur la machine, mais également la possibilité de déterminer la posi- tion de caractéristiques de la pièce. En plus du positionne- ment de la pièce sur la machine et de la mesure de la posi- tion de surfaces de référence sur la pièce, on peut utiliser le cycle de mesure pour définir la position du centre d'un trou ou d'un bossage. Pour définir le centre réel d'un trou, on peut exécuter un cycle d'exploration à partir d'un centre pro- grammé supposé, dans une direction correspondant à un axe de mouvement, pour mesurer la position d'un point sur la circonférence. On exécute un autre cycle d'exploration dans la direction opposée, le long de l'axe, pour mesurer la position d'un autre point sur la circonférence. En incluant avec les instructions pour le cycle de mesure des instructions supplémentaires destinées à l'enregistrement de la position moyenne mesurée, on peut programmer un bloc de décalage pour calculer un décalage à partir de la posi- tion moyenne mesurée et l'addition de ce décalage à la position supposée du centre donne une position le long de l'axe qui représente le point milieu vrai entre les deux points détectés sur la circonférence. En répétant la procé- dure ci-dessus pour détecter deux autres points de la cir- conférence, le long d'un autre axe de mouvement, on peut définir la position réelle du centre du trou. On peut uti- liser une procédure similaire pour localiser le centre d'un bossage. La sonde choisie par les inventeurs est capable de détecter des déformations de la pointe de sonde selon un axe quelconque parmi trois axes orthogonaux. En choisissant l'outil de coupe de façon appropriée, le module de commande de couple 66 peut détecter des charges correspondant à des couples générés par des contacts superficiels de l'outil de coupe avec des surfaces, dans n'importe quel plan, y compris les trois plans mutuellement perpendiculaires qui sont définis par les trois mêmes axes orthogonaux. En pratique, les cycles de mesure restreignent la détection de surface à des plans uniques alignés parallèle- ment aux plans qui sont définis par les axes de mouvement orthogonaux des coulisseaux de la machine. Par conséquent, un déplacement de mesure doit être programmé selon un seul axe. Pour que les déplacements de mesure demeurent relative- ment courts et pour être simultanément sûr que la position initiale du déplacement de mesure assure un dégagement de l'élément de détection par rapport à la surface, il existe une fonction préparatoire pour la mise en action condition- nelle de l'élément de détection, afin de faciliter le prépo- sitionnement de la position initiale du déplacement de mesu- re. Cette fonction protège l'élément de détection dans le cas o il heurte un obstacle, par exemple une bride de fixation inconnue du programmeur. Cette fonction permet en outre la programmation de déplacements selon des axes multi- ples et entraîne la génération d'un signal d'erreur lorsque l'élément de détection détecte une surface pendant l'exécu- tion de ces déplacements ne correspondant pas à des mesures. Pour mettre en action l'élément de détection, on programme une instruction Gaa. Ensuite, tous les contacts avec une surface qui sont détectés par l'élément de détection génè- rent des erreurs jusqu'à ce que l'élément de détection soit mis au repos par la programmation d'une fonction préparatoi- re de mise au repos de l'élément de détection, Gdd, un cycle de mesure, ou une autre fonction de mise au repos générée par le traitement, par exemple une fin de programme, une restauration des données de commande, etc. La figure 8 est un organigramme qui illustre la nature conditionnelle des fonctions préparatoires de mise en action/mise au repos de l'élément de détection. Comme 2489200. précédemment, le programme de préparation de données 86 décode et enregistre l'instruction Gaa provenant du bloc de données du programme. Sous la commande du programme de commande de cycle de machine 80, les programmes de commande de sortie 102 font avancer le traitement de blocs jusqu'à l'étape de traitement 500 de la figure 8, ce qui provoque la mise en action de l'élément de détection. L'interruption d'interface d'élément de détection actif est armée par le programme d'armement et de service d'interruption 110. Le traitement passe à l'étape de traitement d'exécution de. bloc 502 qui fait intervenir l'exécution des fonctions effectuées avant le déplacement, du déplacement et des fonctions effectuées après le déplacement, de la manière décrite précédemment. L'exécution de ces fonctions est con- ditionnée. par la réception de l'interruption d'élément de détection, conformément à l'étape de décision 504. Si une interruption apparaît, l'étape de traitement 506 interdit le mouvement du coulisseau et elle positionne un indica- teur d'erreur conformément au programme de service d'inter- ruption 110 qui est associé à l'instruction Gaa. Le traite- ment ne peut alors se poursuivre que si la condition d'erreur est supprimée ou volontairement négligée, comme l'indique l'étape de décision 508. Si l'erreur est suppri- mée ou négligée, l'étape de traitement 510 fait en sorte que le programme d'armement d'interruption d'élément de détection 110 réarme l'interruption d'interface d'élément de détection actif. Si aucune interruption d'élément de détection ne se produit, le traitement passe à l'étape de décision 512 qui détermine si l'exécution de bloc est terminée. Dans la négative, le traitement se poursuit par la boucle qui ramène à l'étape d'exécution de bloc 502. Une fois que l'exécution de bloc est terminée, la nature conditionnelle de la fonction Gaa est mise en évidence par les étapes de décision 514, 518, 520 et 522. L'étape 514 teste l'existen- ce d'une fin de programme, l'étape 518 teste l'existence de la fonction préparatoire Gdd, mutuellement exclusive, déco- dée dans des blocs de programme suivants, l'étape 520 teste l'existence de fonctions préparatoires d'annulation de cycle de mesure et l'étape 522 teste l'existence d'autres restaurations générées par le traitement. Si l'un quelconque de ces tests détecte la condition testée, le traitement se termine à l'étape 524 qui fait èn sorte que le programme d'armement et de service d'interruption 110 désarme l'interruption d'interface d'élément actif. Si l'une quel- conque des conditions testées n'est pas remplie, le traite- ment passe aux étapes de décision suivantes et si aucune condition testée n'est remplie, le traitement se poursuit en passant à l'exécution de bloc, à l'étape de traitement 502. L'étape 516 montre que la condition active-de l'élé- ment de détection est maintenue pendant l'exécution de blocs suivants du même programme, du fait que cette étape de traitement fait en sorte que le programme de commande de-cycle de machine 80 charge des blocs de programme sui- vants. à L'homme de l'art notera que les codes réels qui sont utilisés pour exécuter les fonctions précédentes dépendent du concepteur du système et des caractéristiques d'une unité particulière de commande numérique à ordina- teur. Par conséquent, les codes utilisés dans la descrip- tion ci-dessus ne doivent pas être considérés comme limi- tatifs. En outre, comme on l'a suggéré précédemment, on pourrait utiliser d'autres systèmes de mesure de force à la place des éléments de détection décrits en détail ici. De tels systèmes comprennent ceux capables de mesurer des charges sur les coulisseaux ou la broche de la machine, ou des déformations du porteoutil, etc. 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 mesure de la position réelle de sur- faces d'une pièce et de modification de signaux d'ordre obtenus à partir d'un programme d'usinage définissant le fonctionnement d'une machine, cette machine comportant des coulisseaux (12) qui se déplacent le long d'axes de mouve- ment pour produire un mouvement relatif entre la pièce (14) et un porteoutil (15) auquel est associé un élément de détection (16), cette machine étant connectée à une unité de commande qui est destinée à enregistrer le programme d'usinage et à générer les signaux d'ordre pour commander le mouvement relatif, caractérisé en ce que: (a) on enre- gistre des instructions de programme d'exploration, en association avec le programme d'usinage, pour 'définir un cycle d'exploration afin de mesurer la position réelle d'une surface de référence de la pièce: (b) on génère des signaux d'ordre d'exploration pour positionner l'élément de détection face à un point sur la surface de référence; (c) on génère des signaux d'ordre d'exploration supplémen- taires pour déplacer l'élément de détection le long d'un axe de mouvement vers la surface de référence; (d) on arrUte le mouvement de l'élément de détection lorsque ce dernier détecte un point sur la surface de référence (e) on produit un signal de coordonnée définissant la position du point détecté le long de l'axe de mouvement (f) on répète les opérations (b) à (e) un nombre de. fois prédéterminé qui est défini par le cycle d'exploration pour mesurer la position d'un certain nombre de points différents, ce qui définit la position de la surface de référence; (g) on enregistre un certain nombre de signaux de coordonnée sélectionnés; et (h) on génère des signaux d'ordre modifiés sous l'effet des signaux de coordonnée sélectionnés et des signaux d'ordre obtenus à partir du programme d'usinage, ces signaux d'ordre modifiés produi- sant un mouvement relatif entre le porte-outil et la pièce conformément au programme d'usinage et indépendamment des variations de la position de la surface de référence. 2. Procédé selon la revendication 1, caractérisé en ce que l'élément de détection consiste en une sonde actionnée par contact et les opérations consistant à arrêter le mouvement de l'élément de détection et à produire un signal de coordonnée comprennent en outre les étapes suivantes: (a) on arrête le mouvement de l'élément de détection lorsque ce dernier vient en contact avec un point sur la surface de référence; (b) on produit un signal de position initiale représentant la position du point sur la surface de référence, lorsque l'élément de détection vient en contact avec le point sur la surface de référence; (c) on génère sous l'effet du signal de position initiale un signal d'ordre de retrait pour déplacer l'élément de détec- tion le long de l'axe-de mouvement, jusqu'à une position qui se trouve à une distance prédéterminée du c8té inté- rieur de la surface de référence; (d) on génère un signal d'ordre d'acquisition de données pour déplacer l'élément de détection le long de l'axe de mouvement en l'éloignant de la surface de référence avec une vitesse d'avance infé- rieure prédéterminée; (e) on arrête le mouvement de l'élément de détection lorsque ce dernier perd le contact avec le point sur la surface de référence; (f) on produit un signal de coordonnée représentant la position du point sur la surface de référence, le long de l'axe de mouve- ment, lorsque l'élément de détection perd le contact avec la surface de référence; et (g) on génère sous l'effet du signal de coordonnée un signal d'ordre final'pour déplacer l'élément de détection le long de l'axe de mouvement, vers la surface de référence, jusqu'à une position adjacente au point sur la surface de référence. 3. Procédé selon la revendication l caractérisé en ce que l'élément de détection consiste en un outil de coupe et l'unité 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 au moins égal à une limite de couple prédéterminée représentant un contact superficiel de l'outil de coupe sur la pièce, et les opérations consistant à arrêter le mouvement de l'élément de détection et à pro- duire un signal de coordonnée comprennent en outre les étapes suivantes: (a) on arrête le mouvement de l'élément de détection sous l'effet du signal de contact; (b) on produit un signal de coordonnée représentant la position de l'outil de coupe, sous l'effet du signal de contact; et (c) on produit sous l'effet du signal de coordonnée un signal d'ordre de retrait pour éloigner l'élément de détec- tion de la surface de référence, le long de l'axe de mouve- ment. 4. Procédé selon la revendication 1, caractérisé en ce que le programme d'usinage contient une valeur de référence qui représente un point défini à l'avance par rapport à la pièce et l'opération consistant à enregistrer des signaux de coordonnée sélectionnés comprend en outre les étapes suivantes (a) on génère un premier signal de décalage représentant la différence entre la valeur du signal de coordonnée courant et la valeur de référence et (b) on enregistre le premier signal de décalage. 5. Procédé selon la revendication 1, caractérisé en ce que le programme d'usinage contient une valeur de référence représentant un point défini à l'avance par rapport à la pièce et l'opération consistant à enregistrer des signaux de coordonnée sélectionnés comprend en outre les étapes suivantes: (a) on compare au cours de cha- que itération un signal de coordonnée courant avec un signal de coordonnée enregistré précédemment; (b) on enre- gistre le plus grand des signaux de coordonnée, représen- tant la position de coordonnée mesurée maximale sur la sur- face de référence; (c) on génère un second signal de décalage représentant la différence entre la valeur du plus grand signal de coordonnée et la valeur de référence; et (d) on enregistre le second signal de décalage. 6. Procédé selon la revendication 5, caractérisé en ce que l'opération d'enregistrement de signaux de coor- donnée sélectionnés comprend en outre les étapes sui- vantes: (a) on compare au cours de chaque itération un signal de coordonnée courant avec un signal de coordonnée enregistré précédemment; (b) on enregistre le plus petit signal de coordonnée représentant la position de coordonnée mesurée minimale sur la surface de référence; (c) on génère un troisième signal de décalage représentant la différence entre la valeur du plus petit signal de coordon- née et la valeur de référence; et (d) on enregistre le troisième signal de décalage. 7. Procédé selon la revendication 6, caractérisé en ce que l'opération d'enregistrement de signaux de coordonnée sélectionnés comprend en outre les étapes suivantes: (a) on additionne au cours de chaque itération un signal de coordonnée courant à une somme de signaux de coordonnée enregistrés précédemment, pour produire une somme des positions mesurées; (b) on enregistre le nombre d'itérations; (c) on produit un signal de valeur de coor- donnée moyenne représentant le quotient de la somme des valeurs des signaux de coordonnée enregistrés par le nombre d'itérations; (d) on génère un quatrième signal de décalage représentant la différence entre la valeur du signal de coordonnée moyenne et la valeur de référence et (e) on enregistre le quatrième signal de décalage. 8. Procédé selon la revendication 7, caractérisé en ce qu'il comprend en outre les opérations suivantes: (a) on enregistre un programme d'exploration contenant des instructions de test qui définissent une limite supérieure représentant un maximum; (b) on compare l'un des signaux de décalage à la limite supérieure; et (c) on génère un signal d'erreur lorsque la valeur de l'un des signaux de décalage dépasse la valeur de la limite supérieure. 9. Procédé selon la revendication 8, caractérisé en ce qu'il comprend en outre les opérations suivantes: (a) on enregistre un programme d'exploration contenant des instructions de test qui définissent une limite inférieure représentant un minimum; (b) on compare l'un des signaux de décalage à la limite inférieure; et (c) on génère un signal d'erreur lorsque la valeur de l'un des signaux de décalage est inférieure à la valeur de la limite inférieu- re. 2489ZOO 10. Procédé selon la revendication 9, caractérisé en ce que l'opération de génération de signaux d'ordre modifiés comprend en outre l'étape qui consiste à modi- fier au moyen de l'un des signaux de décalage les signaux d'ordre obtenus à partir du programme d'usinage. 11. Procédé selon la revendication 10, caracté- risé en ce qu'il comprend en outre les opérations suivan- tes: (a) on enregistre un programme d'exploration compre- nant les instructions de test définissant une limite de référence; (b) on compare l'un des signaux de coordonnée enregistrés avec la limite de référence; et (c) on génère un signal d'erreur lorsque la valeur de celui des signaux de coordonnée enregistrés qui est comparé dépasse la limite de référence.