FR 3039293 A1 20170127 FR 1556882 A 20150721 1 Système de contrôle commande opérationnel critique à performances reproductibles La présente invention concerne un système de contrôle commande opérationnel critique à performances reproductibles. Un tel système de contrôle commande est utilisable dans de nombreux domaines techniques présentant un haut niveau de criticité, de fortes exigences de sécurité et de fiabilité. Le domaine de la production de l'énergie ainsi que les domaines du transport ferroviaire, aérien ou spatial sont des exemples de tels domaines techniques d'utilisation de ces systèmes. Ainsi, par exemple, des systèmes de contrôle commande sont utilisables pour piloter le fonctionnement des centrales nucléaires, des plateformes de forage pétrolier ou gazier, des réseaux électriques, des turbines hydraulique ou à gaz, des constructions navales, des véhicules ferroviaires, notamment à pilotage automatique, aériens ou spatials. Plus particulièrement, un système de contrôle commande opérationnel critique permet de contrôler le fonctionnement d'un ou plusieurs équipements électroniques assurant le fonctionnement d'un autre système global. Généralement, ces équipements électroniques mettent en oeuvre des fonctions critiques en relation avec le système global. Ainsi, dans le domaine spatial, il est connu l'utilisation d'un système de contrôle commande critique pour contrôler le fonctionnement des équipements présents sur un pas de tir lors du lancement d'un véhicule aérospatial ou embarqués dans un tel véhicule spatial. Ces équipements comprennent par exemple différents types de vannes et de systèmes de mesure permettant de remplir et contrôler le lanceur et dérouler toutes les actions automatiques permettant le décollage, ainsi que toutes les opérations nécessaires à la remise en sécurité du lanceur et des installations au sol en cas d'anomalie. Compte tenu du caractère critique de fonctions assurées par le système de contrôle commande, il doit répondre à un certain nombre d'exigences. Ces exigences sont par exemple imposées par des autorités de contrôle correspondantes ou par des normes réglementaires ou techniques correspondantes. En particulier, le système de contrôle commande doit garantir qu'une action ou une tâche est exécutée dans un intervalle de temps prédéterminé. Cette qualité du système de contrôle commande est connue sur le terme « déterminisme ». 3039293 2 En outre, le système de contrôle commande doit garantir qu'une séquence de commandes s'exécute toujours de la même manière quelles que soient les circonstances. Cette qualité correspond donc à la reproductibilité du système de contrôle commande. Dans le cas d'une panne intervenue dans un composant, le système de contrôle 5 commande doit garantir la non-propagation de cette panne aux autres composants. Dans ce cas, il s'agit d'une tolérance du système de contrôle commande aux fautes pour assurer la disponibilité des composants non-affectés par la panne. Le système de contrôle commande doit par ailleurs disposer d'un niveau de sécurité élevé pour résister à d'éventuelles attaques de pirates informatiques. Il doit être 10 encore possible d'effectuer des opérations de maintenances ou d'autres types des simulations avec le système de contrôle commande. Dans l'état de la technique, il existe différentes solutions permettant d'implémenter un tel système de contrôle commande opérationnel critique. Usuellement, le système de contrôle commande présente un système de 15 supervision centralisée associé à des équipements électroniques, connus sous le terme des systèmes terminaux ou frontaux et situés près des systèmes à contrôler. Le système de supervision centralisée assure en particulier le contrôle des opérations à distance, l'interface homme-machine et l'interface avec les traitements hors ligne, comme par exemple l'archivage et l'exploitation différée des données. 20 Le système de supervision centralisée et les systèmes frontaux sont redondés pour des besoins de disponibilité. Les logiciels embarqués sont temps réels. Généralement, un système frontal embarque de nombreux équipements matériels et en particulier, des équipements de gestion des entrées/sorties, des processeurs, des chaînes de garde, un matériel spécifique pour la gestion de la redondance, etc. 25 De nombreuses tâches logicielles sont exécutées localement sur un système frontal comme par exemple la gestion de l'interface, des traitements des données, des logiciels applicatifs cycliques, la gestion de la redondance, la gestion des dialogues pour l'échange d'information avec le reste du système. De même, le système de supervision centralisée exécute de nombreux processus logiciels de même nature. 30 Des mécanismes locaux d'ordonnancement temps réel permettent aux tâches d'être exécutées en respectant les contraintes de déterminisme (priorités, interruptions, préemption, sémaphores etc.). Des mécanismes globaux d'échanges d'informations entre logiciels répartis assurent les relations entre tâches. Ainsi, selon une telle solution conventionnelle, le système de contrôle commande comporte critique une pluralité de logiciels applicatifs associés aux équipements électroniques pour assurer leur contrôle, une pluralité de ressources matérielles assurant 3039293 3 l'exécution de différentes tâches des logiciels applicatifs et au moins un logiciel d'ordonnancement mettant à disposition de chaque logiciel applicatif des ressources matérielles qui lui sont nécessaires pour exécuter une tâche donnée. Chaque logiciel applicatif du système de contrôle commande est associé à un 5 milieu exécutif présentant des ressources matérielles dans une configuration prédéterminée. Ainsi, ce logiciel est configuré pour être exécuté sur cette configuration fixe des ressources matérielles. En outre, l'exécution des tâches de ces logiciels est ordonnée par un logiciel d'ordonnancement en fonction de priorités attribuées de manière prédéterminée à ces 10 tâches. Un tel système de contrôle commande opérationnel critique de l'état de l'art forme ainsi une association figée des logiciels applicatifs, des ressources matérielles et d'un ou plusieurs logiciels d'ordonnancement. On conçoit alors qu'un tel système de contrôle commande opérationnel critique 15 soit très peu flexible de sorte qu'une modification ou une évolution de l'un de ses composants entraine des modifications des autres composants ou des risques de régression des performances du système, ce qui rend difficile, voire impossible, des modifications ponctuelles de ces composants. Toute évolution d'un composant induit de nombreux tests pour requalifier le système global et garantir l'absence de régression des 20 performances. Ce problème d'un système de contrôle commande conventionnel conduit alors à de nombreux autres problèmes associés. En particulier, la qualification du système de contrôle commande opérationnel, que ce soit la qualification originelle ou suite à des évolutions, est coûteuse et incomplète car 25 basée sur un nombre d'essais forcément limité. En outre, les essais doivent être déroulés dans l'environnement réel représentatif de la charge, ce qui est donc pénalisant si le système est en exploitation. C'est particulièrement le cas pour les traitements d'obsolescences matérielles. De même, la complexité des systèmes frontaux réduit leur disponibilité et leur 30 fiabilité, raison pour laquelle ils sont redondés. La redondance des systèmes frontaux induit un déploiement matériel supérieur au simple dédoublement, ainsi que des tâches logicielles locales et réparties spécifiques. La complexité du système est plus que doublée et les cas de pannes beaucoup plus complexes. La présente invention a pour but de proposer un système de contrôle commande 35 opérationnel critique flexible, au comportement prédictible formellement, et permettant 3039293 4 des modifications ponctuelles de l'un quelconque de ses composants sans influencer les autres ni influencer le comportement global du système. À cet effet, l'invention a pour objet un système de contrôle commande opérationnel critique apte à contrôler le fonctionnement d'une pluralité d'équipements 5 électroniques. Le système comporte une pluralité de ressources matérielles ; une pluralité de logiciels applicatifs, au moins un logiciel applicatif étant associé à au moins un équipement électronique pour contrôler cet équipement en exécutant des tâches opérationnelles relatives à cet équipement, et étant configuré pour exécuter les tâches 10 opérationnelles correspondantes en utilisant des ressources matérielles dans une configuration prédéterminée, ces ressources dans une telle configuration étant milieu exécutif pour ce logiciel applicatif ; un logiciel d'ordonnancement apte à contrôler l'exécution des tâches opérationnelles dans le temps d'un ou plusieurs logiciels applicatif s. 15 Le système comporte en outre une pluralité de machines virtuelles, chaque machine virtuelle comprenant un logiciel exécutif associé à un logiciel applicatif et étant apte à modéliser le milieu exécutif pour lequel ce logiciel applicatif est configuré, pour exécuter les tâches opérationnelles de ce logiciel applicatif en utilisant les ressources matérielles disponibles. 20 Suivant d'autres aspects avantageux de l'invention, l'invention comprend une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : - chaque logiciel applicatif est associé à une machine virtuelle apte à modéliser le milieu exécutif pour lequel ce logiciel applicatif est configuré ; 25 - le logiciel d'ordonnancement est apte à mettre des ressources matérielles à la disposition d'une machine virtuelle pour exécuter une tâche opérationnelle dans un slot temporel prédéterminé, ledit slot temporel présentant un intervalle de temps donné par le logiciel d'ordonnancement pour exécuter ladite tâche opérationnelle ; - le logiciel d'ordonnancement est apte à attribuer un slot temporel à une tâche 30 opérationnelle donnée de manière cyclique ; - le logiciel d'ordonnancement est apte à attribuer un slot temporel à une tâche opérationnelle donnée selon un schéma d'ordonnancement prédéterminé ; - le logiciel d'ordonnancement est apte à attribuer un slot temporel à une tâche opérationnelle donnée selon plusieurs schémas d'ordonnancement prédéterminés ; 35 - les tâches opérationnelles sont aptes à être exécutées indépendamment l'une de l'autre dans leurs slots temporels respectifs ; 3039293 5 - le logiciel d'ordonnancement est apte à modifier le slot temporel d'au moins une tâche opérationnelle pour permettre son exécution et à générer une alerte à chaque modification d'un slot temporel ; - les ressources matérielles sont distribuées entre les machines virtuelles de 5 manière indépendante, les ressources matérielles attribuées à une machine virtuelle donnée correspondant à l'ensemble des ressources matérielles disponibles pour cette machine virtuelle ; - au moins une table de données d'échange, chaque machine virtuelle étant apte à stocker dans ladite table des données numériques en relation avec des tâches 10 opérationnelles exécutées sur cette machine ; et - chaque machine virtuelle est apte en outre à accéder aux données numériques la concernant stockées dans au moins une partie de ladite table pour exécuter une ou plusieurs tâches opérationnelles. Ces caractéristiques et avantages de l'invention apparaitront à la lecture de la 15 description qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés sur lesquels : - la figure 1 est une vue schématique d'un système de contrôle commande opérationnel critique selon un premier mode de réalisation de l'invention, le système de contrôle commande critique comportant un logiciel d'ordonnancement ; 20 - la figure 2 est une vue schématique d'un schéma d'ordonnancement utilisé pour le fonctionnement du logiciel d'ordonnancement de la figure 1 ; - les figures 3 et 4 illustrent schématiquement le fonctionnement du logiciel d'ordonnancement de la figure 1 avec le schéma d'ordonnancement de la figure 2 ; - la figure 5 est une vue schématique de plusieurs schémas d'ordonnancement et 25 d'un schéma d'accès à la mémoire utilisés pour le fonctionnement du logiciel d'ordonnancement de la figure 1 ; - la figure 6 est une vue schématique d'un système de contrôle commande opérationnel critique selon un deuxième mode de réalisation de l'invention, le système de contrôle commande opérationnel critique comportant un logiciel d'ordonnancement ; et 30 - la figure 7 est une vue schématique d'un schéma d'ordonnancement utilisé pour le fonctionnement du logiciel d'ordonnancement de la figure 6. Le système de contrôle commande 10 opérationnel critique de la figure 1 est apte à contrôler le fonctionnement d'une pluralité d'équipements électroniques et notamment des équipements électroniques 12 et 14 illustrés sur la figure 1. Ces équipements 35 électroniques sont également connus sous le terme des systèmes terminaux ou frontaux. 3039293 6 Selon le premier mode de réalisation, le système de contrôle commande 10 est utilisable dans le domaine spatial et permet plus particulièrement de contrôler des équipements électroniques présents sur un pas de tir d'un véhicule spatial ou embarqués dans celui-ci. Les équipements électroniques assurent par exemple des fonctions 5 critiques en relation avec le pas de tir et/ou le véhicule spatial. Dans l'exemple illustré, l'équipement électronique 12 est une vanne fluidique permettant de contrôler l'accès d'un fluide vers le pas de tir ou vers le véhicule spatial. En particulier, l'équipement électronique 12 est une vanne de déluge permettant de contrôler l'accès de l'eau de déluge vers le pas de tir lors du lancement du véhicule spatial. 10 L'équipement électronique 14 est par exemple embarqué dans le véhicule spatial et présente un manomètre apte à mesurer la pression dans un composant du véhicule spatial. Les équipements électroniques 12, 14 correspondent par exemple à des niveaux de criticité différents. Au titre d'exemple, le niveau de criticité de l'équipement électronique 15 14 est supérieur à celui de l'équipement électronique 12. Chaque équipement électronique 12, 14 comporte un contrôleur 16, 18 permettant de contrôler le fonctionnement de l'équipement correspondant et une interface de communication 22, 24 avec le système de contrôle commande 10. Par l'expression « contrôle du fonctionnement d'un équipement électronique », on 20 comprend tout type de contrôle d'un tel équipement électronique ou encore l'observation de son fonctionnement. Ainsi, selon un exemple de réalisation, chaque contrôleur 16, 18 est apte à collecter des données d'observation relatives au fonctionnement de l'équipement 12, 14 correspondant pour les transmettre au système de contrôle commande 10 via les 25 interfaces de communication 22, 24 correspondantes. Les données d'observation relatives au fonctionnement de la vanne fluidique 12 comprennent par exemple sa position actuelle. Les données d'observation relatives au fonctionnement du manomètre 14 comprennent par exemple une valeur de pression de référence permettant de calibrer le manomètre 14. 30 Selon un autre exemple de réalisation, le contrôleur 16 est apte à actionner la fermeture ou l'ouverture de la vanne 12 et le contrôleur 18 est apte à initier la prise de mesure de pression par le manomètre 14. Les interfaces de communication 22, 24 des équipements électroniques 12, 14 sont reliées au système de contrôle commande 10 par des moyens de communication 25. 3039293 7 Les moyens de communication 25 sont aptes à transmettre des données, notamment des données numériques, entre les interfaces de communication 22, 24 des équipements 12, 14 et le système de contrôle commande 10. Les moyens de communication 25 sont configurés pour permettre le raccordement 5 d'un ou plusieurs autres équipements électroniques comportant des interfaces de communication similaires à celles des équipements 12, 14, au système de contrôle commande 10. Ce raccordement s'effectue par exemple « à chaud », c'est-à-dire, lors du fonctionnement du système de contrôle commande 10. Dans l'exemple de réalisation de la figure 1, les moyens de communication 25 se 10 présentent sous la forme d'un bus de communication en boucle connu en soi. Le système de contrôle commande 10 comporte une interface de communication 30 pour communiquer avec les moyens de communication 25, un module de stockage 32 apte à stocker notamment une pluralité de logiciels et un module exécutif 34 comportant une pluralité de ressources matérielles R apte à exécuter les logiciels stockés dans le 15 module de stockage 32. Les ressources matérielles R comprennent par exemple une pluralité de processeurs connus en soi, une mémoire vive, une mémoire cache et tout autre composant matériel nécessaire pour exécuter les logiciels stockés dans le module de stockage 32 comme ceci sera expliqué par la suite. 20 Le module de stockage 32 est apte à stocker plus particulièrement une pluralité de logiciels applicatifs LA,, une pluralité de machines virtuelles MV,, une table de données d'échange T et un logiciel d'ordonnancement LO. Au moins certains des logiciels applicatifs LA, sont associés aux équipements électroniques 12, 14 et permettent d'exécuter des tâches opérationnelles associées à des 25 fonctions de contrôle de ces équipements 12, 14. Dans l'exemple de réalisation de la figure 1, le logiciel applicatif LA, est associé à l'équipement électronique 12 et permet d'exécuter des tâches opérationnelles associées à des fonctions de contrôle de cet équipement 12. Les logiciels applicatifs LA2 à LA4 sont associés à l'équipement électronique 14 et permettent d'exécuter des tâches 30 opérationnelles associées à des fonctions de contrôle de cet équipement 14. Selon un exemple de réalisation, les logiciels applicatifs LA2 à LA4 sont redondants. Au moins certains des logiciels applicatifs LA, sont aptes à exécuter des tâches opérationnelles qui ne sont pas associées directement aux équipements électroniques 12, 35 14 mais qui sont destinées à assurer le fonctionnement du système de contrôle commande 10 dans sa globalité ou au moins de certains de ses composants. 3039293 8 Ainsi, par exemple, les logiciels applicatifs LA5 et LA6 permettent d'exécuter des tâches opérationnelles associées respectivement aux moyens de communication 25 et à un poste de pilotage permettant à un ou plusieurs opérateurs de contrôler le fonctionnement du système de contrôle commande 10. 5 Chaque logiciel applicatif LA, est apte à exécuter les tâches opérationnelles correspondantes en utilisant des ressources matérielles R. Plus particulièrement, chaque logiciel applicatif LA, est configuré pour exécuter ses tâches par une configuration prédéterminée des ressources matérielles R. Les ressources matérielles R dans une telle configuration sont dénotées ci-dessous par le terme « milieu 10 exécutif ». Au titre d'exemple, le logiciel applicatif LA, est configuré pour exécuter ses tâches sur un processeur mono-coeur présentant une fréquence d'horloge comprise dans un intervalle de fréquences prédéterminé et une mémoire cache d'une valeur prédéterminée. Selon l'invention et comme ceci est illustré sur la figure 1, chaque logiciel applicatif 15 LA, est associé en outre à une machine virtuelle MV,. Une machine virtuelle MV, associée à un logiciel applicatif LA, donné, présente un logiciel exécutif apte à modéliser le milieu exécutif pour lequel ce logiciel applicatif LA, est configuré. La machine virtuelle MV, permet ainsi d'exécuter les tâches du logiciel applicatif LA, lui associé en utilisant les ressources matériels disponibles. 20 Ainsi, par exemple, lorsque le logiciel applicatif LA, est configuré pour exécuter ses tâches sur un processeur mono-coeur présentant une fréquence d'horloge comprise entre 100 Mhz et 200 Mhz, la machine virtuelle MV, associée à ce logiciel applicatif LA, permet par exemple d'exécuter ces tâches sur un processeur multi-coeurs dont chaque coeur présente une fréquence d'horloge égale à 500 Mhz. 25 Une machine virtuelle MV, est apte ainsi à « virtualiser » le milieu exécutif pour lequel le logiciel applicatif LA, associé est configuré, selon des techniques de virtualisation connues en soi. Selon un exemple de réalisation, les ressources matérielles R sont distribuées entre les machines virtuelles de MV, de manière prédéterminée ou dynamique. Ainsi, dans 30 ce cas, pour exécuter une tâche donnée, la machine virtuelle MV, choisit les ressources matérielles R disponibles parmi les ressources matérielles qui lui sont attribuées. Pour exécuter au moins certaines tâches opérationnelles, chaque machine virtuelle MV, est apte à générer des données numériques à destination des autres machines virtuelles MV, et/ou à utiliser des données numériques générées par ces 35 machines virtuelles MV,. 3039293 9 Pour ce faire, la table de données d'échange T permet aux machines virtuelles MV, d'échanger des données numériques. Plus particulièrement, chaque machine virtuelle MV, est apte à stocker des données numériques générées dans la table de données d'échange T et à utiliser des données numériques stockées dans cette table T par des 5 autres machines virtuelles MV,. Le logiciel d'ordonnancement LO permet d'ordonner dans le temps l'exécution des tâches opérationnelles par les machines virtuelles MV,. En particulier, le logiciel d'ordonnancement LO met à disposition d'une machine virtuelle MV, donnée, des ressources virtuelles R demandées par cette machine virtuelle MV, pour exécuter une 10 tâche opérationnelle donnée, pendant un intervalle de temps limité. Un tel intervalle de temps est appelé par la suite « slot temporel » attribué par le logiciel d'ordonnancement LO à une machine virtuelle MV, pour accomplir une tâche donnée. Le logiciel d'ordonnancement LO est par exemple un logiciel de bas niveau apte à 15 ordonner dans le temps les tâches opérationnelles de manière cyclique. Une telle technique d'attribution cyclique des slots temporels est connue sous le terme anglais « time partitionning». Avantageusement, le logiciel d'ordonnancement est apte à ordonner des tâches opérationnelles selon toute échelle temporelle. En particulier, le logiciel 20 d'ordonnancement permet d'ordonner des tâches de tout niveau comme par exemple des tâches d'applications implémentées par des machines virtuelles MV,, des tâches d'un système opérationnel implémenté par des machines virtuelles MV, ou encore des tâches de niveau bas assurant l'interaction entre différentes ressources matérielles. La longueur des slots temporels est définie ainsi en fonction des tâches associées 25 et est égale à une valeur comprise par exemple dans l'intervalle allant de plusieurs dizaines de microsecondes jusqu'au plusieurs dizaine de millisecondes. En variante, le logiciel d'ordonnancement est apte à ordonner des tâches opérationnelles d'un ou plusieurs niveaux prédéterminés selon une échelle temporelle prédéterminée. 30 Selon la technique d'attribution cyclique « time partitionning», le logiciel d'ordonnancement LO attribue à une tâche opérationnelle un slot temporel de manière cyclique. Dans ce cas, toutes les tâches ont un même niveau de priorité de sorte que chaque tâche opérationnelle est exécutée à chaque passage du slot temporel attribué. L'attribution des slots temporels dans chaque passage du cycle est définie par un 35 schéma d'ordonnancement SO prédéterminé. Ainsi, l'attribution des slots temporels par le logiciel d'ordonnancement est effectuée de manière statique. 3039293 10 Le schéma d'ordonnancement SO détermine ainsi l'attribution des slots temporels pour chaque tâche opérationnelle de manière prédéterminée. Le schéma d'ordonnancement SO est par exemple défini lors d'une phase de conception du système de contrôle commande 10. 5 La figure 2 illustre schématiquement un exemple de réalisation d'un schéma d'ordonnancement SO. Ce schéma SO définit six slots temporels S1 à S6 distribués de manière consécutive sur l'échelle temporelle t. Au titre d'exemple, les slots temporels S1, S3 et S5 sont attribués à des tâches opérationnelles particulières exécutées par la machine virtuelle MV1, les slots S2 et S6 à 10 des tâches exécutées par la machine virtuelle MV2, et le slot S4 à une tâche exécutée par la machine virtuelle MV3. La figure 3 illustre le temps d'exécution réel de chaque tâche opérationnelle dans le slot temporel déterminé par le schéma d'ordonnancement SO de la figure 2 et attribué à cette tâche par le logiciel d'ordonnancement LO. Il est à noter que les slots temporels 15 restent sensiblement inchangés lors du fonctionnement du système de contrôle commande 10 alors que le temps d'exécution réel peut varier d'un cas à l'autre dans le slot temporel correspondant. Les tâches sont donc exécutées indépendamment l'une de l'autre. Selon un exemple de réalisation, lorsque le temps d'exécution d'une tâche 20 opérationnelle dépasse le slot temporel correspondant, le logiciel d'ordonnancement LO est apte à interrompre l'exécution de cette tâche et à passer à la tâche suivante. Ainsi, sur la figure 3, le temps réel d'exécution de la tâche correspondant au slot temporel S3 ne dépasse pas ce slot temporel même si la tâche n'a pas été terminée. Selon un autre exemple de réalisation, le logiciel d'ordonnancement LO est apte à 25 modifier la longueur d'un slot temporel selon un critère de modification prédéterminé pour permettre l'exécution d'une tâche opérationnelle. Le critère de modification consiste par exemple à modifier la longueur d'un slot temporel d'une valeur inférieure à 30%, de préférence à 10%, de sa longueur initiale. La figure 4 illustre un tel cas. Ainsi, sur cette figure, la longueur du slot S3 a été 30 augmentée pour permettre l'exécution de la tâche correspondante et la longueur du slot S4 a été diminuée pour éviter le décalage des slots S5 et S6. Lorsque le logiciel d'ordonnancement LO modifie un slot temporel, il est apte à générer une alerte pour signaler cette modification à un ou plusieurs opérateurs supervisant le fonctionnement du système de contrôle commande 10. Dans ce cas, le 35 système de contrôle commande 10 fonctionne par exemple dans un mode de fonctionnement dégradé. 3039293 11 Selon un exemple de réalisation, le logiciel d'ordonnancement LO est apte à ordonner dans le temps les tâches opérationnelles selon plusieurs schémas d'ordonnancement SO. Dans ce cas, le logiciel d'ordonnancement organise pour chaque schéma d'ordonnancement SO une partition des ressources matérielles R. Ces partitions 5 permettant d'exécuter les tâches opérationnelles correspondant à des schémas différents en parallèle et de manière indépendante. Lorsque les tâches sont exécutées selon plusieurs schémas d'ordonnancement SO, le logiciel d'ordonnancement est apte à piloter l'accès de ces tâches à la table de données d'échange T selon un schéma d'accès à la mémoire SM. 10 Comme un schéma d'ordonnancement SO, le schéma d'accès à la mémoire SM définit une pluralité de slots temporels durant lesquels une tâche donnée a accès à la table de données d'échange T. Ceci permet alors d'éviter des collisions entre différentes tâches lors de l'accès à la table de données d'échange T ce qui assure l'indépendance des tâches. 15 Un tel cas est illustré sur la figure 5. Cette figure illustre en effet deux schémas d'ordonnancement SO, et SO2 et un schéma d'accès à la mémoire SM. Le schéma d'accès SM définit des slots temporel Si à S4 durant lesquels les tâches correspondantes du schéma d'ordonnancement SO, ont accès à la table de données d'échange T, et des slots temporel S5 à S7 durant lesquels 20 les tâches correspondantes du schéma d'ordonnancement SO2 ont accès à la table de données d'échange T. En complément, le logiciel d'ordonnancement est apte à décaler ou à agrandir d'une valeur prédéterminée au moins certains des slots temporels du schéma d'accès à la mémoire SM pour permettre l'accès à la mémoire d'au moins certains types des tâches. 25 Les tâches de ces types ont alors une certaine priorité d'accès à la mémoire par rapport à d'autres tâches. Le fonctionnement du système de contrôle commande 10 selon le premier mode de réalisation va désormais être expliqué. Lors de la phase de conception du système de contrôle commande 10, l'ensemble 30 des tâches opérationnelles des machines virtuelles MV, est prédéfini. Ces tâches sont définies par exemple en fonction des équipements électroniques 12, 14 connectés au système de contrôle commande 10 ainsi que des logiciels applicatifs LA, associés à ces équipements. Puis, un ou plusieurs schémas d'ordonnancement SO déterminant au moins un 35 slot temporel pour chacune de ces tâches, sont définis. De préférence, ces schémas SO 3039293 12 comportent en outre des slots temporels « vides », c'est-à-dire, des slots temporels correspondant à des tâches indéfinies lors de cette phase. Lors d'une phase d'exploitation du système de contrôle commande 10, chaque logiciel applicatif LA, exécute ses tâches opérationnelles dans un milieu exécutif modélisé 5 par la machine virtuelle MV, correspondante. L'exécution de ces tâches est ordonnée par le logiciel d'ordonnancement LO qui attribue alors un slot temporel pour exécuter chacune de ces tâches. Lorsqu'un slot temporel est modifié lors du fonctionnement du système de contrôle commande 10, le logiciel d'ordonnancement LO génère une alerte et le système de 10 contrôle commande 10 est mis dans un mode de fonctionnement dégradé. Lorsqu'un nouvel équipement est associé au système de contrôle commande 10 lors de la phase de son exploitation, un logiciel applicatif LA, et une machine virtuelle MV, modélisant un milieu exécutif pour ce logiciel LA, sont définis. Les tâches opérationnelles de ce logiciel applicatif LA, sont par exemple associées à des slots temporels vides du ou 15 des schémas d'ordonnancement SO. On conçoit alors que la présente invention présente un certain nombre d'avantages. Ainsi, l'utilisation des machines virtuelles MV, permet de traiter et éventuellement, de modifier de différents composants du système de contrôle commande de manière 20 totalement indépendante. En effet, les machines virtuelles MV, n'interagissent pas entre elles directement, toute communication s'effectue à travers la table de données d'échange T. En outre, la partition temporelle des tâches opérationnelles par le logiciel d'ordonnancement LO permet de rendre ces tâches indépendantes. Grâce à la séparation 25 des tâches par slots temporels, une tâche opérationnelle n'a aucune information sur une autre. Le risque de régression du système lorsque l'un de ses composants est modifié est donc très réduit Les avantages précités permettent alors d'améliorer considérablement les qualités exigées du système de contrôle commande 10. 30 Ainsi, l'exécution des tâches par slots temporels sensiblement inchangeables rend le système de contrôle commande 10 complètement déterministe et reproductible. Il est ainsi possible d'apporter une preuve formelle de bon fonctionnement du système, plutôt que d'avoir à valider le système dans un grand nombre d'essais aux conditions variables. 35 Il est par ailleurs possible de remplacer un composant quelconque du système de contrôle commande 10 sans affecter les autres. Un tel remplacement permet par exemple 3039293 13 de remplacer un composant vieillissant ou défaillant sans avoir à requalifier tout le système. En outre, les composants du système de contrôle commande 10 peuvent avoir des niveaux de criticités et/ou de sécurité différents. Ainsi, il est possible d'associer un niveau 5 de criticité et/ou de sécurité élevé pour un composant sensible et un niveau de criticité et/ou de sécurité normal pour un composant ordinaire. Finalement, la possibilité d'utilisation de plusieurs schémas d'ordonnancement SO permet d'étendre l'utilisation du système de contrôle commande 10 à plusieurs applications ce qui correspond à la scalabilité d'un tel système. 10 Un système de contrôle commande opérationnel critique 100 selon un deuxième mode de réalisation de l'invention est illustré sur la figure 6. À la différence du système de contrôle commande 10 de la figure 1, le système de contrôle commande 100 est utilisable pour tester de différents composants destinées à interagir ou à être intégrés avec ou dans un autre système de contrôle commande, 15 analogue par exemple au système de contrôle commande 10. Ainsi, le système de contrôle commande 100 est un banc d'essai connu de l'état de la technique sous l'abréviation « EGSE » (de l'anglais « Electrical Ground Support Equipment »). Dans l'exemple de la figure 6, le système de contrôle commande 100 permet de 20 tester l'équipement électronique 14 décrit précédemment. Comme dans le cas précédent, l'équipement électronique 14 est relié au système de contrôle commande 100 par les moyens de communication 25. Le système de contrôle commande 100 comporte une interface de communication 130 pour communiquer avec les moyens de communication 25, un module de stockage 25 132 apte à stocker notamment une pluralité de logiciels et un module exécutif 134 comportant une pluralité de ressources matérielles R apte à exécuter les logiciels stockés dans le module de stockage 132. L'interface de communication 130 et le module exécutif 134 sont analogues à ceux décrit précédemment. 30 Le module de stockage 132 est apte à stocker plus particulièrement une pluralité de logiciels applicatifs LA,, une pluralité de machines virtuelles MV,, une table de données d'échange T et un logiciel d'ordonnancement LO. À la différence du module de stockage 32, seuls les logiciels applicatifs LA2 à LA4 associés à l'équipement 14 et le logiciel applicatif LA5 associé aux moyens de 35 communication 25 sont stockés dans le module de stockage 132. Chaque logiciel applicatif LA, est associé en outre à une machine virtuelle MV,. 3039293 14 Le logiciel d'ordonnancement LO est analogue à celui décrit précédemment. En particulier, il est apte à contrôler l'exécution des tâches opérationnelles des machines virtuelles MV, selon un schéma d'ordonnancement SO illustré sur la figure 7. Le schéma d'ordonnancement SO de la figure 7 comporte trois slots temporels 525 5 S4 et 56. Les slots temporels 52 et 56 sont attribués à des tâches opérationnelles particulières exécutées par la machine virtuelle MV2, le slot 54 est attribué à des tâches opérationnelles particulières exécutées par la machine virtuelle MV3. Les longueurs et les positions sur l'échelle temporelle t des slots temporels 525 S4 et 56 sont analogues à ceux du schéma d'ordonnancement SO de la figure 2. 10 Le fonctionnement du système de contrôle commande 100 est analogue à celui du système de contrôle commande 10. Le système de contrôle commande 100 selon le deuxième mode de réalisation de l'invention permet de tester différents composants destinés à un autre système de contrôle commande de manière complétement autonome. En outre, le schéma 15 d'ordonnancement SO pour le banc d'essai est analogue à celui de l'autre système de contrôle commande en ce qui concerne les tâches exécutées par ce banc d'essai. Ainsi, une fois que les composants testés interagissent ou sont intégrés avec ou dans l'autre système de contrôle commande, par exemple analogue au système de contrôle commande 10, leur comportement est identique à celui sur le banc d'essai. 20 Ceci permet alors de réduire considérablement les coûts de test d'un tel système de contrôle commande et de simplifier considérablement sa mise en oeuvre. On conçoit en outre que le système de contrôle commande selon l'un quelconque des modes de réalisation précités permet de simplifier le rôle des équipements électroniques ou des systèmes frontaux. Ces équipements n'assurent plus que de la 25 gestion d'interface entrées/sorties et la transmission ou réception des données sur un bus terrain redondé de manière cyclique. Le comportement du système de contrôle commande est complètement prédéterminé ce qui permet de le contrôler pendant tout le cycle de vie du produit : développement, validation, utilisation, évolutions, etc. L'impact d'une évolution matérielle 30 ou logicielle du système de contrôle commande est strictement localisé et prédictible. Le système de contrôle commande permet en outre de centraliser des tâches logicielles et assure l'ordonnancement statique prédéterminé. Les tâches sont gérées de manière indépendante sans optimisation en temps réel et via la table de données d'échange. 35 Ceci permet alors d'assurer la non-propagation d'une panne logicielle ou d'une anomalie lors de l'exécution des tâches et la non-propagation d'une panne matérielle au 3039293 15 niveau du système de contrôle de commande. La virtualisation permet en outre d'être tolérant à la panne de processeur. Finalement, la scalabilité du système de contrôle commande est assurée en utilisant des multi-partitions. 5 REVENDICATIONS1.- Système de contrôle commande (10; 100) opérationnel critique apte à contrôler le fonctionnement d'une pluralité d'équipements électroniques (12, 14), le système (10; 100) comportant : - une pluralité de ressources matérielles (R) ; - une pluralité de logiciels applicatifs (LA,), au moins un logiciel applicatif (LA,) étant associé à au moins un équipement électronique (12, 14) pour contrôler cet équipement (12, 14) en exécutant des tâches opérationnelles relatives à cet équipement (12, 14), et étant configuré pour exécuter les tâches opérationnelles correspondantes en utilisant des ressources matérielles (R) dans une configuration prédéterminée, ces ressources dans une telle configuration étant milieu exécutif pour ce logiciel applicatif (LA,) ; - un logiciel d'ordonnancement (LO) apte à contrôler l'exécution des tâches opérationnelles dans le temps d'un ou plusieurs logiciels applicatifs ; le système (10 ; 100) étant caractérisé en ce qu'il comporte en outre une pluralité de machines virtuelles (MV,), chaque machine virtuelle (MV,) comprenant un logiciel exécutif associé à un logiciel applicatif (LA,) et étant apte à modéliser le milieu exécutif pour lequel ce logiciel applicatif (LA,) est configuré, pour exécuter les tâches opérationnelles de ce logiciel applicatif (LA,) en utilisant les ressources matérielles disponibles. 2.- Système (10; 100) selon la revendication 1, dans lequel chaque logiciel applicatif (LA,) est associé à une machine virtuelle (MV,) apte à modéliser le milieu exécutif pour lequel ce logiciel applicatif (LA,) est configuré. 3.- Système (10; 100) selon la revendication 1 ou 2, dans lequel le logiciel d'ordonnancement (LO) est apte à mettre des ressources matérielles (R) à la disposition d'une machine virtuelle (MV,) pour exécuter une tâche opérationnelle dans un slot temporel (Si à S6) prédéterminé, ledit slot temporel (Si à S6) présentant un intervalle de temps donné par le logiciel d'ordonnancement (LO) pour exécuter ladite tâche opérationnelle. 4.- Système (10; 100) selon la revendication 3, dans lequel le logiciel d'ordonnancement (LO) est apte à attribuer un slot temporel (Si à S6) à une tâche opérationnelle donnée de manière cyclique. 3039293 17 5.- Système (10; 100) selon la revendication 3 ou 4, dans lequel le logiciel d'ordonnancement (LO) est apte à attribuer un slot temporel (Si à S6) à une tâche opérationnelle donnée selon un schéma d'ordonnancement (SO) prédéterminé. 6.- Système (10; 100) selon l'une quelconque des revendications 3 à 5, dans lequel le logiciel d'ordonnancement (LO) est apte à attribuer un slot temporel (Si à S6) à une tâche opérationnelle donnée selon plusieurs schémas d'ordonnancement (SO) prédéterminés. 7.- Système (10; 100) selon l'une quelconque des revendications 3 à 6, dans lequel les tâches opérationnelles sont aptes à être exécutées indépendamment l'une de l'autre dans leurs slots temporels (Si à S6) respectifs. 15 8.- Système (10; 100) selon l'une quelconque des revendications 2 à 4, dans lequel le logiciel d'ordonnancement (LO) est apte à modifier le slot temporel (Si à S6) d'au moins une tâche opérationnelle pour permettre son exécution et à générer une alerte à chaque modification d'un slot temporel. 20 9.- Système (10; 100) selon l'une quelconque des revendications précédentes, dans lequel les ressources matérielles (R) sont distribuées entre les machines virtuelles (MV,) de manière indépendante, les ressources matérielles (R) attribuées à une machine virtuelle (MV,) donnée correspondant à l'ensemble des ressources matérielles (R) disponibles pour cette machine virtuelle. 25 10.- Système (10; 100) selon l'une quelconque des revendications précédentes, comportant en outre au moins une table de données d'échange (T), chaque machine virtuelle (MV,) étant apte à stocker dans ladite table (T) des données numériques en relation avec des tâches opérationnelles exécutées sur cette machine (MV,). 30 11.- Système (10; 100) selon la revendication 10, dans lequel chaque machine virtuelle (MV,) est apte en outre à accéder aux données numériques la concernant stockées dans au moins une partie de ladite table (T) pour exécuter une ou plusieurs tâches opérationnelles. 5 10 35