programación básica en labview - pagina · pdf file6. llene el control menu ring...

37
CENTRO REGIONAL DE OPTIMIZACIÓN Y DESARROLLO DE EQUIPO CHIHUAHUA PROGRAMACIÓN BÁSICA EN LABVIEW Chihuahua, Chih., agosto del 2004 Centro Regional de Optimización y Desarrollo de Equipo Chihuahua

Upload: duongdieu

Post on 06-Feb-2018

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

CENTRO REGIONAL DE OPTIMIZACIÓN Y DESARROLLO DE

EQUIPO CHIHUAHUA

PROGRAMACIÓN BÁSICA EN LABVIEW

Chihuahua, Chih., agosto del 2004

Centro Regional de Optimización y Desarrollo de Equipo Chihuahua

Page 2: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

PROGRAMACIÓN BÁSICA EN LABVIEW Objetivo. Conocer el ambiente gráfico de programación LabVIEW para generar aplicaciones generales y facilitar el proceso de adquisición de datos. Reforzar el conocimiento de estructuras de control, manejo de arreglos, cadenas y archivos. Conocer métodos y propiedades de objetos gráficos.

Centro Regional de Optimización y Desarrollo de Equipo Chihuahua

Page 3: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Tabla de contenido

PRÁCTICAS DE LABVIEW.......................................................................................................................... 1 1. INTRODUCCIÓN. .......................................................................................................................................... 1

¿Qué es LabVIEW? .................................................................................................................................... 1 Instrumentos Virtuales................................................................................................................................ 1 Ambiente de LabVIEW ............................................................................................................................... 2

2. CONSTRUCCIÓN DEL PANEL FRONTAL. ........................................................................................................ 6 Mostrar y ocultar elementos opcionales..................................................................................................... 6 Cambiar controles por indicadores y viceversa. ........................................................................................ 6 Pintar y redimensionar Objetos. ................................................................................................................ 6 Utilización de controles.............................................................................................................................. 7

3. CONSTRUCCIÓN DEL DIAGRAMA DE BLOQUES. ............................................................................................ 8 Nodos del diagrama de bloques. ................................................................................................................ 8 Recomendaciones. ...................................................................................................................................... 9

4. EJECUTAR Y DEPURAR VI.......................................................................................................................... 10 5. ESTRUCTURAS CASE Y CÍCLICAS. ............................................................................................................ 11

Estructura CASE. ..................................................................................................................................... 11 Ciclo FOR................................................................................................................................................. 12 Ciclo WHILE. ........................................................................................................................................... 12 Estructura Secuencial............................................................................................................................... 13

6. CADENAS, ARREGLOS Y CLUSTERS........................................................................................................... 15 Strings....................................................................................................................................................... 15 Arreglos. ................................................................................................................................................... 16 Clusters..................................................................................................................................................... 17

7. VARIABLES LOCALES Y GLOBALES........................................................................................................... 18 Variables Locales. .................................................................................................................................... 18 Variables Globales. .................................................................................................................................. 18

8. GRAPHS Y CHARTS.................................................................................................................................... 20 Waveform.................................................................................................................................................. 21 XY Graphs. ............................................................................................................................................... 23 Digital Graph. .......................................................................................................................................... 23 Intensity Graph......................................................................................................................................... 24

9. ARCHIVOS. ................................................................................................................................................ 24 Principios. ................................................................................................................................................ 24 Formato. ................................................................................................................................................... 24

10. MENÚ. ..................................................................................................................................................... 26 Crear Menús............................................................................................................................................. 26 Manejo de la selección. ............................................................................................................................ 26

11. PUERTO SERIE. ........................................................................................................................................ 27 Panorama General. .................................................................................................................................. 27 Aspectos físicos......................................................................................................................................... 27

APÉNDICE A.................................................................................................................................................. 30 Instalación del software. .......................................................................................................................... 30 Instalación del hardware PCI-6503. ........................................................................................................ 30 Configuración........................................................................................................................................... 30 Conexiones de señal. ................................................................................................................................ 30

REFERENCIAS. ............................................................................................................................................... 32 AUTOR. ......................................................................................................................................................... 33

Centro Regional de Optimización y Desarrollo de Equipo Chihuahua

Page 4: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

PRÁCTICAS DE LABVIEW

1. Introducción.

¿Qué es LabVIEW? LabVIEW (Laboratory Virtual Instrument Engineering Workbench) es un ambiente de desarrollo basado en la programación gráfica. Utiliza terminología, iconos, e ideas familiares a técnicos, científicos e ingenieros, y se basa en símbolos gráficos en lugar de lenguaje textual para describir acciones de programación. LabVIEW está integrado completamente en las comunicaciones con el hardware tal como GPIB, RS-232 y DAQ. Además cuenta con librerías para el manejo de redes TCP/IP y ActiveX.

Instrumentos Virtuales. Los archivos básicos que se pueden crear con LabVIEW son llamados Instrumentos Virtuales o VIs por sus siglas en inglés. Cada VI consiste de dos partes principales el panel frontal y el diagrama de bloques.

Panel frontal.

Programación Básica en LabVIEW 1

Page 5: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Diagrama de bloques.

Otra parte importante es el icono y conector, el cual es el cuadro situado en la parte superior derecha, y es utilizado para identificación gráfica y utilización como sub VI dentro de otro VI a través de sus conectores.

Ambiente de LabVIEW

Menú.

Programación Básica en LabVIEW 2

Page 6: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Paleta de Controles.

Paleta de funciones.

Programación Básica en LabVIEW 3

Page 7: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Flujo. La ejecución de instrucciones no fluye de arriba hacia abajo como en la programación textual tradicional, sino que fluye paralelamente entre los componentes gráficos.

Herramientas.

Terminales. Las terminales representan el tipo de dato del control o indicador. Pueden ser Control o Indicador Tipo de dato Color

SGL Punto flotante de simple precisión Naranja DBL Punto flotante de precisión doble Naranja EXT Punto flotante de precisión extendida Naranja CSG Punto flotante complejo de simple precisión Naranja CDB Punto flotante complejo de doble precisión Naranja CXT Punto flotante complejo de precisión

extendida Naranja

I8 Entero de 8 bits con signo Azul I16 Entero de 16 bits con signo Azul I32 Entero de 32 bits con signo Azul U8 Entero de 8 bits sin signo Azul

U16 Entero de 16 bits sin signo Azul U32 Entero de 32 bits sin signo Azul < > Tipo Enumerado Azul TF Lógico Verde Abc String Rosa [ ] Arreglo Variante

Cluster Café o

Programación Básica en LabVIEW 4

Page 8: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

rosa Ruta Aqua Waveform Variante

I/O Nombre de I/O Morado

Actividades. 1. Abra y ejecute Ej01.VI 2. Observe el panel frontal y el diagrama de bloques. 3. Ejecute el VI. 4. Cierre el VI. 5. Abra y ejecute Ej02.VI 6. Observe la ayuda contextual del diagrama de bloques. 7. Observe la ayuda contextual del panel frontal en diseño y en ejecución. 8. Cierre el VI.

Programación Básica en LabVIEW 5

