Nous suivre Industrie Techno

Le temps réel n'accepte aucune approximation

Youssef Belgnaoui

Sujets relatifs :

,
Le développement d'une application embarquée temps réel exige la maîtrise de toutes les contraintes temporelles de l'environnement que le logiciel doit contrôler.

Chacun sait qu'il vaut mieux ne pas confondre vitesse et précipitation. Or lorsque l'on évoque des applications embarquées, on assimile souvent le temps réel à la vitesse d'exécution. Ce qui n'est pas exactement le cas. Personne ne s'étonnera que l'opération de contrôle d'un robot soit qualifiée de temps réel s'il est, par exemple, possible d'exécuter un programme de contournement d'objet dans les 500 millisecondes qui suivent la détection d'un obstacle. En revanche, beaucoup seront surpris d'apprendre que le programme de gestion de paie d'une entreprise est temps réel, si les salaires sont virés sur les comptes des employés entre 8 heures et 20 heures le 31 du mois, ce qui laisse un créneau de 12 heures où le temps de réponse est acceptable.

L'échelle de temps dépend du système

L'aspect temps réel ne peut donc être considéré sous le seul critère de la rapidité d'exécution. Le temps réel est avant tout la capacité d'une application de répondre à une sollicitation en un temps déterminé et adéquate pour produire une réaction appropriée. Dans un système temps réel, un résultat de calcul mathématiquement exact mais arrivant au-delà d'une échéance prédéfinie est un résultat faux. Il est indispensable que l'information après acquisition et traitement reste encore pertinente. Ce qui signifie que, dans le cas d'une information arrivant de façon régulière, les temps d'acquisition et de traitement doivent rester inférieurs à la période de rafraîchissement de cette information. La remarque vaut bien entendue pour toute application embarquée, quel que soit le produit.

L'échelle de temps dépend de la nature de l'environnement contrôlé et les temps de réponses seront en relation avec la constante de temps dominante dans cet environnement. L'échelle des temps dépend du système. Elle peut aller de quelques millisecondes pour un système de navigation aérienne à plusieurs minutes ou heures pour le contrôle d'un réacteur chimique. Le concept clé du temps réel est le déterminisme. Les contrôles mis en place dans une application n'impliquent pas nécessairement la notion de durée mais plutôt de déterminisme dans la réponse à l'événement.

Assurer le déterminisme est l'une des difficultés majeures des systèmes d'exploitation traditionnels tels Unix, Linux ou Windows. Car ces systèmes d'exploitation sont multitâches. Or ils utilisent du matériel basé sur des processeurs qui ne le sont pas. Ce qui oblige le système à partager le temps du processeur entre les différentes tâches.

Ordonnancer les tâches et gérer les priorités

La notion de priorité entre les tâches est peu prise en compte, car le but premier est le partage équitable du temps entre les différentes tâches du système. « Windows ne gère pas les priorités comme un système d'exploitation temps réel. Il est donc difficile de réaliser sous cet environnement une application préemptive qui va pouvoir prendre la main lorsqu'on en a besoin », explique Etienne Suc, expert technique chez National Instruments.

Si différentes tâches doivent accéder à des ressources dites partagées cela conduit à des incertitudes temporelles. Dans les systèmes multitâches se pose le problème de l'ordonnancement, d'autant plus délicat lorsqu'il faut gérer la forte contrainte du temps réel. Les systèmes d'exploitation temps réels tels que VxWorks de Wind River ou QNX Neutrino de QNX ou encore RT Linux sont capables d'ordonnancer des tâches et de gérer les priorités de façon à assurer le déterminisme de l'application. « Ils mettent en oeuvre différentes politiques d'ordonnancement des tâches. Celles-ci choisissent la meilleure tâche à exécuter selon des critères propres à l'application afin de séquencer les tâches de manière prédictive », indique Jean-Louis Lanet, ingénieur spécialiste à l'Inria.

