Sunteți pe pagina 1din 41

COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

TECNOLÓGICO NACIONAL DE MÉXICO

TAREA

LUNES 08 DE MAYO DE 2017 0


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

ÍNDICE GENERAL

1. INTRODUCCIÓN A LabVIEW ...........................................................................2


1.1 PRINCIPALES CARACTERÍSTICAS .........................................................2
1.2 PROGRAMAS EN LABVIEW .....................................................................3
1.3 OTRAS ALTERNATIVAS ..........................................................................4
2. INSTRUMENTO VIRTUAL ..............................................................................5
3. EQUIPAMIENTO BÁSICO PARA LABORATORIO ........................................5
4. TIPOS DE DATOS EN LabVIEW. ....................................................................6
5. INTERCONEXIÓN DE BLOQUES ...................................................................6
5.1 Vis ROTOS ................................................................................................7
6. ESTRUCTURAS BÁSICAS .............................................................................7
6.1 FOR LOOP .................................................................................................7
6.2 WHILE LOOP .............................................................................................8
6.3 CASE .........................................................................................................9
6.4 SEQUENCE ...............................................................................................9
6.5 FORMULA NODE .....................................................................................10
7. ARRAYS ........................................................................................................11
8. APLICACIÓN PRÁCTICA ..............................................................................13
9. BIBLIOGRAFÍA ..............................................................................................20

LUNES 08 DE MAYO DE 2017 1


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

1. INTRODUCCIÓN A LabVIEW

LabVIEW (acrónimo de Laboratory Virtual Instrument Engineering Workbench) es una


plataforma y entorno de desarrollo para diseñar sistemas, 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.
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 otro Hardware- como de otros fabricantes.
1.1 PRINCIPALES CARACTERÍSTICAS
Su principal característica es la facilidad de uso, válido para programadores
profesionales como para personas con pocos conocimientos en programación pueden
hacer programas relativamente complejos, imposibles para ellos de hacer con
lenguajes tradicionales. También es muy rápido hacer programas con LabVIEW y
cualquier programador, por experimentado que sea, puede beneficiarse de él. Los
programas en LabView son llamados instrumentos virtuales (VIs) Para los amantes de
lo complejo, con LabVIEW pueden crearse programas de miles de VIs (equivalente a

LUNES 08 DE MAYO DE 2017 2


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

millones de páginas de código texto) para aplicaciones complejas, programas de


automatizaciones de decenas de miles de puntos de entradas/salidas, proyectos para
combinar nuevos VIs con VIs ya creados, etc. Incluso existen buenas prácticas de
programación para optimizar el rendimiento y la calidad de la programación. El labView
7.0 introduce un nuevo tipo de subVI llamado VIs Expreso (Express VIS). Estos son
VIs interactivos que tienen una configuración de caja de diálogo que permite al usuario
personalizar la funcionalidad del VI Expreso. El VIs estándar son VIs modulares y
personalizables mediante cableado y funciones que son elementos fundamentales de
operación de LabView.
Presenta facilidades para el manejo de:
 Interfaces de comunicaciones:
 Puerto serie
 Puerto paralelo
 GPIB
 PXI
 VXI
 TCP/IP, UDP, DataSocket
 Irda
 Bluetooth
 USB
 OPC...
Capacidad de interactuar con otros lenguajes y aplicaciones:
 DLL: librerías de funciones
 .NET
 ActiveX
 Multisim
 Matlab/Simulink
 AutoCAD, SolidWorks, etc
 Herramientas gráficas y textuales para el procesado digital de señales.
 Visualización y manejo de gráficas con datos dinámicos.
 Adquisición y tratamiento de imágenes.
 Control de movimiento (combinado incluso con todo lo anterior).
 Tiempo Real estrictamente hablando.
 Programación de FPGAs para control o validación.
 Sincronización entre dispositivos.

1.2 PROGRAMAS EN LabVIEW


Como se ha dicho es una herramienta gráfica de programación, esto significa que los
programas no se escriben, sino que se dibujan, facilitando su comprensión. Al tener ya
pre-diseñados una gran cantidad de bloques, se le facilita al usuario la creación del
LUNES 08 DE MAYO DE 2017 3
COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