Page 9: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

2. Construcción del panel frontal. Generalmente el panel frontal será diseñado primero, después se procederá a la construcción del diagrama de bloques, el cual interactuará y ejecutará funciones sobre los objetos puestos en el panel frontal.

Mostrar y ocultar elementos opcionales. Los controles e indicadores del panel frontal tienen elementos opcionales que pueden estar ocultos o estar siendo mostrados.

Actividades. 1. Abra el VI Ej03.VI 2. Oculte los elementos opcionales del GraphXY. 3. Muestre todos los elementos opcionales del Waveform chart. 4. Observe qué elementos son opcionales para Numeric.

Cambiar controles por indicadores y viceversa. LabVIEW tiene elementos que comúnmente se utilizan como indicadores o bien como controles, sin embargo, pueden ser modificados para funcionar de manera personalizada y no sólo la determinada por LabVIEW.

Actividades. 1. Agregue un termómetro al VI Ej03.VI 2. Cambie el control numérico por indicador numérico. 3. Cambie el termómetro por control. 4. Alambre el termómetro y el indicador numérico. 5. Ejecute continuamente el programa. 6. Aborte. 7. Cierre el VI.

Pintar y redimensionar Objetos. Usted puede personalizar los objetos del panel frontal y del diagrama de bloques. Una manera de hacerlo es aplicar color sobre ellos. No todos los objetos pueden cambiar de color. Además puede redimensionar el objeto sin perder sus propiedades. La escala numérica puede ser modificada también.

Actividades. 1. Abra el EJ04.VI. 2. Haga una réplica en un VI nuevo. 3. Compare ambos VI. 4. Cierre los VI.

Programación Básica en LabVIEW 6

Page 10: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Utilización de controles.

Actividades. Ej05

1. Abra un ejercicio nuevo. 2. Agregue dos controles Vertical Pointer Slide. 3. Agregue un control Knob. 4. Observe las terminales en el diagrama de bloques. 5. Agregue un slider en cualquier control slide. (Parte blanca del control). 6. Observe que la terminal cambio. 7. Cargue el objeto Cluster/IUnbundle y alámbrelo con el cluster. 8. Convierta los controles DBL a indicadores. 9. Alambre los indicadores al objeto Unbundle. 10. Agregue un indicador Gauge y alámbrelo directamente al cluster. 11. Agregue una aguja al indicador. 12. Cambie de color la aguja. 13. Alambre nuevamente. 14. Ejecute el programa continuamente. 15. Aborte y cierre el VI.

Ej06

1. Abra un ejercicio nuevo. 2. Agregue un control Menu Ring de Ring & Enum. 3. Agregue un Indicador numérico de Digital Indicator/ Numeric 4. Agregue un Indicador string de String & Path. 5. Cambie la terminal DBL a U16. 6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la

lista. 7. Alambre las terminales U16. 8. Cree un Property Node del control Ring, seleccione el arreglo de cadenas. 9. Seleccione el objeto Index Array de Array. 10. Alambre. 11. Ejecute continuamente. 12. Aborte, grabe y cierre el VI.

Ej06b

1. Abra el ejercicio anterior. 2. Haga lo mismo que el ejercicio anterior reemplazando el Menu Ring por un Enum. 3. Cree un indicador tipo ENUM y alámbrelo con el control ENUM.

Programación Básica en LabVIEW 7

Page 11: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

3. Construcción del diagrama de bloques. Una vez que se construyó el panel frontal, puede agregar código utilizando representaciones gráficas de funciones para controlar los objetos del panel frontal de la forma en que se ha hecho a través de las actividades. El diagrama de bloques contiene este código fuente gráfico. Los objetos del panel frontal aparecen como terminales en el diagrama de bloques. Al dar doble clic en el la terminal se ilumina el control o indicador correspondiente en el panel frontal. No puede borrar una terminal del diagrama de bloques. La terminal desaparece sólo después de borrar su objeto correspondiente en el panel frontal. Las terminales son puertos de entrada y de salida que intercambian información entre el panel frontal y el diagrama de bloques. Los datos que se introducen en los controles del panel frontal se introducen al diagrama a través de las terminales. Cuando el VI termina su ejecución, los datos de salida fluyen a las terminales de indicadores, si existen, y aparecen en los indicadores del panel frontal.

Constantes. Las constantes son terminales en un diagrama de bloque que dotan de datos de valor fijo al diagrama de bloques. Las constantes universales son constantes con valores fijos tal como pi e infinito. Las constantes definidas por el usuario son constantes que se definen y editan antes de ejecutar el VI. Las constantes pueden ser etiquetadas.

Nodos del diagrama de bloques. Los nodos son objetos en el diagrama de bloques que tienen entradas y/o salidas y ejecutan operaciones cuando un VI está siendo ejecutado. Son análogos a las declaraciones, operadores, funciones y subrutinas en la programación basada en texto.

• Funciones. Elementos de ejecución comparables a un operador, función o declaración. • Sub VI. VI utilizados en un diagrama de bloque de otro VI, comparado a subrutinas. • Estructuras. Elementos de control de proceso, tal como estructuras de secuencia,

estructuras CASE y ciclos. • Nodos fórmula. Estructuras redimensionables para insertar ecuaciones directamente a

diagrama de bloques. • Nodos de propiedad. Cambia o muestra propiedades de una clase. • Nodos de invocación. Ejecuta métodos de una clase. • Nodos de Interfaz de código. Llamadas de código de lenguajes de programación basada

en texto. Las funciones son los elementos esenciales de operación de LabVIEW. Los iconos de las funciones tienen fondo amarillo. No tienen paneles frontales o diagramas de bloques pero tienen conectores. También pueden tener fondo blanco y se refieren a funciones de adquisición de datos, de control de instrumentos y de comunicación. Existen funciones tales como numéricas, lógicas, comparativas y de manejo de cadena, arreglos, cluster, hora y archivo. Después de construir un VI, construya el conector para poder utilizar un VI como un subVI.

Programación Básica en LabVIEW 8

Page 12: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Alambrado. Puede transferir datos entre objetos de diagrama de bloque a través de cables. Cada cable tiene una sola fuente de datos, pero puede ser alambrada a muchos VI y funciones que lean datos. Los cables tienen diferentes colores, estilos y grosores dependiendo de los tipos de datos. Un cable roto aparece como una línea punteada. Puede alambrar terminales vertical u horizontalmente dependiendo de la dirección en la cual primero movió la herramienta alambradora. El cable se conecta al centro de la terminal, independientemente de donde hizo clic. Después de que hizo clic en la terminal, puede cambiar la dirección al presiona la barra espaciadora.

Conversión automática. Cuando se alambran dos tipos de datos diferentes aparece un punto indicando una conversión automática de tipos. Ésta aparece donde la conversión toma lugar.

Flujo. LabVIEW sigue el modelo de ejecución del flujo de datos. Un nodo se ejecuta cuando todas sus entradas están disponibles. Cuando un nodo completa su ejecución, abastece datos a sus terminales de salida y pasa los datos de salida al siguiente nodo en la ruta de flujo de datos. Un nodo que recibe datos de otro nodo siempre se ejecutará después que el primer nodo termine su ejecución. Los nodos no interconectados se ejecutarán en cualquier orden. Sin embargo se recomienda usar un modelo izquierda a derecha y de arriba hacia abajo, aunque no debe asumirse de esa forma la ejecución.

