Professional Documents
Culture Documents
RESUMEN
La información que se describe en este trabajo tiene como objetivo principal enseñar la
programación en lenguaje gráfico LabVIEW para el desarrollo de Instrumentos Virtuales de
utilidad en la Ingeniería Electrónica, partiendo de aplicaciones a nivel básico, pasando a nivel
intermedio y finalizando con aplicaciones de nivel profesional-avanzado. Estas aplicaciones,
tienen utilidad para proyectos en la industria electrónica, también aplica para la enseñanza
académica en el área de automatización e instrumentación electrónica y proyectos de final de
carrera. Se desarrollan fundamentos de programación gráfica, medición y adquisición de datos,
control y simulación de instrumentos, análisis y registro de mediciones, conexión con hardware,
conexión con software, publicaciones Web, entre otros. El contenido se divide en dieciséis
capítulos, estructurados en conceptos de electrónica, algoritmos para desarrollar programas,
código de programación en LabVIEW, ejemplos de programas de aplicaciones electrónicas y
actividades complementarias. Se utiliza hardware de diversas empresas electrónicas, para
aplicaciones que requieran conexiones con variables físicas reales, también se analizan otros
programas de simulación para conexión e intercambio de datos con el sistema de desarrollo virtual.
El sistema de desarrollo se basa en el lenguaje de programación LabVIEW perteneciente a la
compañía National Instruments NI, los elementos de hardware son seleccionados de diferentes
fabricantes para operarlos y programarlos en LabVIEW, conformado por tarjetas DAQ de
adquisición de datos de NI, tarjeta electrónicas de ARDUINO, PLC Allen-Bradley Micrologix de
Rockwell Automation, y programas de aplicación como el Explorador de Medición y
Automatización de NI-MAX, Simulador de circuitos electrónicos NI-MULTSIM, RSLogix y
RSLinx de Rokwell Automation.
Introducción .................................................................................................................................. 1
Capítulo I Estrategias para la solución de problemas en programación................................. 4
Método de Desarrollo de Software ............................................................................................. 4
Elementos del Método de Desarrollo de Software ..................................................................... 5
Actividad Complementaria 1 ...................................................................................................... 8
Capítulo II Navegación en LabVIEW ....................................................................................... 10
Instrumentos Virtuales (VI) ...................................................................................................... 10
Comenzar un VI ........................................................................................................................ 11
Explorar Proyectos .................................................................................................................... 14
Partes de un VI .......................................................................................................................... 17
Ventana del Panel Frontal ......................................................................................................... 17
Ventana del Diagrama de Bloques ............................................................................................ 25
Paleta de Herramientas ............................................................................................................. 34
Actividad Complementaria 2 .................................................................................................... 35
Capítulo III Solucionar problemas de depuración para programas en LabVIEW.............. 41
Utilidades de la ayuda del LabVIEW ....................................................................................... 41
Corrección de los Broken VI o VI rotos .................................................................................... 46
Técnicas de Depuración ............................................................................................................ 48
Verificación y tratamiento de Errores ....................................................................................... 51
Actividad Complementaria 3 .................................................................................................... 55
Capítulo IV Implementar un Instrumento Virtual VI ............................................................ 61
Diseñar la Ventana del Panel Frontal........................................................................................ 61
Tipo de datos en LabVIEW ...................................................................................................... 62
Código en LabVIEW ................................................................................................................ 79
Actividad Complementaria 4 .................................................................................................... 80
Capítulo V Temporizadores y Gráficas de señales en los VI .................................................. 85
Temporizadores en los VIs ....................................................................................................... 85
Gráficas de datos en LabVIEW ................................................................................................ 87
Control de Imágenes 3D ......................................................................................................... 107
Actividad Complementaria 5 .................................................................................................. 115
Capítulo VI Estructuras fundamentales de lazos repetitivos de LabVIEW ....................... 120
Estructura cíclica While .......................................................................................................... 120
Estructura cíclica For .............................................................................................................. 126
Registro de desplazamiento (Shift Register) ........................................................................... 132
Actividad complementaria 6 ................................................................................................... 134
Capítulo VII Desarrollo de aplicaciones Modulares.............................................................. 138
Comprensión de Modularidad: ............................................................................................... 138
Creación de un SubVI: ............................................................................................................ 139
Capítulo VIII Estructuras fundamentales de selección en LabVIEW................................. 146
Función de Selección SELECT .............................................................................................. 147
Estructura de Selección de Casos CASE ................................................................................ 148
Estructura secuencial SEQUENCE........................................................................................ 152
Estructura de Eventos EVENT ............................................................................................... 157
iv
Introducción
Capítulo I
Estrategias para la solución de problemas en programación
Definir el problema: Define el problema para poder abordarlo, identificando todos los
factores necesarios para trabajar y buscar una solución, se descartan factores que generen
algún error en la lógica de la programación y poder enfocarse en el objetivo principal del
problema que se debe resolver.
Diseño de un diagrama de flujo: Un diagrama de flujo muestra los pasos para resolver el
problema. Los diagramas de flujo son útiles porque puede seguir procesos más complejos
que un algoritmo en una forma visual. La figura 1.1 muestra un diagrama de flujo del
algoritmo diseñado para el proceso de medición de temperatura del ejemplo anterior.
Figura 1.1. Diagrama de flujo para controlar la temperatura interior y exterior de un horno en un proceso
de medición de temperatura.
el programa pase al siguiente estado. El inicio del programa está representado con un
círculo sólido, el final del programa está representado con un círculo específico con un
borde claro. El diagrama de flujo anterior, se puede representar con el diagrama de
transición de la figura 1.2.
Figura 2.2. Diagrama de transición de estados para controlar la temperatura interior y exterior de un
Prueba y verificación: Probar y verificar es una parte importante del desarrollo del
software. Se debe asegurar pruebas de la aplicación con datos lógicos e ilógicos que den
una solución. La prueba de datos lógicos verifica un resultado esperado, mientras que las
pruebas de datos ilógicos verifican si el código tiene buena respuesta en el manejo del error
eficaz.
Actividad Complementaria 1
Diseñar soluciones: El proyecto tiene como entradas, la variable del proceso y el rango de
operación, también debe manejar el ingreso de una variable que permita detener el
programa. Las salidas del proyecto corresponden a la visualización de la variable y el
mensaje de alerta si ocurre una medición de valores fuera del rango de operación.
Figura 3.3. Diagrama de transición de estados para controlar el rango de operación de una variable en
un proceso.
Prueba y verificación: El proceso debe ser evaluado para diferentes rangos de valores que
estén dentro y fuera del rango de operación, que permita verificar la efectividad del
algoritmo y ver su respuesta ante valores erróneos de operación.
10
Capítulo II
Navegación en LabVIEW
Comenzar un VI
Los paneles de programación corresponden a dos ventanas que por defecto tienen
los colores gris y blanco, ambos paneles se requieren para crear un VI, la ventana gris sirve
como interfaz de usuario del programa, la ventana blanca se utiliza como el editor del
código de programación del VI.
Para guardar un nuevo VI, seleccione del menú principal de cualquiera de los panel
de programación, la opción File>>Save. Si el archivo ya está almacenado y fue
modificado, seleccione la opción Save As, para acceder al cuadro de diálogo de la figura
2.5. Desde el cuadro de diálogo se puede crear una copia de la VI o eliminar el VI original
y reemplazarlo con el nuevo, renombrarlo o duplicarlo en una nueva ruta o localización.
Explorar Proyectos
Los proyectos son sistemas completos que pueden agregar diferentes VIs, ser usado
en red por diferentes usuarios, manejar variables compartidas entre diferentes programas,
enlazar y configurar el hardware que se utilice en los VI programados, entre otras
aplicaciones. Los VI son simples ventanas de programación que forman funciones que
pueden ser enlazadas en un proyecto o que pueden trabajar en forma independiente.
Partes de un VI
Al abrir un nuevo o existente VI, aparece la ventana del Panel Frontal con un fondo
de color gris, sirve como interfaz de usuario para el VI, presenta una serie de elementos
que permiten trabajar cómodamente para crear el entorno gráfico del programa. Los
Elementos identificados en la pantalla de panel frontal son los siguientes:
1. Panel Frontal o Front Panel Windows: Es la ventana donde se ubican los objetos que
sirven de interfaz para ingresar datos y mostrar resultados al usuario. Es una pantalla de
color gris por defecto como se muestra en la figura 2.10, donde están las variables de
18
2. Barra de herramientas o Toolbar: Cada ventana del VI tiene una barra de herramientas
asociado con él. En la parte superior del Panel Frontal, aparecen una serie de botones que
conforman la barra de herramientas para ejecutar y editar los VIs. La figura 2.11 muestra
la barra de herramientas que aparece en la ventana del Panel Frontal.
En las tablas 2.1, 2.2 y 2.3 se observan cada uno de los elementos que conforman
la barra de herramientas, se hace una explicación detallada de la operación de cada Icono
y se muestra su respectiva imagen.
19
3. Paleta de Controles ó Controls Palette: Es una ventana de objetos que contiene todos
los elementos de datos de entrada o controles y los elementos de datos de salida o
indicadores gráficos, utilizados como interfaz para la transferencia de datos y la
presentación de la pantalla principal del programa, así como se muestra en la figura 2.12.
21
Controles e indicadores: Se crea la ventana del Panel Frontal con controles e indicadores,
que son los terminales de entrada y salida interactivas de los VIs. Los controles son perillas,
botones, diales y otros dispositivos de entrada. Los indicadores son pantallas gráficas, Leds
y otros elementos.
Controles e indicadores booleanos: El tipo de datos booleanos se representa con sólo dos
valores, como verdadero (TRUE) y falso (FALSE), también se puede asumir como
encendido (ON) y apagado (OFF), en algebra booleano se puede hablar también de dos
valores lógicos 1 y 0. En la figura 2.15, se observan diferentes controladores e indicadores
booleanos. Los objetos booleanos simulan interruptores, botones pulsadores y Leds.
23
Figura 2.18. Paleta de los controles e indicadores cadena de caracteres del LabVIEW.
Cuadro de diálogo de las propiedades de un objeto: Los objetos en la ventana del Panel
Frontal tienen cuadros de diálogo de propiedades, se utilizan para cambiar la apariencia o
el comportamiento de los objetos. Al hacer clic en un objeto, se selecciona Properties en
el menú de acceso directo y se abre el cuadro de dialogo de propiedades, tal como se
observa en la figura 2.20. La mayoría de opciones son similares a las opciones disponibles
en el menú de acceso directo para dicho objeto.
Figura 2.20. Cuadro de diálogos de las propiedades de controles e indicadores del LabVIEW.
Cables o hilos de conexión: Los objetos del diagrama de bloques transfieren sus datos
través de cables o hilos de conexión. Los cables conectan los terminales de los
controladores e indicadores con las diferentes funciones. Cada cable tiene una única fuente
de datos, pero se puede cablear a muchos VIs y funciones que requieran el mismo tipo de
dato. Los cables son de diferentes colores, estilos, y espesores, dependiendo del tipo de
datos que a través de él circule. En la tabla 2.4 se observan diferentes tipos de datos y el
color y ancho del alambre asignado por el programa a cada dato.
Cadena de Rosa
Caracteres
Clouster Rosa
Datos Azul
Dinámicos
Cable roto Negro
29
Un cable roto aparece como una línea discontinua negra con una X roja en el medio,
los cables rotos ocurren por diferentes razones, por ejemplo, cuando se tratar de conectar
dos objetos con tipos de datos incompatibles o cuando la dimensión del dato tampoco
coincide, es decir, no puede cablear una salida de matriz a una entrada numérica o
viceversa. La dirección de los cables debe ser correctos, se debe conectar los cables a una
sola entrada y al menos una salida. Los hilos que se encuentran en líneas discontinuas, se
pueden eliminar por completo del Diagrama de Bloques seleccionando la tecla de acceso
directo CTRL B, LabVIEW automáticamente elimina todos los enlaces rotos o con errores.
Desarrollo: El programa requiere de una variable de entrada o Input para introducir los
grados Centígrados, también requiere de una variable de salida Output para ver el valor de
temperatura en grados Fahrenheit. Para procesar los datos se requiere dos funciones
matemáticas suma y multiplicación que permitan hacer la conversión de grados de la
temperatura. En la ecuación 2.1 y 2.2 se observa el modo matemático para la conversión.
Función:
℉= ∙ ℃ + 32 Ec. 2.1
Equivale a
℉ = 1,8 ∙ ℃ + 32 Ec. 2.2
La figura 2.25 muestra el valor por defecto que presenta la Paleta de Funciones, al
seleccionar cualquier Icono o lista, se despliega un menú completo de funciones o VIs,
relacionados con el tema seleccionado, la ventana presenta una especie de anclaje en la
esquina superior del recuadro del menú, esto permite que una vez seleccionado el submenú,
pueda ser anclado y quedar completamente en dominio de la ventana. La Paleta de
Funciones presenta internamente un menú como lo muestra la figura 2.26, donde se puede
utilizar dos aplicaciones generales, la primera es la opción activa un buscador muy parecido
al explorador de Windows, que permite conseguir en forma directa funciones y controles
tanto para el Diagrama de Bloques como para el Panel Frontal.
32
Paleta de Herramientas
Actividad Complementaria 2
Con los conocimientos hasta ahora vistos se requiere construir un VI que represente
las tareas más utilizadas en LabVIEW para los procesos de adquisición de datos en
ingeniería electrónica, recuerde que los VI del LabVIEW, son orientados a tareas de
adquisición y procesamiento de datos, para procesos reales. Utilice el Método de
Desarrollo de Software, para esta actividad.
Diseñar soluciones: Definir primero las entradas y salidas del problema y seguidamente
el diagrama de flujo (figura 2.30).
Input: La entrada para este problema es un canal analógico de una tarjeta de adquisición
de datos para recibir la onda sinusoidal.
Output: La salidas incluyen un gráfico de los datos sinusoidales y un archivo de registro
de los datos.
Diagrama de Flujos:
Figura 2.31. Vi Express y configuración de los parámetros del VI Express para adquisición de datos.
Figura 2.33. VI Express y sus parámetros de configuración, para calcular el valor promedio de la señal.
En el Panel Frontal de la figura 2.36 se muestra dos controladores, uno tipo pantalla
para observar la señal adquirida en función del tiempo, y otro tipo numérico para ver su
valor promedio.
Capítulo III
Solucionar problemas de depuración para programas en LabVIEW
Para ejecutar un VI, deben estar correctamente conectadas todas las funciones y
estructuras con los datos correctos en cada uno de los terminales, a veces se presentan
inconvenientes que no permiten la ejecución de la función o que un VI produzca datos
erróneos o inesperados. Cuando se presenten situaciones que dificulten la ejecución de los
VI, se puede configurar el LabVIEW para identificar los problemas que se presenten en la
ejecución y encontrarlos en el flujo de datos que pasa a través del Diagrama de Bloques.
En este capítulo se desarrollan temas relacionados con las utilidades de ayuda del
LabVIEW y los mecanismos de depuración de programas para solucionar los
inconvenientes de no ejecución de un VI. Los temas a desglosar son los siguientes:
-. Utilidad de la ayuda del LabVIEW.
-. Corrección de los VI rotos o Broken VIs.
-. Técnicas de Depuración.
-. Verificación y tratamiento de Errores.
-. Actividad Complementaria 3.
Show Context Help: Es una opción que se encuentra en el menú de ayuda del LabVIEW,
muestra información básica de cada objeto o función, con tan sólo mover el cursor sobre
el objeto, está disponible en las ventanas del Panel Frontal y Diagrama de Bloques. Hay
dos formas de acceder al Show Context Help, una es a través de un icono ubicado en las
paletas de herramientas del Panel Frontal y Diagrama de Bloques como se muestra en la
figura 3.1; la otra es a través del menú de ayuda o pulsando <Ctrl-H> para acceso directo.
La ventana Show Context Help abre un cuadro de dialogo que muestra un Icono
para subVIs, funciones, constantes, controles e indicadores, la ventana despliega
información textual con el nombre de los terminales, tipo de datos y una breve explicación
de la aplicaciones del objeto seleccionado, esta ventana se observa en la figura 3.2.
En la parte inferior de la ventana del Show Context Help, se pueden observar tres
Iconos que tienen las funciones explicadas en la tabla 3.1:
LabVIEW Help: La ventana LabVIEW Help del menú de ayuda del LabVIEW, disponible
en las ventanas del Panel Frontal y del Diagrama de Bloques, como se muestra en la figura
3.3. Con esta ayuda se puede acceder a una gran base de datos que describe detalladamente
cada función con sus terminales de entrada y salida y algunos ejemplos.
NI Example Finder: Se encuentra disponible en el menú de ayuda del LabVIEW, con esta
ayuda se accede a una gran base de datos formada por problemas o subVIs ejecutables que
abarcan las diferentes áreas de conocimiento que maneja el LabVIEW. La figura 3.5
muestra la ventana que contiene la opción para acceder a los ejemplos de LabVIEW.
VIs en línea a través de su página Web. En la figura 3.6 se observa el menú del NI Example
Finder con los diferentes programas por contenido que se encuentran archivados en el
LabVIEW.
Web Resources: El acceso a los recursos Web para buscar manuales del hardware y del
software, se puede hacer desde el menú de ayuda del LabVIEW. Ejemplos de VIs, soporte
técnico, productos, cursos y eventos en los que se pueden acceder desde está función. La
figura 3.7 muestra la ventana que contiene esta opción.
Las advertencias no detienen la ejecución del VI, pero los errores si rompen la
ejecución del VI, se deben corregir los errores antes de poder activar la función. Cuando el
botón Run está roto se puede hacer clic sobre él y aparece una ventana como la figura 3.9
llamada Error list, que contiene la lista de las posibles advertencias y errores del programa.
47
La lista de errores muestra todos los errores que se presenten en un VI, incluyendo
los SubVI que estén dentro del VI. La sección de errores muestra los nombres de todos los
elementos que estén en memoria y que tienen errores. Si dos o más elementos tienen el
mismo nombre, esta sección atiende la aplicación específica para cada elemento. La
sección de errores y advertencias enumeran los errores y advertencias en el VI, así facilita
la selección de cada elemento que presente error.
Causas comunes del Broken VI: La siguiente lista contiene las razones más comunes por
las que un VI se rompe o impide su ejecución:
• Alambre o cable suelto sin conectar
• El Diagrama de Bloques contiene un cable roto debido a una posible conexión entre
diferentes tipos de datos.
• Un terminal de una función del diagrama requiere conexión y está sin conexión.
• Datos inadecuados conectados a un terminal de una función.
• Un subVI mal editado y que se guardó con error.
• Uno de las razones anteriores ubicada dentro del subVI, que es llamado en el VI
principal.
Técnicas de Depuración
Si un VI no está roto, pero se obtiene datos inesperados, puede utilizar las siguientes
técnicas para identificar y corregir problemas en el Diagrama de Bloques del VI:
Ventana de Context Help: Se utiliza para comprobar los valores por defecto para cada
función y subVI en el Diagrama de Bloques, está aplicación ya fue explicada en
previamente en este capítulo. En la figura 3.13, se observa el botón Show Context Help,
ubicado en la barra de herramientas del Diagrama de Bloques y del Panel Frontal.
Los Botones Step Into, Step Over y Step Out: Utilice estas opciones para correr los VIs
en modo paso a paso, el programa se ejecuta función por función y así se poder detectar el
error del VI. En la figura 3.14, se observa el botón Step Into, Step Over y Step Out, ubicado
en la barra de herramientas del Diagrama de Bloques.
50
Botón Probe Data: Función de la Paleta de Herramientas, usado para probar los valores
de datos en cualquier punto del alambrado y definir si existen datos inesperados. En la
figura 3.15, se observa el botón Probe Data, ubicado en la paleta de herramientas.
Valores indefinidos o inesperados: Determinar si los datos que una función envía al
programa, son indefinidos o inesperados, esto sucede a menudo con los valores numéricos.
Los datos no definidos, aparecen en el programa como NaN (no número), el cual representa
un valor de punto flotante no válido, operaciones como la raíz cuadrada de un número
negativo pueden producen este tipo de dato. Inf (infinito) representa un valor de punto
flotante no válido, por ejemplo, la división de un número por cero. Las representaciones de
estos datos están en conformidad con la norma estándar IEEE 754, para aritmética binaria
de punto flotante. En la figura 3.16, se observan los indicadores numéricos con los
mensajes correspondientes a datos indefinidos.
Prueba del orden de los elementos de un Cluster en los puntos de origen y destino: los
Cluster son un arreglo de datos de diferentes tipos, el cual se detallará en capítulos
posteriores, sin embargo los elementos que los componen deben coincidir en el orden que
fueron generados.
Figura 3.19. Paleta de funciones para el manejo de errores programados por el usuario.
Figura 3.20. Menú de ayuda del LabVIEW para identificar código de errores.
Los Cluster de error son estructuras que manejan tres tipos de datos (numérico,
booleano y cadena de caracteres) para tratar en forma manual los errores de cada función
de programación y así identificar donde está su ocurrencia. Se plantea una estructura que
utilice como error de entrada a la función (Error IN) y una estructura que se utiliza como
error de salida de la función (Error OUT), si ocurre el error dentro de la función los datos
del Cluster cambian y manda la información requerida para tratar el error. En las figura
3.21, se puede ver para una determinada función los Cluster de error de entrada y salida.
Casi todas las funciones que utilizan I/O, entradas y salidas de datos con hardware,
manejan este tipo de estructura para retornar la información de los errores. Los errores en
un Cluster pueden incluir comprobación del error en operaciones especiales (Registro de
datos, comunicación serial, adquisición de datos, entre otros), y proporcionar un
mecanismo para controlar los errores apropiadamente. Los componentes que forman el
Cluster de error son los siguientes:
55
Actividad Complementaria 3
Definir el problema: Generar un programa, prueba de errores.VI, que tiene una serie de
errores que el usuario debe detectar y corregir usando las herramientas explicadas en este
capítulo. A continuación se observa en la figura 3.22, el Panel Frontal y el Diagrama de
Bloques del programa.
Figura 3.22. Panel Frontal y Diagrama de Bloques del programa prueba de errores.
56
Aplicación: En el VI se observa que el botón de correr está roto, es decir, modo Broken,
por lo tanto presenta errores y no se puede ejecutar. En el programa se ve dos indicadores
un control y dos funciones propias del LabVIEW y un SubVI. También se puede ver que
hay enlaces rotos. Para permitir que LabVIEW detecte los errores en modo automático, se
procede hacer clic en el botón de correr y debe aparecer el cuadro de dialogo de la lista de
errores como aparece en la figura 3.23.
Repitiendo el paso anterior, se corrigen cada uno de los errores que presenta el VI.
El primer error del Error list, resalta el SubVI llamado raíz prueba errores.vi, se hace
doble clic sobre el subVI y se observa el Panel Frontal y Diagrama de Bloques para detectar
el error, así como se muestra en la figura 3.25.
También aparece el botón correr modo roto, por lo que se repite el procedimiento
de definir la lista de errores, pero ahora dentro del subVI. Una vez corregido el error el
botón de correr del SubVI retorna a su estado de operación normal (figura 3.26).
58
Figura 3.28. Corregir tercer error del subVI, cambiar controlador a indicador.
Capítulo IV
Implementar un Instrumento Virtual VI
En la fase de diseño lo primero que se debe identificar son las entradas y salidas del
problema. Esta identificación conduce directamente al diseño de la ventana del Panel
Frontal, recuerde que el Panel Frontal es la interfaz de usuario del programa. Se puede
identificar las entradas de datos del problema partiendo de las siguientes condiciones:
• Datos provenientes de una tarjeta de adquisición de datos.
• Datos provenientes de un archivo o base de datos.
• Datos introducidos por el usuario al manipular los controles del Panel Frontal.
Se Puede identificar las salidas de datos del problema partiendo de las siguientes
condiciones:
• Datos que se envían a una tarjeta de adquisición de datos.
62
Existen muchos tipos de datos que se pueden trabajar en LabVIEW, los datos más
comunes están representados por los valores numéricos, booleanos y las cadenas de
caracteres. Cada tipo de dato se relaciona con un color específico y contienen una gama
amplia de elementos que establecen las interfaces con el usuario. Los elementos se pueden
clasificar en controles e indicadores y se ubican en el Panel Frontal, cada elemento genera
un terminal en el Diagrama de Bloques, con el mismo color que representa el tipo de dato,
los controladores e indicadores se diferencian según el tipo de dato, para los elementos
básicos los datos numéricos, representan números de diversos tipos, pueden ser enteros,
reales y complejos con diferentes representaciones. Estos elementos se encuentran en la
Paleta de Control del Panel Frontal, observada en la figura 4.1, en el submenú Modern.
Los controles e indicadores van desde displays sencillos, hasta instrumentos de medición
básicos como: Tanques, termómetros, metros, barras de desplazamiento, intensidad de
color, perillas, entre otros.
El tipo de dato booleano representa solo variable de dos estados o niveles posibles.
Estos niveles LabVIEW los asume como verdadero y falso. Cada controlador puede asumir
diferentes representaciones según la acción mecánica que se le programe. Estos elementos
se encuentran en la Paleta de Control del Panel Frontal en el submenú Modern, van desde
interruptores, pulsadores, botones, Leds, entre otros. En la figura 4.3, se observan algunos
controladores e indicadores booleanos ubicados en el panel frontal.
El tipo de dato cadena de caracteres o string, son cualquier tipo de carácter que
abarca letras, números, símbolos, entre otros. Cada controlador o indicador puede asumir
diferentes representaciones según el formato que se le asigne en sus propiedades. Estos
elementos se encuentran en la Paleta de Control del Panel Frontal en el submenú Modern,
64
los controles e indicadores van desde líneas de texto, path o enrutadores, entre otros. En la
figura 4.4, se observan algunos controladores e indicadores de cadenas de caracteres
ubicados en el Panel Frontal.
Algunos datos se presentan en forma combinada, tal es el caso de los datos tipo
Enum y Ring, es una combinación de tipo de datos numéricos enteros con cadenas de
caracteres y pueden representar una lista de valores. Los controladores Enum se consiguen
en la Paleta de Control opción Modern, incluyen menú y listas desplegables para ingresar
caracteres y retornan al Diagrama de Bloques un número entero. Para editar los campos de
un Enum, se selecciona el controlador se va a las propiedades del mismo y selecciona la
opción edit ítem. En la figura 4.5, se observa como editar el ítem de un Enum para un
ejemplo de un controlador que representa los días de la semana y cada día representa un
número entero.
Figura 4.12. Ejemplo de indicador de velocidad con valor inicial y menú de configuración.
etiqueta o nombre al controlador. Caption, es un subtítulo para dar una descripción del
control. Unit Label, da la unidad física que va llevar el controlador. Digital Display,
muestra el valor del controlador en un control numérico. Ramp le agrega una barra de
intensidad de color al controlador. En la figura 4.14 se ve el controlador, con algunas de
las funciones seleccionadas.
Figura 4.15. Venta de configuración del controlador con Make Type Def y su terminal.
70
Figura 4.16. Vista sobre el controlador del mensaje incluido en la función Description and Tip.
La función Replace, se utiliza para remplazar un objeto por otro objeto del panel.
Data Operation, utiliza un menú que contiene los valores por defecto para reiniciarlos o
cambiarlos. Advanced, abre un menú de funciones relacionadas con configuración de las
teclas de navegación, enlaces directos, visibilidad del controlador, entre otros. Las
funciones Fit Control y Scale Object, escalan objetos del panel, son atributos del
controlador, que ajustan las dimensiones del controlador a la pantalla del Panel Frontal y
establecer unas líneas de marca para centrar el objeto con respecto a otros elementos.
definen diferentes formatos de ingreso. A continuación se presentan las tablas 4.2, 4.3, 4.4
y 4.5, que describen todas las representaciones de los diferentes tipos de datos.
palabra 16 4 0 a 65.535
entero sin
signo
largo 32 9 0 a 4.294.967.295
entero sin
signo
cuadrado 64 19 0 a 2e19
entero sin
signo
switch when released: Cambiar cuando se libera. Cambia el estado de liberación del
botón. Permanece allí hasta que el botón sea de nuevo liberado.
Switch until released: Cambiar hasta que sea liberado. Cambiar el estado del botón
cuando se pulsa, y cambia el estado nuevamente cuando se suelta el botón.
Latch until released: Enganchar hasta que sea liberado. Cambiar el estado con la
pulsación del botón y cambia de nuevo cuando se libera y es leído por LabVIEW.
Apariencia: Son las propiedades que modifican la forma en que se visualiza el controlador
en el panel frontal
Editor de Menú: Existe otro formato para ingresar y manejar datos en el programa, el
Edit Menú (Figura 4.19), se presenta como una mezcla de un Enum y un string, se encarga
de generar controladores de tipo menú en el Panel Frontal, y los transfiere al diagrama de
bloques como una cadena de caracteres en una variable definida como Item Tag. El editor
es una herramienta del LabVIEW para personalizar el menú del Panel Frontal, esta es una
forma de presentar las funciones de forma más ordenada y utilizando menos espacio,
también permite crear accesos directos del teclado para los elementos del menú. Para crear
el menú, y que se active en el momento que se ejecute el VI, se debe hacer el procedimiento
que se desarrollará en el siguiente ejemplo:
Desarrollo: Se van a ejecutar una serie de pasos para aprender a utilizar la herramienta
Edit Menu, es una aplicación que trae LabVIEW para estructurar el menú de la misma
forma que se presentan en cualquier aplicación de software. A continuación se define el
algoritmo a seguir.
1. Hacer clic en el siguiente enlace del editor de menú del Panel Frontal del VI a programar
Edit»Run-Time Menu.
3. El editor tiene establecido por defecto el menú activo del Panel Frontal, para personalizar
el menú cambie en la barra de herramientas en el editor, la opción default por custom.
4. Para proceder a crear el menú del ejemplo, se procede a formar columna por columna.
La primera columna tiene como cabecera el titulo Operaciones, se introduce ese título en
la ventana principal en blanco del editor de menú, tal como se muestra en la figura 4.20.
6. En los bloques del lado derecho del editor, hay cuatro campos que deben ser llenados e
indican la propiedad de cada línea del menú o Item, la figura 4.21 muestra estos campos.
78
El primer campo indica el tipo de Item, el segundo el nombre del Item en el menú, para el
caso de ejemplo debe ser Suma, el tercer campo el Item Tag, este campo representa el
caracter o string que el menú le va a pasar al Diagrama de Bloques del VI cuando sea
seleccionado. Aparecen también dos bloques de selección Enable para ver si el menú está
habilitado y Checked equivalente al símbolo (√). También aparece el campo shortcut, para
seleccionar la tecla de enlace directo.
7. Se procede a llenar las otras líneas del menú siguiendo el mismo procedimiento. En la
barra Preview, se puede ver cómo va quedando el menú, como se muestra en la figura 4.22.
8. Finalmente se guardar en el disco duro con la extensión Run Time Menu (*.rtm), para
el ejemplo prueba.rtm. Una vez guardado el programa, el sistema pregunta si desea
guardar y enlazar al VI actual, el usuario debe hacer clic en aceptar.
Código en LabVIEW
Diseñar soluciones: Definir entrada INPUTS y salidas OUTPUTS del problema, se puede
acompañar de pasos o algoritmos, diagrama de flujos, o diagrama de transición de eventos.
Para Generar Código LabVIEW, se debe crear la ventana del Panel Frontal con los
elementos que van a representar las entradas y salidas del sistema. En la ventana del
Diagrama de Bloques se plantean los procedimientos a seguir en el programa y la ubicación
de las funciones o comandos de programación. Acá se debe establecer enlaces entre los
terminales formados por los elementos del Panel Frontal y las diferentes funciones de
programación.
Actividad Complementaria 4
Definir el problema: Crear un programa que detecte un nivel bajo y un nivel alto de
temperatura, en un rango definido por un usuario y que genere una advertencia a través de
un mensaje textual en un indicador y que un led muestre un alto en el momento de la falla.
Diseñar soluciones: Se van a manejar los recursos de identificar las entradas INPUTS y
salidas OUTPUTS de datos, para ello se genera una tabla de identificación de variables,
así como se observa en la tabla 4.7. La figura 4.24, muestra como recurso opcional el
diagrama de flujos para estructurar el programa.
81
Diagrama de flujo:
Capítulo V
Temporizadores y Gráficas de señales en los VI
Funciones de espera: Permiten que el VI se detenga por el intervalo de tiempo que defina
la función. Ayuda al procesador realizar otras tareas durante el tiempo de espera, dichas
funciones utilizan el reloj en milisegundo del sistema operativo del computador. Para
ubicar las funciones de espera se accede a la paleta de funciones del Diagrama de Bloques
y seleccionar las funciones de temporización Timing, como se observa en la figura 5.1, en
las tabla 5.1 y 5.2, se presenta la explicación de las funciones de temporización más
utilizadas en LabVIEW.
86
Figura 5.1 Funciones de temporización desde la paleta de funciones del Diagrama de Bloques.
Figura 5.2 Funciones gráficas desde la paleta de control del Panel Frontal.
Los elementos del gráfico, se visualizan, al hacer clic derecho sobre la imagen en
el menú Visibles Item. A continuación se explican las operaciones de cada elemento.
Leyenda del Gráfico (Plot Legend): Define las características de visualización de la señal
a graficar, permite cambiar el color, añadir señales al indicador, tipo de línea, ancho y punto
de la señal, tipo de gráfico, entre otros. Para añadir señales, se expande el cuadro de leyenda
del gráfico. Sobre cada gráfica se puede cambiar todas sus características en forma
independiente, haciendo clic sobre la respectiva gráfica. Presenta diferentes modos de
presentación, por ejemplo, para trabajar con dos señales una blanca que se observe en forma
continua y otra roja que se observe con puntos discretos, se accede al menú de cada señal
y ajusta los parámetros de color y estilo de punto, como se ve en la figura 5.4.
Figura 5.4. Gráfica de forma de onda WaveFormChart, para dos señales con su leyenda.
Figura 5.5. Gráfica de forma de onda WaveFormChart, para una señal con escala y rejillas.
Strip Chart: Registra datos de forma similar como ocurre en una banda de cinta de papel,
desplazándo continuamente de izquierda a derecha. Es el modo por defecto, ver figura 5.7.
Scope Chart: Desplaza el gráfico de izquierda a derecha, para cada nuevo valor va trazando
el valor nuevo a la derecha del último valor. Cuando la trama alcanza el borde derecho del
área de la pantalla de trazado, se borra la trama y comienza de nuevo el trazado desde la
izquierda, ver figura 5.7. La pantalla hace el barrido de forma similar a un osciloscopio.
Sweep Chart: Trabaja similar al Scope Chart, excepto que muestra los primeros datos en
la derecha y los nuevos en la izquierda, separados por una línea vertical roja, ver figura 5.7.
Para Realizar gráficos múltiples, los datos se pueden agrupar en valores numéricos
escalares, donde cada valor numérico representa un solo punto para cada una de las
gráficas. Esto se puede realizar a través de un enlace llamado Bundle, ubicado en el
Diagrama de Bloques y utilizado para estructuras de datos definidos como Cluster. Si se
quiere pasar múltiples puntos por un gráfico, se debe cablear los valores numéricos como
vectores y agrupar con la función Bundle, en la figura 5.8 se muestra esta función. Los
Cluster y la función Bundle se explicaran con detalles en un capítulo posterior.
WaveformGraph para una sola señal: Acepta varios tipos de datos para graficar una sola
señal. El gráfico acepta un vector de varios valores y los interpreta como los datos que
corresponden a los puntos de la gráfica, incrementa automáticamente el índice X partiendo
de X = 0. El gráfico también acepta un Cluster que contenga un valor inicial de X o un ΔX
y el grupo de datos correspondientes a Y. También acepta formas de onda con datos de
tiempo que incluyan la hora de inicio y un Δt.
WaveformGraph para múltiples señales: El gráfico acepta varios tipos de datos para la
visualización de múltiples señales, acepta una matriz con los valores en donde cada fila de
la matriz es una sola señal. Si se hace la matriz transpuesta cada columna pasa a tener los
datos de la señal. El gráfico interpreta los datos como puntos de la señal e incrementa el
índice X de uno en uno comenzando en X = 0. El gráfico también acepta un Cluster con
un valor inicial de X un ΔX y una matriz 2D de datos de Y. El gráfico interpreta los datos
de la matriz Y como los puntos de la señal e incrementa el índice X por ΔX a partir del
valor inicial de X. Este tipo de datos es útil para la visualización de múltiples señales que
se muestrean a la misma frecuencia.
WaveformGraph para datos dinámicos: Acepta datos dinámicos, lo que permite que se
utilice como indicador gráfico de los VI Express. Los datos dinámicos incluyen la
información asociada con la señal y con atributos que pueden definir el nombre de la señal,
la fecha y hora que fue adquirida, entre otros. Cuando el dato dinámico incluye un simple
valor numérico, el gráfico representa el valor simple y automáticamente da formato a la
escala X como marca de tiempo. También acepta datos dinámicos cuando se procesan
múltiples señales. Cuando el tipo de datos dinámico incluye múltiples señales, el gráfico
muestra cada una de las señales simples y automáticamente da formato a la leyenda de la
escala X para todas las señales.
aceptar un Cluster que contenga un vector X y un vector Y, para introducir los datos de
cada coordenada. También acepta una arreglo de puntos, donde un punto es un Cluster que
contiene un valor de X y un valor Y. El gráfico XY acepta un arreglo de datos complejos
en los que la parte real se traza en el eje X y la parte imaginaria se traza en el eje Y. La
figura 5.10 muestra un ejemplo de indicador gráfico XY, para el caso de una sola señal.
Gráficos de intensidad Graph y Chart (5 y 6): Se utiliza la gráfica intensidad para mostrar
datos 3D en un plano 2D, mediante la colocación de bloques de color en el plano cartesiano,
por ejemplo, puede utilizar un gráfico de intensidad para mostrar los datos que modelen
patrones de temperatura y relieve de un terreno donde la magnitud representa la altitud. El
gráfico de la intensidad acepta una matriz 3D de números, cada número en la matriz
representa un color específico. Los índices de los elementos de la matriz 2D dan los lugares
de la trama de los colores, tal como se observa en el ejemplo de la figura 5.13.
Gráfico de intensidad Graph (6): El gráfico de intensidad Graph trabaja igual que el
gráfico de intensidad Chart, excepto que no conserva los valores de datos anteriores y no
incluye los modos de actualización, ver figura 5.15.
Los colores por defecto que trae el grafico de intensidad es la escala que va del
blanco al negro pasando por las diferentes tonalidades de azul. Se puede cambiar el color
del gráfico de intensidad modificando los atributos del eje Z, el cual define la coordenada
del color del gráfico. Se puede crear la propiedad de nodo del gráfico en el Diagrama de
Bloques, con la función de atributo que se observa en la figura 5.16.
de datos el cual presenta 6 líneas de datos que van desde la línea 0 hasta la línea 5, cada
línea tiene aproximadamente 9 bits de información, tal como se observa en la figura 5.18.
Al utilizar el grafico de datos digitales, se divide cada uno de los buses de datos y
la gráfica por separado, mostrando seis líneas con los respectivos estados que asumen cada
bit, tal como se muestra en la figura 5.19.
Ejemplo de Aplicación 3: Una de las aplicaciones más comunes para el área de sistemas
Digitales, es la conversión de un vector de números reales a binarios y mostrar las
representaciones binarias de esos números en el indicador gráfico de datos digitales.
Realizar la Conversión Análogo-Digital (CAD) de un arreglo de datos.
99
Figura 5.21. Bus de datos de las 8 líneas de información de los 4 canales de datos.
100
Gráfico de señales Mixtas (Mix Signal Graph) (8): El gráfico de señal Mixta muestra al
mismo tiempo, datos de señales analógicas y digitales y acepta todos los tipos de datos
usados por los gráficos WaveFormGraph, XY Graph y Digital WaveForm Graphs. Un
gráfico de señal Mixta tiene dos áreas de trazado de gráficas, un área de trazado sólo para
señales digitales y uno para señales analógicas, se pueden graficar múltiples señales
analógicas y digitales por área de trazado, pero no se puede mezclar una señal analógica y
una digital en una misma área de trazado. Al agregar múltiples graficas en un área de
trazado, el programa define una sola escala en Y para todas las gráficas, la escala en X es
compartida para las dos áreas de trazado. Para poder armar las diferentes áreas de trazado
se debe crear un Cluster, que concatene los arreglos de datos de las diferentes señales
analógicas y digitales por medio de la función Bundle. En la figura 5.22, se muestra un
indicador gráfico para señales mixtas.
Gráficas 2D: Utiliza los datos de valores XY para trazar puntos en la gráfica y conectar
los puntos, formando una vista de la superficie bidimensional de los datos. Con gráficos en
2D se puede visualizar los datos bidimensionales de gráficos XY porque todos los gráficos
2D son gráficos XY. Los Gráficos 2D se pueden clasificar en:
101
Compass Plot (9): Es un gráfico que genera vectores con su valor de magnitud, desde el
centro de una circunferencia expresada en grados de 0° a 360°. Ver la figura 5.23.
Error Bar Plot (10): Grafica una barra de error sobre un punto por encima y debajo de un
gráfico lineal. La figura 5.24, muestra la aplicación de VI.
Feather Plot (11): Gráfico que emanan vectores de puntos igualmente espaciados a lo largo
de un eje horizontal, como el de la figura 5.25.
102
XY Plot Matrix (12): En la figura 5.26, se muestra un gráfico con las filas y columnas de
un gráfico de dispersión.
Gráficas 3D (14): Existe señales que requieren un análisis más complejo, y presentar sus
datos en indicadores gráficos 3D, por ejemplo, distribución de superficie, volumen de una
103
señal, figuras geométricas en el espacio, entre otros. Para presentar los datos en 3D,
LabVIEW incluye un grupo de indicadores gráficos, que se encuentran ubicados en la
paleta de control del Panel Frontal, tal como se observa en la figura 5.27.
Scatter (a): Muestra en el plano cartesiano valores estadísticos, de la relación entre dos
grupos de datos. Ver figura 5.28.
Stem (b): Muestra la respuesta como un impulso y organiza los datos por su distribución.
Ver figura 5.28.
Comet (c): Crea gráfico animado con un circulo que sigue los puntos de los datos Ver
figura 5.29.
Surface (d): Gráfico de datos con una superficie de conexión. Ver figura 5.29.
Contour (e): Gráfico de señales con líneas de contorno. Ver figura 5.30.
Mesh (f): Grafica de una superficie de conexión con espacios abiertos. Ver figura 5.30.
Waterfall (g): Genera un gráfico de la superficie de los datos y el área en el eje Y por
debajo de los puntos de los datos. Ver figura 5.31.
Quiver (h): Genera un gráfico de vectores normales a la superficie. Ver figura 5.31.
Ribbon (i): Genera un gráfico de líneas paralelas a la superficie. Ver figura 5.32.
3D Surface Graph (l): Dibuja un gráfico de superficie en el espacio 3D. Ver figura 5.33.
3D Parametric Graph (m): Dibuja superficie paramétrica en espacio 3D. Ver figura 5.34.
3D Line Graph (n): Dibuja una línea en el espacio 3D. Ver figura 5.34.
ActiveX 3D Surface Graph, Parametric Graph y 3D Curve Graph: Estos tres tipos de
indicadores gráficos, tienen las mismas funciones que los tres anteriores pero utilizan
tecnología ActiveX 3D, que se define como un contenedor de programas externos sobre el
panel frontal del LabVIEW. Ver figura 5.35.
Control de Imágenes 3D
Crear un Objeto: Los objetos 3D, que aparecen en una escena, son gráficas de objetos
físicos, es un conjunto de vértices que existe en el espacio 3D y cualquier conexión que
pueden o no existir entre esos vértices. Cuando se crea una escena 3D se crea uno o más
objetos en 3D, utilizando la función crear objeto (Create Object) que ubicada en las
funciones de gráficas de la Paleta de Funciones, la cual se muestra en la figura 5.37.
Después de crear un objeto 3D, debe definir su apariencia, para ello debe configurar
los siguientes atributos:
Geometría: Especifica la forma de un objeto 3D, cubos, esferas, conos, cilindros, etc.
También puede utilizar mallas para crear objetos geométricamente más complejos. La tabla
5.3, muestran algunos objetos con imagen 3D.
109
Esferas
Cilindros
Conos
Texto: Si un objeto no tiene una geometría definida, puede aplicar el texto al objeto para
crear un objeto de texto. Al igual que los objetos con geometrías definidas, el texto aparece
cuando se hacen la escena 3D. En la tabla 5.4, muestra un objetivo tipo texto en 3D.
110
Traslación: Consiste en mover el objeto a una nueva ubicación en la escena 3D. Para
especificar la nueva ubicación para el objeto 3D, se define un vector de coordenadas del
objeto, como se muestra en la figura 5.38.
Rotación: Cambia la orientación del objeto 3D. Para especificar la nueva orientación, se
define un eje alrededor del cual gira el objeto y un ángulo alrededor del eje por el cual se
produce la rotación, tal como muestra la figura 5.39.
Figura 5.40. Función de rotación para los ejes X,Y y Z, para crear escenas 3D.
Escalar: Cambia el tamaño del objeto 3D. Para especificar la nueva escala, establece los
factores X, Y, Z y planos de la escena 3D a los que desea cambiar el tamaño del objeto, tal
como se muestra en la figura 5.41.
112
Para hacer una textura de una imagen 2D, sobre una esfera se procede a realizar los
siguientes pasos Se referencia o se crea el objeto 3D, luego se activa la escena con la
propiedad que se quiere aplicar al objeto para este caso textura, seguido se configura el VI
de textura, al cual se le debe cargar la imagen 2D indicando la dirección de la imagen, se
crea la escena de textura y se procede aplicar dicha superficie a la escena del objeto 3D,
finalmente se visualiza la imagen compuesta, como se muestra en la figura 5.42 y 5.43.
Ejemplo de Aplicación 4: Crear una escena con varios objetos 3D y visualizar la escena
3D utilizando el control de cámaras.
Desarrollo: Se pueden relacionar más de un objeto 3D en una escena, para ello se procede
a configurar los siguientes pasos:
1. Crear los objetos 3D que se desean relacionar en una escena, para ellos debe escoger
las figuras geométricas (cuadrado y esfera), y la función crear objeto para
referenciar la escena.
2. Se le incluye la función de trasladar objeto para uno de los objetos, en este caso
para la esfera.
3. Se selecciona el VI, adicionar objetos y se mantiene la referencia del evento.
4. Finalmente se lleva al control 3D picture para visualizar las dos imágenes.
Para visualizar las escenas 3D, se debe configurar los controles de la cámara, para
ello se debe hacer clic derecho sobre el 3D picture del Panel Frontal, y en el menú
desplegable seleccionar controles de cámara, se presentan cuatro opciones, tal como se
observa en la figura 5.45.
Figura 5.45. Visualizar una escena con dos objetos 3D usando el controlador de cámaras.
Actividad Complementaria 5
Aplicación: Diseñe un Panel Frontal que tenga el indicador de señales Mixtas analógicas
y digitales, además que presente dos controladores para ingresar el número de muestras y
la amplitud de la señal, también se le agregan dos indicadores tipo arreglo vectorial, para
ver los datos analógicos y digitales de entrada y salida del convertidor, tal como se muestra
en la figura 5.47.
La variable tipo entero de color azul I, evalúa muestra por muestra la función
sinusoidal, se utiliza un operador de multiplicación para llevar el valor máximo de la
función al valor de amplitud deseado por el usuario. La salida de la multiplicación se
redondea para establecer la resolución en un voltio y tener antes del convertidor solo
números enteros. En la figura 5.49 se observan los datos muestreados.
Cada una de las líneas del gráfico digital, corresponden a los valores de la tabla
dada por el convertidor análogo digital ADC. La señal analógica puede mejorar su
resolución dependiendo del número de muestras. El diagrama de bloques de la figura 5.52,
muestra la conexión de los indicadores tipo arreglo y el indicador gráfico mixto; queda
codificado de la siguiente manera.
Prueba y verificación: Se verifica la conversión de cada uno de los 8 valores del vector
numérico y se calcula el valor equivalente en su salida digital, por ejemplo el valor de
amplitud de 4V, en digital según la conversión dada por digito de 2n, debe ser el equivalente
de 22 el cual corresponde al 000 0100 sin considerar el signo, tal como se observa en la
figura 5.53.
Capítulo VI
Estructuras fundamentales de lazos repetitivos de LabVIEW
Las estructuras son representaciones gráficas de los lazos que se utilizan como
funciones básicas en los lenguajes de programación, se encargan de repetir el código que
se programe en el interior de la estructura dependiendo de una condición específica. Tienen
terminales que los conectan a otros bloques del diagrama y se ejecutan automáticamente
cuando se dispone de datos de entrada y envían datos a la salida cuando finaliza la
ejecución. Cada estructura tiene un borde distintivo, de tamaño variable para encerrar la
sección del Diagrama de Bloques que se ejecuta de acuerdo con las reglas de la estructura.
La sección del Diagrama de Bloques dentro de la estructura de borde se llama subdiagrama
y los terminales que alimentan datos dentro y fuera de las estructuras son llamados túneles.
Definir el problema: Diseñe un programa que evalué un número aleatorio entre 0 y 1000
y verifique si es igual a un número definido por el usuario. Cuando el programa consiga el
número, debe indicar cuantas iteraciones hizo para conseguirlo.
123
Diseñar soluciones: Definir variables de entrada y salida de datos (Tabla 6.1) y se procede
hacer un diagrama de flujos (Figura 6.6), previo a la codificación del programa.
Aplicación: Lo primero a diseñar es la ventana del Panel Frontal (Figura 6.7), se buscan
dos indicadores numéricos para los valores de la variable aleatoria y el contador de
iteraciones y un controlador numérico para incluir el número a comparar.
124
Túnel de la estructura While: La estructura While se define como túnel, los puntos de
entrada y salida de la pared del While, es donde se puede pasar información a la estructura
antes de comenzar su función repetitiva, o sacar información de la estructura al finalizar el
lazo. Por ejemplo en el caso de la aplicación anterior, el número a comparar puede ser un
dato de entrada que se define fuera de la estructura y que por medio del túnel pasaría su
valor una sola vez, es decir, una vez que el dato pase por el túnel así sea cambiado en el
controlador siempre va mantener el primer valor. También se puede asumir el indicador
del número de iteraciones como un valor de salida de la estructura y pasarlo como un túnel
de salida que solo se visualice en el momento que se salga del While. En la figura 6.9 se
observa el túnel de entrada y salida de la estructura.
126
Figura 6.9. Código de programación de la aplicación con la presencia de túneles de entrada y salida.
Ejemplo de Aplicación 6: Una aplicación de lazo For, se requiere para evaluar la función
trigonométrica coseno de X (COS(X)), para un determinado número de valores de X.
For Anidados: Si se requiere generar un arreglo de datos de más de una dimensión, por
ejemplo una matriz, se puede generar una estructura anidada de For, es decir, un For dentro
de otro For y se asume la salida del For externo como el elemento de N dimensiones. El
siguiente ejemplo muestra cómo trabajar con For anidados.
Definir el problema: Se requiere construir una matriz de valores booleanos que resulten
de comparar un número aleatorio con su valor intermedio, es decir, utilizar la función
aleatoria de 0 a 1 y comparar si es mayor o menor a 0,5. Los valores que resultan de la
comparación se utilizan para crear una matriz booleana de ocho filas y diez columnas.
Diseñar soluciones: Se identifican señales de entrada y salida del programa (Tabla 6.3) y
se procede hacer un diagrama de flujos previo a la codificación del programa (Figura 6.15).
Aplicación: Se diseña el Panel Frontal del programa (Figura 6.16), se agregan dos
controladores numéricos para definir el número de filas y columnas de la matriz, y se
agregan dos indicadores de salida uno correspondiente a un vector que refleja la última fila
de la matriz, ubicado a la salida del primer For, y la matriz corresponde el indicador de
salida del For externo, ambos son del tipo booleano.
Actividad complementaria 6
Diseñar soluciones: Se identifican las señales de entrada y salida del programa, como en
la tabla 6.6.
135
Aplicación: Genere dos vectores con los datos de cada señal y graficarla en conjunto, se
pueden llevar las salidas de las funciones hasta el túnel de salida y allí haciendo clip en el
botón derecho del ratón se selecciona del menú desplegable la opción crear indicador, el
LabVIEW por defecto crea indicadores tipo vector. Para graficar las señales construir un
arreglo y buscar un indicador tipo WaveFormGraph para múltiples variables. En la figura
6.21 y 6.22, se observa el desarrollo de la actividad propuesta.
Genere una matriz 12x12 de la señal SEN(X), utilizar un For anidado, que permita
definir en cada columna los valores de la amplitud y por fila repetir los mismos valores
(Figura 6.23 y 6.24).
Capítulo VII
Desarrollo de aplicaciones Modulares
El tema a desarrollar en este capítulo, está relacionado con las técnicas para el crear
aplicaciones modulares basadas en el procedimiento requerido para crear funciones
virtuales o SubVIs. Las aplicaciones modulares conllevan a una serie de pasos para crear
SubVIs personalizados que reducen el espacio de la pantalla de programación y generar
modularidad en la estructura del programa. Los temas a desarrolla en este capítulo son los
siguientes:
-. Comprensión de Modularidad.
-. Creación del SubVI.
Comprensión de Modularidad:
A medida que los programas se hacen más complejos y requieren de gran cantidad
de elementos, es necesario aplicar procesos de modularidad para reducir espacios y
establecer funciones con rutinas específicas. Es por ello que se debe introducir el concepto
de subVI en un diagrama de programación, ya que ellos permiten formar funciones propias
que ordenan el programa y da la opción de ser reutilizadas en cualquier otra parte del
programa o en otros Instrumentos Virtuales. Se suele comparar la Modularidad, con la
creación de subprogramas en un lenguaje normal de programación de texto, en la figura
7.1, se observa el equivalente de un SubVI a una función.
139
Creación de un SubVI:
Existen dos Formas de crear SubVI, una desde el Diagrama de Bloques y otra desde
el Panel Frontal. Ambos casos llegan al mismo objetivo pero por el Diagrama de Bloques
suele ser más fácil que por el Panel Frontal. Para crear un Sub VI desde el Diagrama de
Bloques, se puede explicar referenciando una de las Actividades Complementarias de los
capítulos anteriores.
Seleccionar los elementos que van a formar el subVI sin atrapar los indicadores y
controladores. En la figura 7.4, se observa la selección para ambos casos.
Figura 7.4. Selección de elementos para crear subVI desde el Diagrama de Bloques.
Al Seleccionar Create SubVI, se forman dos bloques que representan las funciones
que fueron seleccionadas por el usuario, tal como se observa en la figura 7.6.
142
Figura 7.6. Diagrama de Bloques del Ejemplo de Aplicación de temperatura con los subVI creados.
Internamente cada bloque contiene los mismos elementos de la selección, para abrir
el subVI dar doble clic sobre la imagen de la función llamada Icono y se abre un nuevo
Panel Frontal y Diagrama de Bloques que representa la estructura del nuevo VI, tal como
se muestra en la figura 7.7.
Figura 7.7. Icono, Panel Frontal y Diagrama de Bloques de cada uno de los subVI creados.
muestra en la figura 7.8, el cual permite diseñar o cargar figuras que sirven como etiqueta
del icono y personalizarlo, así se diferencia de las demás funciones.
Después de editar las imágenes procede a guardarlas para cada subVI, y verificando
en el programa principal que estos bloques cambien a la imagen creada para los SubVI. Se
observa que se guarda con el adjunto al nombre de subVI, ver figura 7.9.
Figura 7.9. Panel Frontal e Icono del uno de los subVI creado.
Por último se puede observar en la figura 7.10, el programa con los dos SubVI y se
procede a correr para verificar la correcta ejecución.
Para crear un Sub VI desde el Panel Frontal, se puede explicar con el Ejemplo de
Aplicación 1, la conversión de temperatura de °C a °F.
Desarrollo: Crear el control e indicador que se va utilizar como entrada y salida de datos
en el Panel Frontal. El control se utiliza para ingresar el valor de temperatura en °C y el
indicador para visualizar la temperatura en °F. Para definir el control e indicador como
elementos de un subVI, deben crearse dos Conectores uno de entrada para el controlador y
uno de salida para el indicador. El Conector es una serie de terminales que corresponden a
los controles y a los indicadores de un VI, donde se definen las entradas y las salidas a
cablear para utilizarlo como un subVI. Se encuentra ubicado al lado del Icono en el Panel
Frontal. Se establecen las conexiones del subVI, asignando el control e indicador del Panel
Frontal, a los terminales del Conector. Los Conectores de entrada se colocan en los bloques
del lado izquierdo del recuadro y los de salida al lado derecho. Para definir una conexión,
se selecciona uno de los cuadros vacíos del Conector con el cursor y luego se selecciona el
control o indicador que se le desea asignar. En la figura 7.11, se observa cómo quedaría
seleccionado para el ejemplo de la conversión de temperatura.
Figura 7.11. Conectores del subVI relacionados con los terminales de entrada y salida de datos.
Todos los VI están estructurados internamente por varios subVI y funciones propias
de LabVIEW, que tienen prioridades y jerarquías de ejecución. Por ejemplo para el caso
del sistema de alarmas de temperatura, usando el comando VI HIERARCHY ubicado en
el menú de herramientas del LabVIEW (Figura 7.13), permite ver la jerarquía de estas
funciones y su diagrama de conexiones internas.
Capítulo VIII
Estructuras fundamentales de selección en LabVIEW
pero hay otro caso que no tiene conectado el mismo túnel, el programa no se puede correr
y genera un error. El túnel ya sea de entrada o salida asume el color de la variable que está
conectando, si se presenta un error el túnel aparece en color blanco, cuando la salida está
cableada correctamente en todos los casos el túnel de salida asume un color sólido. En la
figura 8.3, se muestra la estructura de selección del CASE.
Definir el problema: Crear un programa que detecte un nivel bajo y un nivel alto de
temperatura, en un rango definido por un usuario y que genere una advertencia a través de
un mensaje textual en un indicador y en un led que se encienda en el momento de la falla.
Si el usuario carga mal los datos del rango de temperatura, presente un mensaje en pantalla
que le indique al usuario que invirtió el valor de los rengos de temperatura de operación
para que corrija esa posible falla.
Diseñar soluciones: Se van a manejar los recursos de identificar las entradas INPUTS y
salidas OUTPUTS de datos, para ello se genera una tabla de identificación de variables,
como la tabla 8.1. Se utiliza como recurso opcional el diagrama de flujo (Figura 8.4), para
estructurar el programa.
150
Aplicación: Se anexa una estructura CASE que se activa cuando la comparación de los
rangos máximos y mínimos de temperatura activen una variable booleana que se utilizará
como control del CASE. Un caso tendrá el programa que determina los valores y alarma
de temperatura, y el otro caso tendrá el mensaje de error que le indica al usuario que se
invirtieron los valores del rango de operación de temperatura. Para completar la aplicación
requerida se le anexan al programa la estructura CASE y una función para enviar mensajes
de error al usuario, estas aplicaciones se muestran en la tabla 8.2.
debe estar conformado por la configuración del puerto de comunicación y la selección del
puerto. Finalizado este paso en forma secuencial se procede a ejecutar el subVI de escritura
en puerto serial, indicando la cadena de caracteres a trasmitir al puerto, la ruta del puerto y
un posible error en la comunicación. La siguiente secuencia debe cerrar la comunicación
serial y finalmente imprimir el mensaje de error si se presenta. En la tabla 8.4, se describe
brevemente la estructura y subVIs utilizados en este ejemplo.
Prueba y verificación: En la figura 8.12, se puede observar el Panel Frontal del programa,
donde se configura y selecciona el puerto de comunicación y también el mensaje en
caracteres que se desea escribir en el puerto, si no se detecta error el mensaje se escribe en
el puerto seleccionado.
Se puede configurar un solo caso de evento para manejar múltiples eventos, pero
sólo uno de estos eventos en el caso de eventos puede ocurrir a la vez. Debe colocar la
estructura de Eventos en un lazo While para manejar múltiples eventos. Los eventos
pueden originarse desde la interfaz de usuario, puertos externos I/O, etc. Los eventos
incluyen clic del ratón, pulsaciones de teclas y así sucesivamente. Los eventos externos de
I/O pueden incluir temporizadores, hardware, señal de la adquisición de datos o cuando se
produce una condición de error.
Crear una estructura de Eventos: En el siguiente esquema se muestran los pasos para
crear o generar eventos personalizados o eventos de usuario.
Paso 1: Utilizando la función CREATE USER EVENT (Figura 8.15), retorna la referencia
de un evento de usuario, se puede utilizar para registrar un evento o para generar un evento,
ella requiere como información de entrada el nombre del evento y el tipo de dato del evento.
Paso 4: Para generar un evento se utiliza la función GENERATE USER EVENT (Figura
8.17), se enlaza el evento creado y le asocia data al evento para cada evento registrado.
Paso 6: El paso siguiente a eliminar el registro de los eventos, para ello se utiliza la función
DESTROY USER EVENT (Figura 8.19), destruyendo todo los eventos referenciados.
160
Las estructuras TIMED, presentan nodos de entrada y salida como se ve en la figura 8.22.
Nodo de Entada: Presenta cuatro conectores básicos, como se muestra en la figura 8.23:
• Source Name: Especifica el nombre de la fuente del temporizador a utilizar para
el control de la estructura.
• Offset: Especifica la longitud de tiempo que el Timed espera para la ejecución.
• Priority: Específica cuándo la estructura se ejecuta en el Diagrama de Bloques en
relación con otros objetos del Diagrama de Bloques.
162
Al hacer doble clip sobre el nodo de entrada, se abre una ventana donde se pueden
configurar con más facilidad los parámetros del TIMED LOOP y SEQUENCE, como se
observa en la figura 8,24
Nodo de Salida: propaga los valores de error y los valores de ejecución de las diferentes
estructuras del TIMED en ejecuciones previas y actuales, ver figura 8.25.
163
Tiene uno o más subdiagramas, o casos, de los cuales sólo el subdiagrama que sea
habilitado ENABLED se ejecuta. En la figura 8.27, se observa las condiciones de la
estructura, puede utilizar un túnel para enviar o recibir información fuera de la estructura
y desactiva los subdiagramas que estén como DISABLED.
164
Estructura CONDITIONAL
Se pueden crear los terminales de entrada y de salida de datos del Formula Node,
como muestra la figura 8.29, haciendo clic derecho en el borde de la estructura y
seleccionando añadir entrada o añadir salida del menú contextual, los nombres de los
terminales representan las variables que se manejan en las ecuaciones, al introducir las
ecuaciones en la estructura debe verificar que cada declaración de ecuación debe terminar
con un punto y coma (;).
Tabla 8.6. Ejemplo de la función Formula Node, para la raíz cuadrada de un número.
Valor de X Resultado de la raíz cuadrada de X
Definir el problema: Diseñe un programa que grafique la ecuación de corriente del diodo
en función del voltaje partiendo de la ecuación de corriente del modelo real del diodo
semiconductor (ecuación 7.1):
= ∙ −1 Eq. 7.1
La corriente del diodo se define como ID, la corriente de arrastre del diodo o
corriente en inverso se define como Io, el valor de tensión de la unión semiconductora en
función de temperatura del diodo se define como Voltaje Térmico VT, el valor de voltaje
de polarización se define con la letra V. Las constantes son la corriente de arrastre que se
puede asumir como: Io=1x10-9 Amp y VT=26 mV. La ecuación 7.1 define la curva
característica del diodo para diferentes voltajes de polarización.
Diseñar soluciones: Se van a manejar los recursos de identificar las entradas INPUTS y
salidas OUTPUTS de datos, para ello se genera tabla 8.7 de identificación de variables. Se
utiliza como recurso opcional el diagrama de flujo de la figura 8.31, para estructurar el
programa.
Aplicación: Se diseña el Panel Frontal con dos indicadores para los valores de la variable
de entrada de voltaje y los valores de salida de corriente, el primero numérico y el segundo
gráfico. El código del programa utiliza una estructura cíclica For para generar el barrido
de voltaje de la ecuación y la estructura Formula Node, para evaluar la ecuación
matemática que describe el modelo de la corriente del diodo. En la figura 8.32, se observa
el diagrama de bloques y código de programación para esta aplicación.
169
En la figura 8.37, se plantea el panel frontal indicando los elementos que se definen
como variables de control y los indicadores gráficos.
Función MATLABSCRIPT
Actividad Complementaria 7
Definir el problema: Crear un programa que detecte un nivel bajo y un nivel alto de
temperatura, en un rango definido por un usuario, el programa debe mostrar el valor de
temperatura en °C ó °F dependiendo del requerimiento del usuario. También debe detectar
el nivel del tanque para definir un rango normal o alto. Se debe generar una advertencia a
través de un mensaje textual que indique las fallas presentes de temperatura y nivel, en un
indicador de texto y en un Led que se encienda en el momento de ocurrencia de cualquier
falla. Mantenga la advertencia sí el rango de operación de temperatura está invertido, es
decir, sí el nivel máximo está por debajo del nivel mínimo de temperatura.
Figura 8.44. SubVI personalizado para determinar el error de inversión de los rangos de temperatura y su
estructura interna. .
179
Para la temperatura hay dos alarmas a monitorear, por lo que se procede con
SELECT anidados, y se crea un subVI que ejecute la función de comparación y retorne el
resultado del mensaje de alarma y la señal del Led. En la figura 8.46, se observa el código
de programación de las alarmas de temperatura y la estructura interna del SubVI.
Figura 8.46. Código de programación para determinar alarmas de temperatura y estructura interna del
SubVI de alarmas.
180
Figura 8.47. Código de programación Para convertir temperatura de °C a °F y código del SubVI.
Prueba y verificación: Se realizan diferentes pruebas, primero se asume una falla en los
valores del rango de entrada de temperatura máxima y mínima, para visualizar mensaje de
error, que se muestra en la figura 8.49.
181
Capítulo IX
Manejo de datos para estructuras complejas.
Los arreglos se componen de elementos y dimensiones. Los elementos son los datos
que lo conforman y la dimensión es la longitud, la altura, o profundidad que lo define. Los
arreglos los podemos establecer en vectores y matrices, un vector se establece como un
arreglo de una dimensión formado por (231)-1 elementos; una matriz puede tener más de
una dimensiones y un máximo de (231)-1 elementos por dimensión si la memoria lo
permite. Se puede construir vectores y matrices numéricas, booleanas, cadena de
caracteres, forma de onda, Cluster, entre otras. En el caso de los Cluster pueden tener el
comportamiento similar de un vector pero sus elementos se pueden componer de diferentes
tipos de datos, incluso vectores y matrices. Los temas de este capítulo son los siguientes:
-. Arreglos Vectores.
-. Arreglos Matrices.
-. Arreglos Cluster.
-. Actividad Complementaria 8.
Arreglos Vectores
Los arreglos se conforman por dos contenedores de datos, uno externo que se
acompaña de un selector de posición para ubicar el elemento del arreglo, y uno interno
donde se puede ver el tipo de dato y los diferentes elementos del arreglo. A continuación
183
se observa en la figura 9.1, el arreglo con un conector de datos numérico interno en este
caso representado por un control numérico tipo real. Por defecto se puede apreciar el
arreglo con un solo elemento, el cual pertenece a la posición que indique el selector; si se
requiere visualizar todos los elementos del arreglo se puede expandir el tamaño de la
estructura en forma horizontal o vertical para apreciar todos los elementos.
LabVIEW presenta tres mecanismos para crear vectores, uno desde el Panel Frontal
y dos desde el Diagrama de Bloques, a continuación se describen las tres técnicas:
Se selecciona la función BUILD ARRAY (Figura 9.7), la cual se requiere para crear
un vector enlazando componente por componente para definir la estructura. Se puede
expandir dependiendo del número de elementos que se le desean agregar al vector, al
conectar los diferentes elementos de entrada, deben corresponder al mismo tipo de datos y
la función genera la estructura tipo vector a su salida, se puede con el botón derecho del
cursor seleccionar crear indicador y el programa genera la estructura de salida tipo vector.
Ejemplo de aplicación 14: Crear un programa para girar e invertir el giro de un motor.
Definir el problema: Crear un regulador que mueva un motor en sentido horario o anti
horario, asumiendo que el motor se alimenta de 4 bits que tienen un código que rota en un
bit cada movimiento, dependiendo del sentido de giro del motor a la derecha o a la
izquierda. Utilizar vector booleano
187
Diseñar soluciones: Definir las variables de entrada y salida del programa, tal como se
muestra en la tabla 9.2
Aplicación: Se crea un Panel Frontal con un vector booleano de cuatro elementos que
represente los bits de control del motor, se activan 2 bits y se dejan 2 en bajo para simular
el código que requiere el motor para iniciar su movimiento. Se procede a crear un regulador
que permita dar cinco pasos en sentido horario y cinco pasos en sentido anti horario para
asignar el número de veces que va rotar el motor y el sentido. Se utiliza el comando rotación
de vector de las funciones de Arrays, para generar el movimiento de los bits que controlan
el giro del motor. E la figura 9.8, se muestra el código de programación para la propuesta
de esta aplicación.
Arreglos Matrices
Los arreglos cuando presentan más de una dimensión los podemos plantear como
matrices, igual que en el caso de los vectores; la matriz se conforma por dos contenedores
de datos uno externo que se acompaña de un selector de posición para ubicar el elemento
y uno interno donde se puede ver el tipo de dato y los diferentes elementos del arreglo.
Para el caso de la matriz el selector externo se le agrega una dimensión, esto se hace
ubicando el cursor sobre el selector numérico y en el menú desplegable seleccionar la
opción añadir dimensión, quedando el contenedor como se observa en la figura 9.10.
La matriz se puede representar con una tabla como se muestra en la figura 9.11, la
cual identifica los elementos por filas y columnas, al contenedor de la matriz se le introduce
el elemento con el tipo de dato correspondiente, por defecto se puede apreciar la matriz
189
con un solo elemento, el cual pertenece a la posición que indique los dos selectores (uno
de fila y el otro de columnas). Si se requiere visualizar todos los elementos del arreglo se
puede expandir el tamaño de la estructura en forma horizontal y vertical para apreciar todos
los elementos.
Figura 9.13, Panel de Control para seleccionar las Matrices Reales y Complejas.
Desde el Diagrama de Bloques con la estructura cíclica For: Se hace un lazo anidado
con dos For uno dentro del otro, la primera estructura genera a la salida por defecto un
vector y la segunda estructura genera una matriz, el N del For interno corresponde a las
filas y For externo las columnas. La figura 9.15, muestra matrices generadas por for
anidados.
191
Función Ejemplo
Tamaño de la matriz: Retorna el número
de filas y columnas de una matriz
Definir el problema: Crear una pantalla de Leds, para visualizar un conteo ascendente y
descendente en decimal de 0 a 9, con un tiempo controlado para el cambio de digito.
Utilizar matriz booleana.
Diseñar soluciones: Definir las variables de entrada y salida del programa, tal como se
muestra en la tabla 9.4.
Aplicación: En la figura 9.17, se crea un Panel Frontal con una matriz booleana de 9x8
que represente la pantalla de Leds. También se crea un control tipo interruptor para
seleccionar el modo de conteo y un control numérico para indicar el retardo en segundos
que va permanecer cada digito en pantalla.
Se utiliza el lazo For, para realizar el conteo decimal, el contador “i” del lazo For,
se programa para que realice un conteo ascendente y descendente con un SELECT
194
controlado por el controlador booleano tipo interruptor, y se utiliza una estructura CASE
para definir el valor de la constante numérica que se va imprimir en la pantalla de Leds. Se
introduce el control numérico para controlar el retardo de tiempo que dura cada digito en
cambiar. En la figura 9.18, se observa la programación para la aplicación 14.
DESCENDENTE
Arreglos Cluster
LabVIEW presenta varias vías para crear Cluster. A continuación se describen las
técnicas que lo permiten hacer, desde el Panel Frontal y desde el Diagrama de Bloques:
Existen otro grupo de funciones que facilitan las operaciones con los Cluster, en la
tabla 9.7, se observan algunas de esas funciones.
198
Actividad Complementaria 8
Aplicación: En la figura 9.23, se crea un Panel Frontal con un indicador gráfico para
visualizar una señal sinusoidal y dos controles numéricos que permitan variar la frecuencia
y la fase de una señal generada por un VI Express. Se utiliza un Cluster para indicar la
presencia de un error del VI Express.
Capítulo X
Almacenamiento de Datos
Los sistemas reales están formados por un gran número de variables que requieren
ser procesadas y analizadas para obtener estrategias de control y monitoreo de datos. En
los capítulos anteriores se han desarrollado técnicas de programación para el procesamiento
de datos, sin embargo, los datos adquiridos y procesados requieren en la mayoría de los
casos ser registrados o almacenados para hacer un análisis detallado de los mismos y
permitir definir comportamientos en los procesos monitoreados.
En este capítulo, se explican las técnicas para registrar datos de mediciones reales
o simuladas, almacenar información y poder utilizarla en análisis posteriores a la
adquisición; se utiliza la técnica de almacenamiento de archivos. Las operaciones de
registro o almacenamiento de datos de medición se componen de funciones tales como:
Crear archivos de datos, abrir y cerrar archivos de datos, lectura y escritura de datos en
archivos binarios y de texto, documentos en formato de hoja de cálculo, mover y cambiar
nombre de los archivos y directorios, entre otros. LabVIEW maneja un tipo de registro para
datos de mediciones definido con la extensión *.Lvm, el cual permite escribir a o leer en
archivos de medición del LabVIEW (LabVIEW Measurement Files).
Los archivos que se crean para registrar datos de mediciones pueden tener los
siguientes formatos: Binario, ASCII, LVM, y TDM.
204
Los archivos Binarios representan el formato estándar de todos los otros formatos
de archivo.
Los archivos ASCII son es un tipo específico de archivo Binario que se componen
del código ASCII, que es una norma utilizada por la mayoría de los programas, en
LabVIEW también se le denominan archivos de texto.
Definir el problema: Definir las variables de entrada y salida del programa (Tabla 10.2).
Aplicación: En la figura 10.2, se crea el Panel Frontal con el indicador de termómetro para
visualizar el valor actual de temperatura y un indicador gráfico para el registro de los
valores de temperatura muestreados, adicionalmente se le adjunta un indicador numérico
para mostrar el número de datos muestreados.
caracteres para poderla almacenar a Bajo Nivel. También se agrega un temporizador de1
segundo con un While condicionado por un comparador que limite a 60 muestras en un
minuto. Se anexan las funciones de almacenamiento de Bajo Nivel para establecer los
pasos fundamentales, crear, escribir y cerrar el archivo. Recuerde que las funciones de crear
y cerrar archivo deben ejecutarse una sola vez, por lo que deben ubicarse fuera del ciclo
repetitivo While. La función de escritura debe hacerse cada segundo por un minuto por lo
que se requiere estar en el interior del While. Debe indicar en la función crear archivo la
ruta donde se van a crear o guardar los datos y asumir la operación respectiva. El valor de
la ruta debe pasarse a las funciones de escritura y cierre debido a que está en un ciclo
repetitivo, debe utilizar un Shift Register, para mantener activa la información de la ruta
del registro. En la figura 10.3, se observa la programación para la aplicación 15.
Figura 10.4. Código del programa de la aplicación 15, incluyendo el Cluster del Error.
Las funciones de Alto Nivel generan subVI que agrupan los pasos del proceso de
almacenamiento de archivos relacionados con crear, remplazar, abrir, escribir y cerrar
archivo; estos VIs no son tan eficientes como el de Bajo Nivel para los casos que requiere
trabajar los procesos individuales, por ejemplo si se requiere trabajar con registros dentro
de un lazo repetitivo se recomienda utilizar archivos de Bajo Nivel, si el registro es en una
operación única se puede utilizar el archivo de Alto Nivel.
Los archivos de Alto Nivel incluyen funciones que manejan diversas estructuras de
datos numéricos que facilita el ingreso de la data a las funciones de escritura y lectura y no
requieren conversión de datos. Se ubican en la Paleta de Funciones FILE I/O, incluye dos
funciones propias y dos VI Express. En la tabla 10.3, se presentan dos tablas, la primera
describen los VI propios para el almacenamiento de Alto Nivel, y la segunda los VI Express
que permiten registrar datos de Alto Nivel con el manejo de hojas de cálculo.
Los VI Express están representado por funciones (Tabla 10.4), con archivos
ejecutables que generan un Panel Frontal donde se pueden establecer los valores de
configuración tanto para escritura como para lectura de archivos.
Diseñar soluciones: Definir las variables de entrada y salida del programa, tal como se
muestra en la tabla 10.5.
211
Aplicación: En la figura 10.7, se crea el Panel Frontal con el indicador gráfico y la tabla
de datos para visualizar las tres señales a generar, adicionalmente se crean controladores
tipo perilla para los valores de amplitud y frecuencia de cada señal, en este caso ondas
sinodal, cuadrada y triangular, más una señal de ruido. Se define un número de muestras
de 50 y se muestrea en un intervalo de 1 segundo.
Figura 10.9. Código del programa de la aplicación 16, incluyendo el registro y la tabla de datos.
Figura 10.10. Panel frontal de la aplicación 16 y block de notas de las señales registradas.
214
Actividad Complementaria 9
Definir el problema: Crear un programa que detecte un nivel bajo y un nivel alto de
temperatura, en un rango definido por un usuario y que genere una advertencia a través de
un mensaje textual en un indicador y en un Led que se encienda en el momento de la falla,
este mensaje debe guardarse en un archivo modo texto y registrar la fecha y hora de
ocurrencia de la falla.
Diseñar soluciones: Definir las variables de entrada y salida del programa, como se
muestra en la tabla 10.6 y se acompaña del respectivo diagrama de flujos para crear la
estructura del programa, ver figura 10.11.
Aplicación: En la figura 10.12, muestra la ventana del Panel Frontal diseñada, se le anexa
indicadores tipo string, para la fecha y hora del sistema, para complementar los datos del
registro de fallas.
Figura 10.15. Archivo del Block de notas, con el registro de toda la información de la falla presentada.
219
Capítulo XI
Adquisición de Datos DAQ
Adquisición de Datos
El proceso parte de una señal física, un sensor que la convierte en una señal eléctrica
o electrónica, un acondicionador que la ajusta al nivel de operación requerido para la
adquisición de datos, un módulo de adquisición para digitalizar y convertir la señal en
datos, un protocolo de comunicación y un computador para procesar los datos. Se puede
desglosar las fases del sistema de adquisición de datos de la siguiente manera:
información. En electrónica se establecen dos tipos de señales que son las utilizadas en los
procesos de adquisición de datos, señales Analógicas y señales Digitales.
Señales Analógicas: Estas señales son en función del tiempo y presentan variaciones que
les puede dar una periodicidad o establecer diferentes niveles de operación, esto hace que
defina tres características principales que son el nivel, la forma y frecuencia. Se establecen
tres tipos de señales Analógicas, Continúas o DC, variables en el dominio del tiempo y
variables en el dominio de la frecuencia, en la figura 11.2, se observan los tipos de señales
Analógicas.
Señales Digitales: Una señal Digital no puede tomar cualquier valor con respecto al
tiempo. La información útil que se puede medir a partir de una señal digital incluye el
estado y la frecuencia. El estado de una señal digital es esencialmente el nivel de la señal,
encendido o apagado, alto o bajo. El observar el estado de un interruptor, abierto o cerrado,
es una aplicación común que muestra la importancia de conocer el estado de una señal
Digital. La frecuencia de una señal digital se define cómo el cambio de estado de la señal
con respecto al tiempo. Un ejemplo de medición de la velocidad o frecuencia de una señal
Digital incluye determinar la rapidez de giros del eje de un motor.
Se establecen dos tipos de señales digitales: Señales On-Off, las cuales están sujetas
a cambiar de estado ante cualquier respuesta o perturbación y Tren de Pulsos las cuales
222
PWM: La modulación por ancho de pulsos (PWM), es una técnica que se utiliza para variar
el ancho del ciclo positivo de una señal periódica, es decir, modifica el ciclo de trabajo de
una señal periódica. El objetivo de la técnica es controlar el nivel de energía entregado por
la señal o transmitir información por un medio de comunicación bajo ciertos criterios. El
ciclo de trabajo (D) se puede expresar con una función matemática que relacióna el tiempo
que dura el ciclo positivo de una señal (τ), entre el periodo de la señal (T), ver ecuación
11.1.
τ
=
T
Ec. 11.1
Fenómeno Transductores
Amplificación: Son circuitos que aumentan el nivel de voltaje para adaptarse mejor al
rango de operación de los canales analógicos de los módulos de adquisición de datos,
aumentando así la resolución de la medición y la sensibilidad de la señal, ver figura 11.4.
224
Filtrado: Elementos que se utilizan para discriminar una determinada frecuencia o gama
de frecuencias de una señal y modificar algunas de sus propiedades, ver figura 11.7.
Linealización: Es necesario cuando los sensores producen señales de voltaje que no están
linealmente relacionadas con la medición física. Es el proceso de interpretar la señal del
sensor y hacer con acondicionamiento de señales mediante hardware o software, ver figura
11.8.
variables físicas del proceso y la visualización y control de las mismas en un entorno virtual
(software). El hardware o módulo de adquisición de datos (DAQ), actúa como la interfaz
entre una PC y señales del mundo exterior. Funciona principalmente como un dispositivo
que digitaliza señales analógicas entrantes para que una PC pueda interpretarlas como
datos, utilizando un protocolo de comunicación para trasmitirla. Los tres componentes
claves de un dispositivo DAQ usado para medir una señal son: el circuito de
acondicionamiento de señales, convertidor analógico-digital (ADC) y un bus de
comunicación de datos con la PC.
Funciones Principales del DAQ: A continuación se describe las funciones que se destacan
al momento de utilizar el módulo DAQ:
Bus PC: Los dispositivos DAQ se conectan a una PC a través de una ranura o puerto, el
bus de la PC sirve como la interfaz de comunicación entre el dispositivo DAQ y la PC para
pasar instrucciones y datos medidos. Los DAQ trabajan con los bus de PC más comunes
USB, PCI, PCI Express, Ethernet y Wi-Fi para comunicación inalámbrica. Hay varios tipos
de buses y cada uno de ellos ofrece diferentes ventajas para diferentes tipos de aplicaciones.
Todos los buses de la PC tienen un límite de la cantidad de datos que pueden ser
transferidos en un cierto periodo de tiempo, esto se conoce como el ancho de banda del bus
y generalmente es especificado en megabytes o gigabytes por segundo (MB/s) o (GB/s).
Dependiendo del bus que escoja, el ancho de banda total puede ser compartido entre varios
dispositivos o dedicado a ciertos dispositivos. En la tabla 11.2, se observa las diferentes
DAQ que presenta la National Instruments, según el bus de datos.
229
Figura 11.11. Bus de datos de las tarjetas DAQ manejadas por National Instruments.
Una señal eléctrica que representa la información de una variable o proceso físico,
un bloque de conexión de los terminales para los puestos de entrada y salida análogas y
digitales que se desean procesar (muchas veces este bloque viene adjunto en la DAQ),
cable de conexión dependiendo del protocolo de comunicación, una tarjeta de adquisición
de datos externa o interna al procesador, dependiendo de la aplicación y flujo de
información requerida. Finalmente el computador o procesador de datos, el cual debe tener
instalados los programas manejadores de la comunicación de datos y el análisis y
procesamiento de los mismos, este procesador debe tener alguna forma de mostrar los
resultados generados durante el proceso.
232
Modulo NI-DAQmx de LabVIEW para comunicarse con las tarjetas DAQ: Para
establecer los manejadores de comunicación de las DAQ, se presenta en LabVIEW
funciones o subVIs para establecer y configurar la comunicación con cualquier dispositivo
conectado al computador. Las funciones NI-DAQmx se encuentran en la Paleta de
Funciones en DAQmx Data Acquisition. El controlador NI-DAQmx presenta la interfaz
de programación de aplicaciones (API) en su configuración de hardware y software,
despliega funciones para el control de dispositivos de medición, crear un canal de
comunicación, establecer el modo de lectura y escritura de datos, arrancar la adquisición,
pausar y detener la adquisición, limpiar los canales de comunicación, entre otra variedad
de elementos de configuración en el proceso de adquisición para una tarjeta especifica.
Dentro de las funciones del NI-DAQmx, incluye el DAQ Asistente para configurar
en forma directa cada uno de los canales y tareas de medición para un dispositivo (Esta
función se define más adelante), soportan diferentes conjuntos de dispositivos reales y
simulados, en la tabla 11.3, se describen algunas de las funciones del DAQmx.
233
es similar a una fuente de señal flotante en el sentido de que la medición se realiza con
respecto a una tierra flotante que es diferente de la tierra del sistema de medición.
Definir el problema: Generar con el NI-DAQmx una señal PMW con un ciclo de trabajo
positivo variable que sirva para controlar la velocidad de giro de un motor DC, utilizando
una tarjeta DAQ de National Instruments. Se requiere un puerto de salida PWM, para ello
se selecciona la tarjeta DAQ 6216 con puerto USB. En la figura 11.17, se muestra el control
para un motor DC.
236
Diseñar soluciones: Definir las variables de entrada y salida del programa, tal como se
muestra en la tabla 11.3.
Figura 11.18. Código de programación de la aplicación del control del motor DC por una señal PWM.
237
Prueba y verificación: El programa configura la generación del pulso como una señal en
función del tiempo, controlando el período del ciclo positivo y negativo. La salida definida
como status 2 representada por un Led, permite reconocer si se produce un error en la
generación de la señal. En la figura 11.19, se observa el Panel Frontal del programa, con
pruebas de movimiento del motor para diferentes anchos de pulso de la señal PWM.
.
Figura 11.19. Panel frontal de la aplicación 17.
Paso 3: Si se necesita adquirir o generar señales se despliega una lista de las variables
disponibles en los canales de adquisición, como se muestra en la figura 11.22.
Figura 11.23. Configuración del tipo de señal para la adquisición y generación en el DAQ Assistant.
Paso 5: Se puede seleccionar una adquisición analógica de voltaje, para una tarjeta DAQ
USB 6009, la cual debe estar conectada al computador o configurada como una tarjeta
virtual. Deben aparecer todos los canales de entrada analógicos que presenta la tarjeta, se
debe seleccionar el canal que se desee utilizar y proceder a finalizar la configuración.
También para una generación analógica de voltaje, en la DAQ USB 6009. Deben aparecer
todos los canales de salida analógicos que presenta la tarjeta, se debe seleccionar el canal
que se desee utilizar y proceder a finalizar la configuración, ver figura 11.24.
240
Figura 11.24 Configuración de los canales para la adquisición y generación en el DAQ Assistant.
Paso 10: Después de crear una conexión, puede hacer doble clic en DAQ Assistant Express
VI para editar la conexión. Para la medición o generación continua es necesario colocar un
lazo While alrededor del DAQ Assistant Express VI.
243
Paso 1: Del menú de exploración MAX, se selecciona el cursor derecho sobre la opción
dispositivo e interfaces, se hace clip sobre crear nuevo dispositivo y se selecciona
Simulated NI-DAQmx Device or Modular Instrument, tal como se muestra en la figura
11.36.
Paso 2: En la figura 11.37, aparece un listado de todos los dispositivos que se pueden
configurar con el LabVIEW instalado. De la serie M, se busca la tarjeta DAQ USB 6216.
Una celda de carga es un sensor que convierte la tensión o fuerza mecánica en una
señal eléctrica que puede ser medida en un sistema de adquisición de datos. Una de las
celdas más comúnmente utilizada son las galgas Extensiométricas, la cual utiliza una
matriz de galgas para medir la deformación de un componente de una estructura. Para el
transductor de fuerza, se utilizan las galgas montadas sobre un diafragma de forma que al
aplica presión miden una deformación del diafragma que es proporcional a la tensión. En
la figura 11.39, se muestra una galga Extensiométricas metálica adhesiva.
= − #∗
!
" !
Ec.11.2
El DAQ NI 9237 de la figura 11.42, tiene cuatro conectores RJ-50 que proporcionan
conexiones para cuatro puentes completos.
Figura 11.44. Panel frontal para medición del proceso completo con la DAQ NI 9237.
253
Aplicación:
Diseño del Hardware: Se establecer un mecanismo robótico de un grado de libertad,
formado con material de reciclaje encontrado en diferentes talleres tecnológicos de
reparación de equipos electrónicos, con piezas de equipos que ya se encuentran fuera de
servicio; se utiliza el mecanismo de carro deslizante de los cartuchos de tinta de las
impresoras Hp 670c, la cual consiste en una correa de cremalleras que permite a una base
254
Figura 11.45. Impresora Hp670c y su mecanismo de carros deslizantes duplicados para formar un sistema
Maestro-Esclavo.
Los sensores de fuerza de la marca FlexiForce, se ubican sobre los carros móviles
del modelo maestro y esclavo respectivamente. Este sensor de fuerza se acondiciona con
una base circular de material acrílico para hacer incidir la fuerza de presión sobre un punto
específico. En la figura 11.45, se muestra los sensores de posición y fuerza.
Los cuatro canales digitales se utilizan como datos de salida para controlar el
sentido de giro y detener los motores DC del sistema Maestro y Esclavo, se requieren dos
entradas digitales para controlar la inversión de giro por motor, estos cuatro datos digitales
se envían al módulo L298 del puente H, que establecerá posteriormente la energía e
información que requiere los motores. Las dos salidas de generadores de pulso, se
257
encargaran de la señal PWM que debe ir a cada motor, para poder controlar su giro y
velocidad, estas dos señales también deben pasar por el puente H, para que se amplifiquen
en potencia. En la figura 11.47, se observa el sistema con los controladores del mecanismo
maestro y esclavo sin la ubicación de los sensores.
Los elementos sensores que se ubican en cada uno de los carros, deben ir también
conectados al controlador central para establecer el respectivo lazo de control.
Diseño del Software: Para proceder a probar los diferentes elementos actuadores y
sensores del sistema Maestro-Esclavo, se programan en LabVIEW funciones específicas
para el manejo de los motores, el puente H, sensores de posición, sensores de fuerza, y para
establecer los procesos de calibración de los mismos.
El primer programa está formado por una función que se utiliza para regular la
velocidad y el cambio de giro de los de los motores DC de los sistemas Maestro y Esclavo,
ver figura 11.48.
258
Figura 11.48. Panel frontal del subVI para controlar los motores dc del sistema Maestro-Esclavo.
Figura 11.49. SubVI para controlar movimiento de los motores dc del sistema Maestro-Esclavo desde la
DAQ.
259
Figura 11.50. Panel frontal del subVI para controlar los sensores de posición del sistema Maestro-Esclavo.
Figura 11.51. Código del subVI para controlar los sensores de posición del sistema Maestro-Esclavo.
260
El tercer programa repite los mismos pasos del sensor de posición, pero aplicado
ahora a los sensores de fuerza.
Una vez comprobados todos los programas y verificada la comunicación con los
sensores y actuadores, se procede a comprobar su operación en dos procesos básicos de
control bilateral, asumiendo los mecanismos del desplazamiento horizontal de las
impresoras, como proceso real Esclavo y Maestro del sistema. La primera técnica de
control bilateral a probar se define Posición-Posición, este sistema de control para un grado
de libertad utiliza el error de posición de los sistemas Maestros y Esclavo para establecer
el control, basado en el Diagrama de Bloques de la figura 11.52.
261
Figura 11.53. Código de la técnica de control bilateral Posición-Posición, sobre el Sistema Maestro-
Esclavo, asumiendo las funciones que permiten actuar sobre los motores.
La fuerza que el operador aplica para mover el carro se puede definir como la
perturbación, el error de los valores de posición y la fuerza medida en el esclavo definen
las variables de control.
264
Figura 11.56. Código del programa del control bilateral Fuerza-Posición, sobre el Sistema Maestro-
Esclavo, incluyendo la información del sensor de fuerza.
Prueba y verificación:
Pruebas del control bilateral Posición-Posición: El movimiento del operador ocurre
sobre el carro del mecanismo Maestro, inmediatamente el lazo de control intenta ubicar el
carro del mecanismo Esclavo en la misma posición. La fuerza que el operador aplica para
mover el carro se puede definir como la perturbación (τA) y el error de los valores de
posición define la variable de control. El esquema se prueba sin colisiones con el entorno
en el sistema Esclavo. Este esquema funciona adecuadamente, aunque el seguimiento es
lento debido a la velocidad de respuesta del sistema Esclavo. Si se mejora la velocidad el
sistema se hace inestable, debido a que los sensores de posición presentan un rango de
variación mínima que es detectado por el lazo de control generando una pequeña oscilación
en el movimiento del carro del sistema Esclavo. En la figura 11.54, se muestra el panel
frontal del VI para el control bilateral Posición-Posición.
Figura 11.54. Panel frontal del VI de control bilateral Posición-Posición sobre el Sistema Maestro-
Esclavo.
Pruebas del control bilateral Fuerza-Posición: Este esquema funciona, pero presenta los
mismos inconvenientes del esquema anterior, también se puede observar gran inestabilidad
en el sensor de fuerza usado, lo que se refleja con oscilaciones en el carro del sistema
266
Capítulo XII
Interfaz del LabVIEW con el Simulador Electrónico Multisim
Conocer el Multisim
Multisim presenta una ventana de programación, tal como la figura 12.2, formada
por una serie de bloques y menús desplegables que definen todas las herramientas que se
requieren para el diseño y simulación de circuitos electrónicos, además define las funciones
que sirven de interfaces con LabVIEW, estableciendo los parámetros de entrada y salida y
la función o SubVI que se generan para sincronizar y comunicar ambos programas. A
continuación se definen algunos de los elementos más relevantes del Multisim:
Para diseñar un circuito básico se deben considerar todos los elementos que
contengan el circuito, sus alambres de conexión, sus instrumentos de medición y los
270
Figura 12.7. Generador de señales de LabVIEW ubicados en el menú vertical del Multisim.
Figura 12.9. Instrumentos de medición de LabVIEW ubicados en el menú vertical del Multisim.
También hay una serie de puntos de prueba ubicados en el menú horizontal, para
realizar medición directa de voltaje y corriente en nodos y líneas de conexión del circuito,
ver figura 12.10.
Conectores o alambres: Una vez colocado los elementos sobre el tablero de trabajo, con
el cursor del ratón se puede hacer el alambrado o la conexión de los componentes, tal como
se muestra en la figura 12.11, para ello se debe ir a cada pin del componente seleccionarlo
y definir el pin siguiente a conectar.
274
Circuito N°1: Amplificador Emisor Común, con una polarización por divisor de tensión.
Consiste en un transistor controlado por corriente con dos valores de resistencia R1 y R2,
para establecer la corriente de la base y los valores de resistencias RE y RC del emisor y
colector para establecer la polarización y la ganancia en señales alternas de frecuencia
media. El circuito se acompaña de una fuente DC para su polarización, condensadores para
desacoplo de las señales AC y los valores DC; utiliza un generador de ondas para la señal
de entrada y un osciloscopio para visualizar la señal de salida amplificada.
Desarrollo: Armar el circuito amplificador con transistor BJT de la figura 12.12, buscando
cada uno de los elementos activos y pasivos en el buscador de dispositivos del Multisim y
conectándolos en el panel de pruebas, también se busca un instrumento de medición para
analizar la razón de amplificación del circuito.
275
VCC VCC
4V XSC1
Ext Trig
+
RC
R1 750Ω
_
A B
4kΩ _ _
+ +
C2 ES2
2 ES2
Q1 130µF 0
ES1 C1
ES1 1
V1 2N3904
100µF
2mVrms R2 3
1kHz 1kΩ
0° RE C3
0 0 250Ω 2.5mF
0 0
Figura 12.13. Señal de entrada y salida del amplificador Emisor Común con un osciloscopio del Multisim.
Desarrollo: Armar el circuito recortador con diodos de Silicio, tal como se muestra en la
figura 12.14, buscando los elementos activos y pasivos del Multisim y conectándolos en el
panel de pruebas, buscar un instrumento de medición para la señal de salida recortada.
XSC1
Ext Trig
+
_
A B
+ _ + _
D1 V2
1 2 3 R2
1kΩ 5
1N4001 5V
V1 D3
1N4001
R1 D2
18Vrms 1kΩ 1N4001 6
60Hz
0° V3
15V
Paso 2: Se procede a buscar los conectores que van a servir de interfaz de comunicación
de entrada y salida del circuito con el LabVIEW, Para ubicar los conectores se debe buscar
en el menú PLACE la opción CONNECTORS y aparece el menú de la figura 12.17, se
debe seleccionar los terminales del Co-Simulador de LabVIEW.
Figura 12.17. Menú para localizar los conectores del Co-Simulador de LabVIEW.
278
Paso 3: Los terminales seleccionados para las señales de entrada y salida se conectan a los
componentes del circuito, tal como se muestra en la figura 12.18.
IO2 R1 IO3
1kΩ
D1
1BH62
V1
5V
Paso 5: Se guarda el proyecto y el sistema queda referenciado con el nombre que le asigne
el programador con una estructura muy similar a los VI Express, luego se procede abrir
desde el LabVIEW, para establecer la conexión. En la figura 12.20, se muestra el SubVI
diseñado en Multisim.
279
Paso 2: Dentro del lazo de control y simulación se pueden agregar diferentes elementos de
programación que interactúen con el módulo externo creado en Multisim, generadores de
señales e instrumentos gráficos de medición, ver figura 12.22.
280
Figura 12.22. Elementos de control y simulación para interactuar con el SubVI creado en Multisim.
Paso 4: Por último se debe seleccionar el proyecto creado en Multisim y abrirlo dentro del
lazo de control y simulación y conectar los elementos que se requieran para generar flujo
de datos con el subVI, ver figura 12.24.
281
Figura 12.24. SubVI creado en Multisim, abierto en el lazo de control y simulación del LabVIEW.
Paso 5: Recuerde que las señales simuladas en Multisim deben ser observadas en
LabVIEW, lo que requiere que se establezca un Panel Frontal como el de la figura 12.25,
donde se pueda confirmar la efectividad en la simulación.
Figura 12.25. Panel Frontal con el indicador gráfico de las señales procesadas en Multisim.
Actividad Complementaria 11
Definir el problema: Simular y diseñar en el Multisim una fuente de tensión AC-DC, que
convierta una señal sinusoidal de 120 Vrms, de 60 Hz a un valor fijo DC de 12 V. Utilizar
rectificador de onda completa, filtros capacitivos y un regulador de tensión con Zener. Se
requiere generar la señal AC en LabVIEW, enviarla a Multisim, diseñar la fuente en
Multisim y finalmente mostrar la salida DC en un indicador Gráfico del LabVIEW.
Diseñar soluciones: Definir las variables de entrada y salida del problema, tal como se
muestra en la tabla 12.1.
Aplicación:
Diseño en Multisim: Se establecen dos conectores del Co-Simulador del LabVIEW, uno
para la señal de entrada AC proveniente del LabVIEW y el otro como señal de salida DC
generada por el circuito de simulación en Multisim. En la figura 12.26, se diseña el circuito
del convertidor AC-DC.
.
Figura 12.29. Panel Frontal de la Actividad Complementaria 11.
285
Capítulo XIII
Comunicación Arduino con LabVIEW
.
Hardware del Arduino: En la tabla 13.2, se referencian algunas tarjetas electrónicas de
la familia Arduino, Considerando su estructura más básica, representada por un
Microcontrolador, puertos de entrada y salida de datos Analógicos y Digitales y su puerto
de comunicación.
288
Descripción del módulo Arduino Uno: Para este capítulo se desarrollaran programas del
LabVIEW con el módulo de Arduino Uno, es uno de los más utilizados por principiantes,
también su costo es menor a otros módulos de la misma familia Arduino. Este módulo,
contiene una Paleta de Funciones completa configurada en LabVIEW, lo que facilita su
programación y conexión. El Arduino Uno presenta un conjunto de características que lo
hacen atractivo para procesos básicos de medición y control. En la figura 13.2, se identifica
cada uno de los elementos que conforman una placa del Arduino Uno.
Elementos: Conector USB (1), Pulsador Reset (2), Pines de E/S Digitales y PWM (3), Led
Verde de placa encendida (4), Led naranja conectado al pin 13 (5), Atmega U2 encargado
de comunicación con PC (6), Led TX (Transmisor) y RX(Receptor) de comunicación serial
(7), Puerto ICSP para programación serial (8), Microcontrolador Atmega 328 (9), Cristal
de cuarzo de 16MHz (10), Regulador de voltaje (11), Conector hembra con centro + (12),
Pines de voltaje y tierra (13) y Entradas Análogas (14).
Figura 13.5. Configuración del puerto de comunicación del Arduino en el IDE de Arduino.
Ejemplo de aplicación 20: Enviar mensaje en una pantalla LCD, desde una placa Arduino.
Definir el problema: A continuación se requiere realizar una conexión del Arduino Uno
con una pantalla LCD, y establecer un mensaje de saludo que no supere los 16 caracteres
para una pantalla de 16x2.
Diseñar soluciones: Arduino cuenta con bibliotecas como “LiquidCrystal”, que permite
controlar periféricos como el display LCD, de esta manera mostrar mensajes en pantalla.
292
ubicados en la Paleta de Funciones del Diagrama de Bloques, donde están todos los
comandos de conexión directa del LabVIEW con los puertos de entrada y salida de la placa
Arduino Uno, más algunos programas referenciados a trabajar directamente con los
periféricos que se pueden conectar a la tarjeta. En la figura 13.8, se observa la paleta de
funciones del Toolkit de Arduino Uno e LabVIEW.
Figura 13.8. Paleta de funciones del Toolkit de Arduino Uno para LabVIEW.
Figura 13.10. Ventana de exploración del VIPM, para descargar Toolkit de Arduino.
Una vez que el sistema haya reconocido el Arduino, la programación se realiza con
el sketch que comunica la placa Arduino con LabVIEW, este sketch se instala con el
archivo LIFA_Base, en la ruta que se muestra en la figura 13.11.
Figura 13.11. Ruta del archivo LIFA_Base para comunicar Arduino con LabVIEW.
Existen otro grupo de herramientas que se pueden descargar del VIPM, que también
pueden ser útiles para crear interfaces de programación de Arduino desde el LabVIEW:
Makerhub: Toolkits, que puede ser utilizado para programar el Arduino desde LabVIEW,
con la ventaja que puede ser aplicado para programar cualquier placa de la familia Arduino,
ver figura 13.14.
SENSORS,
representa un conjunto de
funciones relacionadas con
los diferentes tipos de
elementos que se le
conectan a los puertos de
entrada y salida de la placa
Arduino. Establece una
forma directa de
comunicación con los
datos requeridos por
diferentes elementos
sensores y actuadores.
299
El Toolkit de LabVIEW para Arduino, presenta una serie de ejemplos que permiten
realizar las conexiones físicas con los elementos conectados a la placa Arduino Uno. Estas
aplicaciones son funciones programadas previamente, que facilitan la conexión con los
diferentes elementos sensores.
Diseñar soluciones: Establecer las variables de entrada y salida de datos (Tabla 13.6), y el
diagrama de flujos del problema, tal como se muestra en la figura 13.15.
300
.
Figura 13.15. Diagrama de flujos de la Actividad Complementaria 12.
Aplicación: Para resolver este ejemplo se tienen todos los comandos que ofrece el Arduino
para la lectura de puertos analógicos, por lo que requiere las funciones de iniciar la
comunicación LabVIEW Arduino INIT (1), lectura de señal analógica ANALOG READ
(2), cerrar la comunicación con Arduino CLOSET(3), indicar la señal de Error(4) en la
comunicación. La lectura del puerto o pin analógico debe hacerse en un ciclo repetitivo
controlado por el usuario o por un período de tiempo definido. En la figura 13.16, se
muestra el algoritmo del programa.
301
Figura 13.16 Código de programación de Actividad Complementaria, VI de Arduino para puerto analógico.
El circuito electrónico que debe ir conectado al puerto Analógico del Arduino viene
configurado por defecto con la función. En la figura 13.17, se muestra la conexión de
hardware para la actividad complementaria 12.
Diseñar soluciones: Establecer las variables de entrada y salida de datos, tal como se
muestra en la tabla 13.7, además de realizar el diagrama de flujos del problema, como se
muestra en la figura 13.19.
.
Figura 13.19. Diagrama de flujos de la Actividad Complementaria 13.
Aplicación: Para resolver este ejemplo se trabaja con puertos Digitales, ya que se requiere
activar los diferentes pines de salida del display 7 segmentos. Los pasos son los siguientes:
Comunicación LabVIEW Arduino, INIT (1), configuración del display 7 segmentos
SEVEN SEGMENT CONFIGURE (2), escribir el mensaje en el display 7 segmentos
SEVEN SEGMENT WRITE STRING (3), cerrar la comunicación con Arduino CLOSET
(4), Indicar señal de Error(5) en la comunicación, el mensaje a escribir debe previo realizar
un conteo ascendente de 0 a 9 con tres segundos de retardo. En la figura 13.20, se muestra
la programación de la actividad complementaria 13.
304
Figura 13.20. Código de programación de la Actividad Complementaria con los VI de Arduino 7 Segmentos.
Prueba y verificación: El Panel Frontal del VI de la figura 13.22, se observa el digito que
se debe enviar al Display 7 Segmentos y el tiempo de duración.
Actividad Complementaria 14: Controlar pantalla LCD con el Arduino desde LabVIEW.
Diseñar soluciones: Establecer las variables de entrada y salida de datos, tal como se
muestra en la tabla 13.8, además utilizar un diagrama de flujo del problema, como se
observa en la figura 13.23.
.
Figura 13.23. Diagrama de flujos de la Actividad Complementaria 14.
Aplicación: Para resolver este ejemplo se trabaja con puertos Digitales, ya que se requiere
activar los diferentes pines de configuración de la pantalla LCD. Los pasos son los
siguientes: Estructura de eventos con funciones de comunicación LabVIEW Arduino INIT
(1), configuración de la pantalla LCD CONFIGURE (2), funciones de configuración del
mensaje, ubicación del cursor, intensidad, dirección, desplazamiento LCD SET CURSOR
(3), estructura de evento para posicionar cursor en el momento de recibir mensajes nuevos
LCD SET CURSOR (4), enviar en cadena de caracteres el mensaje e imprimir en pantalla
LCD PRINT (5), cerrar la comunicación CLOSET (6), indicar señal de Error (7) en la
comunicación. En la figura 13.24, se muestra la programación para el desarrollo de la
actividad complementaria 14.
307
.
Figura 13.24. Código de programación VI Arduino para configurar y programar pantalla LCD.
El circuito electrónico que va conectado a la pantalla LCD y a los puertos Digitales del
Arduino viene configurado por defecto con la función. En la figura 13.25, se muestra la
conexión en hardware del Arduino Uno que se utiliza en la actividad complementaria 14.
Actividad Complementaria 15: Controlar un motor paso a paso con el Arduino desde
LabVIEW.
Diseñar soluciones: Establecer las variables de entrada y salida de datos, tal como se
muestra en la tabla 13.9, además utilizar un diagrama de flujos del problema, ver figura
13.27.
.
Figura 13.27. Diagrama de flujos de la Actividad Complementaria 15.
Aplicación: Para resolver este ejemplo se trabaja con puertos Digitales, y las señales PWM
requeridas para controlar el giro y velocidad del motor. Se utiliza una estructura de eventos
con las siguientes funciones: comunicación LabVIEW Arduino INIT (1), configuración de
los driver de comunicación con el motor paso a paso STEPPER CONFIGURE (2),
funciones de configuración de los datos de operación del motor paso a paso, numero de
pasos, velocidad de giro, entre otros STEPPER WRITE (3), función de ejecución del
movimiento del motor paso a paso STEPPER TOGO (4), cerrar la ejecución del motor
paso a paso STEPPER CLOSE (5), cerrar la comunicación del Arduino CLOSET (6),
indicar señal de Error (7) en la comunicación. En la figura 13.28, se muestra la
programación para la actividad complementaria 15.
310
Figura 13.28 Código de programación con los VI de Arduino para control del motor paso a paso.
El circuito electrónico que debe ir conectado al motor paso a paso, con el puente H
y los puertos Digitales y PWM del Arduino viene configurado por defecto con la función
y se muestra en la figura 13.29.
Capítulo XIV
Módulo de Control y Simulación
Figura 14.1. Paleta de funciones del Control Design & Simulation de LabVIEW.
Ejemplo de Aplicación 21: Probar las funciones del módulo de Diseño y Control.
% & =
' "
!' ( '
Ec. 14.1
315
Figura 14.3. Función de transferencia a partir de la función Cd Construct Transfer Function Model.
En la figura 14.4, se diseña un lazo cerrado con las dos funciones de transferencia
G(S) y H(S), se modela la función de transferencia en lazo cerrado a través del menú de
316
Actividad 3: Calcular la respuesta en el tiempo para una función escalón y una función
impulso del sistema modelado en la actividad 1.
Figura 14.6. Código de programación y Panel Frontal de la respuesta al escalón y al impulso de la función
de transferencia.
Diagrama de Bode
Magnitud y Fase
Nyquist
Nichols
Márgenes de
Ganancia y Fase
319
Actividad 5: Realizar análisis de las características dinámicas del sistema modelado G(S).
Se debe generar elementos que permitan estudiar las características dinámicas del
modelo, las funciones más usadas son el lugar de las raíces, mapa de polos y ceros, entre
otros. Para ello se selecciona del Diseño y Control la función DYNAMIC
CHARACTERISTICS, y se elige la función del lugar de las raíces CD ROOT LOCUS y
el mapa de polos y ceros CD POLE-ZERO MAPS. En la figura 14.7, se observa el
Diagrama de Bloques para calcular las características dinámicas de la función G(S) y su
respectivo Panel Frontal para el lugar de las raíces y el mapa de polos y ceros.
Figura 14.7. Código de programación y Panel Frontal del lugar de las raíces y mapa de polos y ceros de la
función de transferencia.
320
Funciones de la Simulación
Escalón
Pulso
Rampa
Generador
de Señales
324
SIGNAL ARITHMETIC: Paleta de funciones aritméticas, que pueden ser procesadas con
las señales del simulador, contiene funciones de ganancia, sumatoria y multiplicador para
cualquier número de entradas. En la tabla 14.3, se muestran algunas funciones aritméticas
y parte de su panel de configuración:
Ganancia
Sumatoria
Multiplicador
325
SimTime
Waveform
Buffer XY
Graph
Integrador
Retardo en el
tiempo
Espacio de
Estado
Función de
transferencia
PID
327
Zona muerta
Cuantización
Relé
Detector de
cruce por cero
328
Integrador
discreto
Espacio de
estado
discreto
Función de
transferencia
discreta
Filtro
discreto
329
Sistemas Lineales Continuos: Las funciones para operar sistemas lineales continuos,
permiten realizar aplicaciones para modelar los procesos y las dinámicas de los mismos. A
continuación se realiza un ejemplo de un sistema lineal continuo con aplicaciones de
espacio de estado y función de transferencia.
Ejemplo de Aplicación 22: Probar las funciones del módulo de Simulación de Sistemas
Lineales.
Las ecuaciones de estado del circuito RLC, están representados por la ecuación
14.2 y 14.3:
0
"
* 1 0
#=, " . 0 # + 2"3 4 5
+ −/ −. +
Ec. 14.2
/
330
4 * 5 = 40 1 5 1
#
+
Ec. 14.3
Desarrollo:
1. Crear el Lazo de Control y Simulación, para poder trabajar con la funciones del
simulador y buscar en la paleta de Funciones, el menú de Simulación, los Sistemas Lineales
Continuos y seleccionar función de espacio de estado.
2. Construir las matrices de la función de espacio de estado, tal como se muestra en la
figura 14.13, según las condiciones planteadas en el diseño.
Figura 14.14. Código de programación, para calcular la función de transferencia del Circuito RLC.
331
H S =
! "
"' ( 8, ' ! "
Ec. 14.4
7. Observar en el panel frontal la respuesta en el tiempo del sistema a la señal de pulso, tal
como se muestra en la figura 14.16; tanto para espacio de estado como para función de
transferencia, como se muestra en la figura 14.17.
Figura 14.16. Respuesta en el tiempo para el espacio de estado del Circuito RLC.
332
Sistemas lineales Discretos: Las funciones para operar sistemas lineales discretos de igual
manera que los continuos, modelan las dinámicas de los procesos con aplicaciones de
espacio de estado y función de transferencia pero en el dominio discreto Z.
Ejemplo de Aplicación 23: Probar las funciones del módulo de Simulación de Sistemas
Discretos.
Desarrollo:
1. Partiendo del ejemplo anterior, en la figura 14.18, se utiliza la conversión de espacio de
estado continuo a discreto y de función de transferencia continua a discreta, con un periodo
de muestreo de 100 ms.
333
Figura 14.18. Código de programación para convertir la función de espacio de estado y la función de
transferencia de continua a discreta, para el Circuito RLC.
2. En la figura 14.19, se observan los coeficientes, para poder cargar los modelos en la
simulación.
Figura 14.19. Parámetros de la función discreta de espacio de estado y transferencia del Circuito RLC.
3. Se crea el Lazo de Control y Simulación, para poder trabajar con la funciones del
simulador.
4. Buscar en la paleta de funciones, el menú de simulación, buscar los sistemas lineales
discretos y seleccionar función de espacio de estado y proceder a cargar los coeficientes
del modelo, tal como se muestra en la figura 14.20.
334
Figura 14.20. Coeficientes del modelo de espacio de estado, para la simulación del Circuito RLC.
Figura 14.21. Coeficientes del modelo de la función de transferencia, para la simulación del Circuito RLC.
Figura 14.22. Código de programación de la simulación de la respuesta del sistema lineal discreto del
Circuito RLC.
Figura 14.23. Respuesta en el tiempo a la señal pulso de la simulación para el modelo de espacio de estado
y función de transferencia Discreto del Circuito RLC.
Ejemplo de aplicación 24: Probar las funciones del módulo de Simulación de Sistemas
no Lineales.
Desarrollo:
1. Crear el Lazo de Control y Simulación, para poder trabajar con las funciones no lineales
del simulador.
2. Buscar en la Paleta de Funciones, el menú de simulación, buscar los sistemas no lineales
y seleccionar las funciones de conmutación y saturación.
3. La función de saturación equivale al amplificador con rangos máximos y mínimos de +5
Voltios y -5 Voltios para la saturación. En la figura 14.24, se muestra los parámetros de la
función de saturación.
4. Para los conmutadores, debe indicar el valor máximo y mínimo de amplitud del pulso a
generar y el valor de umbral con el cual se va a realizar la comparación para conmutar el
pulso. En la figura 14.25, se observa la configuración del conmutador.
5. Se agrega la señal sinusoidal al sistema, como se muestra en la figura 14.26. Estas señales
se pueden extraer del generador de señales del simulador.
6. Se anexan un gráfico para la señal sinusoidal, la señal de umbral y los valores de
saturación.
7. Se anexa un segundo gráfico para ver los pulsos que genera el conmutador, cuando
cumple las condiciones programada.
Actividad Complementaria 16
se encarga de enviar al sistema Maestro o equipo Cliente la variable de fuerza del esquema
de control bilateral. Diagrama de flujos 3:
Figura14.32. Diagrama de flujo del método de selección de datos según el tiempo de retardo.
Aplicación: En el Diagrama de Bloques del programa, se puede observar los modelos del
sistema Maestro y Esclavo definido en términos de la frecuencia, utilizando la
transformada de Laplace, los parámetros de posición, velocidad, fuerza y los retardos con
datos aleatorios que pueden afectar el proceso de comunicación entre los sistemas Maestro
y Esclavo. Todo el sistema se encuentra en el interior del Lazo de Simulación y Control,
las características del Input Node, asume los valores por defecto.
El programa utiliza las funciones del Continuous palette: Integrator (para definir
posición), Transfer Function (para los modelos matemáticos del maestro, esclavo y
entorno), Time Delay (para incluir los retardos), el SimTime Waveform (para la interfaz
gráfica) y los sumadores. También se puede visualizar en la figura 14.33, el código de
programación para una variable aleatoria que define los retardos de la línea de
comunicación y que activan un sistema de comparadores y selectores que toman la decisión
343
de cuando el sistema va ser manejado con datos reales o manejado a través de datos
simulados.
velocidad y posición. La línea blanca define los parámetros del Maestro y la línea azul del
Esclavo, existe otra ventana que establece el error de posición en línea amarilla.
Se observa que para retardos por debajo del umbral, el seguimiento tiende a ser
muy preciso, cuando se aproxima al valor umbral, el Esclavo se aleja un poco de la
respuesta del Maestro y aumenta el error de posición, si se supera el umbral, se activa la
Teleoperación predictiva retornando a un seguimiento muy preciso.
Figura14.34. Panel Frontal en LabVIEW de Teleoperación bilateral con datos en tiempo real y simulado.
345
Capítulo XV
Publicación de Programas vía Web
Este capítulo estudia las posibilidades que presenta el LabVIEW para procesar
datos en forma remota vía Web, es decir, cómo acceder a procesos remotos desde una
computadora utilizando Internet y que permita una conexión en tiempo real con algún
proceso que se requiera monitorear. Se puede establecer dos elementos importantes para
realizar exitosamente una conexión remota, el primer elemento corresponde a un
computador que funcione como un servidor de aplicación Web y que a su vez debe estar
conectado a los dispositivos electrónicos que se encarguen del proceso de monitoreo de
datos; el segundo elemento a un canal físico de comunicación, en este caso la Internet y un
grupo de computadores que se puedan conectar al servidor principal usando una dirección
Web. A continuación los temas que se desarrollan en este capítulo:
-. Generación de páginas Web desde el LabVIEW
-. Opciones de configuración.
346
El programa LabVIEW genera un Panel Frontal remoto, para que pueda ser
accedido desde cualquier equipo que se contacte vía Internet con un servidor Web propio
del LabVIEW. El panel remoto se visualiza utilizando algunos de los navegadores
comerciales que se utilizan en Internet, se debe diseñar páginas Web que permitan servir
como base de visualización de un panel remoto, esto conlleva a establecer un equipo con
aplicaciones de adquisición y monitoreo de datos, que a su vez que tenga la utilidad de un
servidor Web, donde se puedan visualizar las páginas Web en el navegador del equipo
remoto.
página HTML, con monitoreo y control se debe estudiar una herramienta que presenta el
LabVIEW, conocida como Web Publishing Tool, la cual se describe en el siguiente punto.
Viewing Mode: Modo de visualización, los tres modos de publicación del panel remoto
vía Web.
Show border: Para visualizar los bordes del recuadro del panel frontal, embebido en la
página Web.
Ejemplo de aplicación 25: Objetivo, crear un panel remoto de un proceso industrial que
se acceda vía página Web.
Diseñar soluciones: Para este ejemplo se describe brevemente la función del programa,
pero se centra en detallar los pasos requeridos para hacer una publicación Web de un
SubVI.
cuando el camión de la primera línea se llene, el sistema traslada la carga a la línea dos y
comienza a llenar el otro camión.
Las cajas se utilizan objetos en 3D, representados por cubos solidos con un
desplazamiento horizontal equivalente a la longitud de las bandas transportadoras.
También presenta variables booleanas para controlar el arranque del motor de la banda
transportadora, para detener el proceso y para indicar el flujo de las cajas por cada línea
transportadora. En la figura 15.2, se muestra el Diagrama de Bloques de la aplicación.
A continuación se van a definir una serie de pasos para crear y publicar el panel
remoto en la página Web:
Paso 1: Seleccionar del menú principal del Panel Frontal la opción Tools y selecciona Web
Publishing Tool, recuerde que debe estar activa en el Panel Frontal el VI que se desea
publicar vía Web en la opción VI name.
Paso 2: Seleccione el modo de visualización o Viewing Mode, para el caso del ejemplo se
requiere que el panel remoto quede incrustado en una página HTML y que permita hacer
control sobre los botones del panel. En la figura 15.4 se observa la configuración del panel.
Figura15.6 Ventana de configuración, activar el Servidor Web del LabVIEW para el panel remoto.
352
Paso 6: Se puede hacer una vista previa de la página Web diseñada, tal como se muestra
en la figura 15.7, para verificar que todos los campos se llenaron en forma correcta. El
programa se enlaza directamente con un navegador y enlaza la página diseñada.
Paso 7: Se procede a guardar la página Web y el sistema permite hacer una conexión previa
de prueba para verificar las opciones de control y monitoreo.
Opciones de configuración
Figura15.9. Aplicaciones VI Server y Web Server para configuración desde el menú Options.
Figura15.10. Opciones del Web Server para configuración del panel remoto.
355
Capítulo XVI
Comunicación de un PLC con LabVIEW
Las industrias manejan un gran número de variables para los sistemas de monitor y
control, hacen uso de equipos electrónicos industriales, de mayor velocidad de
procesamiento, de gran cantidad de terminales de entrada y salida para manejo de un gran
número de variables, protocolos industriales de comunicación, robustez, entre otras
características relevantes para establecer un sistema automatizado completo. Estos
sistemas presentan la información de sus variables en programas visuales que sirvan de
interfaz de las máquinas con sus usuarios. El LabVIEW se puede utilizar como referencia
para establecer un interfaz humano máquina y poder visualizar, todas las variables
monitoreadas por equipos industriales con un protocolo de comunicación específico.
Descripción de un PLC
Memoria del autómata: Contiene todos los datos e instrucciones que necesita para
ejecutar la tarea de control.
Memoria del programa: Contiene la secuencia de operaciones que deben realizarse sobre
las señales de entrada para obtener las señales de salida, así como los parámetros de
configuración del autómata.
Los PLC, manejan programas que permite crear y editar los algoritmos de control,
en leguajes de programación típicos de PLC’S, siendo uno de los más comunes el Ladder,
también llamado programación en escalera o lenguaje de esquema de contactos. Este
359
En ese capítulo el LabVIEW asume la función de una HMI con dos funciones,
primero ser una interfaz graficas de usuario (GUI), que permita la interacción con el
sistema de forma rápida e intuitiva, a través de dispositivos como un teclado o un ratón.
Segundo ser una Interfaz basada en Web que permita la entrada y salida de datos del
sistema utilizando páginas Web desde un navegador desde Internet.
Comunicación PLC Allen-Bradley - LabVIEW vía puerto Serial: Para establecer este
proceso se requiere tener instalados los programas RSLinx Classic, LabVIEW + Módulo
DSC instalado para habilitar la comunicación de variables mediante OPC, y el RSLogix
para verificar valores actuales del controlador. A continuación se describen los pasos para
generar la comunicación:
• Seguidamente hacer clic en NEW, para crear el nombre del tópico, es recomendable
que el nombre del nuevo tópico coincida con el nombre del programa del PLC en
RSLogix. Ver figura 16.11.
• Seleccionar el PLC en la parte derecha de la ventana dar clic en Apply y Done.
• Definir OPC cliente: Seleccionar OPC Client de la nueva ventana y dar clic en
continuar, como se observa en la figura 16.13.
• Definir el OPC Servidor, seleccionar RSLinx OPC Server y dar clic en Ok, se
añadirá una nueva librería al proyecto que incluirá el OPC1 y que será utilizado
para guardar las variables. Ver figura 16.14.
368
• Clic derecho sobre la nueva librería y seleccionar Create Bound Variables. Ver
figura 16.15.
Figura 16.15. Configuración para definir las variables del OPC en LabVIEW.
• Seleccionar la opción Online para visualizar las variables del PLC y añadirlas al
proyecto haciendo clic en Add, seguidamente selecciona OK para continuar. Ver
figura 16.16.
Figura 16.18. Selección del tipo de dato para las Variables en el Proyecto del LabVIEW.
Figura 16.19. Variables del PLC para ser usadas en el Diagrama de Bloques del LabVIEW.
371
Observaciones: El software RSLinx debe tener una licencia de tipo Gateway o profesional
para poder establecer comunicación vía OPC ya sea con LabVIEW u otro software que no
sean de Rockwell.
Definir el problema: Desarrollar un sistema de monitoreo remoto vía web, que permite
llevar a cabo la visualización de variables importantes del proceso de empaque de una línea
de alimentos controlado por un PLC.
372
Diseñar soluciones: Para lograr el monitoreo remoto se diseña una interfaz humano-
maquina (HMI) que permite visualizar de forma gráfica los parámetros del proceso de
empaque requeridos por la empresa para su supervisión.
Paso 1 Selección del hadware y software requerido para la aplicación: Los elementos
requeridos se listan a continuación: Controladores lógicos programables PLC marca Allen-
Bradley, Módulos de expansión de entrada Digital, Switch Stratix 2000 para conexión a
red, Módulos convertidores Serie – Ethernet, Switches de entorno industrial, fuentes de
voltaje DC, Relés Electromagnéticos, Software de programación (LabVIEW, RSLogix,
RSLinx) y Computador para el servidor principal.
Paso 2 Instalación del hardware sobre el proceso: Las señales extraídas del proceso son
Digitales, por lo que se hace uso de un PLC Allen-Bradley modelo MicroLogix 1200 con
dos módulos de expansión de entada Digital Micrologix 1200. Para realizar la
interconexión y poder enviar datos desde el nivel de gestión donde se encuentran las
estaciones de trabajo hasta el nivel de control donde el autómata interactúa directamente
con el proceso, se utiliza un Switch Stratix 2000 conectado a la red de la empresa y de un
módulo convertidor Serie-Ethernet 1761-NET-ENI marca Allen-Bradley para
proporcionar la conexión desde el puerto serie del PLC a uno de los puertos del Switch.
373
Convertidor Serie-Ethernet
marca Allen-Bradley 1761-
NET-ENI
Figura 16.22. Parte del código de programación en escalera del PLC, en el RSLogix de Rockwell.
Figura 16.23. Variable OPC para el conteo de productos, en código de programación LabVIEW.
Referencias Bibliográficas
Bao, Y. & Jiang, X. (2011). Application of Virtual Instrumentation which Based on Lab
VIEW in Electronic Measurement Technology Course. International Conference on
Electronics and Optoelectronics (ICEOE). 978--61284-276-9 ©2011IEEE.
Building a LabVIEW User Interface for a Simulink® Model with LabVIEW Simulation
Interface Toolkit. NI Tutorial. Recuperado 10 de Septiembre de 2016, de
http://www.ni.com/white-paper/3057/en/.
Chopra, N., Spong, M. & Lozano, R. (2004). Adaptive coordination control of bilateral
teleoperators with time delays. Proc. 43rd IEEE Conf. Decision Contr., 2004, pp.
4540-4547.
Doering, E. (2015). Guía de Elementos Básicos para Iniciar Proyectos con NI myRIO.
National Instruments.
Elhajj, I., Xi, N. & Fung, W. (2000). Real-time control of internet based teleoperation
with force reflection. Intelligent Control and Automation. Proceedings of the 3rd
World Congress Publication: Page(s): 3761 - 3766 vol.5.
Getting Started with Arduino and Genuino products. Recuperado 10 de Octubre de 2016,
de https://www.arduino.cc/en/Guide/HomePage.
Gillet, D., Salzmann, C. & Huguenin, P. (1999). Introduction to Real-time Control using
LabVIEW with an Application to Distance Learning. In: Swiss Federal Institute
of Technology Lausanne, Switzerland.
Kamrani, E., Momeni H. & Sharafat, A. (2005). Modeling Internet Delay Dynamics for
Teleoperation. IEEE Conference on Control Applications Toronto, Canada.
Kitamura, K., Yashiro, D., & Ohnishi K. (2009). Bilateral Control using Estimated
Environmental Stiffness as the Master Position Gain University. Yokohama Japan
IEEE.
National Instruments Corporation (2008). LabVIEW PID Contol Toolkit User Manual.
NI Manual.
Niemeyer G. & Slotine, J. (2004). Telemanipulation with time delays. Int. J. Robot. Res.,
vol. 23, no. 9, pp. 873-890, September 2004.
Peidró, A., Rodríguez J., Azorín, J. y Reinos O. (2014). Implementación de una maqueta
de Control Bilateral 1 GDL con Arduino para Telerrobotica. XXXV Jornadas de
Automática ISBN-13: 978-84-697-0589-6, Valencia España.
Qiyuan, S. & Xuan. (2008). Web-based Control System of a Mobile Manipulator over
Internet. First International Conference on Intelligent Networks and Intelligent
Systems.
Rockwell Automation (2008). Datos de tags y E/S en los controladores Logix5000. Allen
Bradley Manual de Programación.
http://www.infoplc.net/files/descargas/rockwell/infoPLC_net_SLC500_MicroLog
ix_1000.pdf.