Le système temps réel devra donc satisfaire à des contraintes temporelles strictes, prévues à l'avance et imposées par le processus extérieur à contrôler. L'évaluation préalable du temps d'exécution des tâches est donc indispensable. « Une analyse grossière est réalisée pour les estimer. Il est difficile de déterminer exactement ces temps. Ceux-ci dépendent des chemins d'exécution des tâches par le processeur », poursuit Jean-Louis Lanet. La simulation du code et le calcul du temps moyen d'exécution permettent de déterminer quelle partie du programme consomme un certain temps de calcul CPU. Mais la connaissance exacte du temps d'exécution est toujours un peu aléatoire. De plus, les calculs de taux d'utilisation du processeur ne sont pas toujours suffisants. Il faut tenir compte de l'environnement temporel complet du système alors que toutes les situations ne sont pas toujours prévisibles.

Avant de se lancer dans le développement d'un programme temps réel, il faut maîtriser tous les aspects temporels de l'application aussi bien du côté matériel que logiciel. « Car un système temps réel est une association logiciel/matériel où le logiciel permet, entre autres, une gestion adéquate des ressources matérielles en vue de remplir certaines tâches ou fonctions dans des limites temporelles bien précises », observe Patrice Kadionik, maître de conférences à l'École nationale supérieure d'électronique, informatique et radiocommunications de Bordeaux (Enseirb).

Aucun aspect temporel ne doit être ignoré

Dans certaines applications de contrôle commande industrielles, le déterminisme est de rigueur. Les machines ou les appareils doivent être contrôlés très précisément pour répondre à des contraintes de qualité élevée. « L'unité de contrôle commande doit être absolument synchrone avec l'application et travailler à la fréquence exigée par les machines. Elle doit opérer à une fréquence au moins deux fois supérieure à celle de la machine pour ne rater aucun événement », note Robert Jay, président et directeur technique d'UXP. Le logiciel de contrôle prend en compte l'état des entrées/sorties, les valeurs fournies par les capteurs, la position des actionneurs et toute une série d'informations qui seront traitées afin de prendre la décision appropriée. Pour assurer le déterminisme de l'application, aucun aspect temporel des périphériques de la machine ne doit être ignoré. « Les temps d'accès aux entrées, la cadence d'acquisition, le temps de réaction des actionneurs, le temps de réponse des capteurs, la durée des échanges sur un bus font partie des données temporelles indispensables à la fiabilité d'une application temps réel », poursuit Robert Jay. En définitive, le temps réel a horreur des imprévus.

LES POINTS CLÉS

Choisir des primitives d'ordonnancement adaptées à l'application. Évaluer le plus précisément possible les temps d'exécution de chacune des tâches. Prendre en compte toutes les contraintes temporelles de l'application qu'elles soient matérielles ou logicielles.

UN KIT TEMPS RÉEL PRÊT À L'EMPLOI

Le choix du matériel et du logiciel adapté à une application de contrôle/commande déterministe n'est pas forcément à la portée de tout automaticien. Pour leur simplifier la tâche, UXP a conçu Opral, une solution d'automatisme temps réel prête à l'emploi. « Il s'agit d'une solution universelle qui se situe entre le PC et l'automate, ouverte à tout un panel de cartes d'entrées/sorties connectées à la plupart des bus standard. Elle vise particulièrement des applications de contrôle en production exigeant des temps de cycle de 100 µs à 5 ms alors qu'un automate rapide s'arrête à 5-10 ms », explique Robert Jay d'UXP. Autre avantage de cette solution, elle n'exige pas de connaissance d'un système d'exploitation temps réel ni de programmation textuelle. L'utilisateur décrit son application en Grafcet au sein de l'environnement Alograf qui produit ensuite automatiquement et de façon transparente le code de commande qui garantit le fonctionnement de son application dans le respect des conditions temporelles prédéfinies.

vous lisez un article d'Industries & Technologies N°0854

Découvrir les articles de ce numéro Consultez les archives 2004 d'Industries & Technologies

Bienvenue !

Vous êtes désormais inscrits. Vous recevrez prochainement notre newsletter hebdomadaire Industrie & Technologies