Projet : EP-ATR

previous up next contents
Précédent : Modèle comportemental de systèmes à Remonter : Résultats nouveaux Suivant : Vérification et validation


Sous-sections


   
Format commun DC+ et multi-formalisme

 



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 .

Résumé :

Le format DC+, issu des travaux des projets européens Synchron et Sacres, permet de représenter, par delà un langage particulier, la paradigme «flots de données synchronisés». Il constitue aussi un format concret, servant de vecteur commun de représentation, pour des programmes ou des propriétés sur lesquels on souhaite appliquer des transformations définies dans le cadre du modèle synchrone. C'est le cas notamment pour le projet Sacres (voir section 7.4), où DC+ est utilisé pour représenter des programmes Signal et Statecharts, sur lesquels peuvent être appliqués des outils de vérification et de génération de code. L'interopérabilité entre Statecharts et Signal soulève des problèmes de composition de comportements différents, de non déterminisme, de communication entre entités, que nous traitons dans le cadre sémantique unifié fourni par DC+. La même approche est appliquée dans le contexte différent des langages de la norme IEC 1131 concernant les automatismes industriels (comprenant le Grafcet ainsi que différents langages graphiques et textuels).

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 $ \rightarrow$   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+ $ \rightarrow$  Lustre a été réalisé (Lustre disposant d'un traducteur vers DC) et il serait souhaitable de disposer d'un traducteur Lustre $ \rightarrow$  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.

Spécification multi-formalisme avec Statecharts et Signal


  

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.

   
Modélisation synchrone de la norme IEC 1131 de programmation des systèmes de contrôle


 

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.



previous up next contents
Précédent : Modèle comportemental de systèmes à Remonter : Résultats nouveaux Suivant : Vérification et validation