Lab View

COMPUTACIÓN APLICADA A LA INGENIERÍA | LUNES 08 DE MAYO DE 2017 TECNOLÓGICO NACIONAL DE MÉXICO TAREA LUNES 08 DE MAYO

Views 631 Downloads 8 File size 3MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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 • 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-sirvelabview/  http://sandralabview.blogspot.mx/2008/06/definicin.html

LUNES 08 DE MAYO DE 2017

40