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:
Pour recharger les properties
Pour couper toutes les acquisitions en cours
ATTENTION: le init ne fait pas un reset de la caméra
Load_data: pour charger un fichier enregistrer précédemment.
Une fenetre apparait: il faut rentrer dans le champ le nom du fichier .bin que l'on souhaite tracer.
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.
Attention, le fichier doit se trouver dans kalypso/data. Et pas dans un sous repertoire. Sinon ca ne marche pas.
Il n'est pas possible de rentrer un chemin en amont du fichier pour aller pointer vers un autre emplacement.
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)
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)
Le temps du reset, le device passe en "mooving" = carré status violet. Et le device est freezé.
Les étapes du reset sont visibles dans l'onglet log
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
Cliquer sur snap pour lancer une acquisition
Le suivi de l'acquisition est visible dans l'onglet "log"
A la fin de l'acquisition, l'image apparait dans l'onglet "image"
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
Cliquer sur Start pour démarrer et sur Stop pour arrêter.
Par défaut, les images ne sont pas enregistrées au fur et à mesure.
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:
Permet de voir l'état plus en détail de la caméra: PLL, ADC, etc...
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)
En lancant cette commande, on bascule du mode _External ou mode _Internal ou vice-versa
Le mode du trigger est relu en attribut
_External mode = chaque colonne des images est enregistrée au top du signal Fast Trigger = 846 kHz
_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)
En lancant cette commande, on bascule du mode _External ou mode _Internal ou vice-versa
Le mode du trigger est relu en attribut
_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
_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
Alimentation caméra = Keithley
Alimentation pilotée par device tango dédié
Start: le device de kalypso allume l'alimentation et fait monter à la tension à 130 V avec une rampe lente
Stop: le device de kalypso fait descendre selon une rampe la tension de 130 à 0V puis éteint l'alimentation
Merci de ne pas utiliser le device de l'alim pour ne pas risquer de cramer la caméra
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.
Mémo: 1 quart = 295 ns.
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 (grand sourire)
delay_for_fast_trigger = 35 ns
délai entre le fast trigger et l'acquisition
ce délai a été régler en phase de commissioning pour la config electronique de la caméra
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
En théorie, la caméra doit pouvoir fonctionner avec 512 ou 1024 pixels
En pratique, on ne se sert poru le moment que du mode 512 pixels
Start_Drop_Files:
True: les images ne sont pas enregistrée en mode Live (Start/Stop)
False: les images sont enregistrée en mode Live (Start/Stop)