Chapitre 1. Systèmes Temps Réel 1.Introduction : Depuis quelques années, l’avènement du numérique a conduit à intégrer une très forte automatisation dans tous les processus industriels. Ainsi le dénominateur commun de toutes ces systèmes de commande est la fourniture de fonctionnalités toujours plus sophistiquées et un nombre élevé de fonctions débordant largement l’utilisation de base (visualisation des commandes, liaison Internet, sûreté de fonctionnement robustesse, tolérance aux fautes, répartition, maintenance rapide et aisée…). Ce développement, est due principalement à la progression et l’adaptation de l’électronique, l’automatique et l’informatique. : ▶ Électronique : processeur multifonction (microcontrôleur), processeurs multicœurs, processeur à faible consommation, réalisation de circuits électroniques dédiés (FPGA), automates programmables etc. ▶ Automatique : lois de régulations adaptées, régulation numérique, commande adaptative etc. ▶ Informatique : méthodes et méthodologies de développement, systèmes d’exploitation ou exécutifs embarqués, langages applicatifs, méthodes de tests et de validations, etc. Les systèmes analogiques de type électromécanique ou électronique ont rapidement fait place à des systèmes purement numériques ; seuls les capteurs et les actionneurs, faisant le lien vers le monde réel, sont toujours analogiques. Les concepteurs de ces applications ont des méthodes basées sur l’aspect fonctionnel : schémas blocs, grafcets, etc. En effet, la spécification et la conception de telles applications sont plus aisées lorsqu’elles sont pensées en termes de fonctions ou de traitements des données. Aussi les langages dédiés à ce type d’applications sont tout naturellement des langages fonctionnels à exécution séquentielle comme le langage C, les assembleurs ou le langage flot de donnée LabVIEW Dans ce cours nous allons nous intéresser particulièrement à l’aspect matériels nécessaires à l’appréhension des systèmes commandés en temps réel par un microcontrôleur. Toutefois, étant donné le développement lié entre les deux parties « matériel et logiciel », nous allons présenter quelques notions sur la programmation des algorithmes en langage Arduino, ou microcontrôleur dédié au contrôle de ces procédés et enfin un exemple de contrôle de vitesse d’un moteur à courant continu par microcontrôleur Arduino est detaillé en fin de ce manuscrite 1 Chapitre 1. Systèmes Temps Réel 2. Définitions : 2.1. Les différentes définitions du "temps réel" La notion de temps L'expression "temps réel" est apparue aux débuts des années 1950 chez les informaticiens scientifiques et militaires. Il ne s'agissait pas de l'expression "temps réel" mais de son équivalent anglais "real-time". Dans le Collins : "denoting or relating to a data-processing system in which a computer receives constantly changing data, such as information relating to air-traffic control, travel booking systems, etc, and processes it sufficiently rapidly to be able to control the source of the data". On trouve aussi la définition suivante pour "in real time : at once, instantaneously". Dans le dictionnaire de la délégation Générale à la Langue Française, le terme "temps réel" est défini par : "Mode de traitement qui permet l'admission des données à un instant quelconque et l'obtention immédiate des résultats." Lorsqu'on parle de "temps" dans l'expression "temps réel", parle-t-on du temps physique et donc par définition du temps local de l'observateur ? Ou bien du temps logique, rythmé par la cadence d'horloge de l'ordinateur, un temps discret par définition, instable (il a la stabilité de la référence qui le génère) et fini ? Evidemment, il s'agit de la seconde hypothèse. Et cela borne en les minorant la notion de "suffisamment rapide" et d'"immédiat". Le délai de temps le plus petit mesurable est le pas temporel de l'horloge de l'ordinateur, variable entre quelques nanosecondes et quelques microsecondes selon les machines. Et que dire du mot "réel" ? Existerait-il en informatique un temps imaginaire ? Quelle est la réalité du temps ? En physique comme en informatique, nous mesurons des durées, c'est à dire des intervalles de temps et dans un ordinateur, chaque intervalle est un multiple du pas temporel d'horloge de l'ordinateur. En physique, nous ne savons pas si notre temps est discret (il l'est probablement), ni même ce qu'est réellement le temps. En bref, la notion de "temps" en informatique n'a pas grand-chose à voir avec le temps des physiciens. Mais l'avantage, c'est qu'on peut le quantifier rigoureusement car il possède une origine (la mise sous tension de l'ordinateur) et une unité fondamentale, le pas d'horloge de l'ordinateur L'expression "temps réel" désigne finalement le plus souvent une image du monde réel, ou du moins d'une de ses parties, à un instant donné. 2 Chapitre 1. Systèmes Temps Réel 2.2. Les systèmes "temps réel" Dans un système "temps réel" ou système TR, ce qui importe ce n'est pas tant qu'il réponde "immédiatement" ou "suffisamment rapidement" à une information, le même selon qu'il s'agisse de piloter un missile à 3 Mach ou une voiture à 100 km/h. Mais par contre, il est essentiel que le traitement de l'information soit fait dans le délai imparti. Imaginez que le régulateur de vitesse de votre voiture, qui est un système TR, réagisse en une milliseconde ou une seconde au grès de la température ou de la pression atmosphérique ! Un système TR est un système qui réagit, dans un temps spécifié, aux informations provenant de son environnement. Le délai que le concepteur lui accorde pour réagir déterminera la classe de systèmes TR à laquelle il appartient. La définition que le CNRS donne à un système TR et qui habituellement utilisée chez les informaticiens scientifiques et militaires est : "le comportement d'un système informatique est qualifié de "temps réel" lorsqu'il est assujetti à l'évolution d'un procédé qui lui est connecté et qu'il doit piloter ou suivre en réagissant à tous ses changements d'états" (CNRS - Le temps-réel. TSI - Technique et Science Informatique. 1988 vol 7 p 493-500) Figure.1. Principe d'un système temps réel Un système TR qui produirait un résultat de calcul logiquement correct mais en dehors du délai accordé pour exécuter ce calcul serait un système défaillant. Cette condition a des répercussions importantes sur la conception et la validation des systèmes TR. 3 Chapitre 1. Systèmes Temps Réel Autre caractéristique essentielle d'un système TR : il doit être déterministe. En l'espèce, cela signifie qu'il doit être possible lors de la conception du système de prévoir avec certitude son comportement temporel en fonction des contraintes de charges et environnementales. En fait, cette caractéristique découle de l'impératif de garantir le respect des dates d'échéance de traitement. Cette caractéristique implique des contraintes fortes sur les architectures matérielles des systèmes TR. un système TR n'est pas obligatoirement un système rapide ! C'est le respect des contraintes temporelles qui qualifie un système TR, pas sa rapidité de traitement. Mais bien sûr, si les contraintes temporelles sont élevèes, une puissance et une rapidité de traitement seront indispensables. 2.3. Classification des systèmes "temps réel" On distingue deux grandes classes de systèmes TR: le temps réel "dur" et le temps réel "mou". La différence ne tient pas tant dans la valeur du délai de réaction spécifié que dans le respect de ce délai. Considérons une tâche d'acquisition Ai, périodique de période Ti. Soit Si le début de la tâche Ai et Di la date d'échéance de Ai, c'est à dire la date à laquelle les résultats doivent être disponibles. Le délai de réaction du système spécifié sera donc Di - Si, avec évidemment Di-Si < Ti. Soit Ci la durée du traitement. 2.3.1. Le temps réel "dur" Un système TR sera dit "dur" lorsque la totalité du traitement sera achevé avant Di, c'est à dire strictement inclus dans l'intervalle [Si, Di]. Si le traitement s'achève après Di, le système sera en défaut. L'essentiel est de respecter l'échéance de mise à disposition des résultats. On trouve les systèmes TR durs dans tous les systèmes embarqués destinés au pilotage, dans les systèmes de mesures des machines de physique de particules, dans les robots de chirurgie et autres systèmes critiques Exemples : contrôle aérien, contrôle d’une centrale nucléaire…. Ces systèmes doivent être parfaitement déterministes afin de garantir le temps de calcul. Cela exclut l'usage de réseaux non déterministes comme Ethernet, mais aussi les mémoires caches et les processeurs parallèles. Les systèmes d'exploitation des ordinateurs doivent garantir un ordonnancement des tâches compatibles avec ces exigences. Ce sont les OS "temps réel", par exemple VxWorks, VRTX, LynxOS, qui sont normalisés Posix temps réel P1003.4, ou plus vieux HP RTE ou RTX-11. 4 Chapitre 1. Systèmes Temps Réel En conclusion La réponse du système temps dur dans les délais est vitale. L’absence de réponse est catastrophique 2.3.2. Le temps réel "mou" Un système TR sera dit "mou" lorsqu’il est toléré que le traitement débute dans l'intervalle [Si, Di] mais s'achève après Di mais avant Ti. Si le traitement s'achève après Ti, le système sera en défaut. Le dépassement de l'échéance Di ne doit pas être systématique, les tolérances étant spécifiées lors de la conception du système. Les systèmes de supervision et une bonne partie des systèmes de contrôle/commande (SCADA) sont des systèmes temps réel mous, avec des tolérances de dépassement de l'échéance Di plus ou moins sévères selon le procédé sous contrôle. Exemples : VoD, logiciel embarqué de votre téléphone, iPod, etc. La réponse du système après les délais réduit progressivement son intérêt. Les pénalités ne sont pas catastrophiques. 2.4. Système temps réel en industrie En industrie les systèmes à commande en temps réel sont avant tout des systèmes de contrôle-commande. Un système de contrôle-commande est un système informatique de contrôle de procédé. Le terme procédé est un terme Générique désignant un système physique contrôlé. Afin de contrôler le procédé, le système informatique est en relation avec l’environnement physique externe par l’intermédiaire de capteurs et/ou d’actionneurs actuateur. Les grandeurs physiques acquises grâce aux capteurs permettent au système de contrôle commande de s’informer de l’état du procédé ou de son environnement. Le système de contrôlecommande, à partir de consignes décrivant l’état voulu du procédé, calcule des commandes qui sont alors appliquées sur le procédé par l’intermédiaire d’actionneurs. Donnons ainsi la définition générale d’un système contrôle commande Définition : « Un système de contrôle-commande reçoit des informations sur l’état du procédé externe par le(s) capteur(s), traite ces données par calculateur(s) et, en fonction du résultat, évalue une décision qui agit sur cet environnement extérieur par (pré) actionneurs afin d’assurer un état voulu le tout peut être supervisé par un operateur ». 5 Chapitre 1. Systèmes Temps Réel Figure 2. Structure d'un système temps réel 2.5 Exemple typique des système temps réel : Figure 3. Système temps réel 1 6 Chapitre 1. Systèmes Temps Réel Figure 4 Système de contrôle de débit Figure.5 Système de contrôle de la production 7 Chapitre 1. Systèmes Temps Réel Conclusion : Un système à commande numérique en temps réel est un système de control-commande que ce soit embarquées ou non observe le procèdes ou le processus à contrôlé en temps réel et acquis des informations ou des mesures sur son état par les capteurs, puis traite ces informations et élabore des commandes suivant un programme soft sauve gardé dans la mémoire programme du calculateur en un temps inferieurs au période d’acquisition. Ces ordres seront appliquées par le biais de pré actionneur au actionneur pour Controller les grandeurs de sortie 8