Précédent : Modèle comportemental de systèmes à
Remonter : Résultats nouveaux Suivant :
Vérification et
validation
Participants : Jean-René Beauvais, Albert Benveniste, Loïc
Besnard, Thierry Gautier, Fernando Jiménez Fraustro, Paul Le
Guernic, Mirabelle Nebut, Éric Rutten, Yan-Mei Talpin-Tang.
Mots clés : format commun, DC+, programmation synchrone, Signal, Statecharts, automatismes industriels, norme IEC 1131, Grafcet .
Des extensions au format DC+ et au sous-format synchrone DC ont été proposées et sont en cours de discussion dans le cadre du projet Syrf (voir section 7.5). Il s'agit principalement d'une meilleure prise en compte de la généricité et de l'ajout de définitions case pour la spécification d'automates.
La mise en oeuvre de la «machine virtuelle DC+» (au sens où la compilation d'un programme est vue comme une suite de transformations qui s'appliquent à un programme DC+) s'est poursuivie par la mise en commun des structures de représentation de graphes de Signal V4 et de DC+ (voir section 6.1). Les mêmes fonctionnalités sont ainsi offertes pour les deux formalismes. Cela a notamment nécessité la réécriture des transformations inter-formats définies sur DC+ (voir section 7.4).
Dans le cadre du projet Syrf, il est prévu de réaliser la
transformation STS
DC ( b
DC+, STS et DC sont
respectivement les sous-formats de DC+ tels
que : en b DC+, la hiérarchie des horloges
est construite; en STS, toutes les horloges sont
définies à l'horloge la plus rapide; en DC, tous
les signaux sont définis à la même horloge -- voir
section 7.4).
Parallèlement, la prise en compte du langage Lustre à un niveau
plus élevé que celui du format synchrone DC est
envisagée. Un prototype de traducteur b DC+
Lustre a été réalisé
(Lustre disposant d'un traducteur vers DC) et il
serait souhaitable de disposer d'un traducteur Lustre
b DC+.
Par ailleurs, nous avons expérimenté la génération de code modulaire fournie par l'environnement Signal- DC+ sur une application décrite en Esterel et en Lustre pour laquelle les représentations DC des programmes avaient été générées.
L'interopérabilité entre Statecharts et Signal est étudiée dans le cadre du projet Sacres sous l'angle d'une traduction des formalismes de Statemate en équations Signal ou DC+. Combiner les choix de conception différents des langages constitue le sujet de réflexion de ce travail. Par exemple, les variables de Statemate ont une valeur au départ de la réaction, qui est celle prise en compte dans toutes leurs apparitions dans des calculs; leur nouvelle valeur, le cas échéant, ne sera prise en compte qu'à la réaction suivante. Par contraste, les signaux de Signal (en particulier les événements et booléens) prennent à un instant donné une valeur qui est la solution du système des diverses équations qui s'appliquent à lui.
Des schémas de traduction des Statecharts vers Signal ont été définis [[17],[18],[42]] pour la sémantique Statemate des Statecharts définie par David Harel. Ces schémas couvrent l'essentiel des fonctionnalités offertes par les langages de Statemate. Pour les Statecharts, il s'agit notamment de la concurrence et la hiérarchie d'automates, de la gestion de l'historique des sous-automates suspendus, des actions complexes, des static reactions et des mini-spec. Pour les Activitycharts, il s'agit du contrôle de leur activation, de leur hiérarchie, et des actions associées. Le langage impératif séquentiel des actions associées aux transitions et aux états est modélisé en utilisant la notion de sur-échantillonnage Signal pour rendre compte des boucles non bornées.
Ces schémas sont utilisés pour implémenter un traducteur automatique vers le format DC+ dans le cadre du projet Sacres [[52]]. Ce traducteur est interfacé avec l'outil commercial Statemate Magnum développé par la société i-Logix, et produit du code DC+, qui peut alors être utilisé comme point d'entrée des outils construits autour de DC+ : générateur de code séquentiel ou distribué, preuves, évaluation de performances. Des exemples industriels fournis par British Aerospace et la Snecma serviront de cas d'étude à l'application de ces outils.
Les systèmes de contrôle industriels sont des systèmes à la fois complexes et à la sécurité critique. Leur conception repose sur des standards, tels que la norme de l'International Electrotechnical Commission IEC 1131 [IEC93], et en particulier sa partie IEC 1131-3 concernant les langages de programmation. Nous travaillons à l'intégration de ce standard de spécification et de l'environnement de programmation synchrone Signal : il s'agit d'établir un modèle de ces langages, visant à offrir à de telles spécifications l'accès aux outils des techniques synchrones.
Les langages concernés sont deux langages textuels : Instruction List, IL, proche de l'assembleur, et le texte structuré Structured Text, ST, un langage impératif séquentiel, de la famille de Pascal, Ada, ou C; et deux langages graphiques : les schémas à relais (Ladder Diagrams, LD), et les diagrammes de blocs-fonctions (Functional Block Diagrams, FBD). En plus de ces langages, la norme utilise le Grafcet comme langage graphique pour la modélisation des aspects fonctionnels et comportementaux des systèmes de contrôle.
Leur modélisation en Signal va réutiliser des résultats de l'étude sur l'interopérabilité entre Statemate et Signal. Notamment ceux de la modélisation du langage impératif des actions de Statemate, qui comporte des boucles conditionnelles non bornées, doivent pouvoir servir pour ST.