Recomendaciones.

• Utilice un formato de izquierda a derecha y de arriba hacia abajo. Aunque las posiciones de los elementos no determinan el orden de ejecución, alambre de este modo para tener un diagrama de bloques organizado y fácil de entender. Sólo los cables y estructuras determinan el orden de ejecución.

• Evite crear diagramas de bloque que ocupen más de una o dos pantallas. Si un diagrama de bloques es más grande y complejo, puede ser difícil de entender o depurar.

• Observe si puede reusar algunos componentes del diagrama de bloques en otros VI o si una sección del bloque puede ser vista como un componente lógico. Si es así, divida el diagrama de bloques en subVI de tareas específicas.

• Mejore la apariencia del diagrama de bloques al alambrar efectivamente. Una organización pobre no produce errores, pero puede hacer al diagrama difícil de leer o depurar, o hacer que el VI parezca hacer cosas que no hace.

• Evite alambrar en los bordes de estructuras o empalmar objetos debido a que LabVIEW puede esconder algunos segmentos de cable.

• Evite colocar objetos encima de cables. Los cables conectan solo aquellos objetos donde hace clic. Colocar una terminal o icono arriba de un cable lo hace parecer que existe una conexión cuando no.

• Utilice el pincel para pintar el área de trabajo del diagrama de bloques.

Programación Básica en LabVIEW 9

Page 13: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

4. Ejecutar y depurar VI. Para ejecutar un VI, debe alambrar todos los subVI, funciones y estructuras con los tipos de datos de las terminales esperadas. Puede configurar la manera de ejecución de un VI para identificar problemas.

Puede ejecutar un VI al presionar este botón cuando aparece como una flecha blanca sólida. Y puede utilizar este VI como un SubVI. El VI se detiene cuando el VI completa su flujo de datos.

Al presionar este botón se ejecuta continuamente hasta que se presione el botón de STOP.

Botón de STOP.

Pausa/ Continúa

Botón de ejecución para observar una animación de la ejecución del diagrama. Muestra los movimientos de los datos de un nodo a otro utilizando burbujas que se mueven a lo largo de los cables. Se utiliza a la par de los botones de Single stepping.

Ejecución Paso a Paso dentro de sub VI.

Ejecución Paso a paso con ejecución rápida de Sub VI.

Salir al siguiente sub VI.

Probe. Se encuentra en el menú de herramientas y sirve para mostrar el valor de los datos en tiempo de ejecución.

Punto de ruptura. Se encuentra en el menú de herramientas y se utiliza para colocar un punto de ruptura en un VI, nodo o cable en el diagrama de bloques y detener la ejecución en ese lugar. Cuando se pone un punto de ruptura en un cable, la ejecución se detiene después de que los datos pasan a través de él.

Programación Básica en LabVIEW 10

Page 14: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

5. Estructuras CASE y cíclicas. Las estructuras son representaciones gráficas de los ciclos y las declaraciones CASE de los lenguajes basados en programación textual. Utilice estructuras en el diagrama de bloques para repetir bloques de código y ejecutar código condicionalmente o en un orden específico.

Estructura CASE. Una estructura case tiene dos o más subdiagramas, o casos. Sólo un diagrama es visible a la vez, y la estructura ejecuta sólo un caso a la vez. La estructura ejecuta un solo subdiagrama dependiendo del valor de entrada pasado a la estructura. El identificador de selección de caso en la parte superior de la estructura contiene el identificador en el centro y botones a los lados. Utilice los botones para navegar a través de los casos disponibles. Alambre un valor a la terminal selectora, el cual determinará qué caso ejecutar. Puede alambrar valores enteros, lógicos, de cadena o enumerados. La terminal está a la izquierda de la estructura. El caso default se ejecuta cuando no existe identificador correspondiente al valor dado a la terminal selectora. Se pueden especificar valores solos, listas o rangos de valor para seleccionar el caso. Para las listas utilice comas para separar valores. Para especificar rangos utilice dos puntos. Además puede combinar listas y rangos. Si cambia el tipo de datos del selector de terminal, la estructura automáticamente cambia los valores al nuevo tipo de datos cuando es posible. Puede crear múltiples túneles en una estructura case. Los túneles de entrada están disponibles para todos los casos. Sin embargo debe definir una salida por cada caso.

Actividades. Ej07. Después de realizar un análisis de calidad en un conjunto de piezas terminadas y rotuladas, se encontró que 1 de cada 7 fallaba y que la falla era periódica. Se enumeraron y se encontró la relación que las piezas con número de pieza múltiplo de 7 fallaban. Simule un lector de código de barras mediante un control numérico y si el número de pieza es múltiplo de 7 encienda una alarma. Además muestre el rótulo “Passed” si no es múltiplo de 7 o “Failure” si lo es. Ej08. En la empresa H-OIL se fabrican cuatro tipos de aceite cada uno de los cuales tiene un costo de fabricación y envasado en dólares: Grado SAE 5W de 3, 10W de 4, 20W de 7 y 30W de 9 por envases de 5 galones. Si el cliente pide entre 1 – 99 envases de 5 galones, el costo de venta es del 300% , si solicitan 100-499 el costo es del 250% y si se solicitan más de 500 el costo es del 200%. Simule el pedido de un solo artículo donde el cliente indicará el tipo de aceite y cantidad que desea adquirir. El software indicará el monto que el cliente deberá pagar. Cree en el panel frontal un control ENUM con los tipos de aceite y un control numérico entero sin signo para la cantidad solicitada. Muestre en un indicador numérico el monto que se cobrará al cliente.

Programación Básica en LabVIEW 11

Page 15: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Ej08b. Modifique el ejercicio anterior para permitir el pedido de hasta cuatro artículos. Ej09. Se desea controlar la temperatura de un dispositivo cuya presión oscila entre los 1000 y 10000 PSI. Cuando la presión esta entre 1000 y 1999 se deberá poner el setpoint del control de temperatura a 60 ºC; cuando esté entre 2000 y 2999, a 55 º; entre 3000 y 3499 a 58º; entre 3500 y 4999 a 55º; entre 5000-7999, a 58º; entre 8000 y 8999, a 40º; y si rebasa los 8999, a 30º. Si el medidor de presión tiene una lectura diferente al rango 1000 y 10000 que se active la alarma y ponga el setpoint del control de temperatura a 25ºC. Ilustre el ejemplo a través de un control gauge que al indicar la presión se muestre en un termómetro el setpoint del controlador.

Ciclo FOR. Ejecuta un subdiagrama un número finito de veces. El valor en la terminal N muestra cuántas veces se repetirá el subdiagrama. Si alambra un 0 a ésta no se ejecuta. La terminal iteradora, i, contiene la cantidad de iteraciones terminadas, la cual siempre empieza en cero. Durante la primer iteración devuelve un 0. Agregue shift registers para pasar datos de una iteración a la siguiente.