proyecto, con lo cual en vez de estar una gran cantidad de tiempo en programar un
dispositivo/bloque, se le permite invertir mucho menos tiempo y dedicarse un poco más
en la interfaz gráfica y la interacción con el usuario final. Cada VI consta de dos partes
diferenciadas:
Panel Frontal: El Panel Frontal es la interfaz con el usuario, la utilizamos para
interactuar con el usuario cuando el programa se está ejecutando. Los usuarios podrán
observar los datos del programa actualizados en tiempo real(como van fluyendo los
datos, un ejemplo sería una calculadora, donde tu le pones las entradas, y te pone el
resultado en la salida). En esta interfaz se definen los controles (los usamos como
entradas, pueden ser botones, marcadores etc..) e indicadores (los usamos como
salidas, pueden ser gráficas ....).
Diagrama de Bloques: es el programa propiamente dicho, donde se define su
funcionalidad, aquí se colocan íconos que realizan una determinada función y se
interconectan (el código que controla el programa --. Suele haber una tercera
parte icono/conector que son los medios utilizados para conectar un VI con otros VIs.-
-
En el panel frontal, encontraremos todo tipos de controles o indicadores, donde cada
uno de estos elementos tiene asignado en el diagrama de bloques una terminal, es
decir el usuario podrá diseñar un proyecto en el panel frontal con controles e
indicadores, donde estos elementos serán las entradas y salidas que interectuaran con
la terminal del VI. Podemos observar en el diagrama de bloques, todos los valores de
los controles e idicadores, como van fluyendo entre ellos cuando se está ejecutando
un programa VI.
La Figura 1 muestra un Diagrama de Bloques de un programa en el que se genera
un array de 100 elementos aleatorios, a continuación se hace la FFT de este array y
se muestra en una gráfica:

1.3 OTRAS ALTERNATIVAS


LabVIEW se puede usar para crear muchos tipos de programas sin estar enfocado a
un ámbito en particular.

LUNES 08 DE MAYO DE 2017 4


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Su álter ego es LabWindows/CVI de National Instruments, el cual permite usar las


mismas funcionalidades pero con la programación en lenguaje C y el acceso a las
bibliotecas Win32 gracias al SDK de Windows.
Las mismas funcionalidades de instrumentación, análisis y controles gráficos son
también accesibles en Visual Basic, C++ o C# con Visual Studio gracias
a Measurement Studio de National Instruments. Así, se puede disfrutar de la
programación orientado a objetos y el framework .NET.
Las otras alternativas van desde lenguajes genéricos como C o Visual Basic pero sin
la ayuda de la bibliotecas de funcionalidades de National Instruments, a otras
herramientas gráficas como HP-VEE, ahora Agilent-VEE.
Una de las alternativas en software libre es MyopenLab.

2. INSTRUMENTO VIRTUAL
Un instrumento virtual es un módulo software que simula el panel frontal de
instrumento que antes hemos comentado y, apoyándose en elementos hardware
accesibles por el computador (tarjetas de adquisición, tarjetas DSP, instrumentos
accesibles vía GPIB, VXI, RS-232, USB, ethernet), realiza una serie de medidas como
si se tratase de un instrumento real.
De este modo, cuando se ejecuta un programa que funciona como instrumento virtual
o VI (Virtual Instrument), el usuario o usuaria ve en la pantalla de su computador un
panel cuya función es idéntica a la de un instrumento físico, facilitando la visualización
y el control del aparato. A partir de los datos reflejados en el panel frontal, el VI debe
actuar recogiendo o generando señales, como lo haría su homólogo físico.
El control de instrumentación por computador no resulta nuevo; incluso el uso del PC
en sistemas de medida se usaba en los setenta mediante la interface de bus IEEE 488
o GPIB (General Purpose Interface Bus). Pero ha sido en los noventa cuando los
procesadores de 16 y 32 bits se han incorporado a equipos asequibles, consiguiendo
altas velocidades y grandes capacidades de memoria. Esta popularización de
computadores de altas prestaciones ha traído consigo un fuerte desarrollo de potentes
paquetes software que simplifican la creación de aplicaciones.
3. EQUIPAMIENTO BÁSICO DE LABORATORIO
Para la consecución de nuestros objetivos se dispone del instrumental existente en
un laboratorio general de instrumentación electrónica. Cada puesto de trabajo consta
del siguiente equipamiento:
• Generador de funciones programable con conexión GPIB.
• Fuente de alimentación programable con conexión GPIB.
• Osciloscopio digital con conexión GPIB.
LUNES 08 DE MAYO DE 2017 5
COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

• Multímetro digital con conexión GPIB.


• Tarjeta interface GPIB PCI-GPIB National Instruments.
• Tarjeta adquisición de datos 6062 National Instruments.
• Computador compatible Pentium III.
El listado anterior de instrumentos es orientativo e independiente del fabricante; la
única condición en el caso de instrumental de laboratorio es que sea controlable por el
computador personal mediante los protocolos RS-232, GPIB, USB, ethernetoVXI.
Y para el caso de las tarjetas de adquisición se hace necesario, si no empleamos las
de National Instruments, la programación mediante lenguaje C del driver de gestión de
dicha tarjeta y su posterior inserción en LabVIEW a través de un CIN (Cocte Interface
Node) empleando WATCOM, un compilador de 32 bits con el cual está desarrollado
LabVIEW.
4. TIPOS DE DATOS EN LabVIEW
LabVIEW ofrece una gran variedad de tipos de datos con los que podemos trabajar
respondiendo a las necesidades reales con las que nos encontraremos. Uno de los
aspectos más significativos de LabVIEW es la diferenciación que efectúa en el
diagrama de bloques entre los diferentes tipos de controles o indicadores, basada en
que cada uno de ellos tiene un color propio. De esta manera, y como consecuencia de
una memorización o asimilación práctica, nos será muy fácil identificarlos y reconocer
inmediatamente si estamos trabajando con el tipo de datos adecuado. Distinguimos
los siguientes tipos, los cuales pueden funcionar como controles o como indicadores.
 Boolean (verde claro): los tipos de datos booleanos son enteros de 16 bits. El
bit más significativo contiene el valor booleano. Si el bit 15 se pone a 1, entonces
el valor del control o indicador es true (verdadero)', por el contrario, si este bit
15 vale O, el valor de la variable booleana será false (falso).

 Numéricos: hay diferentes tipos.

 Extended (naranja): según el modelo de computador que estemos


utilizando los números de coma flotante con precisión extendida
presentan el siguiente formato:
 Macintosh: 96 bits (formato precisión extendida MC68881 - MC68882).
 Windows: 80 bits (formato precisión extendida 80287).
 Sun: formato 128 bits.
 HP-UX: son almacenados como los números en coma flotante de doble
precisión.

5. INTERCONEXIÓN DE BLOQUES

LUNES 08 DE MAYO DE 2017 6


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Para conectar terminales se usa la herramienta Connect Wire UJ (cableado). La


imagen siguiente muestra dicha herramienta, indicando su punta cursor o hot spot:

5.1 VIS ROTOS


Un VI no se puede compilar o ejecutar si está roto. Los Vis normalmente están rotos
mientras los estamos construyendo hasta que unimos todos los iconos del diagrama
de bloques. Si una vez hecho esto continuase roto, lo primero que haríamos sería
ejecutar la opción Remove Bad Wires (Quitar Cables Sueltos) del menú Edit o Ctrl+B.
A menudo esto consigue arreglar el VI.
6. ESTRUCTURAS BÁSICAS
A la hora de programar, muchas veces es necesario ejecutar un mismo conjunto de
sentencias un número determinado de veces, o que éstas se repitan mientras se
cumplan ciertas condiciones. También puede ocurrir que queramos ejecutar una u otra
sentencia dependiendo de las condiciones fijadas o simplemente forzar que unas se
ejecuten siempre antes que otras.
Para ello LabVIEW dispone de cuatro estructuras básicas fácilmente diferenciables por
su apariencia y disponibles en la opción All Functions»Structures del menú Functions
de la ventana Diagram:
 ESTRUCTURAS ITERATIVAS: FOR LOOP Y WHILE LOOP

6.1 FOR LOOP

Usaremos For Loop cuando queramos que una operación se repita un número
determinado de veces. Su equivalente en lenguaje convencional es:

LUNES 08 DE MAYO DE 2017 7


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

For i = O to N – 1
Ejecuta subdiagrama
Al colocar un For Loop en la ventana Diagram observamos que tiene asociados dos
terminales:
1. Terminal contador: contiene el número de veces que se ejecutará el subdiagrama
creado en el interior de la estructura. El valor del contador se fijará externamente.
2. Terminal de iteración: indica el número de veces que se ha ejecutado la estructura:
cero durante la primera iteración, uno durante la segunda y así hasta N - 1.
Ambos terminales son accesibles desde el interior de la estructura, es decir, sus
valores podrán formar parte del subdiagrama, pero en ningún caso se podrán
modificar.
6.2 WHILE LOOP

Usaremos While Loop cuando queramos que una operación se repita mientras una
determinada condición sea cierta o falsa. Su equivalente en lenguaje convencional es:
Do ejecutar subdiagrama
While condición TRUE (or FALSE) (aunque esta estructura es más similar al comando
Repeat-Until, ya que se repite como mínimo una vez, independientemente del estado
de la condición).
Al igual que For Loop contiene dos terminales:
1. Terminal condicional: a él conectaremos la condición que hará que se ejecute el
subdiagrama. LabVIEW comprobará el estado de este terminal al final de cada
iteración. Podemos configurar este terminal de manera que pare si la condición es
cierta (Stop if True ¡H) o bien que pare si la condición es falsa (Continué if True

LUNES 08 DE MAYO DE 2017 8


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

2. Terminal de iteración: indica el número de veces que se ha ejecutado el bucle y que,


como mínimo, siempre será una (i = 0).

6.3 CASE

Usaremos la estructura Case (figura 4.7) en aquellas situaciones en las que el número
de alternativas disponibles sean dos o más. Según qué valor tome el selector dentro
de los n valores posibles, se ejecutará en correspondencia uno de los n subdiagramas.
La estructura Case consta de un terminal llamado selector y un conjunto de
subdiagramas, cada uno de los cuales está dentro de un case o suceso y etiquetado
por un identificador del mismo tipo que el selector.

En cualquier caso siempre habremos de cubrir todo el rango de posibles valores, y al


menos habrá de haber un case por defecto, el cual se ejecutará en caso de que el
selector no corresponda a ninguno de los previstos.
Case no cuenta con los registros de desplazamiento de las estructuras iterativas pero
sí podemos crear los túneles para sacar o introducir datos. Si un case o suceso
proporciona un dato de salida a una determinada variable será necesario que todos
los demás también lo hagan; si no ocurre de esta manera será imposible ejecutar el
programa.
6.4 ESTRUCTURAS SEQUENCE

LUNES 08 DE MAYO DE 2017 9


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Esta estructura no tiene su homóloga en los diferentes lenguajes convencionales, ya


que en éstos las sentencias se ejecutan en el orden de aparición pero, como ya
sabemos, en LabVIEW una función se ejecuta cuando tiene disponible todos los datos
de entrada. Se produce de esta manera una dependencia de datos que hace que la
función que recibe un dato directa o indirectamente de otra se ejecute siempre
después, creándose un flujo de programa.
Pero hay ocasiones en que esta dependencia de datos no existe y es necesario que
un subdiagrama se ejecute antes que otro; es en estos casos cuando usaremos la
estructura Sequence para forzar un determinado flujo de datos. Cada subdiagrama
estará contenido en un frame o marco, y éstos se ejecutarán en orden de aparición:
primero el frame O o marco O, después el frame 1 y así, sucesivamente, hasta el
último.
6.5 FORMULA NODE

Formula Node o Nodo de Fórmula es una función de características similares a las


estructuras vistas anteriormente, disponible en la paleta Structures del menú

LUNES 08 DE MAYO DE 2017 10


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Functions, pero que, en lugar de contener un subdiagrama, contiene una o más


fórmulas separadas por un punto y coma. Usaremos Formula Node cuando queramos
ejecutar fórmulas matemáticas que serían complicadas de crear utilizando las
diferentes herramientas matemáticas que LabVIEW incorpora en sus librerías.
Una vez escrita la fórmula en el interior del rectángulo sólo tendremos que añadir los
terminales que harán la función de variables de entrada o de salida; para ello
desplegaremos el menú Pop-up de la estructura y ejecutaremos el comando Add Input
(Añadir Entrada) o Add Output (Añadir Salida).

7. ARRAYS
Un array es una colección de datos, todos ellos del mismo
tipo. Puede tener una o más dimensiones y hasta 2 31
elementos por dimensión, según la memoria disponible.
Un array puede ser de cualquier tipo excepto otro array,
chart o graph. La creación de arrays de control o indicadores
en el panel frontal se hace mediante la combinación del
icono Array de la paleta Array & Cluster del menú Controls,
con un objeto de datos que puede ser numérico, booleano o
string.
En la imagen que sigue se presenta un array vacío. Para crear un array hemos de
llevar un objeto dentro de la Ventana de Objetos o situarlo directamente usando el
menú Pop-up.

Se pueden añadir dimensiones a un array control o indicador de dos maneras:


desplegando el menú del Index Display (Visualizador del índice) y, a continuación,
escogiendo la opción Add Dimensión (Añadir dimensión); o situando el cursor sobre el
Index Display y arrastrando hacia abajo tantas dimensiones como queramos.

LUNES 08 DE MAYO DE 2017 11


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Podemos indexar e introducir elementos dentro de los arrays en los bordes de las
estructuras For Loop y White Loop de manera automática. Esto es lo que se llama
auto-indexing (autoindexado). La imagen inferior presenta un ejemplo de ello: cada
iteración crea el siguiente elemento del array; una vez que se ha completado, el array
pasa al indicador. Obsérvese que el cable se hace más grueso al cambiar a array.

Para anular el auto-indexing hemos de desplegar el menú sobre el túnel de salida y


escoger la opción Disable Indexing (Deshabílitar indexado). Al desactivarlo, sólo el
último valor pasará a través de túnel.

8. APLICACIÓN PRÁCTICA
Nuestra aplicación consiste principalmente en encender 12 leds de forma correlativa,
estando en cada momento únicamente un solo led encendido y pudiendo escoger
entre empezar a encenderlos por la izquierda o por la derecha.
Vamos a dividir nuestra aplicación en diferentes objetivos, de forma que en cada una
utilicemos alguna de las estructuras vistas en los apartados anteriores.
De esta manera, además, dividiremos nuestro problema en otros más sencillos y, por
tanto, más fáciles de programar. Lo primero que haremos será crear en el panel frontal
los siguientes controles:
• Un array booleano con 12 leds cuadrados visibles y nombre de la etiqueta «array
booleano».

LUNES 08 DE MAYO DE 2017 12


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

• Un botón de stop rectangular.

• Un menú Ring de nombre «menú».

0: de izquierda a derecha.
1: de derecha a izquierda.

LUNES 08 DE MAYO DE 2017 13


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Nota:
Para realizar esta acción es necesario dar clic derecho sobre ring-menú y seleccionar
la opción <<Edit ítems>>
• Un interruptor vertical.

Objetivo 1:
Crear un array booleano de 12 posiciones de forma que cada una contenga el estado
del led (apagado = false, encendido = true), cuya posición coincidirá con el índice del
array. Para encender todos los leds será necesario repetir el proceso 12 veces.
Nota: Para esto es necesario introducir un for loop, dos constantes con el número 12,
un initialize array y dos replace array subset, un decremento, dos false y un true.
Finalmente conectar de la siguiente manera. Ycorrerlo una vez que la flecha de run
este completa.

LUNES 08 DE MAYO DE 2017 14


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Objetivo 2:
Como habremos podido comprobar, los leds se encienden tan rápido que es
prácticamente imposible darse cuenta. Para poderlo apreciar mejor, después de
encender cada led introduciremos un tiempo de espera mediante la estructura
Sequence.
Nota: para esto se necesita agregar una estructura sequence encima de el for loop y
seleccionar la cara 1 [0..1] dentro de esta agregar un wait (ms) milisegundos y una
constante 100. Y se ejecuta el Vis.

LUNES 08 DE MAYO DE 2017 15


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

De esta manera se puede apreciar mejor el encendido de los leds.

Objetivo 3:

Podemos apreciar cómo se van encendiendo los leds de izquierda a derecha, pero
cuando se llega al último led el programa se detiene y a nosotros nos interesa que el
proceso se repita hasta que sea abortado mediante un control disponible en el propio
programa. Para ello utilizaremos la estructura While y un control booleano (Stop), que
nos determinará la condición de repetición.

LUNES 08 DE MAYO DE 2017 16


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Objetivo 4:

Ahora tan sólo nos queda hacer que los leds también se puedan encender de derecha
a izquierda. Introduciremos un case dentro del frame O al que conectaremos el menú
del panel frontal que nos determinará hacia qué lado habremos de hacer el barrido.

LUNES 08 DE MAYO DE 2017 17


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Ya habríamos terminado el problema inicialmente planteado, pero lo podríamos


complicar un poco más haciendo que los leds puedan rotar simultáneamente de
izquierda a derecha, e inmediatamente después de derecha a izquierda. Para ello
añadiremos una opción más en el menú Ring (2: izquierda-derecha-izquierda). En el
nuevo case creado encenderemos el primer led de la izquierda y haremos que la
variable menú tome el valor O de forma que se enciendan los leds de izquierda a
derecha. Una vez hecho esto será necesario que la variable Menú cambie su valor a
1 para que se enciendan los leds de derecha a izquierda y así sucesivamente. Pero
nos hará falta una variable de control que nos indique cuándo estamos encendiéndolos
en una dirección determinada, porque así fue la opción escogida (y en ese caso no
hay que alterar el valor de la variable menú) y cuándo los encendemos porque venimos
del case dos, siendo necesario alterar el valor de la variable menú. Todo esto tan difícil
de explicar se consigue utilizando una variable global como Control y una variable local
que haga referencia a la variable Menú.
Fuera de la estructura Whíle será necesario inicializar las variables utilizadas para que
en posteriores ejecuciones del programa no se produzcan situaciones extrañas, como
podría ser que la variable Control valiese 1 mientras que la variable local menú valiese
O, lo que provocaría que al empezar la ejecución del VI los leds comenzaran a rotar
en ambas direcciones mientras que, según el menú, sólo deberían rotar en una.
Nosotros hemos escogido un valor inicial de O para la variable global Control y un valor
de 1 para la variable local Menú, aunque cualquier otra combinación coherente hubiese
sido válida.

LUNES 08 DE MAYO DE 2017 18


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Hemos conseguido nuestro nuevo objetivo, pero la única manera de hacer que los leds
dejen de rotar en ambas direcciones consecutivamente es pulsar el botón STOP, ya
que, aunque en el menú queramos cambiar la dirección de rotación, no podremos
porque la variable Control ya no se vuelve a poner a O hasta que se reinicie el
programa. Para devolver el control al menú podemos crear un interruptor booleano en
el panel frontal que únicamente se habilite cuando entremos en el case 2 y que cuando
sea pulsado cambie el valor de la variable Control a O para devolver el dominio de la
rotación al menú. Para habilitar o deshabilitar un control utilizaremos los property
nodes. El case 2 quedará entonces como sigue:
Esta estructura irá colocada fuera del FOR pero dentro del WHILE y se utiliza para
detectar cuándo entramos en el Case 2. Si el valor de la variable CONTROL es igual
a cero querrá decir que no hemos entrado, pero si es uno sí que habremos entrado y
entonces hemos de cambiar el valor de la variable local Menú. Primero
comprobaremos el valor de dicha variable y si es cero la pondremos a uno, y si es uno
la pondremos a cero, para asegurar la rotación alternativa de los leds.
Dentro del While pero fuera del For añadiremos un case que compruebe si hemos
pulsado el interruptor y, si es así, que ponga la variable global Control a 0; además,
entonces habrá que habilitar de nuevo el menú, deshabilitar el interruptor y ponerlo en
off. Para hacer esto aprovecharemos el case True de la estructura que comprueba el
valor de la variable Control:

Ya tan sólo faltaría inicializar la posición del interruptor, deshabilitarlo y habilitar el


menú al comienzo de cada ejecución del programa:
La inicialización de las variables es algo que también se puede hacer desde la opción
Data Operations del menú desplegable de cada control o indicador a través de la
opción Make Current Valué Default.
Así es como finalmente queda nuestro Virtual Instruments.

LUNES 08 DE MAYO DE 2017 19


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Case que tota los leds de izquierda a derecha.

Case que tota los leds de derecha a izquierda.

LUNES 08 DE MAYO DE 2017 20


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

APLICACIÓN
(2do ejercicio)
Control de nivel de un tanque

LUNES 08 DE MAYO DE 2017 21


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 22


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 23


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 24


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

Click en Digital Display

LUNES 08 DE MAYO DE 2017 25


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 26


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 27


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 28


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 29


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 30


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 31


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 32


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 33


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 34


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 35


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 36


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 37


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 38


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

LUNES 08 DE MAYO DE 2017 39


COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017

9. BIBLIOGRAFÍA

 http://www.ni.com/labview/why/esa/

 https://estuelectronic.wordpress.com/2012/08/06/que-es-y-para-que-sirve-
labview/

 http://sandralabview.blogspot.mx/2008/06/definicin.html

LUNES 08 DE MAYO DE 2017 40