La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Vincent GOURCUFF, Olivier De SMET, Jean-Marc FAURE

Présentations similaires


Présentation au sujet: "Vincent GOURCUFF, Olivier De SMET, Jean-Marc FAURE"— Transcription de la présentation:

1 Vincent GOURCUFF, Olivier De SMET, Jean-Marc FAURE
Détermination de l’équivalence comportementale d’algorithmes de contrôle - commande Vincent GOURCUFF, Olivier De SMET, Jean-Marc FAURE

2 Plan de la présentation
Introduction Contexte Problématique industrielle Approche proposée Equivalence comportementale Principes Verrous scientifiques Modélisation d’algorithmes de commande Objectif Règles de modélisation Synchronisation des modèles Exemple Conclusions Résultats Apports et perspectives

3 Contexte Site de contrôle Centrale thermique Raffinerie
Introduction Contexte Centrale thermique Site de contrôle Raffinerie Quelques chiffres 16534 lignes de code C 1857 sorties 5094 entrées Turbine électrique

4 Problématique industrielle
Introduction Problématique industrielle CONTROCAD : Outil industriel de développement d’algorithme de commande. programmation du fonctionnement en FBD ou SFC [IEC ]. Génération automatique de programme exécutable spécifique au matériel. Utilisateur (cahier des charges) CONTROCAD Entrées Sorties Contrôleur industriel Processus à contrôler

5 Problématique industrielle (2)
Introduction Problématique industrielle (2) Utilisateur (cahier des charges) Objectif industriel : Certification SIL 3 (norme sécurité fonctionnelle IEC 61508) Objectif scientifique : Déterminer si, quelles que soient les évolutions des entrées, les algorithmes émettent les mêmes sorties.  Équivalence comportementale Objectif du papier : Développer une méthode pour les langages intermédiaires LEA et C avec : Variables booléennes; Prise en compte du temps. FBD SFC LEA C Exécutable CONTROCAD Équivalence comportementale ? Contrôleur industriel

6 Equivalence comportementale
Approche proposée Equivalence comportementale Approche existante [Riv04] : Certification de la compilation pour le contrôle - commande aéronautique, par translation d’invariant. Vérifie le comportement interne des programmes exécutés non – cycliquement. Notre cas : Exécution cyclique du programme sur des contrôleurs industriels. Seule étape intéressante à vérifier : l’émission des sorties. Programme de commande (LEA) Moniteur BOO e1 = s1 IF s1 THEN BOO 0 = s2 lecture des Entrées Traitement programme émission des Sorties Initialisation émission des Sorties

7 Principes Approche proposée Modèle global
Langage industriel Langage du model-checker Programme LEA Moniteur du LEA Programme C Moniteur du C BOO e1 = s1 IF s1 THEN BOO 0 = s2 E T S I E T S I s1 = e1; IF {s1} { s2 = 0; } Équivalence ? Modèle du programme LEA Équations récurrentes Modèle du programme C Équations récurrentes Modèle global Critère d’équivalence comportementale MODEL CHECKER (NuSMV [CCG+02]) Comportement équivalent ou non Diagnostic en cas d’incohérence

8 Critère d’équivalence comportementale
Approche proposée Critère d’équivalence comportementale Propriété En fin de cycle du moniteur, les sorties ont toujours la même valeur dans chaque modèle de programme LEA et C. Condition : synchronisation des modèles dans le modèle global. Propriété en logique temporelle CTL AG(S1_LEA = S1_C) s1_LEA Modèle général s2_LEA e1 s1_C s2_C

9 Verrous scientifiques
Approche proposée Verrous scientifiques Modéliser efficacement les programmes industriels de grande taille dans le langage du model-checker NuSMV. Synchroniser les modèles de programme dans un modèle global pour vérifier leur équivalence comportementale. Optimiser le modèle obtenu.

10 Modélisation d’algorithme de commande
Objectif Ne s’intéresser qu’à l’état des sorties en fin de cycle du contrôleur : Réécriture en système d’équations récurrentes, avec : Variables booléennes ; Structures conditionnelles ; Prise en compte du temps ; Gestion des multiples affectations. 1 pas de calcul du model-checker = 1 cycle du contrôleur. Existant : [Ros03], [RdSLC+00] : modélisation fine des langages, non adaptée aux grands programmes. [Moo94], [Car05] : premières approches utilisant les équations récurrentes, mais restreintes en possibilités.

