INSTITUTO TECNOLÓGICO DE MINATITLÁN
LabVIEW PARA SISTEMAS BÁSICOS DE CONTROL
AUTOR: RAFAEL GONZÁLEZ RAMÍREZ
ASESOR: ANASTACIO WILFRIDO GARCÍA NÚÑEZ
6 DE DICIEMBRE DEL AÑO 2013
2
ÍNDICE
INTRODUCCIÓN 3
MARCO TEÓRICO 4
PLANTEAMIENTO DEL PROBLEMA 9
HIPÓTESIS 10
OBJETIVO 11
JUSTIFICACIÓN 12
ALCANCE 13
IMPACTOS 14
METODOLOGÍA 15
DESARROLLO 16
PANEL FRONTAL 17
DIAGRAMA DE BLOQUES 18
PALETAS 20
PROGRAMACIÓN EN LABVIEW 25
EJECUCIÓN DE UN VI 26
ESTRUCTURAS 28
DAQ 33
APLICACIÓN 38
CRONOGRAMA 42
CONCLUSIÓN 43
RECOMENDACIONES 44
BIBLIOGRAFÍA 45
3
INTRODUCCIÓN
LabVIEW (acrónimo de Laboratory Virtual Instrumentation Engineering
Workbench) es una plataforma y entorno de desarrollo para diseñarsistemas, con
un lenguaje de programación visual gráfico. Recomendado para sistemas
hardware y software de pruebas, control y diseño, simulado o real y embebido,
pues acelera la productividad. El lenguaje que usa se llama lenguaje G, donde la
G simboliza que es lenguaje Gráfico.
Este programa fue creado por National Instruments (1976) para funcionar sobre
máquinas MAC, salió al mercado por primera vez en 1986. Ahora está disponible
para las plataformas Windows, UNIX, MAC y GNU/Linux. La última versión es la
2013, con la increíble demostración de poderse usar simultáneamente para el
diseño del firmware de un instrumento RF de última generación, a la programación
de alto nivel del mismo instrumento, todo ello con código abierto.
Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales, o
VIs, y su origen provenía del control de instrumentos, aunque hoy en día se ha
expandido ampliamente no sólo al control de todo tipo de electrónica
(Instrumentación electrónica) sino también a su programación embebida,
comunicaciones, matemáticas, etc. Un lema tradicional de LabVIEW es: "La
potencia está en el Software", que con la aparición de los sistemas multinúcleo se
ha hecho aún más potente. Entre sus objetivos están el reducir el tiempo de
desarrollo de aplicaciones de todo tipo (no sólo en ámbitos de Pruebas, Control y
Diseño) y el permitir la entrada a la informática a profesionales de cualquier otro
campo. LabVIEW consigue combinarse con todo tipo de software y hardware,
tanto del propio fabricante -tarjetas de adquisición de datos, PAC, Visión,
instrumentos y otroHardware- como de otros fabricantes.
4
MARCO TEÓRICO
A través del marco teórico y referencial se expresa el origen del software LabVIEW
y su importancia, algunos conceptos, utilización y características dadas por los
propios fabricantes.
Posteriormente, se presenta una descripción general sobre la finalidad de un
Hardware de Adquisición de Datos (DAQ) con un pequeño diagrama basado en
PC de adquisición de datos. [5]
Luego se realiza una breve reseña sobre la relación que existe entre National
Instruments y la empresa fabricante de la DAQ - elegida por nosotros - ,
Measurement Computing.
Finalmente, se da explica la función de pequeñas utilidades que son necesarias
para nuestro trabajo final
LabVIEW fue creado en 1976 por le empresa National Instruments (NI) con el
propósito de funcionar sobre máquinas Apple Macintosh (MAC). Actualmente está
disponible en los principales sistemas operativos utilizados en el mundo, como es
Windows y Linux, entre otros.[4]
El 16 de abril de 2007, National Instruments anunció la disponibilidad de una
nueva versión de LabVIEW, como es LabVIEW 8.2.1 éste software puede ser
utilizado en la versión más nueva del sistema operativo de Microsoft (Windows
Vista).
“LabVIEW es un revolucionario entorno de desarrollo gráfico con funciones
integradas para realizar adquisición de datos, control de instrumentos, análisis de
medida y presentaciones de datos. LabVIEW le da la flexibilidad de un potente
ambiente de programación, pero mucho más sencillo que los entornos
tradicionales”. [5]
5
Esta definición es bastante clara, el software LabVIEW tiene funciones
específicas para acelerar el desarrollo de aplicaciones de medida, control y
automatización, nos proporciona herramientas poderosas para que el usuario
pueda crear aplicaciones sin líneas de código (lenguaje G) y nos permite colocar
objetos ya construidos para lograr crear interfaces de usuario rápidamente.
Después es uno mismo el que específica las funciones del sistema construyendo
diagramas de bloques.
No podemos dejar de mencionar que LabVIEW se puede conectar con todo tipo
de hardware incluyendo instrumentos de escritorio, tarjetas insertables,
controladores de movimiento y controladores lógicos programables (PLCs).
Otra de las razones que explican la importancia y le dan un punto a favor a este
software es que como las necesidades de las aplicaciones van cambiando con el
tiempo, los sistemas definidos y creados por el usuario de LabVIEW tienen la
movilidad y la flexibilidad necesaria para adecuarse sin la necesidad de incorporar
equipos nuevos.
Por lo descrito anteriormente, un sistema basado en LabVIEW, simplifica el
desarrollo de sistemas y tiene la habilidad de reutilizar su código, tiene acceso a
sistemas de instrumentación completos con un coste mucho más bajo que un
único instrumento comercial.
Sus principales usos son en la adquisición y procesamiento de datos,
automatización industrial, control de instrumentos, diseños de control, etc.
Hoy en día, científicos, ingenieros, técnicos y estudiantes utilizan LabVIEW para
desarrollar soluciones que respondan a sus interrogantes más exigentes, es por
ello que damos fe que su principal característica es la facilidad de uso que posee.
También resulta válido para personas con pocos conocimientos en programación,
ya que pueden realizar programas relativamente complejos, imposibles para ellos
6
y a veces hasta para uno mismo con los lenguajes tradicionales.
LabVIEW posee facilidad de manejo para las siguientes interfaces de
comunicación:
Puerto serie
Puerto paralelo
GPIB
PXI
USB
VXI
TCP/IP
UDP Datasocket
Irda, bluetooth
OPC
LabVIEW posee la capacidad de interactuar con otros lenguajes
y aplicaciones:
o DLL (librerías de funciones), .NET, ActiveX, MultiSim, Matlab/Simulink,
AutoCAD, SolidWorks, etc.
o Herramientas gráficas y textuales para el procesado digital de señales.
o Visualización y manejo de gráficas con datos dinámicos.
o Adquisición y tratamiento de imágenes.
o Control de movimiento (combinado incluso con todo lo anterior).
o Tiempo Real estrictamente hablando.
7
o Programación de FPGA para control o validación.
o Sincronización entre dispositivos.
National Instruments sostiene:
“La adquisición de datos es el proceso de obtener o generar información de
manera automatizada desde recursos de medidas analógicas y digitales como
sensores y dispositivos bajo prueba. Utiliza una combinación de hardware y
software basados en PC para brindar un sistema de medida flexible y definido
por el usuario.” [3]
Es por lo anterior que los dispositivos DAQ son instrumentos, ideales para una
gran variedad de aplicaciones, desde registros de datos simples hasta
sistemas integrados, ya que han sido diseñados con el propósito general de
medir señales de voltaje.
National Instruments en el año 2006 se expandió al adquirir a Measurement
Computing que es una empresa que desarrolla tarjetas de adquisición de datos
de bajo coste para interfaces ISA, PCI y USB para computadoras personales. De
este modo, como NI es una empresa que desarrolla tecnología en
instrumentación virtual, el software NI LabVIEW ya funciona con los productos de
esta compañía con sus respectivos Drivers.[4]
Un dispositivo de este tipo, por ejemplo, el USB 1208FS posee 8 canales de
entrada análoga. Tiene una resolución de 12-BIT, 50 kilo muestras/segundo (tasa
de muestreo), dos salidas de D/A y 16 Digital I/O, en una presentación miniatura
atractiva. Todas las señales son accesibles con tornillos en las terminales
laterales. Conexión por USB.
8
Para dar funcionamiento a nuestro trabajo práctico es necesario instalar además
de LabVIEW 8.2 dos utilidades necesarias:
• InstaCal v5.82
• Drivers UL for LabVIEW 7.11a
InstaCal es un pequeño software (15,84 MB) de la empresa Measurement
Computing Corporation (MCC) que maneja completamente el hardware de una
DAQ, ¿qué quiere decir esto? Por ejemplo cuando uno instala un dispositivo
USB, PCI o PCMCIA, InstaCal detecta el hardware y asigna los recursos
automáticamente. También existe la opción de que el usuario pueda ajustar las
características del hardware según sea su necesidad.
ULforLabVIEW711a es un archivo que contiene distintos drivers para la
simulación de algunos dispositivos de adquisición de datos en LabVIEW. La
versión 7.11a indica que podemos instalarlo en LabVIEW 8.0 o superior.
9
PLANTEAMIENTO DEL PROBLEMA
El problema a resolver es la falta de información con respecto a este tipo de
herramientas en las carreras de ingeniería, aunque esta herramienta o este tipo de
herramientas se piensan para objetivos o desarrollos un poco más específicos del
alcance de una ingeniería, se hace necesario utilizarlas en las materias de control.
Los estudiantes de ingeniería, desgraciadamente pocas veces egresan con el
conocimiento necesario para diseñar, y explotar todo el perfil de la ingeniería, este
problema se podría solucionar ofreciendo más oportunidades de aprender, y así
obtener una comprensión completa de parte de los alumnos y al mismo tiempo
alentar o promover el interés en las aplicaciones de la materia.
10
HIPÓTESIS
Al conocer las herramientas del LabView (que es el labview) necesarias para
realizar programas visuales para aplicaciones en control de procesos generales.
11
OBJETIVO GENERAL
Investigar analíticamente, la herramienta de programación LabVIEW con el
propósito de que las futuras generaciones lo utilicen con fines didácticos.
OBJETIVOS ESPECÍFICOS
Dar a conocer la forma de simular procesos básicos de control
Explicar distintas herramientas para el manejo básico del programa LabVIEW.
Explicar un programa, para mayor entendimiento del usuario y utilizar un lenguaje
simple con el mismo objetivo.
Creación de un VI intuitivo y de fácil manejo en LabVIEW para el usuario final,
que sirva para entender el control proporcional puro
Visualizar a medida que van cambiando la señal de control a través de un
indicador.
Crear curiosidad y motivación en los estudiantes de ingeniería con la información
dada, con el propósito de impulsarlos a indagar más sobre el tema.
Proporcionar un conocimiento básico del manejo de LabVIEW.
12
JUSTIFICACIÓN
Este proyecto tiene el fin de transformar la manera de pensar de pensar de los
estudiantes de ingeniería electrónica y de sistemas, el problema de desinterés por
parte de éstos es cada día más preocupante, el cual es causado por falta de
motivación o ignorancia de distintos temas base.
Las consecuencias de este problema es un rendimiento bajo de los estudiantes y
el bajo aprovechamiento de las clases.
Este trabajo busca un fácil entendimiento tanto de estudiantes recién ingresados
como los de semestres avanzados para motivarlos a desarrollar programas de
apoyo para los proyectos de la carrera.
13
ALCANCE
El alcance de esta investigación llegará a proporcionar un conocimiento básico del
manejo de LabView, sobre las herramientas básicas en la programación de una
aplicación basada en la simulación de un controlador estable.
Se verán las distintas herramientas con las características necesarias para el buen
entendimiento y fácil manejo de dicho programa por parte del lector.
Se darán a conocer distintas paqueterías necesarias para interactuar con variables
reales.
Los cálculos de funciones de transferencia de una planta no aplican en esta
investigación, ni cualquier conocimiento específico acerca de teoría de control,
solo conocimientos básicos (diagrama a bloques de distintos controladores con el
fin de conocerlos para que sea posible seguir un algoritmo para una programación
eficaz).
Los conocimientos básicos de programación quedan fuera de esta investigación
(concepto de algoritmo, concepto y uso de diagramas de flujo, concepto de
palabra reservada). Sin embargo se explicará la función de algunos ciclos con el
fin de que cualquier lector pueda llevar a cabo la aplicación que se explicara
posteriormente.
Se expondrá el DAQ (Data Acquisition) de la marca National Instruments, con el
fín de informar de la existencia de dispositivos para distintos gustos y
comodidades.
Se conocerá la interfaz gráfica de LabView para mayor familiarización.
14
IMPACTO ÉTICO, SOCIAL, TECNOLÓGICO, ECONÓMICO Y AMBIENTAL
El impacto ético y social de éste trabajo es sobre todo, que al ser una motivación,
ayudará a la sociedad a obtener mejor calidad de vida a largo plazo, eso trae
consigo mucho más impacto, pues la motivación en sí es el motor de una persona
para salir adelante y ser líderes seguros de lo que quieren y de su meta a lograr.
El impacto tecnológico es importante, ya que gracias a las herramientas
presentadas en éste trabajo, se pueden hacer distintos sistemas, éste trabajo
funciona como guía básica para empezar a desarrollar proyectos propios
importantes.
El impacto económico irá de la mano con todos los anteriores, pues al influir en
los alumnos de ingeniería como motivación para salir adelante, la calidad de vida
a largo plazo de los mismos.
15
METODOLOGÍA
La presente investigación es de tipo documental informativa o expositiva por lo
que se expondrá el tema cubriendo los alcances planteados para dar a conocer a
los estudiantes de ingeniería una herramienta para realizar prácticas de control de
procesos, teoría de control y control digital, con el fin de impulsar a los futuros
ingenieros a adentrarse a los temas que los catedráticos tocan en el salón de
clase, se recopilará información de distintas fuentes y se ordenará de forma que
se explique desde lo más básico de la materia hasta lograr hacer una aplicación,
para mayores aclaraciones en la materia, se colocarán imágenes ilustrativas (tanto
propias como de distintas fuentes) con el fin de dar a conocer ejemplos y para
mayor familiarización con el entorno y jerga del programa.
Toda la información de este trabajo es de fuentes confiables, por lo que lo
expuesto en esta investigación documental, será seguramente útil a quien le
interesa aprender un poco de este programa y la forma de programar.
16
DESARROLLO
LabVIEW constituye un revolucionario sistema de programación gráfica para
aplicaciones que involucren adquisición, control, análisis y presentación de datos.
Las ventajas que proporciona el empleo de LabVIEW se resumen en las
siguientes:
• Se reduce el tiempo de desarrollo de las aplicaciones al menos de 4 a 10 veces,
ya que es muy intuitivo y fácil de aprender.
• Dota de gran flexibilidad al sistema, permitiendo cambios y actualizaciones tanto
del hardware como del software.
• Da la posibilidad a los usuarios de crear soluciones completas y complejas.
• Con un único sistema de desarrollo se integran las funciones de adquisición,
análisis y presentación de datos.
• El sistema está dotado de un compilador gráfico para lograr la máxima velocidad
de ejecución posible.
• Tiene la posibilidad de incorporar aplicaciones escritas en otros lenguajes.
LabVIEW es un entorno de programación destinado al desarrollo de aplicaciones,
similar a los sistemas de desarrollo comerciales que utilizan el lenguaje C o
BASIC. Sin embargo, LabVIEW se diferencia de dichos programas en un
importante aspecto: los citados lenguajes de programación se basan en líneas de
texto para crear el código fuente del programa, mientras que LabVIEW emplea la
programación gráfica o lenguaje G para crear programas basados en diagramas
de bloques. [1]
17
Para el empleo de LabVIEW no se requiere gran experiencia en programación, ya
que se emplean iconos, términos e ideas familiares a científicos e ingenieros, y se
apoya sobre símbolos gráficos en lugar de lenguaje escrito para construir las
aplicaciones. Por ello resulta mucho más intuitivo que el resto de lenguajes de
programación convencionales.
Existen extensas librerías de funciones y subrutinas. Además de las funciones
básicas de todo lenguaje de programación, LabVIEW incluye librerías específicas
para la adquisición de datos, control de instrumentación VXI, GPIB y comunicación
serie, análisis presentación y guardado de datos.
Este programa también proporciona potentes herramientas que facilitan la
depuración de los programas.
Los programas desarrollados mediante LabVIEW se denominan Instrumentos
Virtuales (VIs), porque su apariencia y funcionamiento imitan los de un instrumento
real. Sin embargo son análogos a las funciones creadas con los lenguajes de
programación convencionales. Los VIs tienen una parte interactiva con el usuario y
otra parte de código fuente, y aceptan parámetros procedentes de otros VIs.[2]
Todos los VIs tienen un panel frontal y un diagrama de bloques. Las paletas
contienen las opciones que se emplean para crear y modificar los VIs. A
continuación se procederá a realizar una somera descripción de estos conceptos.
PANEL FRONTAL
Se trata de la interfaz gráfica del VI con el usuario. Esta interfaz recoge las
entradas procedentes del usuario y representa las salidas proporcionadas por el
programa. Un panel frontal está formado por una serie de botones, pulsadores,
potenciómetros, gráficos, etc. (INSTRUMENTS, Fundamentos del Entorno de
LabView, 2013) [1].
18
Cada uno de ellos puede estar definido como un control o un indicador. Los
primeros sirven para introducir parámetros al VI, mientras que los indicadores se
emplean para mostrar los resultados producidos, ya sean datos adquiridos o
resultados de alguna operación.
En la Figura 1 se muestran ejemplos de controladores e indicadores.
Controladores Indicador
Figura 1: Panel
Frontal
DIAGRAMA DE BLOQUES
El diagrama de bloques constituye el código fuente del VI. En el diagrama de
bloques es donde se realiza la implementación del programa del VI para controlar
o realizar cualquier procesado de las entradas y salidas que se crearon en el panel
frontal. (INSTRUMENTS, Fundamentos del Entorno de LabView, 2013)
El diagrama de bloques incluye funciones y estructuras integradas en las librerías
que incorpora LabVIEW. En el lenguaje G las funciones y las estructuras son
nodos elementales. Son análogas a los operadores o librerías de funciones de los
lenguajes convencionales.
19
Los controles e indicadores que se colocaron previamente en el Panel Frontal, se
materializan en el diagrama de bloques mediante los terminales. Un ejemplo en la
figura 2.
Figura 2: Diagrama de
bloques
Función Terminal Estructura
La imagen anterior es un ejemplo de un programa desarrollado en el lenguaje G
de LabVIEW y sus partes.
El diagrama de bloques se construye conectando los distintos objetos entre sí,
como si de un circuito se tratara. Los cables unen terminales de entrada y salida
con los objetos correspondientes, y por ellos fluyen los datos.
20
LabVIEW posee una extensa biblioteca de funciones, entre ellas, aritméticas,
comparaciones, conversiones, funciones de entrada/salida, de análisis, etc.
Las estructuras, similares a las declaraciones causales y a los bucles en lenguajes
convencionales, ejecutan el código que contienen de forma condicional o repetitiva
(bucle for, while, case,...).
Los cables son las trayectorias que siguen los datos desde su origen hasta su
destino, ya sea una función, una estructura, un terminal, etc. Cada cable tiene un
color o un estilo diferente, lo que diferencia unos tipos de datos de otros.
PALETAS
Las paletas de LabVIEW proporcionan las herramientas que se requieren para
crear y modificar tanto el panel frontal como el diagrama de bloques.
(INSTRUMENTS, Fundamentos del Entorno de LabView, 2013)
HERRAMIENTAS (TOOLS PALETTE)
A continuación se presentan los iconos de los botones de la “tools palette” y se
describirán sus funciones.
Operating tool – Cambia el valor de los controles
Positioning tool – Desplaza, cambia de tamaño y selecciona los objetos.
Labeling tool – Edita texto y crea etiquetas.
Wiring tool – Une los objetos en el diagrama de bloques.
Object Pop-up Menu tool – Abre el menú desplegable de un objeto.
21
Scroll tool – Desplaza la pantalla sin necesidad de emplear las barras de
Breakpoint tool – Fija puntos de interrupción de la ejecución del programa
en VIs, funciones y estructuras.
Probe tool – Crea puntos de prueba en los cables, en los que se puede
visualizar el valor del dato que fluya por dicho cable en cada instante.
Color Copy tool – Copia el color para después establecerlo mediante la
siguiente herramienta.
Color tool – Establece el color de fondo y el de los objetos.
P A L E T A D E C O N T R O L E S (CONTROLS PALETTE)
Se utiliza únicamente en el panel frontal. Contiene todos los controles e
indicadores que se emplearán para crear la interfaz del VI con el usuario,
nuevamente se presentan los íconos, nombres y funciones de las herramientas:
Numeric – Para la introducción y visualización de cantidades numéricas.
Boolean – Para la entrada y visualización de valores booleanos
String & Table – Para la entrada y visualización de texto.
List & Ring – Para visualizar y/o seleccionar una lista de opciones.
Array & Cluster – Para agrupar elementos.
22
Graph – Para representar gráficamente los datos.
Path & RefNum – Para gestión de archivos.
Decorations – Para introducir decoraciones en el panel frontal. No
visualizan datos.
User Controls – Para elegir un control creado por el propio usuario.
ActiveX – Para transferir datos y programas de unas aplicaciones a otras
dentro de Windows.
Select a Control – Para seleccionar cualquier control.
(INSTRUMENTS, Fundamentos del Entorno de LabView, 2013)
Al seleccionar objetos desde el menú Controls estos aparecen sobre el panel
frontal, pueden colocarse donde convenga, y además tienen su propio menú
desplegable que permite la configuración de algunos parámetros específicos de
cada tipo de control.
PALETA DE FUNCIONES (FUNCTIONS PALETTE)
Se emplea en el diseño del diagrama de bloques. La paleta de funciones contiene
todos los objetos que se emplean en la implementación del programa del VI, ya
sean funciones aritméticas, de entrada/salida de señales, entrada/salidad de datos
a fichero, adquisición de señales, temporización de la ejecución del programa.
Para seleccionar una función o estructura concretas, se debe desplegar el menú
23
Functions y elegir entre las opciones que aparecen. A continuación se enumeran
todas ellas, junto con una pequeña definición. (INSTRUMENTS, Fundamentos del
Entorno de LabView, 2013)
Structures – Muestra las estructuras de control del programa, junto con las
variables locales y globales.
Numeric – Muestra funciones aritméticas y constantes numéricas.
Boolean – Muestra funciones y constantes lógicas.
String – Muestra funciones para manipular cadenas de caracteres, así como
constantes de caracteres.
Array – Contiene funciones útiles para procesar datos en forma de vectores,
así como constantes de vectores.
Cluster – Contiene funciones útiles para procesar datos procedentes de
gráficas y destinados a ser representados en ellas, así como las correspondientes
constantes.
Comparison – Muestra funciones que sirven para comparar números,
valores booleanos o cadenas de caracteres.
24
Time & Dialog – Contiene funciones para trabajar con cuadros de diálogo,
introducir contadores y retardos, etc.
File I/O – Muestra funciones para operar con ficheros.
Communication – Muestra diversas funciones que sirven para comunicar
varios ordenadores entre sí, o para permitir la comunicación entra distintos
programas.
Instrument I/O – Muestra un submenú de VIs, que facilita la comunicación
con instrumentos periféricos que siguen la norma ANSI/IEEE 488.2-1987, y el
control del puerto serie.
Data Acquisition – Contiene a su vez un submenú donde puede elegirse
entre distintas librerías referentes a la adquisición de datos.
Analysis – Contiene un submenú en el que se puede elegir entre una amplia
gama de funciones matemáticas de análisis.
Tutorial – Incluye un menú de VIs que se utilizan en el manual LabVIEW
Tutorial.
Advanced – Contiene diversos submenús que permiten el control de la
ayuda, de los VIs, manipulación de datos, procesado de eventos, control de la
memoria, empleo de programas ejecutables o incluidos en librerías DLL, etc.
25
Instrument drivers – En él se muestran los drivers disponibles de distintos
instrumentos.
User Libraries – Muestra as librerías definidas por el usuario. En este caso,
la librería mostrada contiene los drivers de la tarjeta de adquisición de datos de
Advantech.
Aplication control – Contiene varias funciones que regulan el
funcionamiento de la propia aplicación en ejecución.
Select a VI – Permite seleccionar cualquier VI para emplearlo como subVI.
PROGRAMACIÓN EN LABVIEW
Con el entorno gráfico de programación de LabVIEW se comienza a programar a
partir del panel frontal. (ELECTRÓNICA, 2006)
En primer lugar se definirán y seleccionarán de la paleta de controles todos los
controles (entradas que dará el usuario) e indicadores (salidas que presentará en
pantalla el VI) que se emplearán para introducir los datos por parte del usuario y
presentar en pantalla los resultados.
Una vez colocados en la ventana correspondiente al panel frontal todos los objetos
necesarios, debe pasarse a la ventana Diagram (menú Windows > Show
Diagram), que es donde se realiza la programación propiamente dicha (diagrama
de bloques). Al abrir esta ventana, en ella se encuentran los terminales
correspondientes a los objetos situados en el panel frontal, dispuestos
automáticamente por LabVIEW.
26
Se deben ir situando las funciones, estructuras, etc. que se requieran para el
desarrollo del programa, las cuales se unen a los terminales mediante cables.
Para facilitar la tarea de conexión de todos los terminales, en el menú “Help”
puede elegirse la opción “Show Help”, con lo que al colocar el cursor del ratón
sobre un elemento aparece una ventana con información relativa a éste
(parámetros de entrada y salida).
Además, si se tiene seleccionado el cursor de cableado, al situar éste sobre un
elemento se muestran los terminales de forma intermitente.
EJECUCIÓN DE UN VI
Una vez se ha concluido la programación del VI se debe proceder a su ejecución.
Para ello la ventana activa debe ser el panel frontal (si se está en la ventana del
diagrama de bloques, se debe seleccionar la opción Show Panel del menú
Window). (INTRANET, 2012)
Una vez situados en el panel frontal, se pulsará el botón de Run, situado en la
barra de herramientas (Figura 3.)
Figura 3. Run
El programa comenzará a ejecutarse. Mientras dura la ejecución del mismo, la
apariencia del botón de Run es la que se muestra a continuación en la figura 4
27
Figura 4. Barra de herramientas con Programa en
ejecución.
De este modo el programa se ejecutará una sola vez. Si se desea una ejecución
continua, se pulsará el botón situado a la derecha del de Run (Continuous Run). Si
durante el funcionamiento continuo del programa se vuelve a pulsar el citado
botón, se finalizará la última ejecución del mismo, tras lo cual el programa se
parará. (INSTRUMENTS, Estructuras de ejecución en NI LabView, 2012)
Figura 5. Continuos Run
Para finalizar la ejecución de un programa se puede operar de dos formas. La
primera, y la más aconsejable, es emplear un botón en el panel frontal del VI, cuya
pulsación produzca la interrupción del bucle de ejecución de la aplicación.
Figura 6. Stop
28
La segunda forma de detener la ejecución del VI es pulsando el botón de pausa o
el de stop. La diferencia entre ambos es que si se pulsa stop, la ejecución del
programa finaliza inmediatamente, mientras que si se pulsa pausa, se produce
una detención en el funcionamiento del programa, retomándose su ejecución una
vez se vuelve a pulsar el mismo botón.
Figura 7. Stop y Pausa
ESTRUCTURAS
En la paleta de funciones la primera opción es la de las estructuras. Éstas
controlan el flujo del programa, bien sea mediante la secuenciación de acciones,
ejecución de bucles, etc.
Las estructuras se comportan como cualquier otro nodo en el diagrama de
bloques, ejecutando automáticamente lo que está programado en su interior una
vez tiene disponibles los datos de entrada, y una vez ejecutadas las instrucciones
requeridas, suministran los correspondientes valores a los cables unidos a sus
salidas. Sin embargo, cada estructura ejecuta su subdiagrama de acuerdo con las
reglas específicas que rigen su comportamiento, y que se especifican a
continuación.
Un subdiagrama es una colección de nodos, cables y terminales situados en el
interior del rectángulo que constituye la estructura. El For Loop y el While Loop
únicamente tienen un subdiagrama. El Case Structure y el Sequence Structure, sin
embargo, pueden tener múltiples subdiagramas, superpuestos como si se tratara
de cartas en una baraja, por lo que en el diagrama de bloques únicamente será
29
posible visualizar al tiempo uno de ellos. Los subdiagramas se construyes del
mismo modo que el resto del programa
Las siguientes estructuras se hallan disponibles en el lenguaje G.
ESCTUCTURA CASE
Al igual que otras estructuras posee varios subdiagramas.
En la parte superior del subdiagrama aparece el identificador del que se está
representando en pantalla. A ambos lados de este identificador aparecen unas
flechas que permiten pasar de un subdiagrama a otro.
En este caso el identificador es un valor que selecciona el subdiagrama que se
debe ejecutar en cada momento. (INSTRUMENTS, Estructuras de ejecución en NI
LabView, 2012)
Figura 8. Estructura case
Botones para cambiar de subdiagrama
Selector Nombre de subdiagrama
La estructura Case tiene al menos dos subdiagramas (True y False). Únicamente
se ejecutará el contenido de uno de ellos, dependiendo del valor de lo que se
conecte al selector.
30
ESTRUCTURA SEQUENCE
De nuevo, este tipo de estructuras presenta varios subdiagramas, de modo que
únicamente se puede visualizar una en pantalla.
También poseen un identificador del sudiagrama mostrado en su parte superior,
con posibilidad de avanzar o retroceder a otros subdiagramas gracias a las flechas
situadas a ambos lados del mismo. (INSTRUMENTS, Estructuras de ejecución en
NI LabView, 2012)
Figura 9. Opciónes de estructura
Botones para cambiar de subdiagrama
Identificador de subdiagrama
Esta estructura secuencia la ejecución del programa. Primero ejecutará el
subdiagrama de la hoja (frame) nº0, después el de la nº 1, y así sucesivamente.
Para pasar datos de una hoja a otra se pulsará el botón derecho del ratón sobre el
borde de la estructura, seleccionando la opción Add sequence local.
Figura 10. Orden de ejecución Sequence local: paso de un dato de la frame 0 a la
1.
31
F O R L O O P
Es el equivalente al bucle for en los lenguajes de programación convencionales.
Ejecuta el código dispuesto en su interior un número determinado de veces.
Figura 11. Loop “FOR”
Número de veces que se ejecuta el bucle
Numero de iteraciones
Para pasar valores de una iteración a otra se emplean los llamador shift registers.
Para crear uno, se pulsará el botón derecho del ratón mientras éste se halla
situado sobre el borde del bucle, seleccionando la opción Add Shift Register. El
shift register consta de dos terminales, situados en los bordes laterales del bloque.
El terminal izquierdo almacena el valor obtenido en la iteración anterior. El terminal
derecho guardará el dato correspondiente a la iteración en ejecución. Dicho dato
aparecerá, por tanto, en el terminal izquierdo durante la iteración posterior.
Funcionamiento de Shift Register: (INSTRUMENTS, Estructuras de ejecución en
NI LabView, 2012)
Figura 12. Funcionamiento de Shift Register
32
Se puede configurar un shift register para memorizar valores de varias iteraciones
previas. Para ello, con el ratón situado sobre el terminal izquierdo del shift registe,r
se pulsará el botón derecho, seleccionando a continuación la opción Add Element.
Figura 13. Opciones de memoria de iteraciones con Shift Register
WHILE LOOP
Es el equivalente al bucle while empleado en los lenguajes convencionales de
programación. Su funcionamiento es similar al del bucle for.
Figura 14. Ciclo “While”
Terminal condicional
Numero de iteraciones
El programa comprueba el valor de lo que se halle conectado al terminal
condicional al finalizar el bucle. Por lo tanto, el bucle siempre se ejecuta al menos
una vez.
33
Con esta estructura también se pueden emplear los shift registers para tener
disponibles los datos obtenidos en iteraciones anteriores (es decir, para memorizar
valores obtenidos).
Su empleo es análogo al de los bucles for, por lo que omitirá su explicación.
DAQ
La adquisición de datos o adquisición de señales, consiste en la toma de muestras
del mundo real (sistema analógico) para generar datos que puedan ser
manipulados por un ordenador u otras electrónicas (sistema digital). Consiste, en
tomar un conjunto de señales físicas, convertirlas en tensiones eléctricas
y digitalizarlas de manera que se puedan procesar en una computadora. Se
requiere una etapa de acondicionamiento, que adecua la señal a niveles
compatibles con el elemento que hace la transformación a señal digital. El
elemento que hace dicha transformación es el módulo de digitalización o tarjeta de
Adquisición de Datos (DAQ).
National Instruments presenta una variedad de tarjetas adquisidoras de señales
que presentan varios tipos de protocolos de conexión a una computadora, como
son USB, PCI, Ethernet, Wi-Fi, PCI Express, PXI Plataforma, pero como todo, al
ser DAQ’s todas tienen que coincidir en un minimo de dispositivos para funcionar
(Figura 15).
Fig. 15. Constitución de un control por DAQ
34
ACONDICIONAMIENTO DE SEÑALES
Las señales de los sensores o del mundo exterior pueden ser ruidosas o
demasiado peligrosas para medirse directamente. El circuito de acondicionamiento
de señales manipula una señal de tal forma que es apropiado para entrada a un
ADC. Este circuito puede incluir amplificación, atenuación, filtrado y aislamiento.
Algunos dispositivos DAQ incluyen acondicionamiento de señales integrado
diseñado para medir tipos específicos de sensores.[4].
CONVERTIDOR ANALÓGICO DIGITAL (ADC)
Las señales analógicas de los sensores deben ser convertidas en digitales antes
de ser manipuladas por el equipo digital como una PC. Un ADC es un chip que
proporciona una representación digital de una señal analógica en un instante de
tiempo. En la práctica, las señales analógicas varían continuamente con el tiempo
y un ADC realiza "muestras" periódicas de la señal a una razón predefinida. Estas
muestras son transferidas a una PC a través de un bus, donde la señal original es
reconstruida desde las muestras en software.
BUS DE LA 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 dispositivos DAQ se ofrecen en
los buses de PC más comunes, incluyendo USB, PCI, PCI Express y Ethernet.
Recientemente, los dispositivos DAQ han llegado a estar disponibles para 802.11
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.
35
¿CUÁL ES LA FUNCIÓN DE LA PC EN UN SISTEMA DAQ?
Una PC con software programable controla la operación del dispositivo DAQ y es
usada para procesar, visualizar y almacenar datos de medida. Diferentes tipos de
PCs son usadas en diferentes tipos de aplicaciones. Una PC de escritorio se
puede utilizar en un laboratorio por su poder de procesamiento, una laptop se
puede utilizar por su portabilidad o una PC industrial se puede utilizar en una
planta de producción por su robustez. (INSTRUMENTS, NATIONAL
INSTRUMENTS)
¿CUÁLES SON LOS DIFERENTES COMPONENTES DE SOFTWARE EN UN
SISTEMA DAQ?
Software Controlador
El software controlador ofrece al software de aplicación la habilidad de interactuar
con un dispositivo DAQ. Simplifica la comunicación con el dispositivo DAQ al
abstraer comandos de hardware de bajo nivel y programación a nivel de registro.
Generalmente, el software controlador DAQ expone una interfaz de programación
de aplicaciones (API) que es usada en un entorno de programación para construir
software de aplicación. (INSTRUMENTS, NATIONAL INSTRUMENTS)
A continuación se presenta la interfaz de un software con el que podemos probar
nuestro DAQ, dado por National Instruments, llamado NI Max (Fig. 16) [4]
Fig. 16 NI Max
36
COMPARANDO DAQ´S
CARACTERÍSTICAS
PORTÁTIL
DE ESCRITORIO
NI COMPACT
PLATAFORMA PXI
BUS USB, WI-FI, ETHERNET
PCI, PCI EXPRESS
USB, WI-FI, ETHERNET
PXI, PXI EXPRESS
PORTABILIDAD EXCELENTE BUENO MEJOR BUENO
NUMERO DE I/O 1 A 100 1 A 100 1 A 250 1 A 1000+
RAZÓN DE
MUESTREO
2 MS/S 10 MS/S 1 MS/S 10 MS/S
ACONDICIONAMIENT
O DE SEÑALES
INTEGRADO
DISPONIBLE NO SI DISPONIBLE
SINCRONIZACIÓN/
DISPARO
BUENO MEJOR MEJOR EXCELENTE
LENGUAJE LABVIEW, C, C++, VB .NET, C# .NET
SISTEMAS
OPERATIVOS
WINDOWS,
LINUX, MAC
OSX
WINDOWS,
LINUX, MAC
OSX, REAL TIME
WINDOWS WINDOWS, LINUX,
REAL TIME
SOFTWARE INCLUIDO NI LABVIEW SIGNALEXPRESS LE (WINDOWS ÚNICAMENTE)
Tabla 1. Comparación de DAQ (INSTRUMENTS, NATIONAL INSTRUMENTS)[4]
Fig. 17 DAQ NI PORTÁTIL (WI-FI)
37
Fig. 18 DAQ’S NI COMPACT (USB)
Fig. 19 DAQ NI DE ESCRITORIO (PCI)
Fig. 20 DAQ NI PXI (PXI)
38
APLICACIÓN
Una vez entendidas las herramientas del programa LabVIEW, procedemos a un
ejercicio básico en el cual simularemos la acción de control de un ciclo de trabajo
de una señal PWM (Pulse Width Modulation), la cual puede ser utilizada
posteriormente para controlar la velocidad de un motor, la posición de un servo
motor, iluminación en LED’s entre otras aplicaciones, el tipo de control utilizado
será de tipo proporcional puro, siendo su ecuación:
( ) ( )
Siendo Y(t) la salida de nuestro controlador, o nuestra acción de control.
En la Fig. 21 se explica gráficamente el PWM
Fig. 21 PWM
En la imagen de arriba se puede observar la variación del ciclo de trabajo de 0 a
100 con un timer de 8 bits de 0 a 255, como se puede observar, la frecuencia y la
amplitud de la señal son constantes, se exigen rigurosamente estos requisitos
para ser una señal PWM.
39
La modulación en el ancho de pulso resulta en la variación de energía
suministrada a cualquier dispositivo que tenga como entrada ésta. A mayor ancho
de pulso, mayor energía y viceversa, y precisamente por este fenómeno es que
puede ser utilizado este método para cuestiones de control de intensidad de luz en
cualquier sistema de luminaria y como regulador o controlador de velocidad en un
motor.
A continuación se presenta el panel frontal que necesitaremos en nuestro
programa (Fig. 22)
Los controles numéricos se encuentran en la paleta de controles, en la opción
numeric.
Fig. 22 Panel frontal de aplicación a realizar
Icono de “Numeric”
Se colocarán los controles de manera que se vean como la siguiente imagen:
40
Fig. 23. Para modificar etiqueta del control numérico, dar click aquí.
A “numeric” le cambiaremos el nombre a “KP”, a numeric2 le cambiaremos el
nombre a “SET POINT”, y a “numeric3” le pondremos el nombre de “MÓDULO”,
cabe mencionar que el control de “MÓDULO” se coloca por ser una simulación de
una acción de control, y no una acción de control incorporando un DAQ para tomar
muestras de la señal de entrada del sistema.
Una vez teniendo listos los controles, nos regresamos a nuestra paleta de
controles, y tomamos un indicador llamado “METER”, cambiándole la etiqueta de
la misma forma a “DUTY CYCLE”.
A “DUTY CYCLE” le cambiaremos las propiedades, por tanto, hacemos click
derecho en él con la herramienta Positioning tool, y nos posicionamos a la opción
de propiedades donde daremos un click, en seguida nos vamos a ir a la pestaña
“scale”, y procederemos a dar el valor minimo y valor máximo de nuestro ciclo de
trabajo. Como se muestra en la figura 24.
Fig. 24 Cambio de escala
41
Le damos esta escala porque el ciclo de trabajo del PWM varía de 0 a 100, una
vez haciendo esto presionamos “OK”.
Haciendo esto, ya tenemos terminado nuestro panel frontal.
Ahora programaremos cada uno de nuestros controles e indicadores (Fig. 25)
Fig. 25 Programación de aplicación.
Estas operaciones están en la paleta de funciones, opción “numeric”.
Analizando la programación, nuestras entradas son los controles que se
incorporaron en el panel frontal, y nuestra salida es nuestro indicador.
KP multiplica a la diferencia del SET POINT con la variable de entrada que en este
caso es “MÓDULO”, el resultado de esta multiplicación será nuestra acción de
control, la cual necesitamos que se presente como un ciclo de trabajo del 1 al 100,
esto es fácil mediante una fórmula que se puede deducir rápidamente tomando en
cuenta que la estructura de nuestro DAQ fuera de 1023 bits.
( )( )
42
CRONOGRAMA
AGOSTO SEPTIEMBRE OCTUBRE NOVIEMBRE DICIEMBRE
INTRODUCCIÓN X MARCO TEÓRICO X PLANTEAMIENTO X HIPÓTESIS X OBJETIVOS X X JUSTIFICACIÓN X ALCANCE X X IMPACTOS X METODOLOGÍA X X DESARROLLO X X CONCLUSIÓN X X
43
CONCLUSIÓN
El LabView es una herramienta fácil de aprender, por esto, se vuelve interesante
programar en su lenguaje “G” distintos sistemas aplicando distintas funciones
como ciclos, bloques de control y herramientas intuitivas.
Es importante saber elegir la tarjeta de adquisición adecuada para cada una de
nuestras necesidades.
Para programar en LabView no se tiene que saber de otros lenguajes de
programación forzosamente ni tener experiencia programando, porque no tiene
nada que ver con otros lenguajes.
44
RECOMENDACIONES PARA LOS LECTORES DEL PROYECTO
Éste trabajo es la introducción a un mundo de conocimiento que tiene que ver con
sistemas de control, procesamiento de imagen, que puede ser aplicable en
proyectos muy ambiciosos.
Se recomienda continuar con el estudio de control aplicando LabVIEW en la
práctica o simulación de sistemas teóricos, esto, es muchas veces el complemento
que hace falta para adquirir conocimiento de calidad, como también para que
nuestra motivación hacia el conocimiento crezca.
Cabe mencionar que las aplicaciones del LabVIEW no solo son en sistemas de
control, cualquier sistema puede ser simulado en este programa utilizando las
herramientas descritas en este trabajo, se recomienda pasar de leer de lo básico a
lo complejo y después de lo leído anteriormente se puede avanzar a un nivel más
alto.
45
BIBLIOGRAFÍA
[1]ELECTRÓNICA, P. D. (13 de 04 de 2006). Proyectos de Mecatrónica y Electrónica. Recuperado el
23 de 10 de 2013, de http://disem.webs.com/proyectosconlabview.htm
[2]INSTRUMENTS, N. (14 de 08 de 2012). Estructuras de ejecución en NI LabView. Recuperado el 24
de 10 de 2013, de
http://www.ni.com/gettingstarted/labviewbasics/esa/exestructures.htm
[3]INSTRUMENTS, N. (20 de 09 de 2013). Fundamentos del Entorno de LabView. Recuperado el 23
de 10 de 2013, de http://www.ni.com/gettingstarted/labviewbasics/
[4]INSTRUMENTS, N. (s.f.). NATIONAL INSTRUMENTS. Obtenido de www.ni.com/
[5]INTRANET, F. d. (10 de 08 de 2012). INTRANET. Recuperado el 20 de 10 de 2013, de
http://www3.fi.mdp.edu.ar/electrica/opt_archivos/estructuras.pdf