d) Device TANGO Un device TANGO a été écrit par BENCE Aurelien pour piloter la caméra Kalypso. Il utilise en grande partie les scripts bash fournis par KIT et quelques fonctions pyton écrites par LABAT Marie . Versionning sous : https://gitlab.synchrotron-soleil.fr/dg/ds_dg_pytango_package/kalypso_cam Bug Reporting sous: http://jira/jira/issues/?jql=project%20%3D%20FCPYTHON%20AND%20component%20%3D%20DG-Devices-Python Le device se trouve dans: ANS-C01/DG/KALYPSO-CAM
Le device se présente ainsi:
Démarrage / Arret du device: • Astor >> DG_SUPPORT • kalypso-pc >> open control panel • Ensuite comme d'habitude: start / kill server Commandes: • Init: o Pour recharger les properties o Pour couper toutes les acquisitions en cours o ATTENTION: le init ne fait pas un reset de la caméra • Load_data: pour charger un fichier enregistrer précédemment. o Une fenetre apparait: il faut rentrer dans le champ le nom du fichier .bin que l'on souhaite tracer. o Pour piocher un fichier récent, on peut utiliser la liste des derniers fichiers visibles dans l'onglet Files_list. Il suffit de ne sélectionner que le nom du ficher. o Attention, le fichier doit se trouver dans kalypso/data. Et pas dans un sous repertoire. Sinon ca ne marche pas. o Il n'est pas possible de rentrer un chemin en amont du fichier pour aller pointer vers un autre emplacement. o Pourquoi on peut pas lancer un tK pop up qui permette de naviguer dans les autres répertoires ? (BENCE Aurelien : la fonctionnalité n'existe pas dans tango) o Lorsque le fichier est chargé, l'image est mise à jour dans l'onglet "image" du device • Reset: pour re-démarrer la caméra (souvent nécessaire) o Le temps du reset, le device passe en "mooving" = carré status violet. Et le device est freezé. o Les étapes du reset sont visibles dans l'onglet log
•
o Lorsque le reset est terminé, le device repasse en vert. (ou en orange si le keitley est OFF)
• Snap: pour prendre et enregistrer 1 image
o Cliquer sur snap pour lancer une acquisition
o Le suivi de l'acquisition est visible dans l'onglet "log"
o A la fin de l'acquisition, l'image apparait dans l'onglet "image"
o Attention: il faut souvent cliquer 2 fois au début sur Snap pour que ca se lance vraiment
• Start/Stop: pour regarder en live les images
o Cliquer sur Start pour démarrer et sur Stop pour arrêter.
o Par défaut, les images ne sont pas enregistrées au fur et à mesure.
o Si on veut enregistrer les images en live: il faut changer la property "Start_Drop_Files"
"Start_Drop_Files" = True >> les images ne sont pas enregistrées
"Start_Drop_Files" = False >> les images sont enregistrées
• State: Alarm (Orange) si l'alim keithley est OFF / Fault (Rouge) probleme de comm ou d'initialisation / ON (vert) si le device est OK et que l'alim keithley est ON / RUNNING (bleu) durant les execution des script reset/acquisition.
• Status:
o Permet de voir l'état plus en détail de la caméra: PLL, ADC, etc...
o Pour l'interprétation de ces lignes: voir plus haut. C'est pareil quand dans la GUI de KIT
• Set_Fast_Trigger_Mode: permet de changer le mode du Fast Trigger (Mode Expert uniquement)
o En lancant cette commande, on bascule du mode _External ou mode _Internal ou vice-versa
o Le mode du trigger est relu en attribut
o _External mode = chaque colonne des images est enregistrée au top du signal Fast Trigger = 846 kHz
o _Internal mode = chaque colonne des images est enregistrée le plus vite possible
• Set_Slow_Trigger_Mode: permet de changer le mode du Slow Trigger (Mode Expert uniquement)
o En lancant cette commande, on bascule du mode _External ou mode _Internal ou vice-versa
o Le mode du trigger est relu en attribut
o _External mode = l'enregistrement de chaque image est déclenchée au top du signal Slow Trigger = injection par exemple
ATTENTION !!! Dans ce mode, impossible de sauver 1 seule image. Il en faut au moins 10...
Le nombre d'images à enregistrer est déterminer dans l'attribut nb_acq_w_slow_trigger, qui ne peut pas etre passé en dessous de 10
o _Internal mode = l'enregistrement de chaque image est déclenchée dès que la caméra est prete
• Start/Stop_PowerSupply: pour allumer/éteindre l'alimentation de la caméra
o Alimentation caméra = Keithley
o Alimentation pilotée par device tango dédié
o Start: le device de kalypso allume l'alimentation et fait monter à la tension à 130 V avec une rampe lente
o Stop: le device de kalypso fait descendre selon une rampe la tension de 130 à 0V puis éteint l'alimentation
o Merci de ne pas utiliser le device de l'alim pour ne pas risquer de cramer la caméra
o ATTENTION: comme les rampes sont vraiment lentes, il faut du temps pour arriver à la valeur de consigne. Le temps de la rampe, le device passe en gris = UNKOWN. Pas de panique. Il faut juste attendre...
Attributs:
• nb_frames: nombre de colonnes des images = nombre de tours à enregistrer. Max = 2048.
• exp_time = temps d'exposition pour l'acquisition de chaque colonne.
o Mémo: 1 quart = 295 ns.
o Attention: le temps d'exposition est ensuite converti un multiple de 8, donc ca sert à rien d'ajuster le temps de pose à mieux que 8 ns près :laugh:
• delay_for_fast_trigger = 35 ns
o délai entre le fast trigger et l'acquisition
o ce délai a été régler en phase de commissioning pour la config electronique de la caméra
o NE PAS TOUCHER sauf déménagement caméra / changement cablage synchro
• Fast_Trig_Mode_External/_Internal: booleen pour le mode du Fast Trigger (voir commande plus haut)
• Slow_Trig_Mode_External/_Internal: booleen pour le mode du Slow Trigger (voir commande plus haut)
• Last_File_Name: affichage du nom du fichier lorsqu'on fait un LoadData ou du dernier fichier enregistré et affiché dans l'onglet "image"
• Trigger_Fault: booleen pour remonter une erreur sur la PLL. Si Fault >> allez voir les détails dans Status
• Cam_Fault: booleen pour remonter une erreur sur la caméra (ADC, etc..). Si Fault >> allez voir les détails dans Status
• nb_acq_w_slow_trigger: nombre d'image à enregistrer en mode Snap + Slow_Trigger_Mode_External
• nb_skip_slow_trigger: nombre de coups de trig à ignorer entre chaque acquisition en mode Slow_Trigger_Mode_External
Properties:
• Data_Path: dossier où sont sauvegardées les images
• delay_for_fast_trigger: voir attributs
• keithley_GPIB_device: lien vers le device de l'alimentation de la caméra
• OBL_beam= X ou Z. Plan faisceau mesuré.
• OBL_BP_filter: filtre passe bande
• OBL_dist_FirstHole_L1: distance entre premier trou sur la table optique et lentille LcH
• OBL_dist_FL1_L2: distance entre lentille LcH et lentille LcV
• OBL_dist_L2_cam: distance entre lentille LcV et caméra
• OBL_pixel_size: taille des pixels de la caméra (microns)
• OBL_polarization: polarisation utilisée sur la caméra
• opt_nb_pixels = 512
o En théorie, la caméra doit pouvoir fonctionner avec 512 ou 1024 pixels
o En pratique, on ne se sert poru le moment que du mode 512 pixels
• Start_Drop_Files:
o True: les images ne sont pas enregistrée en mode Live (Start/Stop)
o False: les images sont enregistrée en mode Live (Start/Stop)
- Evolutions en cours • Device TANGO pour pilotage sous tango de la caméra • Frame rate 60 MHz ? • Gating: this option should enable to reduce the minimum exposure time down the ns scale. This could enable single bunch measurement in multi--bunch mode. • Balance detection: this option should enable to read separatly some areas of the camera, in order to perform spatial or temporal balanced detction.