11 Principes s1 e1 s2 + Moniteur du LEA
Modélisation d’algorithme de commande Principes BOO e1 = s (I1) IF s1 THEN (I2) BOO 0 = s2 e1 s1 s2 Programme LEA E T S I + Moniteur du LEA Moniteur e1 s1 s2 E I1 I2 S t

12 Règles de modélisation
Modélisation d’algorithme de commande Règles de modélisation E T S I Programme LEA e1 s1 s2 + Moniteur du LEA Programme LEA BOO e1 = s1 IF s1 THEN BOO 0 = s2 Modèle en équations récurrentes next(e1):= {0,1}; next(s1):= next(e1); next(s2):= case next (s1) : 1; ! next(s1) : s2; esac;  Affectation conditionnelle des variables  Affectation systématique des variables

13 Abstraction du temps physique de façon logique
Modélisation d’algorithme de commande Abstraction du temps physique de façon logique Exemple [RS00] : TON [IEC ] : Temporisation à retard d’enclenchement. Indéterminisme entre active et enclenché doit être commun aux DEUX modèles  Variable "time" supplémentaire d’entrée caractérisant cette indéterminisme In == 1 In == 1 In Q TON Inactive In = 0 Q = 0 Active In = 1 Q = 0 In == 0 In == 0 Enclenchée In = 1 Q = 1 In == 1 s1= f (Q,...) time Q TON In = f (e1,...) e1 s2= f (Q,...)

14 Principes Modèle global : Synchronisation des modèles
Contient le modèle de chaque programme LEA et C. Indéterminisme commun : Entrées communes. Indéterminisme commun de l’abstraction logique du temps. Initialisation identique : Pour toutes les sorties s du programme, init(s_LEA) = init(s_C) init(s1_LEA) = init(s1_C) init(s2_LEA) = init(s2_C) time Modèle programme LEA s1 s1_LEA e1 s2 Modèle général time s2_LEA e1 time Modèle programme C s1 s1_C e1 s2 s2_C

15 Modèle du programme LEA
Synchronisation des modèles Exemple Modèle du programme LEA next(e1):= {0,1} next(s1):= next(e1) next(s2):= case next(s1) : 1; !next(s1) : s2; esac; Modèle du programme C next(e1):= {0,1} next(s1):= next(e1) next(s2):= s2 | next(s1) | next(e1) Init(s1_LEA)= Init(s1_C) Init(s2_LEA)= Init(s2_C) next(e1):= {0,1} next(s1_LEA):= next(e1) next(s1_C):= next(e1) next(s2_LEA):= case next(s1_LEA) : 1; ! next(s1_LEA) : s2_LEA; esac; next(s2_C):= s2_C | next(s1_c) | next(e1) Propriétés à vérifier : AG(s1_LEA = s1_C) AG(s2_LEA = s2_C)

16 Résultats Application industrielle : centrale thermique Conclusions
175 programmes soit : 16534 lignes de code C; 11763 lignes de code LEA. 1857 sorties booléennes. 5094 entrées booléennes. Modèle sans optimisation Modèle avec optimisation Nombre de variables de sortie 1857 Nombre de variables mémorisées 636 Temps total de vérification sur Pentium 2.6 GHz 49.7 s 11.52 s États atteignables Min : Max : e+028 Min : Max : e+028 Temps de traduction automatique 1 min

17 Apports et perspectives
Conclusions Apports et perspectives Apports : traduction de langages industriels en langage model-checker (NuSMV). détermination de l’équivalence comportementale entre deux programmes. optimisation des modèles par réduction du nombre de variables mémorisées. application industrielle : traitement de cas. Travaux en cours : vérification des variables entières et réelles. abstraction automatique de blocs fonctionnels. application aux autres langages de la chaîne de développement du logiciel.


Télécharger ppt "Vincent GOURCUFF, Olivier De SMET, Jean-Marc FAURE"

Présentations similaires


Annonces Google