FR 2044813 A1 19710226 FR 7018490 A 19700521 70 18490 1 2044813 L'invention concerne un dispositif électronique pour la commande numérique automatique d'un déplacement relatif, notamment du déplacement relatif entre l'outil et l'ouvrage d'une machine-outil, au moyen d'impulsions électriques, de telle manière que ce 5 déplacement ait d'une part une longueur déterminée, et soit d'autre part parcouru à une vitesse déterminée par un nombre donné, dit nombre de vitesse. Ces facteurs peuvent, notamment, être enregistrés sous forme codée dans un programme préparé à l'avance et lu au fur et à mesure. 10 On a déjà décrit, notamment dans le brevet français n° 1.311.506 de la titulaire, demandé le 7 décembre 1961, un tel dispositif de commande d'un déplacement tant en vitesse qu'en distance, au moyen de servo-moteurs du genre de ceux dont la vitesse instantanée est proportionnelle à la fréquence de trains respectifs 15 d'impulsions électriques à eux appliqués et qui procurent les composantes du déplacement désiré suivant les axes de coordonnées. Si l'on se reporte au brevet ci-dessus mentionné on constate qu'au lecteur de bande constituant le programme préparé à l'avance est associé un bloc d'entrée qui entre autre fonction a 20 pour rôle de convertir les informations lues de la forme décimale codée binaire en binaire pur et de les enregistrer sous cette forme dans des registres d'attente. Or on sait qu'une tendance actuelle est au développement de consoles de visualisation utilisant des données sous la forme 25 décimale codée binaire. Il y a donc un inconvénient à utiliser les dispositifs de l'art antérieur en ce qu'il faut à nouveau recourir a des convertisseurs de la forme binaire pur en décimale codée binaire avant de pouvoir afficher sur les consoles les valeurs des déplacements, des vitesses, des positions de l'outil et de l'ouv-30 rage. Il y a donc un avantage évident à effectuer toutes les opérations depuis la bande constituant le programme enregistré jusqu'aux servo-moteurs en restant dans le système décimal codé binaiie. La présente invention permet de parvenir à cet important 35 résultat. Suivant l'invention, le. dispositif pour la commande numérique d'un déplacement relatif, notamment du déplacement relatif entre l'outil et l'ouvrage d'une" machine outil, au moyen de trains d'impulsions électriques de commande appliqués à des servo-moteurs 40 provoquant les déplacements relatifs suivant les axes de coordcmées, 18490 2 2044813 qui comprend un programme dans lequel les informations relatives à des segments de déplacement successifs sont enregistrées sous forme décimale codée binaire suivant des blocs successifs contenant chacun au moins deux nombres représentant l'un les coordonnées vecto-5 rielles d'un point sur la trajectoire du déplacement projeté suivant les axes de coordonnées, l'autre la nature du déplacement, linéaire ou non, et qui comprend en outre, en liaison avec chaque servomoteur: un premier registre capable d'emmagasiner-les nombres d'un bloc d'information; un premier additionneur initialement vide et de 10 capacité limitée; des premiers moyens de commande permettant de transférer le nombre représentant la coordonnée vectorielle d'un point chiffre après chiffre dans le premier additionneur; des seconds moyens de commande pour transférer un integrand dans l'additionneur et l'ajouter au nombre qui s'y trouve; des moyens pour 15 engendrer une impulsion qui s'ajoute aux imnulsions précédentes pour former un train d'impulsions à chaque fois que la capacité de l'additionneur est dépassée, caractérisé en ce qu'il comprend en outre: un second additionneur; des moyens pour transférer le reste .de l'addition du premier additionneur dans le second; des moyens 20 nour ajouter le nombre six dans le second additionneur à chaque fois que le reste de l'addition est supérieur à neuf; un second registre; des moyens de commande pour transférer le reste du second additionneur au second registre et des moyens pour transférer le reste du second registre au premièr additionneur en vue de son ad-25 dition avec l'intégrant. Lorsque le déplacement est linéaire, l'intégrant est égal au nombre emmagasiné dans le premier registre. Lorsque le déplacement est autre que linéaire, l'intégrant est un nombre constamment variable qui est engendré par une 30 commande d'interpolation non linéaire, telle qu'un analyseur numérique différential. D'autres caractéristiques ressortiront de la description qui va suivre et qui n'est donnée qu'à titre d'exemDle. A cet effet on se reportera aux dessins joints dans lesquels:. : 35 - la figure 1 représente un schéma bloc simplifié du sy stème de commande suivant la présente invention; - la figure 2 montre un segment de bande perforée constituant le programme enregistré, ce segment contenant deux blocs d'informations relatifs l'un à un segment rëctiligne, l'autre à un 40 segment circulaire; 18490 3 2044813 - la figure 3 est un graphique relatif à une interpolation linéaire: et - la figure 4 est une représentation schématique de la partie interpolatrice de l'invention. 5 Suivant la représentation de la figure 1, la fraiseuse 10 a une table 12 supportant un ouvrage 14. Un outil de coupe 16 est entrainé par une broche 18. La table 12 et "l'outil 16 peuvent être déplacés l'un par rapport à l'autre dans un trièdre tri-rectangle X, Y, Z à l'aide de servo-moteurs 20 et 22. L'outil peut 10 être déplacé suivant l'axe des Z. Le dispositif de l'invention sera décrit relativement à un plan X-Y. Il est bien évident qu'il pourrait être immédiatement étendu à un nombre quelconque de coordonnées. L'entrée du système est constituée par une bande souple d'instructions 24 perforée ou magnétique lue par un lecteur de 15 bande 25 qui lit une rangée transversale h un instant déterminé. La bande a déjà été décrite en détail en liaison avec la figure 2 du brevet cité ci-dessus. On notêra simplement en liaison avec la figure 2 de la présente demande que la bande comporte deux blocs successifs d'instructions. Le premier bloc 26 concerne un 20 segment rectiligne pour l'outil partant d'une position précédente indiquée par la perforation colonne 8 ligne 30 correspondant à une fin de bloc d'instruction. Le nombre codé G10 représente arbitrairement l'instruction pour la commande numérique d'exécuter une interpolation linéaire à la vitesse 6530. Les coordonnées du point 25 final du déplacement de l'outil de couoe sont: +1234 sur l'axe des X et +3702 sur l'axe des Y par rapport aux coordonnées du point de départ. La trajectoire correspondante est représentée à la figure 3 en supposant que le point de départ soit l'origine. Le second bloc d'instructions 28 commence par le nombre codé G30 qui repré-30 sente arbitrairement une interpolation circulaire dans le sens contraire à celui du déplacement des aiguilles d'une montre. Il est suivi de la vitesse de déplacement et des coordonnées relatives du point final que doit occuper l'outil de coupe soit +25 suivant l'axe des X et -75 suivant l'axe des Y. 35 Les coordonnées -des déplacements suivant les différents axes sont exprimées sous la forme- décimale codée binaire comme il est bien connu. On ne parlera pas ici des fonctions d'une commande numérique recevant les instructions de la bande programme car ce n'est 40 pas l'objet de la présente invention qui concerne uniquement les 18490 4 2044813 opérations d'interpolation linéaire et non-linéaire; Tous les éléments qui participent a la présente invention sont considéras comme connus en eux-mêmes. La séquence des opérations de la commande numérique est 5 déterminée par une horloge centrale qui émet les impulsions horaires appropriées. La commande numérique est synchronisée de façon appropriée par les impulsions de l'horloge centrale et il en est de même pour les diverses opérations qui seront décrites ci-après et qui s'effectuent selon-un échelonnement convenable dans le temps. 10 Les instructions lues par le lecteur de bande 25 sont emmagasinées et transmises à l'élément de la commande numérique déterminé par l'adresse lue sur les instructions. Si l'on se reporte à la figure 2, le bloc d'instructions 26 comporte une adresse G10 demandant a la commande numérique d'exécuter une interpolation li-15 néaire. Lorsqu'une telle instruction est lue par le lecteur de bande, une unité de commande de pente 40 est qualifiée, figure 1; lorsque l'adresse et le nombre de vitesse 42 figure 2 sont lus, une unité de commande de vitesse 44 est qualifiée figure 1 et le nombre de vitesse est emmagasiné en vue de son transfert a une commande 20 d'addition de pente 46. Le lecteur de bande lit ensuite les instructions numériques relatives aux axes X et Y et les emmagasine dans une mémoire de transit et de charge 48. Les données relatives aux axes X et Y sont toutes deux en décimal codé binaire. Ces données sont transférées de la mémoire de transit et de charge 48 a un 25 interpolateur 50 lorsqu'une commande de charge 52 est excitée par un emmagasinage d'adresse d'interpolation 54 qualifié par le signal d'instruction d'interpolation linéaire. La vitesse à laquelle les données en décimal codé binaire sont transférées à 1'interpolateur 50 est commandée par la commande d'addition de pente 46 suivant 30 l'instruction de vitesse. Deux trains d'impulsions apparaissent à la sortie de 1'interpolateur 50 pendant l'interpolation des données, chaque train d'impulsions étant appliqué suivant la représentation respectivement aux servo-moteurs 20 et 22. Chaque impulsion dans chaque "train 35 correspond à un déplacement élémentaire de la table 12 suivant un axe particulier à l'aide du servo-moteur correspondant pendant un intervalle de temps déterminé. Les données numériques en X et en Y désignent un déplacement de l'outil de coupe par rapport à sa position initiale. L'interpolateur 50 de la figure 1 est prévu pour 40 fournir au servo-moteur 20 de l'axe des X, à l'intérieur d'une pé- 18490 5 2044813 xiode de temps déterminée, un nombre donné d'impulsions, et pour fournir au servo-moteur 22 de l'axe des Y pendant le même laps de temps, un nombre déterminé d'impulsions, le rapport de ces nombres d'impulsions étant le même que le rapport des coordonnées X et Y du 5 point A car rapport au point 0 soit 3 dans l'exemple choisi. Suivant la représentation de la figure 4, l'interpola-teur 50 comporte une section 58 relative à l'axe des X et une section 60 relative à l'axe des Y qui sont identiques pour la structure et les fonctions. On ne décrira donc que la section 58 rela-10 tive à l'axe des X. Lors de la réception d'un signal de charge.de la commande de charge 52 de la figure 1, la donnée relative à l'axe des X est transférée de la mémoire de transit et de charge 48 de la figure 1 à l'emmagasinage d'intégrant 62 figure 4. Lorsque la porte de commande 66 est qualifiée par la réception d'un signal d'addi-15 tion en provenance de la commande d'addition de pente 46 de la figure 1, les données contenues dans l'emmagasinage d'intégrant 62 sont transférées chiffre après chiffre dans un premier additionneur de pente 70, dans lequel chaque chiffre du nombre représentant la donnée est ajouté à un intégrant qui dans le cas de l'interpolation 20 linéaire est le nombre lui-même. Chaque chiffre successif du nombre décimal codé binaire est nar conséquent continuellement ajouté au reste dans le premier additionneur de pente 70 jusqu'à ce que l'interpolation soit terminée. A chaque fois que l'addition d'un chiffre a pour résultat un débordement de la position du chiffre le 25 plus significatif, un recort de dix est transmis par l'intermédiaire de l'appareil 74 à un détecteur 78 qui engendre une impulsion de trop-plein sur sa sortie correspondante dont l'ensemble constitue le train d'impulsions qui est anpliqué au servo-moteur relatif à l'axe des X. 30 Aorès que chaque chiffre a été ajouté au.reste dans le premier additionneur de pente 70, le nouveau reste de l'addition, c'est à dire la somme débarassée de ses reports est transférée dans un second additionneur 80 dans lequel elle est ajoutée soit à zéro s'il n'y a pas eu de report dans l'addition à l'intérieur de l'ad-35 ditionneur 70, soit au chiffre six (01100 en binaire) si la somme a été supérieure à neuf ou égale à seize. L'appareil de report de dizaine 74 est à même de provoquer automatiquement l'emmagasinage d'un six dans le second additionneur 80 à chaaue. fois qu'il transfère un report de dizaine du premier additionneur 70 vers le détec-40 teur 78. Le résultat de l'addition du reste dans le second addi 70 18490 6 2044813 tionneur de pente 80 avec soit zéro soit six est transféré dans un magasin de reste 84, dans lequel il est emmagasiné en vue de son addition ultérieure avec l'intégrant dans le premier additionneur de pente 70 dans le cas de l'interpolation linéaire. Chaque chiffre 5 du nombre décimal codé binaire est traité de la façon qui vient d'être décrite, jusqu'à ce que des-trains d'inpulsions de durée appropriée aient été engendrés sur la- sortie du détecteur de débordement 78, la vitesse de l'interpolation étant déterminée et commandée par la commande de vitesse 44, figure 1, sous la dépendance du nom-10 bre de vitesse 42. Dans le cas d'une interpolation non-linéaire, le chiffre emmagasiné à l'origine dans le registre d'emmagasinage d'intégrant 62 est ajouté dans le premier additionneur 70 à un intégrant qui, en fait, est fourni par une commande 88 d'interpolation non-linéaire. 15 Le principe de l'interpolation non-linéaire est le même que celui qui a été exposé à propos de l'interpolation linéaire, c'est a dire qu'à chaque fois qu'un débordement se produit à partir du premier additionneur de pente 70, le détecteur de débordement 78 émet une impulsion sur sa sortie correspondante et chaque fois que la somme 20 dans le premier additionneur de pente 70 est supérieure à neuf ou égale à seize, le chiffre six est emmagasiné par l'appareil de report de dizaine 74 dans le second additionneur de pente 80. Le résultat de l'addition dans le premier additionneur de pente 70 est transmis au second additionneur 80 pour y être ajouté soit à zéro ■25 soit à six, le résultat de cette seconde addition étant ensuite transféré^ dans le magasin de reste 84 en vue d'une addition ultérieure avec l'intégrant dans le premier additionneur de pente 70. Lorsque le bloc d'instructions débute par une adresse d'interpolation non-linéaire, le nombre d'interoolation ou intég-30 rant est fourni par la commande 88 d'interpolation non-linéaire et est un nombre changeant continuellement et qui est fourni par example par un analyseur numérique différentiel, appareil bien connu du technicien. On pourra se reporter s'il apparaît.nécessaire au passage du brevet cité précéde-nment qui est relatif à l'interpo-35 lation circulaire. Quelques considérations d'arithmétique éclaireront la méthode précédemment décrite: Si l'on se reporte à la figure 2, on voit que l'instruction pour l'interpolation linéaire dans le bloc 32 assigne le nombre 40 1234 pour l'axe des X ce nombre étant en.code décimal codé binaire, 18490 7 2044813 code 8421 comme suit: 12 3 4 0001 0010 0011 0100 Chaque chiffre binaire d'un nombre est emmagasiné individuellement 5 sous la forme décimale codée binaire dans une mémoire de transit et de charge 48 et interpolé en étant soumis individuellement au traitement expliqué précédemment. On donne ci-après un exemple d'addition répétée de par exemple le chiffre le moins significatif du nombre 1234: 10 0000 additionneur vide + 0100 0100 somme égale a 4 + 0100 1000 somme égale à 8 + 0100 1100 somme égale à 12 15 (ce n'est pas un chiffre décimal codé binaire) On voit donc que le rest dans le premier additionneur de pente 70 devient errone (ce n'est pas un chiffre décimal codé binaire), à chaque fois qu'il y a un report de dix. Pour ramener le reste à un chiffre codé correct à chaque fois qu'il y a un report de dix, 20 on ajoute le chiffre 6 dans le second additionneur de pente 80 au résultat de la première somme: 1100 + 0110 report de dix 0010 reste égal à 2 (correct) 25 Ce reste est emmagasiné dans le magasin des restes 84 pour être transféré ultérieurement dans le premier additionneur 70 et être ajouté au chiffre intégrant 4, emmagasiné en 62, addition qui se représente arithmétiquement comme suit: 0010 + 0100 30 0110 somme égale a 6 + 0100 1010 somme égale à 10 (ce n'est pas un + 0110 chiffre décimal codé binaire) report de dix 0000 reste égal à zéro (correct) On peut donc voir que par le simple expédient d'ajouter 35 a la somme le nombre six à chaque fois qu'il y a un report de dix dans le premier additionneur, le reste est corrigé en vue de son addition ultérieure à l'intégrant. Le report de dix dans le premier additionneur 70 est détecté par l'unité de report de dix 74 en interrogeant la somme 40 dans l'additionneur. Si un "un" est présent dans la position nu 70 18490 8 2044813 mérique la plus significative, la somme est au moins égale à 8 et si de plus un "un" est également présent dans l'une des deux positions de chiffres voisines, la somme est respectivement égale à 12 ou 10. Par conséquent la présence ou non d'un "un" à la fois dans 5 la position numérique la plus significative et dans l'une quelconqje des deux positions numériques voisines du premier additionneur est détectée par l'unité de report de dix 74 comme un ordre d'avoir à emmagasiner automatiquement un "six" ou un "zéro" dans le second additionneur 80. 10 A chaque fois qu'un report correspondant au chiffre seize intervient comme résultat de l'addition de l'intégrant au reste, un tel report étant réellement, dans le système décimal codé binaire un report d'un chiffre significatif vers le chiffre plus significatif immédiatement voisin, le nombre six est également emmagasiné 15 dans le second additionneur 80 pour corriger le reste. Par exemple si le chiffre intégrant est huit (1000 en binaire), l'addition s'effectue comme suit: 1000 + 1000 2q report 0000 Reste égal à zéro (incorrect). Le reste correct est 6. Le reste ci-dessus incorrect est ajouté au nombre six emmagasiné dans le second additionneur 80 pour obtenir un reste correct en vue de son addition ultérieure avec l'intégrant. Le report correspondant au chiffre seize qui est un 25 report normal dans le système décimal codé binaire fournit donc un débordement produisant une impulsion à la sortie du détecteur 78 et l'emmagasinage du chiffre six dans le second additionneur 80. 70 18490 9 2044813 Revendications 1) Commande numérique d'un déplacement relatif, notamment du déplacement relatif entre l'outil et l'ouvrage d'une machfre outil, au moyen de trains d'impulsions électriques, de commande 5 appliqués à des servo-moteurs provoquant, les déplacements relatifs suivant les axes de coordonnées.qui comprend un programme dans lequel les informations relatives à.dçs segments de déplacement successifs sont enregistrées sous forme décimale- codée binaire suivant des blocs successifs contenant chacun au moins deux nombres, 10 représentant l'un les. coordonnées vectorielles d'un point sur la trajectoire du déplacement projeté suivant les axes de coordonnées, l'autre la nature du déplacement, linéaire ou non.,, et qui comprend en outre, en liaison avec chaque servo-moteur: un premier registre capable d'emmagasiner 'les nombres d'un bloc d'information; un pre-15 mier additionneur initialement vide et de capacité limitée; des premiers moyens de commande permettant de transférer le nombre représentant la coordonnée vectorielle d'un point chiffre après chiffre dans le premier additionneur; des seconds moyens de commande cour transférer un intégrant dans l'additionneur et l'ajouter au 20 nombre qui s'y trouve; des moyens pour engendrer une impulsion qui s'ajoute qux' impulsions précédentes pour former un train d'impulsions à chaque fois qu'il y a débordement de la capacité de l'additionneur, caractérisée en ce qu'elle comprend en outre: un second additionneur; des moyens pour transférer le reste de l'addition du 25 premier "additionneur vers le second; des moyens pour ajouter le nombre six dans le second additionneur a chaque fois que le reste de l'addition est supérieur à neuf; un second registre; des moyens de commande pour transférer le résultat de l'addition dans le second additionneur vers le second registre puis de là vers le 30 premier additionneur en vue de son addition avec l'intégrant. 2) Commande numérique suivant la revendication 1, caractérisée en ce que le déplacement est linéaire et en ce que l'intégrant est égal au nombre emmagasiné dans le premier registre. 3) Commande numérique suivant la revendication 1, cara-35 ctérisée en ce que le déplacement est non linéaire et en ce que l'intégrant est un nombre constamment variable qui est engendré par une commande d'interpolation non linéaire, telle qu'un analyseur numérique différentiel.