FR 2481831 A1 19811106 FR 8108745 A 19810430 La présente invention concerne un système de détection et de récupération automatique d'erreur pour un multiprocesseur de commande industrielle, et plus particulièrement un système de commande complexe à multiprocesseurs ayant des possibilités de redondance pour assurer le fonctionnement permanent et un procédé industriel même en cas d'incident dans une certaine partie du système de commande De nombreux procédés industriels sont tellement complexes qu'en général la façon la plus ,économique de concevoir leur système de commande est d'utiliser un processeur central multiple, de grande dimension (CPU) qui partage le travail Une alternative the'ori##e est l'utilisation de nombreux microprocesseurs c#ble's, mais la complexité de la realîsation rend cette solution impraticable ou non souhaitable Les utilisateurs industriels de systèmes de commande mettent une grande priorité a la disponibilité des equipements de productioa utilisés pour us opérations de traitement et de commande# 7 car la commande du procédé est une mesure directe du rendement Il est souhaitable que les systèmes de commande a multiprocesseurs arrStent la production lorsque l'état du procédé ou de son système de commande n'est plus en sécurité ou n'est plus souhaitable pour une autre raison Toutefois, pour assurer la meilleure commande du procédé, il faut que le système de commande à multiprocesseur soit structuré pour éviter les interruptions inutiles du procédé De façon caractéristique, un système de commande d'erreur ne doit pas provoquer le déclenchement et l'arrêt du procédé si l'on peut remédier à l'erreur Selon l'art antérieur, la commande était doublée par une commande manuelle faite par l'opérateur ou dans le cas d'une défaillance, de la commande automatique Une autre solution a été de créer un système automatique de secours, redondant, qui est mis en oeuvre sans délai comme commande actif si un incident se produit sur la ligne de la commande automatique primaire On maintient ainsi la continuité du procédé et sa disponibilité De façon générale, ces solutions ont été acceptables pour des systèmes à unités CPU, uniques, mais ces solutions sont impropres pour des systèmes à unités CPU multiples, partagées Par exemple, dans un système caractéris tique à 4 unités CPU, même le redémarrage le plus simple sans nouvelle configuration du système exige que l'opérateur commande en séquence 12 boutons poussoirs.L'existence d'un système a unités CPU multiples, en double, sert d'élément de secours, mais ne constitue pas une alternative intéressante à cause des dimensions et du ctut d'un système multiprocesseur, habituel. L'utilisation d'un système de secours ne donne pas non plus l'avantage de la redondance inhérente qui existe dans un système multiprocesseur. Dans les systèmes de traitement de l'art antérieur, on a traité les erreurs du calculateur en arrêtant celui-ci et en le redémarrant automatiquement avec une opération de sauvegarde pour reprendre le travail si l'arrêt était occasionné par une alarme de programme par opposition à une défaillance de désactivation du circuit. Toutefois, on ne pouvait conserver aucune activité de commande en ligne pendant la récupération de l'incident du système de calculateur pour le traitement des données. L'activité selon l'art antérieur ne donne aucune solution pour assurer automatiquement la sécurité et la fiabilité de procédé très élaborées avec un système de commande de procédé industriel à multiples processeurs centraux ne comportant pas de systèmes de secours, distincts, à cause du coût prohibitif. Il est souhaitable qu'un système de commande à calculateur à multiprocesseur présente un niveau élevé de fiabilité, puisse être entretenu facilement, accepte les erreurs et, en cas d'erreur, puisse récupérer rapidement. En général, on peut prévoir des moyens de fiabilité dans le circuit du système et dans ses programmes, en partant des étapes initiales de la conception grâce à une bonne expérience de la conception, limitant les erreurs de programmation à l'aide d'une logique redondante pour les sous-systèmes critiques, et en réalisant des contrtles d'erreur disponibles pour piéger les erreurs avant que celles-ci ne puissent provoquer un incident dans le système. La conception d'une structure globale d'un système de commande à multiprocesseur. doit se faire de préférence en tenant compte de tous points de défaillance et en réalisant un équipement de secours approprié pour maintenir le fonctionnement lors d'une telle défaillance. La fiabilité et la maintenance peuvent également être améliorées par l'utilisation d'une structure modulaire aboutissant à des interfaces précis et simplifiant le développement des différents modules distincts. Alors que l'on peut réduire le temps de maintenance du système par une bonne conception et une bonne réalisation mécanique, un pourcentage notablement plus important du coût de maintenance est conservé par la recherche de la défaillance et non par la réparation. Ainsi, la très grande complexité des systèmes de production industrielle rend souhaitable un système de commande à multiprocesseur qui trouve ses propres incidents et identifie L 'équipement ou le module qui ont été défaillants dans une certaine mesure. Dans sa forme la plus étendue, la présente invention concerne un système de commande de calculateur à multiprocesseur présentant des possibilités de détection et de correction automatique des erreurs, ce système comportant au moins un premier processeur central et un second processeur central, plusieurs capteurs couplés à l'installation du système de production, un moyen pour relier les capteurs aux systèmes entrée/sortie dù premier et du second processeurs, un ensemble de dispositifs de commande pour faire fonctionner l'équipement du système de production, des moyens de commutation comportant au moins un premier commutateur pour coupler le premier système entrée/sortie au processeur central et un second commutateur pour coupler le second système entrée/sortie au second processeur central, ainsi qu'un moyen pour détecter les incidents du système de commande et assurer la récupération de celui-ci sous une nouvelle forme, comme cela est nécessaire, sans-pratiquement aucun dérangement pour le procédé, le moyen de détection d'incident comportant un système de sauvegarde à microprocesseur de commande, un moyen pour détecter l'un des divers incidents du système de commande, un moyen pour arrtter les processeurs centraux lorsque les signaux de commande du procédé sont mis à l'état de conservation, un moyen pour déclencher la commande du microprocesseur en mode de détection et de récupération d'incident du système, un moyen pour détecter l'intégrité de chaque processeur central, les processeurs centraux comportant des moyens pour définir un circuit de processeur central restructuré de façon que les tâches de commande du procédé soient chargées seulement dans le circuit du processeur central en fonctionnement, des moyens comportant une commande à microprocesseur pour faire fonctionner le moyen de commutation comme cela est nécessaire pour que seulement le circuit du processeur central, en fonctionnement, soit couplé à l'installation éxécutant le procédé, un moyen pour redémarrer le système à la fin de la reconfiguration du système de commande le cas échéant et un moyen pour remettre la commande à microprocesseur en mode moniteur à la fin du mode de détection de récupération des incidents. Selon un mode de réalisation préférentiel de l'invention, un système de commande multiprocédés selon l'invention analyse automatiquement les incidents du système et assure une récupération certaine et automatique des défaillances en les compensant. Comme le rtle principal du système de commande multiprocesseur est de contrôler et de commander un procédé, il n'y a aucune défaillance en un seul point de commande qui arrête l'activité de commande et de centrale. De façon caractéristique, les soussystèmes entrée/sortie (I/O) des processeurs ne sont pas les doubles exacts mais peuvent avoir une redondance suffisante de façon que la perte d'un système puisse être acceptée pendant de courtes durées tout en travaillant à capacité réduite. En cas de défaillance de commande, la compensation du système ou la technique de récupération sont appropriées pour l'incident et la mise en oeuvre du procédé. Tous les incidents peuvent être enregistrés et affichés, soit lorsqu'ils se produisent ou immédiatement après que le système aura supprimé I'incident. L'affichage peut être suffisant pour certains types d'incidents, en général l'impression des incidents sur du papier. Dans d'autres cas, une installation parallèle, de remplacement, est commutée automatiquement pour remplacer l'installation défaillante. Dans certains cas, un incident déclenche une reconfiguration complète du système automatique. La présente invention sera décrite plus en détail â l'aide des dessins annexés dans lesquels - la figure 1 est un schéma bloc d'un procédé industriel commandé par un système de commande multi processeur selon l'invention. - la figure 2 est un ordinogramme général montrant de façon schématique le fonctionnement séquentiel d'un système de détection et de récupération automatique d'incidents répondant à un incident du système et en reconfigurant le système de commande de façon correspondante. - la figure 3 montre le tableau utilisé par l'opérateur et qui fait partie du système de détection et de récupération d'incident. - les figures 4 - 8 représentent respectivement des ordinogrammes pour des programmes utilisés dans le système de détection et de récupération d'incidents comportant une séquence de sauvegarde, une mémoire ROM de sauvegarde, un programme de contrtle PROM CPU, un programme de secteur O et un programme de démarrage du système. En particulier, la figure 1 montre un système de production industrielle 10 tel qu'un laminoir de feuillard ou une centrale électrique. Un système de commande multiprocesseur 12 contrtle les paramètres du système 10 et assure le fonctionnement des différents dispositifs commandés tels que les moteurs, les pompes, les ventilateurs, les vannes etc dans le système 10. Les différents capteurs 13 détectant les températures, pressions, débits, vitesses, positions, grandeurs électriques ou autres paramètres, sont couplés aux processeurs par l'intermédiaire de'systèmes entrée/sortie (I/O) 14, numériques et analogiques classiques. Les signaux de commande de sortie sont couplés par les processeurs au système de production 10 par l'intermédiaire du système I/O 140 Dans ce cas, le système de commande à multiprocesseurs 12 comporte deux processeurs î6-i et 16-2 (CPU) pour partager le moniteur et la charge de commande. Ces processeurs peuvent par exemple être des unités W2500 fabriquées par la société WESTINGHOUSE.Les systèmes entrée/sortie (i/O) 14-1 et 14-2 pour le procédé sont associés respectivement aux processeurs î6-î et 16-2. De même, les systèmes d'entrée/ sortie (I/O) 18-19 18-2 sont prévus pour les processeurs 16-1, 16-2. Une unité unique de stockage en vrac 20 est commune aux deux processeurs 16-1, 16-2. Chaque processeur comporte une mémoire centrale importante (LCM) 21-1, 21-2. Des moyens de commutation appropriés 17-1, 17-2, 19-1, 19-2 assurent le couplage sélectif des systèmes entrée/sortie de procédé et de document vers l'un ou vers l'autre des processeurs. De façon générale, on peut intégrer trois ou plusieurs processeurs dans un système de commande, chaque processeur ayant son propre système entreé/sortie (I/O) de procédé et son système entrée/sortie (I/O) de document. Selon la figure 1, le système de commande particulier qui sera décrit a la possibilité d'utiliser jusqu'à sept processeurs. Ce systèmes connu commercialement sous la dénomination système PROTEUS. Une commande de sauvegarde de système (SBC) 22 est couplée aux processeurs pour asssurer la détection automatique des erreurs et la reconfiguration du système pour qu'aucun point de défaillance unique n'interrompe la commande du système. Un tableau de commande 23 permet à l'opé- rateur d'assurer la commande externe supplantant la commande SBC 22. Selon la figure 3, on dispose de diverses options pour l'opérateur, telles que des options comportant ou excluant chaque processeur et chaque mémoire LCM. Les fonctions logiques suivantes sont assurées par le circuit d'entrée du tableau en combinaison avec la programmation logique de la commande SBC; 2 - Châssis de la mémoire à noyau important (LCM) 2 - Disques pour tête fixe (FHD) 2 - Sous-systèmes dinterruption d'interprocesseur (IIC) 2 - Sous-systèmes entrée/sortie (I/O) de document 2 - Sous-systèmes entrée/sortie (I/O) de procédé 1 - Sous-système de stockage en vrac (en général bande magnétique) 4 - Modules de noyau. L'équipement est réparti suivant la configuration du système de base représenté à la figure 1. La fonction principale du système de commande est de contrôler et de vérifier un procédé. Le circuit est réalisé de façon qu'aucune défaillance en un point déterminé du système de commande n'interdise le contrôle et la vérification Une défaillance dans le sous-sys t. éme de stockage en vrac pourrait interdire certaines fonctions, ce qui peut constituer un inconvénient mais ces fonctions ne sont pas en général essen- tielles à l'éxécution des fonctions primaires des systèmes. Le circuit SBC 22 est réalisé comme indiqué à la figure 1 ; il utilise le panneau de commande 23 de la figure 3. Le panneau 23 assure les commandes externes suivantes 1. Initialisation du système - Un bouton poussoir protégé qui initialise la séquence de chargement initial. 2. Sélection de l'arrêt en option - Un commutateur qui indique au circuit SBC 22 que le chargement initial doit s'arrêter pour diverses options pluttt que pour des incidents d'utilisation normale. 3. Commutateur de sélection principale. - Un commutateur qui indique celui des deux proces seurs "principaux" qui doit titre chargé d'abord 4. Chargement à froid - Un commutateur qui commande le départ de tous les processeurs disponibles, y-compris ceux que le programme a décidé d'écarter. 5. Interdiction du chargement initial - Un commutateur qui interdit le chargement initial automatique du système. 6 Coupure de SBC - Une touche qui coupe SBC 22 du système et permet le chargement initial manuel du système. Selon le mode de réalisation de l'in Invention, le système de détection et de récupération d'incident utilise le circuit SBC 22 pour détecter une défaillance du système pour identifier la défaillance et faire redémarrer le système avec une nouvelle configuration de commande, si cela est nécessaire. L'opération de détection et de récupération d'incident n'entraîne que très peu de dérangement ou aucun dérangement pour le procédé puisque les signaux de sortie du système de commande 12 continuent de traiter le procédé comme si l'analyse automatique et la restructuration du système de commande était en oeuvre Le circuit SBC 22 contrôle le système de commande pour assurer l'arrêt, et dans ce cas les séquences automatiques du système de commande à partir de la procédure de chargement initiale en utilisant avantageusement la conception du système avec des tolérances d'incidents. Chaque fois qu'il y a un chargement initial du système, sa configuration est changée pour utiliser tout le circuit disponible. En général, le circuit SBC 22 effectue les opérations suivantes 1. Remise à l'état initial, chargement initial et démarrage distinct de tous les processeursCPU. 2. Exclusion du CPU défaillant du système. 3. Exclusion de la mémoire LCM défaillante du système. 4. Sélection automatique du chargement initial principal. 5. Système automatique de démarrage lors du branchement de l'alimentation. 6. Initialisation par horloge factive du chargement initial. 7. Chargement initial du système initialisé par l'opé rateur. De façon préférentielle, le circuit SBC 22 comporte une commande de chargement initial du système tel qu'un séquenceur logique constitué autour du microprocesseur INTEL 8080, ainsi qu'une carte d'interface de chargement initial auxiliaire (ABC) pour chaque microprocesseur CPU du système, de façon à réaliser un interface pour le circuit SBC 22 vers chaque processeur CPU. L'interface SBC pour le programme de chargement initial du microprocesseur W2500 comporte les étapes suivantes 1. Donnée de commande de chargement initial : cela comprend deux mots de 16 bits formés des données des différents commutateurs du tableau de commande et de l'état des horloges factices. Cette information arrive sur la carte ABC par un bus, dans chaque processeur 16-1 ou 16-2 2.Registre de sortie du processeur CPU - Ce registre à 8 bits est chargé par le processeur CPU principal choisi et est utilise pour masquer les processeurs CPU principal choisi et est utilisé pour masquer les processeurs CPU que le programme a déterminés comme ne devant pas être utilisés par le système Les 8 bits de cet octet sont utilisés pour initialiser une séquence de chargement initial si cela est demandé par le programme INCIDENTS TYPIQUES DU SYSTEME DE COMMZNDE POUR LESQUELS IL Y A UNE PROTECTION DE DETECTION ET DE RECUPERATION DES INCIDENTS La description suivante concerne des incidents anticipés du système et des moyens permettant de détecter les incidents et de déclencher le système de récupération Défaillance périphérique Lecteurs de cartes Processeurs d'affichage sur tube cathodique Perforateurs de cartes Imprimantes de ligne Lecteurs de bande Bandes magnétiques Perforateurs de bande Modems Lorsqu'un manipulateur détecte un état de dispositif invalide qui indique une défaillance périphérique. il essaye d'effacer l'incident par un ordrede remise à l'état initial du programme et il recommence l'opération entrée/sortie (I/O). S'il n'est pas possible d'assurer cette remise en ordre totale après un nombre prédéterminé d'essais, le manipulateur demande un programme d'applications.Ce programme notifie à l'opérateur du système qu'il y a un incident de dispositif et qu'il peut prévoir un remplacement du dispositif défaillant Cette fonction passe au niveau d'application pour arriver à la souplesse nécessaire permettant de traiter les différentes configurations du système~ Incidents entrée/sortie (I/O) du procédé Convertisseur analogique/numérique Entrées numériques Carte de pointage Sorties numériques Création principale Sorties analogiques Création a distance Lorsnutun manipulateur entrée/sortie (I/O) de procédé détecte un incident dans la partie de l'installation entrée/sortie, il essaye d'effacer l'incident par un ordre de remise à l'état initial du programme et par un nouvel essai de l'opération entrée/sortie. Si cette tentative est sans succès, après un nombre prédéterminé d'essais, le manipulateur essaye de passer à n importe quel circuit de secours'disponible. Si en essayant de nouveau l'opération sur l'installation de secours, il arrive au résultat, le manipulateur demande un programme d'application pour notifier à l'opé- rateur du système qu'il y a eu une défaillance de l'équipement principal et que l'opération se poursuit sur l'équipement de secours. S'il n'y a pas de résultat à cette tentative, le manipulateur demande un programme d'application. Ce programme notifie à l'opérateur du système qu'il y a une perte ; le programme d'application choisit de poursuivre le fonctionnement en mode réduite en reconfigurant le système ou en passant sur la commande automatique. Défaillance du sous-système entrée/sortie: Châssis entrée/sortie Cartes ICD/IBD Cartes IXE/IXR Tableau Z Cartes ITT Commandes d'intermédiaire Lorsque le manipulateur de carte ITT détecte une défaillance du bus entrée/sortie du fait que la carte ITT ne répond pas correctement, il demande un programme d'application. Ce programme notifie à l'opérateur du système qu'il y a une défaillance du bus. Il choisit de permettre au système de continuer à fonctionner à l'état dégradé à reconfigurer le système ou à passer sur la commande manuelle. Défaillance d'un disque à tête fixe Contrôleur du disque Entraînement du disque Lorsque le manipulateur du disque double détecte un mot d'état invalide du disque, il demande un programme d'application qui notifie la perte à l'opérateur du système. Le manipulateur coupe le disque défaillant du système et continue le fonctionnement sur le disque qui reste. Cette commutation pour défaillance est faite sans perte, puique les images redondantes sont inscrites sur les disques. Défaillance du bus entrée/sortie du processeur CPU Créneaux entrée/sortie Circuit d'entraînement entrée/ du processeur CPU sortie du processeur CPU Commandes intermédiaires Carte ITT Lorsque le manipulateur de la carte ITT détecte la défaillance du bus entrée/sortie du processeur CPU, il traite la défaillance comme une erreur de base du processeur CPU et de la même manière qu une défaillance d'une contrtle de fidélité du processeur. Défaillance de contrtle de fidélité du processeur Opération de base du processeur Virgule flottante Jeu d'instructions Pendant la boucle libre au cours de la tâche de calcul du cycle de travail, chaque processeur CPU éxécute un programme de vérification de confiance qui teste l'intégrité du processeur CPU Si, au cours de ce programme, on détecte une défaillance, le système prend une nouvelle configuration, automatiquement en excluant le processeur CPU suspect.Après avoir réalisé la nouvelle configuration, le système notifie à l'opérateur qu'il y a une perte Erreur de décomptage de temps (Bus entrée/sortie, demande d'accès direct à la mémoire DAMA, interruption etc...) Bus CPU Commandes du dispositif Bus entrée/sortie Si ces interruptions sont le résultat d'une défaillance de la commande du dispositif, elles traduisent des défaillances périphériques L'arrivée de ces erreurs est annoncée de façon que la nouvelle configuration puisse se faire si le nombre d'interruptions est excessif. Défaillance de l'alimentation du processeur CPU L'apparition d'une défaillance de l'alimentation du processeur CPU fait apparaître celui-ci comme un arrêt du processeur. Le processeur CPU est également défaillant pour son centrale de fidélité au redémarrage, et il ne sera pas contenu dans la nouvelle configuration du système Une interruption d'alimentation de la mémoire LCM indique qu'un châssis de mémoire LCM n'est plus alimenté. Toutefois, cela ne permet pas d'indentifier celui des ch#ssis de mémoire LCM dont l'alimentation a été coupée. Ne connaissant pas le châssis défaillant, on ne peut utiliser l'interruption comme indicateur de validation d'incident La majorité des incidents d'alimentation de mémoire LCM est le résultat direct de l'intervention du personnel de service réparant un châssis et qui n'est pas habitué au système. Si les tentatives d'accéder au noyau d'un chassie dont l'alimentation a été coupée entrain la génération d'une erreur de parité de noyau, cela est traité de façon appropriee. Violation d'instruction Lorsqu'une interruption de violation d'instruction se produit, le système suppose qu'il s'agit du résultat de l'éxécution d'une donnée. L'adresse de la violation est sauvée pour la sortie après la récupération du système. Cela est traité de la même manière qu'une erreur de programme non récupérable. Erreur de programme récupérable Lorsqu'on détecte une erreur de programme récupérable, l'opérateur reçoit la notification de la condition d'erreur et le programme qui a détecté l'erreur récupère. Erreurs non récupérables de programme Lors de la détection d'une erreur non récupérable, le système sauve le programme courant qui est en cours, la condition des différents drapeaux du système ainsi que les autres informations pertinentes au niveau de l'erreur. Puis le système effectue un chargement initial et l'information sauvée est fournie en sortie. Accrochage de programme Lorsque le programme est accroché dans une boucle sans en sortir, il fait chuter la carte ITT associée à ce processeur CPU, accroché, puis le système effectue un chargement initial et redémarre. Erreur de parité de mémoire EAU LCM Noyau Dans un système à mémoire virtuelle, il est important de déterminer l'adresse réelle de la mémoire d'une erreur de parité. Toutes les pages de noyau susceptibles d'etre interrogées doivent être supprimées rapidement du système avant qu'elles n'entraînent d'autres difficultés. Le procédé de détermination de l'adresse d'une erreur de parité varie avec la cause de l'accès à la mémoire. Dans le cas de dispositif d'accès direct à la mémoire (DMA) le processeur CPU est interrompu sur le canal du dispositif par un bit d'état du contrôleur du dispositif indiquant une erreur de parité.Le manipulateur du dispositif détermine la position de l'erreur pour le dispositif et la transfère à un programme d'erreur de parité commun avec l'adresse réelle de l'erreur. Si l'erreur de parité est le résultat de l'éxécution d'une instruction de programme ou de l'éxécution de sortie de séquence d'une demande I/C, tampon, on génère une interruption du processeur et l'adresse réelle est sauvée dans le registre provisoire. La macro-instruction d'interruption d'erreur de parité lit ces registres et passe au programme d'erreur de parité commun. On pénètre dans le programme d'erreur de parité à l'adresse réelle en deux parties, a savoir l'adresse virtuelle et le réglage cadre.Si l'adresse virtuelle indique que l'erreur de parité s'est produite dans le noyau attribué, le processeur CPU doit entre considéré comme non fiable et le système doit changer de configuration en excluant ce processeur, puisqu'il n'a pas satisfait au contrtle de confiance. Si l'adresse virtuelle était dans le noyau par tagé, le programme cusntrtle que le réglage cadre est-correct et pour le système en fonctionnement. S'il a constaté un réglage invalide, on suspecte EAU ainsi que le programme, et le processeur CPU est supprimé de la configuration du système. Si le réglage cadre est une page validée, on suppose que la page est une demande et n'est pas utilisée pour la nouvelle configuration du système Dans tous les cas, l'adresse réelle et l'utilisateur sont annoncés après la nouvelle mise en forme du système. Carte d'interruption interprocesseur Cartes IIC Bus IIC Le manipulateur PIC de chaque processeur CPU teste l'état du sous-système ICC chaque fois qu'il est utilisé ; si on obtient un état non correct, le manipulateur demande un programme d'application pour annoncer la perte et il commute automatiquement sur le système de secours. En plus' de ce contrtle d'état, chaque processeur CPU s'interrompt périodiquemen,t pour chaque sous-système. Ce contrôle de base confirme l'indisponibilité des deux systèmes et intervient pour * isoler les défaillances. Si un seul processeur CPU indique une défaillance, il s'agit probablement d'une carte TIC défaillante. Par contre, si plusieurs processeurs CPU d'un m8me bus présentent une défaillancesil est probable que le bus de la carte arbitre IIC est défaillant. Chaque fois que la configuration d'un système est réorganisée lors d'une défaillance, il faut prendre beaucoup de soins pour éviter les récupérations partielles. Comme la plupart des configurations nouvelles sont le résultat d'une défaillance sérieuse ou d'une erreur de programme, il est facile qu'un incident aléatoire se produise sur d'autres parties du système avant que l'on ne puisse détecter l'erreur. Plutôt que de risquer la poursuite du fonctionnement avec un système non fiable,ce qui pourrait endommager l'installation industrielle, il est nécessaire de rétablir le système à un état connu. Pour cela, le système se recharge initialement, de lui-même, chaque fois qu'il adopte une nouvelle configuration. Lorsqu'il est ainsi rechargé â l'état initial, le système détermine le circuit disponible et se configure en fonction de cela. La configuration du système repose sur une matrice d'incident dans le module de démarrage du système et dans la table d'état du circuit, qui est conservée dans le bloc de communication du système (SCE). La matrice de défaillance détermine l'alaternance à utiliser pour chaque processeur CPU défaillant. La table d'état du circuit est utilisée pour conserver un enregistrement des divers circuits, enregistrement qui est utilisé pour la configuration du système. Ce tableau est également utilisé pour générer le rapport d'état de la configuration du système, rapport qui est imprimé après chaque chargement initial du système. Pour assurer ce chargement initial à la nouvelle configuration, on effectue l'opération suivante A. Chargement initial simultané de tous les processeurs CPU B. Obtention de 1 K mot de la mémoire PROM C.Obtention de registres de données susceptibles d'être mises à l'état par des commutateurs externes D. Commutateurs externes d'exclusion sélective d'un processeur CPU E. Chargement initial automatique à la fin du décomptage du temps F. Sélection automatique d'un processeur principal G. Registres d'exclusion d'un processeur CPU mis à l'état par programme H. Redémarrage commandé par un programme. FONCTIONNEMENT DES SYSTEMES DE DETECTION ET DE RECUPERATION D'INCIDENT: Selon la figure 2, le circuit SBC 22 centrale les processeurs CPU 16-1 et 16-2 ainsi que le panneau comme l'indique le bloc 30. Si le bloc 32 donne un signal de chargement initial d'origine manuelle, un signal d'incident de données venant l'un des processeurs CPU î6-î ou 16-2, ou encore un signal factice d'une carte de relais factice, conventionnel, fournie par les processeurs CPU 16-1 ou 16-2, le circuit SBC 22 effectue son algorithme de détection et de récupération comme l'indique le bloc 34. Les processeurs CPU sont alors arrêtés dans le bloc 36 puisque les signaux de commande de sortie du procédé sont conservés pour éviter un dérangement du procédé. L'information d'état des relais factices du processeur CPU et les réglages faits sur le panneau 23 au moment de l'envoi de la défaillance va vers les processeurs CPU comme indiqué par le bloc 38. Chaque processeur CPU du système au moment de la défaillance est redémarré dans le bloc 4041 puis passe par le contrôle de confiance du circuit interne dans le bloc 42 et signale à SBC 22 qu'il est an ordre ou qu'il est défaillant. De façon générale, le processeur comportant le disque à tate fixe est considéré comme le processeur principal indiqué par le bloc 44 dans les systèmes de fonctionnement se déchargeant vers chaque processeur CPU, et initiali sant le système de fonctionnement après le redémarrage du calculateur initialisé -par SBC 22. Après les contrtles de con fiance des différents processeurs CPU, l'état de chacun d'eux est envoyé à SBC 22 et aux autres processeurs CPU.Si un pro cesseur CPU est indisponible pour le fonctionnement, les autres processeurs CPU déterminent de façon logique la nouvelle confi guration du système de commande à partir de la matrice d'inci dent mentionnée précédemment à l'exclusion du processeur CPU défaillant et des décisions adéquates sont prises pour les commutations nécessaires au transfert des entrées/sorties du processeur CPU défaillant vers le processeur CPU de remplacement. Dans le mode de réalisation décrit à titre d'exemple, il n'y a qu'un seul processeur CPU de remplacement mais en général on prévoit plusieurs processeurs CPU et la désignation des processeurs CPU pour le remplacement de secours entrée/sortie se fait de façon adéquate dans la matrice d'incident. Le transfert des systèmes entrée/sortie vers un processeur en alternance peut comme cela est préférable, se faire en fonction de la commutation de l'ensemble du système entrée/sortie. En variante, des parties entrée/sortie séparables peuvent être commutées sur de multiples processeurs CPU de remplacement, pour les parties respectives du système entrée/ sortie à partir du processeur CPU défaillant. Dès que les processeurs CPU ont pris le cas échéant une décision de nouvelle configuration et que les décisions de commutation entrée/sortie sont prises, SBC 22 éxécute d'abord la commutation entrée/sortie et le système de contact prend sa nouvelle configuration avec les processeurs CPU disponibles, ainsi que tous les systèmes entrée/sortie de procédé de document desservis par les processeurs CPU actifs. Les horloges factices de processeurs CPU sont alors commandées comme représenté par le bloc 48 puis SBC 22 revient en mode contrôle. Séquence SBC La séquence de fonctionnement de SBC 22 est principalement la même quelle que soit l'origine du redémarrage du système (c'est-à-dire un redémarrage manuel du programme 10A au une défaillance de réponse ITT). La séquence est représentée à la figure 40 Lorsqu'on initialise la séquence, tous les processeurs CPU du système sont remis à l'état initial les processeurs qui ne sont pas masqués par le registre de sorti-e du processeur CPU sont chargés à l'état initial par le circuit. Le chargement par le circuit charge la mémoire-tampon ROM W2500 de 64 mots dans le noyau attribué à chaque machine. On fait démarrer les processeurs CPU et le circuit SBC 22 initialise sa première horloge de décomptage. Le circuit SBC attend la fermeture du relais de défaillance du processeur principal CPU choisi. A la fin de ce délai, SBC 22 suppose que le processeur principal ou processeur maître est inopérant et il choisit le processeur principal de rechange et essaye, de nouveau un chargement initiai En supposant que le temps Ixe par L'horloge ne solt pas terminé, la seconde horloge démarre et le circuit SBC 22 attend la fermeture des relais de défaillance dans tous les processeurs CPU qui ont été démarrés A la fin du temps fixé par la seconde horloge, la séquence redémarre avec le même processeur principal CPU pour permettre l'exclusion du processeur CPU défaillant. Si le temps fixé par l'horloge n'a pas expiré, le circuit SBC 22 contrtle alors l'état de tous les relais de défaillance, fermés, et redémarre le système si l'un des relais est ouvert. Le circuit SEC 22 a les commandes exterme s suivantes 1. Initialisation du système - la mise en oeuvre de cette commande assure le chargement initial du système. 2. Commutateurs d'isolation de processeur CPU - ce groupe de sept commutateurs permet aux processeurs CPU d'autre documentés partir du système. 3. Co#smutateurs d'isolation de l'ensemble LCM - ce groupe de huit commutateurs permet l'isolation du noyau LCM en bloc et correspond a une moitié de chassies, par rapport au système. 4. Option arrêt - Ce commutateur permet la sélection d'un arrêt de diverses opérations de chargement ou l'utilisation automatique des opérations de défaut. 5. Sélection maltre - Ce commutateur permet la défini tion du processeur CPU qui est utilisé comme maître principal. 6 Remise à l'état initial du registre du processeur CPU - Ce commutateur efface le programme du registre CPU pour la commande manuelle, si bien que le pro cesseur CPU peut btre remis en service après une défaillance. 7. Interdiction du chargement automatique - Ce commu tateur interdit le chargement automatique lors d'une séquence d'incident, 8. Démarrage automatique après le branchement de l'ali mentation On a également prévu les commandes de programme du circuit W2500 et les registresEde données suivantes: 1. Registre de masquage de processeur CPU - ce registre à 7 bits est mis à l'état par une instruction IOA Il contient un bit par processeur CPU et est utilisé pour masquer les processeurs CPU qui doivent être démarrés et contrôlés 2. Registre ITT - Ce registre à 7 bits contient l'état des cartes ITT au moment du chargement initial du système.Si le chargement initial provient d'une défaillance d'une carte ITT, ce registre indique celle des cartes ITT défaillante. 30 Registre de l'ensemble LCM - Les 8 bits de données correspondent au commutateur d'isolation de l'ensem ble LCM. 4- Option stop - Ce bit de donnée correspond au commu tateur de l'option stop. 5. Martre ID - Ce bit de donnée correspond au matte couramment choisi. 6. Redémarrage IOA - L'éxécution de cette instruction fait que le circuit SBC 22 redémarre le système. La mémoire ROM de chargement de circuit W2500 à 64 mots repose sur la mémoire ROM de chargement LCM. Le code qui est normalement utilisé pour mettre à l'état les registres du tableau de défaut est remplacé par l'instruction IOA nécessaire pour charger le programme de la mémoire ROM à 1K mots de la carte ABC dans le noyau W2500 et le transférer. Une partie modifiée de la mémoire ROM standard est représentée à la figure 5. La mémoire ROM W2500 à 1K mots est chargée par le programme de chargement de 64 mots contenu dans la carte ABC de chaque processeur CPU. Ce programme commence par la vérification du jeu des instructions du processeur CPU et des modes d'adressage pour le fonctionnement correct. Puis le circuit contrôle l'unité d'adressage étendu par le passage cyclique de toutes les 256 combinaisons possibles dans chacun des huit registres de tous les 128 plans d'adressage, en vérifiant que le contenu de chacun d'eux est correct. Si une erreur est détectée pendant ce programme de contrôle de confiance, le processeur CPU s'arrête et commande son exclusion du système. Les huit bits des données d'isolation LCM sont utilisés pour masquer les zones de LCM que ce système n'utilise pas ; on cherche dans la partie restante pour trouver le noyau disponible auquel on peut accéder correctement. Cette information est utilisée pour réaliser une table d'accessibilité au noyau indiquant tout le noyau que le processeur CPU peut adresser. De façon plus particulière, le contenu de la mémoire PROM à 1K mots est chargé dans le noyau en com mençant par la position 1000 . La mémoire ROM à 64 mots laisse x le registre (P) à la position 1FFF pour éxécuter une instruc x tion DCR PO Lorsque le dernier mot de la mémoire ROM de 1E mots est chargé dans cette position, il fait un saut sur le début du programme. Ce programme contrôle le fonctionnement de base du processeur CPU, y-compris l'éxécution correcte de toutes les instructions, les sauts de désignation, les modes d'adressage et le circuit de la virgule flottante. Il assure également le passage cyclique d'un schéma de données dans chaque registre de carte sur tous les plans et assure leur lecture pour vérifier le fonctionnement EAU.Lorsqu'il détecte un incident, le processeur CPU starrête D Le registre d'isolation LCM à huit bits est une entrée utilisée pour masquer et excluer le noyau qui n'est pas à utiliser. Le programme de chargement positionne toutes les parties du noyau correctement adressées et accédées avec au moins une position pour 4K pages. Cette information est utilisée pour construire une carte d'accessibilité au noyau, carte utilisée pour déterminer la partie du noyau disponible pour l'ensemble du système. Si un processeur CPU ne peut accéder à au moins huit pages, il s'arrête. Le plan de la carte 7F du processeur x CPUest mis sur les huit premières pages disponibles, puis le programme de chargement contrôle la position 6 pour voir s'il s'agit de l'un des deux processeurs CPU, maîtres, possibles. Dans la négative, l'instruction DCR P est enregistrée dans une position de LCM et le programme saute sur cette position. Si le processeur CPU est un processeur Dlattre, il contrtle le drapeau maître choisi pour déterminer quel processeur CPU doit être utilisé comme malte Le processeur CPU qui n'est pas choisi fonctionne alors comme s'il n'était pas un processeur ma#tre. Le processeur CPU qui est choisi comme processeur maltre assure la lecture du segment suivant du programme de chargement dans le noyau (321 inférieurs) du disque et le transfère au programme. Si le processeur CPU ne peut accéder par exemple à au moins huit pages du noyau (32K mots), il s'arrête. Les plans de la carte du processeur CPU sont mis sur les premières pages disponibles Ce programme vérifie si Le processeur CPU est l'un des deux processeurs maîtres de chargements possibles ; dans la négative, il passe sur une position de LCM et attend le reste du chargement du système. Si le processeur CPU est un maître, il détermine s'il s'agit du maître choit. Dans la négative, il passe également sur une position dans LCM. Ainsi, le processeur CPU est un processeur maître, il effectue la lecture de la partie suivante du chargement du système sur un disque à tête fixe et procède comme cela est habituel pour le démarrage du système LCM. Ce programme de mémoire ROM est représenté à la figure 6. Le premier segment du disque résidant du programme de chargement est représenté à la figure 7. Ce programme est chargé et est exécuté dans la partie attribuée du noyau du processeur maître CPU. Il utilise LCM pour communiquer avec les autres processeurs CPU du système et pour cela il met un programme dans LCM et fait attendre les processeurs CPU pour éxécuter le programme. La première fonction assurée par le programme est d'avoir chaque processeur CPU passé sa table de noyau dans LCM. Puis il détermine si le circuit SCB est à la même page du noyau en contrôlant les contenus de LCM INDEX. Suivant les tables de noyau de chaque processeur CPU et la table du circuit SCB 22, on réalise une table du noyau du système. Cette table identifie toute la partie du noyau à laquelle on peut accéder par l'ensemble du système. Puis le programme met les cartes de tous les processeurs CPU aux mêmes valeurs initiales. A la suite de cela, il détermine si les processeurs CPU, corrects, fonctionnent en accord avec les réglages des registres de processeurs. Si un processeur CPU qui devrait fonctionner ne le fait pas, le registre de processeur CPU est mis à jour et un redémarrage IOA est émis. Si les processeurs CPU prévus fonctionnent, la seconde partie du disque résident du programme de chargement est mise dans le noyau. Le second segment établit le programme de chargement du système, puis charge l'image du noyau dans chaque processeur CPU. Z:INCIDENT Z:CUP, et CPU, et Z:ALT, positions qui sont modifiées dans chaque processeur CPU pour correspondre aux travaux de chaque processeur. La zone de traitement de disque est alors chargée dans le disque et on démarre les circuits de balayage de carte ILC, Puis le programme fait démarrer tous les processeurs CPU du système Ce segment du chargement est représenté à la figure 8. Pendant ce programme, il faut exercer la carte ITT du processeur maître CPU Immédiatement après le démarrage du système, le travail à priorité la plus élevée pour le fonctionnement est le programme de chargement initial du système.Ce programme se déroule dans tous les processeurs CPU et starrete automatiquement dans tous les processeurs à l'exception du processeur mature CPU La première fonction exécutée. par le programme de chargement initial est la sélection des entrées/ sorties (I/O) de chaque processeur CPU. Cela est effectué par un programme qui choisit les sous-systèmes nécessaires pour chaque processeur CPU suivant une configuration résultant du chargement initial. Le programme de chargement initial détermine l'état des différents sous-systèmes à partir de l'information dans le circuit SBC 22 Le programme de chargement initial peut éxiger des modifications d'un système à l'autre suivant les variations de circuits associés aux différents systèmes. Le programme de chargement initial est également responsable de la mise a jour de l'information sur le disque pour 8trie le reflet du contenu courant de SCIE. Le pregramme de chargement initial offre un programme d'application qui imprime le résumé de la configuration du système à la fin du chargement initial. L a réalisation de la procédure de chargement initial automatique se fait d'une façon qui ne réduit pas la fiabilité globale du système Etant donné que le circuit SBC 22 communique avec tous les processeurs CPU du système, on peut imaginer que la défaillance se traduirait par la défaillance de l'ensemble du système. Une solution pour réduire au minimum ce risque est de réaliser le circuit SBC avec une logique de vote redondante- triple et deux alimentations. Toutefois, il est préférable d'utiliser un microprocesseur programmable pour le circuit SBC 22 et un simple moyen de coupure du système en cas de défaillance. En particulier, le circuit SBC 22 se compose d'un circuit à Q-lignes normalisées, ce circuit étant programmé en langage de programmation appliqué au micro-processeur de la société WESTINGHOUSE (langage encore appelé wEMAP-8O). Cette configuration se compose des cartes suivantes dans un bottier à cartes compatible CAMAC de ligne Q, standard 1 - Carte de microprocesseur (QMC) Interface du tableau de commande 2 - Cartes d'entrée numérique (QBI) 1 - Carte de sortie numérique (QBO) Interface W2500 (par processeur du système) 1 - Carte d'entrée numérique (QBI) 1 - Carte de sortie numérique (QBO) En plus du circuit SBC, on utilise comme indiqué précédemment une carte W2500, une carte ABC qui contient la mémoire ROM de chargement initial de 1K et l'interface SBC/W2500. REVENDICATIONS 10) Système de commande de calculateur à multiprocesseurs permettant une détection et une correction automatiques d'incidents, système comportent au moins un premier processeur central et un second processeur central, un ensemble de capteurs reliés à l'installation dans un système de production, un moyen pour relier les capteurs au premier et au second systèmes entrée/sortie du procédé, un ensemble de dispositifs commandés pour faire fonctionner le système de production, un moyen de commutation comportant au moins un premier commutateur pour coupler le premier système entrée/ sortie de procédé sur le premier processeur central et un second moyen de commutation pour coupler le second système entrée/sortie de procédé sur le second processeur central, ainsi qu'un moyen pour détecter les incidents du système de commande et récupérer le système de commande sous une nouvelle forme rendue nécessaire, sans pratiquement aucun dérangement du procédé, le moyen de détection d'incidents comportant un contrôleur à microprocesseur de chargement initial du système, un moyen de détection de l'une quelconque des diverses défaillances du système de commande, un moyen pour arrêter les processeurs centraux lorsque les signaux de commande de procedé sont mis à l'état maintien, un moyen pour déclencher le con trtleur à microprocesseur et le mettre en mode de détection et de récupération d'incident, un moyen pour détecter l'intégrité de chaque processeur central, ces processeurs centraux comportant des moyens pour définir le circuit du processeur central dont la configuration a été modifiée, pour que les travaux de commande de procédé soient chargés seulement sur le circuit du processeur central, un moyen comportant un con trieur à microprocesseur pour commander le moyen de commutation en fonction de ce qui est nécessaire pour que le circuit du processeur central seul en fonctionnement soit couplé. à l'installation du procédé, un moyen pour redémarrer le système à la fin de la remise en forme éventuelle du système de commande et un moyen pour remettre le contrtleur à microprocesseur en mode de eontrtle a la fin du mode de détection et de récupération d'incident. 20) Système selon la revendication 1, caractérisé en ce que chacun des processeurs centraux est associé à un système entrée/sortie qui est commuté sur une base unitaire lorsqu'un changement de configuration est nécessaire. 30) Système selon la revendication 1, caractérisé en ce que le contraleur à microprocesseur comporte un moyen pour enregistrer et éxécuter toute action de commutation entrée/sortie déterminée comme étant nécessaire par les processeurs centraux. 40) Système selon la revendication 1, caractérisée en ce que le moyen de détection d'incident du système comporte un moyen pour répondre à un signal de demande manuel de fonctionnement de détection de l'incident. 50) Système selon la revendication 1, caractérisé en ce que le contrôleur du microprocesseur comporte un moyen de séquencement pour faire passer pas à pas l'ensemble du système en mode de détection et de récupération d'incident dès que ce mode est déclanché, le contrôleur à microprocesseur étant couplé aunprocesseurs centraux et aux moyens de commutation entrée/sortie pour assurer l'éxécution des diverses étapes de la séquence de détection et de récupération d'incident.