détermination de léquivalence comportementale dalgorithmes de contrôle - commande vincent...
Post on 04-Apr-2015
103 Views
Preview:
TRANSCRIPT
Détermination de l’équivalence comportementale
d’algorithmes de contrôle - commande
Vincent GOURCUFF, Olivier De SMET, Jean-Marc FAURE
AFADL 2006 16/03/2006 2
Plan de la présentationIntroduction
• Contexte• Problématique industrielle
Approche proposée• Equivalence comportementale• Principes• Verrous scientifiques
Modélisation d’algorithmes de commande• Objectif• Principes• Règles de modélisation
Synchronisation des modèles• Principes• Exemple
Conclusions• Résultats• Apports et perspectives
Introduction
AFADL 2006 16/03/2006 3
Contexte
Site de contrôle
Turbine électrique
Centrale thermique
Raffinerie
Quelques chiffres• 16534 lignes de code C
• 1857 sorties
• 5094 entrées
Introduction
AFADL 2006 16/03/2006 4
Problématique industrielleCONTROCAD :
• Outil industriel de développement d’algorithme de commande.
• programmation du fonctionnement en FBD ou SFC [IEC 61131-3].
• Génération automatique de programme exécutable spécifique au matériel.
Processus à contrôler
Entrées Sorties
Utilisateur (cahier des charges)
Contrôleur industriel
CONTROCAD
Introduction
AFADL 2006 16/03/2006 5
Problématique industrielle (2)
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.
CO
NT
RO
CA
D
Utilisateur(cahier des charges)
Contrôleur industriel
Équivalence comportementale ?
FBD SFC
LEA
C
Exécutable
Approche proposée
AFADL 2006 16/03/2006 6
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
Approche proposée
AFADL 2006 16/03/2006 7
Modèle global
Principes
MODEL CHECKER (NuSMV [CCG+02])
Comportement équivalent ou nonDiagnostic en cas d’incohérence
Critère d’équivalence comportementale
Programme CProgramme LEA
BOO e1 = s1IF s1THEN BOO 0 = s2
s1 = e1;IF {s1}{ s2 = 0;}
La
ng
ag
e in
du
strie
lL
an
ga
ge
du
mo
de
l-ch
eck
er
Équivalence ?
Modèle du programme C
Modèle du programme LEA
Équations récurrentes
Équations récurrentes
Moniteur du CMoniteur du LEA
ETS
I
ETS
I
Approche proposée
AFADL 2006 16/03/2006 8
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)
Modèle générale1
s2_C
s1_C
s2_LEA
s1_LEA
Approche proposée
AFADL 2006 16/03/2006 9
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.
Modélisation d’algorithme de commande
AFADL 2006 16/03/2006 10
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.
Modélisation d’algorithme de commande
AFADL 2006 16/03/2006 11
Principes
e1
s1
s2
Moniteur
+ Moniteur du LEAETS
I
E I1 I2 S E I1 I2 SE I1 I2 S
t
BOO e1 = s1 (I1)
IF s1
THEN (I2)
BOO 0 = s2
e1s1
s2
Programme LEA
Modélisation d’algorithme de commande
AFADL 2006 16/03/2006 12
Règles de modélisation
Programme LEA
BOO e1 = s1IF s1THEN
BOO 0 = s2
Modèle en équations récurrentesnext(e1):= {0,1};next(s1):= next(e1);next(s2):= case
next (s1) : 1;! next(s1) : s2;
esac;
Programme LEA
e1s1
s2
Affectation systématique des variables
Affectation conditionnelle des variables
+ Moniteur du LEAETS
I
Modélisation d’algorithme de commande
AFADL 2006 16/03/2006 13
Abstraction du temps physique de façon logique
Exemple [RS00] :• TON [IEC61131-3] : 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
InactiveIn = 0Q = 0
ActiveIn = 1Q = 0
EnclenchéeIn = 1Q = 1
In == 1
In == 0
In == 1
In == 1
In == 0
TON
QTON
s1= f (Q,...)
s2= f (Q,...)In = f (e1,...)
Q
time
e1
In
Synchronisation des modèles
AFADL 2006 16/03/2006 14
Principes
Modèle global :• 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)
Modèle programme LEA
Modèle programme Ce1
s2
s1
s2
s1Modèle générale1
s2_C
s1_C
s2_LEA
s1_LEA
time
e1
time
time
init(s1_LEA) = init(s1_C) init(s2_LEA) = init(s2_C)
Synchronisation des modèles
AFADL 2006 16/03/2006 15
ExempleModè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 Cnext(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)
Conclusions
AFADL 2006 16/03/2006 16
Résultats
Application industrielle : centrale thermique• 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 1857
Nombre de variables mémorisées 1857 636
Temps total de vérification sur Pentium 2.6 GHz
49.7 s 11.52 s
États atteignables Min : 1048830Max : 7.922820061e+028
Min : 1048580Max : 7.922820059e+028
Temps de traduction automatique 1 min 1 min
Conclusions
AFADL 2006 16/03/2006 17
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.
top related