FR 2730077 A1 19960802 FR 9510571 A 19950904 La présente invention conceme l'architecture et le fonctionnement d'un réseau informatique industriel ou domestique devant effectuer des opérations de contrôle commande. Elle fait référence à la demande de brevet déposée à L'INTI de Marseille sous le numéro 95 01338. 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ées. Ils permet -tent de considérer un ordre autorisant un fonctionnement sûr du principe d'unité cent -rale éclatée. Aucune conclusion ne doit être tirée des choix quant aux positions des états de repos ou de travail des contacts ou équivalents ou quant au choix de logique positive ou negativeou quant au choix des fronts de signaux montant ou descendants qui ont ou quant au choix des fronts de signaux montant ou descendants qui ont permis la réali -sation de cet exposé. 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 dynamique des systèmes.. Les figures 1, 2 et 3 font ressortir les aspects matériels et logiciels dont un système de contrôlecommande est actuellement équipé pour remplir ses fonctions. 1 LES UNITES CENTRALES ACTUELLES 1 A ASPECTS MATERIELS Cette description schématique veut montrer qu'il est nécessaire de mettre en place une "logistique de transport de l'information", très lourde sur le plan du matériel, 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éalisation des procédés automatisés. La figure 1 fait apparaître le synoptique d'une unité centrale (1) avec ses interfaces d'entrées (3) et de sorties (2). 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 "boîte de jonction", dans lequel se trouve un bomier (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 dans laquelle le câble (17) entre et se divise sur le bomier (t8) 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 par les moyens suivants: - Des conducteurs unifilaires (21) issus des interfaces de sorties (2) attaquent un étage d'interface de puissance (4). Cet interface de puissance voit ses sorties transmises par des câbles unifilaires (5) vers un bomier (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, qui y est installée, et 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 unité 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 &commat;&commat; " 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 contrôlecommande 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 à l'unité centrale n'est pas possible ailleurs que dans son armoire électrique, distante du point d'intervention. 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 fig.1 sont remplacés par des connexions infonnatiques (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 maîtrisés et c'est souvent le paramètre de "distance" qui en est le facteur déterminant. 1.B ASPECTS LOGICIELS La description schématique qui suit veut 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 La figure 3 schématise les trois phases principales qui constituent le "cycle" de l'unité centrale représentée en figure 1 ou 2 ainsi que les parties de la mémoire RAM auxquelles elle a accès pour réaliser ie programme. 1 ère phase (50): 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). 2éme phase (53): 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 (51) sur l'évolution de l'automatisme jusqu'aux tâches les plus générales (52). 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 (52) corres- -pond habituellement aux calculs des actions qui seront attribués aux actionneurs. 3éme phase (54): 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 (3). Le temps nécessaire à l'unité centrale pour effectuer ces trois phases s'appelle le " temps de cycle". Il 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 salutation des entrées et les actions qui en découleront en fin de cycle. La présente invention a pour objectifs, tout en assurant le principe de cohérence expo- -sé précédemment, de: - réduire les temps de réalisation et la mise en place de la logistique de transport d'infôhation 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. - éviter l'emploi des matériaux couteux car spécifiques aux contraintes denvironement sévères et d 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 système de contrôle et de commande jusqu'au niveau des capteurs et actionneurs. - faciliter la mise en parrallèle de plusieurs circuits de commande pour des objectifs de sécurité de continuité de services où tout autres raisons.. - rationnaliser la distribution élèctrique, 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. la figure 71 représente un moteur électrique qui peut être démarré ou arreté individuellement au niveau d'un coffret local contenant uniquement sa ligne de protec -tion et une unité locale Son alimentation serait prise sur conduite modulable et suspendue dans les hauteurs du site pour le desservir. Les différents coffrets locaux des récepteurs s'y connecterait par boitier à protection électrique adaptée embrochable. La possibilité de bouton supplémentaire sur ce coffret , visant un automatisme plus complet ( Bouton poussoir marche, arrêt, signalisation marche manuelle en locale....) y est adaptable. L'installation est alors " claire "et sécurisée , facilement "condamnable" par des isolements de sections très ciblés et permettant des coupures d'urgence rapides et efficaces réduire les temps de scrutation des entrées ,de mise à jour des sorties1 et de permettre des calculs rapides. Elle consiste à éclater l'unité centrale représentée dans les figures 1 ou 2 en un nombre d'unités locales disposées au niveau des capteurs et actionneurs sur le procédé. Cet éclatement est tel que le "centre fonctionnel " que représente l'aspect lo -giciel ne soit plus localisé en un point précis "centre géographique" mais soit réparti au plus près des sources d'informations d'entrées et des destinations des informations de sorties. L'intelligence artificielle de l'activité de ces unités locales résulte d'un travail simultané et cohérent de toutes les unités locales. Cet éclatement est rendu possible par les par -ties matériels et leurs fonctions qui équipent chaque unité locale - La strudwe de l'interface au bus exteme et les calculs qui peuvent s' y effectuer. - La répartition du programme entre ces unités locales de manière à permettre I' actualisation de la mémoire donnée globale du procédé et la maintenir adaptée aux besoins de maitenance dans chaque unité locale. - La gestion des signaux de contrôle présents sur le bus permettant la coordination du réseau. La figure 4 schématise la structure du réseau que constitue une " Unité Centrale Edatée" . Les unités locales (73) sont situées au niveau des capteurs (76) et au niveau des actionneurs (78) et sont pourvues d'un espace interface de puissance (70). Toutes les unités locales communiquent par un bus exteme (100). Le procédé est repéré (77). La figwe 4 est une représentation extrême dans la mesure où un seul capteur ou actionneur est connecté à son unité locale. Une structure plus simple que cette dernière, mais suffisante pour fonctionner sous son principe est aussi concevable. Notamment pour plusieurs unités locales devant être si proches sur le site qu'elles seraient preassemblées dans un boîtier pourvu de la même connectique externe au bus qu'une unité locale, et dont la fonction serait de remplacer le bus exteme par le moyen de pistes matérielles intemes. 2 L'UNITE CENTRALE ECLATEE 2.A ASPECTS MATERIELS 2.A.a Structures de principe de runité locale L'unité centrale " édatée " est ainsi constituée d'un ensemble d'unités locales (73) figure 4. Les principales parties d' une unité locale sont représentées dans la figure 5: - (100) Ensemble des lignes du bus véhiculant les signaux de commandes et de données qui permettraient le synchronisme des unités locales et la circulation des donnees. - (110) Interface de l'unité locale au bus, - (120) Unité de contrôle du bus, - (130) Unité centrale locale, - (140) Bus interne de donnée, de contrôle, et d'adresse - (150) Port de communication. 2Aa1 Structure de l'lnterface au Bus Exteme de l'unité locale La figure 6 représente le synoptique de l'interface au bus externe de l'unité locale: (101) Porte de lecture sur bus, (102) Porte de transparence de l'unité locale au bus (103) Porte d'écriture sw le bus du contenu du registre de sortie (105) Registre de sortie "Reg out' (106) Registre de lecture " Reg in", (107) Commande " gout" d'écriture sur le bus, (108) Commande " g in " de lecture sur le bus, (111) Borne de sortie d'une ligne de donnée sur bus exteme, (112) Borne d'entrée d'une ligne de donnée du bus exteme, (114) Mémoire "codes" (115) Mémoire" données" (116) Compteur "code" (117) Registre de commande devers l'unité de contôle. (118) Mémoire pré-code. 2.A.a.2 Structure de l'Unité de Contrôle La figure 7 représente le synoptique de I' unité de contrôle de l'unité locale: (160) Logique d'accès au bus, (126) Compteur ordinal, (128) Registre de "recherche ", (129) Buffer de resultat "intervenant", (129 b) Mémoire "intervenant". 2axa3 Structure de I' Unité Centrale Locale La figure 8 représente le synoptique de l'unité centrale locale: (131) Buffer chargement de codes locaux vers interface au bus, (132) Mémoire application, (133) Mémoire données, (134) Ligne de sortie en direction de l'actionneur, (135) Ligne d'entrée en provenance du capteur, (136) Interfaces des entrées-sorties, circuits de comptages et de temporisations, Conversion analogique -digitale et vice versa, (137) Interface sérielle, (138) C.P.U, (139) Générateur d'horloge, (141) Tampon "résultats" interface bus exteme. 2.Ab Structure du Bus Externe 2au.1 Signaux minimum déservant les Unités Locales. La figure 9 représente les bomes de l'unité locale des supports signaux et données du bus externe: (111) Bome de sortie "D out " d'une ligne de données sur bus exteme, (112) Bome d'entrée " D in" d'une ligne de données du bus exteme, (121) Bome du signal de demande d'interruption de l'unité locale" int", (122) Borne du signal d'horloge programmable bidirectionnel "CIK', (123) Bome du signal type "jeton" "Select in" d'entrée représentant la proposition de relais en tant que maître du bus de l'unité locale précédente, (124) Bome du signal type "jeton" "Select our' de sortie, passage de la proposition de statut de maître à l'unité locale suivante, (125) Borne du signal indicateur bidirectionnel de fin de calcul sur le bus par l'unité local (126) Masse. 2A b.l Connections entre unités locales La figure 10 représente les liaisons permettant la circulation des différents signaux sur le Bus Externe. II faut remarquer: Les liaisons type "anneau" sur lesquelles les unités locales sont connectées au niveau des bornes correspondantes. Ce sont les supports des signaux Clk, Int, Res OK, Sécurité dont les niveaux logiques peuvent être modifiés par une des unité locales et la masse Gd. Les liaisons type "Point à point" qui correspondent aux supports de signaux Select out, Select in, D out, D in. 2.B ASPECTS FONCTIONNELS 2.B.a Modes de fonctionnements de l'interface au bus La figure 11 donne le tableau déterminant les états des trois portes représentées repère (101), (102) et (103) figure 6, en fonction des entrées "gin" (108) figure 6, "gout " (107) figure 6. La figure 12 schématise le mode de "TRANSPARENCE" où l'état de l'entrée "D in" est reproduit sur "D out". La figure 13 schématise le mode état d' "éCRITURE" où l'état du registre "Reg out" (105), figure 6, est reproduit sur "D out". Le mode de "LECTURE" peut être effectué quelque soit les deux autres modes. La technologie de ces portes n'a pas d' importance dans la mesure où elle permet le fonctionnement du principe. D'une manière générale, il faut entendre par "Porte" tout système capable de laisser passer ou de bloquer un signal binaire quelque soit la technologie qui le génère, la forme, la nature, la porteuse ou toutes autres caractéris -tiques de ce signal binaire. Notamment en matière de radio communication où la notion de "porte ouverte" pourrait être assimilable à un couple émetteur-récepteur non accordés et la notion de "porte fermée" pourrait être assimilable à un couple émetteur recepteur accordés ou de même par l'emploi des types de modulations numériques. Les figures 14, 15 et t6 montrent, à titre d' exemples, des structures éventuelles que peut prendre la ou les ligne(s) de données (220) du bus exteme sur une unité centrale éclatée. II sagit principalement d'une boucle où un certain nombre d'unités locales sont "intervenantes"(223) en mode écriture et d'autres y sont "non intervenantes"(221) en mode" transparent". L'unité locale (222) , figure (16) est "étrangère" à l'activité représentée par le fait qu'elle se trouve en mode transparent uniquement. La figure 14 représente une diffusion d'une donnée par l'unité locale (223) et la saisie de cette donnée par les deux autres unités locales. La figure 15 représente une boucle pemettant aux unités locales de se contrôler mutuellement par une circulation de trames de contrôles sur le bus. La figure t6 représente une boucle pemettant à I' unité locale (224) de passer une donnée à l'unité locale (225). 2 a1 Test élémentaire L'informatique permet de réaliser des fonctions logiques programmées notamment des fonctions base telles que ET (figure 17), NON ET (figure 18), OU (figure 19), NON OU (figure 20). Comme le montrent ces figures elles représentent un enchaînement "successif" de tests de variables dites d' "entrée" qui sont ici limitées au nombre de deux :"a" et "b". Chaque test est un aiguillage qui conduit le processus: - soit à exécuter d'autres tests - soit à positionner la ou les variable(s) de sortie dite(s) "résultat" dans un état logi -que déterminé ("c" dans ces exemples). Avant d'expliquer la notion de "test élémentaire", les observations suivantes doivent hêtre faites sur les figures 25, 28, 31 et 34. Ces figures représentent des programmes de fonctions logiques de base qui sont réalisés à 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 nombreuses 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é (301) figure 25. Le test de l'état ZERO est représenté par un contact barré (302) figure 28 La figure 25 représente le "cablage programmé" d'un "ET' logique entre deux grandeurs binaires "a" et "b"et dont le résultat est placé dans la grandeur "c". La figure 28 représente le "câblage programmé" d'un "NON ET' logique entre deux grandeurs binaires "a" et "b"et dont le résultat est placé dans la grandeur "c". La figure 31 représente le "câblage programmé" d'un "OU" logique entre deux grandeurs binaires "a" et "b"et dont le résultat est placé dans la grandeur "c".. La figure 34 représente le "câblage programme" d'un "NON OU" logique entre deux grandeurs binaires "a" et "b"et dont le résultat est placé dans la grandeur "c". Cette représentation des quatres fonctions logiques de base permet de comprendre plus vite les organigrammes des figures 21, 22, 23 et 24. En effet il faut simplement comprendre le raisonnement suivant: -Entre deux "contacts" disposés en série, si l'un d'eux est à l'état ZERO le résultat est entièrement défini par cet état -Entre deux "contacts" disposés en série, si l'un d'eux est à l'état UN le résultat est entièrement défini par l'état de I' autre variable. De même et inversement: -Entre deux contacts disposés en parallèle, si l'un d'eux est à l'état ZERO le résultat est entièrement défini par I' état de l'autre variable. -Entre deux contacts disposés en parallèle, si l'un d'eux est à l'état UN le résultat est entièrement défini par cet état Chaque résultat d'une fonction logique de base entre les états de deux grandeurs binaires est entièrement déduit par l'état logique d'une des deux grandeurs. II est donc possible d'obtenir le résultat d'une fonction logique entre deux grandeurs en effeduant le test d" une seule des deux variables dont les deux issues seront de transférer dans le résultat I' état logique, complémenté ou non selon le type de test et la fonction, de la variable testée ou non testée Ceci nous amène à réduire les organigrammes des figures 17, 18,19 et 20 à ceux des figures 21, 23, 22 et 24. Cette manière de procéder pose la grandeur "a" comme "indéterminée" au complément près et considère seulement l'influence de l'état de la grandeur "b" sur le résultat de la fonction qui les lient. Chacune de ces figures représ -ente le comportement d'un "registre test " chargé de l'état de la variable "b" et configuré selon la fonction liant les grandeurs "a" et "b". Plus généralement, les figures 37 et 38 nous permettent de comprendre comment il est possible de connaître, I'état du résultat "r (n)" après le test du contact " n" compte tenu du résultat "r (ne1 )" obtenu après le test du capteur "ne1 " Les figures 21, 23, 22, et 24 seront appelées des "tests élémentaires". 2 boa2 Fonctionnement de I' interface au bus Les portes (101) et (102) de part leur structure, réalisent la fonction de " test élémentaire pouvant effectuer les fonctions logiques de bases entre une grandeur "a" indéterminée présente à l'entrée "D in" et la grandeur "b" portée par l'unité locale équi -péedecesportes. Les figures 26, 29, 32 et 35 montrent comment une interface d'unité locale, sur laquelle est déclarée une grandeur "b", réalise l'une de ces fonctions par les chargements de l'état de la seule grandeur "b" testée, complémentée ou non selon la fonction et le type de test, dans ses registres: - de commande "g out' (107) figure 6; - de sortie "reg out" (105) figure 6. Les tables de vérités figures 27, 30, 33,et 36 montrent que, pour un état donné des variables, celui qui correspond à l'état du résultat est orienté sur la sortie. Cet aiguillage qui correspond à un "test élémentaire" n'est fonction que de l'état de la grandeur "b" et de la fonction logique qui la lie avec la grandeur "a". En schéma "contacts" les figures 25, 28, 31 et 34 en relation avec les figures 26, 29, 32 et 35 montrent par le contact "b"en gras ou le type de test, quel type de test et quelle fonction logique de base ou "câblage programmé" les chargements des registres "g out" et "reg out" de l'interface entraînent: La figure 26, test à UN en" ET" ou "Série" "g out" = b, "reg out'= b. La figure 29, test à ZERO en" OU "ou "Parallèle" "g out" = b, "reg out'= non b. La figure 32, test à UN en " OU "ou "Parallèle". "g out" = non b, "reg out"= b. La figure 35, test à ZERO en "ET' ou "Série". "g out" = non b, "reg out"= non b 2 a3 Réalisation de fonctions logiques sur le bus La figure 41 et la figwe 42 montrent la réalisation de deux petites fonctions logiques avec des unités locales représentées seulement par leur système de portes, et connectées par lew bornes Dout et D in suivant le schéma de la figure 10. Comme il I'a été dit plus haut, la ligne de données du bus constitue une boucle dont les unités locales remarquables sont -L'unité locale "initiale"(312) ou (31 0) qui ne fait que placer I' état de sa variable interne, complémentée ou non, sur sa sortie "D out " et dont la position des portes (101) et (102) est commandée par l'état "inactif' selon la figure. On peut dire que l'unité locale "initiale" "ouvre" sytématiquement la boucle. -L'unité locale "finale" (314) est la première unité locale où I' état du résultat est disponible sur sa sortie "D out" et accessible aux entrées "D in" de(s) I'unité(s) locale(s) suivante(s) (315) jusqu'à l'entrée" D in" de l'unité locale intiale (312). La figure 41 montre comment les unités locales "initiales" et "finales" peuvent être confondues, auquel cas le résultat est accessible à l'entrée" D in " de l'unité locale (310) seulement Toutes les unités locales (315) et (316) sont "non intervenantes" dans la fonction logique, et 1' état de leurs portes (101) et (102) est commandé par l'état actif selon la figure 11. Seules les unités locales (315) peuvent avoir le résultat final sur leur entée "D in". La figure 41 réalise un ET entre les grandeurs "a" portée par l'unité locale (310) et "b" portée par l'unité locale (311). La figure 42 réalise une fonction ayant pour expression [ (a OU b) ET non c] entre les grandeurs "a", portée par l'unité locale (312) et 'b" portée par l'unité locale (313) et c portée par l'unité locale (314). Nota: Pour des raisons de commodités d'explications des schémas avenirs: -Les unités locales auront le même "nom" que les variables dont elles seront chargées d'effarer le test élémentaire. -Les bornes étudiées de l'unité locale seront "indicées" par la lettre de la grandeur portée. -II sera employé le terme de variable "portée" par une unité locale. exemple : "g in c" = commande de lecture de l'unité locale "c" devant faire le test élémentaire de la grandeur "c" ou recueillir un résultat en "c" 2B.a4 Séquencement Calcul-Diffusion 2.B.a4.1 Principe de calcul logique d 'une unité centrale actuelle. La figure 40 schématise le fonctionnement des circuits électroniques au coeur du microprosseur d'une unité centrale actuelle, concernant les différents tests et opérations successifs qui y sont exécutés pur réaliser le programme source de la figure 39. Nous constatons que le processus fonctionne avec un seul "test élémentaire" qui se configure selon le type de test exigé par la fonction programmée à chaque étape. Nous y retrouvons les étapes déjà mentionnées, à savoir: 1) Adressage des grandeurs en mémoire donnée (410) . 2")Stockage de leur état dans la pile (411) dans l'ordre dans lesquels ils sont programmés. 3 ) Déchargement séquentiel (412) de la pile dans un registre "test" dont les circuits électroniques sont configurables pour pouvoir réaliser les fonctions "ET',"OU". . selon l'instruction du programme en cours d'exécution et dont le résultat est récupéré dans un registre "r". Ce registre, après chaque étape, prend les états successifs rO, rl, r2 et r3. 4 ) Sauvegarde (413) en mémoire quand la pile est vidée. Pour exécuter ces étapes l'unité centrale classique exécute un programme que l'on peut schématiser par la figure 45. Il sera comparé ultérieurement à celui présent dans chaque unité locale au niveau des interface au bus et schématisé par la figure 46, pour mettre en évidence le principe de la répartition du logiciel dans l'unité centrale éclatée. LB.a4,2 Principe de calculde l'unité centrale éclatée: La figwe 43 met en évidence l'éclatement de la partie matérielle. Elle représente une unité centrale éclatée constituée de cinq unités locales, sur chacune desquelles est déclarée chacune des variables constituant le programme représenté par la figure 39. En admettant dans un premier temps les hypothèses suivantes: - Le signal d'horloge est généré par l'unité locale "c" (320) qui est ici et pour l'instant l'unité locale dite " résultat - La configuration de la boucle que va prendre la ligne de données pour la réalisation de cette ligne de programme, commence par exemple, à partir de l'unité locale (321) située géographiquement juste après l'unité locale résultat (320). Le résultat sera disponible sur l'entrée Din de l'unité locale résultat "d' (320). - Le cycle des opérations est ici réalisé sur deux impulsions d'horloge. A la première impulsion d'horloge: L'unité locale "c" charge UN dans "gout c" et passe en mode TRANSPARENT. L'unité locale "a" charge l'état ZERO dans "gout a" et l'état de "a" dans reg out a. L'état de la grandeur "a" passe en "Dout a". Ce chargement est équivalent au premier chargement du registre "r" d'une unité centrale dassique décrit cidessus et représenté figure 40. L'unité locale "e" charge l'état de "e" dans "gout e" et l'état de "e" dans" reg out e", et provoque l'apparition du résultat ("a" ET "e") en "Dout e".Ce résultat est équivalent au registre "r" en l'état de rl d'une unité centrale dassique décrit cidessus et représenté figure 40. L'unité locale "d" charge l'état de "d" dans "gout d" et l'état de "d" dans "reg out d", et provoque l'apparition du résultat (( "a"ET "e")ET "d") en "Dout d". Ce résultat est équivalent au registre "r" en l'état de r2 d'une unité centrale classique décrit cidessus et représenté figure 40. L'unité locale "b" charge l'état de "b" complémenté dans "gout b" et dans "regour"' b" et provoque l'apparition du résultat "r" = ( ( ( "a" ET "e") ET "d")ET I b) en "D out b" et donc en "Din c" de l'unité locale c. Ce résultat est équivalent au registre "r" en l'état de r3 d'une unité centrale classique décrit ci-dessus et représenté figure 40). A la deuxième impulsion d'horloge: L'unité locale "c" lit la donnée résultat "r", stabilisée sur "Din c" et la diffuse sur la ligne de données. Cette diffusion peut s'effectuer en plaçant le résultat sur "reg out c" et l'état ZERO sur le "g out c". Toutes les autres unités locales se disposent en mode lecture et transparent , permettant ainsi à la donnée résultat d'être accessible à toutes les unités locales. De ce fonctionnement ressort le fait que le registre "r" et la pile schématisés dans la figure 40 sont ici remplacés par les bomes de sorties "D out" de chacune des interfaces intervenantes au bus correspondant aux variables entrant en jeu dans l'expression logique. C'est cette analogie qui fait penser à un éclatement de l'unité centrale. Toute opération arithmétique réalisée à partir d'une machine informatique, est composée d'opérations logiques semblables. Le principe de cette "structure en boude" du bus exteme et des différentes interfaces pouvant ainsi s'y connecter, peuvent donc donner lieu aussi à des opérations arithmétiques telles que des transferts de donnée: des décalages, des multiplications, des additions. des comparaisons, des concaténations ect... Renwrque importante pour le B.a.4.2: Une boucle doit donner le résultat d'une opération logique entre plusieurs grandeurs portées chacune par une unité locale Il faut concevoir dans des systèmes plus importants, lors d'un calcul d' une expression logique l'existence d'unités locales ne devant pas intervenir dans cette expression. Elles doivent alors se configurer en mode transparent pendant le premier cyde calcul diffusion quitte a opérer une lecture pendant la phase Diffusion. XB. a4.3 Chrnnoarammes secuencement des données Par "données" il faut entendre les grandeurs d'entrées et de sorties qui sont liées par une fonction logique. La figure 47 montre les deux schémas de principe qui représentent les deux phases: La phase "Calcul "est réalisée pendant la première période du cycle Clk (Clk 1). Le résultat est disponible en "D in c > ' sur le bus externe. (b* signifie la possibilité de charger l'état de b complémenté). La phase "Diffusion "est réalisée pendant la deuxième période du cycle Clk( Clk 2). Le résultat est lu par I' unité locale" d'l et son programme local lui permet de le passer immédiatement en "reg out c". La figure 48 montre le chronogramme de séquencement de ces opérations sur une unité centrale éclaté représentée figure 47 et constituée de trois unités locales qui réalise la fonction (a ET b)et met le résultat en "c". La figure 49 représente la réalisation d'un OU entre les grandeurs "a" et "b". II faut noter que si les opérations ( a ET / OUl...fNON OU b) ont respectivement les memes résultats que les opérations ( b ET I OUI.. ION OU a) , la configuration des portes n' est plus identique. L' étude ici considère comme "prudent " le fait d'attendre la deuxième impulsion d'horloge pour effectuer la lecture et la diffusion. II faut bien différencier le signal d'horloge du bus et celui de l'unité locale. Le signal d'horloge du bus doit tenir compte des temps de réponses des portes: des impédances de support de données en ce qui concerne le temps de calcul, et le temps d'acquisition de la donnée de "D in c" dans "reg in c" ect... . Tandis que le transfert de "Reg in c" après lecture du résultat sur D in c , dans "Reg out c" est fait par l'horloge interne de l'unité locale qui peut se permettre d'être plus rapide. 2.B.a4.4 Chronogrammes des signaux de commandes interfaces La figure 50 représente le séquencement des états logiques des signaux de com demande durant le cycle calcul- diffusion. Signaux représentés: - g out i - registre de commande des portes "Transparence /Ecriture"(l02),(1 03) figure 6 de toute porte appartenant a la boude et intervenante dans le calcul, - D in c: entrée D in de l'unité résultat portant la grandeur résultat c, - g in c :commande de la porte "Lecture" (1û1) figure 6 de l'unité résultat portant la grandeur résultat c, - Reg in c:Registre de lecture de l'unité résultat portant la grandeur résultat c, 4 out c :registre de commande des portes "Transparence fEcriture"(t02), (103) figure 6 de l'unité résultat portant la grandeur résultat c, - g out x: registre de commande des portes "Transparence lEcriture"(102),(103) figure 6 de toute porte appartenant à la boude et n'intervenant pas dans le calcul, - ginxl i :commande de la porte "Lecture" (101) figure 6 de toute porte appartenant à la boude intervenante ou pas, exceptée l'unité résultat c, - D out x I D in x état des différentes lignes entrées-sorties des unités locales de la boucle. Zone A: chargement des commandes de sortie de toutes les unités locales. Les unités locales non intervenantes se disposent en mode transparent ("G out x "=ACTI F). Les unités locales intervenantes se disposent et chargent l'état de leur grandeur portée sur leur commande de sortie "G out i". Ce temps est fonction des différents temps de réponse du bus, des portes et autres retards.ct... Zone B: Signaux de commande stabilisés à l'état de la grandeur chargée et attente de la stabilisation du résultat. Zone C: Résultat stabilisé sur D in c et lecture par l'unité locale "c" : transfert de "D in c" dans "reg in c". Zone D: Préparation de la phase diffusion. "G out c" passe à l'état inactif pour passer l'unité locale en mode Ecriture sur bus, tandis que toutes les autres unités locales se disposent en mode transparent pour opérer la diffusion("g out i" ="g out x" = ACTIF) . Zone E: "G out c" est stabilisé, le registre d'entrée "Reg in" est chargé dans "reg out c". Zone F: Commande de lecture des portes G in x Il, saisie de la donnée présente sur le bus. Zone G : Fin de cycle. 2B.a4. Conclusions sur le principe de l'interface 1 ) Dans une unité centrale éclatée, sur une ligne de données du bus exteme et à un instant donné matérialisé par une impulsion d'horloge, le bus exteme peut etre le siège du calcul d'une fonction logique de base dont le nombre de grandeurs intervenantes est au plus égal au nombre d'unités locales connectées sur ce bus 2") Durant le calcul de cette fonction de base, le bus exteme est une boude ouverte dont les deux extrémités correspondent: - d'une part, à la ligne du signal "D out " de l'interface dont l'unité locale initiale porte la première variable intervenant dans la fonction logique et dont l'état logique est celui de cette variable complémentée ou non. - d'autre part, à la ligne d'entrée "D in" de l'unité locale finale qui porte la variable résultat. 3") Entre ces deux extrémités, les interfaces au bus des différentes unités locales, ne placent sur le bus l'état complémenté ou non de leur variable portée, que si celui ci définit entièrement le résultat de la fonction Dans le cas contraire elles se disposent en état de transparence au bus exteme et laisse passer le résultat précédent 49) Durant ce calcul et dans la boude correspondante, chacune des interfaces a présent sur son entrée "D in", le dernier résultat partiel de la fonction logique effeduée par l'unité locale située géographiquement juste avant elle.. Conséquences: Les temps dadressages effectués séquentiellement et repérés (410) figure 40 et les temps de calculs repérés par les étapes (411) figure 40 d'une fonction logique de base, sont effectués par toutes les unités locales intervenantes en même temps pour leur propre variable intervenant dans la fonction. 2iras Notions de calculs à boucles muitiDles, de résultats intermédiaires. de résultat définitif et de puissance de calcui du bus Les fonctions logiques qui gèrent un automatisme sont souvent des combinaisons de fonctions logiques de base. La figure 51 représente une fonction OU exclusif entre deux variables "a" et "b" dont le résultat doit etre chargé dans la variable "c". Cette fonction est donc composée de trois fonctions de base: - Deux fonctions "ET" - Une fonction OU entre les deux précédentes. Telle qu'à été étudiée la ligne de données du bus exteme jusqu'à maintenant, un seul coup d'horloge ne suffit théoriquement plus à pouvoir foumir le résultat définitif. En effet, le programme doit: - Configurer une première boude de calcul de manière à trouver le résultat "intermédiaire" (705), et mémoriser le résultat dans une unité locale résultat notamment l'unité locale "c" sans le diffuseur. - Configurer une deuxième boucle de manière à trouver le résultat "intermédiaire" (706), - Mémoriser le résultat dans une unité locale résultat notamment l'unité locale "c" sans le diffuser L' unité locale "résultat" "c" doit effectuer le OU logique entre les deux résultats intermédiaires et le diffuser sur le bus exteme. Trois impulsions d'horloges sont donc nécessaires. D'autres possibilités sont envisageables comme par exemple. les unités locales a, b et c se configurant en trois boudes successives: - I'unité locale "a" comme unité locale résultat dans la première boucle où les unités locales "a" et "b" composent (a ET non b), le résultat disponible au niveau de "Din a" - I'unité locale "b" comme unité locale résultat dans la deuxième boucle où les unités locales "a" et "b" composent (non a ET b), le résultat disponible au niveau de "Din b", Qes unités locales "a" et "b" composent un OU entre les deux résultats intermédiaires dans la troisième boucle avec l'unité locale c comme unité locale résultat pour le resultat définitif. II apparaît que chaque boucle constitue la résolution d'une des équations logiques de base. La puissance de calcul du bus est donc directement liée aux paramètres suivants: - aux nombres de boucles qui pourront être configurées sur une seule impulsion d'horloge, - à la fréquence d'horloge au regard des temps de réponses des portes et de l'impédance du support aux hautes fréquences. Les paramètres qui interviennent comme contrainte évidente dans la formation de ces boucles supplémentaires sont: - L'aspeCt "matériel" que représentent les fils du bus, en l'occurrence les lignes Din Dout et Dout-Din comme le montre la figure 10, -La position géographique des unités locales sur le bus externe sachant que la présence de mêmes unités locales dans des boudes différentes est impossible telle que se présente l'interface jusqu'à ce moment de la description. Les paramètres qui suivent constituent des solutions éventuelles aux problèmes soulevés et ne peuvent constituer une différence dans le principe de fonctionnement de l'unité centrale éclatée: 1) Signaux de contrôle schématisés "res ok" (125) figure 9 (résultat bon). La figure 9 montre que le signal "res ok" est bidirectionnel . Il permet à chaque unité locale qui a le rôle de recueillir un résultat, d'avertir toutes les autres unités locales que le premier résultat intermédiaire qui définit entièrement le résultat est le résultat définitif en mettant un niveau actif sur cette ligne de bus. La figure 52 montre trois types de résultats intermédiaires: Le résultat intermédiaire 710 qui sera résultat définitif s'il donne une valeur ZERO. Dans le cas contraire, le résultat intermédiaire (720) ou (730) sera résultat définitif dès que l'un des deux résultats aura donné la valeur UN. Remrarque: Une solution peut encore concister à traiter les deux résultats intermédiaires suivants: [(720) + (710)] et [(730) + (710)1. Le résultat définitif serait alors détecté par les unités locales, par le moyen du changement d'état de la ligne de contrôle du bus, type "res ok" (125) figure 9, provoqué par l'unité locale "résultat ". Les conséquences de ce changement d'état du signal seraient: - D'opérer une configuration de boucle permettant la diffusion de ce résultat par le passage en mode transparent-lecture de toutes les unités locales, exceptée celle ayant la fonction d' unité locale "résultat" devant se trouver en mode Ecriture, - De figurer parmi les conditions de I' incrémentation des compteurs ordinaux de chaque unité locale afin qu'elles puissent pointer la même instruction globale suivante ( problème sera traité ultérieurement), - De déclencher éventuellement, le fonctionnement d'un signal de ligne type "jeton" (123) et (124) figure 9 devant rechercher la prochaine unité locale "résultat" qui doit devenir maître du bus. r > Nombre de sous-boucles que pourrait constituer une ligne de données à un instant donné. Comme le schématise la figure 53 avec ses trois sous-boudes (740), (750), (760), dans le cas où la structure de i'interface au bus externe plus complexe dans ses aiguillages le permettrait, notamment par l'emploi d'émetteurs-répteurs radio qui pourraient, par simple accord de fréquence, constituer des boucles et sous boudes de manière à regrouper les seules unités locales qui interviendraient dans les calculs des résultats intermédiaires. Les techniques modemes d' émission sur spectre étalé ou multi fréquences permettent certainement à une même unité locale de faire partie de plusieurs boucles. 3e) Le nombre de lignes qui pourraient constituer le bus de données permettent ainsi d'effectuer plusieurs résultats intermédiaires ou définitifs à la méme impulsion d'horloge. 4") Lignes permettant un haut débit d'informations par des fréquences d'horloge les plus élevées possible. Les chronogrammes de la figure 54 montre l'emploi du signal "res ok" dans deux calculs quelconques dont l'unité résultat "c" est celle portant la variable résultat "c". Le temps 1: une première boucle correspondant au calcul d'un "OU" obtient un résultat intermédiaire sur din c de niveau ZERO , la diffusion n'est pas lancée. Le temps 2: une autre seconde boucle correspondant au calcul d'un "OU" obtient un résutat intermédiaire de niveau "UN' sur din c. II est validé en mettant le signal "res ok" au niveau actif. Les portes de lecture sont toutes rendues actives de manière à acquérir le résultat diffusé sur le bus. Ici "res ok" est actif par niveau bas. Le temps 3 représente une autre boucle d'une autre équation à boucles multiples dont, pour des raisons de simplification, I'unité résultat est encore celle qui porte la variable "c". Le résultat intermédiaire correspond à un ensemble de variables liées par une fonction du type (710) figure 52. Dans ce demier cas le résultat définitif de niveau "ZERO" est trouvé de suite. XB b Principes de l'unité centrale éclatée Les deux grands principes découlent de la manière dont l'unité centrale actuelle est édatée dans toutes ses parties matérielles. Ces deux grands principes sont: Répartition du programme Ubiquité de la mémoire donnée globale Jusqu'à présent, le fonctionnement de l'interface au bus nous a montré comment une expression logique complexe constituée de tests élémentaires, pouvait être résolue par un ensemble d'unités locales agissant simultanément. Le fait de la répartition du programme apparaît déjà en comparant les figures 45 et 46. La figure 45 représente une portion de mémoire programme que doit lire une unité centrale actuelle pour exécuter l'instruction représentée figure 39. XB.b.1 notion de codes locaux, d'instruction globale. La figure 46 représente la disposition des codes dans les mémoires (114) figure 6 des interfaces de chaque unité locale intervenante de la figure 43, pour que globalement l'instruction représentée figure 39 soit éxécutée. L'expression logique représentée par la figure 39 est donc répartie sur quatre unités locales. Le résultat est attendu sur l'unité locale "c". Chaque unité locale réalise le "test élémentaire" de la variable portée et intervenant dans l'expression figure 39. Cette expression représente une Ninstuctiion globale" La logique câblée et configurable des portes par ces codes fait que ces tests sont réduits aux seuls chargements de registres avec l'état , complémenté ou non, de la grandeur portée. Cet éclatement montre bien comment ces codes "locauX' implantés sur les unités locales, ne leur permettent pas d'exécuter des programmes "autonome" mais apportent leur "participation" élémentaire à la cohérence de l'exécution de l'instruction globale en cours portée par l'ensemble des unités locales. De plus ces "codes locaux" peuvent correspondre aussi bien à des "données" telles que des états de capteurs, qu'à des commandes de porte pour un état déterminé de leur position. Cela suppose que les différents "compteurs codes" figure 46 dans l'interface au bus, dont le rôle consiste à assurer le suivi des codes en cours, pointent sans arrêt sur le "code local qui fait bien partie de "I'instruction globale" en cours telle qu'est schématisée la ligne de programme figure 39. Mais l'instruction globale peut concemer des "variables résultats" beaucoup plus complexes qu' un seul "bit" représenté sur les schémas jusqu'à présent. Une variable résultat peut être de type matériel: Bit, état 1 ou O... Octets 8 bits Traitements sur mots.... ect Une variable résultat peut être de type logiciel: Compteurs Temporisateurs ect.. Tables de longueur variable ect... De plus, une expression logique peut donner lieu à la modification de plusieurs de ces variables. I' interface telle qu'elle est constituée, pourrait faire de tels traitements mais au détriment d'un temps d'éxécution pénalisant par des problèmes de nature des supports, bande passante ect.....) Cette contrainte obliqe à concevoir un traitement réduit à sa plus simple expression sur le bus. La figure 63 montre l'exemple très succinct d' un programme source en langage "contacts" réalisé par un automate programmable. La figure 64 montre comment ce programme est éclaté et réparti dans une unité locale. On constate que chaque instruction globale se décompose en deux parties verticales: -Les parties (811) et (813) correspondent aux "conditions" d'éxécution des actions se trouvant dans les parties (812) et (814). -La mémoire (115) figure 6 et figure 64 est une zone mémoire donnée située dans I'interface bus. -Le tampon (141) figure 8 et figure 64 correspond à un espace mémoire de méme taille situé dans l'unité centrale locale. Le séquencement calculs-diffusions de l'interface réalise seulement les parties "conditions" (811) oulet (813) du programme global en cours. Les résultats sont placés dans la mémoire (115) de chaque unité locale. La mémoire donnée interface passe ensuite dans ie tampon (141) de chaque unité centrale locale pour qu'elle puisse y traiter les actions. La manière dont se réalise le synchronisme de ces différentes étapes sera vues dans le chapitre 2. B. b. d. Modes de fonctionnement d'une unité centrale édatée. Les parties (812) et (814) correspondent aux "actions", c'est à dire aux modifications qui sont apportées à la mémoire globale eti ou à la mémoire image des sorties. Elles peuvent être toutes écrites au niveau de la mémoire programme de chaque unité centrale locale. La mémoire donnée globale qui se trouverait concentrée en un endroit géographique dans une unité centrale de type actuel serait alors présente intégralement dans toutes les unités locales pur une unité centrale éclatée. Des configurations plus souples sont envisageables. Elles seront détaillées dans le paragraphe 2.B.b.d.. A titre d'exemples, on peut déjà s'apercevoir sur la figure 64, de quelle manière travaille les unités locales pour résoudre les instructions globales numéro d'ordre 4 et numéro d'ordre 8. Exemple 1: instruction globale n" 4. Les unités locales, intervenantes dans la boucle de calcul, sont: 4' unité locale "niveau haut", 4' unité locale "auto". Les opérations se déroulent selon les tâches suivantes: a) La tâche locale: Calcul dans I' unité locale "niveau haut" du ET logique de l'expression: (mO ET Niveau haut) = rO -Lecture de l'état du sélecteur auto pour I' unité locale " auto" b) la tâche globale: Réalisation d'une boude de calcul avec les deux unités locales portant respectivement rO et "auto". La grandeur résultat sera dans l'unité locale "auto", par exemple. diffusion du résultat à toutes les autres unités locales permettant d'actualiser leur zone mémoire (115) correspondante. Pour une même instruction globale ces tâches ne sont pas consécutives. Exemple 2: instrudion globale n" 8 Celle ci dépareille dans la mesure où elle correspond au seul test du capteur "retour de marche pompe 1". La phase de diffusion est indispensable et donc prioritaire pour l'homogénéité de la memoire globale. II en résulte qu'il faudra mettre l'état de "retour Ppe 1" sur le bus pour que toutes les unités locales puissent effectuer, après diffusion, l'anêt ou la continuité de la teiriporisation de T1 dans chaque unité locale. Remarque: Cet exemple fait apparaître les problèmes suivants: Les horloges et les programmes d' actualisation des valeurs courantes dans chaque unité locale doit se faire de manière à ce que la valeur courante soit identique dans chacune des unités locales. 2B.b.2 Programmes alobaux et Application. Par extension du terme "instruction globale", il sera employé dans la suite de cet exposé le terme de "programme global"( représenté par la figure 63). Un programme global sera une suite "d' instructions globales" devant être éxécutées les unes après les autres. Cette éxécution mettra en jeu des groupes d'unités locales disposées en boudes successives sur la ou les lignes de données et comprenant à chaque fois une unité locale dite "résultat" . Dans cette définition, il faut inclure les programmes d'interruptions de sub-routine ou sous programmes diverses qui sont eux aussi des suites "d' instructions globales", et dont les procédures de réalisation ne différent pas les unes des autres, exceptées les phases de leur mise en exécution à partir d'un programme initial ou du retour au programme initial .Tous ces programmes font partie de l'application pour laquelle is ont été réalisés. La position en mémoire de ces programmes pourrait se trouver notamment dans l'unité centrale locale dans quatre zones différentes: La zone 1 correspondant aux codes locaux qu'il faudra envoyer à l'interfaces correspondantes pour effectuer la partie (811) figure 64, La zone 2 correspondant aux codes des sous-programmes qui constituent les actions à effectuer sur la mémoire globale en fonction des résultats de la partie (811) renvoyés par l'interface correspondante. La zone 3 correspondant aux codes locaux qu'il faudra envoyer à I' interfaces correspondantes pour effectuer la partie (813) figure 64. La zone 4 correspondant aux codes des sous-programmes qui constituent les actions à efFectuer sur la mémoire image des sorties en fonction des résultats de la partie (814) renvoyés par l'interface correspondante. Dans la mesure où les codes locaux correspondent aussi à des données du type état de capteur, il semble normal de positionner la mémoire code au niveau de l'unité centrale locale. En effet, celle gère par ses interfaces (136) figure 8 la lecture des états de ces capteurs. Cette lecture d' ailleurs peut être faite en temps réel au point savoir la zone mémoire image de chaque unité locale sans arrêt rafraîchie et de ne considérer la mémoire image des entrées de l'unité locale comme une mémoire donnée interne. 2.B.b.3 Occupation mémoire des codes locaux Une "instruction globale" ne conceme pas seulement les unités locales portant les variables intervenantes mais aussi toutes celles connectées au bus et qui n'interviennent pas dans la relation qui la constitue. Ces dernières devront lire un code local adequat devant s'apparenter à un "NOP" (Aucune Opération) et qui se caractérise au minimum par une mise en transparence à l'activité du bus externe durant l'éxècution de toute l'instrttction globale. Dans la mesure où les instructions globales représentent des calculs de résultats intermédiaires pour lesquels le nombre d'unités locales qui y sont intervenantes est sans arrêt différent, il s'en suit que la taille mémoire occupée par les divers codes locaux d'une même instruction globale et répartis sur les diverses unités locales, est différente d'une unité locale à l'autre. II devient alors impossible de pouvoir faire correspondre les adresses physiques des codes locaux d'une même instruction globale dans chaque unité locale par un seul compteur. 1l faut alors dans la mémoire application de chaque unité locale et pour une même instruction globale, que les numéros d'ordre de chaque premier code local correspondant soient identiques entre eux et que ce numéro d'ordre soit celui de l'instruction globale dans son programme global. II s'en suit qu'il faut donc concevoir l'existence sur chaque unité locale: 1") d' un "compteur ordinal" dont le contenu est le numéro d'ordre de "I'instruction globale" et donc identique à tout moment dans toute les unités locales d'un même bus. 2") d' un décodage d'adresse permettant de passer du numéro d'ordre à l'adresse physique des codes dans la mémoire programme. La réalisation de ce décodeur peut être une mémoire ayant le contenu du compteur ordinal sur son registre adresse et la valeur de l'adresse physique sur son registre de sortie. 3 ) d' un "compteur codes" différent du compteur ordinal et qui permet leur séquencement au niveau de l'interface. Ce demier est forcément différent dans chacune des unités locales. 4 ) d'un ensemble de signaux de contrôle et de leur procédure qui pourront faire évoluer ces compteurs de manière cohérente dans toutes les unités locales, dest à dire notamment: - Incrémentation (ou décrémentation) du compteur ordinal à chaque fin d'instruction globale. - incrémentation du compteur code pour l'enchaînement des boucles de calculs et des diffusions des résultats. 5 ) d' un moyen de contrôle permettant à chaque unité de contrôle de savoir si elle éxécute bien la même instruction globale que l'ensemble des unités locales sur le bus externe. 2BB.b.4 Situation des codes locaux en mémoire L'ensemble des codes aDpEcation concernant chaque unité locale peut se trouver notamment dans l'unité centrale locale (132) figure 8. Cet emplacement doit être partagé entre tous les programmes auxquels l'unité locale sera amenée à participer dans une "application donnée" à savoir, le programme principal mais aussi les sous- programmes, programmes d'interruptions.ct... 2 B.b.5 Situation des codes de l'instruction globale en cours. Dans la structure actuelle de l'unité locale de cette description les codes locaux de l'instruction globale en cours se trouvent dans la mémoire code(114) figure 6 de l'interface au bus de l'unité locale. 2.B.b.6 Situation des codes locaux de l'instruction globale suivante. Afin de préparer l'instruction globale suivante l'unité centrale locale "écrit" les codes dans une mémoire pré-code (118) figure 6 de i' interface au bus. 2 B.b.7 mémoire image des entrées -sorties. mémoire interne globale La mémoire donnée inteme globale est présente dans chaque unité centrale locale. Elle constitue la base de données sur laquelle leur programme s'appuie pour réaliser les "actions" (812) figure 64. Elle caractérise l'état du procédé (7) figure 4. La mémoire image des entrées n' est pas rafraîchie comme peut l'être la mémoire globale. Ceci exigerait le transit des états des capteurs par le bus exteme. C'est la conséquence de l'éclatement de l'unité centrale. L'intérêt de la structure type unité cen traie éclatée est de faire participer l'état présent des entrées à des calculs plus complexes au niveau de l'interface au bus qui modifieront la mémoire globale avec le moins d'opérations possibles. Au sein d'une unité locale la mémoire image des entrées est réduite à l'état des entrées qui y sont physiquement reliées, elle est alors rafraîchie par procédure gestion interface (136) figure 8. Celle-ci peut être faite en temps réel de manière à considérer les entrées comme une portion de la mémoire interne globale.Cependant il faut prévoir une phase exceptionnelle qui permet par le moyen d'une console ou tout autre matériel servant à la programmation de I' unité centrale éclatée, de faire en sorte que l'état d'une entrée puisse être transmis via le bus sur l'unité locale où la console est connectée. La mémoire image des sorties fait partie de la mémoire inteme globale dans la mesure où elle fait l'obiet des calculs et donc de leur diffusion respective. La procédure de mise à jour des sorties conceme chaque unité locale par procédure de gestion de l'interface (136) figure 8. tub.8 Notion d'unité "résultat" statut de maitre du bus: Evolution du ieton Emmission du signal d'horloge du bus externe L' unité locale "résultat " est systématiquement impliquée dans l'exécution d'une instruction globale, dans la mesure où l'instruction globale modifie une ou des variable(s) résultat(s) par l'équation qu'elle représente. Le maître d'un système de communication informatique est l'appareil qui est àl'initiative notamment des échanges sur ce système. L'unité locale "résultat' devant recevoir un resultat a donc toute la caractéristique d'un tel statut Sur le plan des signaux de contrôle, ce statut de maître pour l'unité locale "résultat", est caractérisé par la présence du niveau actif sur la bome de son entrée "select in" . Elle doit gérer notamment par son unité de contrôle: - I'émission du signal d'horloge Clk (122) figure 9, - le signal de fin résultat définitif ou fin d'instruction "res ok"(125) figure 9, - la passation du jeton (1231124) figure 9 en cas de fin d'instruction ou de demande d'interruption" 2eBb81 mémoire "intervenant" et buffer "intervenant" La mémoire intervenant 129 b) figure 7 est présente dans l'unité de contrôle du bus. Elle contient notamment, pour chacune des unités locales. les informations suivantes: -Pour chaque instruction globale de l'application le numéro de position sur le bus de l'unité locale qui en a le statut de maître . Cette demière information est identique dans toutes les mémoires "intervenant" de toutes les unités locales d'un même bus externe. - tout autre renseignement utile, notamment: * le(s) niveau(x) du(des) résultat(s) logique(s) donnant à un résultat le statut de "résultat définitif' pour la commande du signal "res ok" si elle a le statut de maître du bus. * Des commandes de porte de mise en transparence, en lecture ou écriture . qui serot chargés, via le buffer "intervenent", dans le registre de commande (117) figure 6. Ces demières informations sont fonctions de l'unité locale qui la porte. Le contenu d' un registre "pointeur" fonction du contenu du compteur ordinal adresse cette mémoire et charge le buffer "intervenant "(129) figure 7. Le contenu de ce buffer concerne, notamment, pour l'instruction globale suivante -Le numéro de position sur le bus de l'unité locale ayant eu le statut de maître du bus pour l'instruction globale précédente, -Le numéro de position sur le bus de l'unité locale qui aura le statut de maître du bus pour l'instruction globale suivante, -Le numéro de position sur le bus de l'unité locale qui a le statut de maître du bus pour l'instruction globale présente. Ces informations qui se recoupent permettent d'assurer les phases de changement de maître du bus. Pour l'explication qui suit il faut retenir les informations suivantes: sur le bus, c'est l'unité locale géographiquement "précédente" qui donne, par son signal de sortie "select out' le jeton à l'unité locale "suivante". Dans ce cas, c'est la "précédente" qui a les informations nécessaires dans son buffer "intervenant", pour décider de l'état de sa sortie "Select out' en cas de fin d'instruction globale. 2Bb.81 Recherche du maître Plusieurs choix sont possibles notamment: 1")Par le moyen des signaux jeton "select in", "select out " et "res ok ", 2") Par la mesure de la largeur de l'impulsion du signal d'horloge toute unité locale non maitre du bus a la possibilité de connaître l'unité locale maître en cours. La figure 56 en représente le principe. La méthode est développée ultérieurement. Bien que les deux solutions doivent coexister pour donner les moyens à l'unité centrale éclatée de détecter une anomalie, la solution de recherche par le système de jeton sera développée, car elle, semble une solution à la recherche d'une unité locale ayant généré une interruption. 2.B.b.8.z1 Méthode par évolution dujeton La figure 55 montre comment les logiques d'accès au bus (160) figure 7 de chaque unité locale respectivement "n". "n+1" "n+2" permettent la circulation du jeton et le passage du statut de maître entre elles. On supposera que c'est l'unité locale "n+2" qui prendra le statut de maître. Zone A: A l'origine, I'unité locale "n" termine son calcul: - L'unité locale "n" est maître et rend "res ok" actif. -L' unité locale "n-l" détecte le changement d'état et rend inactif son "select-out n-l" Celle ci a en effet dans son buffer intervenant le numéro de la prochaine unité locale maître "n+2". -L' unité locale "n" perd son statut de maître et provoque l'état actif sur"select out n". Zone B: -L'unité locale "n+1" détectant le niveau actif, devient maître et désactive "res ok" -L'unité locale "n+l" contrôle son statut d'intervention dans la prochaine instruction globale au niveau de son buffer: Elle n'a pas le statut de maître. -L'unité locale "n+1" rend "res o' actif. -L' unité locale "n" détecte le changement d'état et provoque l'état inactif sur "select-out n+1" Celle ci a en effet dans son buffer intervenant le numéro de la prochaine unité locale maître "r+2". -L'unité locale "n+1"perd son statut de maître et provoque l'état actif sur "select out n+?'. Zone C: -L'unité locale "n+?' détectant le niveau actif, devient maître et désactive "res oK' -L'unité locale "n+?' contrôle à partir de son buffer intervenant le statut qu'elle a pour l'instruction globale avenir: Elle a le statut maître. Elle bloque la progression du jeton en retenant "res oit' au niveau inactif On constate que le signal "res ok" produit une impulsion à chaque passage sur une unité locale. Cette impulsion fournit les informations suivantes: - Permet éventuellement d'incrémenter le registre de "recherche"dans chaque unité locale(128) figure 7 afin de connaître la position du" jeton", - Permet de faire évoluer le compteur ordinal lorsque le maître a été trouvé. La figure 57 en représente les chronogrammes. z & 2 recherche du maître par le signal d'horloge. La figure 56 montre comment toute unité locale peut détecter et aussi contrôler le numéro de I' unité locale maître du bus durant l'instruction courante. En se servant des informations des buffets "intervenants", chaque unité locale peut alors prendre la relève du statut de maître si elle doit le faire. Le principe consiste à générer des impulsions avec une constante de temps qui est en relation avec le numéro de position de l'unité locale maître sur le bus. Lors de l'apparition du signal actif de "res ok" la relève sera assurée "instantanément" contrairement à la "progression" du signal jeton. 2ac Progression du programme global réparti A chaque instruction globale, correspond une unité locale résultat alors maître du bus. Faire évoluer le programme consiste à: - rechercher le maître de l'instruction avenir, pur chaque unité local: - charger les codes locaux dans chaque interface au bus, - initialiser les compteurs codes - faire évoluer les compteurs ordinaux. 2 su1 Principaux registres et mémoires Compteur ordinal: II se trouve dans toutes les unités locales . Son contenu doit être dans chacune d'elle à tout instant le même. II se trouve notamment dans l'unité de contrôle du bus(126) figure 7 puisque c'est sa logique qui modifie principalement son état Il contient le numéro d'ordre de l'instruction globale suivant celle en cours dans le programme globale. II peut être chargé du contenu du registre de recherche(127) figure 7 dans le cas de l'exécution d'un programme intenuptif, II peut être chargé du contenu d'un numéro d'ordre d'une instruction globale correspondant à la première instruction d'un sous programme globale. II est initialisé notamment par le code local 'Yin de programme"et dans toute procédure d'initialisation devant l'exiger, notamment les remises sous tension ect.. pour effectuer des opérations de tests divers. "Mémoire intervenant" Son contenu est globalement différent dans chaque unité locale: elle contient, pour chaque instruction globale des programmes de l'application, les numéros de position des unités locales qui ont le statut de maître. Mais aussi des renseignements tels que: -les niveaux actifs que doivent avoir les résultats intermédiaires que l'unité locale porteuse peut avoir à détecter lors d'instructions globales où elle a le statut de maître - des commandes systématiques de portes dans le cas de statuts de "non intervenants" ect.. Son registre de sortie permet de faire évoluer le buffer "intervenant > '. Buffer "intervenant": Le contenu de ce buffer conceme, notamment, pour l'instruction globale suivante -Le numéro de position sur le bus de l'unité locale ayant eu le statut de maître du bus pour l'instruction globale précédente, -Le numéro de position sur le bus de l'unité locale qui awa le statut de maître du bus pour l'instruction globale suivante, -Le numéro de position sur le bus de l'unité locale qui a le statut de maître du bus pour l'instruction globale présente. Ces informations qui se recoupent permettent d'assurer les phases de changement de maître du bus. Registre de "recherche" II contient le numéro d'ordre de l'unité locale en présence du signal 'letton" II est incrémenté ou décrémenté notamment lors de la procédure de recherche d' une unité locale résultat ou de l'unité locale ayant généré une demande d'interruption. II est initialisé notamment durant les phases d'initialisation de l'unité centrale éclatée. Registre code. Il est situé dans l'interface au bus de l'unité locale (116) figure 6, II pointe la mémoire code (114) figure 6. II est incrémenté par le signal d'horloge, il est initialisé lors du chargement de la mémoire code(114) figure 6 de l'instruction globale qui va être éxéwtée. Mémoire code Elle se situe dans l'interface au bus. Elle contient les codes qui réalisent le fonctionnement sur le bus. Elle est chargée par la mémoire prévue qui représente les codes de l'instruction suivante. Ces codes représentent en fait les états des capteurs et don nées complémentés ou non, qui, une fois chargés dans les registres "reg out" et "g ou"t engendreront les calculs logiques sur le bus. Mémoire pré-code Elle se situe dans l'interface au bus. Elle contient les code de l'instruction globale suivante. Elle est chargée par l'unité cen -trale locale à partir de l'adresse physique que lui a foumi l'uni -té de contrôle qui représente les codes de l'instruction suivante. Mémoire donnée Elle se situe dans l'interface au bus. Elle contient le résultat des diffusions successives des résultats sur le bus exteme. Cette mémoire est transférée dans le tampon (141) de l'unité centrale locale correspondante pow que puisse être effectuée la mise à jourdes variables de la mémoire globale ou des mémoires image des sorties. 2 B*c.2 Evohssion du comPteur ourdirai Les figures 58 et 59 montrent comment le compteur ordinal, dans chaque unité iocale, est incfémenté lors de la fin de procédure de recherche du nouveau maître. Dans le cas d'une recherche par système jeton, il faut incrémenté le compteur ordinal que lorsque le nouveau maître a été trouvé et que les codes locaux ont été chargés. Ce chargement doit se faire pendant le niveau actif de "res ok" La première impulsion d'horloge qui arrive durant cette fenêtre est le signal qui permettra de réaliser les fonctions suivantes au niveau de l'interface: Dans toutes les unités locales: - Chargement des codes depuis les mémoires pré codes dans les mémoires codes, Qnitialisation des compteurs codes, -Evolution des compteurs ordinaux. Ces trois étapes sont repérées "A" figure 60. 3 Oloétations dB recherche des codes La figure 60 représente le séquencement des étapes. Les proportions de ces étapes entre elles ne sont pas respectées. Pendant I' excécution de l'instruction" I " sont réalisées les fonctions suivantes: ç 3.1 Par l'unité de contrôle: Etape D - Chargement du buffer intervenant à partir de la mémoire "intervenant". décodage de I' indice de l'instruction globale suivante et passation de l'adresse physique à l'unité centrale locale. Etape X: Toute autre opération ne servant pas à la présente description. 2B.c.3.2 Par l'unité centrale locale: Etape E: Lecture de l'adresse physique proposée par l'unité de contrôle pendant l'étape D. Etape F: Recherche des codes en mémoire. Etape G: Ecriture de ces codes dans la mémoire pré-code de l'interface au bus. Etape X: Toute autre opération ne servant pas à la présente description. 2 B c.3.3 Par I' interface au bus: Etape A: -Chargement des codes depuis la mémoire pré-code dans la mémoire code, -Initialisation des compteurs code. Etape B - Calcul sur le bus. Etape C - Diffusion du résultat sur le bus. Etape H: recherche du maître Cette étape peut représenté un temps important dans le cas d'une recherche par jeton. La logique d'accès au bus doit permettre des états successifs du signal "res ok " plus rapide que le signal d'horloge bus. La méthode d'identification par la mesure de largeur d'impulsion d'horloge est plus rapide. Cependant, les deux méthodes sont complémentaires dans le fait que pour pouvoir donner la possibilité à toutes les unités locales de savoir "qui est qui " à tout moment sur le bus, il faut que des procédure de vérifications puissent être effectuée pour contrôler si les séquencements se passent bien comme le demande le programme. En cas de recherche du maître par le moyen de l'horloge, la progression du jeton peut être fait par "bon" de manière à permettre la continuité du programme. XB d Mode de fonctionnement d'une Unité Centrale Eclatée Ce paragraphe prévoit les aspects des fonctionnements suivants: a ) Le fonctionnement du cyde b ) Le fonctionnement intermptif - pour l'éxécution de tâches spécifiques - pour des applications temps réel. La figure 61 représente par un grafcet le séquencement des opérations concernant la priorité de démarrage de deux pompes. La figure 62 représente l'unité centrale éclatée qui est chargée de gérer ce fonctionnement La figure 63 donne l'exemple d'un programme en "langage contacts" gérant le démarrage de deux pompes Ppe1 et Ppe2 comme le stipule le grafcet de la figure 61. Les grandeurs mO, ml, m2, m3 sont des variables internes qui représentent les étapes successives du procédé. Pour représenter des variables "résultats" plus complexes, le programme prévoit un comptage des démarrages et une mesure des temps de fonctionnement de chaque pompe. Le repère (810) regroupe l'ensemble des relations logiques qui déterminent les évolu - tions du procédé même, en fonction des niveaux et en mode automatique. Cette partie ne conceme que la mémoire inteme globale du système. Le repère (820) regroupe l'ensemble des relations logiques qui déterminent les états des mémoires images sorties . Ces relations sont fonctions des résultats de la scrutation de la partie (810). La figure 64 représente l'éclatement du même programme dans une unité centrale éclatée: Le repère (815) représente le numéro d'ordre des instructions globales. C'est le numéro que contient le compteur ordinal de toutes les unités locales pour l'instruction globale suivant celle en cours. Le repère (811) représente la partie " tests" du traitement des variables intemes à la mémoire globale Le repère (813) représente la partie "tests" du traitement des mémoires images des sorties. Le repère (812) représentent les états que doivent prendre les variables résultats "matérielles" ou "logicielles". Ces traitements ne concement que les variables intemes de la mémoire globale. Le repère (814) représentent les variables qui doivent mettre à jour les mémoires images des sorties Les parties de programme (812) et (814) sont donc situées dans la mémoire application de l'unité centrale locale de toutes les unités locales. Elles se décomposent en sous programmes repérés (821 )à (829) . II a été vu dans le paragraphe2. B. b. 1 comment le programme pouvait être réparti dans chaque unité locale. En se référant à la figure 64: 1") Les interfaces au bus des unités locales calculent toutes les parties "conditions" (811) oulet (813) de chaque instruction globale pour tout le programme. 2") Les unités centrales locales récupèrent les résultats de ces calculs dans leur tampon mémoire (141) à partir de la mémoire donnée (115) des interfaces, pour en exécuter les "actions" (812) et/ou (814). Chaque "action" constitue donc un sous programme, qui a le numéro d'ordre de l'ions 4rection globale correspondante, qui n' est scruté que dans la mesure où la "condition" oorresponsdante a donné un résultat vrai. La répartition et le contenu de ces sous programmes peuvent varier dans les extrêmes suivants: - Chaque unité centrale locale possède la totalité des sous programmes "actions" à effectuer par chaque instruction globale. Si cette solution présente I' inconvénient d'être exigeante sur le besoin en espace mémoire et en temps d'exécution ,elle permet d'avoir accès à la mémoire n'importe où sur le site. ou bien: -Chaque unité centrale possède les sous programmes qui sont justes nécessaires à la réalisation de ses tâches locales. Cette solution semble être juste dans la mesure où l'on arrive à effectuer la plupart des opérations de maintenance sur une unité locale donnée " L' exemple 1 énoncé dans le ≈2. B. b. 1 montre bien que l'unité globale "niveau haut" doit posséder l'état de la valeur mO pour pouvoir accomplir sa tâche locale: mO ET Niveau haut) = rO, en conséquence elle doit donc pouvoir calculer mO. Elle devra donc éxécuter tous les sous programmes relatifs au calcul de mO. LB.d.1 Fonctionnement normal La figure 65 donne un format du cyde de synchronisme de base qui permettrait aux unités locales d'avoir des actions cohérentes. Dans la mesure où les actions des sorties sur le procédé sont fonction de l'état de variables intemes, I'éxécution de ces différentes parties ne peut être cohérente que dans la mesure où elles sont scrutées dans un ordre bien spécifique: Dans un premier temps, mettre à jour la mémoire interne: c' est la phase Phl; Dans un deuxième temps, calculer le nouvel état des sorties: c'est la phase Ph2; En régime continu, c'est un enchaînement successif de cycles réalisant une tâche que l'on peut appeler "tàche principale" La figure 65 représente le cycle: Les étapes E1(901) représentent le fonctionnement des unités centrales locales.C'est un travail que l'on peut appeler "local" dans la mesure où toutes les informations sont présentes au niveau de l'unité locale pour pouvoir le réaliser: - La mise à jour des entrées respectives à chaque unité locale, - les fonctions logiques qui regroupent les tests de la partie (811) et qui sont repérés (816) dans la mesure où la mémoire donnée est actualisée. L' étampe E2 (902) représentent le fonctionnement des interfaces au bus de chaques unités locales qui complètent les calculs des tests (811). Elles concernent les différentes opérations qui ne peuvent pas être résolues par manque de données au niveau local. Celles- ci consistent: 1 ) à résoudre les relations logiques qui lient les résultat partiels (816), effectués lors des étapes El (901), avec les autres états de capteurs .C'est le cas pour les instructions globales n"2 et 4 qui engendreront un séquencement calcul-diffusion ?) à difFuser les résultats entièrement définies lors de la partie (811) sur le bus en effectuant un séquencement calcul- diffusion qui ne consistera qu'à placer le résultat sur le bus. C'est le cas des instructions n" 3, 5, 6, 7, 8 et 9. Les étapes Ex (903) représentent le fonctionnement des unités centrales locales qui exécutent la partie (812) à partir des résultats des "conditions" (811) trouvés. Ces tâches locales consistent donc à calculer les sous programmes repérés (821) à (829) si leur condition respective était vraie. C'est opérations modifient de manière identique la mémoire inteme global dans chaque unité locale. Les étaPes E2 (904) représentent le fonctionnement des interfaces au bus de chaque unités locales qui complètent les calculs des tests (813). Elles concement les différentes opérations qui ne peuvent pas être résolues par manque de données au niveau local. Celles- ci consistent: 1") à calculer et diffuser les relations logiques qui lient les résultat partiels éventuellement calculés dans la parties (813) avec des états de capteurs ou à calcculer et diffuser des relations logiques entre capteurs portés par des unités locale différentes. C'est le cas de l'instruction globale ne)14 2") à placer les résultats entièrement définies lors de la partie (813) sur le bus en effectuant un séquencement calcul- diffusion qui ne consistera qu'à placer I' état de ce résultat sur le bus et de le diffuser afin de metter à jour la mémoire donnée globale. C'est le cas des instructions globales n" 10,11 et 12. Les étayes El (905) représentent le fonctionnement des unités centrales locales qui exécutent la partie (814) à partir des résultats des "conditions" (813) trouvés en E 2 (904) du cyde précédent Ces tâches locales consistent à calculer les mémoires images des sorties qui déclencheront la procédure de mise à jour des sorties physiques. On s'apercoit que les étapes El (905) et ( 901) sont effectuées pratiquement à la suite et peuvent être confondues dans des tâches locales visant la gestion des entrées et sorties de chaque unité locale. Les unités centrales locales et les interfaces au bus sont complètement autonomes pendant les exécutions de leur tâche. II s'ensuit la possibilité de travailler en même temps sur les tâches locales et globales de deux cycles différents. La figure 66 représente la réparation des tâches dans le temps au niveau des deux parties que sont les interfaces au bus et les unités centrales locales qui composent l'unité locale. Nous constatons qu'il s'y déroule deux cycles en même temps décalés de l'équivalent d'une étape. 2B.d2 Fonctionnement interruptîf Parmi ce mode de fonctionnement peuvent être inclus notamment: 2.Bwd2.1 Les tâches spécifiques Pendant le travail en cycle continu les unités locales peuvent avoir à effectuer des opérations spécifiques Ces opérations peuvent être notamment, au niveau du prodédé, du comptage haute fréquence, des conversions analogique - digitale ou digi -tale - analogique ect... A partir du moment où l'une de ces opérations spécifiques déclenche une interruption qui doit actionner une sortie ou mettre à jour une variable de la mémoire interne, le cyde continu décrit ci-dessus doit être interrompu pour effectuer la procédure. Cette procédure peut passer aussi par des étapes El et E2 figure 65 de manière à ce que toutes les mémoires des différentes unités centrales locales soient actualisées. Pour une unité centrale éclatée , I'adresse du programme interruptif est fonction du numéro de l'unité locale sur le bus. Les zones mémoires où ces programmes peuvent se trouver peuvent être différentes de celles où se trouvent les programmes de la tâche principale. Le vecteur d'interruption sera donc le résultat d'une opération tenant compte de la première adresse de cette zone que modifiera le numéro de l'unité locale ayant générer l'interruption. L'unité locale qui a généré une demande d'interruption doit alors devenir maître du bus durant l'exécution de la tâche interruptive. Cette recherche peut se faire par les meme moyens que celle décrite précédemment, à savoir: - Les sigaux "jeton" et "res ok" (123 (124) et (125). - identification par le signal d'horloge émis alors par l'unité locale ayant généré l'interruption. tSd.z1.1 Recherche et identification par signal "jeton". Dans le cas d'une interruption du cycle en cours, I' unité de contrôle au bus (120) figure 5, lors de l'événement du changement d'état du signal "int" (121) figure 9, se chargerait alors de rechercher l'unité locale ayant généré l'interruption. Les signaux suivants: - "select in" (123) figure 9, - "seled out" (124) figure 9, - "res ok " (125) figure 9, - "int" (121 ) figure 9, permettent l'exécution d' une procédure de recherche possible décrite en figure 67: 1') Attente de fin d'exécution du code local en cours passage de l'état " res ok" actif pour réaliser l'accusé réception de la demande d'interruption. 2") Sauvegarde des différents états, compteurs et registres dans une zone tampon définie à cet effet au niveau de chaque partie principale de l'unité locale. 3') Procédure de recherche incrémentation du registre recherche sur chaque unité locale par "res ok" au fur et à mesure que le signal jeton est passé d' une unité locale à la suivante, et tant que le signal "int" reste actif. 4') Le signal jeton arrive sur la bome "select in" de l'unité locale ayant généré l'interruption. 5&commat;) L' unité locale interruptive bloque le processus de recherche en rendant inactif "res ok" sans passer le signal jeton sur sa bome "Select out". Selon l'autorisation d'interrompre ou non à nouveau le programme e interruptif par l'apparition d'une nouvelle demande d'interruption, le signal "int" peut être remis à l'état inactif. Pour toutes les unités locales: Calcul de l'adresse de la première instruction globale appartenant au programme interruptif avec: - le vecteur d'interruption contenant l'adresse de la zone mémoire où se trouve le pre -mier programme interruptif, - addition du compteur de recherche. -chargement dans le compteur ordinal. - décodage du résultat pour avoir l'adresse physique de la première instruction globale sur chaque unités locale, -Transfert des codes locaux à la mémoire codes de l'interface. 6") Exécution d'un ou plusieurs cycle type figure 64. 7") Détection code "Fin de programme. 8e) Acquisition des résultats du programme d'interruption. 9") Recherche de l'unité locale précédemment maître du bus avant interruption 10e) Restitution des états sauvegardés et fin d'interruption. 110 > Désactivation du signal int par l'unité locale ayant généré l'interruption. 2.B.d.21.2 Identification de l'unité locale génératrice par le signal "d'horloge". 1") procédure habituelle de fin de code en cours r) sauvegarde des états présents dans toutes les unités locales, 3") Initiative de l'unité locale ayant généré la demande en émettant une période ou demi période du signal Clk (122) pour identification de la procédure à exécuter, 4&commat;) Enchaînement identique pour le programme d'interruption au paragraphe précédent, 59) Fin de procédure d'interruption, reprise et identification du maître précédent par le moyen de I' horloge, 6e) reprise du programme précédent. La procédure d' identification du maître par signal d'horloge peut être faite de plusieurs manières: - C'est la période du signal d'horloge qui identifie l'unité locale auquel cas la constante de temps de la mesure est identique pour chaque unité locale. - Dans le cas contraire, la constante de temps va être fonction de l'unité locale émettrice. C'est la première manière qui est la plus fonctionnelle. LB.d.2.2 Exécution de programmes dits " temps réel" L'exécution de programme temps réel consiste en une procédure où l'unité centrale éclatée doit conduire ses actions au fur et à mesure que les événements caractérisépar les changements d'états des entrées se présentent. C' est alors à l'initiative des unités centrales locales, par le moyen de l'unité de contrôle du bus, que le processus est démarré. Cette procédure ramène le fonctionnement à un état permanent de veille des interruptions avec une gestion de leur priorité de manière qu'aucun événement ne soit " inaperçu. LB.e Structure de réseaux plus complexes. Les figures 68 et 69 montrent des réseaux composés de plusieurs unités centrales éclatées. Ils peuvent être reliés ensembles par des bus établissant des connexions point à point (figure 68) ou par un bus en "anneau (figure 69). Des systèmes de type "interfaces réseaux" permettent des échanges de données afin de faire fonctionner des procédés plus importants. Des protocoles altemant calculs et diffusion, semblables à ceux qui se déroulent entre les unités locales d'une même unité centrale édatée, peuvent être envisagés sur le reseau de niveau supérieur ainsi réalisé. De même, il faut concevoir des connexions vers des superviseurs de procédés afin d' intégrer ces unités centrales éclatées dans des systèmes hiérarchisés. La présente invention est destinée à remplir toutes les fonctions d'un système de contrôle commande REVENDICATIONS 1n) Réseau irifÔr,r-ue industriel ou domestique destiné à effectuer des opérations de contrôle eVou de commande et caractérisé par l'éclatement des parties matérielles et logicielles que constituent une unité de commande centralisée (I) ou (30), ses interfaces d'entrées (3) ou (41), ses interfaces de sorties (2) ou (32), distantes ou non du procédé automatisé, en plusieurs unités locales (73), disposées en réseau par le moyen d'un bus externe (100) et chacune située au plus près du ou des actionneur(s) (78) et / ou du ou des capteur(s) (76) du procédé automatisé (77) dont elles ont la gestion. 2 )Réseau selon la revendication 1, caractérisé par le fait que l'éclatement de la partie matérielle est obtenu par l'équipement de l'interface au bus (110) d'un sytème de portes inversées (102) (103) ccnmandées, équivalent à un test élémentaire configurable par la variable intervenante dans l'opération logique en cous(p17 2.B.b.1). 3 )Réseau selon la revendication 1, caractérisé par le fait que l'éclatement de la partie matérielle est aussi obtenu Par la présence au niveau de chaque unité locale d'une unité centrale locale dont les mémoires données globales peuvent être toutes identiques entre elles (2.B.b page19 ligne3). 4 )Réseau selon la revendication 1 et 2, caractérisé par le fait que l'éclatement de la partie logicielle implantée sur une unité de commande centralisée (1) ou (30) est obtenu, en première partie, par la réalisation sur le bus des instructions de la partie "conditions" (811) ou (813) par les interfaces au bus (110) des dillerentes us locales intervenantes (2.B.b.1 page18 ligne30). 5') Réseau selon la revendication 4, caractérisé par le fait que les programmes locaux implantés sur chaque unité locale, sont consués des codes qui configurant le test des variables portées par les unités locales tel qu'elles interviennent dans chacune des parties "conditions" des instructions globales du programme global. (2.B.h1). 6e) Réseau selon la revendication 5, caradérisé par le fait que la réalisation de la fonction logique que représente une instruction est effectuée conjointement et siminantanéemant par chaque unité locale qui en porte les variables intervenantes et que r état du résultat ,intermédiaire ou non, est placé sur le bus par les systèmes de portes (102) (103) et est fonction des variables intervennantes qui le déterminent entièrement (2.B.a.4.5 alinéa 3 ). 7) Réseau selon la revendication 3 et 4 et 6, est caractérisé par le fait que récment de la partie logicielle implantée sur une unité de commande centralisée (1) ou (30) est obtenu, en seconde partie, par la saisie du résultat sur le bus par toutes les unités locales, et la réalisation par leur unité centrale locale de la partie "actions" (812) ou (814), permettant ainsi I' ubiquité totale ou partielle la mémoire globale (2.B.b page19 ligne3).