FR 2766285 A1 19990122 FR 9809136 A 19980717 Etat de la technique La présente invention concerne un appareil de commande d'un système et un procédé de mise en oeuvre d'un tel appareil pour un système notamment un véhicule automo-5 bile, un moteur ou une transmission, comportant un grand nom- bre de modules susceptibles d'être activés, les modules activés fournissant des informations par l'observation des états du système, un séquenceur étant prévu pour activer les modules. Selon le document WO 97/13064, on connaît déjà un dispositif de diagnostic pour un appareil de commande de mo- teur. Différents modules fonctionnels de diagnostic sont ac- tivés par un programmateur. Les modules de fonction de diagnostic servent à contrôler le système nécessaire au fonc- tionnement du moteur. Le séquenceur peut bloquer certes un module de fonction de diagnostic si, du fait des défauts déjà trouvés, il est à prévoir que le module de fonction de diag- nostic affiche une erreur. Avantages de l'invention L'invention concerne un appareil du type ci-dessus caractéri- sé en ce qu'il comprend: - des premières mémoires contenant les informations concer- nant la perturbation réciproque des modules, - des secondes mémoires contenant les modules déjà activés, - et le séquenceur détermine à l'aide des premières et secon- des mémoires, pour activer un autre module, si l'activation de cet autre module peut provoquer des perturbations entre les modules, et - le séquenceur évite l'activation simultanée de modules qui se perturbent réciproquement. L'appareil de commande selon l'invention pour un système et un procédé selon l'invention pour la mise en oeu- vre d'un tel appareil de commande présentent l'avantage que les relations transversales entre les modules en cours sont prises en compte par l'activation des autres modules. Comme l'information relative à la dépendance transversale est pré- vue dans une première mémoire, cette information est regrou- pée de manière centralisée. C'est pourquoi on peut ajouter ou supprimer de nouveau de manière simple d'autres modules. Les dépendances réciproques des modules sont particulièrement simples à prendre en compte du fait de la mémorisation cen- trale pour tous les modules. Cela est notamment significatif si un certain module doit être appelé et observe les états du système détruits par d'autres modules. Dans un tel cas, l'observation des états détruits aboutit à des informations défectueuses. Suivant d'autres caractéristiques avantageuses de l'invention: - le séquenceur évite l'activation simultanée de modules qui se perturbent réciproquement en ce que ce séquenceur inter- dit l'activation de l'autre module, - le séquenceur évite que des modules activés simultanément se perturbent réciproquement en ce que ce séquenceur inter- rompt un module déjà activé et n'autorise qu'ensuite l'activation de l'autre module, - les premières mémoires contiennent les modules qui se per- turbent réciproquement lorsqu'ils sont activés simultané- ment, - les premières mémoires contiennent les états du système ob- servés par les modules activés et les états du système qui sont perturbés par les modules activés, - les modules et le séquenceur sont conçus comme des program- mes de traitement par un microcalculateur, - les premières et secondes mémoires sont en forme de tableau ou de matrices, - des fonctions qui apparaissent comme une unité pour l'utilisateur ou qui sont utilisées pour la commande d'une fonction unitaire, sont réparties en plusieurs modules gé- rés séparément par le séquenceur, - des premières mémoires contenant les informations relatives à la perturbation réciproque des modules, - des secondes mémoires dans lesquelles sont enregistrés les modules déjà activés, - pour activer un autre module, on détermine à l'aide des premières et secondes mémoires, si l'activation de cet au- tre module crée des perturbations entre les modules, et - on évite l'activation simultanée de modules qui se pertur- bent réciproquement, - on évite l'activation d'un autre module pour éviter que des modules qui se perturbent réciproquement ne soient activés simultanément, - pour éviter que des modules activés simultanément ne se perturbent réciproquement, on interrompt un module déjà ac- tivé et on autorise alors l'activation de l'autre module, - on exécute les différentes étapes du procédé à l'aide d'un programme de traitement exécuté par un microcalculateur Il est particulièrement simple d'interdire l'activation de l'autre module ou de désactiver un module dé- jà activé. Dans une première mémoire, on peut enregistrer des relations transversales entre les modules ou encore des in- formations supplémentaires relatives aux perturbations et/ou observations des états du système par les modules évoqués. Il est particulièrement simple que les modules et le séquenceur soient réalisés sous la forme d'un programme appliqué à un microprocesseur. La mémoire peut être constituée par des ta- bleaux ou des matrices enregistrés dans la mémoire de l'appareil de commande. Dessins Des exemples de réalisation de l'invention seront décrits ciaprès à l'aide des dessins annexés dans lesquels: - la figure 1 montre un appareil de commande et le système qu'il doit commander, - les figures 2 et 3 montrent la disposition des informations dans les premières mémoires, - la figure 4 montre un ordinogramme du procédé de l'invention Description La figure 1 montre un appareil de commande 1 re- lié par des lignes de liaison 4 à un système 2 à commander. L'appareil de commande 1 comprend un microcalculateur 3 prévu pour traiter les modules 10, 11, 12. Les modules présentés ici sont, pour le module 10, un module fonctionnel et, pour le module 11, un module de diagnostic et enfin, pour le mo- dule de programme 12, un séquenceur. Le système 2 peut être n'importe quel système technique commandé par un appareil de commande 1. Par exem- ple, le système 2 peut être un véhicule automobile, un moteur à combustion interne ou une transmission. Un tel système 2 est équipé d'un grand nombre de capteurs et d'un grand nombre d'actionneurs ou organes de réglage. Les lignes de liaison 4 permettent de transmettre les informations de réglage géné- rées par l'appareil de commande 1 aux actionneurs du système 2 (la transmission au système 2 se fait suivant la flèche correspondante). En outre, on peut transmettre les valeurs de mesure fournies par les capteurs du système 2 par les lignes de liaison vers l'appareil de commande 1 (flèche dirigée vers l'appareil de commande 1). L'appareil de commande 1 reçoit ainsi des informations d'état du système 2 que doit traiter15 l'appareil de commande 1 et convertir ces informations, en fonction des états de commutation souhaités (par exemple sui- vant la position de la pédale d'accélérateur du véhicule), en des informations de commande du système. L'appareil de commande 1 est représenté ici seu- lement de manière schématique par plusieurs modules 10, 11, 12 et un microcalculateur 3. D'autres circuits connus du spé- cialiste ne sont par représentés. Les modules 10, 11, 12 sont réalisés en général comme des modules de programme mais il peut également s'agir de circuits qui exécutent les fonctions correspondantes. Dans le cas du module de programme, il s'agit d'une succession d'ordres de programme qui peuvent être activés ou désactivés par une unité à partir du séquen- ceur. Les fonctions qui apparaissent comme unité pour l'utilisateur ou qui servent à commander une fonction uni- forme, peuvent être réparties en plusieurs modules gérés sé- parément par le séquenceur. En outre, la figure se limite à un seul module fonctionnel 10 à un seul module de diagnostic 11 et un seul séquenceur 12. Pour prendre en compte des fonc- tions de diagnostic et de commande complexe, il faut de ma- nière évidente plusieurs modules correspondants 10, 11. Les modules fonctionnels sont nécessaires pour le traitement des opérations de commande directes, c'est-à-dire que ces modules exploitent les informations des capteurs du système 2 et, en fonction des valeurs de consigne prédétermi- nées, ils génèrent des informations de commande pour le sys- tème 2. Le signal d'entrée d'un tel module fonctionnel peut être par exemple constitué, dans le cas d'un véhicule automo- bile, de la vitesse de rotation et de l'information de consi- gne pour la position de la pédale d'accélérateur; avec ces informations, on génère alors une information de commande du moteur. Les modules de diagnostic 11 ont pour fonction de surveiller le fonctionnement correct du système 2. Dans le10 cas d'un véhicule automobile, du fait de la réglementation, il faut par exemple surveiller le fonctionnement du cataly- seur pendant le fonctionnement du moteur. Cela consiste à ac- tiver de temps à autre un module de diagnostic 11 qui contrôle le fonctionnement du catalyseur par l'exploitation des signaux de la sonde Lambda. Le module de fonction 10 et le module de diagnos- tic 11 peuvent être dans un état inactif et dans un état ac- tif. A l'état inactif, il n'exécute pas les tâches liées aux modules tels que le diagnostic et la commande de parties du système. Cela signifie notamment que les modules inactifs n'enregistrent pas de données du système et ne fournissent aucune information au système 2. A l'état inactif, les modu- les peuvent néanmoins échanger par exemple des informations avec le microcalculateur et, notamment, il faut que des in- formations puissent être échangées entre les modules et le séquenceur, informations qui concernent l'activation d'un mo- dule (par exemple la possibilité ou le souhait de l'activation). Comme tous les modules 10, 11 ne sont pas uti- lisés par chaque état de fonctionnement du système 2, au moins une partie des modules peut être à l'état actif ou à l'état inactif. L'activation des différents modules de fonction ou des modules de diagnostic 11 se fait par une commande de déroulement qui décide des modules de fonction 10 ou des modules de diagnostic 11 à commander. Le séquenceur 12 est une partie de cette commande de déroulement. La commande de déroulement peut faire dépendre l'activation des différents modules de fonction 10 ou des modules de diagnostic 11 de certaines conditions extérieures. Les modules de fonction 10 concernés par l'allumage d'injection d'un moteur à essence sont commandés par exemple en fonction de la position du vi- lebrequin. De même les modules de diagnostic 11, sont activés selon les états de fonctionnement du système 2. Plusieurs mo- dules de fonction et plusieurs modules de diagnostic il peu- vent travailler en parallèle dans le sens o le travail d'un module n'est pas encore terminé lorsqu'en même temps un autre module doit fonctionner. La difficulté est que certains modules fournis- sent des informations entachées d'erreurs si certains autres modules 10, 11 sont activés en même temps. Par exemple, les véhicules actuels sont équipés d'un filtre à charbon actif évitant que les vapeurs d'hydrocarbures ne passent du réser- voir à l'environnement. Lorsque le moteur fonctionne, on as- pire dans ces conditions, pendant une durée déterminée, de l'air à travers un tel filtre à charbon actif pour récupérer les hydrocarbures contenus dans le filtre et les brûler dans le moteur, puis nettoyer de nouveau le filtre. Mais cela per- turbe le signal de la sonde Lambda si bien que le catalyseur ne peut fournir aucun diagnostic pendant le nettoyage du fil- tre à charbon actif. Pendant l'activation du module de fonc- tion 10 pour le nettoyage du filtre à charbon actif, il ne faut pas activer le module de diagnostic l1 pour contrôler le catalyseur. En outre, pendant ce nettoyage, des modules de fonction 10 comme par exemple ceux liés à l'adaptation du mé- lange, sont également perturbés. Pour tenir compte de cette dépendance transver- sale entre les modules, l'invention prévoir un séquenceur 12 qui tient compte de ces dépendances transversales par l'exploitation de mémoires. La figure 2 montre le contenu d'une première mémoire à laquelle accède le séquenceur. Les références X, Y et Z désignent à la figure 2 des états physi- ques du système ayant une influence sur les signaux du cap- teur du système. La colonne I désigne trois états différents du système X, Y et Z. Ces états du système sont influencés ou observés par les modules du programme portant ici les réfé- rences A, B, C, D. De plus, un module peut en même temps in- fluencer un état et l'observer (le module D apparaît dans les colonnes II et III). Si un module influence un état pour que d'autres modules qui observent cet état fournissent des ré- sultats erronés du fait de cette influence, cela constitue une perturbation entre ces modules qui se traduit directement par la perturbation d'un état par au moins l'un des modules. Si par exemple, un module a besoin d'un état comme paramètre nécessaire pour un calcul, une perturbation engendrée par d'autres modules peuvent provoquer un diagnostic d'erreurs ou10 des impulsions de commande faussées. La colonne II donne la liste de modules qui ob- servent des états correspondants et la colonne III donne la liste des modules perturbateurs. L'état X est par exemple ob- servé par les modules de programme A et B et est perturbé par le module de programme C. L'état Y est observé par le module A et est perturbé par le module B. L'état Z est par exemple observé seulement par le module A et aucun module ne peut le perturber. Si maintenant le module A doit être activé, le sé- quenceur 12 accède au tableau de la figure 2 et constate que le module A observe l'état X, l'état Y et l'état Z. Comme les états X et Y sont perturbés par les modules C et B, le module A ne peut être libéré pour l'activation que si les modules C et B ne sont pas activés. Le module A observe également l'état Z qui n'influence lui même aucun autre module. Cela peut toutefois servir à étendre l'appareil de commande; no- tamment on peut intégrer sans difficulté dans le tableau de la figure 2 d'autres modules qui peuvent avoir une influence sur l'état Z. L'information enregistrée à la figure 2 peut être mise en mémoire dans n'importe quelle mémoire, également sous la forme par exemple d'une matrice. Il faut simplement pré- voir une mémoire permettant de définir les relations trans- versales entre les modules, c'est-à-dire d'indiquer les modules que l'on peut ou non activer simultanément du fait de l'existence des liaisons transversales. Il est également im- portant de pouvoir ajouter ou supprimer de manière simple des modules de fonction ou de diagnostic dans le système de com- mande, en effaçant ou en ajoutant de simples modules et en enregistrant de manière correspondante dans une mémoire ap- propriée. Cela permet également de tenir compte d'une manière très claire de relations transversales complexes entre des modules différents. Le tableau de la figure 2 contient un excès d'informations ou une certaine redondance car en fait il suf- fit seulement des colonnes II et III pour déterminer les re- lations transversales entre les modules. La raison d'être de la colonne I est de pouvoir montrer d'une manière particuliè- rement simple les relations transversales. Cela simplifie également l'adjonction de nouveaux modules car en général on connaît les états nécessaires d'un nouveau module (colonne II) ou les états que perturbe un nouveau module (colonne III). Comme variante, on peut ainsi enregistrer seulement les colonnes II et III dans une première mémoire. La figure 3 donne une représentation correspondante. La représentation de la figure 3 montre la même information que celle des colonnes II et III de la figure 2 selon une présentation différente. La colonne IV donne la liste des modules et la colonne V celle des modules perturbateurs. La figure 3 montre que le module A est perturbé par les modules B, C et D; le module B est perturbé par le module C; le module C n'est perturbé par aucun autre module et le module D est perturbé par le module B. Le tableau selon la figure 3 peut par exemple être pro- grammé de manière définitive ou être établi lors de l'initialisation du calculateur. Selon le tableau de la fi- gure 3, deux modules se perturbent si au moins l'un des modu- les est enregistré dans la colonne IV et l'autre à la même ligne mais dans la colonne V. La figure 4 montre schématiquement un exemple de déroulement du programme du séquenceur 12 qui accède aux in- formations de la figure 2. Dans une première étape de pro- gramme 101, en fonction d'un état du système 2 ou d'autres conditions comme par exemple la fin d'une certaine durée, on émet une interrogation pour le séquenceur lui demandant le traitement d'un certain module; il s'agit par exemple du mo- dule A. Dans l'étape de programme suivante 102, par interro- gation de la première mémoire (comme celle représentée à la figure 2) on détermine les états que doit prendre en compte le module A (état Y, X, Z). Dans une étape de programme sui- vante 103, on détermine les modules (B, C, D) qui perturbent ces états X, Y, Z.5 De plus, dans l'étape 102, on constate en inter- rogeant la première mémoire, les états perturbés par le mo- dule A (dans le cas présent aucun état n'est perturbé). Dans l'étape de programme 103, on vérifie de façon correspondante les modules qui présentent de tels états. Dans l'étape de10 programme 104 suivante, en interrogeant d'autres mémoires, on détermine lesquels des modules perturbés par A ou perturbant A (modules B, C, D) sont à ce moment actifs; dans l'étape suivante 105, on décide à partir de telles informations, si le module A peut être activé. Si aucun module perturbateur15 (B, C, D) n'est actif et si l'activation du module A ne per- turbe aucun module activé, alors on libère l'activation du module A pour que le module A puisse être traité. Dans une autre étape de programme 106, on indique alors dans la seconde mémoire, que le module A est activé. Si l'activation du module A produit un conflit avec d'autres mo- dules déjà activés, on peut imaginer différentes possibili- tés. Ainsi, le séquenceur 12 peut par exemple dans l'étape , refuser l'activation du module A de sorte qu'il faudra essayer une nouvelle fois à un instant ultérieur, de déclarer le module A au séquenceur. Une autre possibilité consiste en ce que le séquenceur 12 décide dans l'étape 103 d'inactiver un module perturbateur et qu'ensuite on autorise l'activation du module A. Cela peut par exemple se faire selon des priori- tés attribuées aux modules. Dans l'étape de programme 106 suivante, on enregistre alors les modules actifs à ce moment. R E V E N D I C A T IONS 1 ) Appareil de commande (1) pour un système (2) notamment un véhicule automobile, un moteur ou une transmission, compor- tant un grand nombre de modules (10, 11) susceptibles d'être5 activés, les modules (10, 11) activés fournissant des infor- mations par l'observation des états du système (2), un sé- quenceur étant prévu pour activer les modules, caractérisé en ce qu' il comprend:10 - des premières mémoires contenant les informations concer- nant la perturbation réciproque des modules (10, 11), - des secondes mémoires contenant les modules (10, 11) déjà activés, - et le séquenceur (12) détermine à l'aide des premières et secondes mémoires, pour activer un autre module, si l'activation de cet autre module peut provoquer des pertur- bations entre les modules, et - le séquenceur (12) évite l'activation simultanée de modules (10, 1) qui se perturbent réciproquement. 2 ) Appareil de commande selon la revendication 1, caractérisé en ce que le séquenceur (12) évite l'activation simultanée de modules qui se perturbent réciproquement en ce que ce séquenceur (12) interdit l'activation de l'autre module (10, 11). 3 ) Appareil de commande selon la revendication 1, caractérisé en ce que le séquenceur (12) évite que des modules activés simultané- ment se perturbent réciproquement en ce que ce séquenceur (12) interrompt un module (10, 11) déjà activé et n'autorise qu'ensuite l'activation de l'autre module. 4 ) Appareil de commande selon l'une quelconque des revendi- cations précédentes, caractérisé en ce que les premières mémoires contiennent les modules qui se pertur- bent réciproquement lorsqu'ils sont activés simultanément. ) Appareil de commande selon l'une quelconque des revendi- cations 1 à 3, caractérisé en ce que les premières mémoires contiennent les états du système ob- serves par les modules activés et les états du système qui sont perturbés par les modules activés. 6 ) Appareil de commande selon l'une quelconque des revendi- cations précédentes, caractérisé en ce que les modules (10, 11) et le séquenceur (12) sont conçus comme des programmes de traitement par un microcalculateur (3). 7 ) Appareil de commande selon l'une quelconque des revendi- cations 1 ou 2, caractérisé en ce que les premières et secondes mémoires sont en forme de tableaux ou de matrices. 8 ) Appareil de commande selon l'une quelconque des revendi- cations précédentes, caractérisé en ce que des fonctions qui apparaissent comme une unité pour l'utilisateur ou qui sont utilisées pour la commande d'une fonction unitaire, sont réparties en plusieurs modules (10, 11) gérés séparément par le séquenceur (12). 9 ) Procédé de mise en oeuvre d'un appareil de commande (1) d'un système (2) notamment d'un véhicule automobile, d'un mo- teur ou d'une transmission, selon lequel on active des modu- les (10, 11) qui génèrent des informations par l'observation des états du système (2), caractérisé par - des premières mémoires contenant les informations relatives à la perturbation réciproque des modules, - des secondes mémoires dans lesquelles sont enregistrés les modules (10, 11) déjà activés, - pour activer un autre module, on détermine à l'aide des premières et secondes mémoires, si l'activation de cet au- tre module crée des perturbations entre les modules, et - on évite l'activation simultanée de modules qui se pertur- bent réciproquement. ) Procédé selon la revendication 9, caractérisé en ce qu' on évite l'activation d'un autre module (10, 11) pour éviter que des modules qui se perturbent réciproquement ne soient activés simultanément. 11 ) Procédé selon la revendication 9, caractérisé en ce que pour éviter que des modules activés simultanément ne se per- turbent réciproquement, on interrompt un module (10, 11) déjà activé et on autorise alors l'activation de l'autre module. 12 ) Procédé selon l'une quelconque des revendications 9 à 11 2(0 caractérisé en ce qu' on exécute les différentes étapes du procédé à l'aide d'un programme de traitement exécuté par un microcalculateur.