Résumé

Au cours de ces quatre mois, j'ai eu à développer trois outils indépendants, sachant que l'un de ceux-ci n'était pas prévu dans le sujet de stage d'origine, et qu'un quatrième était prévu mais n'a pas été réalisé.

Tout d'abord, après l'irremplaçable phase d'apprentissage du sujet, il a fallu que je me familiarise avec l'environnement de travail, et avec le CML.

Ce logiciel (pour « Centre de Maintenance des Logiciels ») sert à gérer la configuration et le cycle de vie de tous les logiciels des matériels participant au contrôle-commande sur le site.

Il comportait deux modules ne fonctionnant pas correctement, et que j'avais à corriger : « MAP EDV » et « Incohérence Bailey » ; ce dernier ayant été abandonné au cours du stage.

Cette étape terminée, j'ai entamé le travail à proprement parler par la correction du logiciel MAP EDV.

Ce logiciel sert à produire des tableaux répertoriant les différents EDV* d'un automate SMC 600 en analysant son programme automate. Il ne pouvait plus imprimer les résultats, ni afficher les checksums effectués sur les fichiers automates, et ne réussissait pas à charger les libellés associés aux bits de commande des différents EDV.

Il a donc fallu corriger ce logiciel. En raison des contraintes et de la nature sensible des informations traitées par le CML, j'ai du travailler sur une partie seulement du logiciel : pas question de le tester en environnement réel.

J'ai donc travaillé isolément du CML et corrigé MAP EDV sans le tester complètement. En plus des problèmes évoqués ci-dessus, j'ai corrigé quelques bugs relevés au cours de mon travail, comme par exemple :

De plus, j'ai apporté quelques améliorations dont l'agrandissement de la zone du tableau ou apparaissent les libellés : cette zone faisait seize caractères de long, comme défini dans le standard UP3 chimie. En pratique la majorité des automates ne respectent pas cette règle car ils ont été programmés avant qu'elle apparaisse ; et ils utilisent donc les quarante caractères permis par le constructeur. Dans ce cas les seize premiers caractères n'apportent rien (par exemple dans le cas de « CDE+REC EDV9 16 CHAUF. / REFROID. » seuls les 20 derniers caractères sont vraiment utiles).

Après cette phase, il a été décidé de porter « MAP EDV » sous Windows NT (l'original fonctionnant sous VMS*) plutôt que de travailler sur « Incohérence Bailey ».

Le logiciel devait disposer d'une interface graphique permettant de choisir entre un calcul « local », effectué à partir des fichiers automate du disque dur, ou un calcul « CML », effectué par le serveur CML à partir de ses propres fichiers, à développer plus tard.

Après quelques ajustements du code pour le rendre portable sous NT et sous VMS à la fois, le programme de calcul des MAP EDV fonctionne en local.

En mode local l'utilisateur doit saisir les répertoires d'entrée, où sont les fichiers automates, et de sortie, où doit être créé le fichier de sortie contenant la MAP EDV. Il peut aussi les choisir en utilisant une boite de dialogue standard « parcourir ».

Le logiciel dispose aussi d'un module de visualisation des MAP EDV indépendant de tout autre logiciel, gérant aussi l'impression par le biais d'une boite de dialogue standard.

Seul le mode de calcul « CML » est encore à réaliser, mais il ne faisait pas partie des exigences pour ce stage.

Enfin, le dernier outil développé est un utilitaire de vérification de cohérence « état CML » / « Fichier de différenciation » pour cartes de régulation de type « MZR » et « MZJ ».

Toutes les nuits, le CML effectue une VLE (Vérification des Logiciels Embarques » pour contrôler la cohérence entre le logiciel embarqué sur le composant et la version de référence enregistrée dans sa base.

Le résultat de la VLE de chaque composant produit un « fichier de différenciation » contenant dans des tableaux le relevé de toutes les différences constatées. A partir de ces fichiers le serveur crée un « état CML » contenant l'état de chaque composant l'état de son programme (NDIS, DISC ou NCTL (Non DIScordant, DISCordant ou Non ConTrôLé)), ainsi que son état RAM (RNDI, RDIS ou RNCT).

Le but du logiciel est de vérifier pour chaque composant MZR ou MZJ du fichier d'état s'il n'y a pas eu de problème lors du passage du fichier de différenciation au fichier d'état CML.

Pour cela le logiciel effectue à nouveau le calcul de l'état à partir des fichiers de différenciation puis compare les résultats aux valeurs relevées dans l'état CML, ainsi qu'aux valeurs relevées dans les fichiers intermédiaires.

Il a par exemple été trouvé 7 discordances sur un atelier comprenant 131 cartes MZR et MZJ, discordances apparaissant dès les fichiers intermédiaires.

Cet outil, développé sous VMS, est à ce jour fonctionnel.


Retour à l'accueil.