Académico Empresa Eventos Community Soporte Soluciones Productos y Servicios Comuníquese con NI MyNI

Integrar Programación Basada en Texto

En el software LabVIEW se originan ciertas tareas, como escalar señales y resolver ecuaciones matemáticas, durante las cuales puede ser benéfico implementar la programación basada en texto en LabVIEW. LabVIEW ofrece la opción de usar sintaxis C++ con el Formula Node y la sintaxis de scripts de archivos .m con el MathScript Node para procesamiento de señales, análisis y funciones matemáticas. Este módulo explica cómo comenzar a trabajar con ambos.


Procedimiento Paso a Paso

Descargue el Procedimiento Paso a Paso en PDF


Para ilustrar las necesidades para la integración basada en texto en LabVIEW, considere una ecuación usada para convertir la resistencia de un termistor a la temperatura adecuada en grados Celsius.

Fórmula Usada para Convertir Resistencia de un Termistor a Temperatura


Figura 1. Fórmula Usada para Convertir Resistencia de un Termistor a Temperatura

Usted puede ver que esta es una ecuación polinominal compleja que requiere varias operaciones matemáticas. Esto es algo que rápidamente se puede volver confuso en LabVIEW y difícil de cumplir como se ve en la Figura 2.

Funciones Originales de LabVIEW para Fórmula Termistor

Figura 2. Funciones Originales de LabVIEW para Fórmula Termistor

La Figura 3 es un ejemplo de cómo la fórmula puede ser representada en un lenguaje tradicional basado en texto como C. Esto es mucho más fácil de comprender y se asemeja a la ecuación actual. Ahora vea cómo implementar esto usando el Formula Node y MathScript Node.

Representación de Código Basado en Texto de la Fórmula Termistor


Figura 3. Representación de Código Basado en Texto de la Fórmula Termistor

LabVIEW Formula Node

Antes de comenzar este procedimiento, necesita completar el ejercicio y usar la solución en el módulo Realizar una Medida. También puede crear un control numérico para simular la entrada de adquisición de datos.

Nota: Si no está usando un DAQ Assistant para adquirir datos de resistencia y convertir a temperatura, vaya hasta el paso 2 y use un control numérico en lugar del DAQ Assistant.

  1. Configure el DAQ Assistant de entrada de voltaje a la resistencia de entrada desde las terminales del multímetro digital (DMM)
    1. Haga doble clic en el DAQ Assistant para abrir la ventana de configuración
    2. Haga clic derecho en el canal Voltage en la lista Channel Settings y seleccione Remove from Task
    3. Haga clic en el símbolo azul de suma (+) para añadir un canal a la tarea y seleccione Resistance
    4. Seleccione Dev1 (NI myDAQ)»dmm
    5. Asegúrese que Iex Source está programado en Internal
    6. Asegúrese que Acquisition Mode está seleccionado para el 1 Sample (On Demand)
    7. Seleccione OK para aplicar la configuración
  2. Coloque un Formula Node en el diagrama de bloques para convertir resistencia a grados Celsius
    1. Haga clic derecho en el diagrama de bloques y seleccione Mathematics»Scripts & Formulas»Formula Node
    2. Pegue la siguiente ecuación en la ventana del Formula Node y cambie el tamaño
  3. float64 M;
    M=ln(R/10000);
    T=(1/(A+B*M+C*M*M+D*M*M*M))-273.15;

  4. Añada entradas al Formula Node para todas las variables de entrada en la ecuación
    1. Haga clic derecho en el borde izquierdo y seleccione Add Input
    2. Escriba R0 para relacionar la entrada a la variable R0 en la ecuación
    3. Repita este procedimiento para A, B, C y D
    4. Haga clic derecho en A, B, C, D y R0 y seleccione Create»Control
    5. A=0.0039083; B=5.775E-7; C=1.63214E-6; D=7.1922E-8; R0=1000
    6. Conecte la salida Data desde el DAQ Assistant a la entrada R del Formula Node
  5. Añada salida para Temperatura (C) para mostrar en el indicador de la tabla
    1. Haga clic derecho en el borde y seleccione Add Output
    2. Escriba T para relacionar la salida a la variable T en la ecuación
    3. Conecte esta salida a la entrada del indicador de la gráfica
  6. Añada Ciclo While para ejecutar el VI continuamente
    1. Haga clic derecho en el diagrama de bloques y seleccione Programming»Structures»While Loop
    2. Haga clic izquierdo y arrastre para abarcar todo el código
    3. Haga clic derecho en la terminal condicional y seleccione Create»Control
  7. Cree la condición de paro para incluir cuando el botón Stop es presionado o es detectado un error
    1. Elimine el cableado de la Conditional Terminal desde la terminal de salida Stopped del DAQ Assistant de entrada analógica
    2. Haga clic con botón derecho en el diagrama de bloques y seleccione Programming»Boolean»Or
    3. Conecte la salida desde el botón Stop a la entrada inferior de la función Or Boolean
    4. Haga clic derecho en el diagrama de bloques y seleccione Programming»Cluster, Class, & Variant»Unbundle by Name y coloque esto a la derecha del DAQ Assistant de entrada analógica
    5. Conecte la terminal de salida Error Out del DAQ Assistant de entrada analógica a la entrada de la función Unbundle by Name y asegúrese que Status está seleccionado para ser desagrupado
    6. Conecte la salida de la función Unbundle by Name a la entrada superior de la función Or
    7. Conecte la salida de la función Or a la entrada de la Conditional Terminal
  8. Ejecute el VI y observe el resultado

