Your SlideShare is downloading. ×
0
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Diseño del software de adquisición de datos para ANAIS

1,875

Published on

Diseño del software de adquisición de datos para ANAIS, un experimento de detección de materia oscura en el laboratorio de Canfranc.

Diseño del software de adquisición de datos para ANAIS, un experimento de detección de materia oscura en el laboratorio de Canfranc.

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,875
On Slideshare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Diseño del software de adquisición de datos para ANAIS Miguel Oliván GIFNA Universidad de Zaragoza
  • 2. Requisitos funcionales  Hardware de adquisición intercambiable   Almacenamiento de los datos en formato ROOT  Incorporación de nuevos módulos, vías, fuentes de  datos, cristales, de modo sencillo   Almacenamiento de la configuración junto a los  datos de adquisición  Monitorización (ritmos de adquisición, otros)
  • 3. Requisitos no funcionales  Estabilidad (Cuantificar)  Maximizar tiempo vivo (Cuantificar)  Rendimiento suficiente en adquisición  Respuesta rápida a eventos  Registro de incidencias
  • 4. Pautas de diseño  Keep it Simple → KISS  Fácil de entender, de modificar  Don't repeat yourself → DRY  Fácil de mantener  Fail Fast  Salir rápido en caso de error, informando del motivo  Extensibilidad
  • 5. Un vistazo al diseño
  • 6. Un vistazo al diseño  Conceptos fundamentales:  DAQSource → Fuente de datos, datos elementales  DAQEvent → Evento, conjunto de fuentes  asociadas a un trigger  DAQBoard →  Dispositivo que puede esperar al  trigger, adquirir datos de fuentes, realizar acciones  al comienzo o después de cada adquisición  Matacq, LTD, XDC, PU, IORegister ...
  • 7. Hardware intercambiable  Polimorfismo: Elección de implementación en  tiempo de ejecución → virtual  Requiere un interfaz común e identificar  funcionalidades:  Init, WaitForTrigger, Acquire, DoPostAcquire  DAQHardwareFactory instancia las clases en  función de la configuración
  • 8. Hardware intercambiable  Controladores  Derivan de la clase cuya funcionalidad implementa:  DAQBoard  Gestionan tiempos y estado del hardware  Gestionan la relación Fuente ↔ Dispositivo  Gestionan los buffers internamente
  • 9. Almacenamiento de datos  Ficheros ROOT  Estructuras de datos sencillas con datos  elementales  Legibles en tiempo de ejecución y extensibles  Usando Branch(name, address, leaflist, bufsize) y generando leaflist en tiempo de  ejecución (ver TData.h)  Con los nombres de las fuentes de la configuración
  • 10. Configuración  Formato YAML  Legible  Editable manual y automáticamente  Permite añadir y modificar hardware   Esquema genérico: - grupo: nombre clave: valor clave: [vector, de, valores]
  • 11. Ejemplo de adquisición SOFT RESET SIGNALS IO LTD OR Register Gate Generator (VME) (VME) GATE DELAYED SIGNALS QDC Matacq Pattern Unit (VME) (VME) (VME) CHANNEL PER SIGNAL GLOBAL
  • 12. Ejemplo de configuración - event: Group1 - source: pu0 trigger: io_reg_0 board: pu0 source: [matacq1_0,matacq1_1, qdc1_0, qdc1_1, pu0] - matacq: matacq1 post_acquire: [ matacq1, io_reg_0] baseaddr: 0x10000 - source: matacq1_0 channels: [0, 1, 2] board: matacq1 #... channel: 0 - xdc: qdc1 - source: matacq1_1 baseaddr: 0xA0000 board: matacq1 channel: [0, 1] channel: 1 - ltd814: ltd - source: qdc1_0 baseaddr: 0xC0000 board: qdc1 channel: [14 , 15] channel: 0 threshold: [20, 20] - source: qdc1_1 - io_register: io_reg_0 board: qdc1 baseaddr: 0xE0000 channel: 1 - pattern_unit_259: pu0 baseaddr: 0x60000
  • 13. Ejemplo de captura
  • 14. Detalles de implementación  Bucle de adquisición: DAQEvent.h
  • 15. Detalles de implementación  Controlador DAQBoard: hw/Matacq.h
  • 16. Detalles de implementación  Instanciar controlador: hw/DAQHardwareFactory.cxx
  • 17. Detalles de implementación  Buenas prácticas en C++:  Uso de la librería estándar de C++  std::string  Uso de la STL (Standard Template Library)  RAII (Resource Acquisition Is Initialization)  Otras herramientas: Valgrind, gdb, subversion
  • 18. Puesta en marcha  Implementación buffering, datos opcionales  Análisis de datos   Pruebas de rendimiento y estabilidad → junio  Instalación en Canfranc → ¿1º semana de julio?  Ajuste fino de parámetros → julio  Adquisición prolongada → agosto­septiembre
  • 19. Cuestiones abiertas - futuro  Estructura de datos reordenada en fichero ROOT   Guardar datos opcionalmente. Condiciones   Test Interrupciones vs. Polling  Kernel realtime vs. Normal  Threading en la adquisición  Almacenamiento síncrono vs. Asíncrono  Configuración gráfica

×