Professional Documents
Culture Documents
Labview Labview PDF
Labview Labview PDF
Curso de Seis-Horas
Course Software Version X.X
Copyright
© 2003 National Instruments Corporation. All rights reserved.
Universities, colleges, and other educational institutions may reproduce all or part of this publication for
educational use. For all other uses, this publication may not be reproduced or transmitted in any form,
electronic or mechanical, including photocopying, recording, storing in an information retrieval system, or
translating, in whole or in part, without the prior written consent of National Instruments Corporation.
Trademarks
LabVIEW , National Instruments , NI , and ni.com are trademarks of National Instruments
Corporation. Product and company names mentioned herein are trademarks or trade names of their
respective companies.
Patents
For patents covering National Instruments products, refer to the appropriate location: Help»Patents in your
software, the patents.txt file on your CD, or ni.com/legal/patents.
Worldwide Technical Support and Product Information
ni.com
Worldwide Offices
Australia 1800 300 800, Austria 43 0 662 45 79 90 0, Belgium 32 0 2 757 00 20, Brazil 55 11 3262 3599,
Canada (Calgary) 403 274 9391, Canada (Montreal) 514 288 5722, Canada (Ottawa) 613 233 5949,
Canada (Québec) 514 694 8521, Canada (Toronto) 905 785 0085, Canada (Vancouver) 514 685 7530, China 86 21
6555 7838, Czech Republic 420 2 2423 5774, Denmark 45 45 76 26 00, Finland 385 0 9 725 725 11, France 33 0 1 48
14 24 24, Germany 49 0 89 741 31 30, Greece 30 2 10 42 96 427, India 91 80 51190000, Israel 972 0 3 6393737, Italy
39 02 413091, Japan 81 3 5472 2970, Korea 82 02 3451 3400, Malaysia 603 9131 0918, Mexico 001 800 010 0793,
Netherlands 31 0 348 433 466, New Zealand 0800 553 322, Norway 47 0 66 90 76 60, Poland 48 0 22 3390 150,
Portugal 351 210 311 210, Russia 7 095 783 68 51, Singapore 65 6226 5886, Slovenia 386 3 425 4200, South Africa 27
0 11 805 8197, Spain 34 91 640 0085, Sweden 46 0 8 587 895 00, Switzerland 41 56 200 51 51, Taiwan 886 2 2528
7227, Thailand 662 992 7519, United Kingdom 44 0 1635 523545
Curso LabVIEW de Seis Horas Notas del Instructor
Este documento zip contiene material diseñado para dar a los estudiantes un
conocimiento de LabVIEW en un tiempo de 6 horas. Los contenidos son:
Las diapositivas pueden ser presentadas en dos laboratorios de tres horas o seis clases
de una hora cada una. Dependiendo en el tiempo y los recursos disponibles en la clase,
usted puede elegir si asigna o no los ejercicios como tarea para llevar o para ser hechos
en clase. Si usted decide asignar los ejercicios en la clase, es mejor asignarlos en orden
con la presentación. De esta manera los estudiantes pueden crear VIs mientras que la
información relevante todavía esta fresca. Las notas asociadas con las diapositivas
conteniendo ejercicios deberían de ser deficientes para guiar a los estudiantes a una
solución. Los archivos de solución incluidos son una de las posibles soluciones, pero no
significa que sean la única solución.
La instrucción paso a paso provee al estudiante con una manera fácil de completar el
ejercicio, pero si usted decide asignar los ejercicios afuera del salón de clases, usted
puede encontrar útil el imprimir las direcciones abreviadas de la diapositiva de ejercicio
y dársela a los estudiantes como una asignación.
2
3
Panel frontal
Controles = entradas
Indicadores = salidas
Diagrama de bloque
Programa de acompañamiento
para el panel frontal
Componentes cableados
entre si
Cada control o indicador del panel frontal tiene una terminal correspondiente en el
diagrama de bloques. Cuando un VI se ejecuta, los valores de los controles
fluyen a través del diagrama de bloques, en donde estos son usados en las
funciones del diagrama, y los resultados son pasados a otras funciones o
indicadores.
4
El panel frontal es la interfase del usuario con el VI. Usted construye el panel
frontal con controles e indicadores,que son las entradas y salidas que interactúan
con las terminales del VI, respectivamente. Los controles son botones, botones de
empuje, marcadores y otro componentes de entradas. Los indicadores son las
graficas, luces y otros dispositivos. Los controles simulan instrumentos de entradas
de equipos y suministra datos al diagrama de bloques del VI. Los indicadores
simulan salidas de instrumentos y suministra datos que el diagrama de bloques
adquiere o genera.
El panel frontal también contiene una barra de herramientas, y sus funciones serán
discutidas después.
5
El diagrama de bloque contiene el código fuente grafico. Los objetos del panel
frontal aparecen como terminales en el diagrama de bloque. Adicionalmente, el
diagrama de bloque contiene funciones y estructuras incorporadas en las bibliotecas
de LabVIEW VI. Los cables conectan cada uno de los nodos en el diagrama de
bloques, incluyendo controles e indicadores de terminal, funciones y estructuras.
En este diagrama de bloque, el subVI Temp llama a la subrutina la cual obtiene una
temperatura desde una tarjeta de adquisición de datos (DAQ). Esta temperatura es
graficada junto con el valor average de la temperatura en la grafica de forma de
onda Temperature History. El switch de poder (Power) es un control booleano en
el panel frontal el cual va a detener la ejecución de la estructura mientras( While
Loop). La estructura mientras (While Loop) también contiene una función de
tiempo para controlar que tan frecuentemente la estructura se repite.
6
Funcion
VI Expreso VI Estandar
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 dialogo
que permite al usuario personalizar la funcionalidad del VI Expreso. LabVIEW
entonces genera una subVI basado en estos argumentos.
VIs estándar son aquellos VIs (que consisten de un panel frontal y un diagrama de
bloque) que son usados adentro de otro VI.
Las funciones son los bloques de construcción de todos los VIs. Las funciones no
tienen un panel frontal o un diagrama de bloque.
7
Paletas de control
(Ventana del panel frontal)
Paleta de funciones
(Ventana de diagrama de bloque)
8
Paleta flotante
Utilizado para operar y modificar
objetos en el panel frontal y en el
diagrama de bloques.
Herramienta de selección automatica
9
Botón de ejecución (Run)
Redimensionamiento de objetos
de panel frontal (Resize Objects)
11
Buscador de Ejemplos
Terminales Terminales
de de
Control Indicador
En general, las terminales anaranjadas deben unirse (cablearse) con las terminales
anaranjadas, verdes con verdes, y así sucesivamente. Esta no es una regla que no se
puede romper; por ejemplo LabVIEW permitirá al usuario conectar una terminal
azul (valor entero) a una terminal anaranjada (valor fraccional). Pero en la mayoría
de casos, busque mejor una igualdad en colores.
Los controles tienen una flecha en el lado derecho y tienen un borde grueso. Los
indicadores tienen una flecha en el lado izquierdo y un borde fino. Reglas lógicas
pueden ser aplicadas al conectar en LabVIEW: Cada cable debe tener una (pero
solo una) fuente (o control), y cada cable puede tener varios destinos (o
indicadores).
Una vez que usted tenga cierta experiencia programado en LabVIEW, la conexión
de cables se le hará mas fácil. Primero puede que necesite ayuda. En seguida se le
muestra algunas recomendaciones para comenzar:
La herramienta para conectar o de cableado es utilizada para conectarse a los
nodos de las funciones. Cuando usted apunte con la herramienta de cableado,
apunte con el extremo del cable que cuelga del carrete. Aquí es donde el cable sera
colocado.
Mientras usted mueve la herramienta de cableado sobre las funciones, observe la
viñeta amarilla que aparece. Esto le dirá el nombre de la terminal al que se esta
conectando.
Mientras usted mueva la herramienta de cableado encima de una terminal, esta va a
mostrar información. Esto le ayudara a identificar donde se va a unir el cable.
Para mas ayuda con los terminales, haga clic derecho en la función y seleccione
Visible Items o Objetos Visibles>>Terminals o Terminales. Un dibujo de la
función será colocada atrás para revelar las terminales de la conexión. Note los
colores - estos corresponden a los tipos de datos utilizados por los terminales del
panel frontal.
Para ayuda adicional, seleccione Help >> Show Context Help, o presione
CTRL+H. Esto mostrara la ventana de ayuda en contexto. A medida que uno
mueva el raton (mouse) sobre la función, esta ventana le mostrara la función, 14
terminales, y una breve descripción. Utilice esto junto con otras herramientas para
Punto Caliente de Cableado Haga Clic para Seleccionar los Cables
Además de las terminales del panel frontal. El diagrama de bloque contiene funciones. Cada función
puede tener múltiples terminales de entradas y salidas. La conexión de estas terminales es
una parte muy importante de la programación en LabVIEW.
Una vez que usted tenga cierta experiencia programado en LabVIEW, la conexión de cables se le
hará mas fácil. Primero puede que necesite ayuda. En seguida se le muestra algunas
recomendaciones para comenzar:
La herramienta para conectar o de cableado es utilizada para conectarse a los nodos de las
funciones. Cuando usted apunte con la herramienta de cableado, apunte con el extremo del cable
que cuelga del carrete. Aquí es donde el cable sera colocado.
Mientras usted mueve la herramienta de cableado sobre las funciones, observe la viñeta amarilla
que aparece. Esto le dirá el nombre de la terminal al que se esta conectando.
Mientras usted mueva la herramienta de cableado encima de una terminal, esta va a mostrar
información. Esto le ayudara a identificar donde se va a unir el cable.
Para mas ayuda con los terminales, haga clic derecho en la función y seleccione Visible Items o
Objetos Visibles>>Terminals o Terminales. Un dibujo de la función será colocada atrás para
revelar las terminales de la conexión. Note los colores - estos corresponden a los tipos de datos
utilizados por los terminales del panel frontal.
Para ayuda adicional, seleccione Help >> Show Context Help, o presione CTRL+H. Esto
mostrara la ventana de ayuda en contexto. A medida que uno mueva el raton (mouse) sobre la
función, esta ventana le mostrara la función, terminales, y una breve descripción. Utilice esto junto
con otras herramientas para ayudarse mientras conecta los cables.
Si el cableado no se mira muy bien, haga clic derecho en el cable que se desea arreglar y escoja la
opción de Clean Up Wire o Limpieza del Cable para que automáticamente el cable haga su ruta de
nuevo.
15
El cableado es muy flexible en LabVIEW. Experimente con combinaciones de clics
y/o teclas cuando este cableando. Aquí hay algunas de las características mas a
menudo utilizadas.
El hacer un simple, doble, y triple clic en el cable selecciona el cable para moverlo
o para borrarlo.
El hacer un clic mientras se esta cableando hace un doblez en el cable.
Haciendo clic derecho o presionando el botón Esc mientras se esta cableando
cancela la operación de cableado.
16
LabVIEW sigue un modelo de flujo de datos para correr los VIs. Un nodo del
diagrama de bloque se ejecuta cuando todas sus entradas están disponibles. Cuando
un nodo completa la ejecución, suministra datos a sus terminales de salida y pasa
los datos de salida al siguiente nodo en la trayectoria del flujo de datos. Visual
Basic, C++, JAVA y otros lenguajes de programación basados en texto, siguen un
modelo de control de flujo de la ejecución de un programa. En flujo de control, el
orden secuencial de los elementos del programa determina el orden de ejecución de
un programa.
Considere el diagrama de bloque que se encuentra arriba. Este suma dos números y
luego resta 50 del resultado de la suma. En este caso, el diagrama de bloque se
ejecuta de izquierda a derecha, no porque los objetos están puestos en ese orden,
sino porque una de las entradas de la función de resta no es valida hasta que la
función de suma o adición haya terminado su ejecución y pasado los datos a la
función de resta. Recuerde que un nodo se ejecuta solamente cuando tiene datos
disponibles en todas sus terminales de entrada, y suministra datos a sus terminales
de salidas solamente cuando termina su ejecución.
Referencias en Línea
Todos los menús en línea
Clic en las funciones del diagrama para tener acceso directo a
la información en línea.
19
Tiempo estimado de finalización: 20 minutos. El ejercicio es fácil, pero como será
el primer VI que crearemos, es bueno permitir un tiempo amplio para explorar el
ambiente de LabVIEW.
20
Encontrando los Errores
Haga clic en el botón de correr que esta roto;
Aparece una ventana mostrando los errores
Resaltar la Ejecución
Haga clic en el botón de ejecución resaltada; el
flujo de datos es animado utilizando burbujas.
Los valores se despliegan en los cables.
Herramienta de Prueba
Haga clic con el botón derecho sobre el cable para
exhibir la ventana de prueba y así mostrar los
datos mientras fluyen por el segmento de cable.
Encontrando los Errores: Para hacer una lista de los errores, haga clic en la flecha
quebrada. Para localizar el objeto malo, haga clic en el mensaje del error.
Resaltando la Ejecucion: Anima el diagrama y traza el flujo de datos,
permitiéndole ver los valores intermedios.
Haga clic en el bombillo incandescente (light bulb) en la barra de
herramientas.
Probe: Utilizado para ver los valores en los arrays (arreglos) y clusters .
Haga clic en los cables con la herramienta Probe o haga clic derecho en el
cable para ajustar losprobes.
Punto de Paro (Breakpoint): Coloca pausas en diferentes lugares del diagrama.
Haga clic en los cables o en los objetos con la herramienta de Punto de
Paro para colocar los puntos de paro.
21
22
Así como en las terminales de control o de indicador en el diagrama de bloque pueden ser
vistos como un icono o como una simple terminal, los subVIs pueden ser vistos como un
icono, un nodo expandible o un nodo expandido. Las diferentes vistas dependen en la
preferencia del usuario y no cambia la funcionalidad del subVI.
23
Un SubVI es un VI que puede ser utilizado dentro de
otro VI
Similar a una subrutina
Ventajas
Modular
Fácil para eliminar errores
No tiene que crear códigos
Requiere menos memoria
24
Icon
Terminals
Connector
25
Sub VIs
El diagrama de bloque mostrado en la parte superior contiene dos subVIs. Para ver
el panel frontal de un subVI, simplemente haga un doble clic sobre el subVI. Usted
también puede ver la jerarquía de subVIs dentro de un VI principal haciendo un clic
en Browse>> Show VI Hierarchy.
26
27
Cree iconos personalizados para reemplazar los iconos predeterminados al hacer
clic-derecho en la esquina superior derecha del panel frontal o del diagrama de
bloques y seleccionando el Edit Icon del menú de atajo o haciendo un doble clic en
el icono en la esquina superior derecha del panel frontal. Usted también puede
corregir iconos seleccionando File >> VI Properties, seleccionando General del
menu Category, y haciendo clic en el botón de editar (Edit Icon). Utilice las
herramientas del lado izquierdo de la casilla de dialogo del Icon Editor para crear
el diseño del icono en el área de edición. El tamaño normal de la imagen del icono
aparece en la casilla apropiada en la parte derecha del área de edición.
28
Haga click derecho sobre el icono (solamente en el panel frontal)
Defina las conexiones asignando un control del panel frontal o un indicador a cada
una de las terminales del conector. Para definir un conector, de un clic-derecho
sobre el icono en la esquina superior derecha de la ventana del panel frontal y
seleccione Show Connector del menú. El conector substituye el icono. Cada
rectángulo en el conector representa una terminal. Utilice los rectángulos para
asignar entradas y salidas. El número de terminales que LabVIEW muestra en el
conector depende del número de controles e indicadores en el panel frontal. El
panel frontal de arriba tiene cuatro controles y un indicador, así que LabVIEW
muestra cuatro terminales de entradas y una terminal de salida en el conector.
29
Después que seleccione un patrón para utilizar en su conector, debe definir las
conexiones asignando un control del panel frontal o indicador a cada uno de los
terminales del conector. Cuando usted hace vínculos entre controles e indicadores y
el conector, coloque las entradas en la izquierda y las salidas a la derecha para
evitar patrones complicados y poco claros en su VI. Para asignar una terminal a un
control de panel frontal o indicador, presione una terminal del conector. Presione el
control del panel frontal o indicador que usted desea asignar a la terminal. Haga
clic en un área abierta del panel frontal. La terminal cambia al color del tipo de
datos del control para indicar que usted conectó la terminal. Usted también puede
seleccionar el control o el indicador primeramente y después seleccionar la
terminal.
30
Hay varias maneras de organizar sus subVIs. La manera más común es organizarlos
por aplicación. En este caso, son salvados en el mismo directorio o dentro de un
archivo de librería de VI todos los VI s para una aplicación en particular. Salvarlos
en un archivo de librería permite que usted transporte una aplicación entera dentro
de un solo archivo.
Salvar dentro de una librería es simple. Después de presionar Save As (salvar
como), presione New VI Library (nueva librería de VI). Esto permitirá que usted
nombre la librería, y entonces salvar su VI en él. Para agregar VI subsecuentes,
simplemente haga un doble-clic al archivo .llb de la ventana estándar de Salvar, y
dar un nombre al VI.
31
Acceder subVIs creados por el usuario
Funciones >> All Functions >> Seleccione
un VI o
arrastre el icono hasta el diagrama deseado
32
LabVIEW tiene muchas teclas de atajo que hacen el trabajo mas fácil. Las mas
comunes se listan en la diapositiva.
33
Dispositivo DAQ
Computadora
Sensores
Cable
Bloque de Terminales
34
Digital
Antes de utilizar la Adquisición de Datos de VIs se debe completar varios pasos. Los
dispositivos deben se configurados para las computadoras en esta clase.
35
Arriba esta la ventana de ayuda del DAQ (DAQ Assistant) que puede ser
configurada rápidamente para leer temperaturas de una tarjeta de Adquisición de
Datos (DAQ).
36
ú ñ
37
Ganancia: Escogiendo apropiadamente el rango de su ADC es una manera de
asegurarse de que usted esta maximizando la resolución de su ADC. Otra manera de
ayudar a su señal a maximizar la resolución del ADS es aplicando una ganancia.
Ganancia se refiere a cualquier amplificación o atenuación de una señal. El ajuste
de ganancia (gain setting) es un factor de escala. Cada nivel de voltaje en su señal
entrante es multiplicado por el ajuste de ganancia para obtener la señal amplificada
o atenuada. A diferencia de la resolución que es un ajuste fijo (fixed setting) del
ADC, y el rango que es escogido cuando el dispositivo DAQ es configurado, la
ganancia es especificada indirectamente a través de un ajuste llamado límites de
entrada. Los límites de entrada se refieren a los valores máximos y mínimos de su
señal de entrada analógica actual. Basado en los límites de entrada que usted defina,
la ganancia posible más grande que mantendrá la señal entre el rango escogido del
ADC es aplicada a su señal. Así que en lugar de necesitar calcular la mejor
ganancia basada en su señal y en el rango escogido, todo lo que usted necesita saber
son los valores máximos y mínimos de su señal.
38
SC-2075
BNC-2120
NI-ELVIS
SCB-68
Hay muchos arreglos diferentes posibles de hardware para adquirir datos. Todos los
sistemas de la Adquisición de Datos requieren algún tipo de conexión terminal que
acepta una señal de su transductor y lo transmite a la tarjeta DAQ. Cuatro de estos
bloques de terminales son el BNC-2120, SC-2075, SCB-68, y NI-ELVIS.
40
Finalmente, cree un Icono y Conector para Termómetro.vi. Un posible Icono seria
una imagen de un termómetro. El conector debería tener dos terminales. Uno para la
entrada Booleana (°C or °F), y el segundo para la salida de la temperatura escalada.
Guarde el VI como termómetro.vi
41
For Loop (Ciclo Para)
While Loop (Ciclo Mientras)
Gráficas
Multiplots
42
Ciclo Mientras
Tiene una Terminal de Iteración
Siempre corre al menos una vez
Corre de acuerdo a la Terminal
Condicionante
Ciclos Para
Tiene una Terminal de Iteración
Corre de acuerdo a la entrada
N de la Terminal de Conteo
Ambos los ciclos Mientras (While) y Para (For) están localizados en la paleta
Functions»Structures. El ciclo Para difiere del ciclo Mientras en que el ciclo Para
ejecuta una serie (set) de veces predeterminada. El ciclo Mientras deja de ejecutar el
sub diagrama solo si el valor en la condición terminal existe.
Ciclo Mientras
Similar al ciclo Haga (Do) o al ciclo Repita-hasta (Repeat-Until) en lenguajes de
programación basados en texto, un ciclo Mientras, mostrado arriba a la derecha,
ejecuta un sub diagrama hasta que la condición sea cumplida. El ciclo Mientras
ejecuta el sub diagrama hasta que la terminal dependiente, recibe un valor
Booleano específico. El comportamiento incumplido y la apariencia de la terminal
dependiente (valor por defecto) es Continue if True (continue si es Verdadero),
mostrado a la izquierda. Cuando una terminal dependiente es Continue if True, el
ciclo Mientras ejecuta su sub diagrama hasta que la terminal dependiente recibe un
valor FALSO. La terminal de iteración (una terminal de salida), mostrada a la
izquierda, contiene el numero de iteraciones completas. El conteo de iteraciones
siempre empieza en cero. Durante la primera iteración, la terminal de iteración
regresa a cero.
Ciclo Para
Un ciclo Para, mostrado a la izquierda, ejecuta una serie varias veces. El valor en la
terminal de conteo (una terminal de entrada) representada por la N, indica cuantas
veces repetir el sub diagrama. La terminal de iteración (una entrada de salida),
mostrada a la izquierda, contiene el numero de iteraciones completas. El conteo de
iteraciones siempre empieza en cero. Durante la primera iteración, la terminal de 43
iteración regresa a cero.
Coloque ciclos en su diagrama seleccionándolos desde la paleta de Estructuras de la paleta
de Funciones (demostrar)
Cuando este seleccionado, el cursor del ratón se convierte en un puntero especial que
usted usa para
encerrar la sección del código que desea repetir.
Déle clic al botón del ratón para definir la esquina superior-izquierda, déle clic otra vez al
botón del ratón en
la esquina inferior izquierda, y la frontera del ciclo Mientras es creada alrededor del
código seleccionado.
Arrastre nodos adicionales adentro del ciclo Mientras si es necesario.
44
Gráfica de forma de onda
indicador númerico especial
que puede mostrar una
historia de valores
Controles >> Indicadores de
Gráficas >> Gráfica de
forma de onda
Usted puede cambiar los valores min y max del eje x y y dándole doble clic al valor
con la herramientas de etiquetado y escribiendo el nuevo valor. Similarmente, usted
puede cambiar la etiqueta del eje. También puede darle clic derecho a la leyenda de
la grafica y cambiar el estilo, forma y color del dibujo que se muestra en la gráfica.
45
Grafica de diagrama simple Grafica de diagrama múltiple
Usted puede cablear una salida escalar directamente a una grafica de forma de onda
para mostrar un diagrama. Para mostrar múltiples diagramas en una grafica, use la
función Merge Signals encontrada en la paleta Functions >> Signal
Manipulation. La función Merge Signal junta múltiples salidas para diagramar en
la gráfica de forma de onda. Para agregar mas diagramas, utilice la herramienta de
Posicionamiento para cambiar el tamaño de la función Merge Signal.
46
Estudiantes construyen el VI Ejemplo de Ciclo.vi.
Instrucciones
Cree un VI que genere un número aleatorio a una velocidad especifica y mustre las
lecturas en una grafica de forma de onda hasta que el usuario lo pare. Conecte la
terminal de terminación a un botón de paro en el panel frontal, y agregue un control
de deslizamiento (slider control) al panel de control. Este control de deslizamiento
debe recorrer de 0 a 2000 en valor, y será conectado a la función Express VI Time
Delay (demora de tiempo) dentro de su ciclo Mientras.
Guarde el VI como Use a Loop.vi
47
Construir arreglos manualmente
Dejar que LabVIEW construya arreglos
automáticamente
Escribir a un archivo de hoja de cálculo (spreadsheet)
Leer desde un archivo de hoja de cálculo (spreadsheet)
Los arreglos agrupan elementos de datos del mismo tipo. Un arreglo consiste de
elementos y dimensiones. Los elementos son los datos que componen el arreglo.
Una dimensión es la longitud, altura, o profundidad de un arreglo. Un arreglo puede
tener una o mas dimensiones y hasta 2^31 1 elementos por dimensión, si lo
permite la memoria.
Los elementos del arreglo son ordenados. Un arreglo utiliza un índice para que
usted pueda tener acceso rápido a cualquier elemento en particular. El índice es
basado en cero, lo que significa que tiene un rango de 0 a n 1, donde n es el
numero de elementos en el arreglo. Por ejemplo, n = 9 para los nueve planetas, así
que el índice recorre de 0 a 8. La Tierra es el tercer planeta, así que tiene un índice
de 2.
Las operaciones de Entrada/Salida de archivo (I/O) pasan los datos desde y a los
archivos. Utilice los VI de File I/O y las funciones localizadas en la paleta
Functions » File I/O para manejar todos aspectos de I/O de archivo. En esta clase
nosotros cubriremos la lectura y escritura de archivos de hoja de cálculo
(spreadsheet) utilizando el Express VIs para File I/O. 48
Desde la sub-paleta de Controls >> All Controls
>> Array and Cluster, seleccione el Array Shell
Colóquelo en la pantalla.
Usted debe insertar un objeto en la estructura del arreglo antes de que usted utilice
el arreglo en el diagrama de bloques. De otro modo, la terminal del arreglo aparece
negra con un paréntesis vacío.
49
Situé el objeto de datos dentro del shell (Ej. Control Numérico)
Para agregar las dimensiones a un arreglo de uno en uno, hace clic derecho en el
despliegue del índice y seleccione Add Dimension del menú de atajo. Usted puede
utilizar también la herramienta que Posicionamiento para cambiar el tamaño del
despliegue del índice hasta que usted tenga las dimensiones que usted quiera.
50
Los ciclos acumulan arreglos en sus limites.
52
Manejo de Archivos transferir datos a y desde archivos
- Los Archivos pueden ser binarios, texto u hojas de calculo
- Escritura/Lectura de Archivos de Medición de LabVIEW
(LabVIEW Measurements *.lvm)
Escritura en Archivo LVM Lectura de un Archivo LVM
53
El archivo de escritura LVM puede escribir a archivos de hoja de calculo
(spreadsheet). Sin embargo, su propósito principal es el de introducir datos, que
luego seran utilizados en LabVIEW. Este VI crea un archivo .lvm que se puede
abrir en una aplicación de hoja de calculo. Para los archivos de hoja de calculo
simple, utilice el VIs expreso: Write LVM y Read LVM.
54
Los Estudiantes construyen el VI Logger de Temperatura.vi
Instrucciones:
Cree un VI que adquiera y exhiba datos de temperatura a una velocidad fija
hasta que el usuario lo detenga. Si usted ha terminado el ejercicio 2 y tiene
una tarjeta DAQ, utilice Thermometer.vi para obtener sus datos. Si usted no
ha terminado el ejercicio ni tiene una tarjeta de DAQ, usted puede utilizar el
Digital Thermometer.vi de la subpaleta Tutorial de la paleta de funciones.
Una vez que esté parado, el VI debe realizar análisis en los datos que
recogió mientras estaba corriendo. Acumule un arreglo de puntos y de
valores en la frontera del túnel del Ciclo Mientras (While Loop). Encuentre el
máximo, el mínimo, y el valor medio de los datos de la temperatura y
exhíbalos en indicadores numéricos (la función Mean (media) puede ser
encontrada en Functions» Analyze» Mathematics» Probability and
Statistics, y la función Array Max & Min (máximo y mínimo de un arreglo)
puede ser encontrada en Functions» Array). Utilice el Write LabVIEW
Measurements File Express VI (VI de escritura expreso de documentos de
medición LabVIEW) que puede ser encontrado en Functions» Output. Una
vez que se corra, verifique que el archivo fue creado correctamente
abriéndolo en Notepad o creando un VI que lo lea de nuevo utilizando el
Read LabVIEW Measurements File. Una vez que haya terminado el ejercicio,
guarde su VI como Logger de Temperatura.vi.
55
Funciones Básicas de los Arreglos
Uso de gráficos
Crear Diagramas Múltiples con Gráficos
56
Functions >> All Functions >> Array
58
Seleccionados desde la Paleta de Controles del Menu
Controls >> All Controls >> Graphs
59
Grafico de Forma de Onda de Trazo- Múltiple
Los gráficos de forma de onda de trazo múltiple aceptan un arreglo bidimensional de
valores, en donde cada fila del arreglo es una grafica sencilla. La gráfica interpreta los datos
como puntos en la gráfica e incrementa el indice x por uno, comenzando en x = 0. Cablee
un arreglo de datos bidimensionales a la gráfica, haga clic derecho en la gráfica, y
seleccione Transpose Array (arreglo transpuesto) del menú de atajo para manejar cada
columna del arreglo como un diagrama aparte. Refiérase al (Y) Multi Plot 1 graph en el VI
de Waveform Graph en examples\general\graphs\gengraph.llb para encontrar un ejemplo
de un gráfico que acepte este tipo de datos.
60
Haga Clic Derecho en la grafica y seleccione Properties
(propiedades) para poder personalizar interactivamente
61
Tiempo De Completación Estimado: 20 minutos.
62
Haga click para adicionar notas.
63
Una cadena es una secuencia de caracteres desplegables o no desplegables (ASCII).
Las Cadenas se usan frecuentemente para enviar comandos a instrumentos, para
proveer información acerca de pruebas (tales como el nombre del operador y la
fecha), o para desplegar resultados a el usuario.
64
Estructura de Datos que agrupa datos juntos.
Los Datos pueden ser de diferentes tipos.
Semejante a una estructura (struct) en C++
Los elementos deben de ser ya sea, todos
Controles o todos Indicadores
Se puede considerar como un conjunto de
alambres agrupados en un cable.
65
Demostrar como crear un cluster en el panel frontal escogiendo Cluster desde la
paleta Controls » All Controls » Array & Cluster.
Esta opción le brinda una pre-forma (shell) parecida a la pre-forma obtenida al
crear arreglos.
Uno puede cambiarle el tamaño a la pre-forma una vez esta se ha seleccionado.
Haga clic derecho adentro de la pre-forma para añadir objetos de cualquier tipo.
Nota: Usted inclusive puede tener un cluster adentro de un cluster.
El cluster se convierte en un Indicador o Control basado en el primer objeto que fue
ingresado dentro del Grupo.
66
Están ubicadas en la subpaleta de Cluster de la
paleta Functions>>All functions.
También puede ser accesada haciendo clic con el
botón derecho del mouse en la terminal del Grupo.
(Las etiquetas de la
terminal reflejan los
Bundle
tipos de datos)
(Agrupar)
Bundle by name
(Agrupar por nombre)
67
Unbundled
(separar)
Función Unbundle (desagrupar) Se utiliza para accesar a todos los objetos del
cluster.
Función Unbundle by Name (desagrupar por nombre) Se utiliza para accesar
objetos específicos (uno o mas) en el cluster.
Nota: Solamente los objetos en el cluster que tengan su propia marca (Label)
pueden ser accesados. Cuando se desagrupe por nombre, haga clic en la terminal
con la herramienta de operación para escoger el elemento que quiere accesar.
68
Los Errores de Cluster contienen la siguiente información:
Booleano (Boolean) Para reportar si surgió algún error
Enteros (Integer) Para reportar errores específicos de códigos
Cadena (String) Para brindar información acerca del error
Los clusters para errores son un medio poderoso para manejar errores.
Los VI de adquisición de datos (DAQ VIs) las funciones de manejo de entradas y
salidas de archivo (File I/O), los VI de networking, y muchos otros VI utilizan este
método para pasar información acerca de errores entre nodos.
El cluster para errores contiene los siguientes elementos:
status, Un Booleano al que se le asigna un valor verdadero si ocurre algún
error.
code, Un valor numerico al que se le asigna un numero de código
correspondiente al error que ha ocurrido.
source, Una cadena de caracteres que identifica el VI en donde ocurrió el
error.
69
La información de un Error es transmitida de un subVI al siguiente
Si un Error ocurre en un subVI, todos los subVI subsecuentes no
serán ejecutados de la manera usual
Los errores de Cluster contienen todas las condiciones del Error
Manejo automático de Errores
Errores de Cluster
Los clusters para errores son útiles para determinar la ejecución de un subVI cuando
se encuentra un error.
Note también que los clusters para errores pueden ser útiles para determinar el flujo
del programa debido al paradigma de programación del flujo de datos. Esto puede
ser útil especialmente al configurar un muestreo en mas de una tarjeta de
adquisición de datos (DAQ board) simultáneamente.
70
71
En la subpaleta de estructura de las paleta de funciones.
Encerrar los nodos o arrastrarlos hacia adentro de la
estructura.
Colocados como un juego de cartas (naipes), solo un caso
es visible a la vez.
72
Tiempo estimado de completación: 20 minutos.
Indique que este VI puede ser fácilmente configurado como un subVI para un
código de programación mas grande, y que la búsqueda de problemas 73
(troubleshooting) y depuración es mas fácil cuando los clusters para errores son
En la subpaleta de control de ejecución (Execution
Control) de la paleta de funciones.
Ejecuta diagramas secuencialmente.
Presionar botón derecho del mouse para agregar un
nuevo cuadro (frame).
74
En la subpaleta de Estructuras (Structures).
Implementa ecuaciones complicadas.
Variables creadas en los márgenes
Nombres de variables son sensibles (mayúsculas/minúsculas)
Cada declaración debe de terminar con un punto y coma(;)
La ventana de ayuda muestra las funciones disponibles.
75
76
LabVIEW ofrece muchas opciones para imprimir los VIs. Desde la forma estándar
File » Print menu, el usuario puede imprimir una copia de su VI, o pude generar
una copia para guardarla en un archivo o publicarla.
77
Al abrir VI s properties (propiedades del VI) un desarrollador puede añadir
documentacion a su VI. La documentacion colocada en el Description field (espacio
para la descripcion) de la ventana de documentacion del VI es moestrada en
Context Help (ayuda en contexto), y se imprime con el VI.
78
Usted puede estructurar los VIs dependiendo de la funcionalidad que desea que
tengan. En esta sección discutiremos algunas de las arquitecturas de VI mas
comunes, a si como sus ventajas/desventajas: simple, general, maquina de estado
(state machine).
79
Arquitectura de VI Simple
Cuando se hacen pruebas de laboratorio rápidas, no se necesita una arquitectura
complicada. Su programa puede consistir de un solo VI que toma una medición,
hace cálculos, y ya sea despliega los resultados o los guarda en el disco. La
medición puede ser iniciada cuando el usuario le da clic a la flecha de inicio (run
arrow).
Aparte se ser usada para aplicaciones simples, esta arquitectura es usada para
componentes funcionales dentro de aplicaciónes mas grandes. Usted puede
convertir estos VIs simples en subVIs que son utilizados como componentes de una
apicacion mas grande.
80
Arquitectura de un VI General
Generalmente al diseñar una aplicación se siguen tres pasos:
Inicio (startup) Esta area se usa para inicializar el hardware, leer información de
configuración de archivos o preguntar al usuario la localización de datos de
archivos.
Aplicación Principal (main application) Generalmente consiste de por lo menos
un ciclo que se repite hasta que el usuario decida salir del programa, o el programa
termina debido a otras razones como la completacion de una entrada/salida (I/O)
Apagado (shutdown) Esta seccion usualmente se encarga de cerrar los archivos,
escribir datos de configuracion al disco o reestablecer los datos de entrada/salida
(I/O) a su estado predeterminado.
Para aplicaciones simples, el ciclo de la aplicación principal puede ser bastante
directo. Cuado se tiene interfaces de usuario complicadas o eventos múltiples
(acción de usuario, accionamientos de entradas/salidas, etc.), esta sección puede
volverse mas complicada.
81
Pasos:
0: Inicio (Startup)
1: Ocio (Idle)
2: Evento 1
3: Evento 2
4: Cierre (Shutdown)
Una desventaja de esta técnica es que con la arquitectura simple se pueden perder eventos. Si dos
eventos ocurren al mismo tiempo, este modelo maneja solo el primero, y el segundo se pierde. Esto
puede conducir a errores que son difíciles de depurar porque solo ocurren ocasionalmente. Existen
versiones mas complejas de la Arquitectura del VI de la Maquina de Estado que contiene código
extra para construir un queue de eventos (estados) de manera que usted no pierda ningún evento.
82
Tiempo estimado de duración: 25 minutos.
En lugar de empezar desde cero, utilizaremos una Plantilla de VI para crear nuestra
maquina de estado. Desde el File menu, en lugar de seleccionar New VI, seleccione
New , y haga clic en Start from template. Busque \Program Files\National
Instruments\LabVIEW 6.1\templates\State Machine.vit, Y abralo. Esto abrira una
plantilla simple de maquina de estado utilizando cadenas de caracteres para
controlar el estado. Examine la plantilla, y guardela en otro directorio antes de
empezar a trabajar en ella.
83
Haga clic derecho en la estructura de casos, escoja Add Case After, y déle el
nombre de Idle . Dentro del caso Idle, coloque una segunda estructura de caso.
Cablee un Booleano llamado Begin Test a la terminal de selección de la
estructura de caso anidada, y cablee una constante de cadena de caracteres con el
valor Test de el caso verdadero a el registro de desplazamiento (Shift register).
Esta configuracion mantendra la maquina de estados en el estado Idle hasta que el
usuario proceda a presionar el boton para iniciar la prueba. Haga clic derecho en el
tunel de salida del Booleano y escoja Create » Constant. Cambie el valor constante
a True (verdadero).
Haga clic derecho en la estructura principal y adicione otro caso. Llame a este caso
Test . En el caso Test, coloque un Two Button Dialog, un boton doble de dialogo,
(Functions » Time & Dialog). Conecte el Texto The test has run. Click OK to quit,
Cancel to test again. con la terminal de mensaje. Coloque otra estructura de caso
adentro del caso Test, y conecte T button? la salida de el Two Button Dialog con
la terminal seleccionada. Haga una conexión del valor Idle desde el caso falso
hasta el registro de desplazamiento (Shift register), y una conexioncon costante
Booleana Verdadera con la terminal del ciclo mientras (while loop). El caso
Verdadero debera de contener una cadena de caracteres constante vacia, y un valor
Boleano Falso conectado con la condicion de terminacion. Esto terminara el
programa si el usuario presiona OK, y regresara al estado idle (ocio) si el usuario
presiona Cancel.
84
En LabVIEW, una opción llamada panel frontal remoto le permite al usuario
observar y controlar el panel frontal de un VI remotamente desde LabVIEW o un
navegador sin necesidad de programación. El usuario puede correr una aplicación o
revisar el progreso desde cualquier lugar. Además diferentes usuarios en diferentes
lugares pueden tener acceso simultaneo al VI.
Los usuarios remotos pueden observar el panel frontal en vivo (en tiempo real),
en lugar de imágenes estáticas. Pueden existir múltiples clientes observando el
mismo panel frontal. Sin embargo, solo un cliente puede controlar el panel frontal a
la vez.
85
Tools » Web Publishing Tool
Clic Salvar a Disco y el
VI es embebido a un
archivo HTML
Después que el
archivo a sido grabado,
puede ser reabierto y
personalizado en
cualquier editor HTML
Si usted desea personalizar su pagina web mas allá de lo que provee la herramienta
de publicación web (Web Publishing Too)l, simplemente abra el archivo html en
otro editor de html, y personalice alrededor del código del panel embebido para
LabVIEW.
86
Para mas información en cuanto a paneles frontales remotos, visite NI Developer
Zone (zona de desarrollo de NI), zone.ni.com.
87
LabVIEW tiene muchas otras herramientas disponibles para su desarrollo. Si bien
es cierto que las restricciones de tiempo no nos permiten entrar en muchos detalles,
es una buena idea indicar algunas de las capacidades avanzadas ofrecidas por
LabVIEW. Los estudiantes que están interesados en temas específicos pueden ir a
LabVIEW Example Finder o pueden visitar la zona de desarrollo NI (NI s
Developer Zone) para mas información.
Property Nodes (nodos de propiedad) Las propiedades son todas las cualidades
de un objeto en el panel frontal. Con property nodes, se crean o leen dichas
caracteristicas tales como color de foreground y background, formato y precision de
datos, visibilidad, texto descriptivo, tamaño y posicionamiento del panel frontal,
etc. Busque property node en la ventana de Find Examples, alli se encuentran 24
programas con este tema que vienen en LabVIEW.
Local Variables (variables locales) Las variables locales rompen con el
paradigma de programacion de flujo de datos, permitiendo que los datos sean
pasados sin necesidad de cables.
Global Variables (variable global) Un tipo especial de VI, usado para guardar
datos en la objetos del panel frontal con el proposito de intercambiar datos entre
VIs.
DataSocket Una plataforma independiente de intercabio de datos entre
computadoras y aplicaciones, basada en TCP-IP, pero sin la complejidad de la
programacion en bajos niveles.
Archivos Binarios I/O permite al usuario transferir datos a un disco en
aplicaciones de alta velocidad.
88
Que hago ahora?
89
CURSO BÁSICO DE LABVIEW 6i
1.1 OBJETIVO
1.2 DESCRIPCIÓN
Los VIs contienen una interface interactiva de usuario, la cual se llama panel
frontal, ya que simula el panel de un instrumento físico. Se puede entrar datos
usando el teclado o el ratón y tener una visualización de los resultados en la
pantalla del computador. El Panel Frontal es la interface hombre-máquina de un
VI.
Los VIs usan una estructura hereditaria y modular que permite realizar programas
por niveles o hacer programas con otros programas o subprogramas. Un VI
contenido en otro VI es denominado subVI. Todo VI se puede convertir en subVI
sin ningún tipo de cambio en su estructura.
Además LabVIEW puede ser usado con poca experiencia en programación pues
utiliza metodologías familiares a técnicos, ingenieros, doctores y la comunidad
científica en general.
Los controles son objetos que sirven para entrar datos al programa y pueden ser
manipulados por el usuario. Los controles son variables de entrada.
Los indicadores sirven para presentar los resultados entregados por el programa y
no pueden ser manipulados por el usuario. Los indicadores son variables de
salida.
Curso Básico de LabVIEW 6i 8
El diagrama de bloques contiene el código fuente gráfico del VI, posee funciones y
estructuras que relacionan las entradas con las salidas creadas en el panel frontal.
Contiene las herramientas necesarias para editar y depurar los objetos tanto del
panel frontal como del diagrama de bloques. Figura 1.4.
Operación
Asigna valores a los controles del panel frontal, se encuentra
Curso Básico de LabVIEW 6i 10
Posición
Selecciona, mueve y redimensiona objetos. La herramienta
cambia el icono del puntero cuando pasa por encima de objetos
que pueden modificar su tamaño.
Etiquetado
Crea y edita textos tanto en el panel frontal como en el
diagrama de bloques. El icono del puntero asociado a esta
herramienta es el que se muestra.
Cableado
Se utiliza para generar la estructura lógica de eventos mediante
la conexión de los terminales de cada objeto. Los cables
determinan el flujo de los datos.
Menú desplegable
Permite obtener el menú de opciones de un objeto. Esta
misma función se puede realizar haciendo un clic derecho del
ratón sobre el objeto.
Desplazamiento
Mueve todos los objetos dentro de la ventana activa.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 11
Punto de quiebre
Detiene la ejecución del programa en el punto del diagrama
donde se ponga. Se utiliza con fines de depuración.
Punto de prueba
Se pone sobre algún cable de conexión para verificar de forma
temporal el valor que fluye a través de éste.
Capturar color
Obtiene el color del objeto que se señale.
Colorear
Cambia los colores de objetos y fondos.
Controles e Indicadores
Controles e Indicadores String y Path.
Array&Cluster.
Estructuras.
Curso Básico de LabVIEW 6i 16
Comunicaciones.
Funciones de Comparación.
Adquisición de Datos.
Funciones de Archivo.
Funciones Avanzadas.
Matemáticas.
Menú File: Contiene entre otras las opciones convencionales del ambiente
Windows (abrir, cerrar, guardar, imprimir, salir).
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 19
Crea un nuevo VI
Crear un nuevo componente de LabVIEW
Abre un VI existente
Cierra la ventana activa
Cierra todas las ventanas
Guarda el VI activo
Guarda el VI activo con otro nombre
Guarda todos los VIs abiertos
Guarda el VI activo con opciones
Devuelve un VI a la última versión guardada
Sale de LabVIEW
Menú Edit: Permite realizar las acciones de edición como copiar, cortar, pegar,
deshacer, rehacer, borrar, importar y manipular componentes de LabVIEW.
Ejecuta el VI activo
Aborta la ejecución del VI activo
Menú Browse: Contiene opciones que permiten observar aspectos del VI activo y
toda su jerarquía.
Ejecutar
Botón para correr la aplicación, su forma varía de acuerdo al nivel
jerárquico donde se ejecute.
Ejecutar continuamente
Botón para ejecutar la aplicación repetidamente hasta que sea
presionado de nuevo o se presione abortar.
Abortar ejecución
Aborta la ejecución de una aplicación.
Pausar
Botón para pausar la aplicación. Si se presiona nuevamente la
ejecución continuará.
Fuentes
Menú para seleccionar tipos de letra
en objetos y textos.
Alineación
Permite alinear objetos tanto en el panel frontal como en el
diagrama.
Distribución
Permite distribuir uniformemente objetos tanto en el panel frontal
como en el diagrama.
Reorganización
Permite reorganizar la posición de los objetos tanto en el panel
frontal como en el diagrama.
Esta barra contiene además de los mismos botones de la barra del panel frontal
las herramientas de depuración.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 25
Depuración
Botón para observar el flujo de datos en el diagrama de bloques.
Paro a la entrada
En modo depuración sirve para generar un paro a la entrada de un
nodo.
Paro sobre
En modo depuración sirve para saltar un nodo.
Paro a la salida
En modo depuración sirve para salir de un nodo.
Advertencia
Si está habilitado aparece al lado izquierdo de la barra de
herramientas indicando que existen observaciones al código fuente
pero que no impiden la ejecución del VI.
Curso Básico de LabVIEW 6i 26
Entrar
Botón que aparece cuando se editan textos o números y sirve para
dar entrada a los datos. Esta función se puede cumplir también con la
tecla <INTRO>.
2. Si se realiza un doble clic sobre el elemento origen sin llegar hasta el elemento
destino el cable será temporal.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 27
Este menú se puede acceder haciendo clic derecho sobre el objeto, sea un
terminal, una estructura o un subVI, como se muestra en la figura 1.24.
6. Para reemplazar un objeto, se hace clic con el botón derecho sobre el mismo y
del menú que aparece seleccionar Replace.
3. Para abrir un subVI desde la ventana de diagramación, hacer doble clic sobre
él.
Curso Básico de LabVIEW 6i 32
En lenguaje G, es posible identificar los tipos de datos por la forma, tamaño y color
de sus terminales y cables.
Cada control e indicador numérico encierra el tipo de dato que tiene asignado. Por
ejemplo DBL significa que es de precisión doble.
El color del cable es indicativo del tipo de dato. Por ejemplo Naranja es para
números de punto flotante, Azul para enteros, Verde para booleanos, Fucsia para
cadenas, etc.
Los terminales son objetos del diagrama de bloques que representan un control o
un indicador del panel frontal. Toman el color respectivo de la variable que
manejan. Por medio de ellos se obtienen los datos de los controles y se envían
datos a los indicadores. Un terminal de control se diferencia de uno de indicador
en que los primeros poseen un bordo doble mientras los segundos uno sencillo.
Haciendo clic con el botón derecho sobre el cable y seleccionando Probe, aparece
la ventana como se indica en la figura 1.32.
Curso Básico de LabVIEW 6i 36
Esta ventana se puede obviar seleccionando la opción “Do not show this window
when launching”, que aparece en ella misma.
Curso Básico de LabVIEW 6i 38
Paleta Flotante Haciendo clic derecho en algún lugar del panel frontal.
Teclado <CONTROL> + E
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 41
Para tomar un objeto basta con hacer un clic sobre él en la paleta correspondiente
y luego otro clic en el lugar del panel o del diagrama donde se desee colocar.
Para introducir texto es conveniente utilizar el botón enter (Figura 1.46) que se
ubica a la izquierda de la barra de herramientas. La función de este botón puede
ser cumplida también con la tecla <INTRO> del teclado numérico extendido.
Si por alguna razón el objeto no posee rótulo se debe seleccionar Visible Items
>> Label del menú del objeto.
Curso Básico de LabVIEW 6i 48
Para editar cualquier texto se debe seleccionar con la herramienta de texto y luego
escoger Font Dialog en el menú de fuentes de la barra de herramientas. Esto
mostrará el menú de la figura 1.50.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 49
Otra forma de editar los tipos de letra es haciendo uso directo del menú de fuentes
de la barra de herramientas.
(Justify) y el Color (Color) de las fuentes asociadas a cada objeto. Como ejemplo
se han modificado las fuentes para obtener la figura 1.52.
Cuando el objeto está listo para ser cambiado de tamaño, toma el aspecto que se
puede observar en el objeto “CONTROL 1” en la figura 1.54.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 51
La figura 1.55 muestra como se debe arrastrar el ratón hasta donde se desee
modificar el tamaño del objeto.
La figura 1.56 muestra la modificación de tamaño realizada sobre los dos objetos
del panel.
Curso Básico de LabVIEW 6i 52
1.16.7 Guardar un VI
Dependiendo del sistema operativo, cambiará esta ventana y las condiciones para
asignar nombre a los VIs. No se debe guardar trabajos personales en las carpetas
de instalación de LabVIEW. Se recomienda utilizar otras carpetas para almacenar
el trabajo.
• Ejecute LabVIEW.
• Seleccione New VI, para crear un VI nuevo.
• Pegue el dibujo que realizó en el panel frontal del VI de la siguiente forma:
V R2R3
( )
R2R3 R2 + R3
+ R1
I= R2 + R3
R3
Ecuación 1.1. I en función de las demás variables.
• Ejecute el programa:
Esto permitirá que observe una animación de cómo fluyen los datos durante la
ejecución del VI.
Una vez realizados todos los cambios se podrá observar el panel de la figura 1.64.
Para obtener más información acerca de las funciones, como por ejemplo la forma
de operación y las características de polimorfismo y sobrecarga se puede utilizar
la ventana de ayuda.
2.1 OBJETIVO
2.2 DESCRIPCIÓN
1. Sequence.
2. Case.
3. For Loop.
4. While Loop.
5. Formula Node.
Para efectos de estudio se comenzará con las estructuras cíclicas que son While
Loop y For Loop.
La estructura While Loop es un ciclo que repite el subdiagrama que contiene hasta
que una condición determinada se cumpla. En G está representada por el marco
que se muestra en la figura 2.2.
Como se desea que el ciclo se detenga sólo cuando se presione el botón de paro,
entonces se debe cambiar la lógica por defecto del terminal de condición.
La figura 2.5 muestra su utilización en el diagrama para lograr una espera de 250
milisegundos en cada iteración.
Una forma fácil de obtener una gráfica de los valores de temperatura leídos por el
subVI de simulación, es con el indicador “Waveform chart” localizado en la paleta
de controles en el submenú Graph como se muestra en la figura 2.6.
El estudio detallado de este graficador será realizará más adelante. Por ahora
basta decir que este control permite acumular datos escalares y graficarlos.
Las figuras 2.8 y 2.9 muestran el panel frontal y el diagrama de esta aplicación.
La velocidad con que se genera los datos es controlada por la función Wait.
En C/C++ es análogo a
for(i=0, i<N, i++).
{
}
end
Curso Básico de LabVIEW 6i 72
Como se conoce el número exacto de veces que se debe repetir la tarea se utiliza
una estructura For Loop.
Para graficar los 100 números generados se utiliza una gráfica Chart.
La figura 2.11 muestra el panel y el diagrama que dan solución a este ejercicio.
Es muy frecuente que en las estructuras While Loop y For Loop sea necesario
pasar datos entre iteraciones. Para ello se utilizan los “shift registers”.
Esto significa que en realidad la suma realizada por este ejercicio es:
Se han sumado y dividido por 2 los datos correspondientes a las últimas dos
iteraciones.
Add Sequence Local: Utilizado para pasar un dato desde un frame a otro
posterior. Esta opción genera un terminal en el borde de la
estructura como en la figura 2.22.
Add Frame After: Adiciona un frame después del actual.
Add Frame Before: Adiciona un frame antes del actual.
Duplicate Frame: Genera una copia exacta del frame actual en un nuevo
frame.
Delete Frame: Elimina el frame actual. Sólo se habilita cuando la
secuencia posee dos o más frames.
Remove Sequence: Se utiliza para remover la estructura sequence. Este
procedimiento eliminará todos los objetos de los frames que
no estén visibles.
Curso Básico de LabVIEW 6i 80
Para la solución de este ejercicio se utiliza una sola estructura sequence con tres
frames como se enseña en la figura 2.23.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 81
Nótese que el dato entregado por la función tick count en el frame cero es enviado
al frame uno a través de una secuencia local.
Curso Básico de LabVIEW 6i 82
IF (condición) {
caso CIERTO
}
ELSE {
caso FALSO
}
Figura 2.26. Case booleano en LabVIEW.
Curso Básico de LabVIEW 6i 84
switch (variable) {
case constante1:
{ caso1 }
break;
case constante2:
{ caso2 }
break;
.
.
Figura 2.27. Case numérico en LabVIEW. default:
{ casoX defecto }
}
La estructura CASE también posee un menú que se obtiene haciendo clic derecho
sobre uno de sus bordes. En este menú se encuentra opciones como adicionar,
eliminar, duplicar, mover y organizar casos.
A partir de dos entradas numéricas y un control tipo menú con las opciones suma,
resta, multiplicación y división, se busca generar una salida que enseñe su
resultado.
En el Panel Frontal:
Para resolver este ejercicio es necesario utilizar un control tipo menú, que son
comúnmente utilizados para seleccionar una opción entre varias posibles.
El control menu ring posee también un menú al que se accede haciendo clic
derecho sobre éste. En él se pueden seleccionar acciones como adicionar,
remover o deshabilitar ítems. El menú de este control se muestra en la figura
2.31.
Se adicionan los ítems Sumar, Restar, Multiplicar y Dividir. El aspecto del control
menu ring desplegado se muestra en la figura 2.32.
En el diagrama de bloques:
Ahora se debe colocar las funciones en los respectivos casos, por ejemplo, la
función suma en el subdiagrama del caso cero, la resta en el uno y así
sucesivamente.
Los datos en todos los túneles de entrada y en el terminal de selección pueden ser
accedidos por todos los subdiagramas de casos.
Para que un túnel de salida este completo se le debe alimentar desde todos los
casos que posea la estructura. La figura 2.37 muestra dos túneles de salida en
una misma estructura case uno de los cuales no está completo.
Observe en la figura 2.37 que aún existe un túnel de salida incompleto. Esto
significa que en alguno o en varios de los casos no visibles aún éste no ha sido
alimentado. Esto se ve por ejemplo en la figura 2.38.
Se debe tener cuidado al completar los túneles, pues frecuentemente sucede que
el cableado no se realiza exactamente sobre el túnel sino que se generan túneles
nuevos que podrían estar superpuestos y aparentar ser uno sólo.
Por último, se debe recordar que el programa debe correr por si mismo sin la
ayuda del botón de correr continuamente. Para ello se anexa una estructura While
Loop que encierre toda la operación.
Asignación =
Condición ? :
or ||
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 93
xor ^
and &&
not !
Relacional == != > < >= <=
Aritméticas + - * / **
abs acos acosh asin asinh atan atanh ceil cos cosh cot csc exp
expm1 floor getexp getman int intrz ln lnp1 log log2 max min mod
rand rem sec sign sin sinh sqrt tan tanh
Con la utilización del nodo de fórmula la apariencia del diagrama sería como en la
figura 2.44.
C/C++ PASCAL
salida=(condición1)?(caso1):(condición2)?(caso2):(condicion3)?(caso3):(caso4);
Se puede escribir con sólo una línea de código dentro del nodo de fórmula así:
C = (M = 0) ? A + B : ( M = 1 ) ? A - B : ( M = 2 ) ? A * B : A / B ;
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 97
LabVIEW también ofrece una alternativa para estructuras tipo IF sin anidamiento
que consistan simplemente en determinar si se utiliza un dato u otro. Esto es
realizado por la función Select, que se muestra en la figura 2.47 y que se puede
encontrar en la paleta de funciones en el submenú comparition.
2
Para resolver la ecuación a X + b X + c = 0, se requiere de tres controles
numéricos reales para a, b y c, y de dos indicadores complejos para mostrar las
raíces encontradas.
b b2 - 4 a c
X 1,2 = - ±
2a 4 a2
Ecuación 2.1. Raíces de la ecuación cuadrática.
Los controles booleanos pueden ser personalizados con seis diferentes tipos de
acciones mecánicas, permitiendo así obtener mayor control sobre las tareas a
desarrollar y lograr que los paneles frontales de los instrumentos virtuales puedan
parecerse más a los instrumentos físicos.
Algunos controles booleanos vienen predefinidos por LabVIEW con algún tipo de
acción mecánica, ya que fueron diseñados para desempeñar una tarea específica.
Los controles “STOP” y “CANCEL” pueden ser un buen ejemplo de ello. La figura
2.51 muestra el control booleano “STOP” con su respectiva acción mecánica.
Los Switch son mecanismos que retornan al estado inicial una vez el usuario lo
decida. Se muestran en la figura 2.52.
Los Latch son mecanismos que retornan al estado inicial cuando el valor sea leído
por el VI o cuando el usuario así lo determine. Son mostrados en la figura 2.53.
Se debe recordar que el botón STOP posee una acción mecánica predefinida.
Este mecanismo actúa sobre la variable sólo cuando el clic del ratón es liberado.
El control volverá a su estado anterior sólo cuando el usuario decida volver a
accionarlo.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 105
En la figura 2.58 el control ha sido accionado a través de un clic, pero el botón del
ratón no ha sido liberado, por lo anterior, la salida no ha cambiado su estado.
Nótese la posición del control.
Este mecanismo cambia el valor del control cuando el usuario hace un clic sobre
el control booleano, este retiene su valor hasta que el VI lo lea, una vez sea leído
el control vuelve a su valor por defecto, incluso si el usuario todavía tiene
presionado el botón del ratón. Esta acción es especial para truncar la acción de
un While Loop.
Este mecanismo de acción trabaja de manera similar al Latch When Pressed, con
la diferencia de que el control actúa únicamente cuando el usuario libera el clic del
ratón. El objeto booleano retendrá su valor hasta que el VI lo pueda leer.
El mecanismo de acción cambia el valor del control haciendo un clic sobre éste y
retiene el valor hasta que el VI lo lee o el usuario lo libera, dependiendo de que
fuera lo último que ocurrió.
Importante: Los controles booleanos que utilizan las acciones tipo Latch no
pueden generar variables locales.
t2
E (t ) = ∫ P(t )dt
t1
N −1
E = ∑ Pi * (Ti − Ti −1 )
i=0
La función que simula la tarea de recoger los datos enviados por un dispositivo de
adquisición se muestra en la figura 2.69 y se puede encontrar en la paleta de
funciones en el submenú Tutorial.
Con el fin de poder acumular los valores de energía de cada lapso de tiempo, es
decir la suma de los Ei, es necesario contar con un segundo shift register, que se
debe inicializar en cero. Obsérvese lo necesario de estos elementos para contar
con una historia acumulativa de esta variable energía.
1. Se requiere una variable de iteración para una estructura For Loop que se
comporte según:
3.1 OBJETIVO
3.2 ARREGLOS
Un arreglo es una colección ordenada de variables del mismo tipo. Puede tener
una o varias dimensiones y hasta 231-1 elementos por dimensión.
Para crear un control o indicador tipo arreglo se debe seguir estos pasos:
2. Poner dentro del contenedor un control o un indicador del tipo de dato que se
desee el arreglo. No es posible poner dentro del contenedor ni gráficas ni
contenedores de arreglos.
Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 119
En general :
que el tamaño del arreglo, o que el número de elementos restantes, las posiciones
no utilizadas estarán deshabilitadas y se mostrarán atenuadas (grayed-out), como
en los casos P1, P3 y P4 de la figura 3.4.
Array Size:
Index Array:
La salida de esta función también puede ser un arreglo cuando se cablean sólo
algunos de los índices.
El nuevo elemento o arreglo debe ser del mismo tipo y dimensión del arreglo
inicial.
Initialize Array:
Build Array:
Cuando todas las entradas poseen dimensión n, la salida será de dimensión n+1.
Ahora bien, si se desea que la salida sea un arreglo de dimensión n conformado
por la concatenación de todas las entradas, entonces se debe seleccionar
Concatenate Inputs del menú de la función.
Array Subset:
Rotate 1D Array:
Reverse 1D Array:
Reordena todas las posiciones del arreglo desde el último elemento hasta el
primero.
Search 1D Array:
Split 1D Array:
Sort 1D Array:
Retorna los valores máximo y mínimo de un arreglo numérico con sus respectivas
posiciones.
Curso Básico de LabVIEW 6i 130
Transpose 2D Array:
Interpolate 1D Array:
Los elementos de las abscisas son los números naturales desde 0 hasta N-1, y X
el número real donde se desea evaluar el arreglo.
Threshold 1D Array:
Interleave 1D Arrays:
Decimate 1D Arrays:
Array Constant:
Los marcos de fondo que separan la entrada de las salidas en este panel son
decoraciones obtenidas del menú Decorations de la paleta controles.
Se puede observar que el terminal del arreglo “Entrada” alimenta cuatro funciones
tomadas de Functions>>Array que cumplen las tareas específicas solicitadas.
Curso Básico de LabVIEW 6i 134
Dado un arreglo 2D de 1000x2 donde cada columna posee 1000 datos de una
señal, obtener una gráfica de los datos de una de las columnas en una waveform
chart.
En la figura 3.32 se puede observar tres diferentes formas de cables, logrando así
establecer una diferencia en cuanto al número de dimensión que posee el dato
respectivo.
Obsérvese con atención la salida de los datos de la estructura FOR. Estos túneles
tienen la característica especial de ordenar los datos de cada iteración del ciclo en
un arreglo de salida con todos los datos generados en cada iteración. Esta opción
es válida también en los ciclos WHILE. Sin embargo, la opción allí esta
Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 137
En el caso del ciclo FOR, el indexing está habilitado por defecto y permite obviar el
terminal N del ciclo FOR. Sin embargo, si se cablea, el ciclo se detendrá cuando
se terminen los datos del arreglo o cuando se cumpla N, lo que ocurra primero.
3.3 CLUSTERS
Unbundle:
Permite separar cada una de las variables de un cluster para poderlas utilizar
independientemente dentro de un diagrama.
Bundle:
La figura 3.39 muestra cómo la función Unbundle separa todas las variables de un
cluster y cómo la función bundle puede crear un cluster. Sin embargo para estos
procedimientos se requiere conocer el orden en que se encuentran las variables
dentro del cluster.
Dentro de un cluster las variables están numeradas. Este orden se requiere en las
funciones Bundle y Unbundle para conocer cual es el terminal al que corresponde
cada variable.
El orden del cluster se puede acceder en el panel frontal por el menú del objeto
seleccionando la opción Reorder Controls In Cluster. Figura 3.40.
Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 141
Si un cluster contiene sólo elementos del mismo tipo puede ser convertido a un
arreglo de 1D por medio de la función “Cluster To Array”.
Ahora bien, cualquier arreglo de 1D puede ser convertido en un cluster por medio
de la función “Array To Cluster”.
En este caso es necesario definir el tamaño del cluster a crear. Esto se logra
seleccionando Cluster Size del menú de la función.
El índice de cada elemento dentro del arreglo será equivalente a su orden dentro
del cluster y viceversa.
Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 143
Lo primero que se debe realizar es separar las variables del cluster de entrada.
Esto se logra con la función Unbundle.
Curso Básico de LabVIEW 6i 144
Existe además dos funciones análogas a Unbundle y Bundle pero que funcionan
de acuerdo a los nombres de las variables. Estas funciones son “Unbundle by
name” y “bundle by name” respectivamente y se encuentran en el mismo menú de
la paleta de funciones. La ventaja de utilizar dichas funciones radica en poder
observar las variables por sus etiquetas y no por el tipo de dato. La figura 3.46
muestra una solución al ejercicio reemplazando Unbundle por la función Unbundle
by name.
La función Bundle by name sin embargo sólo puede ser utilizada para reemplazar
directamente los elementos de un cluster previamente existente. La figura 3.47
muestra como se reemplaza en el cluster de entrada las variables A y D por los
valores 3.25 y True respectivamente.
4.1 OBJETIVO
4.2 DESCRIPCIÓN
• Waveform chart
• Waveform graph
• XY Graph
• Digital waveform graph
• Intensity chart
• Intensity graph
• 3D Surface graph
• 3D Parametric graph
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 149
• 3D Curve graph
Cada graficador tiene asociado un terminal de tipo dinámico que sólo responderá
a algunas configuraciones especiales de datos definidas por LabVIEW.
Figura 4.3. Diferentes aspectos del terminal del graficador waveform chart.
Las figuras 4.6 y 4.7 muestran el panel frontal y la ventana de diagramación del
ejercicio respectivamente.
Curso Básico de LabVIEW 6i 152
Strip Chart
Scope Chart
Sweep Chart
Los datos WDT son un registro especial generado por LabVIEW, que facilita el
manejo matemático, el análisis y la adquisición de señales. La figura 4.15,
muestra el contenido de un registro WDT.
Build Waveform
Herramienta que permite crear un dato WDT a partir de: un valor inicial de tiempo
to, un intervalo de tiempo entre puntos dt y los valores de la forma de onda
contenidos en un arreglo [Y].
Waveform Operations
Conjunto de herramientas matemáticas aplicables a datos WDT.
Waveform measurements
Conjunto de herramientas para el análisis de los datos tipo WDT.
Waveform Generations
Conjunto de herramientas que se utilizan para generar señales tipo WDT. Esta
subpaleta se muestra en la figura 4.18.
Graficar en un waveform chart: v(t) = 5 Cos (377t) utilizando un dato tipo WDT
Graficar en un mismo waveform chart dos señales. Una seno y otra coseno.
Generar las formas de onda del ejercicio anterior con un barrido de pantalla
Sweep Chart y un control de retardo.
Nótese que el formato, esta vez, para el graficador tipo waveform chart es un
registro de escalares (cluster de escalares).
La figura 4.27 muestra el panel frontal de este ejercicio. Las opciones stack Plots
y sweep chart están habilitadas.
Curso Básico de LabVIEW 6i 166
Calcular la potencia p(t) y la potencia activa de una carga cuyo voltaje y corriente
son:
La figura 4.43 muestra el panel frontal utilizado para dar solución a este ejercicio.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 177
Generar dos curvas a partir de tres funciones f(t) y construir arreglos de clusters.
Cada cluster contendrá los vectores [x] y [Y]. La figura 4.46 muestra el panel
frontal del VI.
5.1 OBJETIVOS
5.2 SUBVIS
Un subVI es un VI que esta siendo utilizado dentro de otro VI y por tanto tiene
asociado un icono y conectores de entrada y salida de datos.
Los subVIs permiten modular una aplicación en tareas más simples permitiendo
que aplicaciones extensas puedan ser divididas en varias tareas pequeñas, las
que a su vez pueden ser divididas en otras tareas más pequeñas y así
sucesivamente.
float operar ( A )
{
float A,B;
B=(A**3)/5
Return (B);
}
La figura 5.2 muestra como puede ser utilizada la función “operar” dentro de otra
función.
main ()
{
float X,Y;
cout << ”Entre X ”;
cin >> X;
Y = operar ( X );
cout << “El resultado es: “<< Y;
return 0;
}
Puede observarse que el VI operar.vi ahora está siendo utilizado dentro de otro VI,
por lo tanto es un subVI.
Curso Básico de LabVIEW 6i 184
El icono que identifica un VI, está ubicado en la parte superior derecha del panel
frontal.
Para editarlo se debe hacer clic derecho en él y seleccionar Edit Icon como se
observa en la figura 5.3.
Esta acción mostrará la ventana de diálogo de la figura 5.4 donde se puede editar
el icono.
Text: Edita texto dentro del icono. Si se hace doble clic en este
icono se podrá seleccionar diferentes fuentes.
Curso Básico de LabVIEW 6i 186
Copy From: Herramienta que permite copiar un icono realizado en otro formato de
color (B&N, 16 colores o 24 colores) al formato seleccionado.
Show Terminal: Si se hace clic en esta opción se podrá observar los terminales
del conector.
CANCEL: Para retornar a la ventana del panel frontal sin guardar los cambios.
El icono elaborado será entonces reemplazado por los terminales que LabVIEW
espera que sean cableados. La figura 5.6 muestra los conectores esperados para
operar.vi.
Una vez asociado un conector con algún control o indicador, este tomará el color
del tipo de representación de la variable seleccionada.
Este tomará el color negro para mostrar que se encuentra seleccionado. Figura
5.8.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 189
Se recomienda que los controles se asocien a conectores del lado izquierdo del
icono y los indicadores a conectores del lado derecho del icono.
5. Del icono del panel se selecciona la opción “show Icon” para regresar a la
vista de icono.
Ahora el subVI está listo para ser utilizado como una función más dentro del
diagrama.
Dada la señal:
Con f = 60 Hz.
1. Utilizar un filtro para dejar pasar una banda definida por el usuario.
2. Graficar:
a) Señales original y filtrada.
b) Espectro de potencia de las señales original y filtrada.
Del enunciado del problema se puede observar que se requiere algunos datos dos
veces, una vez para la señal original y otra para la señal filtrada.
Por consiguiente, lo más recomendable en este caso es construir una sola función
que realice los cálculos requeridos para cualquier señal de entrada y luego
aplicarla a cada señal solicitada.
a) Espectro de potencia.
b) Amplitudes armónicas.
c) Frecuencias armónicas.
d) Distorsión armónica total.
e) Verdadero valor RMS.
Para este diagrama de bloques habrá un panel frontal sencillo con los controles e
indicadores necesarios como se muestra en la figura 5.16.
Para que este nuevo VI pueda ser utilizado como un subVI dentro de otro de
mayor jerarquía se debe definir los conectores que permitirán la entrada y salida
de datos.
Para definir los conectores se debe seguir los pasos descritos en el ítem 5.4 de
este mismo capítulo. La figura 5.17 muestra el icono con los conectores
asignados.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 197
Ahora este VI está listo para ser guardado y llamado desde un VI de mayor
jerarquía.
Si se desea obtener la estructura jerárquica del VI, se debe buscar la opción Show
VI Hierarchy del menú Browse de la barra de menú. La jerarquía para este caso
se ve en la figura 5.19.
El VI de mayor jerarquía es denominado “TOP VI LEVEL”, todos los demás son los
subVIs con los que está programado el Top VI Level, y a su vez, estos subVIs
están formados por otros subVIs y así sucesivamente.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 199
Se puede consultar una referencia completa acerca de cada una de las opciones
de propiedad en la ayuda en línea de LabVIEW, Contents and Index en el menú
HELP.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 201
Se desea que el usuario pueda seleccionar una opción entre un conjunto de ellas.
Para eso se debe construir un panel frontal como el de la figura 5.21:
Los cuatro terminales de los controles booleanos son llevados a la función Build
Array para construir un arreglo booleano. Luego dicho arreglo es convertido en un
número utilizando la función Boolean Array To Number que se encuentra en la
paleta de funciones en el submenú Boolean.
Así, cuando no hay ningún control presionado se formará el arreglo booleano 0000
y al selector de la estructura CASE llegará un cero (0). Si se presiona el botón
OPCION 1, se formará el arreglo booleano 1000 donde el primer bit es el menos
significativo, por lo tanto equivale al número decimal 1 que llegará al selector del
CASE. Si se presiona OPCION 4, se formará 0001, donde el primer bit es el
menos significativo, por lo tanto el decimal 8 llegará al selector del CASE.
Para mostrar un cuadro de diálogo simple, se puede utilizar la función One Button
Dialog ubicada en el menú Time&Dialog de la paleta de funciones. Las constantes
tipo cadena se pueden encontrar en la paleta de funciones en el submenú String.
Nótese que cada opción puede ser un subVI encargado de realizar alguna tarea
específica.
Si la OPCION 1 del menú anterior tuviera como tarea solicitarle al usuario que
ingrese sus datos, se requeriría de un subVI que muestre su panel frontal cuando
es llamado.
Lo primero que se debe hacer es un nuevo VI que solicite los datos del usuario.
Los controles, son ubicados dentro del ciclo WHILE, con el fin que puedan ser
manipulados por el usuario hasta que se presione OK o CANCEL.
Los indicadores cumplen la función de pasar los datos a otro subVI. Como no se
requieren observar en el panel, del menú de cada uno de los terminales de
indicador se selecciona la opción Hide Indicator.
En este caso, sólo es necesario crear conectores para los indicadores. La figura
5.26 muestra el icono creado y los conectores.
El shift register se utiliza para almacenar el último valor del indicador tipo STRING.
Sin embargo el VI todavía no está listo para correr. Si se intenta correr el VI, se
observará que las opciones 2, 3 y 4 funcionan normalmente, pero la opción 1 no
realiza su trabajo y hace que el VI deje de funcionar correctamente.
Esta acción mostrará la ventana de la figura 5.31. Se debe activar las opciones de
“Mostrar el panel cuando sea llamado” y “Cerrar el panel si originalmente es
cerrado”. Esto permitirá que el subVI muestre su panel cuando sea llamado y lo
cierre cuando termine de ejecutarse.
Son locales, porque su alcance se limita a un mismo VI. Para obtener una
variable local, se debe buscar la opción Create>>Local Variable del menú del
objeto como se muestra en la figura 5.32.
Sólo es posible crear una variable local de un objeto si este tiene etiqueta. El
aspecto de una variable local es similar al de un terminal, toma el color
representativo del tipo de variable y muestra en su interior la etiqueta del control o
indicador al que pertenece. Una variable local del control numérico de la figura
5.32 es mostrada en la figura 5.33.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 211
Por defecto, las variable locales se crean en modo de escritura. Es decir, operan
como si fueran un indicador, pues únicamente reciben datos.
Para cambiar el sentido del flujo de los datos es necesario hacer clic derecho y
cambiar a modo lectura, o a escritura si la variable esta en modo lectura. La figura
5.34 muestra la forma de cambiar el sentido de los datos para la variable local de
la figura 5.33 y el aspecto que toma cuando está en modo lectura.
b) Mostrar un cuadro de diálogo con un mensaje que diga “50 datos entre 0 y
1 terminados”
Este es un problema que no puede resolverse sin utilizar una variable local.
El panel frontal de este ejercicio únicamente cuenta con un graficador tipo CHART,
escalado para mostrar 100 datos entre 0 y 2. La figura 3.36 muestra el panel
frontal.
Es posible generar los 50 datos entre 1 y 2 con intervalos de 15ms, pero para
graficarlos en el mismo CHART se requiere una variable local de CHART en modo
escritura para poder enviarle datos desde el FRAME 2 de la secuencia.
La figura 5.39 muestra dos ciclos WHILE que deben ser detenidos
simultáneamente.
La tarea del ciclo de la izquierda es recoger un dato de temperatura cada 500 ms,
mientras el de la derecha genera continuamente una señal seno de 60 Hz. Se
requiere que las dos tareas se realicen simultáneamente. La figura 5.40 muestra
una forma INCORRECTA para detener los dos ciclos.
Evidentemente esta opción es también INCORRECTA, pues aunque los dos ciclos
se ejecutarán simultáneamente, el botón de paro sólo será leído una vez,
haciendo que el VI caiga en un ciclo infinito.
La única forma posible de cumplir con la tarea solicitada es utilizando una variable
local del botón de paro como se muestra en la figura 5.42.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 217
Las variables globales de LabVIEW son VIs que únicamente poseen panel frontal.
Su utilidad se similar a la de las variables locales, pero su rango de aplicación es
más amplio ya que pueden operar entre subVIs.
Las variables globales se pueden crear seleccionando la opción New... del menú
File o desde la paleta de funciones seleccionando global del submenú structures.
La figura 5.44 muestra esta última opción.
Las variables globales pueden estar agrupadas en un solo archivo que puede
tener extensión .VI o .GLB. Para asignar los datos que formarán parte de un
grupo de variables globales basta con hacer doble clic sobre el icono de la figura
5.45 para que se muestre un panel frontal como el de la figura 5.46.
En este panel podrán ser colocadas todas las variables que se desee. Por
ejemplo la figura 5.47 muestra la variable global con varios datos asignados.
Para ver funcionando los dos VIs simultáneamente se pueden mostrar sobre el
escritorio como en la figura 5.53.
6.1 OBJETIVO
Estudiar el manejo de las variables tipo String o cadena y las funciones para el
manejo de archivos que ofrece LabVIEW.
6.2 CADENAS
Una variable tipo String o cadena es una colección ordenada de caracteres ASCII.
Se puede diferenciar los controles y los indicadores por su color de fondo, ya que
los primeros utilizan por defecto un fondo blanco mientras que los segundos uno
gris.
String Length
Concatenate Strings
Enlaza n cadenas en estricto orden (desde string 0 hasta string n-1) en una sola
cadena de salida.
String Subset
Esta función retorna una subcadena de la cadena de entrada, cuyo primer caracter
esta determinado por la entrada offset y su longitud es indicada en length. Si esta
entrada no es cableada se tomará como longitud el resto de la cadena.
To Upper Case
Replace Substring
Reemplaza una porción de tamaño length de una cadena por una subcadena a
partir del offset. Si no se especifica una longitud se tomará por defecto el tamaño
de la subcadena.
Esta función busca una subcadena de una cadena y la reemplaza por otra
subcadena establecida.
Match Patern
%s Formato string
%f Formato de punto flotante
%d Formato decimal entero
%b Formato binario
Constantes de cadena
Empty String: Consiste de una cadena que esta vacía. Su longitud es cero.
Carriage Return: Consiste de una cadena constante que contiene el valor ASCII
CR.
Line Feed: Consiste de una cadena constante que contiene el valor ASCII LF.
End of Line: Consiste de una cadena constante que contiene un fin de línea
dependiendo de la plataforma utilizada.
Existe otra paleta que contiene las funciones de cadena adicionales como lo indica
la figura 6.16.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 233
Pick Line
Adiciona a una cadena existente una línea de una lista de subcadenas separadas
por el retorno de carro, previamente definidas por el usuario en multi-line string.
La entrada line index define cual subcadena se adiciona.
Esta función compara el principio de la cadena de entrada con cada uno de los
elementos del arreglo cadena. Si encuentra coincidencia con alguno retorna la
posición del arreglo en la cual lo encontró y como cadena de salida el resto de la
cadena de entrada.
Compara el inicio de la cadena de entrada en string con las cadenas true string y
false string. De acuerdo a la cadena que concuerde se entrega un valor booleano
y la cadena de entrada sin el término similar.
Rotate String
Reverse String
Cuando se tiene la cadena final se calcula su longitud con la función String Length,
se obtiene su inversa y se encuentra la posición del valor numérico con las
funciones Search Split /String y reverse string.
Se desea presentar los datos de un medidor que puede leer tres variables
(Corriente, Voltaje y Resistencia) seleccionando una a la vez.
Una forma para conseguir que la cadena “Lectura” varíe su contenido de acuerdo
al menú “Selector” es construir una estructura CASE que entregue a la función
Format into String los parámetros adecuados a cada caso.
En las figuras 6.31, 6.32 y 6.33 se muestra el diagrama para este ejercicio.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 241
6.3 ARCHIVOS
El manejo que se hace con archivos es esencialmente para realizar alguna de las
siguientes operaciones:
Las funciones que utiliza LabVIEW para estos fines se encuentran en el submenú
File I/O de la paleta de funciones. Existe específicamente tres pasos relacionados
con el manejo de un archivo:
Una clasificación de los VIs que realizan estas operaciones se muestra en la figura
6.34.
Curso Básico de LabVIEW 6i 244
Dependiendo del sistema operativo, los Path deben tomar la forma adecuada.
Windows:
MacOS:
Unix:
Figura 6.36. Rutas en sistemas operativos.
Otras constantes están encargadas de enviar una ruta vacía, mostrar el directorio
por defecto, crear directorios temporales, entre otras.
Open/Create/Replace Files
Este VI abre, crea o reemplaza un archivo desde la ruta indicada en file path. Si lo
encuentra entrega un valor de referencia en refnum que LabVIEW utilizará para
identificar todas las tareas que se realicen sobre ese mismo archivo. Si a este VI
no se le especifica la ruta del archivo, entonces en el momento de la ejecución el
VI abrirá un cuadro de diálogo desde el cual se puede elegir el archivo.
Read File
Este VI recibe el refnum del VI anterior y lee el número de bytes que se le han
especificado en count desde la posición definida por el pos mode y el pos offset,
así:
Write File
Close File
Build Path
Strip Path
Los VIs utilizados para el manejo de archivos, generalmente poseen como salidas
terminales de refnum y de error, los cuales además de utilizarse para el control de
las tareas y para obtener información de procesos errados, proveen flujo de datos
del programa en la forma esperada (abrir o crear un archivo, realizar operaciones
sobre él y posteriormente cerrarlo). La figura 6.47 muestra un modelo alterno a la
figura 6.46.
Los archivos tab delimiter son aquellos en los cuales un arreglo 2D utiliza
caracteres especiales para la separación entre columnas y filas.
Curso Básico de LabVIEW 6i 252
Este ejercicio busca crear un archivo de este tipo que contenga 2 columnas. Allí
se almacenarán los datos arrojados por el Digital Thermometer.vi en una columna
y en la otra columna el número correspondiente al dato generado. Se debe
guardar el archivo con extensión .txt y abrirlo posteriormente en un procesador de
texto u hoja de cálculo.
Es muy importante recordar que cuando se trabaja con shift registers deben
inicializarse con un valor de acuerdo al tipo de dato que se le cablea. En este
ejercicio se ha utilizado una cadena vacía para inicializar el shitf register.
Una vez se ha generado los datos se crea el archivo, se escribe los datos allí y
luego se da por terminado el proceso con el Close File.VI.
Se busca recuperar el archivo creado en el ejercicio 6.4. La figura 6.51 detalla los
pasos a seguir en la recuperación de la información.
Observe que a la función Spreadsheet to array debe cablearse una constante con
el tipo de datos a recuperar, por esta razón se creó una constante arreglo 2D con
formato DBL.
Se creará un archivo binario con los datos generados por el usuario al interactuar
con un control numérico tipo dial.
Nota: Se debe realizar una validación para que datos similares contiguos no sea
guardados.
Se ha utilizado un indicador tipo arreglo para visualizar los datos que se han
generado.
LabVIEW posee funciones de alto nivel para realizar tareas sencillas de lectura y
escritura de archivos tipo ASCII o binarios de forma directa.
Entre las funciones de la primera fila podemos destacar las utilizadas para manejo
de spreadsheet tanto en lectura como en escritura, adicionar o recuperar
caracteres y/o líneas.
Curso Básico de LabVIEW 6i 260
En la tercera fila aparecen las funciones avanzadas, las cuales son utilizadas para
operar sobre la estructura de directorios. En la figura 6.56 se presenta la paleta de
este tipo de funciones.
Estos VIs pueden ser utilizados intuitivamente o con la ayuda presentada por
LabVIEW para cada uno de sus VIs.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 261
El valor de x debe ser el equivalente en radianes a cada grado desde 0 hasta 360.
Los valores de seno, coseno y tangente deben ser guardados con 6 cifras
decimales.