Configurar el tiempo de bucle en LabVIEW

Actualizado el Nov 24, 2021

Ambiente

Software

  • LabVIEW

Normalmente, cuando un ciclo , como un ciclo while, termina de ejecutar una iteración, inmediatamente comienza a ejecutar la siguiente. Sin embargo, a menudo es beneficioso controlar la frecuencia con la que se ejecuta un bucle o su frecuencia. Si quisiera adquirir datos en un bucle, necesitaría un método para controlar la frecuencia de la adquisición de datos.
La sincronización de un bucle también permite que el procesador complete otras tareas, como actualizar y responder a la interfaz de usuario. En las siguientes figuras, se muestra el uso del procesador para un VI simple con un ciclo while ejecutándose sin tiempo y temporizado. La sincronización de un bucle puede aumentar drásticamente el rendimiento.
Bucle no temporizado Ejecución de bucle temporizado a 1000 veces por segundo

Puede controlar el tiempo del ciclo en LabVIEW usando las funciones de espera. Estas funciones controlan cuánto tiempo esperar antes de realizar la siguiente iteración del ciclo. Hay dos funciones básicas de espera en LabVIEW: Wait (ms) y Wait until Next ms Multiple .
La función Wait (ms) obliga al bucle a esperar una cantidad de tiempo especificada por el usuario, en milisegundos, antes de ejecutar la siguiente iteración.
La función Wait until Next ms Multiple observa el contador de milisegundos y espera a que alcance un múltiplo del tiempo especificado por el usuario, en milisegundos, antes de ejecutar la siguiente iteración del ciclo. Puede utilizar este VI para sincronizar diferentes actividades. Por ejemplo, puede configurar varios bucles para que se ejecuten en cada múltiplo de 200 ms.

Este tutorial explica cómo implementar estructuras de tiempo en LabVIEW y le ayuda a visualizar cómo el tiempo de ciclo afecta el número de iteraciones de un ciclo. Antes de completar este tutorial, puede ser útil revisar la información sobre LabVIEW For Loops y While Loops (en inglés) . Este es un tutorial adecuado para principiantes de LabVIEW. Si está buscando más recursos sobre los conceptos básicos de LabVIEW, consulte el material de introducción a LabVIEW (en inglés) .

Configurar objetos del panel frontal

  1. Inicie LabVIEW y abra un nuevo VI desde  File >> New VI .
  2. Coloque una perilla de control numérico en el panel frontal haciendo clic con el botón derecho en el panel frontal y navegando hasta Controls»Modern»Numeric»Knob .
    • Más adelante usaremos esta perilla para establecer el tiempo de espera del ciclo while.
  3. Haga doble clic en el nombre de la perilla y cambie su nombre a Wait Time (ms).
  4. Cambie los límites de la perilla a 1 y 1000 haciendo doble clic en los límites actuales de la perilla e ingresando los nuevos valores. Utilizará la perilla para controlar el tiempo de espera de un bucle while. También puede ajustar los límites del control numérico haciendo clic derecho en la perilla >> seleccione  Properties >> Scale >>establezca Scale Range Minimum y Maximum.
  5. Coloque un indicador numérico en el panel frontal haciendo clic derecho en el panel frontal y navegando hasta Controls»Modern»Numeric»Numeric Indicator. Este indicador mostrará las iteraciones del ciclo while.
  6. Como esta perilla se conectará más tarde a la función Wait (ms), que espera una entrada de un entero largo sin signo, cambie la representación de la perilla a U32 para evitar la coerción. Para eso, haga clic con el botón derecho en el icono de la perilla y seleccione Representation >> U32.
  7. Haga doble clic en el nombre del indicador numérico y cambie su nombre a Iteración .
  8. Cambie la Representación del indicador numérico a I-32 (entero largo) haciendo clic derecho en el indicador y seleccionando Representación >> I32 .
  9. Coloque un control Stop Boolean en el panel frontal. Puede encontrarlo en Controls»Modern»Boolean»Stop Button. Usaremos este botón Detener para detener el ciclo while. Cuando esté completo, el panel frontal se parecerá a la imagen de abajo.

Configurar el diagrama de bloques

  1. Vea el diagrama de bloques seleccionando Window»Show Block Diagram o presionando <ctr-E> .
  2. Agregue una función de Wait (ms) haciendo clic derecho en el diagrama de bloques y navegando a Functions»Programming»Timing.
  3. Conecte el control de perilla Wait Time (ms) a la entrada de la función Wait (ms) .
    • El valor de la perilla especifica cuánto tiempo, en milisegundos, espera el bucle antes de ejecutar la siguiente iteración.
  4. En el diagrama de bloques, agregue un bucle while alrededor de los iconos de los objetos del panel frontal.
    1. Haga clic con el botón derecho en el diagrama de bloques y navegue hasta Functions»Programming»Structures»While loop.
    2. Después de seleccionar el ciclo while, haga clic con el botón izquierdo y arrastre el ciclo alrededor de los iconos.
      • Si pierde un icono, puede agregarlo al ciclo while haciendo clic y arrastrándolo al ciclo.
  5. Cablear el control de Stop a parada terminal dependiente del while loop.
  6. Conecte el indicador numérico al terminal de iteración del while loop.
 

Probar la sincronización del bucle

  1. Vea el diagrama de bloques seleccionando Window»Show Front Panel o presionando <ctr-E> .
  2. Mueva el valor de la perilla a alrededor de 500 ms.
  3. Ejecute el VI.
    • Tenga en cuenta que debido a que el tiempo de espera se establece en ~ 500 ms, el indicador de iteraciones se actualiza cada medio segundo.
  4. Mientras se ejecuta el VI, cambie el valor de la perilla haciendo clic y arrastrando la perilla.
    • Tenga en cuenta que a medida que aumenta la velocidad del bucle, la velocidad de iteración cambia en consecuencia.

  5. Detenga el VI usando el control Booleano Stop .