Obtenga más ayuda con el Formula Node y obtenga una lista de Formula Node Functions.

MathScript Node

También puede usar el MathScript Node para ejecutar scripts de archivos .m. preexistentes, así como desarrollar archivos .m en LabVIEW para procesamiento de señales.

Antes de comenzar este procedimiento, necesita completar el ejercicio y usar la solución en el módulo Realizar una Medida. También puede crear un control numérico para simular la entrada de adquisición de datos.

Nota: Si no está usando un DAQ Assistant para adquirir datos de resistencia y convertir a temperatura, vaya hasta el paso 2 y use un control numérico en lugar del DAQ Assistant.

  1. Configure el DAQ Assistant de entrada de voltaje a la resistencia de entrada desde las terminales del DMM
    1. Haga doble clic en el DAQ Assistant para abrir la ventana de configuración
    2. Haga clic derecho en el canal Voltage en la lista Channel Settings y seleccione Remove from Task
    3. Haga clic en el símbolo azul de suma (+) para añadir un canal a la tarea y seleccione Resistance
    4. Seleccione Dev1 (NI myDAQ)»dmm
    5. Asegúrese que Iex Source está programado en Internal
    6. Asegúrese que Acquisition Mode está seleccionado para el 1 Sample (On Demand)
    7. Seleccione OK para aplicar la configuración
  2. Coloque un MathScript Node en el diagrama de bloques para convertir resistencia a grados Celsius
    1. Haga clic derecho en el diagrama de bloques y seleccione Mathematics»Scripts & Formulas»MathScript Node
    2. Pegue el siguiente script en la ventana del MathScript Node y cambie el tamaño

