Configuración de un Stop Trigger usando NI-DAQmx para LabVIEW

Actualizado el Jan 6, 2020

Reportado en

Conductora

  • NI-DAQmx

Detalles del problema

Tengo un dispositivo NI DAQ y quiero usar NI-DAQmx con soporte para LabVIEW para enviar una señal al dispositivo que le indique cuándo comenzar y detener la adquisición de datos. ¿Cómo puedo hacer esto?

Solución

DAQmx no proporciona una forma directa de generar un trigger de detención; sin embargo, al usar un trigger de referencia y modificar la posición de lectura, puede crear el equivalente de un trigger de parada en LabVIEW.

Para lograr esto, deberá configurar una adquisición finita que esté configurada para adquirir N muestras antes y después de un trigger de referencia. Esto es útil porque, para proporcionar muestras previas al disparo para un trigger de referencia, la tarea DAQmx adquirirá continuamente datos mientras espera el desencadenante de referencia. Estos datos adquiridos continuamente aún pueden leerse utilizando DAQmx Read, aunque no sea parte explícita de la adquisición configurada.
Vea el fragmento de código a continuación como un ejemplo de cómo implementar un disparador de referencia como un disparador de parada:

Figura 1: Aplicación DAQmx utilizando los trigger de inicio y parada en LabVIEW

En el ejemplo anterior, una tarea de entrada analógica se crea con DAQmx y se configura para usar dos triggers: un trigger de borde digital de inicio y un trigger de borde digital de referencia.

El trigger de inicio determina cuándo la tarea comenzará a adquirir muestras en preparación para el trigger de referencia, y el trigger de referencia determinará cuándo la tarea enviará el número finito de muestras previas al disparo y posteriores al disparo originalmente solicitadas antes de detener la tarea.

Nota: Los triggers de inicio y referencia pueden configurarse para que lleguen a la misma línea PFI, si así lo desea, ya que el controlador DAQmx no esperará al disparador de referencia hasta después de que haya ocurrido el disparador de inicio.

Configurando un disparador de referencia

Los triggers de referencia requieren un parámetro de entrada adicional llamado muestras de preactivación por canal :

Figura 2: Parámetro de Muestras de Pretrigger en LabVIEW

El número de muestras de preactivación define de cuántas muestras totales se adquirieron durante la adquisición finita antes de que ocurriera el trigger de referencia. El resto de las muestras en la adquisición se consideran muestras posteriores al disparo .

Implícitamente, el número de muestras post-disparador es igual a:

Muestras posteriores al disparo = muestras por canal (entrada de sincronización de DAQmx) - muestras previas al disparo por canal (entrada del activador de DAQmx)

Por ejemplo, para configurar una tarea que adquiera el número mínimo de muestras de activadores previos (2), seguido de 40 muestras de activadores posteriores, usaría 42 para muestras por canal como entrada para DAQmx Timing y 2 como muestras de activadores previos por canal en el disparador de referencia DAQmx. La salida final de la adquisición finita se vería así:



Figura 3: Visualización de la salida de lectura final de DAQmx con un trigger de referencia

Nota: Al configurar el tiempo de la tarea, debe haber al menos 2 muestras previas al disparo y 2 muestras posteriores al disparo para el trigger de referencia. En consecuencia, seguirá recibiendo al menos dos muestras después de que se haya producido el trigger de referencia, incluso si utiliza un trigger de referencia como un trigger de parada; sin embargo, pueden eliminarse en el posprocesamiento si no se desean.

Información adicional

Adquirir continuamente con un trigger de referencia
De forma predeterminada, DAQmx seleccionará un tamaño de búfer exactamente lo suficientemente grande para ajustarse al número total de muestras para leer (por ejemplo, el búfer tendrá el tamaño 42 en el ejemplo descrito anteriormente).

Para que la aplicación DAQmx pueda extraer muestras continuas del búfer mientras espera el desencadenante de referencia, son necesarias otras dos modificaciones:
  1. Utilice DAQmx Configure Input Buffer para cambiar manualmente el tamaño del búfer de la aplicación DAQmx después de configurar las propiedades de temporización.
  2. Establezca la propiedad DAQmx Read »Relative To para modificar la posición de lectura. De forma predeterminada, esta propiedad se establece en Primer ejemplo de trigger previo cuando se usa un trigger de referencia. Al configurarlo en la Posición de lectura actual , DAQmx Read leerá las muestras que se están colocando en el búfer después de que se produce el disparo de inicio, solo. Si esto no se cambia, la lectura de DAQmx esperará hasta que se reciba el trigger de referencia antes de poder recuperar muestras del búfer.