Brevet FR2743911A1 — publié le 19970725

La présente invention concerne l'architecture et le fonctlonnement d'une unité centrale dont les variables d'entrées et de sorties sont dispersées sur le terrain. Le contrôle commande en est une application particulière Ses domaines d'applications concernent tous tes secteurs notamment le militaire, I'industrie, I'agriculture et le bâtiment. Elle constitue la suite de l'étude ayant fait l'objet des demandes de brevet déposées à L'INTI de Marseille sous les numéros 9501338 et 95 10571. Tous les schémas de cet exposé descriptif ne représentent pas les circuits d'alimentations .De même les chronogrammes de cet exposé ne représentent que des séquencements ne donnant aucune information précise quant aux différentes proportions entre les durées des différents états transitoires ou stabilisés. Ils permettent de considérer un ordre autorisant un fonctionnement sûr du principe de l'unité centrale éclatée. Aucune conclusion ne doit être tirée quant aux positions des états de repos ou de travail des contacts ou équivalents, quant aux choix de logique positive ou négative, quant aux fronts de signaux montants ou descendants qui ont permis la réalisation de cet exposé. De même que les noms et les limites fonctionnelles qui ont été choisis dans la description des différentes parties de l'unité centrale éclatée, de ses composants et des parties de ses composants ne peuvent caractériser une différence dans le principe de base. II ne faut s'attacher qu'au principe de fonctionnement et aux séquencements dans lesquels ces états et ces signaux doivent apparaître et disparaître pour donner un fonctionnement cohérent exigé par les règles de l'art en matière de dynamique des systèmes.. II faudra entendre par fonctions de bases, les fonctions logiques de type ET, OU, NON ET, NON OU II faudra entendre par fonctions quelconques ou complexes , une fonction logique résultant de la combinaison de plusieurs fonctions de bases. 1 LES UNITES CENTRALES ACTUELLES: INTELLIGENCE PONCTUELLE. i.A ASPECTS MATERIELS Les figures 1, 2 , 3 font ressortir les aspects matériels dont une unité centrale est actuellement équipée pour remplir ses fonctions. Cette description schématique veut faire apparaître les effets "secondaires" de la centralisation de l'intelligence qui se traduisent principalement par: 1") la nécessité sur le plan de l'étude et de la réalisation des procédés automatisés de mettre en place une "logistique de transport de l'information", très lourde sur le plan du matériel, de ses temps de réponses, de ses capacités de résistance aux contraintes, des solutions qu' elle oppose à ces contraintes, des coûts d'achats, des coûts d'installations et des délais de réalisations des procédés automatisés. 2") Les difficultés engendrées en phase de production par l'impossibilité de disposer à l'endroit où l'on en a besoin des informations nécessaires à la résolution de pannes ou à des modifications de programmes ou de réglages. 1 .A.1 Les unités centrales à "interfaces solidaires" La figure 1 fait apparaître le synoptique des parties d'une unité centrale (1) "interfaces solidaires" avec ses interfaces d'entrées (3) et de sorties (2) toutes coexistantes sur un même support ou châssis. L' ensemble se trouve à un endroit précis du site dans une armoire principale (20). Les informations électriques d'entrées sont acheminées depuis les capteurs (13) placés sur le procédé automatisé (12) par les moyens suivants: - Des câbles à deux trois, quatre conducteurs (14) résistants aux contraintes du milieu dans lequel ils cheminent par des enveloppes et gaines spécifiques. -Un coffret (16) dit "boite de jonction", dans lequel se trouve un bornier (15) qui rassemble tous les câbles (14) en un gros câble multifilaire (17). Ce câble est résistant aux contraintes du milieu dans lequel il chemine par des enveloppes et gaines spécifiques. -Une enveloppe principale (20) ou armoire principale dans laquelle le câble (17) entre et se divise sur le bomier (18) en un faisceau de câbles unifilaires (19) qui attaque l'interface d'entrée (3). Les informations électriques de sorties destinées aux actionneurs (11) répartis sur le procédé sont physiquement acheminées vers les utilisations ou actionneurs par les moyens suivants: - Des conducteurs unifilaires issus des interfaces de sorties (2) attaquent un étage d'interface de puissance (4). Cet Interface de puissance voit ses sorties transmises pardes câbles unifilaires (5) vers un bornier (6) qui permet de sortir les signaux de puissance de l'armoire (20) par des câbles (7) à deux trois. quatre ou cinq conducteurs et à double enveloppe minimum. Ces câbles sont résistants aux contraintes du milieu où ils circulent par des enveloppes et gaines spécifiques Ce schéma s'impose dans la mesure où la partie matérielle de l'unité centrale est le "centre géographique" de l'ensemble du procédé La partie logicielle (21) qui est le "centre fonctionnel" est contrainte de s'y trouver. II faut donc lui amener les informations d'entrées depuis les capteurs (13) et lui permettre de transmettre les informations de sorties jusqu' aux actionneurs (11). Le fait de véhiculer des informations électriques doit répondre à des critères de sécu -rité des personnes, du matériel, ainsi qu'aux exigences techniques du procédé automatisé. Les solutions à ces contraintes sont à l'origine de coûts importants à la réalisation des procédés automatisés, que bien souvent seul le juste respect des normes de sécurité arrive à limiter. Les solutions répondant aux problèmes des contraintes et exigences techniques sont soumises au paramètre d' "étalement " et de "dispersion" des installations qui provoquent un effet de réactions en chaînes sur les plus-values à la réalisation. Par exemple , conserver l'étanchéité d'une cloison lorsq'un faisceau de câbles de contrnlecommande doit la traverser peut représenter le choix technologique de réali -ser une autre installation d'automatisme de l'autre côté de cette cloison. De plus, les opérations de maintenance sont très souvent gênées par cette centralisation. Dans la mesure où c'est souvent au niveau des capteurs et actionneurs que les pannes se produisent et que l'accès à la mémoire donnée ne peut se faire qu' au niveau de l'unité centrale qui est dans son armoire électrique (20), distante du point d'intervention. 1.A.2 Les Unités centrales à "interfaces déportées". La figure 2 fait apparaître une tendance actuelle atténuant ces aspects négatifs. Les interfaces de sorties (32) et d'entrées (41) sont déportées respectivement dans un coffret dit "auxiliaire" (34) et (40). En effet, I'interface de sortie (32), techniquement plus complexe, doit être équipée de l'interface de puissance (33). Les câbles (17) et (7) en fin. 1 sont remplacés par des connexions informatiques (31) et ( 42) en figure 2 qui sont moins coûteuses à l'installation. La longueur des câbles (7) est réduite à celle des câbles (35). Cependant les coûts engendrés par ce changement de configuration doivent être bien maitrisés et c'est souvent le paramètre de "distance" qui en est le facteur déterminant. Sur des procédés relativement "petits" le système figure 1 est toujours concurrentiel. 1.A.3 Unités Centrales à "interfaces éclatées" La figure 3 fait apparaître une autre solution qui consiste à éclater les interfaces d'entrées-sorties par le moyen d'une lourde infrastructure de communication dont le support matériel est assuré par onde radio, courant porteur ou tout autre moyen de transport de l'information. L' "intelligence artificielle" implantée au niveau des boîtes (53) est en grande partie limitée au décodage des adresses que l'unité centrale (57), toujours existante dans I' armoire principale (56), envoie sur le "bus de terrain" (54) lors des différentes scrutations qu'elle peut réaliser. Pour cela, I'unité centrale s'appuie sur une infrastructure de communication (55) qui encore une fois ne devient rentable qu'à partir d'une certaine taille du procédé automatisé qui s' évalue en nombre d'entrées-sorties et en distance des capteurs et actionneurs à l'unité centrale. Dans le cas d'un nombre d'entrées-sorties légèrement supérieur à la capacité maximale sur le bus, les constructeurs actuels de tels systèmes, justifient l'équipement de l'unité centrale d'une deuxième infrastructure identique par les gains en matière d' installation et mise en route. Cet inconvénient a pour conséquence d'une part, à atténuer considérablement les avantages recherchés liés à la diminution des coûts d'installation et d'autre part, à surdimenssionner les moyens mis en oeuvres par apport aux besoins réels du procédé. i.B ASPECTS LOGICIELS 1.B.1 Programme de contrôle commande: Parties fonctionnelles La figure 4 représente un exemple de programme que peut réaliser une unité centrale actuelle qu' elle que soit la technologie de ses interfaces. II constitue un exemple dont on se servira tout au long de I' exposé. II est réalisé à partir d' un éditeur de programme source dont le langage informatique est dit "à contacts" Ce type de langage est largement employé par les constructeurs d'automates programmables pour ses similitudes avec la logique câblée. Chaque "contact" représente le test d'une valeur binaire ou "bit"en mémoire donnée. Le test de l'état UN est représenté par un contact non barré. Le testée l'état ZERO est représenté par un contact barré Les instructions qui constituent un programme permettent à l'unité centrale de réaliser des lectures puis des écritures de données situées dans la mémoire globale. 1.B.1.a" Mémoire Données Globale" La figure 5 représente un synoptique fonctionnel d'une carte électronique d' une Unité Centrale actuelle. Pour son exécution du programme le t Processeur (70) s'appuie sur une "base de donnée" (65) que nous appellerons "mémoire globale" modifiable et inscrite sur mémoire de type RAM (à accès en écriture et lecture de manière aléatoire ). Cette mémoire "globale" est entre autre, I'image de: - I' état du procédé commandé - I'état du système de contrôle commande que constituent l'unité centrale et ses interfaces. Cet aspect est important pour la suite de l'exposé dans la mesure où c' est à cette mémoire donnée globale que l'opérateur de maintenance ou de mise en route se réfère en accord avec le programme pour déterminer la cause d'une panne ou effectuer ses opérations de surveillances, de tests, de mises au points ect.. Aussi, cette notion de mémoire globale doit être gardée à l'esprit tout au long de l'exposé car cette définition n'est pas mis en cause par l'invention. Parmi les zones caractéristiques de la mémoire globale se trouvent notamment les zones mémoires RAM suivantes: 1.B.1.a1 La mémoire inteme (67) figure 5, servant au programme pour mémoriser des résultats intermédiaires ou des phases de fonctionnement du procédé. Elle est accessible en lecture etlou écriture par l'unité centrale sous forme de bit ou de groupe de 4, 8, 16, 32 et 64 bits que l'on appelle "mots" La figure 4 représente des opérations sur de telles variables repérées par les mnémoniques: - mO, mi, m2... pour les bits, - motO, mot1...pour les mots. 1.B.1.a.2 La mémoire "Image des entrées" (66) figure 5, où sont écrits, généralement par les interfaces d'entrées (71) figure 4, les états de tous capteurs de type binaire, ou analogique. Cette opération rend ainsi disponible en lecture les états des capteurs du procédé par l'unité centrale pour la réalisation du programme. La figure 4 représente des opérations de lectures sur de telles variables repérées par les mnémoniques faisant référence à l'information qu'ils représentent: - "Auto": provenant du sélécteur de mode de fonctionnement, -"Niv.Haut" détection du niveau haut d'une cuve ect. 1.B.1.a.3 La mémoire "Image des sorties" (68) figure 5, où sont écrits les résultats caractérisant les états que doivent prendre les actionneurs du procédé. Elle peut être lue ou écrite par "programme" durant son exécution, mais elle peut être aussi lue par les interfaces de sorties (72) figure 5 qui sont chargées de transmettre ces états sur les sorties "physiques" du système de contrôle commande. La figure 4 représente des opérations de lecture et d' écriture sur de telles variables repérées par les mnémoniques faisant référence â I' action qu'ils doivent déclencher sur le site "Ppel" marche pompe 1 "Ppe2" marche pompe 2 ect.. i.B.i.b Mémoire "Programme" Ce programme est écrit dans une mémoire de type R.O.M (69) figure 4 (à lecture seulement). II est constitué d'une suite d'instructions représentées en langage "contacts" en figure 4, mais qui peuvent être du type: IF (CONDITIONS) THEN ACTIONS ELSE (INSTRUCTION SUIVANTE) ou encore en langage littéral: résultat (CONDITIONS) = ACTIONS Vis à vis de l'exposé, un programme se divisera donc en deux parties fondamentales: i.B.i.b.1 Partie "CONDITIONS" (75) figure 4 Le programme y effectue les opérations de lecture en mémoire données globales, des états de variables intervenantes dans les opérations logiques qui caractérisent le fonctionnement du procédé. La partie "Conditions" est entièrement modélisable par la représentation des organigrammes. Le résultat (76) figure 4, de chacune des opérations logiques est équivalent à une valeur binaire, qui est généralement le bit dit "drapeau de retenue" ou "CARRY Status flag" C'est une variable interne au micro processeur (70) fig 5 qui ne sert que temporairement à I' exécution de l'instruction en cours . L'état de ce bit est donc testé, (77) figure 4, en fin de calcul de la CONDITION pour provoquer un saut de programme sur ACTION s'il est à "UN" ou passer à l'instruction suivante s'il est à "ZERO" La caractéristique de la centralisation d'un système de contrôle se trouve principalement dans ce fait: Ce drapeau de retenue sert successivement pour toute les instructions du programme. La figure 7 représente une opération logique complexe qui sera repris dans la suite de l'exposé. Elle est écrite en langage contact. En langage dit littéral elle donne la ligne suivante: a ET [(b ET non c ET d) OU ( ( f OU e) ET g) OU ( non | ET non j )I = r 1.B.l.b.2 Partie "ACTIONS" (78) figure4 Le contenu du résultat de chaque opération logique permet selon son état à "UN" ou "ZERO" d' enchaîner des "actions" qui représentent des opérations d' écriture en mémoire globale donnée et notamment les états désirés des sorties physiques. Ces opérations peuvent concerner des données quelque soit leur mode d'adressage: -Changement d' état à "UN" ou à "ZERO" pour des bits, -Chargement de valeurs, incrémentations, décrémentations, opérations arithmétiques sur mots tels que multiplications, additions, décalages, ect. Mais aussi: -Chargements d'adresses de programmes, à savoir des sauts à l'intérieur d'un programme mais aussi vers des programmes ayant un rapport direct ou non avec le programme appelant. - des déclenchements de procédures effectuées simultanément par des périphériques "intelligents "tel que les CTC ou Circuit de comptage et de temporisation, comme notamment des fonctions de: -Temporisations, -Comptages haute fréquence.. 1.B.2 Tvpes de Programmes Les descriptions schématiques qui suivent veulent montrer par quels moyens actuels le traitement du programme par l'unité centrale effectue la lecture de ses entrées et la mise à jour de leurs sorties physiques. La notion de programme développé ici consiste en des programmes qui ont une "autonomie" .C'est à dire, quelque soit la situation de l'unité centrale qui le porte dans un réseau (maître, esclave ect...), ce programme est réalisable par l'unité locale seule qui le porte et il se traduit par des actions sur le procédé. (Alors que l'unité centrale éclatée oblige à développer des notions de "programmes locaux" qui n'ont de sens qu' aux regards des actions conjointes et simultanées qu'ils entraînent.) i.B.2.a Programmes cycliques: La figure 6 schématise les trois phases principales qui constituent le "cycle" de l'unité centrale représentée en figure 1, 2 et 3 - Lecture des états des entrées, - Réalisation du programme complet, - Mises à jour des états des sorties physiques. 1ère phase (80) L'unité centrale commence par effectuer la scrutation des états des capteurs répar -tis sur le procédé automatisé. Elle écrit leur valeur dans la zone mémoire image des entrées. C'est la gestion des interfaces d'entrées (2). Cette phase est responsable dans les technologies actuelles de temps de "scrutation des entrées très important qui sont compensés par l'emploi de composants très rapides et donc coûteux. Ces temps de scrutation représentent en fait un adressage successif de chaque capteur (polling) Dans la mesure où les liaisons informatiques (42) et (31) figure 2 ou (54) figure 3 sont des liaisons séries appelées "bus de terrain" ces protocoles doivent être extrêmement rapides 2éme phase (83): L'unité centrale effectue le programme qui est une suite de modules effectués les uns après les autres. Le programme est structuré de manière à ce qu'il soit scruté par l'uni -té centrale depuis le module le plus déterminant (81) sur l'évolution de l'automatisme jusqu'aux tâches les plus générales (82). Les premiers modules scrutés sont généralement les décisions à effectuer lors de l'apparition des "événements exceptionnels" tels que, coupures ou reprises secteurs, arrêts d'urgence, changement de mode de fonctionnement, ect.. . Le dernier module (82) correspond habituellement aux calculs des actions qui seront attribués aux actionneurs. Chaque module est lui même composé d'instructions telle que décrite ci dessus figure 7. 3éme phase (84): L'unité centrale, après avoir parcouru le programme, recopie la mémoire image des sorties venant d'être calculées afin de gérer les actionneurs. C'est la gestion des interfaces de sorties (2). Là aussi les temps de rafraîchissement sont importants dans la mesure où les bus de terrain doivent aussi, par la nature de la liaison, adresser successivement les sorties. Les phases 1 et 3 sont le plus souvent exécutées sur le même bus de terrain. Le temps nécessaire à l'unité centrale pour effectuer ces trois phases s'appelle le " temps de cycle" II est d'autant plus long que le programme est important. II peut devenir préjudiciable dans la mesure où il engendre un "temps mort" entre la phase de scrutation des entrées et les actions qui en découleront en fin de cycle. Cette méthode de parcours du programme est la plus utilisée dans la mesure où elle évite plus les incohérences d'exécutions qui pourrait survenir suite à un changement d'état de variables d'entrées entre le début et la fin du programme 1.B.2.b Programmes temps réel Cette méthode est plus délicate à réaliser mais présente l'avantage d'un gain de temps dans les réactions de l'automatisme dans la mesure où il évite les rafraîchissements systématiques des mémoires d'entrées et de sorties. II est basé sur le principe des Interruptions matérielles du logiciel. L' automatisme n'évolue qu'à partir des changements d'état des variables d'entrées qui le pilotent. II apparaît des contraintes de temps d'exécution. tels qu'aucun événements ne soit perdu. 1.B.3 Modélisation de la Partie "Condition " par les oreaniurammes. La figure 7 représente une instruction logique complexe composée de fonctions logiques de bases. La figure 8 représente un chronogramme qui peut simuler le fonctionnement d' une machine réalisant cette opération. Les figures 9 et 10 montrent comment il est possible d'envisager des parcours différents dans les tests et la structure des organigrammes équivalents qui découlent de ces chemins. Sur le plan de la démarche, si l'on pose les états des variables intervenantes constantes durant les quatre chemins possibles, le résultat sera équivalent au chronogramme figure 8. Les organigrammes de la figures 10 sont dits "remarquables" et doivent faire l'objet de quelques observations: i .B.3.a Caractéristiques d'ordre général des organigrammes. La représentation générale, figure 11, consiste en des tests (101) successifs d'états logiques de variables binaires dites "intervenantes" dans une opération logique. Les deux branches (102) et (103) de sorties de chaque test donnent - soit un résultat "déterminé"(1 04), - soit la possibilité d'effectuer un autre test (102) ou donner un résultat final (105) dans le cas d'un résultat déterminé non trouvé. 1.B.3.a.1 Le registre résultat des organigrammes remarquables Ces organigrammes modélisent une opération logique dont le résultat doit être récupéré dans un registre "résultat" Dans sa plus simple expression, ce registre est une "mémoire" de type Flip-Flop. II faut distinguer: - Le résultat le plus hautement probable "P"(1 04) qui pour des variables testées supposées aléatoires a une probabilité d'apparition ayant pour expression: +"P"= (1-1/2n) +"P" augmente avec le nombre de variables intervenantes. -Le résultat le moins probable "p" (105), qui pour des variables testées supposées aléatoires a une probabilité d'apparition ayant pour expression: 'p"= (1/2n) +"p" diminue avec le nombre de variables intervenantes P et p sont liés par la relation logique booléenne p= nom P La distinction entre ces deux résultats donne deux grandes familles d' organigrammes Les organigrammes de type "PARALLELES" dont "P" = 1 figure 12. Les organigrammes de type " SERIE" dont "P" = 0 figure 13 Les figures 14 et 15 montrent les représentations possibles en schémas "contact" 1.B.3.a.2 Le Test élémentaire C'est un aiguillage qui prend une décision binaire par rapport à la condition du test. La figure 16 montre un seul test élémentaire de l'état "UN". La figure 17 montre un test élémentaire de l'état "ZERO" Dans les deux cas, il correspond au chargement du registre résultat de l'état de la variable testée. La nature du test ,"à ZERO" se différencie du test "à UN" par un chargement de l'état complémenté de la variable testée. Certains langages littéraux, à terminologie Anglo-saxonne désignent le test à "UN "de la variable "a" parI' expression "LOAD a" et le test à "ZERO" par "LOAD BAR a" Les figures 16 et 17 représentent des schémas fonctionnels d'un '7est" Ce sont des inverseurs commandés. Ils peuvent aussi être de type mémoire et avoir un aspect dynamique par la présence d'un signal d' horloge figure 18. Pour la suite de l'exposé seront considérés les faits suivants: - Pour différencier un chargement d' une variable quelconque à celui occasionné par un test à "ZERO" ou à "UN" il sera postfixé au nom de la variable le symbole " * ". En conséquence, lors d'un test le registre résultat est en fait chargé de l'état var i dont le tableau, ci dessous, donne la signification selon la nature du test effectué sur la variable var i. 'ta test à UN ZERO arable Var iv Var i Vari - Une variable var i dont l'état var i* = P est dite "déterminante" - La nature du test permet de dégager deux sous groupes d' organigrammes parmi chaque catégorie SERIE et PARALLELE: Organigrammes SERIE composé uniquement de tests à "UN" représentant la fonction logique de base "ET'. Organigrammes SERIE composé uniquement de tests à "ZERO" représentant la fonction logique de base "NON OU" Organigrammes PARALLELE composé uniquement de test à "UN" représentant la fonction logique de base "OU" Organigrammes PARALLELE composé uniquement de test à "ZERO" représentant la fonction logique de base "NON ET' Remarques 1 Les fonctions ET et NON OU sont dites compatibles dans la mesure où elles contribuent à charger le même état "P"=O ou "p"=1 dans le registre résultat II en est de même des fonctions OU et NON ET qui chargent, cette fois, le même état "P"=1 ou "p"=O dans le registre résultat Remarques 2: Sur le plan du calcul, cela veut dire q'une fonction de type PARALLELE peut être constituée indifféremment de tests de quelque nature que ce soit à condition de tenir compte du tableau ci dessus différenciant les conséquences des chargements dues aux tests. II en est de même pour les fonctions de type SERIE. i.B.3.b Détection du signal " résultat détenniné". Le but de l'organigramme est de détecter la première variable dont l'état est déterminant. La détection d'un résultat trouvé peut donc se faire par un changement d'état du registre résultat si celuici a été correctement initialisé. La figure 19 montre une mise en série de bascules de type D qui constituent ainsi un registre à décalage. A chaque coup d'horloge Clk, les données sont amenées successivement de "bascule en bascule", sur l'entrée "Clkr" de la bascule dite "résultat". II sagit de détecter un niveau déterminant "UN" de la variable présente en DO. Ce fonctionnement est celui d'un organigramme type Parrallèle. Lorsque la variable "a" est appliquée sur l'entrée DATA de la bascule DO, le prochain signal d'horloge va provoquer l'apparition de l'état de "a" sur la sortie QO et sur l'entrée "Clk r" de la bascule "résultat" Si les bascules DO et Dr ont été au préalable initialisées par: - Action de "/ iNlr sur les entrées prioritaires "RESET', la bascule résultat est positionnée à l'état "p" = 0 -Initialisation à l'état "P" = "UN" de l'entrée "Dr" de la bascule "résultat" Si a* = "UN", la sortie Qr passera de l'état "ZERO" à I' état "UN" détectant ainsi I' apparition du résultat déterminant de "a" Trois initialisations remarquables du registre résultat sont à considérer 1 ) Initialisation du registre à la valeur de "p" Elle revient à chercher à chaque test, le résultat le "plus probable" qui sera détecté par le changement d'état du registre résultat dés la première vanable determinante. Ce cas est représenté par la figure 20. Dans le cas de la figure 19 nous avons bien une initialisation à l'état "UN "de l'entrée DATA de la bascule "résultat" puisque ce fonctionnement réagit selon les caractéristiques d'un organigramme type PARALLELE. Dans le cas de résultat déterminé non trouvé le front d'horloge sur l'entrée "Clkr"de la bascule "résultat" est généré par le signal de la dernière variable traitée. C'est alors l'état de la dernière variable présent en DO qui conditionne l'apparition du front. 2") Initialisation du registre à la valeur de "P" Cela revient à ne pas pouvoir détecter I' apparition du résultat déterminant. Ceci ce comprend en figure 19. Dans le cas d'une initialisation en l'état "p" = "ZERO" de l'entrée DATA de la bascule "résultat", le front de sortie Qr serait impossible. Compte tenu de cette impossibilité la réalisation de l'organigramme devient elle aussi impossible. 3o) Initialisation du registre avec l'état var i de l'une des variable testées: L'apparition du changement d'état est aléatoire car il dépend de l'état de var i * . Bien que le principe de l'organigramme accepte cette notion de chargement par défaut du registre résultat de l'état var i* de l'une des variables testée , dans la pratique, la gestion de la détection du résultat en est fortement compromise, tout au moins dans le schéma de réalisation figure Dans le cas le plus défavorable, c'est la pile vide qui conditionne la fin du calcul, dans le meilleur des cas, c'est le premier test qui conditionne la fin du calcul. Un seul test est appliqué successivement sur les variables intervenantes de l'opération logique en cours i.B.3.d Elaboration d'une structure de commande décentralisée Le registre CARRY n'est en fait que l'extension de registres appelés généralement "Accumulateur "et de "registres auxiliaires" appelés B, C, D et qui, de par leurs fonctions, sont en fait les passages obligés pour: - les entrées, depuis les périphériques d'entrées vers les mémoires, - les traitements par les fonctions intelligentes, depuis les mémoires vers le 1 processeur, - les résultats de ces traitements depuis le Z processeur vers les mémoires, - les sorties depuis les mémoires vers les périphériques de sorties. Globalement les flux sont doubles et concernent les aspects suivants: Périphériques Mémoires Processeur. Ces registres se trouvent donc être le siège, à un moment précis du processus global que constituent les flux de données et leur traitement, d'un contenu appelé "résultat ". Ce résultat peut être assimilé au "résumé" de toutes les variables dispersées sur le terrain qui ont participé à son élaboration dans la partie CONDITIONS, mais aussi, au "concentré" de toutes les modifications des sorties et de la mémoire qui vont être faites suite à ce résultat dans la partie ACTIONS. L'invention consiste donc à considérer une structure permettant une souplesse d'exploitation propre aux systèmes dont les entrées sorties sont dispersés tout en évitant les flux de données dont ils sont inévitablement générateur. Le critère de souplesse en matière d'exploitation se trouve être I' ubiquité de la "mémoire donnée globale" La centralisation de la mémoire est une gêne conséquente dans la mesure où c'est très rarement à l'endroit où i'accès à cette mémoire est possible que les problèmes sur le procédé se rencontrent. Cette réflexion amène à considérer les trois remarques suivantes: 1") Les supports de la "mémoire globale" doivent être "multiples" et leur contenu le plus possible identiques à cette "mémoire globale", selon les besoins d'exploitation, de manière à être accessible là où l'on en a besoin en évitant les flux de données provoqués par des transferts de rafraîchissements massifs. 2 ) Les solutions de remplacement des transferts de données massifs résident dans - L' éxécution de l'ensemble des opérations de traitements qui modifient la mémoire globale par des opérations locales, identiques et effectuées simultanément sur chaque mémoire par des fonctions intelligentes locales - Le calcul , sur le bus, des conditions validant chacun de ces traitements par une intervention simultanée et conjointe de toutes les variables intervenantes dans ces conditions Ces variables étant dispersées sur le site ainsi que dans les différents supports mémoires. Les transferts qui en résultent sont sous la forme de Résultats. C'est à dire la forme la plus compacte et donc la plus adaptée à un transfert rapide i.C. OBJETS DE L' INVENTION La présente invention, comme le montre la figure 23, consiste à éclater l'unité centrale représentée dans les figures 1 et 2 et 3 en un nombre d'unités locales (126) disposées au plus près des capteurs (128) et actionneurs (129) sur le procédé (130). Les câbles (127) sont donc réduits au minimum. Ces unités locales sont en relation par un bus externe ou bus de terrain (125). Cet éclatement consiste: I .C.1 Sur le plan matériel A équiper chaque unité locale des supports assurant les fonctions suivantes: 1") La fonction "test" pouvant placer sur le bus, le résultat de la condition à laquelle elle participe si elle determine à elle seule ce résultat. 2") Fonction mémoire globale, 3 ) Fonctions intelligentes de traitements de cette mémoire mais aussi de saisie du résultat évoqué juste ci dessus. I .C.2 Sur le plan lociciel -Les calculs logiques effectués dans la partie "CONDITIONS" sont alors effectués sur le bus. Leur résultat est accessible par toutes les unités locales présentes. -Les parties "ACTIONS" sont alors effectuées par les fonctions intelligentes équipant chaque unité locale, individuellement ou collectivement sur le bus, de manière à garder homogène et cohérent le contenu de la mémoire globale en chacune d'elles. 1.C.3 ApPorts de l'invention -Les temps de calculs ne sont donc plus diminués par l'emploi de composants à hautes fréquences d' horloges capables d' assurer des protocoles encombrants mais par une réduction des temps de scrutation des entrées et de mise à jour des sorties, la possibilité de calculs rapides des expressions logiques par actions simultanées des unités locales qui y sont intervenantes De plus elle permet quelque soit la taille du procédé automatisé d'apporter une solution technique sans arrêt adaptée aux besoins suivants -Réduire les temps de réalisation et la mise en place de la logistique de transport d'information que représente le câblage, -Diminuer le volume de matériaux spécifiques mis en oeuvre pour la mise en place et la réalisation de cette logistique. -Eviter l'emploi des matériaux coûteux car spécifiques aux contraintes d'environnement sévères et apporter ainsi une solution implicite et catégorique aux problèmes que posent ces contraintes, - Faciliter les phases de maintenance sur les procédés automatisés en rendant possible l'accès à la mémoire donnée représentant l'état du procédé et du système de contrôle-commande jusqu'au niveau des capteurs et actionneurs. - Faciliter la mise en parallèle de plusieurs circuits de commande pour des objectifs de sécurité, de continuité de services où toute autre raison. - Rationaliser la distribution électrique, notamment en basse tension. La structure en "cascade" des armoires principales, secondaires jusqu'aux coffrets et boîte de jonction est mis en cause par le principe d'unité centrale éclatée. 2 UNITE CENTRALE ECLATEE: INTELLIGENCE REPARTIE. 2.A ECLATEMENT DES ORGANIGRAMMES PARALLELES et SERIE. D'après la description précédente, concernant la résolution de fonctions répondant aux organigrammes de types PARALLELES et SERIES par un système de pile informatique, nous allons maintenant chercher à équiper chaque variable intervenante dans une fonction logique de base d'un test élémentaire ainsi que d'un registre résultat " initialisable" et étudier: - Quelles sont les liaisons envisageables entre ces tests et registres respectifs, - Quelles sont les contraintes de temps qu'imposent ces liaisons vis-à-vis de l'obtention du résultat. Le fonctionnement se déroule sur trois étapes: -Initialisation des registres, -Calcul de l'opération logique que représente l'organigramme, -Diffusion du résultat. L'objectif étant de rendre simultanées ces trois étapes. On considérera que les fonctions effectuées en même temps sont représentées par des organigrammes de type SERIE ou PARALLELE mais pas les deux en même temps afin d'éviter la présence de résultats déterminant incompatibles 2.A.1 Liaisons point à point Simultanéité de l'initialisation des registres et du calcul. Séquencement calcul-diffusion. La figure 24 montre le principe qui consiste à chaîner les tests par les registres résultats de telle manière que la branche déterminante Issue d'un test quelconque initialise le registre résultat du test suivant. Le demier test initialise le registre résultat du premier test. Une boucle est donc formée. Tous les tests, ainsi que l'initialisation des registres en l'état "p", peuvent être opérés au meme top dans la mesure où il y a "compartimentage" des registres par les tests. Cependant, le résultat définitif n'est vraiment disponible que dans le registre résultat du premier test après son écriture par le dernier. Et bien que permettant un calcul de "n" variables simultanément, ce type de liaison oblige à penser à la diffusion du résultat définitif. Ce qui atténue l'effet de simultanéité recherché. 2.A.2 Liaison en anneau Séquencement de I' initialisation et du calcul, Simultanéité du calcul et la diffusion. Dans la mesure où I' on considère que les fonctions effectuées en même temps sont représentées par des organigrammes de type SERIE ou PARALLELE, la figure 25 montre le principe qui consiste à permettre à chaque branche déterminante d' écrire simultanément dans un seul registre résultat "théoriquement" commun à chaque variable. La diffusion est alors effectuée en même temps que le calcul ,par contre,l'initialisation du registre commun n'est pas concevable au même top que celui du calcul. Le registre commun n'est plus "compartimenté" comme dans la liaison de type point à point et seules les branches déterminantes peuvent y placer l'état "P" du résultat. Une initialisation à l'état "p" des registres communs est donc indispensable en cas de non présence de variable déterminante. La réponse à ce problème sera abordé dans le chapitre suivant qui concerne les solutions techniques. Elle consiste au moment du top calcul 1") A réduire le "registre commun" à sa plus simple expression un fil de "donnée" du bus ou autre support d'information dont "chaque unité locale portant la variable intervenante" peut saisir l'état au moment du top du calcul 2 ) A pré-positionner l'état de ce fil de manière systématique 2.B CARACTERISTIQUES PRINCIPALES DE L'UNITE CENTRALE ECLATEE L'unité centrale éclatée répond à deux grands principes 1") Eclatement du logiciel gérant le procédé sur chaque unité locale, 2")Ubiquité de la mémoire globale du procédé dans chaque unité locale. Ces deux principes donnent une qualité d'exploitation optimale: Rapidité de calcul et accessibilité de n'importe quelle donnée aux niveau de toute unité locale. La répartion du logiciel se fait par: 1") L'éclatement de la partie "Conditions" que constitue un programme quelconque, 2") La présence dans toutes les unités locales de la partie "Actions" L' ubiquité de la mémoire découle naturellement de cette répartition 2.B.i Opération logique complexe - opérations intermédiaires Une opération complexe peut se subdiviser en plusieurs opérations logiques intermédiaires. La décomposition des opérations logiques en plusieurs opérations logiques intermédiaires peut être effectuée selon plusieurs procédés. Les figures 26 et 27 en montrent deux exemples qui ne présentent pas de caractères exhaustifs. Elles représentent deux subdivisions possibles de l'équation figure 6. La solution figure 26 conserve la structure générale de l'opération initiale. Les opérations intermédiaires (150) à (154) définissent à chaque fois un résultat intermédiaire diffèrent du résultat définitif et de plus répondent aux deux types d' organigrammes. La solution figure 27 par contre, permet un traitement "conditions" que sur des opérations intermédiaires (155) à (158) chacune définissant entièrement le résultat définitif et répondant au seul principe des organigrammes de type SERIE. Cette dernière solution présente I' avantage de rendre le résultat intermédiaire identique au résultat définitif de l'opération et de permettre une détection plus facile du résultat déterminé par chaque unité locale. 2.B.2. Activités globales et locales des unités locales Une opération logique dite complexe dont le résultat conditionne une action quelconque est donc décomposée en plusieurs opérations dites "intermédiaires" qui répondent aux principes d'éclatement des organigrammes de types PARALLELE ou SERIE et dont le résultat se trouve sous forme binaire. Les figures 28 et 29 montrent les étapes de traitements des parties conditions (161) qui consiste en une activité qui intéresse la "globalité" des unités locales se déroulant sur le bus et le temps de traitement des actions (162) qui intéresse I' activité locale de chaque unité locale. La figure 28 montre le cas de plusieurs opérations logiques intermédiaires (160) qui sont réalisées les unes après les autres et dont les résultats Intermédiaires sont traités globalement dans la partie traitement des actions. Ce cas est envisageable pour un bus ne comportant qu' une ligne de donnée. La figure 29 montre le cas de plusieurs opérations logiques intermédiaires (160) qui sont réalisées en meme temps et qui se ramènent en fait aux étapes d'exécution d'une seule opération logique de base. Ce cas est envisageable lors d'un bus externe à plusieurs lignes de données. 2.C ASPECTS MATERIELS. 2.C.1 Structure de base de l'unité locale La figure 30 représente le synoptique de principe de l'unité locale ne comportant q'une ligne de donnée. (200) Bus externe ou "bus de terrain" reliant les unités centrales locales, (210) Interface au bus ou Fonction "test" ayant la gestion de la partie "conditions" du programme, (220) Unité de contrôle du bus ou Fonction gestion et controle signaux du bus autre que les lignes de données du bus, (230) Unité centrale locale apportant: -lés fonctions intelligentes par son unité arithmétique et logique, -Le support mémoire devant recevoir le contenu de la mémoire globale. (231) Entrée située sur le procédé automatisé et gérée par l'interface de l'unité centrale locale, (232) Sortie située sur le procédé automatisé et gérée par l'interface de l'unité centrale locale, (240) Liaison série pour accès en locale à la mémoire globale par un opérateur, (250) Bus interne à l'unité locale. 2.C.1.a Structure de base de la fonction test: La figure 31 schématise la fonction test. Les liaisons que cette fonction peut avoir avec l'unité centrale locale sont réduites pour cause de simplicité de description au seul registre suivant: (211) registre "9 out" commandant 'inverseur (212) registre "reg out" de la valeur déterminante de l'organigramme éclaté en cours, SERIE (Var i*=P=0) ou PARALLELES (Var i-=P=1). (213) registre "reg in" de lecture de l'état présent sur la ligne, (214) portes inverseuses permettant de déterminer l'état Var l* (nature du test), (215) portes inverseuses configurant le type d'organigramme (216) registre "g test" configurant les portes inverseuses (217) qui définissent la nature du test effectué sur la variable intervenante, (217) registre " Data" contenant l'état de la variable testée et intervenante appelée "var i", (218) registre "g P/S" configurant les portes inverseuses (215) qui définissent le type d'organigramme effectué. La "connexion" repère (298) est réalisable en mode de connexion point à point des interfaces entre elles et non nécessaire dans une connexion en anneau. 2.C.1 b Structure de base du bus externe. La figure 30 représente un nombre minimum de lignes de données et de signaux que doivent desservir chaque unité locale pour pouvoir enchaîner des opérations logiques sur le bus répondant au principe des organigrammes éclatés. (201) la ligne de données en lecture sur la ligne de donnée "Din" (202) la ligne de données en écriture sur la ligne de donnée "Dout", (221) la ligne "Clk" du bus, (299) la ligne de masse Gd. 2.C.1.c L'unité de contrôle du bus Cette fonction n'est pas développée dans cette exposé dans la mesure où elle n' a pas un lien direct avec I' invention. Cependant une telle unité est indispensable pour son fonctionnement. Notament en ce qui concerne le signal d' horloge sur le plan de son émission et de sa réception au niveau de chaque unité locale. La complexité de cette unité sera croissante avec le nombre de signaux de contrôles dont pourraient être équipées les unités locales. 2.C.2. Connexion entre les unités locales d'une unité centrale éclatée En ce qui concerne la ligne de donnée, deux types de réseaux sont envisageables. Ils représentent les deux possibilités d'éclatement des organigrammes: - Connexion de type point à point, - Connexion de type anneau. Les registres décrits sur les figures 24 et 25 sont réduits à la plus simple expression: La ligne de donnée. En conséquence, cette ligne est en fait une ligne de "CALCULS" où apparaissent les résultats: - des opérations logiques de la partie "CONDITIONS", - éventuellement de la partie des "ACTIONS" du programme en cours et auxquelles les unités locales intervenantes participent. L'initialisation lors du top de calcul peut être faite de plusieurs manières selon le type de connexion. Ce problème sera traitée dans chaque cas lors des paragraphes suivants. Dans les différentes représentations de ces types de connexions, seules les interfaces au bus sont représentées dans la mesure où ce sont elles qui interviennent dans le processus innovant Cependant la figure 34 symbolise l'unité centrale locale par le texte "Trait. x" 2.C.2.a Connexion de type point à point. La figure 32 représente la connexion de type point à point. La ligne de donnée rentre dans l'unité locale au niveau de la borne Din pour ressortir par la bome D out. Le Dout de chaque unité locale est connecté sur le Din de l'unité locale suivante. Le Dout de la dernière unité locale est alors connecté au Din de la première : une boucle est ainsi formée. L' initialisation peut être faite par la positionnement de l'inverseur commandé de la première unité locale de manière à mettre l'état varO* sur la ligne. (cf 1 .B.3.b Détection résultat déterminé, alinéa 3 ). En effet dans ce type de connexion, la fonction détectant le résultat déterminé est réalisée au niveau de la lecture du registre "ri" de chaque unité locale Figure 32. Le circuit de détection, dans son fonctionnement, est analogue à celui représenté figure 19. Dans le cas où aucune variable intervenante n'est déterminante, cette opération de détection se fera sur I' état de la variable varO*. Cette initialisation est représentée figure 33. Lors de I' étape de calcul repéré par la première impulsion Clk1,l'unité locale "a" a configuré son inverseur de manière à présenter l'état de at sur son Dout. Du fait du nombre d' unités locales en présence dans cet exemple, le résultat "r" ne dépend plus que de la variable "b" La fonction test consiste, pour I' unité locale "b", à ne placer l'état de sa variable intervenante sur son Dout b que si cet état est déterminant. Dans le cas contraire elle permet la transmission de l'état de son Din sur son Dout. C' est un état de transparence au bus. La position caractéristique de l'unité locale "b" , immédiatement située après l'unité locale "a", entraîne la présence de l'état a sur l'entrée du registre "r" Ce dernier n'est pas le résultat définitif dans la mesure où, dans cet exemple, c'est dans l'unité locale "c" que l'on peut considérer que tous les tests de l'organigramme sont réalisés. II y a donc nécessité de diffuser le résultat dans toutes les autres unités locales. La figure 33 représente les deux étapes séquentielles qui résultent du calcul de l'opération intermédiaire en cours. Première impulsion d'horloge: -Les deux unités locales a et b effectuent le calcul, -L'unité locale a est initialisante. -L'unité locale c se dispose en Transparence et recueille le résultat dans son registre de lecture. Deuxième impulsion d'horloge - L'unité locale "c" transfert le résultat sur sa sortie déterminante et le fait passer sur son Dout. C'est "I' écriture" du résultat sur la ligne de donnée, - Toutes les unités locales lisent le résultat et permettent une diffusion de celle-ci en se disposant en état de transparence au bus II apparaît dans ce type de fonctionnement, la possibilité d' utiliser I' inverseur dans d'autres fonctions que celles de calculs. Notamment pour: - I'unité locale "c" qui recueille le résultat, qui n' est pas intervenante, et qui force son inverseur de manière à conserver la continuité de la ligne de donnée lors du calcul, -La disposition en transparence pour la diffusion du résultat où toutes les unités locales se disposent en transparence de manière à ce que le résultat puisse être diffusé. La figure 34, notamment laisse entrevoir une configuration pouvant présenter de nombreux avantages en matière de contrôle de présence et de bon fonctionnement de toutes les unités locales connectées sur le bus externe. En effet, I' émission d'une trame par l'unité locale "c" par le Dout peut être traitée par chaque unité locale "a" et "b" Elles se foumissent ainsi une "signature états accessible par chacune d'entre elles et entièrement traitable par l'unité locale "c" qui recoit toutes les trames sur son Din. 2.C.2.b Connexion de type anneau: Initialisation permanente de la ligne de donnée. La figure 35 montre l'évolution du test équipant chaque unité locale. La seule sortie du test ne conceme que celle qui est déterminante. II a été vu dans le paragraphe concernant l'éclatement des organigrammes en anneau, la nécessité d'un séquencement obligé pour initialisation à l'état "p" le moins probable du résultat de l'opération logique en cours, et ce, avant la réalisation des deux fonctions simultanées Calcul-Diffusion. Le support de la ligne Data ici est le prolongement de tous les registres de sortie Dout dont l'état sera celui de "P" le plus probable de l'opération logique en cours si il existe une variable qui en a l'état. II apparait alors difficile de charger en même temps deux états pouvant être complémentaires sur le même support. 2.C.2.c Problème d'ordre technologique pour l'initialisation Selon la technologie des matériaux, comme le montre la figure 36 en électronique, des contraintes techniques apparaissent. La figure 36 montre les étages de sorties de deux unités locales (300) et (301). En supposant que l'unité locale (300) initialise la ligne de donnée au niveau "ZERO" et que l'unité locale (301) détermine â l'état "UN" le résultat Si les deux opérations sont effectuées en même temps sur la ligne donnée (302) le signal en Dout 1 n' apparaîtra pas. De plus faire séquentiellement ces opérations reviendrait à donner une fonction "mémoire" à la ligne de donnée afin de conserver l'état Initial - en cas de non existence de variable déterminante - en cas d' existence de variable déterminante pour sa détection Aussi, ne faut il envisager de ne pouvoir réaliser sur la ligne de donnée que des organigrammes dont I' initialisation est à l'état "UN" et le résultat déterminant est à l'état "ZERO" Ce sont des organigrammes de type SERIE. Cet aspect va dans le sens de la décomposition des opérations logiques complexes en des opérations logiques intermédiaires répondant au principe des organigrammes types SERIE (cf ≈2.B.1 ). De plus, les relations d'algèbre booléenne de MORGAN permettent de passer d' une opération logique de n variables répondant aux organigrammes PARALLELES, en une opération de ces mêmes n variables, complémentées, répondant aux organigrammes SERIES. r = a ou b non r = non a et non b Dans ce cas, pour retrouver le résultat r de l'opération d'origine, il faut complémenter la "lecture" du résultat. II en est de même dans le chemin inverse SERIE-PARRALLELE. La figure 37 montre le schéma électrique qui en résulte: la ligne est maintenue au niveau "UN" par une résistance de rappel (303) L'initialisation est implicite par solution Matérielle (Hardware). Une nouvelle configuration de base de la fonction test apparaît en figure 38: -La sortie déterminante "reg out" (212) de l'inverseur en période de calcul est positionnée au niveau "ZERO" dans la mesure où seules les opérations répondant au principe des organigrammes SERIE sont effectuées sur la ligne de donnée. -Le registre (216) conditionnant initialement la nature du test n' évolue pas. -Le registre (218) conditionne maintenant le type d' organigrammes effectivement demandé par le programme et opère maintenant sur les deux systèmes de portes (219) de manière à effectuer une conversion PARALLELE - SERIE par: - La complémentation éventuelle de l'état var i* qu'aurait entraîné la fonction initiale PARALLELE, - La complémentation éventuelle de la lecture de l'état de la variable après calcul. La figure 39 montre le schéma d'une unité centrale éclatée composée de trois unités locales portant les variables intervenantes a, b et c. Les chronogrammes 40 et 41 montrent la rapidité obtenue pour la liaison anneau durant le calcul des quatre opérations logiques lors de l'impulsion d'horloge. Si une seule des variables est déterminante elle porte le potentiel de la ligne à l'état 0 quelque soit l'opération logique. Cet état sera lue au front descendant du signal d'horloge selon la fonction, par chacune des unités locales 1") Front montant de l'impulsion d'horloge -Le compteur ordinal permet le chargement des codes dans les registres code (216) à (218) de chaque fonction test, -Le compteur ordinal est incrémenté pour pointer l'instruction suivante 2") Front descendant de l'impulsion d'horloge: -Le bit résultat de l'équation intermédiaire est récupéré en lecture, -dans le cas d'un résultat intermédiaire d'état "UN", ce front provoque la relâche toute sortie "d out" à l'état déterminant et enchaine la réalisation de la part de chaque unité locale de la partie action. Une seule impulsion d'horloge est alors nécessaire au calcul entre "n" variables distinctes et réparties sur le procédé pour: - effectuer une opération logique de base, - diffuser le résultat au niveau de toutes les unités locales. 2.C.3 Emission du signal dthortoqe et statut de maître. D'une manière générale le statut de maître revient à avoir l'initiative d'échanges de données informatiques sur le bus. Comme décrit ci dessus, les données présentes sur le bus, lors de périodes de calculs d'opérations logiques, sont les résultats placés par les unités locales intervenantes et déterminantes de ces opérations. Le séquencement de ces calculs est effectué par le signal d'horloge. L'initiative des échanges est donc caractérisé par l'émission du signal d'horloge. L'unité locale maître du bus peut être à l'origine de l'émission de ce signal. Les autres unités locales seraient en réception de ce signal. Les critères d'attribution du statut de maître peuvent être nombreux. A titre d'exemple non exhaustif, on peut considérer les critères particuliers suivants: -Unité locale possédant une sortie physique qui doit être calculée. Chaque unité locale possédant une sortie physique est chargée de sa gestion La sortie est le résultat d'opérations logiques complexes décomposées en opérations logiques intermédiaires. Dans ce cas seules les unités locales ayant une sortie physique seraient successivement émettrice du signal d'horloge. - Toutes les unités locales tour à tour Le Signal d'horloge pouvant être un signal d' identification. de contrôle de présence et de bon fonctionnement. Ce critère de sécurité permet d'attribuer le statut de maître successivement à toutes les unités locales de l'unité centrale éclatée dans un ordre de préférence connu Le signal d'horloge étant de type anneau, le principe consiste à mesurer la largeur d'impulsion du signal, et de donner le moyen à chaque unité locale en état de réception du signal d'horloge, d'identifier et de contrôler le maitre du bus par rapport à la largeur mesurée. De meme, ce principe permettrait d'identifier une unité locale ayant générer une demande d'interruption et devant donc devenir maître du bus durant I' éxécution du programme interruptif. - Un Concernant une opération logique du programme le programme local implanté sur l'unité locale devra pouvoir fournir les informations suivantes 1")Adresse de la variable intervenante à tester pour placer son état dans le registre (217), 2") Code de la nature du test (216): "UN" test à UN ou "ZERO test à" ZERO", 3 ) Code correspondant à la relation de ce test avec I' opération en cours (218): "UN" test type SERIE, "ZERO" test PARALLELE. 4 ) Adresse du sous programme "Action" en cas de résultat VRAI récupéré sur la ligne de donnée. 2.C.4.b Cas de plusieurs lignes de données La figure 43 représente une configuration de huit lignes de données. Chaque ligne se comporte comme un registre binaire tel que décrit dans le ≈2.C.5.a. La figure 43 montre: (330) une unité locale, (331) l'ensemble des huit inverseurs commandés des fonctions tests, (332) l'ensemble des registres (216), (217), (218) acceptant les codes de fonctionnements des huit inverseurs, (333)1' ensemble des huit registres de lecture de l'état du bus, (335) I'unité centrale locale apportant les fonctions intelligentes, (336) I'accumulateur sur lequel l'unité arithmétique et logique (337) de l'unité centrale applique ses fonctions intelligentes, (340) mémoire globale. 2.C.5 Réalisation d' un Pronramme"qloibal" quelconque La figure 4 représente un programme global. C'est le programme qu' exécuterai une unité centrale à intelligence ponctuelle toute seule. 2.C.5.a Eclatement partie "Conditions" d'une opération logique: programme local La figure 42 reprend l'opération logique de la figure 6. En considérant que cette instruction programme éditée en langage contact constitue la "i 'émue" instruction d'un programme global. L'instruction est dans cette représentation entière ou globale, comme la lirait une unité centrale actuelle. Nota Dorénavant il ne sera plus mentionné le terme d'opération "complexe " mais d'opération "globale" Elle montre comment le programme global , au niveau de chacune de ses instructions globales, peut être réparti sur les mémoires programmes locales de chaque unité locale, en considérant qu'il y a autant d' unités locales qu'il y a de variables. Le texte "NI" signifie Non Intervenante l'inverseur est positionné de manière à ne pas placer d'état, quelqu'il soit, sur la ligne de données Les variables sont considérées comme stables pendant le calcul. La seule valeur commune à toutes les unités locales est, dans le principe, le pointeur d'instruction qui évolue à chaque impulsion d'horloge sur le bus de terrain pour pointer l'instruction intermédiaire suivant celle en cours. Les pointeurs marquent tous la première instruction locale qui constitue 1' opération logique intermédiaire devant être réalisée à la prochaine impulsion d'horloge. Cette figure montre bien ce que l'on peut entendre par les expressions suivantes: - "répartition du logiciel", - "éclatement du logiciel", - " une action conjointe des unités locales dans I' exécution du programme", - " une action collective des unités locales dans I' exécution du programme" Ces programmes locaux n'ont de sens qu'au regard de la globalité que représente le programme s' il était exécuté par une unité centrale ponctuelle. 2.C.5.b Ubiquité partie "actions" d'une opération logique Le résultat d'une opération logique complexe sur des variables de type "bit " donne un résultat de type "bit" qui, de par le principe de base de l'invention, est accessible à toute unité locale. *Le principe de détection est donc semblable à celui de la figure 19. Si lors de I' exécution d'une des instructions intermédiaires ce résultat passe à I' état " UN", ce front est donc détecté au niveau de chaque unité locale pour effectuer la mise à jour de de la mémoire globale dans chacune d'elles par exécution de la partie ACTIONS correspondante. II semble important de finir cette mise à jour avant de commencer le chargement des codes de l'instruction globale suivante dans les fonctions tests. En effet, ce rafraîchissement peut modifier une variable interne qui doit être intervenante dans l'instruction avenir. Cette partie programme présente dans toutes les unités locales peut être, contrairement à la partie "CONDITIONS", identique dans chaque unité locale de manière à rendre la mémoire globale homogène et cohérente. L'instruction globale suivante sera éxécutée après I' exécution de la partie ACTIONS. II faut distinguer deux procédures possibles d' exécutions des actions au niveau de chaque instruction globale 2*C,5.b.1 Exécution d' "ACTIONS" de manière collective par la fonction test. La figure 44 montre le programme qui effectue le transfert d'un mot MO dans un mot Mx, tous deux étant de la mémoire globale La figure 45, montre le programme équivalent qui réalise la fonction "ET' entre les mots Mi-Mm d'une table de mots et qui charge ce résultat en Mx, tous en mémoire globale. En général, dans les fonctions de base, une opération sur mot sera d'autant plus rapide que le nombre de lignes sera important et que la fréquence d'horloge sur le bus sera élevée. Les opérations de base contribuent "naturellement à l'homogénéité" de la mémoire globale dans la mesure où il y a systématiquement diffusion. Toute fonction logique globale de type combinatoire ou séquentielle est en fait réalisable par le moyen du bus externe par exemple: L' équation de la somme entre deux bits de rang n dans un mot de huit bits, et de leur retenue Rn en fonction de la retenue R n-l éventuelle de la somme des deux bits de rang (n-l) s'écrit: Sn = (an XOR bn) non R n-1 OU (non (an XOR bn) ET R n-1) la retenue résultant de cette somme est: Rn = ( (an XOR b, ) ET R n-1 ) OU (an ETbn) Comme le montre la figure 46 qui représente une fonction "additionneur complet" entre deux bits, programmés en langage contact et exploitable par le principe de l'invention, le nombre de coups d'horloges devient vite très important si cette fonction est réalisée sur le bus pour effectuer la somme de deux mots. Si l'on considère six opérations logiques intermédiaires par couple de bits intervenants il faut donc au moins: - quarante huit coups d'horloge pour effectuer l'addition des deux mots de huit bits sur un bus comprenant une seule ligne de donnée, - six coups sur huit lignes ect... Le phénomène empire avec la multiplication de deux mots. II faut trouver d'autres solutions qui permettront de réaliser les actions plus complexes plus vite. 2.C.5.b.2 Exécution d' "ACTIONS" de manière locale par chaque unité locale. Bien qu'optimisée, la circulation de données sur le bus peut être moins rapide que les traitements effectués sur le bus interne d'un micro ordinateur. Le rôle de I' unité centrale locale (230) figure 30 est vis à vis de l'invention, de foumir à l'unité locale la possibilité de disposer de fonctions intelligentes et locales telles que celles d'un micro ordinateur. La fonction ainsi remplie par l'unité centrale locale va dans le sens de la remarque faite dans le ≈1.B.3.C qui consiste à éviter le multiplexage d' une même fonction pour toute opération dans les unités centrales actuelles. La figure 47 représente deux unités locales qui effectuent chacune de leur côté la somme des deux mots mO ,et m1 et la place dans le mot mx. Les différentes mémoires globales évoluent de manière séparée. Les moyens de vérification de l'homogénéité sont limités durant l'opération elle même. Le synchronisme des unités locales dans ce travail n'est assuré que par les vitesses typiques d' exécutions semblables. 2.C.5.b.3 Exécution d' "ACTIONS" de maniére locale et collective Cette méthode consiste donc à mixer les deux méthodes - le calcul par l'unité centrale locale, - le calcul par la fonction test, de manière à sécuriser et à synchroniser les opérations que représentent les actions. Pour reprendre I' exemple de l'addition entre deux mots MO et Mulet du chargement du résultat dans un troisième Mx identique ou non à MO ou Ml, il est possible d'envisager le cas suivant parmi d'autres: Les figures 48, 49, 50 représentent le séquencement des opérations au niveau de chaque unité locale dont seulement deux sont représentées. - Réalisation au niveau local , par toutes les unités centrales locales, de la somme M0+ M1 dans leur accumulateur respectif donnant ms ( figure 48), - Réalisation de la diffusion de ms par une seule unité locale (par exemple l'unité locale maître), et préparation dans les autres unités locales de la comparaison de ms avec le mot mr reçu (figure 49), -Mise à jour de la mémoire globale si la comparaison est bonne ( figure 50). Les possibilités de procédures de contrôle sont nombreuses et ces trois figures ne constituent qu'un exemple non exaustif -L'impulsion d'horloge au niveau du bus qui effectue la diffusion de ms a pour effet de synchroniser toutes les unités locales dans la réalisation de cette action que représente la somme de MO+MI. 2.C.5.c Détection de la fin d'une opération globale. Une opération logique globale est constituée d' une ou plusieurs opérations logiques intermédiaires qui répondent au principe des organigrammes éclatés. Le principe de décomposition ici choisi a été fait de manière à ce que les résultats intermédiaires soient tous le résultat définitif de l'opération logique globale. Ainsi la fin d 'une instruction complexe est détectée par: - La présence d 'un résultat "UN" sur l'un des résultats intermédiaires quelque soit la valeur du compteur ordinal et après exécution de la partie ACTIONS correspondante, - La détection de I' état du compteur ordinal de code qui correspond au dernier code de l'instruction complexe lorsque ce dernier a été exécuté et que le résultat correspondant était de niveau "ZERO" 2.C.5.d Scrutation cyclique d'un programme. La figure 51 montre le cycle de scrutation d' une unité centrale éclatée. Le temps de réalisation de mise à jour des mémoires images des entrées (350) ainsi que le temps de mise à jour des sorties physiques (351) de l'unité centrale éclatée, reste dans le principe indépendant du nombre d'entrées sorties qui équipe l'automatisme. En effet, chaque unité locale étant équipée de son entrée ou de sa sortie TOR, les rafraichissements des mémoires images (350) et (351) sont donc fait simultanément par chacune d'entres elles Une diffusion de l'état de chaque capteur dans toutes les unités locales revient à écrire un programme représenté figure 52. Le temps de réalisation d'un tel programme augmente avec les facteurs suivants: - Nombre faible de lignes de donnée sur le bus externe, - Nombre d'entrées important, - Basse fréquence d'horloge sur bus externe. C'est ce que montre la figure 53 dans lequel on effectue la diffusion sur le bus des n capteurs. Dans le cas d'un bus exteme à une seule ligne de données cette procédure est difficilement envisageable. L'intérêt d'une telle diffusion est très relatif dans la mesure où il ne conceme que l'accessibilité par un opérateur de maintenance à I' état de toute entrée depuis chacune des unités locales. Des solutions intermédiaires, plus sélectives qu' un transfert massif, peuvent être réalisées. Cependant, des technologies de bus peuvent foumir des opportunités de bus avec un grand nombre de lignes de données, notamment la fibre optique et les technologies de modulation radio dite "complexe" Les calculs d' expressions logiques combinatoires des programmes représentés figures 44, 45, 52 peuvent être effectués en même temps par groupe de 8, 16, 32 voir 256 calculs intermédiaires, réduisant les temps d' opérations à quelques impulsions d'horloge. 2.C.6 Signification du terme "Proqramme". Par programme il faut entendre une suite d'opérations exerçant toute sorte de tâche à partir du moment où il est possible de la faire exécuter par une unité centrale éclatée. Notamment tout programme ou partie de programme d' instructions informatiques comprenant: - une partie "Conditions", représentant des opérations logiques modélisables par des organigrammes de type parallèles ou série, - une partie "actions" Notamment peuvent être pris en considération: -Tâches dites globales ou programmes dit "Principaux" scrutés cycliquement ou en temps réel -Sous programmes appelés par tous les artifices possibles notamment les artifices logiciels ou matériels telles que des interruptions, Dans la mesure ou l'on permet au principe de base d'une unité locale de générer une demande d' interruption vers toutes les autres unités locales et de permettre ainsi à chaque unité locale de: - Signaler la prise en compte de l'interruption - Sauvegarder l'état des registres avant I' exécution du nouveau programme, - Identifier l'unité locale ayant générer l'interruption notamment par signal d'horloge", - Acquérir les codes du programme demandé correspondant, - Initialiser le compteur ordinal et différents registres en début du nouveau programme, - Parcourir et récupérer les résultats du programme ainsi appelé, - restituer les états précédents des registres et reprendre le programme initial là où il a été interrompu. 2.C.7 Taches spécifisuement locales. De même chaque unité locale peut être équipée de fonctions intelligentes locales permettant d'effectuer des fonctions très spécifiques. Une partie des données numériques mise en jeu et modifiée par ces fonctions spécifiques notamment des consignes, des seuils, des valeurs mesurées ect..., peut elle aussi faire partie de la mémoire globale du procédé et intervenir dans le processus de fonctionnement de l'unité centrale éclatée. Ces tâches spécifiques peuvent être de toutes catégories notamment: - Mesure et conversion Analogique - Digitale ou Digitale -Analogique, - Communication vers d'autres unités locales éclatées ou d'autres systèmes informatiques centralisés, - Mesure d' axe ou régulation, - Affichage de données, - Saisie de données sur clavier ect.. 2.C.8 Technologies pour la fonction test et le bus exteme. Etant donné que le principe de base de la fonction test de l'interface au bus est réduit au fonctionnement d'un inverseur commandé, on doit considérer toutes sortes d'applications possibles permettant de résoudre des opérations logiques répondant au principe des organigrammes éclatés. A titre non exhaustif on peut considérer que la fonction test telle que décrite dans cet exposé peut être exécutée dans toutes les technologies pouvant réaliser un inverseur commandé, telles que notamment: - Pneumatique, - Hydraulique, - Electrique sous forme de relais statique ou dynamique toutes dimensions, - Electronique en technologie discrète ou intégrée, - Radio par le moyen d'émission réception sur plusieurs canaux de toutes fréquences, modulations par phase, amplitude ou complexe - Informatique où il est possible d' émuler ou de simuler le fonctionnement d' inverseurs par des systèmes informatiques commandant des portes logiques toutes technologies, - Lumière avec Emetteur-récepteur de lumière au spectre de fonctionnements différents, - Sonore par le moyen d'émission réception. 2.C.9 Autres signaux véhiculés sur le bus exteme En plus des signaux minimum nécessaires au fonctionnement en unité centrale éclatée, peut être ajouté de manière non exhaustive les lignes suivantes: Signaux" INT' et/ou"NMI" de demande d'interruption masquable ou non masquable permettant I' exploitation de programmes interruptifs, Signaux de recherche de type jeton, Signaux de changement de mode tel que passage du mode RUN au mode STOP, Signaux de sécurité pouvant geler l'activité de toutes les unités locales ect.. 2.C.10 Puissance de calcul de l'interface au bus La puissance du bus est directement liée au nombre de lignes de données et à la fréquence d'horloge du bus. Un système à "n" lignes permet de résoudre en une seule impulsion d'horloge "n" opérations logiques intermédiaires. 2.C.11 Technolonie du bus en radio L'emploi des émissions réceptions par modulation dite "complexe" permet, en modulant en même temps phase et amplitude, de véhiculer des informations codées sous la forme de 1 parmi 8,16, 32 voir 256. Cette technique répond particulièrement au besoin de multiplier les lignes de données de manière a accroître le potentiel de calcul. La figure 54 représente un vecteur électrique modulable en amplitude et en phase. La figure 55 représente un diagramme d'émission réception avec 32 points de modulations caractéristiques de phase et d'amplitude de ce vecteur. Chaque point représente une donnée codée sous la forme de 1 parmi 32, soit sur 5 bits. La figure 56 représente une unité locale (400) dont le bus est assuré par ce type d'émission réception. L' unité locale est équipée d' un système émetteur récepteur (402) assurant le codage (403) de l'état du bus externe à l'émission, ainsi que son décodage (401) à la réception Le bus de 5 signaux est donc codé ou décodé juste au niveau de chaque unité locale L'émission d'une telle modulation sur plusieurs canaux permet d'énormes combinaisons possibles de type de bus sur le plan du nombre de lignes de données ou de contrôles. La figure 57 montre une unité centrale éclatée sans bus matériel. 2.C.12 Réseau entre unités centrales éclatées La figure 58 montre un exemple d'unités centrales éclatées installées sur chacun des postes (501) d'un procédé et reliées entre elles sur un réseau de hiérarchie supérieure (502). Le superviseur (500) est chargé de la gestion de I' ensemble. REVENDICATIONS 1") Réseau informatique à logique programmée ou montage à logique câblée, caractérisés par le principe qui consiste à effectuer des opérations logiques entre plusieurs variables intervenantes dispersées par le moyen de fonctions "test", dont chacune est accessible en entrée et configurable par une seule de ces variables intervenantes, et dont la sortie respective prend I' état du résutat de I' opération logique en cours que si la variable intervenante correspondante détermine entièrement ce résultat. 2") Réseau informatique à logique programmée ou montage à logique câblée caractérisés selon la revendication 1, par le fait que les parties matérielles qui réalisent les fonctions test sont en relation entre elles par des connexions de type point à point ou de type anneau, constituant ainsi l'éclatement de l'organigramme de type parallèle ou série que représente I' opération logique en cours et formant ainsi le support d information de son résultat. 3 ) Réseau informatique selon la revendication 2, caractérisé par le fait que les parties matérielles assurant les fonctions test, les fonctions intelligentes et la fonction mémoire données globale ne sont plus uniques, géographiquement ponctuelles et compactes, mais multiples, géographiquement réparties et portées par des unités locales (126) et dont les liaisons entre les fonctions "test" constituent une partie du bus externe. (cf 1.C.1) 4 ) Réseau informatique selon la revendication 1 et 2, caractérisé par le fait que r exécution de chacune des instructions de la partie "CONDITIONS" du programme global résulte des éxécutions simultanées et conjointes, par les fonctions "test", des programmes locaux implantés sur les unités locales intervenantes.( cf 2.C.5) 5 ) Réseau informatique selon la revendication 4, caractérisé par le fait que ces programmes locaux permettent le calcul de l'état logique du résultat de la partie "CONDITIONS" de chaque instruction du programme global, et que celui ci apparaît sur une ligne de donnée du bus pour être accessible aux fonctions intelligentes locales de toutes les unités locales qui en exécuteront la partie "ACTIONS" correspondante ( cf 2.C.5.a). 6 ) Réseau informatique selon les revendications 5 et 2, caractérisé par le fait que la réalisation de la partie "ACTIONS" de chaque instruction du programme global, engendre I' ubiquité totale où partielle de la mémoire données globale sur toutes parties matérielles assurant cette fonction ( caf ≈2.C.5.b). 7 ) Réseau informatique selon les revendications 1 et 2 et 6 ,caractérisé en ce que le bus peut être réalisé au moyen de systèmes de communications radio utilisant des modulations de types complexes (cf ≈2.C.8 et ≈2.C. li).