Actividades. Ej10 Muestre la sumatoria de los números comprendidos entre 10 y 20, incluyéndolos. Sum = 10+11+12+13+14+15+16+17+18+19+20 = 165. Ej11 Muestre la suma de los números impares comprendidos entre 1 y 100. Sum = 1+3+5+7+9+...+97+99 = 2500. Ej12 Indique si un número entero positivo provisto en el panel frontal es primo o no. Recuerde que los números primos sólo son divisibles de forma entera entre ellos mismos y el uno. Establézcalo como subVI. Ej13 Muestre la cantidad de números primos existentes entre 1 y 100. Utilice el subVI anterior. (26). Ej14 Se desea monitorear la temperatura de una caldera. Para conocer obtener una muestra se requiere promediar las lecturas de 10 sensores en puntos críticos. Se deben monitorear cada 100 ms. El tiempo de monitoreo total es de 20 segundos. Simule las entradas de los sensores con 10 generadores de números aleatorios. Una vez que tenga las 200 muestras obtenga su temperatura promedio, la desviación estándar y la cantidad de veces en que estuvieron las muestras entre 0.4 y 0.6.

Ciclo WHILE. Ejecuta un subdiagrama hasta que la terminal condicional recibe un valor lógico específico. El comportamiento por omisión es continúa si es verdadero, es decir, se detiene hasta que la terminal recibe un valor de falso. Se puede cambiar el comportamiento haciendo clic derecho y

Programación Básica en LabVIEW 12

Page 16: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

seleccionar Stop if True. Cuando una terminal está en detiene si verdadero, el ciclo se ejecuta hasta que la terminal condicional recibe un valor verdadero. Debido a que el VI verifica la condición terminal al final de cada iteración, el ciclo WHILE se ejecuta al menos una vez. Puede agregar shift register. Si coloca la terminal lógica fuera del ciclo WHILE puede causar un ciclo infinito, por lo que es conveniente que dicha terminal se coloque dentro del ciclo.

Actividades. Ej15. Despliegue en un Waveform Chart números aleatorios comprendidos entre 0 y 10 cada 100 ms. Detenga el programa con un interruptor. El valor por omisión del interruptor es ON. Optativo. Optimice el diagrama de la función EsPrimo (Ej12) para que solamente haga máximo una división entera con residuo 0 por número a verificar. Ej16. Cree un subVI que simule la llegada de una pieza determinada. Entrada: Nada. Salida: 0.- Peón, 1.- Caballo, 2.- Alfil, 3.-Torre. El modelo del fenómeno se puede expresar como: Residuo de Random*10/4. Ej17. Se desea cumplir con la siguiente orden: 10 peones, 5 caballos, 3 alfiles, 5 torres. Utilice el VI anterior para simular la llegada de las piezas y cuando complete la orden detenga el proceso. Habrá excedentes.

Estructura Secuencial. Una estructura secuencial contiene uno o más subdiagramas, o cuadros, que se ejecutan en orden secuencial. Una estructura secuencial ejecuta el cuadro 0, luego el 1, después el 2, hasta que el último cuadro se ejecuta. Esta estructura no termina la ejecución ni regresa ningún dato hasta que el último cuadro es ejecutado. Utilice la estructura Secuencial para controlar el orden de ejecución cuando la dependencia natural de datos no exista. Un nodo que recibe datos de otro depende de otro nodo debido a los datos y siempre se ejecuta después de que el otro nodo completa la ejecución. Dentro de cada marco de una estructura secuencial, como en el resto del diagrama de bloques, la dependencia de datos determina el orden de ejecución de los nodos. Los túneles de estas estructuras pueden tener sólo una fuente de datos, a diferencia de las estructuras CASE. La salida puede emitirse de cualquier cuadro, pero el dato llegará hasta cuando se ejecute el último cuadro. Al igual que las estructuras CASE, los túneles de datos de entrada están disponibles a todos los cuadros. Para pasar datos de un cuadro a otro cuadro subsiguiente, utilice una terminal de secuencia local.

Actividades. Ej18. En una conferencia, un expositor conoce su tiempo disponible con el color de la luz de un foco. Cuando esta en sus primeros 30 minutos la luz está en verde, en los siguientes 10 minutos la luz es amarilla para indicarle que comience a dar conclusiones y termine su presentación. Después de ese tiempo la luz permanece en rojo en señal que ha excedido su tiempo y que debe terminar la

Programación Básica en LabVIEW 13

Page 17: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

exposición. Diseñe un programa que ilustre este comportamiento y cambie la unidad de tiempo por décimas de segundo. Optativo. Ilustre el comportamiento de dos semáforos en un crucero.

Programación Básica en LabVIEW 14

Page 18: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

6. Cadenas, Arreglos y Clusters. Utilice cadenas, arreglos y cluster para agrupar datos. Las cadenas agrupan secuencia de caracteres ASCII. Los arreglos agrupan elementos del mismo tipo. Clusters agrupan elementos de tipos mixtos.

Strings. Una cadena es una secuencia de caracteres ASCII visibles o no visibles. Algunas de las aplicaciones más comunes son:

• Crear mensajes simples de texto. • Pasar datos numéricos como caracteres a instrumentos y convertirlos a cadenas de

números. • Almacenar datos numéricos a disco. Para almacenar números en un archivo ASCII, debe

primero convertirlos a cadenas. • Instruir o avisar al usuario con cuadros de diálogo.

Tipos de display. Tipo Descripción Mensaje Normal Despliega caracteres imprimibles utilizando

la fuente del control. Caracteres no imprimibles aparecen como cajas.

There are four display types. \ is a backslash.

‘\’ Códigos. Despliega códigos con backslash para todos los caracteres no imprimibles.

There\sare\sfour\sdisplay\st ypes.\n\\\sis\sa\sbackslash.

Password Despliega un asterisco por cada carácter incluyendo espacios

**************************** * *****************

Hexadecimal Despliega el valor de cada carácter en hex en lugar del carácter por si mismo.

5468 6572 6520 6172 6520 666F 7572 2064 6973 706C 6179 2074 7970 6573 2E0A 5C20 6973 2061 2062 6163 6B73 6C61 7368 2E

Actividades. Ej19. Un prototipo con comunicación serial requiere que se le envíe una cadena de comandos, sin embargo para aceptar cada carácter requiere que se le agregue un asterisco al final de cada uno de los caracteres, y para terminar el envío del comando mandar un ESC. Simule con una caja de texto el comando que se desea enviar y en un indicador de cadena exponga lo que el dispositivo recibiría. Ej20. Un dispositivo de mensajes japonés requiere que el mensaje venga escrito de derecha a izquierda. Simule con una caja de textos el mensaje deseado y en un indicador de cadena el mensaje invertido. Prepárelo para usarlo como subVI. Ej21.

Programación Básica en LabVIEW 15

Page 19: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Se cuenta con tres medidores que devuelven la medición en una cadena con cuatro decimales, se desea analizar los valores y enviar la medición máxima a un control que recibe, a su vez, una cadena con cuatro decimales.

