FR 2240477 A1 19750307 FR 7329375 A 19730810 La présente invention concerne la commande des outils. Plus précisément, l'invention concerne la commande des machines-outils tenant compte de la largeur de 11 outil pour commander une coupe placée du côté de travail du traient suivi par outil. La compensation des outils est complexe lorsque la direction nécessaire de décentrage varie à l'intersection de segments du trajet (par exemple, l'intersection de segments linéaires faisant un angle où lsintersection de segments d'arc de cercle ayant des centres différents, ou l'intersection de segments linéaires et circulaires).Des dispositifs tels que décrits par exemple dans le brevet des Etats-Unis d'Amérique n 3 120 603; utilisent la rotation de l'-outil de manière que la direction de décentrage reste constante par rapport à 11 ou- til. D'autres brevets (brevet des Etats-Unis d'Amérique n 3 430 121) mettent en oeuvre des calculs multiples des coor- données réelles avec et sans décentrage. L'invention concerne le tracé de courbes inscrites tangentes à deux segments (par exemple des coins arrondis) ; de manière connue, les deux points de tangence doivent être calculés. Plus précisément, l'invention concerne une commande à entraînement d'outil au moins suivant des axes X et Y de manière que l'outil décrive un premier-segment et rapproche d'un second segment, cette commande comprenant la conservation de données correspondant aux positions X et Y actuelles de l'outil et d'une première fonction dont la valeur dépend de la distance de cette position X, Y au second segment, la distance étant mesurée perpendiculairement, la remise à jour des données conservées lors de l'avance de l'entraînement au cours du tracé du premier segment, st l'interruption du tracé du pre mier segment lorsque la fonction prend une valeur prédétermi- née.Dans un mode de réalisation avantageux, l'interruption a lieu lorsque la fonction a une valeur dont le signe algébrique change ; le dispositif de remise à jour fonctionne sans nouveau calcul de la fonction, par application de règles concernant les variations de la fonction pour les variations de X et Y, et la commande comprend de plus la conservation de données supplémentaires correspondant à une seconde fonction dont la valeur dépend de la distance perpendiculaire comprise entre la position actuelle de l'outil et le premier segment, et remettant à jour les données supplémentaires lors de l'avance au cours du tracé du premier segment, l'avance étant commandée de manière que la valeur de la seconde fonction tende vers une valeur constante prédéterminée correspondant au décentrage voulu.Dans un mode de réalisation avantageux, la valeur prédéterminée correspond à un décentrage voulu de l'outil pour le second segment, et les positions X et Y sont les positions actuel- les de l'outil. Dans d'autres modes de réalisation, utilisés pour le tracé d'une tangente à une courbe inscrite aux premier et second -segments, les positions X et Y sont des pseudo-positions d'outils sur un pseudo-segment de trajet parallèle au premier segment et recoupant le centre d'une courbe inscrite à tracer tangentiellement aux deux segments, ladite valeur prédéterminée correspondant à la distance comprise entre le premier segment et le pseudo-segment. L'invention peut être mise en oeuvre dans un ensemble particulier de calcul ou sous forme d'un procédé. L'invention permet la commande rentable, rapide, précise et compensée d'un outil sans que le calcul réel de l'intersection des segments successifs compensés soit nécessaire ni que le calcul des points réels de tangence à une courbe inscrite soit nécessaire, si bien que le procédé est très simplifié. D'autres caractéristiques et avantages de l'invention ressortiront mieux de la description qui va suivre, faite en référence aux dessins annexés sur lesquels la figure 1 est un diagramme synoptique de l'invention la figure 2 est un diagramme synoptique relativement détaillé la figure 9 est un diagramme représentant deux segments qui doivent être tracés dans un système de coordonnées X-Y les figures 4 à 21 représentent des parties de circuit d'un interpolateur selon l'invention la figure 22 est un diagramme synoptique représentant deux courbes et un arc inscrit qui doit être tracé dans un sys tème de coordonnées X-Y ; et les figures 23a à 23e concernent l'identification des symboles utilisés sur les figures 4 à 21. Sur les dessins, un ensemble auxiliaire 2Q de calcul est monté entre un calculateur numérique programmé 22 et un dispositif 23 d'entraînement d'outils X-Y comprenant des dispositifs mumériques 24,- 25 d'asservissement destinés à commander le déplacement relatif outil-pièce suivant des axes X et Y respectivement. 'l'ensemble 20 comprend des registres 26 à 40 (figure 2), un additionneur-soustracteur 44 et un circuit logique 60 de commande associé à un registre 62. Des lignes 64 et 66 de sortie du circuit 60 transmettent les impulsions d'avance X et Y aux circuits d'asservissement 24 et 25, L'ensemble du dispositif e-st un interpolateur destiné à commander le déplacement d'un outil suivant des segments successIfs qui sont rectilignes ou circulaires.Si on considère de tels mouvements sur une grille X-Y, les points étant limités à des nombres entiers, un segment rectiligne 70 (figure 3) placé entre les points (X1, Y1) et (X2, Y2) est représenté par l'équation suivante (1) #X.Y - #Y.X + (X1.Y2-X2.Y1) = 0 avec #X = X2-X1 et #Y = Y2-Y1 On peut définir une fonction F qui a une valeur constante à une distance perpendiculaire fixe du-segment rectiligne, pour tous les points du segments (2) F = #X.Y - #Y.X + (X1.Y2-X2.Y1) De manière analogue, pour un segment circulaire 72 compris entre les points (X2, Y2) et (X3, Y3-), ayant un rayon de courbure R- autour du centre (XC, Yc) une fonction correspondante F a une valeur constante (zéro sur le segment) à une distance fixe du centre de courbure (donc à une distance perpendiculaire fixe du sègment 72) (3) F = (X-X)2 + (Y-Y@)2 ~ R2 Les fonctions F peuvent entre modifiées de manière qutel- les tiennent compte d'un décentrage perpendiculaire de largeur K (le signe + ou - indiquant le sens du décentrage par rapport au segment), de la manière suivante (4) F= #X.Y - #Y.X + (X1.Y2-X2.Y1) + KD pour le cas d'un segment rectiligne, avec (5) F = (X-XC)2 + (Y-YC)2 - (R#K)2 dans le cas d'un segment circulaire, K étant ajouté à R lorsque l'arc est tracé dans le sens anti-horaire et étant soustrait dans l'autre cas. Le calculateur 22 calcule les fonctions modifiées par la largeur du dispositif de coupe suivant les équations (4) et (5),et ces fonctionssont appelées F lorsqu'elles corres- pondent à un segment de trajet (par exemple 70) en cours de tracé, et par G lorsqu'elles désignent le segment suivant (par exemple 72) qui doit être tracé. 'les registres 26-40 conservent les données suivantes sous forme binaire Registre Données 26 BX pour le segment en cours de tracé, s'il est rectiligne 28 #Y pour le segment en cours de tracé, s'il est rectiligne 30 valeur de-F 32 position actuelle X 34 position actuelle Y 36 B pour le segment à tracer après 38 YR pour le segment à tracer après 40 valeur de G avec XR = X2-X1 et YR = Y2-Y1 pour un segment rectiligne ayant comme points extrêmes (X1, Y1), (X2, Y2) ; et XR = X-XC et YR = Y-Y( pour un segment circulaire de centre (XC, Ya) Le registre 62 de la commande conserve les paramètres logiques suivants (valeurs limitées à O ou 1) mode actuel (0 s'il s'agit d'un segment rectiligne et 1 d'un segment circulaire) mode futur (0 dans le cas d'un segment rectiligne et 1 dans le cas d'un segment. circulaire) W est le sens du cercle actuellement tracé (O dans le sens horaire et-1 dans le sens anti-horaire) SX est le signe de la position actuelle X SY est le signe de la position actuelle Y est est le signe de EX actuel en mode rectiligne actuel SAy est le signe de #Y actuel en mode rectiligne actuel SF est le signe de F SG est le signe de G le singe d'un paramètre quelconque étant 0 si celui-ci est supérieur ou égal à zéro et étant I dans les autres cas. Le circuit logique 60 comprend un circuit de calcul des fonctions logiques suivantes de commande (valeurs limitées à 1 ou O) (le symbole + représente OU exclusif) Si PM = O LXY = (S#X + S#Y + SF) LA = (S#X .SF) + (S#Y .SF) GXY = LXY GA = LA Si PM = 1 CXY = W + SX + SY + SF CA = W. (SY . SF) + (SX . SF) + W . (SY . SF) + (SX .S GXY = CXY GA = CA En général, le dispositif fonctionne par transmission d'impulsions aux dispositifs 24 et 25 d'asservissement de manière que F (modifié par la largeur du dispositif de coupe comme décrit en référence aux équations (4) et (5)) soit maintenu aussi près que possible de zéro au cours du déplacement le long du segment actuel, le dispositif assurant ensuite la remise à jour des registres 30, 40, 32, 34, 36, 38 après chaque déplacement par paliers de ltentraSnement- et, lorsque la valeur de G change de signe, la fonction G prend le rôle de la fonction F pour la commande du déplacement sur le segment suivant. Le calcul initial des fonctions F et G, d'après les données brutes et les données relatives à l'outil de coupe, ont lieu dans le calculateur 22. La remise à jour ultérieure des fonctions est réalisée par le circuit 20. Dans la description qui suit, l'origine du système de coordonnées X-Y est prise au centre du segment en cours de tracé lorsqu'il est circulaire ou est arbitraire. 'les circuits 24, 25 sont commandés par des impulsions suivant le tableau G GA Impulsion unité émise O O 0 1 -X 1 O 1 1 -Y Après transmission des impulsions, les registres F, X et Y (30, 32, 34) sont remis à jour. F ( ainsi que G) peut être remis à jour totalement de façon avantageuse dans le circuit 20 par application de règles simples concernant les variations de la valeur de la fonction en fonction des variations de X et Y.Ainsi, la remise à jour des registres 30, 32, 34 a lieu selon le tableau suivant lorsque PM = O (c'est-à-dire lorsque le trajet actuel est rectiligneMsi bien que 2 est donné par l'équation (4)) LXY LA Effet sur le Effet sur le Effet sur le registre 30 registre 32 registre 34 (F) (X) (Y) O- O -#Y +1 0 1 +#Y -1 1 0 +#X +1 1 1 -#Y -1 De manière analogue, pour PM = 1 (c'est-à-dire lorsque le trajet actuel est circulaire,si bien que F est donné par l'équation (5)) CXY CA Effet sur le Effet sur le Effet sur le registre 30 registre 32 registre 34 (F) (X) (Y) 0 0 - +2X+1 +1 0 1 -2X+1 -1 1 0 +2Y+1 +1 1 1 -2Y+1 ' -1 Après remise à jour des registres 30, 32, 34, les ré- gistres G, XR et YR (40, 36, 38) sont remis à jour de la manière suivante Lorsque RM = 0 (c'est-à-dire que le segment suivant est rectiligne,si bien que G est donné par l'équation (4)) GXY GA Effet sur le registre 40 (G) O O -YR 0 1 +YR 1 0 +XR 1 1 -XR Lorsque X = 1 (c'est-à-dire que le segment suivant est circulaire,si bien que G est donné.par l'équation (5) GXY G Effet sur le Effet sur le Effet sur le registre 40- registre 36 registre 38 (G) - r ) (YR) 0 0 +2xr+1 +1 o 1 -2XR+1 -1 1 O +2YR+1 +1 1 1 02YR+1 -1. Lorsque SG varie, le déplacement s'arrête suivant la segment actuel et un signal d'interruption est transmis au calculateur 22,si bien que celul-i calcule une nouvelle fonction G et transmet la valeur initiale au registre 40, puis calcule et répartit de nouvelles valeurs initiales de XR et Y vers les registres 36 et 38. La valeur actuelle de la fonction G est transférée sur le registre 40 au registre 30. (Dans une variante, provoquant une légère réduction de la précision, le registre 30 peut être simplement remis à zéro et,dans ce cas là, il ne transfère pas sa valeur au registre 40). Le registre 62 est remis à jour, et le déplacement commence le long du segment suivant. l'ensemble 20 comprend essentiellement un circuit classique destiné à mettre en oeuvre les opérations décrites précédemment, ctest-à-dire qu'il comprend des registres de travail destinés à conserver les résultats partiels, des registres à double largeur pour les fonctions p et G, un circuit logique de routine, des horloges de commande et analogues. Le circuit7représenté en en détail, avec les symboles classiques, sur les figures 4 à 21. 'les figures 23a- à 23e permettent d'identifier les symboles et d'éviter toute confusion. La figure 23a représente un circuit d'inversion, la figure 23b une porte intersectionnégation, la figure 23c un circuit réunion-négation (NI), la figure 23b une bascule et la figure 23é une bascule simple. 'les connexions entre les blocs d'éléments représentés sur les figures 4 à 21 sont indiquées par les références 300 et 9 périeures,permettant la réalisation des connexions du câblage. Comme représenté en détail, le système travaille en modesde chargement et de travail qui stexcluent. Le mode de chargement comprend une opération de lecture pendant laquelle les positions actuelles sont lues sous forme de mots de données binaires par le calculateur 22 et peuvent être utili- sées pour le calcul du point suivant d'intersection, et une opération drécritur-e pendant laquelle les données concernant la position actuelle~et le point ultérieur d'intersection sont transmises sous forme de mots binaires à l'interpolateur, avec un mot de commande indiquant la courbeoudroite à suivre. Des séquences déterminées de mots-de données assurent le transfert des donnees lors des opérations de lecture et d'écriture. En mode de travail, les calculs nécessaires au tracé de la courbe ou droite commandée sont réalisés. La séquence deparamètres utilisés est la même pendant la lecture et l'écriture. Dans un mode de réalisation mettant en oeuvre des mots à 12.bits, les paramètres viennent dans l'ordre suivant : #X, #Y, X, Y, valeur élevée de F, valeur fai ble de F, i, PR, valeur élevee de G et valeur faible de G, les registres 30 et 40 (figure 4) ayant une double largeur (24 bits) de manière qu'ils permettent la conservation des composantes élevées et faibles de F et G. Dans le cas d'un calculateur à 12 bits, les paramètres à 20 bits doivent être séparés en deux parties, une partie d'ordre élevé et une partie d'ordre faible.La partie d'ordre élevé est transmise à l'interpolateur d'abord puis immédiatement suivie par la partie d'ordre faible. Ensuite, les dix paramètres et les deux morceaux de chaque paramètre constituent un transfert à 20 bits provenant du calculateur. 'les lignes d'entrée de données provenant du calculateur apparaissent sur chaque section de llin- terpolateur sous forme de lignes de données 130 à 133 incluses (figure 5).Te cycle de sélection du calculateur apparaît dans le bloc 110 (figure 15) sous forme d'une impulsion de sélec tion par la ligne 134 ; une instruction d'écriture parvient par la ligne 135 et est suivie par une impulsion de chargement par la ligne 136. 'la coïncidence de ces trois impulsions dans les lignes 134 à 136 déclenche une bascule 137 du bloc 110 qui détermine les parties A et B du mot de données. La partie A es g a partie d'ordre élevé à 8 bits du mot. 'les 4 bits les plus significatifs de ce mot ne sont pas considérés comme écriture. la partie B est la partie d'ordre inférieur du mot. La bascule 137 détermine la disposition convenable des parties A et B du mot. Lés états complémentaires de cette bascule déterminent la transmission d'une impulsion de déclenchement par les lignes 138 ou 139, commandant le chargement dans les registres (mémoire intermédiaire) 26 à 40 du bloc 100. le déclenchement de la bascule 137 est compté par un compteur 140 à 4 bits. Pour chaque paire de cycles d'écriture commandés par le calculateur, le compteur 140 change d'une unité. l'étant du compteur 140 est décodé par un décodeur binaire-décimal 141, validant ainsi, par les dix sorties du décodeur, les lignes convenables 142 à 146 d'écriture. Ces signaux des lignes 142 à 146 satisfont à l'adressage du bloc 100. L'autre mode de fonctionnement au cours d'un cycle de chargement est la lecture des paramètres des mémoires intermédiaires 26-40 du bloc 100. La lecture est réalisée dans le même ordre que 7.'écriture. Le mécanisme de commande est pratiquement analogue. La différence essentielle est l'instruction de lecture-de la ligne 147 (figure 16) qui, lorsqu'elle est combinée dans une porte BU avec l'impulsion de sélection de la ligne 134 du bloc 110 (figure-15), est utilisée pour réaliser le complément destiné à la bascule 148 (figure 16).. Cette bascule détermine la disposition relative des parties A et B de la lecture,si bien que les ordres élevé et faible du paramètre sont introduits dans l'ordre convenable.Ainsi, la bascule 148 crée une impulsion A de lecture sur la ligne 149 puis une impulsion B de lecture sur la ligne 150. le déclenchement de la bascule 148 est compté par un compteur 151 à 4 bits du bloc 111 (figure 16), décodé par un décodeur binairedécimal 152. De cette manière, les signaux convenables d'adresse de lecture pour le chargement à créer pour les lignes 153 à 159 d'adresse de lecture sont validés, si bien que les para mètres peuvent être lus-dans les mémoires intermédiaires et chargés dans le calculateur. 'les signaux d'écriture des lignes 142-à 145 parviennent au bloc 105 (figures/10, 11) où ils sont combinés dans une opération logique OU avec les signaux créés au cours des cycles de calcul (comme décrit dans la suite), et créent des signaux transmis par les lignes- 161 à 163. Ces signaux permettent-la sélection des adresses d'écriture provenant des registres. 'les données sont introduites par les lignes 130 à 133. le bloc 100 correspond comme représenté-à un segment à 4 bits d un mot de 20 bits. Quatre segments sont empilés pour créer le mot à 20 bits. la visualisation sous forme d'un bâtiment à cinq étages permet le chargement des deux étages supérieurs par les signaux d'adresse des lignes 161 à 163 et parle signal de la ligne 138 qui est le premier des deux Signaux de déclenchement écriture créés dans-le bloc 110. les trois étages inférieurs et la seconde moitié du paramètre sont introduits par la seconde impulsion d'écriture de la ligne 139, si bien qu'un mot de 20 bits ést écrit en provenance du calculateur à 12 bits. Bes-signaux de commande de registre parviennent par les lignes 164 et 165. le même type de relation de commande existe entre les signaux des lignes 153 à 159, ces lignes créant les adresses de lecture destinées aubloc 100. 'les adresses de lecture sont utilisées -pratiquement de la.même manière sur les lignes 170 à 181. le premier signal de lecture, un signal A de lecture sur la ligne 149, choisit les deux étages supérieurs du bati- ment à cinq étages, et un signal de lecture B de la ligne 150 choisit les trois étages inférieurs et les présente au calculateur. Ta partie d'ordre élevé des mots de données est choisie par les signaux des lignes 170, 171 et 172, et la partie d'or dre faible du mot de données est choisie par les signaux des lignes 173, 174 et 175, si bien que, au cours du cycle de lecture, l'adressage convenable des paramètres de données est réalisé par une fonction à deux étages, si bien que le calculateur a un cycle de lecture à vingt sélections et permet le transfert de dix mots de données. De cette manière, la première partie du cycle est terminée.La partie d'écriture commandée par l'horloge 110 a lieu avent l'exécution d'un cycle de travail, et la lecture a lieu normalement après l'arrivée à une intersection -et juste avant une autre écriture, les données nécessaires au segment suivant étant transmises à l'in- terpolateur. D'autres procédés courants de transfert de données conviennent pour la lecture ou le chargement dans les registres. le procédé décrit n'est qu'illustratif. On considère maintenant une autre partie du circuit logique et on suppose qu'un cycle d'écriture-vient d'avoir lieu. Une impulsion de sélection est transmise à l'interpolateur, comme expliqué précédemment. Un mode de travail est commandé par la ligne 182 dans le bloc 109 (figure 14) et commande le bloc 107 (figure 12) qui est un générateur d'état qui crée seize états-par décodage d'un compteur 183 à 4 bits à l'aide d'un décodeur binaire 184. les états temporels, appelés TS O à TS 15 inclus,son-t utilisés pour la réalisation des calculs né pessaires au tracé du trajet prévu, qu'il s'agisse d'une droite ou d'un cercle. Avant le début des calculs, un mot de données doit être chargé dans le bloc 62 (figures 20, 21) contenant les valeurs initiales des paramètres logiques conservés. Ces données sont ellesmeAmes remises à jour lorsque les calculs avancent. Dans le cas par exemple du signe de X, les données sont prélevées dans l'interpolateur par la ligne 190 du bloc 101 (figure 5). Un calcul est réalisé sur le signe de X pendant l'état TS 7, et le signe du paramètre est ensuite conservé dans une bascule 191 (figure 20),et à la fin du cycle, au cours de l'état TS 15, les données conservées en 191 sont remises à jour dans la bascule 192, le signe de X étant changé pendant le calcul, la bascule de signe étant remise à jour pour un nouveau cycle de calcul. Un cycle est compris entre TS O et TS 15 inclus et forme un calcul complet.Lorsque le signal de la ligne 182 indique que l'interpolateur a commencé à fonctionner, à partir de l'étant US O, l'impulsion X ou Y d'avance destinée à l'entraînement est créée par le bloc 108- (figure 13), et transmise au dispositif 24 ou 25. Le reste des états US 1-15 est alors utilisé pour le calcul du déplacement du dispositif d'asservissement. L'avance est réalisée en fonction des conditions des-signaux des lignes 201 à 203 inclus du bloc 104 (figure 8) qui déterminent si une impul sion-X ou Y est transmise aux dispositifs 24, 25 et aussi s'il s'agit d'une avance ou d'un recul. Un cycle de calcul a alors lieu en fonction de Pm pour la première moitié et Rm pour la seconde moitié.Pendant le reste du cycle temporel, le cal cul est commandé par le bloc 104. les paramètres logiques du bloc 104 sont utilisés pour la création des signaux IX, LA, et et CA, GXY et GA, qui ne varient pas pendant un cycle. Ces fonctions logiques sont introduites logiquement ensemble dans le bloc 105 (figure 9), le générateur 107 créant des signaux transmis par les lignes 210 à 254. Ces signaux sont découpés dans le temps et le générateur de cycles crée dans le bloc 106 les signaux convenant à l'interpolateur, si bien que les données sont calculées de manière convenable, suivant le trajet suivi et le trajet à suivre.Le bloc 106 réalise D'opéra- tion "OU" sur les signaux d'écriture créés par le bloc 110, les signaux des lignes 142 à 146 inclus, destinés à co-mmander l'écriture des données aux emplacements appropriés dans les registres du bloc 100. 'les signaux des lignes 210 à 254 sont utilisés comme représenté pour la détermination des états appropriés des lignes 161 à 165 inclus, pendant le cycle de fonctionnement. De plus, ces signaux sont utilisés pour la détermination des signaux 255 à 258 et pour la commande d'acheminements donnés par les signaux 261 à 266. De cette manière, le paramètre convenable est acheminé à l'entrée A ou B de l'additionneur-su̲stracteur 44-(figure 19).Une fois qu'il a été mis en route, l'interpolateur fonctionne-sous la commande de l'entrée 269. le bloc 107 (figure 12) crée constamment des états temporels jusqutà ce que la fonction G introduite initialement par le calculateur change de signe. le changement de signe est détecté dans le bloc 103 (figure 7) sous la commande du circuit logique du bloc 62 (figures 20, 21). Lorsque le changement de signe est détecté, un signal d'interruption est transmis au calculateur et indique qu'unie intersection a été atteinte.La détection du changement de signe est réalisée par observation de SG, qui est la valeur du signe de G de l'état antérieur, et la considération du signal 270 qui a été remis à jour récemment et qui correspond au signe de G, et si la porte OU exclusIve 271 détecte ces deux signaux dif zérents, elle commande la création d'un signal d'interruption pendant l'état 15 et indique au calculateur que le si goe de G a changé,ctest-à-dire qu'une intersection a été at-- teinte et provoque aussi le déverrouillage du bloc 109 (figure 14 > remis à zéro par le signal 272. L'interruption provoque le déclenchement d'un cycle de lecture du calculateur, sous la commande de son programme, pour qu'il détermine si l'intersection convient bien.Il est possible, dans le cas d'une droite et d'un cercle ou de deux cercles, qu'il y ait deux intersections dont l'une ne convient pas. Dans ce cas, l'interpolateur est simplement remis en route et continue suivant le trajet jusqu'à ce qu'il atteigne le second point d'intersection. La figure 22 illustre une caractéristique supplémentaire de l'invention utile lorsque l'outil doit suivre des tracés successifs 80 et 82 (ces trajets, comme représenté, sont rectilignes et constituent les droites réellement suivies, la compensation en fonction de la largeur de l'outil, le cas échéant, ayant été déjà réalisée). Au lieu de suivre le trajet 80 entièrement jusqu'au sommet 84, il est souvent souhaitable que l'outil décrive une courbe inscrite, dans le cas représenté un arc de cercle 86 de rayon R, tangente aux droites 80 et 82. Cette opération peut eAtre commandée par modification de K dans l'équation (4) de manière que le rayon R voulu soit introduit (si bien que K modifié représente un pseudo-décentrage égal à la somme du décentrage réel voulu le cas échéant et de R voulu), les registres 32 et 34 utilisant les pseudo-valeurs de X et Y correspondant au pseudo-décentrage correspondant au trajet réel de 1Dout,il, décalé de R. Ainsi, le mouvement sur un trajet 80 s'arrête lorsque la pseudoposition dans les registres 72 et 34 se trouve au centre de l'arc 86, la position réelle de outil;; se trouvant au point de tangence voulu de l'arc et de la droite 80. L'outil suit alors l'arc 86 comme décrit précédemment. Ce procédé est par ticulièrement avantageux dans le cas d'un programmateur qui prépare le programme de réalisation du tracé d'une partie donnée avec de telles courbes inscrites (par exemple pour former des congés ou des coins arrondis, qutun décentrage de outil soit nécessaire ou- non). le programmeur ne doit pas calculer l'intersection de la courbe inscrite avec les deux trajets.Son programme comprend uniquement la description des deux trajets et la courbe qui doit entre inscrite, en nomenclature classique, par exemple sous forme d'un ruban de- commande numérique directement utilisable dans le dispositif décrit. Il est clair que l'invention peut être mise en oeuvre uniquement par programmation d'un.calculateur universel, jouant le rôle de l'ensemble 20. les 'spécialistes en pragram-. mation peuvent mettre au point des programmes qui conviennent pour la réalisation de l'ensemble 20, un exemple étant donne dans la-suite, à titre purement illustratif, pour que la description soit complète. le programme est écrit de manière qu'il soit exécuté sur une commande numérique Honeywell H112, et il met en oeuvre le-s codes décrits dans le Manuel de Référence des Programmeurs "Programmers Reference Nanual" (document n0 70130072242B, avril 1970) publié par Honeywell pour ce calcu - lateur. A la suite d'un signal provenant du calculateur 22, le calculateur H112 se met en position de départ STARS. 'les opérations logiques et arithmétiques (qu'il s'vagisse d'un décentrage et/ou d'un arc inscrit) sont exactement comme décrit précédemment en référence à l'ensemble 20. Ainsi, après chaque nouveau calcul de GXY et GA, le calculateur H112 transmet des impulsions appropriées aux-circuits 24, 25 d1asservissement (emplacement OUTPUlSE). Lorsque G a changé de signe, le calculateur Hi"r2 -le signale au calculateur 22 par- une impulsion OCP et attend une instruction SEP de saut pour la remise en route de l'interpolation sur le trajet ultérieur. Le programme est le suivant Emplacement Opération Adresse PSEUDOA EQU 0'170 PSEUDOB EQU 0,172 PSEUDOC EQU 0,174 PSEUDOD EQU 0'176 DELTAX BSS 4 DELTAY BSS 4 X BSS 4 Y BSS 4 p BSS 4 XR BSS 4 va BSS 4 G BSS 4 W BSS 4 WORK1 DATA WORK2 DATA WORK3 DATA CA DATA ## LA DATA GA DATA DATA GXY DATA LXY DATA 'M DATA RM DATA ## FUNC1 DATA ## FUNC2 DATA ## START JST GETVALS LDA G IGR 11 STA PREVG SOO JST GENLXY JST GENLA JST GENCXY JST GENCA JST GENGXY JST GENGA LDA PM SNZ # JMP +3 JST PMONE JMP SO1 JST PMZERO S01 LDA RM SNZ # JMP +3 JST RMONE JMP S02 JST RNZERO S02 JST OUTREGS LDA G LGR 11 SO2 TCA ADD PREVG SNZ JMP SOO OCP CTRICOMP SKS CTRICOMP JMP #-1 JMP START PREVG DATA ## GENCA DATA ## LDA Y OCA STA WORK1 LDA F OCA ANA WORK1 STA WORK1 LDA X ANA F STA WORK2 LDA WORK1 OCA ANA WORK2 ADD WORK1 ANA W STA WORK1 LDA Y ANA F STA WORK2 LDA X OCA STA WORK3 LDA F ANA WORK3 STA WORK3 LDA WORK3 OCA ANA WORK2 ADD WORK3 STA WORK2 LDA W OCA ANA WORK2 STA WORK2 LDA WORK1 OCA ANA WORK2 ADD WORK1 LGR 11 STA GA JMP# GENCA GENLA DATA ## LDA DELTAX GENLA ANA F STA WORK1 LDA F OCA ANA DELTAY STA WORK2 LDA WORK1 OCA ANA WORK2 ADD WORK1 LGR 11 STA LA JMP# GENLA GENCXY DATA ## LDA W ANA HIBIT ADD X NAN HIBIT ADD Y OCA ANA HIBIT ADD F LGR 11 STA CXY JMP# GENCXY GENCXY DATA ## LDA DELTAX ANA HIBIT ADD DELTAY OCA ANA HIBIT ADD F OCA LGR 11 STA LXY JMP# GENLXY HIBIT DATA 0'4000 GENGA DATA ## LDA PM OCA ANA LA STA WORK1 LDA PM ANA CA STA WORK2 OCA ANA WORK1 ADD WORK2 STA GA JMP# GENGA GENGXY DATA ## LDA PM OCA GENGXY ANA LXY STA WORK1 LDA PM ANA CXY STA WORK2 OCA ANA WORK1 ADD WORK2 STA GXY JMP- GENGXY GETVALS DATA ## IDA M20 STA COUNT LDA BLKAD STA BLKPTR INLOOP INA CTRLCOMP STA# BLKPTR IRS BLKPTR IRS GOUET JMP INLOOP JMP# GETVALS M20 DATA -20 ROUND DATA BLKAD DATA Y BLKPTR DATA ## CTRICOMP EQU 01 MOTOR EQU 10 OUTREGS DATA ## LDA MM20 STA COUNTO LDA BLKDO STA BLKPTRO OUTLOOP LDA# BLKPTRO OTA CTRLCOMP IRS COUNTO JMP OUTLOOP LDA GA ANA 04000 lGR 11 STA TEMPO LDA GXY ANA 04000 LGR 10 ADD TEMPO ADD PLSTABA STA TEMPO LDA# TEMPO OTA MOTOR JMP# OUTREGS MM20 DATA -20 COUNTO DATA ## BLKADO DATA DELTAX 04000 DATA TEMPO DATA 0'4000 PLSTABA DATA ## PULSTB DATA PULSTB DATA DATA 2 DATA 4 DATA 8 BSS -3 'MONE DATA LDA CXY RAR 11 ADD CA ADD PMOTBL STA PMONE-2 ADD P4 STA PMONE-2 LDA# PMONE-2 SMI PMO7 TCA STA PMO1 STA PMO2 LDA AQPSUB PMO5 STA FUNC1 LDA# PMONE-1 SMI JMP PMO8 TCA STA PMO3 STA PMO4 LDA AQPSUB PMO6 STA FUNC2 JST LOADAB PMO1 DATA ## JST LOADCD PMO2 DATA ## JST QPADD JST STORAB DATA PSEUDOC LOADAB DATA JST# FUNC1 JST LOADCD DATA QPONE JST QPADD JST STORAB DATA p JST LOADAB PMO3 DATA ## JST# FUNC2 JST STORAB PM04 DATA JMP# PMONE PMO7 STA PMO1 STA PMO2 LDA AQPADD PMO7 JMP PMO5 PMO8 STA PMO3 STA PMO4 LDA AQPADD JMP PMO6 PMOTBL DATA #+1 DATA X DATA -X DATA Y DATA -Y DATA X DATA -X DATA Y DATA -Y DATA ## RMZERO DATA ## LDA GXY RAR il ADD GA ADD RMZTBL STA RMZERO-1 LDA# RMZERO-1 SMI JMP TCA STA RMZ1 LDA AQPSUB RMZ2 STA FUNC1 JST LOADAB DATA -G JST LOADCD RMZ1 DATA ## JST# FUNC1 JST STORAB DATA G JMPB RNZERO RMZ3 STA RMZ1 LDA AQPADD JMP RMZ2 RMZTBL DATA #+1 DATA -YR DATA va DATA va DATA -XR BSS 2 PMZERO DATA ## LDA LXY RAR 11 ADD 'A ADD PMZTBL STA PMZERO-2 ADD P4 STA RMZERO-1 LDA# PMZERO-2 PMZERO SMI PMZ7 TCA STA PMZ1 LDA AQPSUB PMZ2 STA FUNC1 LDA# PMZERO-1 SMI JMP PMZ8 TCA STA PMZ4 STA PMZ5 LDA AQPSUB STA FUNC2 JST LOADAB DATA p JST LOADCD PMZ1 DATA ## JST# FUNC1 JST STORAB DATA p JST LOADAB PMZ4 DATA ## JST LOADCD DATA QPONE JST# FUNC2 JST STORAB PMZ5 DATA ## JMP# PMZERO PMZ7 STA PMZ1 LDA AQPADD JMP PMZ2 PMZ8 STA PMZ4 STA PMZ5 LDA AQPADD JMP PMZ6 AQPADD DATA QPADD AQPSUB DATA QPSUB QPONE DATA O DATA O DATA O DATA 1 PMZTBL DATA #+1 DATA -DELTAY DATA DELTAY DATA DELTAY DATA -DELTAX DATA X DATA -X DATA Y DATA -Y p4 DATA 4 BSS 3 RMONE DATA # RMONE LDA GXY RAR 11 ADD GA ADD RMOTBL STA RMONE-2 ADD P4 STA RMONE-:: LDA# RMONE-2 SMI JMP RMO7 TCA STA RMO1 STA RMO2 LDA AQPSUB RMO5 STA FUNC1 LDA# RMONE-1 SMI JMP RMO8 TGA STA RMO3 STA RMO4 LDA AQPSUB RMO6 STA FUNC2 JST LOADAB RMO1 DATA ## JST LOADCD RMO2 DATA ## JST QPADD JST STORAB DATA PSEUDOC JST LOADAB DATA G JST# FUNC1 JST LOADCE DATA QPONE JST QPADD JST STORAB DATA G JST LOADAB RMO3 DATA ## JST# FUNC2 JST STORAB RMO4 DATA ## JMP# RMONE RMO7 STA RMO1 STA RMO2 LDA AQPADD JMP RMO5 RMO8 STA RMO3 STA RMO4 LDA AQPADD JMP RM06 RMOTBL DATA DATA DATA -XR RMOTBL DATA YR DATA -YR DATA va DATA -XR DATA YR DATA -YR QPZERO DATA DATA ## DATA ## DATA ## QPM1 DATA -1 DATA -1 DATA -1 DATA -1 QPADD DATA LDA QPADD STA DPADD LDA JMP ADDIN DPADD DATA ## LDA NOP ADDIN STA BREAK1 TOA BREAK1 ### JMP ADD1 LDA PSEUDOD+1 ADD PSEUDOB+1 STA PSEUDOB+1 TOA ADD PSEUDOD ADD PSEUDOB STA PSEUDOB ADD1 TOA ADD PSEUDOC+1 ADD PSEUDOA+1 STA PSEUDOA+1 TOA ADD PSEUDOC ADD PSEUDOA STA PSEUDOA JMP# DPADD QPSUB DATA LDA QPSUB STA DPSUB LDA SKP JMP SUBIN DPSUB DATA LDA NOP SUBIN STA TOA BREAK2 JMP SUB1 LDA PSEUDOD+1 OCA ADD SUBP1 BREAK2 ADD PSEUDOB+1 STA PSEUDOB+1 SNO IRS PSEUDOB JMP #+5 IRS PSEUDOA+1 JMP #+3 IRS PSEUDOA NOP LDA PSEUDOD OCA ADD PSEUDOB STA PSEUDOB SNO IRS PSEUDOA+1 JMP #+3 IRS PSEUDOA+1 JMP #+3 IRS PSEUDOA NOP LDA PSEUDOC+1 OCA SUB1A EQU # ADD PSEUDOA+1 STA PSEUDOA+1 SNO IRS PSEUDOA NOP NOP LDA PSEUDOC OCA ADD PSEUDOA STA PSEUDOA JMP# DPSUB SUB1 LDA PSEUDOC+1 OCA ADD -SUBP1 JMP SUB1A DPMPY DATA ## LDA PSEUDOA SMI JMP SPMO1 JST PCTCA JST DPTCA DPM01 EQU LDA PSEUDOA STA PSEUDOB LDA PSEUDOA+1 STA PSEUDOB+1 CRA STA PSEUDOA STA PSEUDOA+1 STA DPTCA LDA M24 STA DPMWRK1 DPMO2 EQU # PMO2 LDA PSEUDOB+1 RAR 1 SPL JMP MPADD DPMO3 EQU # JST LGRS LDA PSEUDOA ADD DPTCA STA PSEUDOA IRS DPMWERK1 JMP DPMO2 JMP# DPMPY MPADD JST DPADD InA PSEEDOO ANA 04000 STA DPTCA JMP DPMO3 04000 DATA 0'4000 DPTCA DATA TOA LDA PSEUDOA+1 OCA ADD SUBPI STA PSEUDOA+1 LDA PSEUDOA OeA SNO ADD SUBP1 STA PSEUDOA JMP# DPTCA SUBP1 DATA 1 SKP SKP M24 DATA -D'24 DPMWRK1 BSS 1 PCTCA DATA # TOA LDA PSEUDOC+1 OeA ADD TCAP1 STA PSEUDOC+1 LDA PSEUDOC OCA SNO ADD TCAP1 STA PSEUDOC JMP# PCTCA DPOWRK1 DATA ## DPOWRK2 DATA ## DPDVS BSS 2,0 DIVM24 DATA -24 TCAP1 EQU # DPONE DATA 1 DIVT HLT LGRS DATA ## LDA M4 LGRS STA POP LI)A PADRA STA MOVE TOA LGRAS TOA RAR STA QTEMP LDA# MOVE LGR 1 ADDi QTENP STA MOVE IRS MOVE IRS POP JMP LGRAG JMP# LGRS END L'invention peut être mise en oeuvre, par généralisa- tion, de manière que l'outil soit entraîné aussi suivant un axe Z, ou les équations peuvent être modifiées de manière qu'el- les correspondent à des trajets qui ne sont ni circulaires ni linéaires. Il est bien entendu que l'invention n'a été décrite et représentée qu'à titre d'exemple préférentiel et qu'on pour- ra apporter toute équivalence technique dans ses éléments constitutifs sans pour autant sortir du cadre de l'invention, qui est défini dans les revendications annexées. RiBVENDICAUIONS 1. Procédé de commande d'un dispositif d'entratnement d'outil suivant au moins deux axes X et Y, pour le tracé d'un premier segment, au cours de l'approche dtun second segment, ledit procédé comprenant la conservation de données sur les positions X et Y correspondant aux positions actuelles de outil X et Y et d'une première fonction dont la valeur dépend de la distance mesurée perpendiculairement entre les positions X et Y et le second segment, la remise à jour des données conservées lors de l'avance de l'entraînement au cours du tracé du premier segment, et l'interruption du tracé du premier segment lorsque la fonction prend une valeur prédéterminée différente de zéro. 2. Procédé selon Ia revendication 1, caractérisé en ce que la valeur prédéterminée correspond à un décentrage voulu d'un outil sur le second segment, et les positions X et Y sont lesdites positions actuelles de l'outil. 3. Procëdé selon la revendication 1, caractérisé. en ce que les positions X et Y sont des pseudo-positions d'outils sur un pseudo-segment parallèle au premier segment et recoupant le centre dtune courbe inscrite qui doit entre tracée et qui est tangente au premier et au second segment, la valeur prédéterminée correspondant à la distance comprise entre le premier segment et le pseudo-segment. 4. Procédé selon la revendication 3, caractérisé en ce que la courbe inscrite est un arc de cercle, et le pseudo segment est séparé du premier par le rayon du cercle de l'arc. 5. Procédé selon la revendication 1, caractérisé en ce que le tracé du premier segment est interrompu lorsque la valeur de la fonction ajoutée à une valeur constante change de signe algébrique. 6. Procédé selon la revendication 1, caractérisé en ce que la valeur conservée de la fonction est remise à jour suivant la table qui suit, lorsque le second segment est un segment rectiligne entre les points (x1, Y1) et (X2, Y2), la fonction étant de la forme H = #X.Y - #Y.X + (X1.Y2-X2.Y1), avec #X = X2-X1 et #Y = Y2-Y1 :: Avance/de l'entraînement Valeur de remise à jour de H +X -#Y +Y +#Y -X +#Y -Y -#X 7. Procédé selon la revendication 1, caractérisé en ce que la valeur conservée de la -fonction est remise à jour suivant le tableau qui suit, le second segment étant un arc de cercle ayant un centre (XC, YG) et des points extrêmes (X1, Y1), (X2, Y2), la fonction étant de la formel H = (X-XC)2 + (Y-YC)2 Avance de l'entraînement Valeur de remise à jour de H +2(X-) + I- +y +2(Y-YC) + 1 -X -2(X-XC) + 1 -Y -2(Y-YC) + 1 8. Procédé selon la revendication 1, caractérisé en ce qutil-comprend la conservation de données supplémentaires relatives à une seconde fonction dont la valeur dépend de la distance mesurée perpendiculairement entre la position réelle de l'outil et le premier segment, la remise à jour des données supplémentaires lors de l'avance de l'entraînement au cours du tracé du premier segment, et la commande de l'avance de manière que la valeur de la seconde fonction tende vers une valeur constante prédéterminée correspondant au décentrage voulu de I2 outil.