|
|
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
|
|
|
## **Device TANGO**
|
|
|
Un device TANGO a été écrit par [BENCE Aurelien](C:\display\~BENCE) 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](C:\display\~LABAT) .
|
|
|
|
|
|
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
|
|
|
` `
|
|
|
### **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](C:\display\~BENCE) : 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)
|
|
|
|
|
|
•
|
|
|
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)
|
|
|

|
|
|
|
|
|
# **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.
|
|
|
|
|
|
|
|
|
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. |