FR 2425672 A1 19791207 FR 7814134 A 19780512 L'appareil suivant l'invention est issu du principe d'un générateur de fonction programmée dont il reprend quelques-unes des pièces principales, mais en diffère par l'organisation des mémoires et le nombre de grandeurs qu'il est capable de piloter si multanément. Le nombre de pistes a été limité, dans la descrip tion qui va suivre, à trois pour la clarté des explications, mais il peut être porté à un nombre quelconque à condition de disposer d'une capacité de mémoire suffisante.Par ailleurs, et pour des besoins fréquemment rencontrés dans l'industrie, on a recherché une "double programmation compatible" dont les caractéristiques principales sont les suivantes 10) programmation souple et immédiate utilisant des mémoires vives, volatiles, (rendues non volatiles par une batterie d'accumulateur) réalisée à partir d'informations présentées par un groupement de roues codeuses ou d'un clavier à touches 20) programmation rigide et non volatile utilisant des mémoires mortes programmées une fois pour toutes ou pouvant éventuellement être reprogrammées après un effacement ; ce type de mémorisation présente l'avantage d'être stocké sans aucune précau -tion particulière, en attente d'une utilisation future, et permet d'éviter les erreurs de programmation lorsque le personnel d'exploitation n'est pas qualifié ; ce type de mémoire peut être présente sous la forme d'une cassette qu'il suffit d'introduire dans l'appareil, après quoi ce dernier est placé dans les conditions de départ ; chaque cassette peut contenir, par exemple, un programme complet d'un travail à réaliser. Dans la description de l'appareil, le type de mémoire n' intervient pas, l'organisation étant exactement identique. Cependant, dans l'exploitaticn de la mémoire vive, des moyens seront prévus pour charger le programme. Organisation de la mémoire La mémoire doit contenir toutes les valeurs des extrémités des segments des vaiables et les durées correspondant à chaque segment. Dans l'industrie, on utilise fréquemment des valeurs de capacité de 2000 points à double polarité. Ceci entraîne l'uti lisation de 13 bits (digits binaires) pour la valeur en code bi naire décimal #(code BCD) et un quatorzième pour le signe. Or, il est fréquent, en technique digitale, que les circuits logiques soient disponibles en puissance binaire de 2, soit 8 ou 16 bits Restent donc certains bits que l'on peut utiliser pour mémoriser des informations supplémentaires permettant d'effectuer, en même temps que la modification des variables, des opérations simples ou élémentaires synchrones des segments.Par exemple, sur la figure 1, on a représenté une fraction de programme pour les variables Y, Z, P. Pendant le premier segment, la grandeur Y varie de Yo (valeur d' origine) à YI, puis varie de Y1 à Y2 pendant le second segment, etc... Il en est de même pour les grandeurs Z et P. Il peut être intéressant de fermer un contact de relais Ri pendant les segments I et 3, d'en fermer un autre,R2,pendant le segment 5, etc... Les contacts de ces deux relais sont matériali- ses par les diagrammes RI et R2 de la figure 1. La commande du relais RI est due à un bit qui est program mépourchaque segment à o si le relais ne doit pas être commande et à I s'il doit l'être. La commande de R2 est éffectuée par un autre bit. L'unité de temps qui sert à exprimer la durée d'un segment peut être quelconque, mais il est préférable d'utiliser les unités du système sexagésimal auxquelles les utilisateurs sont habitués Minutes et heures). Cependant, il peut être intéressant, pour certains segments à forte pente ou à faible durée, d'améliorer la précision en utilisant des fractions (dizièmes) de ces deux valeurs, ce qui amène la possibilité des quatre unités suivantes unité 1 : dizième de minute unité 2 : minute unité 3 : dizième d'heure unité 4 : heure. Il est possible d'utiliser deux bits de la mémoire pour déterminer, pour chaque segment, l'unité choisie. Chaque combinaison de ces deux bits (elles sont au nombre de quatre) est affectée à une unité. Par exemple, combinaison 00 = dizième de minute combinaison 01 = minute combinaison 10 = dizième d'heure combinaison 11 = heure. Ule horloge dans le système dont il sera question plus tard, reçoit directement ces deux bits et émet un signal de la résolution choisie par le tableau ci-dessus. Un exemple est reproduit sur la figure 1. Adresse Les deux types de mémoire utilisés nécessitent une information d'adresse. 'adresse est un mot binaire composé d'un certain nombre de bits et pcUvant prendre 2n valeurs différentes, n étant le nombre de bits utilisés pour exprimer l'adresse A chaque adresse correspond un contenu de mémoire qui peut lui aussi prendre 2n valeurs différentes. En séparant les deux bits de fort poids du mot d'adresse, cn peut considérer que les nouvelles adresses sont simplifiées,donnant lieu seulement à 2(n-2) adresses différentes sur une page, t que les quatre combinaisons résultant des deux bits sortis correspondent à la numérotation de quatre "pages" semblables mais de contenus différents.Dans le tableau d'organisation de la mémoire de la figure 2, ces quatre pages ont été représentées juxtaposées pour la facilité de représentation, bien que la representation superposée dans l'espace soit plus parlante. La mémoire choisie pour l'exemple est à 16 bits de sortie décomposés en 12 bits BCD des poids suivants 1 pour le bit 1 : 100 pour le bit 9 2 pour le bit 2 : 200 pour le bit 10 4 pour le bit 3 : 400 pour le bit 11 8 pour le bit 4 e 800 pour le bit 12 10 pour le bit 5 : 1000 pour le bit 13 20 pour le bit 6 40 pour le bit 7 80 pour le bit 8 Les valeurs de durée, X, non signées, sont écrites à la page 1. Les valeurs caractéristiques Y, Z, P sont écrites aux pages 2, 3 et 4. Elles sgnt signées. Le bit 14 est utilisé pour le signe sur les pages 2, 3 et 4. I1 correspond à un des bits d'unité de temps sur la page 1. Le bit 15 correSpond au second bit d'unité de temps à la page 1 et aux fonctions auxiliaires dans les autres pages, ainsi que tous les bits 16. I1 existe huit bits d'adresse, soit six bits + deux bits. Les deux bits de fort poids déterminent quatre pages de codes 00 à 11. Les six bits de faible poids déterminent soixante quatre adresses différentes par page allant des codes 000000 à lllL3P, fin de ne pas surcharger la figure 2, un certain nombre seulement des adresses de chaque page ont été représentées. Adressage Deux sources d'adressage simultanées sont utilisées. La première, issue d'un compteur binaire à six bits (capacité 64) sert à adresser les six bits de chaque page Chaque adresse représente un nombre binaire compris entre 0 et 63 et correspond à un numéro de segment d'un programme, comme indiqué à la figure 1. La progression de ce compteur se faisant par incréments de 1, l'exploration de la mémoire se fait pas à pas de la gauche vers la droite.Pour une valeur d'adresse déterminée, la mémoire peut sortir une valeur par page, la valeur choisie finalement dépendant des deux bits dl identification de pages qui sont adressées au moyen d'un compteur à trois combinaisons excluant la combinaison 00, et qui correspondent respectivement aux pages 2, 3 et 4 ; le changement d'état de ce compteur se fait chaque fois que le calculateur a fini un calcul Il fait donc successivement les calculs suivants y = Y final - Y initial . t + Y initial x puis Z = Zf - Zi . t + Zi puis P = Pf - Pi . t + Pi x puis Y = Yf - Yi . t + Yi x etc. La valeur X, contenue à la même adresse que Y, Z, P mais à la page 1 à laquelle est réservé le code 00, est sortie au moment opportun demandé par le calculateur programmé en annulant les bits d'adresse des pages, sans changer les bits d'adresse dans les pages. La progression des adresses dans la mémoire lors du de-- roulement des segments est telle qu'en présence d'une valeur Y, Z ou P à l'adresse actuelle, celle-ci correspond à une valeur finale dans le segment actuel. La valeur initiale est contenue à 11 adresse immédiatement précédente. Il suffit donc, lorsqu'une valeur initiale doit être sortie vers le calculateur, de retrancher 1 à l'adresse actuelle. C'est ce qui est réalisé par le soustracteur placé entre le compteur binaire d'adresse et la mémoire, qui a pour rôle de sortir une "ADRESSE-1". Le schéma synoptique de l'ensemble est représenté figure 3, sur laquelle On doit en 1 des moyens constitués par un groupement de roues codeuses et un jeu d'interrupteurs pour les fonctions auxiliaires et qui permettent de présenter les seize bits à mémoriser à l'entrée 21 d'une première mémoire 2. Ces moyens ne sont nécessaires qu'en position "Enregistrement" d'un inverseur 19. Dans ce cas, une ligne 38 "valide" les positions d'un inverseur 18 qui, via une ligne 37 et un aiguilleur 9, sélectionne les adresses de pages sur une ligne 24. Par actions successives sur un poussoir 49 et au moyen de l'inverseur 18, on charge une colonne sur chaque page de la mémoire 2 par la ligne 21. Dans cette position "Enregis trement", une ligne 39 "valide" les moyens de chargement 1 et place la mémoire 2 en mode "écriture".La même ligne 39 permet le fonctionnement efficace d'un poussoir 48 qui, via une ligne 40, incrémente à chaque manipulation un compteur binaire 6,ce qui change l'adresse présente sur une ligne 34, affichée en 20, non affectée par un soustracteur 7, et que l'on retrouve sur une ligne 23 qui adresse, dans les pages, la mémoire 2. Le soustracteur 7 soustrait "1" à l'adresse actuelle issue du compteur 6 lorsqu'un calculateur programmé 3 interroge la mémoire 2 pour connaître une valeur initiale des variables. Cette requête est lue sur une ligne 33. Le calculateur -3 est programmé pour effectuer l'équation valeur = valeur finale - valeur initiale t + valeur initiale. x Les valeurs concernent soit Y, soit Z, soit P qui viennent de la mémoire 2 par une ligne 22. L'affectation de ces valeurs est décidée par un compteur 4 à trois combinaisons excluant la combinaison 00, réservée à la page 1 comme indiqué précédemment, qui adresse les pages 2, 3 ou 4 de la mémoire 2 par des lignes 29 et 31 et la ligne 24. Chaque fois qu'une requête de X (durée du segment) est formulée, cette requête apparaît sur une ligne 30 qui actionne un circuit 10 de remise à zéro de l'adresse des pages, ce qui a pour effet de présenter X sur la ligne 22. Une ligne 25 présente au calculateur 3 la grandeur t, temps écoulé depuis le début du segment actuel que le calculateur utilisera au moment opportun.Sur une ligne 26 se présente un signal représentatif de la fin de la dernière opération d'un calcul, ce qui a pour effet d'incrémenter le compteur 4 qui permet d'explorer les trois pages 2, 3 et 4 successivement pour Y, Z, P. Une ligne 36 supporte un signal de temps étalon issu d'un réseau 50 ou 60 Hz ou d'un oscillateur stable (à quartz, par exem plue), dont des divisions successives à rapport programmable par une ligne 35, permettent à une horloge 5 d'indiquer sur la ligne 25 quel est le temps écoulé depuis le début du segment actuel. Une ligne 41 partant d'un comparateur numérique 8 rendu actif par la ligne 30 pendant la présence sur la ligue 22 de la valeur X, ndi- que si X est égal à t. Pendant le déroulement des segments, la ligne 41 n'indique pas d'égalité, qui apparaît seulement en fin de segment, ce qui a pour effet une remise à zéro de t dans l'horloge 5 et une incrémentation automatique du compteur binaire 6 qui permet d'attaquer le segment suivant. Une seconde mémoire 11 raccordée à la ligne 22 garde en mémoire permanente des valeurs fugitives sur cette ligne 22, ce qui permet de disposer sur la ligne 35 des codes des unités servant à exprimer t ainsi que, sur une ligne 32, des états des fonctions auxiliaires pendant le segment actuel. Les résultats des opérations effectuées par le calculateur, présents sur une ligne 27, concernent aussi bien les grandeurs Y, Z et P. Ces valeurs sont triées et mémorisées séparément dans des mémoires respectives 12, 13 et 14. La mémoire 12 est re nouvelée lorsque le code présent sur une ligne 28 partant du compteur 4 indique que le calculateur traite Y, la mémoire 13 lorsque le code sur la ligne 28 est celui de Z, et la mémoire 14 lorsque le code sur la ligne 28 est celui de P. Des lignes 42, 43 et 44 contiennent d'une manière continue (par opposition à la ligne 27 qui les contient d'une manière fugitive) les valeurs, sous une forme numérique, de Y, Z et P.Ces valeurs sont converties en 15, 16 et 17 en informations analogiques au moyen de convertisseurs numériques/analogiques dont les sorties sont disponibles sur des lignes respectives 45, 46 et 47. Une fois la mémoire 2 chargée, les seules lignes nécessaires àW0#onctionnement,dans les positions contrôle et "cycle" de l'inverseur 19,sont les lignes 22, 23 et 24. En conséquence, dans la version de l'appareil qui utilise une mémoire morte, seules ces lignes sont à présenter à un support de "cassette" contenant une mémoire morte programmée ou une mémoire reprogrammable, programmées suivant le programme à réaliser, et organisées de la même fa çon que ce qui a été décrit précédemment. Une telle mémoire est écrite définitivement (sous réserve d'un effacement possible, pour la reprogrammable, dans des conditions très particulières) même si elle n'est plus alimentée, et rangée séparément dans un meuble quelconque pour une durée indéterminée. I1 suffira, pour reprodui re le programme qu'elle contient, de placer la cassette dans son support, de placer le compteur binaire 6 sur le segment choisi par action sur le poussoir 48 "validé" par l'inverseur 19, pour débuter le programme (segment visualisé par l'afficheur 20),et de lancer le cycle par l'inverseur 19. REVENDICATIONS 1 - Appareil générateur de consignes numériques converti bles en consignes analogiques programmées constituées par une succession de segments, utilisant une mémoire contenant seulement les valeurs caractéristiques des programmes à réaliser et mettant en oeuvre un calculateur associé à une horloge qui permet de connaî- tre le temps écoulé-depuis le début du segment actuel et programmé pour résoudre sans cesse l'équation qui permet d'interpoler la valeur actuelle d'une variable si lion connaît ses valeurs extrêmes, dans le segment actuel, issues de la mémoire et le temps écoulé depuis le début du segment actuel, issu de l'horloge, et caractérisé en ce que la mémoire comporte un nombre de lignes égal au nombre de bits permettant d'exprimer la plus forte valeur caractéristique possible du programme et de son signe et un nombre de colonnes égal au nombre de segments dans le programme en comportant le plus, multiplié par le nombre de consignes à piloter augmenté de un, et en ce que la mémoire est soit une mémoire vive à accès aléatoire, soit une mémoire morte préprogrammée, soit enfin une mémoire morte reprogrammable preprogrammee. 2 - Appareil suivant la revendication 1 caractérisé en ce que, dans le cas d'une mémoire morte, celle-ci est disposée dans une cassette à insertion et extraction aisée permettant, par simple remplacement de c#ssette,de changer le programme de pilotage des consignes. 3 - Appareil suivant l'une quelconque des revendications précédentes, caractérisé en ce que la mémoire utilisée comporte une ou plusieurs lignes supplémentaires permettant, pour chaque segment, de programmer une unité de temps de l'horloge, servant a exprimer le temps écoulé depuis le début du segment actuel,diffé- rente, le choix de chaque unité étant affecté à une combinaison différente du ou des bits contenus dans la ou les lignes supplé mentaires. D 4 - Appareil suivant la revendication 3, caractérisé en ce que la mémoire utilisée comporte une ou plusieurs lignes supplémentaires permettant pour chaque segment de disposer d'une ou de plusieurs informations auxiliaires en mode tout ou rien. 5 - Appareil suivant 1 e une quelconque des revendications précédentes, dans lequel la mémoire du programme se présente sous la forme d'un tiroir ou d'une carte débrochable ou tout au moins commodément amovible, et caractérisé en ce que la compatibilité d'un type de mémoire à un autre est assurée, ce qui permet, sur un appareil de base donne, e remplacer une mémoire vive supposant une programmation modifiable aisément par une mémoire morte à programme figé et vice et versa 6 - Appareil suivant la revendication 1, caractérisé en ce qu'une fraction de l'informavion-d'adresse de la mémoire choisie est générée par un compteur binaire,contenant le numéro d'ordre du segment actuel, de capacité égale au nombre de segments du programme en comportant le plus et dont l'incrémentation est assurée par une information apparaissant à la fin de chaque segment, et en ce que la fraction complémentaire, permettant de compléter l'adresse de la mémoire, est générée par un compteur ayant un nombre d'états possibles égal au nombre de consignes générées par l'appareil et ne pouvant pas prendre une combinaison réservée à l'adresse de la valeur de la durée du serment actuel commune à toutes les variables, l'incrémentation de ce compteur étant assurée par une information apparaissant à la fin de la résolution de l'équation programmée dans le calculateur précité. 7 - Appareil suivant la combinaison des revendications 1 et 6, caractérisé en ce que l'information représentative de la valeur initiale de la variable de chaque consigne traitée à un instant donné se trouvant à l'adresse du segment précédant le segment actuel, cette valeur initiale est extraite de la mémoire au moment choisi par le calculateur, en appliquant à la fraction d'adresse représentative du numéro du segment actuel, une soustraction de 1 telle que (adresse du segment précédent) = (adresse du segment actuel) - 1, à l'aide d'un circuit soustracteur qui n'a d'effet que pendant la période d'un calcul nécessitant de présenter à l'entrée du calculateur une valeur initiale d'une consigne dans le segment actuel, étant entendu qu'en dehors des périodes de validation de la soustraction, la fraction d'adresse citée est égale à la valeur du numéro du segment actuel.