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 :laugh:
- 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)
11) 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.