Arreglos. Un arreglo consiste de elementos y dimensiones. Los elementos son los datos que forman el arreglo. La dimensión es la longitud, ancho o profundidad de un arreglo. Un arreglo puede tener una o más dimensiones y 2’147,483,647 elementos por dimensión, según la capacidad de memoria. Puede construir arreglos numéricos, lógicos, de ruta, cadena, formas de onda y clusters. Considere usar arreglos cuando trabaje con una colección de datos similares y cuando ejecute cálculos repetitivos. Los arreglos son ideales para almacenar datos que adquiera de formas de onda o datos generados en ciclos, donde cada iteración produce un elemento de un arreglo. No puede crear arreglos de arreglos. Sin embargo puede crear un arreglo de clusters donde cada cluster contiene uno o más arreglos.

Índices. Para localizar un elemento particular en un arreglo se requiere un índice por dimensión.

Restricciones. • No puede crear un arreglo de arreglos. Sin embargo, puede usar un arreglo

multidimensional o crear un arreglo de cluster donde cada cluster contiene uno o más arreglos.

• No puede crear un arreglo de Charts ni GRAPH.

Actividades. Ej22 Llene un arreglo con 10 múltiplos de 5 a partir de 1. Ej23 Llene un arreglo de 10x10 con las tablas de multiplicar del 1 al 10. Ej24. Llene un arreglo con los 15 valores de la siguiente función. y(n) = 3y(n-1) - 2y(n-2) + 5 y(0) = 1 y(1) = 2 y(2)=3*y1-2*y0+5=3*2-2*1+5= 9 y(3)=3*y2-2*y1+5=3*9-2*2+5= 28 Grafique exponencialmente. Optativo. Multi.VI Cree un subVI que tenga de entrada dos matrices y de salida la multiplicación correspondiente. Devuelva un T o F si fue o no posible, respectivamente.

Programación Básica en LabVIEW 16

Page 20: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Matriz A.

1 0 1 1 2 1 2 3 0

Matriz B.

2 1 2 4 3 3

C= AxB

5 4 9 1210 14

Ej25. Construya un waveform mediante un arreglo de 10 elementos aleatorios, un delta t de 1 y un t0=0. Muestre a través de un indicador. Observe la fecha de captura. Ahora modifique la entrada de t0 por la función Time&Dialog>Get Date/Time in Seconds y observe.

Clusters Los clusters agrupan elementos de diferentes tipos de datos, tal como un conjunto de alambres en un cable telefónico, donde cada alambre en el cable representa un elemento diferente del cluster. Agrupar diversos elementos de datos en cluster elimina el excesivo cableado en el diagrama de bloques. Aunque el cluster y los elementos del arreglo están ordenado, puede desagrupar todos los elementos del cluster en una exhibición en lugar de hacerlo elemento por elemento. Al igual que un arreglo, un cluster puede ser un control o bien un indicador, no puede ser una mezcla de ambos. Para alambrar cluster, ambos deben tener el mismo número de elementos y los elementos correspondientes, determinados por el orden del cluster, deben ser tipos de datos compatibles.

Actividades. Ej26 La información mínima concerniente de alumno para una escuela es la siguiente: Número de control como I32. Nombre como Cadena. Dirección como Cadena. Teléfono como Cadena. Inscrito como Lógico. Agrupe esta información en un cluster de control, captúrela y muéstrela a través de indicadores. Ej27 Haga el proceso inverso.

Programación Básica en LabVIEW 17

Page 21: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

7. Variables Locales y Globales. En LabVIEW, puede leer datos de o escribir datos al panel frontal utilizando terminales en el diagrama de bloques. Sin embargo, un objeto en el panel frontal tiene sólo una terminal en el diagrama de bloques, y su aplicación podría necesitar acceder a los datos de la terminal en más de una ocasión. Las variables locales y globales pasan información entre localidades en la aplicación que no se conectan con un alambre. Utilice variables locales para poder acceder objetos del panel frontal en más de una posición dentro del mismo VI. Utilice variables globales para acceder y pasar datos entre diferentes VI.

Variables Locales. Use variables locales para acceder objetos del panel frontal en más de un lugar en un solo VI y pase los datos entre las estructuras de bloques donde no puede conectar un cable. Con una variable local, puede escribir a o leer desde un control o indicador en el panel frontal. Escribir en una variable local es similar a pasar datos a cualquier otra terminal. Sin embargo, con una variable local puede escribir a, aún si es un control, o leer de, aún si es indicador. En efecto, con una variable local, puede acceder a un objeto del panel frontal como entrada y como salida.

Variables Globales. Utilice variables globales para acceder y pasar datos entre varios VI que se ejecutan simultáneamente. Las variables globales son objetos construidos en LabVIEW. Cuando crea una variable global, LabVIEW automáticamente crea un VI global especial, el cual tiene un panel frontal pero no tiene diagrama de bloques. Agregue controles e indicadores al panel frontal del VI global para definir sus tipos de datos. Este panel frontal es un contenedor de varios VI que pueden acceder datos. En el diagrama de bloques puede distinguir variables locales o globales de lectura de las de escritura de la misma manera en que distingue los controles de los indicadores. Una variable de lectura tiene un borde grueso similar al control. Una de escritura tiene un borde delgado similar al indicador.

Utilización de variables globales y locales. Las variables locales y globales son conceptos avanzados de LabVIEW. No son parte inherente en su modelo de ejecución. Los diagramas de bloques pueden llegar a ser difíciles de leer cuando utiliza variables locales o globales, así que úselas cuidadosamente. El mal uso de variables, en lugar de conexiones pueden conducir a un comportamiento inesperado en los VI. El sobreuso de variables locales y globales en lugar de alambrado disminuye el desempeño. Debido a que los VI siguen una ejecución según el flujo de datos, las variables locales y globales no tienen el mismo comportamiento que las usadas en lenguajes de programación basadas en texto. Una condición de “a ver cuál gana” ocurre cuando dos o más piezas de código que se ejecutan en paralelo cambian el valor del mismo recurso compartido, típicamente una variable local o global. Ejemplo.

Programación Básica en LabVIEW 18

Page 22: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

La salida de este VI depende el orden en que las operaciones se ejecuten. Debido a que no hay dependencia de datos entre las dos operaciones, no hay manera de determinar cuál corre primero. Para evitar estas condiciones de “a ver quien gana” no escriba a la misma variable a la que está leyendo.

Consideraciones de memoria al usar variables locales. Cuando crea subVI, crea un conector que describe como pasarán los datos al subVI. El conector no hace copias de búferes de datos al llamar VI. Las variables locales hacen copias de búferes de datos. Cuando se lee de una variable local, se crea un nuevo búfer para los datos de su control asociado. Si utiliza variables locales para transferir grandes cantidades de datos de un lugar del diagrama a otro, generalmente usará más memoria y, consecuentemente, tendrá una ejecución más lenta que si lo hiciera a través de un cable.

