Brevet FR2108196A1 — publié le 19720519

La présente invention concerne les systèmes de commande numérique pour machines-outils et plus particulièrement un système de commande numérique dans lequel les données d'un programme enregistré sur une bande telle que magnétique ou perforée sont emmagâ-5 sinées dans la mémoire d'un calculateur pour permettre une sélection et/ou une correction ultérieure (s). Dans un système de commande numérique classique les données enregistrées sur bande sont lues d'une manière séquentielle et exécutées telles qu'elles sont lues. Les données enregistrées sur 10 bande ne peuvent être modifiées que dans la mesure où l'opérateur de la machine peut introduire des corrections manuelles. Dans le cas d'une bande utilisée de façon répétitive, la seule possibilité satisfaisante de révision consiste à préparer une nouvelle bande même s'il ne s'agit que de modifications mineures des données. 15 Suivant la présente invention, il est possible de s'écar ter des données enregistrées sur la bande programme dans la commande de la machine-outil sans avoir recours à une commande manuelle de la machine et sans être obligé de préparer une nouvelle bande programme. Suivant un premier aspect, l'invention concerne un procé-20 dé d'exécu$ioned BiïRaè§nà commande numérique qui est caractérisé en ce qu'il consiste à ï emmagasiner séquentiellement un programme partiel dans la mémoire d'un calculateur numérique; à sélectionner des parties du programme partiel emmagasiné dans la mémoire et/ou à les corriger en utilisant un dispositif d'entrée manuel pour désigner les 25 emplacements et a exécuter les parties du programme partiel sélectionné et/ou corrigé sous le contrôle du calculateur. Suivant un second aspect l'invention concerne un système de commande numérique faisant application du procédé précédent, caractérisé en ce qu'il comprend : un calculateur numérique universel; 30 une mémoire numérique adressable par l'intermédiaire du calculateur; un premier moyen d'entrée pouvant fonctionner sous le contrôle du calculateur pour introduire séquentiellement dans la mémoire un programme partiel ; un second moyen d'entrée à fonctionnement manuel pour sélectionner des parties du programme partiel emmagasiné dans la mé-35 moire et/ou les corriger sous le contrôle du calculateur, et des moyens d'exécution capables de recevoir des parties du programme partiel emmagasiné en mémoire et de. fournir des impulsions de commande à une machine outil. D'autres caractéristiques ressortiront de la description 40 qui va suivre et qui n'est donnée qu'à titre d'exemple. A cet effet 71 26973 2 2108196 on se reportera aux dessins joints dans lesquels : - la figure 1 est un schéma-bloc du hardware permettant la réalisation de l'invention; - la figure 2 est une représentation du tableau de com-5 mande montrant les types de commutateurs et de moyens d'affichage utilisables ; - la figure 3 représente le schéma électrique d'un système de commutation préféré illustrant les communications et les connexions entre commutateurs et calculateur ; 10 - la figure 4 représente un schéma-bloc de programmes indiquant les priorités entre différentes sous-routines; - la figure 5 est une représentation schématique illustrant la disposition des données sur une bande et lors de l'emmagasinage dans le calculateur ; 15 - les figures 6 à 10 sont des organigrammes de routines programmées. Suivant le mode de réalisation de la figure 1, le hardware permettant la mise en oeuvre de l'invention comporte un lecteur de bande classique 10, par exemple un dispositif electro-opti-20 que à huit voies pour lire des mots à huit chiffres binaires à partir d'une bande 12 de commande numérique classique portant un programme partiel. Le programme partiel sur la bande 12 comprend des lettres de l'alphabet et des nombres sous forme codée binaire c'est-à-dire qu'une perforation représente un "un" et une absence de per-25 foration représente un zéro. Les caractères sont disposés en blocs séquentiels. Le premier caractère dans le bloc est normalement un chiffre de bloc ou dé séquence et le dernier caractère dans le bloc est normalement un code de fin de bloc consistant en une perforation sur la position de la huitième voie en a ccord avec la pratique cou-30 rante en matière de commande numérique. Le lecteur de bande 10 lit la disposition des perforations et convertit les mots de huit chiffres binaires de la bande 12 en impulsions électriques qui sont transférées en parallèle, à raison de huit chiffres simultanément au moyen d'un câble omnibus de sortie 14 vers un calculateur numérique 16, 35 universel, programmable ayant une mémoire à noyaux magnétiques 18 de préférence du type non volatil. Disques, tambours et.autres dispositifs de mémoire peuvent évidemment être utilisés. Lors du fonctionnement du lecteur de bande 10, le programme partiel enregistré sur la bande 12 est transféré par le calculateur Î6.à la mémoire 18 40 dans laquelle il est emmagasiné sous forme binaire. La mémoire 18 est 71 26973 3 2108196 de préférence d'une capacité telle qu'elle puisse contenir deux programmes partiels ou plus, chacun étant indentifié séparément par un chiffre d'adresse. Le calculateur 16 fonctionne sous le contrôle d'une console 20 supportant des dispositifs d'affichage et des 5 commutateurs comprenant des boutons-poussoirs et des boutons moletés à fonctionnement par le pouce comme on le voit à la figure 2. La console 20 est connectée pour transférer des données au calculateur 16 par groupes de huit chiffres binaires au moyen d'un câble omnibus d'entrée 22. 10 . Le calculateur 16 contrôle l'écoulement des données du programme partiel de la mémoire 18 vers un câble omnibus 24 de sortie à huit conducteurs qui est relié à un interpolateur 26 ou à plusieurs interpolateurs. Les interpolateurs sont de préférence des analyseurs numériques différentiels (DDA) fournissant des impulsions de commande 15 en nombre proportionnel aux nombres de commande des axes individuels et à une cadence proportionnelle à la vitesse de déplacement commandée comme il est bien connu. Les impulsions engendrées dans les interpolateurs 26 sont transmises à des servo-mécanismes 28 a analogie de phase qui contrôlent le déplacement des dispositifs coulis-20 sants le long des différents axes d'une machine-outil 30 de manière classique. Les dispositifs coulissants sont connectés au moyen de transducteurs appropriés comprenant des résolveurs et autres dispositifs du type à analogie de phase représentés par le chemin de contre réaction 32 aux mécanismes de servo-commande 28. 25 Le dispositif de la figure 1 est de préférence disposé pour fonctionner automatiquement de telle façon que les informations de programme sont transférées séquentiellement de la mémoire 18 aux interpolateurs 26 et de là aux unités de servo-commande 28 pour exécution du programme partiel. Pour maintenir l'écoulement des données 30 du programme partiel, les interpolateurs 26 sont équipés d'une capacité d'interruption, c'est-à-dire qu'ils sont capables drengendrer un signal qui indique qu'ils ont besoin d'un bloc supplémentaire de données du programme partiel pour continuer l'exécution de ce dernier. Ce signal est transmis au calculateur 16 par l'intermédiaire d'un 35conducteur d'interruption 34. Lorsque les interpolateurs ont été reconnus par le calculateur 16 comme étant la source du signal d'interruption sur le conducteur 34, le calculateur 16 introduit une routine qui a été programmée antérieurement pour le service des interpolateurs 26. Cette routine provoque le transfert d'un nouveau bloc de carae-40 tères de la mémoire 18 vers les interpolateurs 26 par l'intermédiaire 71 26973 4 2108196 du câble omnibus de sortie 24. Des signaux d'interruption peuvent également être engendrés à partir de certains commutateurs de la console de contrôle 20. Un circuit de priorité 36 est connecté entre la source 5 de signal d'interruption des interpolateurs 26 et la console 20 pour assigner un ordre de priorité à la réponse du calculateur 16 aux signaux d'interruption. Autrement dit le signal d'interruption n'identifie pas son origine mais indique simplement le fait qu'il existe une condition d'écoulement de données dans un des dispositifs 10 extérieurs. Le circuit de priorité 36 est entièrement extérieur au calculateur 16 et détermine l'ordre dans lequel les interpolateurs 26 et les commutateurs de la console de contrôle sont reconnus et servis par le calculateur 16. Ce point est décrit plus en détail dans une autre demande de brevet de la Demanderesse déposée 15 le même jour pour "Commande numérique pour machine-outil , avec calculateur numérique programmable" (notre dossier 4581-A). Suivant le mode de réalisation de la figure 2, un panneau de contrôle 20 peut être utilisé pour introduire à la main des données de programme partiel dans la mémoire 18 de la figure 1f 20 pour annuler des parties de programme de la mémoire 18, pour modifier des données du programme partiel ou simplement pour afficher des données sélectionnées du programme partiel. Le panneau de contrôle 20 comporte un panneau transparent en "Plexiglass" derrière lequel sont disposés : un dispositif d'affichage 40 de l'état de la 25 commande à six chiffres par tubes Nixie; un dispositif d'affichage 42 du mode de programme à six chiffres par tubes Nixie; un affichage 44 à trois chiffres du nombre de séquence; un affichage 46 à deux chiffres du décalage d'axe et un affichage 48 de données à huit chiffres. On remarquera que l'appareillage décrit ici dans le but 30 de transférer des données du programme partiel fonctionne avec une longueur de huit chiffres binaires de façon à correspondre avec la bande programme à huit voies qui est actuellement un standard industriel. On comprendra qu'on peut employer un nombre plu^êlevé ou plus restreint de voies suivant le format du programme particu-35 lier qui est utilisé. Le panneau de contrôle 20 comprend en outre un bouton de charge de bande 49 et un commutateur de sélection de mode 50 ayant cinq positions ou plus comprenant une position d'entrée de données, une position de recherche de séquence et une position de correction 40 de programme. Le panneau de contrôle comprend en outre une série de 71 26973 5 2108196 commutateurs à boutons manipulés par le pouce 52, 54,56, 58, 60 et 62 associés à des roues indicatrices respectives 64, 66, 68, 70, 72 et 74. La roue 64 porte imprimées à différents endroits de sa périphérie différentes lettres qui représentent des adresses de comman-5 des pouvant être sélectionnées par un mouvement approprié du bouton moleté 52. Par exemple, l'adresse de commande peut être S'pour un nombre de bloc ou de séquence, X pour un axe de commande, Z pour un autre axe, F pour la vitesse de déplacement, T pour le décalage d'axe d'un outil, et ainsi de suite. Le bouton moleté 54 et la roue 66 10 sont utilisés pour sélectionner un affichage de position et les autres boutons moletés portent des légendes appropriées indiquant leurs fonctions. Le panneau de contrôle 20 comprend encore un commutateur 76 d'entrée et d'affichage à cinq positions et un clavier 78 à treize boutons poussoirs pour introduire certaines données 15 numériques comme on décrira ci-après. Les boutons-poussoirs du clavier 78 sont équipés pour fournir le signal d'interruption sur la ligne 34 mentionnée à propos de la figure 1 . Suivant le mode de réalisation de la figure 3 les commutateurs sont organisés en trois groupes de huit, les commutateurs 20 S^ à Sg constituant le premier groupe, les commutateurs Sg à S-j ^ constituant le second groupe et les commutateurs S^ à S24 constipant le troisième groupe. On choisit des groupes de huit pour qu'ils soient compatibles avec les huit conducteurs du câble omnibus d'entrée 22 employé par le calculateur 16. Un autre groupe de com-25 mutateurs à boutons-poussoirs est nécessaire pour servir les cinq autres boutons-poussoirs sur le clavier 78. Chaque groupe de huit commutateurs apparait pour le calculateur 16 comme un dispositif d'entrée unique capable d'introduire des mots de huit chiffres binaires, le chiffre "1" étant dans une position différente pour cha-30 que commutateur. Les commutateurs S-j à S-j ^ ne sont pas équipés de la capacité d'interruption mais ils sont explorés par le calculateur 16 en tant que tâche de basse priorité. Les commutateurs S^y à S24 sont munis de la fonction d'interruption comme on le décrira ci-après. 35 Les commutateurs S^ , S^ et S.| ^ sont reliés au câble omni bus 22 d'entrée du calculateur par l'intermédiaire d'un circuit récepteur de ligne 80 qui est simplement un filtre RC et un circuit de conversion d'amplitude pour permettre l'utilisation de tensions é-levées qux contacts des commutateurs et éliminer les effets possibles 40 de rebondissement des contacts et autres bruits dans le signal d'en 71 26973 6 2108196 trée. Les commutateurs S2 ' S10 et S.| g sont servis par un second récepteur de ligne 82 et les récepteurs Sg, ^ et S24 sont servis par un récepteur de ligne 84. On comprendra que les combinaisons de commutateurs qui ont été omises, par exemple Sg, S^ et S-j g sont 5 aussi servies par des récepteurs de ligne individuels qui n'ont pas été représentés. Les signaux en provenance des récepteurs de ligne 80, 82 et 84 sont transmis aux conducteurs individuels correspondants du câble omnibus d'entrée 22 par 1'intermédiaure de portes ET 86,88 et 90 respectivement, chacune de ces portes ayant une en-10 trée reliée au récepteur de ligne associé et une autre entrée qui est reliée à la sortie d'une porte ET92. La porte ET92 a un conducteur d'entrée 94 relié pour recevoir un signal d'horloge du calculateur 16 et un second conducteur d'entrée 96 prévu pour recevoir un signal d'un décodeur d'adresses 98 connecté à un registre d'adresses 15 100 relié lui-même au calculateur 16. Lorsque les deux entrées de la porte 92 sont à un potentiel élevé, les portes ET86, 88 et 90 sont qualifiées pour transférer à partir des récepteurs de lignes 80, 82 et 84 un mot de huit caractères binaires vers le calculateur 16. Pour chaque récepteur de ligne connecté à un commutateur fermé, 20 un "un" est transféré au conducteur particulier du câble omnibus 22 et pour chaque récepteur de ligne connecté à un commutateur ouvert, un zéro est transféré au conducteur correspondant» Pour compléter les moyens grâce auxquels les groupes de commutation sont sélectionnés, les commutateurs S^ à Sg du premier 25 groupe sont reliés à un amplificateur d'entrainement de commutation 102 qui est excité par le basculement d'un circuit trigger bistable ayant la forme d'une bascule 104. D'une manière semblable les commutateurs Sg à S^ dans le second groupe sont reliés en commun à un amplificateur d'entrainement de commutation 106 qui est excié par 30 une bascule 108. Finalement, les commutateurs S^ à S24 dans le troisième groupe sont reliés à un amplificateur d'entrainement de commutation 110 dont la condition est contrôlée par une bascule 112. Les bascules 104, 108 et 112 fonctionnent en séquence de façon à explorer en séquence les groupes de commutateurs, c'est-à-dire, de 35 façon à transférer séquentiellement les données numériques des groupes de commutateurs vers le calculateur 16 par l'intermédiaire du câble omnibus d'entrée 22. Pour parvenir à ce résultatj une paire de signaux d'horloge sont transmis à une porte à coïncidence 114 dont la sortie est reliée à une entrée d'une porte' ET116. L'autre 40 entrée de la porte ET116 est connectée au premier conducteur du 71 26973 7 2108196 câble omnibus 24 de sortie du calculateur 16. Lorsque les deux entrées de la porte 116 sont à un potentiel élevé, la bascule 104 est déclenchée et produit un signal de sortie pour l'amplificateur d'entrainement 102. L'inverse du signal appliqué à la porte 116 5 en provenance du câble omnibus 24, est appliqué à une porte de restauration 118 pour restaurer la bascule 104 à l'état de sortie zéro. D'une manière analogue, les portes ET120 et 124 sont reliées de façon à amener des bascules 108 et 112 à la position de sortie "un", et des portes ET122 et 126 sont employées dans un but de restaura-10 tion de ces bascules. Par conséquent lorsque le calculateur 16 émet le mot 10000000, la bascule 104 est déclenchée ; la bascule 108 est déclenchée par le mot 01000000 et la bascule 112 est déclenchée par le mot 00100000. Suivant la représentation de la figure 3, les commuta-15 teurs S17 à S24 diffèrent des commutateurs des deux premiers groupes en ce que deux jeux de contacts sont utilisés pour chaque commutateur. Le jeu de contacts de gauche est utilisé en tant que dispositif d'entrée de données réel comme on l'a décrit prédédemment. L'autre jeu de contacts représenté à la droite de l'ensemble 78 20 a un contact fixe relié en commun à la masse et l'autre contact fixe relié en commun à l'entrée de qualification d'une bascule 128. L'inverse du signal appliqué à l'entrée de qualification est appliqué à l'entrée de restauration de la bascule 128. Les sorties "un*1 et "zéro" de la bascule 128 sont reliées directement à l'entrée de 25 qualification et à l'entrée de restauration d'une seconde bascule 130. De plus, la sortie "un" de la bascule 128 et la sortie "zéro" de la bascule 130 sont reliées respectivement aux deux entrées d'une porte ET132 dont la sortie est connectée à l'entrée de qualification d'une troisième bascule 134. La sortie "un" de la bascule 134 est 30 reliée par une porte 0U136 qui fait partie du circuit de priorité 36 de la figure 1 au conducteur d'interruption 34 qui retourne au calculateur 16. Etant donné que les deux bascules 128 et 130 sont du type fonctionnant à l'aide d'impulsions d'horloge, les deux entrées de la porte 132 sont a un niveau élevé pendant l'intervalle 35 s'écoulant entre deux cycles successifs qui suivent la réception d'un signal sur le conducteur 138 en provenance de l'un quelconque des contacts de droite des commutateurs à $24. Pendant cet intervalle de temps, la bascule 134 est transférée à la condition "un" pour produire un signal d'interruption sur le conducteur 34. 40 Tandis que la bascule 134 est dans la condition "un", un signal 71 26973 8 2108196 est appliqué à la porte 142 par l'intermédiaire d'un conducteur 140 en même temps qu'un signal d'horloge en provenance du calculateur 16 sur un conducteur 144 pour exciter une multiplicité de portes OU146 et transférer l'adresse des commutateurs à boutons-poussoirs 78 vers 5 le calculateur 16. L'excitation de la porte 142 qualifie également la porte 148 pour restaurer la bascule 134. Par conséquent, l'enfoncement de l'un quelconque des commutateurs à boutons-poussoirs Si ? à S24 non seulement transfère les données vers le calculateur 16 par l'intermédiaire des récepteurs de ligne 80, 82 et 84 mais 10 engendre aussi un signal d'interruption par l'intermédiaire de la bascule 134 pour aviser le calculateur d'une condition d'écoulement de données. En outre le fonctionnement de labascule 134 en même temps que le signal de réception sur le conducteur 144 permet à l'adresse du groupe de commutateurs à boutons-poussoirs d'être 15 transférée au calculateur 116 par l'intermédiaire des portes 146 pour identifier la source des données transférées manuellement au calculateur 16 par un opérateur. La roue 52 à fonctionnement par le pouce servant de commande d'adresse de la figure 2 correspond en réalité à une multipli-20 cité de commutateurs individuels S-j à Sg, chaque commutateur correspond à une position en rotation différente du bouton moleté qui correspond à uné adresse de commande de lettre différente. Les lettres d'adresse de commande typiques sont : N pour le nombre de séquences; F pour la vitesse de déplacement; G pour une fonction préparatoire; 25 I pour la distance au centre de l'arc parallèle à X; S pour la vitesse de rotation de broche, T pour la fonction d'outil; X pour la dimension primaire du mouvement direct suivant l'axe des X et Z pour la dimension primaire du mouvement direct suivant l'axe des Z. A la figure 4 est représentée la disposition du program-30 me de commande de base de l'ensemble de la figure 1 comme comprenant une section de programmation 401 dont la fonction e st de qualifier le conducteur d'interruption 34 par l'intermédiaire du circuit de priorité 36 de la figure 1 et d'introduire la sous-routine de priorité la plus élevée. Le programme général de contrôle comprend 35 quatre tâches de haute priorité indiquées par les blocs 402, 404, 406 et 408 et quatre tâches de moindre priorité indiquées par les blocs 410, 412, 416 et 418. En général, la priorité attribuée aux blocs allant de la priorité la plus élevée à la priorité la plus faible va de la tâche 1 à la tâche 8 et les tâches 1 à 4 ne sont pas 40 interrompues pendant leur exécution, tandis que les tâches de 5 à 8 71 26973 9 2108196 peuvent être interrompues au milieu de leur exécution mais simplement par l'une des tâches de 1 à 4. La sous-routine pour chacune des tâches de 1 à 4 exécute par conséquent la fonction de disqualifier le conducteur d'interruption 34 par une transmission de si-5 gnaux appropriés au circuit de priorité 36. Cette étape de disqualification n'est pas comprise dans les sous-routines associées aux tâches 5 à 8. La tâche 1 est une sous-routine pour la lecture des données du programme à partir du lecteur de bande 10 et -emmagasinage 10 dans la mémoire 18. La tâche 2 déclenche la lecture des caractères à partir de la mémoire 18 et est généralement mise en fonctionnement à une cadence proportionnelle à celle d'une horloge, cette cadence étant choisie de façon qu'un bloc de caractères soit normalement prêt pour les interpolateurs 26 lorsqu'un signal d'interruption de 15 priorité est reçu des interpolateurs pour indiquer le besoin des données suivantes. De plus, la tâche 2 est chargée de reconnaître une horloge extérieure afin de transférer des signaux de commande d'axe a un compteur a accumulation dans le calculateur 16. La tâche 3 est une sous-routine pour le service des interpolateurs 26 et 20 elle comporte le transfert d'un bloc de caractères d'un emmagasinage temporaire dans un registre du calculateur 16 vers les interpolateurs 26 pour engendrer des impulsions de commande. La tâche 4 peut être confiée à une sous-routine pour lire les données en provenance des commutateurs 78 à boutons-poussoirs de la figure 3 en réponse à 25 un signal d'interruption. La dernière instruction dans chacune des sous-routines 1 à 4 est le retour au bloc de commande générale 401. De même, la première étape dans le bloc de commande générale 401 consiste à qualifier le conducteur d'interruption 34. Les tâches 5 et 6 peuvent être attribuées à l'exécution de 30 tâches d'administration de données telles que le comptage de blocs, la remise en état de blocs, etc. La tâche 5 permet de lire des caractères à partir de la mémoire 18 en vue de leur utilisation par les interpolateurs 26 suivant les exigences du programme général qui en échange programme cecid 'après les résultats de la tâche 2. La 35 tâche 7 est une sous-routine comprenant l'exploration d'un certain nombre de commutateurs de la baie de contrôle 20 comprenant notamment les commentateurs 50 et 76 et qui est introduite en réponse au fonctionnement du bouton-poussoir "entrez" sur le clavier 78. La tâche 7 comprend en général la sous-routine développée dans l'orga-40 nigramme de la figure 7 pour exécuter une fonction de correction 71 26973 2108196 comme décrit ci-après. La tâche 8 comprend une autre sous-routine pour l'exploration des autres commutateurs de baie et l'exécution de la fonction d'affichage comme décrit ci-après en laison avec la figure 6. 5 A la figure 5 une petite section d'une bande 12 portant un programme partiel est représentée et elle indique la disposition séquentielle des caractères à sa surface. Chaque caractère, c'est-à-dire chaque mot comporte jusqu'à huit perforations suivant une ligne transversale plus une perforation centrale permettant l'en-10 trainement de la bande par une roue dentée. Quatre lettres sont indiquées sur la portion de bande 12 de la figure 5 dont chacune est suivie par une paire de chiffres. Ceci représente un format de préparation de bande type et l'on s'y reportera ci-après pour expliquer le fonctionnement des sous-routines des figures 6 et 7. 15 On comprendra que les commutateurs de la console 20 il lustrés aux figures 2 et 3 sont les entrées du calculateur grâce auxquelles l'opérateur identifie les données du programme partiel qu'il y a lieu d'afficher et de corriger. Les adresses sont sélectionnées à l'aide du bouton moleté 52 commandé par le pouce et 20 les chiffres sont indiqués à partir du clavier 78. Par conséquent aucun chiffre n'a de signification sans une adresse. On choisit un chiffre dans un bloc en vue de son affichage à l'aide de la sous-routine de la figure 6 en plaçant d'abord les • commutateurs 50 et 76 dans les positions "correction du programme" 25 et "adresse de commande" puis en plaçant le commutateur 52 dans la position de la lettre appropriée. Pour introduire la routine de correction de la figure 7, on doit d'abord enfoncer les boutons-pous-soirs "entrez" ou "libérez" du clavier 78. Le bouton "libérez" indique que la donnée correspondante doit être effacée* Autrement, la 30 donnée numérique introduite déplace la donnée précédemment inscrite dans la position considérée. Lorsque la lettre N adresse a été choisie et qu'un nombre a été introduit, ceci est considéré comme étant le bloc auquel l'opérateur s'intéresse. On comprendra qu'il faut parfois introduire des données entièrement nouvelles au milieu 35 des données existantes. Pour cette raison les nombres des blocs, codes N, sont rarement attribués dans l'ordre numérique sans laisser des intervalles pour de nouveauxblocs qui pourraient être insérés. La figure 6 représente l'organigramme de la sous-routine de correction qui est exécutée comme"tâche 8 et permettant à un 40 programmeur de préparer les instructions machine correspondantes. 71 26973 2108196 La sous-routine de la figure 6 est introduite automatiquement lorsqu'il n'y a pas d'autre tâche de priorité supérieure à exécuter. Par conséquent le calculateur 16 peut s'arrêter sur cette sous-routine pour quelque temps. L'exploration des commutateurs de 5 baie à partir de la tâche 8 doit déterminer que le commutateur 50 est dans la position de correction de programme» Ceci est indiqué par le bloc du programme 601 . Supposant cette condition satisfaite, la sous-routine passe à l'étape 602, étape de décision pour déterminer si la sous-routine d'exploration de correction a été intro-10 duite depuis que l'opérateur a sélectionné la position de correction de programme du commutateur 50 lors de l'exploration automa*-tique des commutateurs en accord avec l'appareil de la figure 3. Si l'introduction de la sous-routine d'exploration de correction est plus récente que la sélection de la position de correction de 15 programme, la sous routine passe au bloc 603 qui consiste à restaurer le chiffre de bloc e^igé à un. Si Vintroduction de la sous-d'exploration de correction n'est pas recente, la sous routine routine/passe a l'étape 604 qui consiste à mettre a jour le chiffre de programme partiel déterminé par le positionnement des commutateurs 200 sur la baie de contrôle 20. La mise à jour du programme 20 partiel par le bloc 604 est représentée en détail à la figure 6b et sera décrite ultérieurement. On passe de l'étape 604 à l'étape 605 qui comporte la détermination de savoir si le commutateur 52 de commande d'adresse est dans une position de commande d'adresse ou a été laissé dans une position vierge. Dans ce dernier cas, le pro-25 gramme de la figure 6 retourne au programme général 401 de la figure 4 pour déterminer si l'on doit passer à l'une des tâches 5 à 7. Ce test de sortie rapide est un élément important de la routine de la figure 6. Si le commutateur 52 de commande d'adresse est en posi-30 tion de commande, on passe à l'étape 606 qp i comporte la conversion de l'adresse de commande à l'équivalent dans le code de bande. Il est bien connu qu'un code N sur la bande 12 du programme partiel est représenté par le mot 01000101 en binaire codé décimal. Par conséquent la donnée du commutateur 52 est convertie dans cette for-35 me. Cette adresse de commande convertie est placée dans une position d'emmagasinage locale pour pouvoir s'y référer ultérieurement. On passe ensuite a l'étape 607 qui consiste en une recherche séquentielle de caractères du programme partiel commençant avec le premier caractère du programme partiel sélectionné emmagasiné dans la 40 mémoire 18 et en p rogressant séquentiellement parmi les caractères 71 26973 12 2108196 emmagasinés d'une manière qui sera décrite ultérieurement. Puisqu'il a été indiqué en liaison avec la figure 5 que chaque caractère est soit un chiffre, soit une lettre, le bloc 607 oomporte aussi la détermination et l'identification du c aractère en tant que lettre ou que 5 chiffre. Les lettres provoquent le passage à l'étape 608 qui est un bloc de décision pour déterminer si le bloc identifié par l'opérateur en introduisant la sous-routine de la figure 6 a été trouvé. Si oui on passe à l'étape 609 qai sera décrite en détail en liaison avec la figure 6c_. Si le bloc n'a pas été trouvé, on passe au bloc 10610 qui sera décrit plus en détail en liaison avec la figure 6d. Des blocs 609 et 610 on passe à l'étape 611 qui détermine si la sous-routine présente doit être poursuivie par l'exploration de caractères supplémentaires. Si la réponse est affirmative on passe à l'étape 612 qui comporte une autre décision à savoir si le dernier ca- 15 \ ractère emmagasiné dans le programme partiel a été lu. Sinon on retourne à l'étape 607 pour explorer et identifier le caractère suivant du programme partiel. Si l'étape 611 indique que la recherche ne doit pas être continuée, la sous-routine repasse au programme général 401 de la figure 4. 20 Si l'étape 607 a identifié un nombre, la sous-routine passe à l'étape 613 pour déterminer si le nombre doit être conservé. Si oui il est emmagasiné à l'étape 614 et la sous routine repasse à l'étape 612. Si le nombre ne doit pas être conservé suivant la décision de l'étape 613, indiquant cpe l'on ne recherche pas un 25 nombre, la sous-routine repasse au bloc 612. Si la réponse à l'interrogation du bloc 612 est positive c'est-à-dire que l'on est en présence du dernier caractère du programme partiel,on passe à l'étape 615 qji sera décrite plus en détail en liaison avec la figure 6e„ Puis on passe à l'étape 616 qji 30 , ™~ sera décrite plus en détail en liaison avec la figure 6f_. Comme on l'a déjà indiqué, la routine de la figure 6 est une partie de la tâche 8 qui est introduite automatiquement quand aucune autre tâche ayant une priorité supérieure n'a été sélectionnée» On peut voir que cette routine ne progresse que jusqu'à l'étape 605 35 si aucune adresse de commande n'a été introduite par l'intermédiaire du commutateur 52 commandé par le pouce. Si par contre une adresse a été introduite par ce dernier moyen, la routine est exécutée en totalité pour permettre l'affichage du nombre au moyen du dispositif 48 de la figure 2. 40 La figure 6b représente le détail du bloc 604 de la figure 6. 71 26973 2108196 L'objet de cette sous-routine est de mettre à jour le chiffre du programme partiel en accord avec la position des commutateurs de position 200 de la figure 2 afin de déplacer les programmes partiels vers les positions choisies dans la mémoire 18. Si le chiffre 5 du programme partiel n'a pas changé, rien n'est fait. Si le second de deux programmes partiels est choisi par les positions des commutateurs 200 là où précédemment un programme partiel numéro un avait été choisi, le nombre deux du programme partiel est déplacé vers la partie de chiffre inférieur de l'emmagasinage. Inversement, 10 si c'est le premier programme partiel qui est choisi là où précédemment le second programme partiel avait été choisi, le second programme partiel est déplacé vers les positions d'emmagasinage de chiffre supérieur. En se reportant à la figure 6b, l'étape logique 618 dé-15 termine le nombre du programme partiel, premier ou second. Si c'est le second qui est choisi, l'étape 619 détermine si c'est le même que celui précédemment sélectionné ou si c'en est un autre. Si c'est le même on fait un saut en retour. Si c'est un autre programme, on passe à l'étape 621 qui consiste à déplacer le programme n°2 sui-20 vant la méthode précédemment décrite. On passe ensuite à l'étape 623 qui consiste à mettre à jour la position de mémoire qui contrôle l'excitation de l'affichage 202 du nombre de programme partiel sur la baie 20 de la figure 2. Si c'est le programme partiel 1 qj i est choisi, la sous-routine de la figure 6b passe au bloc 620 25 puis au bloc 622 qui sont semblables respectivement aux blocs 619 et 621„ A partir du bloc 623 on passe à l'étape 624 qui consiste à remettre à jour l'index du programme partiel et le chiffre de bloc. La figure Ô£ représente le détail du bloc 609 de la figure 6. L'objet de cette sous-routine est de trouver les chiffres 30 de blocs ou codes N et de comparer des chiffres aux nombres de blocs requis en fonction de la séquence des chiffres introduits dans la mémoire 18 par l'intermédiaire du clavier 78 après le positionnement du commutateur 52 de commande d'addresse. Une variable locale est employée pour retenir la lettre telle qu'elle est lue lors de 35 l'étape 607 de la figure 6. Si la lettre est un N, la position, de ce caractère est préservée, les étapes correspondantes étant représentées par les blocs 625, 626, 627 de la figure 6_ç0 Lorsque le dernier caractère est un N, le nombre préservé est comparé au nombre du bloc désiré. Si le bloc recherché est manquant, l'af-40 fichage de la baie est mis à jour et le traitement est terminé. 71 26973 14 2108196 Si le bloc recherché n'a pas encore été atteint, la sous-routine repasse par les étapes 611, 612 et 607 de la figure 6 pour traiter les caractères restants dans le bloc. On comprendra toutefois qu'il n'est pas nécessaire que la recherche de bloc se fasse au moyen 5 d'un code N. D'auiœs schémas pourraient aussi convenir comme celui consistant par exemple à rechercher le Nième bloc. Suivant le bloc de décision logique 628, la sous-routine peut passer soit aux blocs 615 et 616 dont la description sera fournie en relation avec la figure 6h, et au bloc 633, soit au bloc 629 10 dont la description sera donnée en relation avec la figure 6ç[, et aux blocs 61 6 et 630. Le bloc 630 correspond à une décision 1 ogique pour déterminer si la recherche doit être poursuivie pour un code N. Si oui on passe au bloc 6h, puis de là au bloc 633 dont la description sera fournie en relation avec la figure 6_i. De la figure 6i, 15 la sous-routine retourne au bloc 611 de la figure 6. Si la décision du bloc 633est négative, la sous-routine passe à l'étape 631 qui établit les conditions pour une exploration ultérieure du bloc et de là on repasse au bloc 611 de la figure 6. La figure 6d illustre l'organigramme du bloc 610 de la 20 figure 6. L'objet de cette sous-routine est de trouver l'adresse cherchée dans un bloc et d'afficher le nombre qui suit cette adresse comme représenté à la figure 5. La méthode de fonctionnement est de comparer l'adresse recherchée avec le caractère courant. Lorsque le caractère est trouvé, une condition est remplie pour sauve-25 garder le nombre qui suit. Le nombre est alors affiché et d'autres affichages de la baie 20 sont mis à jour pour refléter l'état des données. Si un signal de fin de bloc est trouvé avant l'adresse recherchée, les affichages de la baie sont mis à jour et l'opération d'exploration de correction est terminée. 30 En se reportant à la figure 6d, on passe de l'étape 610 à l'étape 634 qui détermine si un caractère moins est trouvé et dans l'affirmation on sort de la sous-routine. Dans la négative, on passe de l'étape 634 à l'étape 635 qui est une étape de comparaison. Si la réponse à l'étape 635 est positive on passe à l'étape 636 con-35 sistant à préserver le nombre. A partir de l'étape 636 la sous-routine est terminée. D'un autre côté, si la réponse à l'étape 635 est négative, on passe à l'étape 637 qui détermine si la dernière lettre était correcte et si oui, le processus passe aux étapes 633 puis 632 qui seront décrites'plus précisément en liaison respectivement avec 40les figures 6i et 6M. Si la réponse à l'étape 637 est négative, le 71 26973 15 2108196 processus passe à l'étape 638 qui détermine si on a atteint une fin de bloc. Sinon on repasse à l'étape 636 et de là a la sortie de la sous-routine. Si un caractère de fin de bloc est rencontré on passe de l'étape 638 à l'étape 639 représentée en détail à la figure 5 6j_. A partir de l'étape 639 le processus se t ermine par le bloc 632. La figure 6e_ représente le détail de la routine correspondant au bloc 615 de la figure 6. Son but est de mettre a jour les dispositifs d'affichage sur la baie 20 de la figure 2 et d'in-10 diquer que le bloc recherché est manquant. La méthode de fonctionnement consiste à mettre à jour une variable de façon que lorsqu' elle est connectée à la baie, l'ampoule appropriée s'éclaire. La routine comporte une seule étape 640 de masquage qui coupe le chiffre binaire approprié et engage le chiffre binaire approprié de 15 la variable pour exciter les tubes Nixie de l'affichage 48 de la baie 20 de la figure 2. La figure 6f donne le détail de l'étape 616 de la figure 6 et comprend une seule étape 641 dont l'objet est de ne ttre à jour l'affichage du nombre de séquence de la partie de tubes Nixie 44 20 à trois chiffres de la figure 2. Ceci est réalisé en chargeant la variable dans le registre de sortie du calculateur 16 et exécutant la commande appropriée. La figure 6c[ donne le détail de l'étape 629 de la figure 6ç_ et comporte une seule étape 642 dont le but est de mettre à hour 25 l'éclairage de la baie 20 pour indiquer que le bloc recherché a été trouvé. L'affichage 42 de la baie est commandé en mettant à jour une variable locale de telle façon que lorsque cette variable est branchée sur la baie les ampoules appropriées s'éclairent. Le technicien comprendra très bien comment traduire ces 30 routines en instructions. La figure 6h_ donne le détail de l'étape^632 des figures Ô£ et 6d dont le but est de sortir les données pour l'affichage des données 48 de la figure 2. On y parvient en introduisant le si gne du nombre pendant l'étape 643 et en sortant le nombre pour les tubes 35 d'affichage appropriés de données 48 pendant l'étape 644. L'étape 645 est une étape de test pour déterminer si l'affichage est complet et dans l'affirmative la routine est terminée. La figure 6i donne le détail de l'étape 633 des figures 6ç_ et 6d_ et comporte une étape supplémentaire 646. L'objet de cet-40te sous-routine est la mise a jour de l'affichage de la baie 20 pour 71 26973 16 2108196 indiquer que l'adressé recherché a été trouvée. Ceci est obtenu en mettant à jour une variable si bien que lorsque cette dernière est présentée en sortie, l'ampoule appropriée et l'affichage de données 48 sont excités® 5 La figure 6j_ donne le cétail de l'étape 639 de la figu re 6çi et elle est représentée comme comportant 1' étape supplémentaire 647 permettant de nettre à jour 1' affichage de la baie de contrôle pour indiquer que l'adresse recherchée est manqante. Ceci est obtenu en mettant à jour une variable qui provoque l'excita-10 tion de l'ampouie appropriée quand elle est présentée en sortie. La figure 7 représente l'organigramme de la routine générale prévue pour introduire de nouvelles données dans le programme partiel, effacer d'anciennes données du programme partiel ou changer des données du programme partiel tel qu'il a été emmagasi-15 né dans la mémoire 18. La sous-routine de la figure 7 et les ous-routines associées qui seront décrites ensuite font partie de la tâche 7 référencée 416 à la figure 4 et cette sous-routine n'est introduite que lorsque le commutateur de mode 50 de la figure 2 e st placé en position de correction de programme, lorsque le commuta-20 teur 76 d'entrée et d'affichage est placé dans la position de commande d'adresse et lorsque le bouton-poussoir soit d'entrée soit de libération sur le clavier 78 est enfoncé pour engendrer un signal d'interruption comme décrit précédemment en liaison avec la figure 3. L'organisation générale de la routine de la figure 7 est sem-25 blable à celle de la routine de la figure 6 et comporte ai ssi une recherche séquentielle de données dans ]e programme partiel emmagasiné. La différence majeure est que seule la routine de la figure 7 peut être utilisée en vue de corrections réelles et que la sous-routine de la figure 6-est introduite automatiquement comme 30 la tâche de priorité la plus faible qui est assignée au calculateur 16 tandis que la sous-routine de la figure 7 est introduite seulement sur une commande de l'opérateur» L'étape 701 détermine si les commutateurs de voies sont en conditions appropriée pour introduire la routine, c'est-à-dire 35 que cette dernière n'est appelée que lorsque les commutateurs 50 et 76 sont dans la situation pr écédemment décrite et que le bouton-poussoir d'entrée est enfoncé. Si ces conditions sont satisfaites, le programme est appelé et la routine passe à l'étape 702 pour déterminer si le commutateur optionnel 204 de la baie de contrôle 20 40 est déverrouillé et si le commutateur de commande d'adresse 52 est 71 26973 17- 2108196 disposé dans une quelconque position significative. Si aucune de ces conditions n'est remplie, la routine exécute une sortie immédiate. Ceci protège le programme partiel de toute altération non autorisée ou accidentelle. On passe ensuite à l'étape 703 pendant 5 laquelle on déteimine l'adresse de la commande affichée par la roue 64 du commutateur 52 et l'on convertit cette adresse de commande dans le code binaire codé décimal de la bande. Il n'est pas indispensable d'utiliser ce dernier code pour l'emmagasinage dans le calculateur bien que ce s oit en général une mesure judicieuse puisque 10 ce code est utilisé sur la bande 12. Il peut être aussi judicieux de convertir en binaire pur et d'utiliser une simple sous-routine de traductibn pour convertir les données du programme partiel prélevé sur la bande lors de la fonction d'emmagasinage. Puis on passe a l'étape 704 qji détermine si un code N a été choisi sans en-15 visager d'effacer ce bloc, condition qui est indiquée en enfonçant le bouton-poussoir d'effacement sur le clavier 78. S'il s'agit d'un code N sans effacement, le chiffre de bloc est mis à jour dans le bloc 705 et la routine trouve une sortie. On atteint alors le niveau de priorité le plus bas et on ontroduit la routine de la-20 figure 6 simplement pour trouver et afficher le bloc sélectionné. Si la réponse de l'étape de décision 704 est négative, le programme passe à l'étape 706 qui comprend une procédure de préparation de recherche séquentielle du programme partiel dans la mémoire 18. On passe ensuite a l'étape 707 qai est concernée avec la recherche 25 réelle et l'identification de caractère en séqence. On passe ensuite à l'étape 708 qui demande s^une recherche de bloc est en cours. Si oui, on passe a l'étape 709 qui sera décrite plus complètement a l'aide de la figure 7a_. Sinon, on passe à l'étape 710 qui sera décrite plus complètement à l'aide de 3® la figure 7b_. Des étapes 709 et 710 on passe a l'étape 711 qui est un bloc de décision pour déterminer si la recherche doit être continuée. Si oui, on passe à l'étape 712 qui détermine si le dernier caractère lu est le dernier caractère du programme partiel. Si non, on repasse au bloc 707 si bien que l'on peut décrire une boucle 35 d'une manière continue entre les étapes 707, 708, 709, 710, 711 et 712. Si la réponse au bloc de décision 711 est négative, le programme passe à l'étape 713 qui comprend la fonction de mettre la position de la donnée d'entrée a zéro et de sortir de la routine de 712 la figure 7. Si la réponse au bloc de décision/est positive, 71 26973 2108196 c'est-à-dire si le dernier caractère lu est le dernier caractère du programme partiel on passe à l'étape 714 qui détermine si une fonction d'effacement a été demandée. Si oui on passe à l'étape 713 et de là à une sortie. Si une fonction d'éffacement n'a pas été 5 requise, on passe de l'étape 714 à l'étape 715 qui sera décrite en liaison avec la figure 7ç_. Si le caractère qui est lu et identifié à l'étape 707 est un chiffre au lieu d'une lettre, la routine passe de l'étape 707 à l'étape 716 qui demande si ce chiffre doit être sauvegardé. lOSi oui, on passe à l'étape 717 qui est une fonction d'emmagasinage de caractère* De l'étape 717, la routine passe à l'étape 712 en vue d'un fontionnement continue comme précédemment décrit. Il y a par conséquent une possibilité de fonctionnement en boucle par les étapes 707, 716, 717, 712 et de nouveau 707. Si la décision à l'étape 716 1 5 est négative, la routine passe directement à l'étape 712. La figure 7a_ représente le détail de l'étape 709 de la figure 7 qui consiste à trouver des caractères N et à comparer les •nombres N suivant immédiatement les caractères N avec le chiffre de bloc désiré qui est introduit par l'opération en réglant le bouton 20 de commande d'adresse 52 à la position N puis en introduisant le chiffre N désiré à l'aide des boutons-poussoirs numériques du clavier 78. A la figure 7a_ on passecfe l'étape 709 à l'étape 718 qui est une décision logique pour savoir si la dernière lettre recher-25 chée et identifiée était un N outoute autre lettre. Si ce n'est pas un N, la lettre courante est examinée pour déterminer si c'est un N à l'étape 719. Si c'est un N on passe à l'étape 720 qui consiste à préserver la position de la lettre N et à sortir de la routine. Si ce n'est pas un N, on sort immédiatement de la routine. Si la 30décision au niveau de l'étape 718 est positive ou affirmative, la routine passe à l'étape 721 qui détermine quel bloc est en cours d'exploration et qui consiste à comparer ce bloc au nombre dujcîesÙré. Si la décision indique que le bloc recherché n'a pas été trouvé, la routine passe à l'étape 719. Si l'on détermine que le bloc recher-35ché est manquant, la routine passe à l'étape 722 et si le bloc est trouvé, la routine passe à l'étape 723. De l'étape 722 la routine pB6se à 1' étape 724 qui s era décrite en liaison avec la figure 7ç_ si le bloc 722 détermine qu'une fonction d'effacement n'gfcas été requise. Si une fonction d'effacement a été requise, l'étape 722 pro-40 voque la sortie de la routine. Si la détermination logique de l'éta 71 26973 19 2108196 pe 721 indique que le bloc a été trouvé, on passe à l'étape 723 qui est une autre détermination logique permettant de savoir si un nombre de bloc ou un code N est recherché. Si la réponse est négative on passe à l'étape 725 qui consiste à introduire la dondition pour 5 explorer les caractères suivants du bloc. Si un nombre de bloc ou un code N est recherché, la routine passe à l'étape 726 qui introduit une condition pour rechercher un code de fin de bloc. On sort de la routine après les étapes 725 et 726. La figure 7b_ représente le détail de l'étape 710 de la 10 figure 7. Le but de cette sous-routine est de détecter l'adresse correcte à l'intérieur d'un bloc et de préserver le nombre approprié dans une position d'emmagasinage.choisie de manière appropriée. A la figure 7]d on passe de l'étape 710 à l'étape 727 correspondant à une décision logique pour savoir si la lettre correcte a été iden-15 tifiée. Si oui on passe à l'étape 728 qui est une détermination logique pour savoir si on a détecté un caractère de fin de bloc. Si oui on passe à l'étape 729 qui est une sous-routine de compression de données et qui sera décrite plus complètement à l'aide de la figure 7d. Si ce n'est pas- une fin de bloc on sort de la rou-20 tine. Si la réponse à l'étape de décision 727 est négative, la routine passe à l'étape 730 qui détermine si la dernière lettre était correcte. Si la réponse est affirmative, la routine passe à l'étape 731 qui détermine si un effacement a été demandé. Si non la routine passe à l'étape 715 décrite en liaison avec la figure 25 7c . Si un effacement a été réclamé on passe à l'étape 729. Si la décision à l'étape 730 est négative, la sous-routine passe à l'étape 732 qui correspond à une décision logique identique à celle de l'étape 728. Une réponse affirmative fait passer la routine à l'étape 731 et une réponse négative provoque une sortie de la rou-30 tine. La figure 7ç_ donne le détail des étapes 715 dans les figures 7 et 7b ainsi que de l'étape 724 dans la figure 7a_. Le but de cette sous-routine est de calculer les modifications exigées dans la longueur du programme partiel qui sort nécessaires pour 35 permettre la fonction de correction demandée par l'opératuer, pour mettre à jour le programme partiel et déterminer s'il y a assez de place d'emmagasinage disponible dans la mémoire 18 pour recevoir tout nouveau caractère ou bloc de caractères que l'on veut ajouter. De l'étape 715 on passe à l'étape 733 qui détermine le 40 nombre de caractères qu'il y a lieu d'introduire, ces caractères 71 26973 20 2108196 ayant été préalablement identifiés et comptés par une opération survenant lors de l'enfoncement des différents boutons-poussoirs sur la baie de contrôle 20. On passe à l'étape 734 qui détermine s'il y a assez de place dans la mémoire d'emmagasinage. Si non 5 on sort immédiatement de la routine» S'il y a assez de place, on passe à l'étape 735 qui détermine si le programme partiel doit être dilaté ou comprimé pour recevoir des données supplémentaires ou au contraire pour combler les vides laissés par l'effacement de données. Si une expansion est nécessaire, on passe à l'étape 10 736 qui sera décrite en détail à l'aide de la figure 7e_. Si c'est une compression qui est requise, la routine passe à l'étape 729 qui sera décrite plus en détail à l'aide de la figure 7d_. S'il n'y a pas de changement, c'est-à-dire si les caractères doivent être simplement modifiés mais si leur nombre reste le même la rou-15 tine passe à l'étape 737 à laquelle elle parvient aussi à la sortie des étapes 729 et 736. A l'étape 737 on détermine si un nouveau bloc de données doit être introduit et dans l'affirmative la routine passe aux étapes 738 et 739 qui seront décrites en détail à l'aide des figures 7f et 7ç[. S'il n'y a pas de nouveau bloc à in-20 troduire la routine passe directement de l'étape 737 à l'étape 739 et de là on sort de la routine. La figure 7d_ donne le détail de l'étape 729 des figures 7b et 7c dont le but est d'effacer des caractères non désirés en comprimant le programme partiel. On passe de l'étape 729 à l'é-25 tape 740 qui consiste à désigner une position d'emmagasinage. Puis on passe à l'étape 741 durant laquelle est indiqué le nombre de caractères qui doivent être déplacés, nombre compris entre le point d'effacement et la fin du programme partiel. Pendant l'étape 742, les caractères sont déplacés en masse et pendant l'étape 743 le 30 compte des caractères est remis à jour pour indiquer l'effacement de caractères. L'étape 744 correspond à la mise à jour de l'affichage sur la baie de contrôle 20. La figure 7e_ donne le détail de l'étape 736 de la figure 7c dont le but est de dilater le programme partiel pour faire de la 35 place à des caractères supplémentaires dans la séquence d'emmagasinage. Cette sous-routine comporte : une étape 745 au cours de laquelle on compte les positions d'emmagasinage; une étape 746 au cours de laquelle on détermine le nombre de caractères qui doivent être déplacés entre le point d'insertion et la fin du programme; 40 une étape 747 correspondant au déplacement effectif des caractères 71 26973 21 2108196 et une étape 748 qui correspond à la remise à jour de l'index de compte des caractères pour fournir un nouveau nombre indiquant la longueur totale du programme partiel. La figure 7f_donne le détail de l'étape 738 de la figure 5 7_ç et consiste à insérer les caractères en code N lorsqu*un nouveau bloc d'information doit être inséré dans le programme partiel emmagasiné. De l'étape 738 on passe à l'étape 749 qui sera décrite plus en détail à l'aide de la figure 7h, puis à l'étape 750 qj i consiste à trouver le nombre à introduire. On passe ensuite à l'é-10 tape 751 qui est une sous-routine d'insertion effective et qui sera décrite plus en détail à l'aide de la figure 7i_. La figure 7donne le détail de l'étape 739 de la figure 7c et son but est de déterminer quels sont les caractères qui doivent être insérés dans le programme partiel en insérant l'adres-15 se avec un champ de nombres. De l'étape 739 on passe à l'étape 749 qui sera décrite en détail à l'aide de la figure 7h» On passe ensuite à l'étape 752 durant laquelle on détermine si un signe moins est nécessaire. Si non, on passe à l'étape 753 qui consiste à rechercher le nombre qui a été préalablement introduit à partir du 20 clavier et à le placer en mémoire. Si la réponse à l'étape 752 est positive, la routine passe à l'étape 749 puis à l'étape 753, ensuite à l'étape 751 dont le détail est fourni à la figure 7i_. De l'étape 751 on passe à l'étape 754 qui est une décision logique pour savoir si un nouveau bloc doit être introduit. On passe à 25 l'étape 749 si laiéponse est positive et l'on sort de la routine si la réponse est négative. La figure 7h donne le détail du bloc 749 des figures 7_f et 7çj_ dont le but est d'emmagasiner une lettre dans le programme partiel. Il comporte seulement l'étape 755 qui correspond au dépôt 30 de la lettre codée dans le programme partiel. Ceci s'accomplit en plaçant le caractère codé de façon appropriée dans une position de variable locale, en calculant l'adresse d'emmagasinage et en emmagasinant le caractère. La figure 7_i représente le détail du bloc 751 de la fi-35 gure 7ç[ donb le but est de trouver les caractères codés et d 'emmagasiner le caractère dans l'emmagasinage du programme partiel. La sous-routine comporte les étapes 756 et 757 qui exécutent les opérations de trouver un nombre d'index, de placer la valeur dans le registre du calculateur 16 qji est utilié pour localiser le nom-40 bre approprié, déterminer l'adresse d'emmagasinage du caractère 71 26973 22 2108196 et déplacer le caractère vers le programme partiel. La figure 8 représente la routine permettant de démarrer le lecteur de bande 10 de la figure 1 et de rendre ce dernier opérationnel pendant l'emmagasinage ou le transfert du programme 5 partiel de la bande 12 vers la mémoire 18. Cette opération n'est permise que lèrsque le commutateur d e mode 50 de la figure 2 est dans la position de correction de programme indiquée par l'étape 801 à la figure 8. Dans l'étape 802 on place à zéro un emplacement d'emmagasinage de longueur de programme partiel, on commence 10 la lecture de la bande dans les étapes 803 et 804. La figure 9 représente la sous-routine destinée à emmagasiner les caractères du programme partiel comme ils se présentent sur la bande. La routine de la figure 9 est utilisée également •pour mettre à jour le compte des caractères et pour arrêter 1© lec 15 teur de bande sur commande. A la figure 9 du bloc d'entrée 900 on passe à l'étape 901 qui est une détermination logique pour savoir s'il n'y a pas trop de caractères disponibles pour l'emmagasinage. Si le caractère suivant dépasse la capacité de mémoire du calculateur 18, la routine passe à l'étape 902 qui comporte l'arrêt 20 du lecteur de bande 10. Puis on passe à l'étape 903 qai comporte la mise à jour des ampoules de la baie 20 pour produire un affichage approprié. S'il y a de la place pour le caractère suivant, la routine passe de l'étape 901 à l'étape 904 qui comporte l'emmagasinage du caractèreo On passe ensuite à l'étape 905 qui est 25 une détermination logique pour savoir si le caractère en cours d'emnegasinage est un caractère de fin de programme partiel ou de fin de bande. Sinon la routine trouve une sortie. Si on est dans l*un des cas précédents, la routine passe de l'étape 905 à l'étape 906 qai est une décision logique pour savoir si c'est une fin de 30 programme ou une fin de bande oui a été détectée. Si c'est un caractère de fin de programme la routine passe à l'étape 907 qui arrête le lecteur de bande et l'on sort de la routine. Si c'est un caractère de fin de bande, la routine passe à l'étape 908 qui arrête le lecteur de bande et provoque un rebobinage. 35 La figure 10 représente l'organigramme de la routine permettant au calculateur d'avoir accès aux caractères de sa mémoire 18 en vue de leur utilisation par les interpolateurs 26. Cette routine est mise en service par le programme général 401 et comprend une étape 1001 qui détermine si un caractère est exigé. Dans l'af-40 firmative la routine passe à l'étape 1002 qui sera décrite en 71 26973 2108196 liaison avec la figure 1Cte. Des étapes 1001 et 1002 on passe à l'étape 1003 pour déterminer si le caractère est désiré pour un emmagasinage temporaire. Sinon la routine passe à l'étape 1005 dans laquelle une opération de recherche peut être incorporée en option 5 puis on sort de la routine. Si le caractère est exigé pour un emmagasinage temporaire, la routine passe a l'étape 1004 au cours de laquelle le caractère est traite et emmagasiné pour exécution et l'on sort de la routine. La figure 1 Oa^ donne le détail de la sous-routine 1002 10 dont le but est de trouver le caractère approprié suivant et de tester dans certaines conditions. La sous-routine passe au bloc 1006 qui détermine le chiffre du programme partiel et calcule l'adresse du caractère désiré. On passe alors à l'étape 1007 au cours de laquelle le caractère est lu dans l'emmagasinage et un nombre 15 index est ajusté pour assurer l'écoulement séquentiel approprié des caractères. On passe a l'étape 1008 pendant laquelle un test est fait pour déterminer si le caractère est acceptable. Sinon on passe à l'étape 1009 au cours de laquelle une anpoule s'éclaire sur la baie et l'opération de lecture est terminée. Après l'étape 1009 20 on sort de la routine. Si à l'étape 1008, le caractère est acceptable, on passe à l'étape 1010 au cours de laquelle le caractère est testé pour déterminer s'il s'agit d'un caractèré de fin de bloc. Sinon, on sort de la routine; autrement on passe a l'étape 1011 qi i est un test pour des fonctions de recherche en option et qui peut 25 être une partie du programme. Si c'est le cas l'étape 1011 mène à une sortie de la routine. Autrement on passe à l'étape 1012 où la lecture est terminée et l'on passe sur une sortie de la routine. En résumé, l'invention concerne le transfert de données d'un programme partiel d'un milieu d'emmagasinage qui ne peut être 30corrigé tel qu'une bande perforée à un milieu d'emmagasinage adressable tel que noyaux magnétiques, films, disques, tambours magnétiques, et la restitution ultérieure de données du programme partiel a. partir de l'emmagasinage en vue de leur exécution au moyen d'une machine-outil fonctionnant sous le contrôle d'un calculateur numé-35 rique. De Dréférence le calculateur numérique fonctionne dans un mode avec interruptions grâce a quoi les dispositifs de transfert de données comprenant les interpolateurs et les commutateurs de baies sont munis de la capacité d'interruption pour aviser le calculateur de leur besoin de recevoir des données du programme partiel. 40 Un ordre de priorité est fixé aux dispositifs respectifs qui sont 71 26973 24 2108196 capables de produire un signal d'interruption. De plus, le calculateur est programmé de façon à descendre finalement à des tâches sans priorité de façon automatique, l'une de ces dernières concernant l'exploration des commutateurs de la baie de contrôle. Ces 5 commutateurs sont utilisés pour introduire lettres et chiffres en vue de leur affichage ainsi que dans un but de corrections. Une première sous-routine qui est introduite automatiquement répond à certains commutateurs de baie n'ayant pas de capacité d'interruption et ils affichent le caractère du programme partiel indiqué que 10 ce soit une lettre ou un chiffre» Une autre sous-routine est introduite seulement en réponse à un commutateur sélectionné ayant une capacité d'interruption pour exécuter des fonctions de recherche et de correction. Il est possible à un opérateur par conséquent soit d'afficher soit de corriger un caractère d'un programme par-tiel soit en effaçant le caractère, soit en le modifiant, soit en ajoutant des caractères. Lorsque descaractères soht effacés, l'emmagasinage du programme partiel est modifié pour faire disparaître le vide laissé par l'effacement des caractères ou même d'un bloc entier de caractères. Lorsqu'un caractère ou un bloc de ca-20 ractères doit être introduit, le programme partiel est ajusté pour permettre une insertion intermédiaire des données du programme partiel. Ainsi le programme partiel est rapidement et facilement altéré pendant qu'il se trouve emmagasiné dans le calculateur et un programme partiel entièrement neuf est préparé simplement en in-25 troduisant les informations relatives aux corrections au moyen des dommutateurs de baie de contrôle. Il n'est pas nécessaire de recouper la bande ou. de préparer deux bandes et plus quand simplement des modifications mineures sont désirées. Bien entendu l'invention n'est nullement limitée au 30 mode de réalisation représenté et décrit qui ne l'a été qu'à tiire d'exemple. Il appartiendrait au technicien d'y apporter de nombreuses modifications sans pour autant sortir du cadre de la présente invention. 35 71 26973 25 2108196 REVENDICATIONS 1) Procédé d'exécution d'une opération d'usinage a commande numérique, caractérisé en.ce qu'il consiste a : emmagasiner 5 séquentiellement un programme partiel dans la mémoire d'un calculateur numérique; à sélectionner des parties du programme partiel emmagasiné dans la mémoire et/ou à les corriger en utilisant un dispositif d'entrée manuel pour désigner les emplacements, et à exécuter les parties du programme partiel sélectionné et/ou cor-10 rigé sous le contrôle du calculateur. 2) Procédé suivant la revendication 1 , caractérisé en ce que l'étape qui consiste à emmagasiner séquentiellement un programme partiel dans la mémoire d'un calculateur numérique comprend les étapes qui consistent a : lire ce programme partiel et le trans- 15 férer dans la mémoire du calculateur et en ce que l'étape qui consiste à corriger le programme partiel emmagasiné comprend les étapes qui consistent à : identifier un emplacement du programme partiel au moyen d'un commutateur à positions multiples relié comme entrée sur le calculateur pour sélectionner le chiffre du bloc 20 du programme partiel et à introduire une correction à cet emplacement par l'entremise d'un autre dispositif d'entrée. 3) Procédé suivant la revendication 2, caractérisé en ce que l'étape par laquelle on introduit une correction consiste à ..introduire des données supplémentaires dans le programme partiel. 25 4) Procédé suivant la r evendication 2, caractérisé en ce que l'étape par laquelle on introduit une correction consiste a effacer des données dans le programme partiel. 5) Procédé suivant la revendication 2, caractérisé en ce que l'étape par laquelle on introduit une correction comprend en 30 plus une étape qui consiste à modifier dans la mémoire la disposition du programme partiel de façon à préserver l'ordre des données tandis que soit on introduit des données supplémentaires soit on en efface. 6) Procédé suivant l'une des revendications 3-5, caracté-35 risé en ce qu'il comporte l'étape supplémentaire de renuméroter les blocs du programme partiel. 7) Procédé suivant la revendication 5, caractérisé en ce qu'il comporte l'étape supplémentaire de mettre à jour un compte de la longueur d'un programme partiel. 40 8) Procédé suivant la revendication 2 caractérisé en ce 71 26973 26 2108196 que l'étape de l'introduction d'une correction comprend une étape consistant à déterminer si le commutateur à positions multiples est dans une position permettant d'identifier un chiffre de bloc. 9) Procédé suivant la revendication 2, caractérisé en 5 ce que l'étape d'identification d'un emplacement du programme partiel au moyen d'un commutateur à positions multiples consiste à : utiliser le calculateur pour explorer une multiplicité de commutateurs reliés comme entrées au calculater; localiser les emplacements identifiés par les manipulations de commutateurs et affi-10 cher les données figurant dans ces emplacements, et en ce que l'étape par laquelle on introduit une correction consiste à : régler un commutateur supplémentaire pour provoquer une correction du programme partiel; explorer la multiplicité de commutateurs pour localiser la position de la correction et effectuer cette der-15 nière. 10) Procédé suivant la revendication 9, caractérisé en ce que l'on distingue entre les positions de chiffres et les positions de lettres. 11) Procédé suivant la revendication 3, dans lequej/le 20 programme partiel comprend des caractères disposés séquentiellement, caractérisé en ce que l'étape qui consite à introduire une correction comprend les étapes de : disposer les commutateurs ayant une relation d'entrée par rapport au calculateur pour identifier des caractères d'un programme partiel supplémentaire ainsi que la po-25 sition de ceg^caractères par rapport à la séquence du programme partiel original; à dilater le programme partiel d'origine dans la mémoire pour faire de la place à ces données nouvelles et introduire ces données nouvelles dans l'espace libéré. 12) Procédé suivant la revendication 4 dans lequel 3e 30 programme partiel comprend des caractères disposés séquentiellement, caractérisé en ce que l'étape qui consiste à introduire une correction comprend les étapes de : disposer les commutateurs ayant une relation d'entfée par rapport au calculateur pour identifier des caractères du programme partiel qui doivent être effacés de la mé-35 moire; procéder a l'effacement des caractères ainsi identifiés et comprimer le restant du programme partiel pour éliminer les espaces d'emmagasinage laissés vides par l'effacement. 13) Procédé suivant la revendication 3 ou 4, dans lequel le programme partiel comprend une séquence de lettres et de chiffres 40 dans une mémoire en relation de transfert de données avec le cal 71 26973 27 2108196 culateur numérique, caractérisé en ce qu'il consiste à : introduire une lettre adresse et un nombre dans le calculateur par l'intermédiaire d'un dispositif d'entrée; explorer le programme partiel dans la mémoire pour localiser la lettre adresse introduite; comparer 5 le nombre suivant chaque lettre adresse au nombre introduit jusqu'à ce que le nombre introduit soit trouvé et afficher le nombre trouvé. 14) Système de commande numérique pour la mise en oeuvre du procédé suivant l'une des revendications 1 à 13 caractérisé en 10 ce qu'il comprend : un calculateur numérique universel; une mémoire numérique adressable par l'intermédiaire du calculateur; un premier moyen d'entrée pouvant fonctionner sous le contrôle du calculateur pour introduire séquentiellement dans la mémoire un programme partiel; un second moyen d'entrée à fonctionnement manuel pour 15 sélectionner des parties du programme partiel emmagasiné dans la mémoire et/ou les corriger sous le contrôle du calculateur, et des moyens d'exécution capables de recevoir dés parties du programme partiel emmagasiné en mémoire et de fournir en échange des impulsions de commande à une machine-outil. 20 15> Système de commande numérique suivant la revendica tion 14, caractérisé en ce que le second moyen d'entrée comprend une multiplicité de commutateurs décommandé. 16) Système de commande numérique suivant la revendication 15, caractérisé en ce que au moins certains de ces commutateurs 25 sont des boutons-poussoirs permettant d'introduire des données numériques dans la mémoire. 17) Système de commande numérique suivant la revendication 15 ou 16, caractérisé en ce qu'il comporte des moyens de programmation en combinaison fonctionnelle avec le calculateur pour 30 explorer les commutateurs de commande. 18) Système de commande numérique suivant l'une des revendications 15-17 caractérisé par un dispositif d'affichage pour afficher les informations numériques introduites par les commutateurs. 19) Système de commande numérique suivant la revendica-35 tion 14, c aractérisé par un premier programme en relation fonctionnelle avec le c alculateur pour explorer automatiquement au moins une partie des commutateurs et un second programme en relation fonctionnelle avec le calculateur pour explorer d'autres commutateurs, ce second programme étant une routine qui est introduite en réponse 40 à la fermeture d'au moins un commutateur choisi. 71 26973 2S 2108196 20) Système de commande numérique suivant la revendication 14, caractérisé en ce que : le calculateur oomprend une entrée d'interruption; les moyens d'exécution ont la faculté d'engendrer un signal d'interruption sur cette entrée en réponse a une 5 condition d'écoulement de données, et un générateur de signaux supplémentaire est associé au second moyen d'entrée pour produire un signal d'interruption sur cette entrée. 21) Système de ammande numérique suivant la revendication 14, caractérisé en ce qu'il comporte une multiplicité de 10 programme partiels emmagasinés dans la mémoire et des commutateurs pour adresser séparément ces programmes partiels.