Elegir entre Funciones Sincrónico y Asincrónico de NI-VISA

Visión General

Este documento explica los términos sincrónico y asincrónico que se relacionan con las funciones de NI-VISA. Le ayudará a decidir cuál elegir para su aplicación.

Introducción

Los términos sincrónico y asincrónico se refieren a cómo se comportarán las funciones de NI-VISA en relación con sus hilos de llamada. Ejecutar las funciones de NI-VISA sincrónicamente evitará que otro código se ejecute en el hilo de llamada. En algunas situaciones, como transferir una gran cantidad de datos o garantizar que los datos lleguen o salgan del dispositivo lo antes posible, esto puede ser deseable.

En un nivel inferior, el hilo de llamada se bloquea durante un período de tiempo diferente dependiendo si la interfaz es sincrónica y asincrónica. Para operaciones de escritura, los datos deben transferirse desde el entorno de desarrollo de aplicación (ADE) a los recursos físicos subyacentes proporcionados por la PC. Para operaciones de lectura, los datos deben transferirse desde los recursos físicos del dispositivo al ADE. Ambas transferencias deben pasar por varias capas de memoria.

Para una operación de escritura se produce la siguiente secuencia:

  1. El hilo de llamada está bloqueado.
  2. Los datos asociados con la función de escritura de VISA se transfieren del ADE a la memoria VISA.
  3. El sondeo comienza a determinar cuándo todos los datos asociados con la escritura VISA se han transferido de la memoria VISA al controlador subyacente para el recurso de hardware.
  4. La transferencia se completa.
  5. La función VISA de escritura regresa.

Se produce la misma secuencia, pero en el orden inverso, para las operaciones de lectura.

Para operaciones sincrónicas, el hilo de llamada se desbloquea entre los pasos 4 y 5 anteriores. Para operaciones asincrónicas, el hilo de llamada se desbloquea entre los pasos 2 y 3. Para elegir entre sincrónico y asincrónico para su aplicación, deberá considerar la cantidad de datos que se escriben o leen y la cantidad de hilos disponibles para la aplicación.

Si tiene que transferir una gran cantidad de datos en el menor tiempo posible, debe considerar realizar la operación de forma sincrónica porque esto dedicará el hilo de llamada a transferir datos hacia o desde los recursos de hardware. Ejecutar la operación de forma asincrónica permitirá que el hilo de llamada acceda a otras partes de la aplicación, pero llevará más tiempo determinar si los datos se han transferido hacia o desde los recursos de hardware.

Si el número de hilos disponibles para una aplicación es pequeño en relación con el número de procesos paralelos, ejecutar las operaciones de NI-VISA como asincrónicas hará que el hilo de llamada esté disponible antes para las otras porciones de la aplicación. Ejecutar la operación sincrónicamente dedicará el hilo de llamada a la operación NI-VISA, asegurando que se complete lo antes posible pero a expensas del rendimiento general de la aplicación.

Para elegir entre las funciones sincrónicas y asincrónicas en LabVIEW, consulte los enlaces de Ayuda de LabVIEW a continuación.