Consideraciones de memoria al usar variables globales. Cuando lee una variable global, LabVIEW crea una copia del dato almacenado en la variable global. Cuando manipula arreglos grandes y cadenas, el tiempo y la memoria requerida para manipular las variables globales puede ser considerable. El manipular variables globales es especialmente ineficiente cuando trata con arreglos, porque si modifica un solo elemento del arreglo, LabVIEW almacena el arreglo completamente. Si lee una variable global en diversos lugares de la aplicación, creará diversos búferes de memoria, lo cual es ineficiente y disminuye el desempeño.

Actividades. Ej28. Cree un control numérico y una variable local asociada a él. Dentro de un ciclo FOR alambre el iterador a la variable. Inicialice el valor del control numérico con un valor de 5 y alámbrelo a la N. Dentro del ciclo agregue un timer a 0.5 segundos. Observe que a pesar de ser control usted puede modificar su contenido a través de variables locales. Ej29 Cree dos variables globales, inicialícelas, modifique su valor en un subVI diferente al actual y lea el valor en el primero. Utilice una secuencia para establecer un orden seguro.

Programación Básica en LabVIEW 19

Page 23: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

8. Graphs y Charts. Utilice graphs y charts para desplegar datos en una forma gráfica. Los graph y chart difieren en la manera en que muestran y actualizan datos. VI con graphs usualmente ponen los datos en un arreglo y luego grafican la información. En contraste un chart agrega nuevos puntos a los que ya están en el diagrama. En un chart, puede ver la lectura actual o la medición en contexto con los datos adquiridos previamente. Tipos de graph y chart. Waveform Chart and Graph Despliega los datos adquiridos en una tasa

constante. XY Graph Despliega los datos adquiridos en una tasa no

constante. Intensity Chart and Graph Despliega datos 3D en un graficador 2D

utilizando colores para desplegar valores de tercera dimensión.

Digital Waveform Graph Despliega datos como pulsos o grupos de líneas digitales.

3D Graphs Despliega datos 3D en un graficador 3D

Opciones. Aunque los graph y chart grafican los datos de manera diferente, tienen varias opciones comunes que pueden accederse a través de un menú contextual. Todas los graph y chart soportan escalas múltiples en x y y. Utilice escalas múltiples en gráficas que no comparten una escala x o y. Además puede personalizar la apariencia al mostrar y ocultar opciones. Plot legend. Scale Legend. Graph Palette. X Scale y Y Scale. Cursor Legend (solo graph) Scrollbar (solo chart).

Programación Básica en LabVIEW 20

Page 24: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Waveform

Actividades. Ej30 Utilice dos waveform graph para desplegar la función seno con diferentes amplitudes (10 y 100). En un tercer waveform graph grafique ambas señales con Built array y agregue un eje mediante Duplicate scale. Asocie el Plot con alguna de las escalas en Y, mediante la selección en Y Scale. En este mismo ejercicio trabaje con la lista de cursores. La lista de cursores es un arreglo, por lo que debe ser inicializado de manera manual o automática. La manera automática requiere acceder a la lista de cursores por medio de un nodo de propiedades, y traer el primer elemento del arreglo. Los elementos del arreglo son clusters, por lo que para modificar uno o más de los componentes del cluster debe acceder, primeramente al cluster que lo contiene (con Index array) y en segundo lugar al o los elementos que desea modificar (con Bundle by Name). Para devolver la información al gráfico se requiere otro nodo de propiedades para vaciarlo. La lista de cursores es un arreglo especial ya que aún después de cerrar la aplicación el arreglo permanece inicializado, a diferencia de los arreglos tradicionales, que requieren una inicialización cada vez que se abre la aplicación. Muestre, por software, un cursor en la posición 0, 0.5s, con una etiqueta de “Ejercicio 30” , con color azul, recuerde que el azul en RGB es 0000FF.No olvide modificar el estilo del cursor, manual o automáticamente, si lo hace por software la sugerencia es usar el 8. Optativo.

Programación Básica en LabVIEW 21

Page 25: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Sitúe dos cursores. Uno en la parte inferior izquierda correspondiente al 10% mas de los valores mínimos de la señal y el otro en la parte superior derecha correspondiente al 10% menos del valor máximo de la señal. Ej31. En un ciclo while con retardo de 500 ms por vuelta, genere y despliegue un seno en un chart. El Delta t en el seno será de 0.1 y la amplitud de 10. Ej32 En el programa anterior agregue un knob con tres números y adjunte las leyendas:

• Strip • Scope • Sweep

Asocie el knob (U8) con un nodo de propiedad y seleccione UpdateMode. En tiempo de ejecución, observe los modos en que puede ver el Chart. Agregue también un botón OK etiquetado como “Limpiar”, cuando se presione poner en la historia un arreglo de DBL vacío. Ej33. Genere dos waveform con la herramienta de Waveform Generation Seno con amplitud 1 y 10. Despliéguelos en un solo Waveform Chart mediante un Build Array y juegue con la opción de Overlay y Stack Plots. Ej34. Utilice funciones matemáticas para generar una onda seno y grafiquela en un Waveform Graph. Genere una onda coseno y grafique en otro Waveform Graph. ∆t=0.01 Puntos = 1000. Grafique en otro Waveform Graph las dos gráficas anteriores. Optativo. Oscope. Un osciloscopio digital envía una cadena ilustrada en el subVI Ej37a. El primer carácter siempre es V. Indica que la información que le sigue son los volts por división. El segundo carácter puede ser m o un blanco. El blanco significa que está en Volts, la m, que está en milivolts. El tercer y cuarto carácter son dos dígitos correspondientes al valor por volts/división en que se hizo la captura. El quinto carácter siempre es una T. Indica que la información siguiente es el tiempo por división. El sexto carácter puede ser m, M o un blanco. El blanco significa que está en segundos, la m que está en milisegundos y la M que está en microsegundos. El séptimo y octavo carácter son dos dígitos correspondientes al valor por tiempo/división en que se hizo la captura. El noveno carácter siempre es “:” dos puntos. Usado para separar contextos. A partir del décimo y en conjuntos de 4 se envía la información la cual oscila entre 0 y 1023, seguidos de una coma. Se envían 1000 conjuntos separados por coma. Al finalizar hay un punto “.”. Recuerde que un osciloscopio tiene 8 cuadros de alto por 10 cuadros de largo. Asuma que la horizontal GND está en el punto medio, 512. De lo anterior se desprende la siguiente ecuación para determinar los puntos reales.

( ) ( )512

/4512 DivVoltsEnteroValor ××−=

Grafique los valores reales sin importar las divisiones

Programación Básica en LabVIEW 22

Page 26: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

( ) 100/ ÷= DivTimedt

XY Graphs. Ej35 Utilice el ejercicio 34 y en lugar de graficar en un waveform graph utilice un graph XY. Ejemplo con lecturas. Abra el archivo Graph.VI y guárdelo como Ej35A. En Ej35A calcule la pendiente de la gráfica para los valores encontrados en el eje Y entre 2 y 4 toneladas. Grafíquela en (x1,0) y (x2,5), utilice el nodo fórmula para calcular los puntos.

Digital Graph. Es utilizado para graficar diagramas de tiempo.

