DIRECTION DES SCIENCES DE LA MATIERE Département de Recherche sur l’Etat Condensé, les Atomes et les Molécules Service de Chimie Moléculaire Laboratoire Interdisciplinaire sur l’Organisation Nanométrique et Supramoléculaire Une architecture pour un système évolutif de contrôle-commande d’expériences de physique Olivier Taché 21 décembre 2006 21 décembre 2006 O. Taché Plan Contexte Problématique Architecture Couche abstraction Matériel-Logiciel – TANGO, principe – TANGO, fonctionnement – TANGO, outils associés – Architecture des device servers • Interface Homme-Machine – Choix de la ligne de commande – Python et TANGO – Accès à TANGO – Développement de la logique d’expérience • Conclusion et perspectives • • • • 2 21 décembre 2006 O. Taché Diffusion des rayons X aux petits angles Principe et application : Rayons X Grain de verre Enveloppe du verre intact t Enveloppe du verre altéré Enveloppe du coeur intact Echantillon Faisceau diffusé Quantité de rayons X diffusés Verre non altéré Verre altéré USAXS SAXS WAXS Angle de diffusion 3 21 décembre 2006 O. Taché Diffusion des rayons X aux très petits angles Le montage expérimental modèle : USAXS (Ultra Small Angle X-Ray Scattering) signal Rayons X signal 4 21 décembre 2006 O. Taché Diffusion des rayons X aux très petits angles Le montage expérimental modèle : USAXS (Ultra Small Angle X-Ray Scattering) signal Rayons X signal 5 21 décembre 2006 O. Taché Ancien système informatique Système informatique 2005 : • logiciel de contrôle-commande programmé en Visual Basic • Appels au matériels programmés en dur (commandes GPIB) GPIB Acquisition • Très peu de paramétrage du matériel • Très peu de paramétrage des séquences d'acquisition (réglages et expérience de routine) 6 21 décembre 2006 O. Taché • Matériel hétérogène • Modification du matériel • Étendre les possibilités Problématique GPIB Acquisition • Logique d’expérience non fixée • Plusieurs niveaux d’interaction utilisateurs • Déploiement sur d’autres expériences 7 21 décembre 2006 O. Taché Architecture Traitement Scientifique (analyse des données) Python TANGO Configuration Matérielle Application de physique (logique d'expérience) Couche d'abstraction Matériel-Logiciel Système de contrôle-commande Réseau de l’ESRF, Soleil, … Séparer l’application finale du matériel : une couche Abstraction Matériel Logiciel ● ● une interface Homme-Machine Machine 1 Machine 2 Protocole GPIB Acquisition E/S de Numériques données Contrôleur Contrôleur d'axes détecteurs moteurs Capteurs Actionneurs 8 21 décembre 2006 O. Taché TANGO, principe Expérience A Expérience B ? 9 21 décembre 2006 O. Taché TANGO, principe 10 21 décembre 2006 O. Taché TANGO, principe 11 21 décembre 2006 O. Taché TANGO, principe 12 21 décembre 2006 O. Taché TANGO, principe Bus logiciel Tango Bus logiciel : système permettant aux applications de communiquer 13 21 décembre 2006 O. Taché Configuration TANGO, fonctionnement Supervision Base de données Environnements utilisateurs: Labview, Matlab, Igor, Python Interfaces TANGO Bindings Bus Logiciel TANGO Logiciel (moteur…) (mesure…) 14 21 décembre 2006 O. Taché TANGO, outils associés Outils graphiques pour : • Démarrage • Configuration • Supervision • Synoptique Plusieurs représentations d’un Device Server 15 21 décembre 2006 O. Taché Configuration TANGO, fonctionnement Supervision Base de données Environnements utilisateurs: Labview, Matlab, Igor, Python Interfaces TANGO Bindings Bus Logiciel TANGO Logiciel (moteur…) (mesure…) 16 21 décembre 2006 O. Taché TANGO, fonctionnement DEVICE SERVER : •Programmé en C++, Java, maintenant Python •A la charge du développeur •Mais générateur de code On Off ... •Existe des bibliothèques de Device Servers position ... Pour pouvoir les réutiliser, il faut développer des DS simples et modulaires 17 21 décembre 2006 O. Taché Architecture de device servers radians mbar Véritable abstraction du matériel : l’utilisateur final accède à des variables en unités scientifiques 18 21 décembre 2006 O. Taché radians Architecture de device servers vecteur d'onde Devices Servers Evaluateur mathématique pas moteur radians Ampère Evaluateur mathématique picoAmpère Evaluateur mathématique V mbar Evaluateur mathématique Filters Shutter Contrôleur IT6DCA2 Contrôleur SR400 PicoAmpèremètre Keithley 615 GPIB Device GPIB Device GPIB Device Single Analogic Input Digital Input-Output Digital Input-Output Moteurs Micro-Contrôle Contrôleur SR400 Pico Ampèremètre Jauges à vide Atténuateurs Obturateur RX 19 21 décembre 2006 O. Taché radians Architecture de device servers vecteur d'onde Devices Servers Evaluateur mathématique pas moteur radians Ampère Evaluateur mathématique picoAmpère Evaluateur mathématique V mbar Evaluateur mathématique Filters Shutter Contrôleur IT6DCA2 Contrôleur SR400 PicoAmpèremètre Keithley 615 GPIB Device GPIB Device GPIB Device Single Analogic Input RS232 Digital Input-Output Moteurs Micro-Contrôle Contrôleur SR400 Pico Ampèremètre Jauges à vide Atténuateurs Obturateur RX Filter wheel Quelle interface Homme-Machine pour un tel système ? 20 21 décembre 2006 O. Taché Interface Homme-Machine 21 21 décembre 2006 O. Taché Interface Homme-Machine Choix de la ligne de commande : Ergonomie sommaire… MAIS Logique d’expérience évolutive Traçabilité des commandes >>>usaxs.shutter.Open() >>>usaxs.theta.Value 0.001 22 21 décembre 2006 O. Taché Python et TANGO • Langage Python : – – – – – – Open Source et gratuit Portable Syntaxe simple et facile mais types de données évolués Orienté objet Bibliothèques scientifiques et graphiques Interpréteur avec ligne de commande • PyTANGO – Librairie TANGO pour Python – Applications clientes et serveur • Gnuplot – Pour le tracé des courbes 23 21 décembre 2006 O. Taché Interface développée Fenêtre graphique Fenêtre de saisie Scan Enregistrements pyTangoBeamline pyTangoDevice Logique d'expérience Accès à TANGO pyTango Bus logiciel Tango 24 21 décembre 2006 O. Taché Scan Accès à TANGO Enregistrements pyTangoBeamline Module pyTangoDevice pyTangoDevice pyTango Bus logiciel Tango Pour accéder à des devices TANGO à l'aide de variables et commandes Python Input Capteur 25 21 décembre 2006 O. Taché Scan Accès à TANGO Enregistrements pyTangoBeamline Module pyTangoBeamline pyTangoDevice pyTango Bus logiciel Tango Pour accéder à un ensemble de devices TANGO à l'aide de variables et commandes Python Volts ► °C Therm Position Input Output Simul Capteur Simulateur 5V Capteur 26 21 décembre 2006 O. Taché Scan Logique d’expérience Enregistrements pyTangoBeamline Module d'enregistrement pyTangoDevice pyTango Pour réaliser des enregistrements Bus logiciel Tango 27 21 décembre 2006 O. Taché Scan Logique d’expérience Enregistrements pyTangoBeamline Module de scan pyTangoDevice pyTango Pour réaliser des « scans » Bus logiciel Tango position intensité 28 21 décembre 2006 O. Taché Résultats 29 21 décembre 2006 O. Taché ● ● Conclusion TANGO ● Gestion de tous les types de matériel ● Modulaire et robuste ● Développement rapide des DS ● Maintenant des serveurs en Python Interface Homme Machine ● Logique d’expérience par les physiciens ● Outils scientifiques développer une interface graphique pour les expériences de routine Travailler sur l’ergonomie 30 21 décembre 2006 O. Taché Perspectives Originalité ? Ligne de commande pour TANGO Basé sur des composants Open Source Diffusé librement (www-drecam.cea.fr/scm/lions) Pas de barrières entre contrôle-commande et applications scientifiques (librairies de traitement et analyse des données) Perspectives : • Évolutions sur le montage USAXS (nouveaux appareillages) • déploiement sur d’autres expériences 31