double M;
M=log(R/10000);
T=(1/(A+B*M*M+C*M*M+D*M*M*M));
T=T-273.15;

  1. Añada entradas al Formula Node para todas las variables de entrada en la ecuación
    1. Haga clic derecho en el borde izquierdo y seleccione Add Input
    2. Escriba R para relacionar la entrada a la variable R en la ecuación
    3. Conecte la salida Data desde el DAQ Assistant a la entrada R del Formula Node
    4. Repita para las variables A, B, C y D
    5. Haga clic derecho en A, B, C, D y R0 y seleccione Create»Control
    6. A=0.0039083; B=5.775E-7; C=1.63214E-6; D=7.1922E-8; R0=1000
    7. Conecte la salida Data desde el DAQ Assistant a la entrada R del Formula Node
  2. Añada una salida para la Temperatura (C) para mostrar en el indicador de la tabla
    1. Haga clic derecho en el borde y seleccione Add Output
    2. Escriba T para relacionar la salida a la variable T en la ecuación
    3. Conecte esta salida a la entrada del indicador de la gráfica
  3. Añada Ciclo While para ejecutar el VI continuamente
    1. Haga clic derecho en el diagrama de bloques y seleccione Programming»Structures»While Loop
    2. Haga clic izquierdo y arrastre para abarcar todo el código
    3. Haga clic derecho en la terminal condicional y seleccione Create»Control
  4. Cree la condición de paro para incluir cuando el botón Stop es presionado o es detectado un error
    1. Elimine el cableado de la Conditional Terminal desde la terminal de salida Stopped del DAQ Assistant de entrada analógica
    2. Haga clic con botón derecho en el diagrama de bloques y seleccione Programming»Boolean»Or
    3. Conecte la salida desde el botón Stop a la entrada inferior de la función Or Boolean
    4. Haga clic derecho en el diagrama de bloques y seleccione Programming»Cluster, Class, & Variant»Unbundle by Name y coloque esto a la derecha del DAQ Assistant de entrada analógica
    5. Conecte la terminal de salida Error Out del DAQ Assistant de entrada analógica a la entrada de la función Unbundle by Name y asegúrese que Status está seleccionado para ser desagrupado
    6. Conecte la salida de la función Unbundle by Name a la entrada superior de la función Or
    7. Conecte la salida de la función Or a la entrada de la Conditional Terminal
  5. Ejecute el VI y observe el resultado

Obtenga ayuda con el Módulo LabVIEW MathScript RT.

Puede convertir sus DAQ Assistant Express VIs en funciones NI-DAQmx de bajo nivel al dar clic con botón derecho en el DAQ Assistant y seleccione Generate NI-DAQmx Code. El NI-DAQmx API de bajo nivel presenta más opciones de funcionalidad y personalización para programación.

 

LabVIEW VI Snippet

Funciones Originales de LabVIEW Snippet

Funciones Originales de LabVIEW Snippet

Formula Node Snippet

Formula Node Snippet

MathScript Node Snippet

MathScript Node Snippet

Haga clic derecho en el VI snippet de arriba y seleccione Save Image As... Ubique el archivo en su disco duro y selecciónelo y arrastre el ícono del archivo a su diagrama de bloques de LabVIEW. LabVIEW genera automáticamente el código desde el VI snippet. Para más información, lea VI Snippets.


Ejercicio en Módulo: Integrar Programación Basada en Texto

Descargar el Ejercicio (PDF)

Meta
Con los LabVIEW VI snippets de arriba, puede crear una solución que puede usar para seleccionar uno de los tres métodos de conversión de resistencia a temperatura al adquirir la resistencia de un termistor usando el dispositivo NI myDAQ. Antes de comenzar este ejercicio, necesita completar el ejercicio y usar la solución en el módulo Realizar una Medida.

Hardware Requerido
1- NI myDAQ o NI ELVIS II
1- termistor de 10 kΩ
o
Simule la entrada de resistencia con un control numérico

Puntos que Debe Considerar

  • ¿Cuál es la estructura de ejecución usada para ejecutar una pieza de código basada en una condición?
  • ¿Qué tipo de control puede ser usado para determinar el caso si existen más de dos casos en la estructura de Casos? ¿Una secuencia permite esto? ¿Un numérico permite esto? ¿Existe una combinación de los dos?
  • ¿Incrementa la temperatura cuando la resistencia aumenta o disminuye? Intente colocar un indicador numérico para que el valor de la resistencia determine esto.
  • Use los clips tipo caimán con sus cables de DMM para ayudar a sujetar el termistor.

Ver la solución del ejercicio
(¡No haga trampa!).

Examen Acumulativo:
LabVIEW y DAQ

Evalúe su conocimiento de LabVIEW y los fundamentos de DAQ. Se recomienda este examen después de completar todos los módulos para Conceptos Básicos de LabVIEW y Tareas Básicas de LabVIEW. El examen consiste de 26 preguntas de opción múltiple.

Realizar el Examen


Proyecto Acumulativo:
LabVIEW y DAQ

Evalúe su conocimiento sobre construir un sistema completo al adquirir, procesar y visualizar datos con LabVIEW y un dispositivo DAQ. Se recomienda este proyecto después de completar todos los módulos para Conceptos Básicos de LabVIEW y Tareas Básicas de LabVIEW.

Comenzar el proyecto