En el arreglo Binary Representations está la representación binaria del arreglo Numbers. La alineación a la derecha del arreglo Binary Representation facilita la comprensión entre la relación de la gráfica y los números. Ya que cada columna de este arreglo es una línea dentro del graph, representada por Bit X. Son 8 líneas (Bit 0 a Bit 7) debido al tipo de dato con el que se está trabajando es de 8 bits. Además de que en el diagrama se alambra en ports la cantidad de información que se tomará del arreglo para graficar, en este caso 1, es decir, se graficarán 8 bits a la vez, debido a que 8x1=8. Si ports fuera 2 y el número se mantuviera de 8 bits, entonces serían 16 líneas y tomaría dos elementos de Numbers a la vez.

Programación Básica en LabVIEW 23

Page 27: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Así pues cada línea representa una columna de Binary Representation cuando ports sea 1. ports entonces especifica la cantidad de elementos a tratar como una unidad entera. Utilice Dt para ajustar el tiempo entre muestra y muestra dentro del diagrama.

Actividades. Ej36. Realice el ejemplo ilustrado.

Intensity Graph. Son útiles para desplegar datos como superficies, donde el color puede representar altitud, humedad, temperatura. Observe el ejemplo Intensity.VI

9. Archivos. Las operaciones de Escritura y Lectura de archivos pasan dato a y desde archivos. Utilice los VI localizados en Functions>File I/O para manejar todos los aspectos de archivos, incluyendo:

• Abrir y cerrar archivos de datos. • Leer y escribir datos a archivos. • Leer y escribir datos a archivos con formato de hoja de cálculo. • Mover y renombrar archivos y directorios. • Cambiar características de archivo. • Crear, modificar y leer un archivo de configuración.

Principios. Una operación típica de archivo lleva los siguientes procesos:

1. Crear o abrir un archivo. Indica dónde reside el archivo existente o dónde desea crear el nuevo archivo al especificar una ruta manualmente o a través de una caja de dialogo. Después de que el archivo se abre, un número de referencia representa al archivo.

2. Leer o escribir al archivo. 3. Cerrar el archivo.

La mayoría de los VI ejecutan sólo un paso en la operación de I/O.

Formato. Los VI para las operaciones de archivo dependen del formato de los archivos en cuestión. Puede leer y escribir en tres formatos: texto, binario y registro de datos. El formato depende de los datos que se adquieran o crean y las aplicaciones que accederán a los datos.

• Si desea hacer a sus datos disponibles a otras aplicaciones, como Excel, utilice archivos de texto.

• Si desea acceder aleatoriamente al archivo o la velocidad y espacio en disco son cruciales, utilice archivos binarios.

Programación Básica en LabVIEW 24

Page 28: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

• Si desea manejar registros complejos de datos o diferentes tipos de datos en LabVIEW, utilice archivos de registro de datos, porque son la mejor manera de almacenar datos si desea accederlos sólo en LabVIEW.

Una ruta es un tipo de datos de LabVIEW que identifica el lugar de un archivo en disco. La ruta describe el directorio entre el nivel más alto del sistema y el archivo, y el nombre del archivo.

Actividades. Ej38. Cree un VI con un waveform graph, cinco botones y un menú para el tipo de gráfica. El primer botón será para generar gráfica. El segundo para guardar. El tercero para abrir. El cuarto para limpiar. El quinto para salir. Genere varias ondas, guárdelas como Waveform y muéstrelas. Utilice la extensión WVE. Ej39. Repita el ejercicio, pero ahora además de guardar el waveform guarde también el estado del botón que indica el tipo de gráfica. Utilice la extensión CLS. Ej40. Repita el ejercicio 38. Pero ahora guarde la onda como SGL en un archivo binario. Utilice la extensión BIN. Ej41. Repita el ejercicio 38, pero ahora que guarde los datos en texto para hoja de datos. Utilice la extensión TXT. Compare tamaños entre archivos.

Programación Básica en LabVIEW 25

Page 29: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

10. Menú. LabVIEW permite crear menús para cada VI, puede configurar las barras que se mostrarán o se ocultarán.

Crear Menús. Puede modificar el menú en tiempo de diseño o ejecución. Para editar el menú manualmente se hace en Edit>Run-Time Menu. Una vez creado se deberá mantener el archivo VI en la misma ruta que el archivo Menu (rtm). Utilice las funciones situadas en Functions>Application Control> Menu para insertar, borrar y modificar los elementos del menú en tiempo de ejecución. Además puede agregar elementos y separadores de línea.

Manejo de la selección. Cuando crea un menú, debe asignar a cada ítem del menú un identificador de cadena llamado tag. Cuando el usuario selecciona un ítem, la función Get Menú Selection devuelve esa tag. Después de que se construye el menú, una estructura case en el diagrama de bloques determinará la acción para cada tag. Si un proceso es muy largo, bloquee el menú poniendo un valor de False en la función Enable Menu Tracking para que los usuarios no puedan hacer nada mientras se ejecuta el proceso. Después de que se efectúa el proceso, alambre un valor de Verdadero a la función Enable Menu Tracking para habilitar la barra y continuar con la ejecución del programa.

Actividades. Ej42. Cree un menú llamado menuppal.rtm con los siguientes datos. Archivo. Nuevo Guardar Salir Edición Copiar Cortar Pegar. Al seleccionar Salir, el programa termina. Al seleccionar cualquier otra opción deberá presentar un cuadro de diálogo con un mensaje relativo a la acción seleccionada. En el proceso de Guardar deberá, además, poner un Timer de 10 segundos y tener bloqueado el menú mientras se pasa el tiempo, después del proceso continúe normalmente.

Programación Básica en LabVIEW 26

Page 30: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

11. Puerto Serie.

Panorama General. El puerto serie es más difícil que la interfaz por el puerto paralelo en el sentido de que en el primero tiene que serializar la información bit por bit, agregar bit de parada, bit de inicio y bit de paridad, mientras que en el segundo se envía el byte completo. En la mayoría de los casos, cualquier dispositivo que conecte por el puerto serie necesitará la transmisión serial convertida a paralelo para poder ser usada. Esto puede ser hecho usando un UART. Las ventajas de usar el la transferencia de datos serial en lugar del paralelo son las siguientes: Los cables seriales pueden ser de mayor longitud que los cables paralelos. El puerto serie transmite un ‘1’ de – 3 a -25 voltios y un ‘0’ de +3 a +25 voltios mientras que un puerto paralelo transmite un ‘0’ como 0 voltios y un ‘1’ como +5 voltios. Por consiguiente, el puerto serial puede tener una oscilación máxima de 50V comparado con el puerto paralelo que tiene una oscilación de 5V. Por consiguiente la pérdida del voltaje debido a la longitud del cable no es tanto problema en los serie que para los paralelos. No requiere tantos cables como en la transmisión paralela. Si su dispositivo requiere ser instalado en distancias grandes de la computadora entonces tres cables es más barato que 19 o 25 cables. Sin embargo, debe tomar en cuenta el costo de la interfaz de cada terminal.

Aspectos físicos. Los dispositivos que utilizan cables seriales para sus comunicaciones son divididos en dos categorías. Éstas son DCE (Data Communications Equipment) y DTE (Data Terminal Equipment). DCE son dispositivos como un módem y graficador mientras que DTE es una computadora o terminal. Las especificaciones eléctricas del puerto serie está contenida en el estándar EIA (Electronics Industry Association) RS232C. Define muchos parámetros:

• Un espacio “0” estará entre +3 y +25 V. • Una marca “1” estará entre –3 y –25 V. • La región entre +3V y –3V es indefinida. • Un voltaje de circuito abierto no deberá exceder a 25V en referencia a GND. • La corriente de cortocircuito no deberá exceder a 500mA. El manejador deberá ser capaz

de manejar esto sin daños. Esta no es una lista completa del estándar EIA. La capacitancia de las líneas, el baudaje máximo, y otros también son incluidos.

Pines. Los puertos serie vienen en dos “tamaños”. El conector tipo D25 y el tipo D9 que son machos en la parte trasera de la computadora, así que requerirá un conector hembra en su dispositivo. En la tabla se muestra la utilización de los pines en cada uno de los conectores.

Programación Básica en LabVIEW 27

Page 31: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Tabla. Propósito de pines en el protocolo RS-232

D25 D9 Abreviación Nombre Pin 2 Pin 3 TD Transmitir Datos Pin 3 Pin 2 RD Recibir Datos Pin 4 Pin 7 RTS Requisición para enviar Pin 5 Pin 8 CTS Limpiar para enviar Pin 6 Pin 6 DSR Dato listo Pin 7 Pin 5 SG Señal de GND Pin 8 Pin 1 CD Detección de carro Pin 20 Pin 4 DTR Dato terminal listo Pin 22 Pin 9 RI Indicador de timbrado

Módems Nulos. Un módem nulo es usado para conectar dos DTE esto es comúnmente usado como una forma barata para establecer una pequeña red o transferir archivos entre computadoras utilizando protocolos Zmodem y Xmodem. El siguiente método es de los más comunes. Sólo requiere tres cables.

Figura 2.7 Conexión para módem nulo.

Control de flujo. Si nuestra velocidad de DTE a DCE es algunas veces más grandes que nuestra velocidad DCE a DCE la PC puede enviar datos a su módem a 115,200 BPS. Tarde o temprano los datos tendrán un sobre flujo en el búfer, así que un control de flujo es usado. El control de flujo tiene dos variedades: hardware y software. El control de flujo de software algunas veces es expresado como XON/XOFF. XON es normalmente indicado por el carácter ASCII 17 y el ASCII 19 es usado para XOFF. Este tipo de control tiene la ventaja de que no requiere ningún alambre más. Sin embargo la comunicación requiere 10 bits que hace lenta la comunicación. El control de hardware es también conocido como flujo RTS/CTS. Utiliza dos alambres en el cable serial en lugar de transmitir caracteres extras en la línea de datos. Este control de flujo no hace lenta la comunicación. Cuando la computadora desea enviar datos activa la línea RTS y el módem activa la señal de CTS y así la computadora envía datos.

Programación Básica en LabVIEW 28

Page 32: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Direcciones estándares. En la computadora personal se establecen direcciones fijas para la comunicación serie. Estas direcciones se consideran estándares y se utilizan a menudo para la configuración del UART. En la tabla se muestran dichas direcciones.

Tabla. Direcciones de los diferentes COM

Nombre Dirección IRQ COM 1 3F8 4 COM 2 2F8 3 COM 3 3E8 4 COM 4 2E8 3

Programación Básica en LabVIEW 29

Page 33: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Apéndice A.

Instalación del software. Instale el software antes de instalar la tarjeta de adquisición de datos. Siempre tenga a la mano las notas apropiadas para las instrucciones específicas.

Instalación del hardware PCI-6503. Lo siguiente son instrucciones generales para el dispositivo en específico. Consulte su manual técnico o de referencia para instrucciones específicas.

1. Puede instalar su tarjeta en cualquier ranura de expansión PCI a 5V disponible. 2. Apague y desconecte su computadora. 3. Quite la tapa. 4. Quite la cubierta de la ranura de expansión. 5. Toque la parte metálica dentro de la computadora para descargar cualquier electricidad

estática que puede estar en su ropa o cuerpo. 6. Inserte la tarjeta en la ranura. Debe ser un ajuste apretado, pero no fuerce el dispositivo. 7. Atornille la tarjeta al chasis. 8. Verifique visualmente la instalación. 9. Ponga la tapa . 10. Conecte su computadora.

Configuración. La tarjeta es completamente configurable por software y cumple completamente con la Especificación de bus local PCI revisión 2.1. Por consiguiente todos los recursos de la tarjeta son automáticamente configurados por el sistema PCI, incluyendo la dirección base y el nivel de interrupción. La dirección base de la tarjeta está mapeada en el espacio de memoria PCI. No necesita ejecutar ningún paso de configuración después de que el sistema se enciende.

Conexiones de señal. Las conexiones que exceden cualquiera de las tasas máximas de entrada o de salida en la tarjeta pueden dañar la tarjeta y su computadora. La PCI-6503 tiene 50 pines.

Niveles digitales lógicos. Las señales máximas de entrada y salidas asumen una fuente de voltaje de 5.0V, el voltaje máximo absoluto para cada línea de I/O es de –0.5V a 5.5V con respecto a GND.

Programación Básica en LabVIEW 30

Page 34: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Programación Básica en LabVIEW 31

Distribución de los pines para la tarjeta PCI-6503

Page 35: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Referencias. National Instruments LabVIEW User Manual. National Instruments. Julio 2000. Part Number 320999C-01 PCI-DIO-96, PXI-6508 and PCI-6503 User Manual. National Instruments. Marzo 1998. Part Number 320938C-01 LabVIEW for everyone. Jeffrey Travis. National Instruments. Segunda Edición. ISBN 0-13-065096-X

Programación Básica en LabVIEW 32

Page 36: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Autor. MC César Ezequiel Varela Moreno. [email protected] Maestro en Ciencias en Ingeniería Electrónica. Egresado del Instituto Tecnológico de Chihuahua. Ingeniero en Sistemas Computacionales Egresado de la Universidad Autónoma de Chihuahua. Experiencia Profesional Desde el 2002 a la fecha es Jefe de Proyectos en el área de Diseño y Desarrollo de equipo del Centro Regional de Optimización y Desarrollo de Equipo. Durante el 2001 fue catedrático en la Facultad de Ingeniería de la Universidad Autónoma de Chihuahua en la materia de Programación.

Programación Básica en LabVIEW 33

Page 37: PROGRAMACIÓN BÁSICA EN LABVIEW - Pagina · PDF file6. Llene el control Menu Ring con el nombre de 4 compañeros y con el suyo encabezando la lista. 7. Alambre las terminales U16

Centro Regional de Optimización y Desarrollo de Equipo

Para información, favor de comunicarse al departamento de: GESTIÓN TECNOLÓGICA Y VINCULACIÒN Av. Homero No. 350, Complejo Industrial Chihuahua, C.P. 31109 Chihuahua, Chih., Méx.Tel. 4810513 y 4812171, Tel Dirección: 4817858. Fax: 4810641 www.crodechihuahua.edu.mx

Programación Básica en LabVIEW 34