1. Ing. Mayra Peña. 1
¿Qué es LabVIEW?
LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) es
un entorno de desarrollo y diseño de sistemas con un lenguaje visual gráfico.
LabVIEW utiliza el lenguaje G (lenguaje gráfico) que acelera la productividad o
desarrollo de programas para una mejor eficiencia en el desarrollo de sistemas.
Es un software creado por la empresa National Instruments en 1976 y
sacado al mercado en 1986. Al desarrollar un programa en LabVIEW, se crea un
Instrumento Virtual o VI que contiene la interfaz gráfica del programa y el diagrama
de bloques (código).
Cuando un programa está terminado, el usuario final hace uso del panel
frontal, donde se encuentra todo lo necesario para controlar un sistema. El
diagrama de bloques es donde se encuentra el código del programa, es donde el
programador accede para modificar o mantener el programa.
Actualmente, el software de programación LabVIEW se puede utilizar en los
sistemas operativos Microsoft Windows, Mac OS X, GNU/Linux. Una de las
principales características de LabVIEW es que es relativamente fácil de usar, no
se requiere ser un experto en el área de programación para poder hacer un
programa que se pudiera considerar como complejo o incluso imposible de hacer
para algunos en otros lenguajes.
Aunque es necesario aclarar que para desarrollar programas que se
apliquen a la automatización, control, adquisición y manejo de datos sí es
necesario tener conocimientos más avanzados no solo de programación, sino de
otras áreas específicas para cada aplicación del programa que se tenga
planeado.
LabVIEW es principalmente utilizado por los ingenieros para el manejo de
datos, la comunicación entre una computadora y un aparato o circuito externo es
imprescindible para las aplicaciones que se le pueden dar al software, por lo que
LabVIEW puede comunicarse con interfaces como:
Puerto serial
Puerto paralelo
GPIB
PXI
VXI
TCP/IP
Irda
Bluetooth
USB
2. Ing. Mayra Peña. 2
OPC
Entre otros.
Esto es lo que hace del Laboratorio Virtual de Instrumentación una
excelente opción para proyectos grandes donde se requieran conocimientos de
programación, electrónica, mecánica, robótica, etc. este software es utilizado en
empresas y agencias importantes como la NASA.
La programación representa un factor muy importante al hablar de
proyectos de automatización y control, donde se especializan ingenieros
mecatrónicos, robóticos y más. LabVIEW ofrece la herramienta para crear el
software, el programa depende del programador y su funcionamiento, eficacia y
utilidad dependerán de las habilidades de éste mismo.
“La potencia está en el software” Una frase muy célebre de LabVIEW, que
hace referencia a la capacidad e importancia que puede tener un programa en un
proyecto.
Funcionalidad de la aplicación
Una de las funciones básicas será la de obtener datos del hardware de
forma transparente al usuario.
La funcionalidad del programa incluye tratamiento de señal, control del flujo
de programa, control de errores, etc…
Puede implementarse en lenguajes basados en texto (Visual Basic, C++,
LabWindows/CVI, etc.) o puede utilizar lenguaje gráfico como Labview,
Snap Master, DasyLab, HP-VEE, Visual Designer de Burr Brown, etc.
Nuestro estudio se centrará en la programación bajo el entorno de
programación gráfica LabView.
Programación gráfica
Los procesos programables se definirán mediante un lenguaje gráfico en
vez de un lenguaje orientado a líneas de código como estamos acostumbrados
normalmente.
En este tipo de programación las funciones son bloques que se
interconectan entre sí, intercambiando la información.
Cuando usted diseña programas con Labview está trabajando siempre bajo
algo denominado VI, es decir, un instrumento virtual, se pueden crear VI a partir
de especificaciones funcionales que usted diseñe. Este VI puede utilizarse en
cualquier otra aplicación como una subfunción dentro de un programa general. Los
VI's se caracterizan por: ser un cuadrado con su respectivo símbolo relacionado
con su funcionalidad, tener una interfaz con el usuario, tener entradas con su color
de identificación de dato, tener una o varias salidas y por su puesto ser
reutilizables.
3. Ing. Mayra Peña. 3
Los programas de LabVIEW constan de un panel frontal y un diagrama en
bloque. En el panel frontal se diseña la interfaz con el usuario, viene a ser la cara
del VI y en el diagrama de bloques se programa en lenguaje G el funcionamiento
del VI.
El panel frontal.
El panel frontal de un VI es una combinación de controles e indicadores.
Los controladores son aquellos elementos que entregan datos al diagrama en
bloques desde el panel frontal por entrada desde teclado o con el mouse simulan
los dispositivos de entrada de datos del VI y pasan los datos y pasan los datos al
diagrama en bloque del VI. Los indicadores son aquellos elementos que entregan
datos al panel frontal desde el diagrama en bloques para ser visualizados en el
display, simulan los dispositivos de salida de datos del VI que toman los datos
desde el diagrama en bloque del VI.
Diagrama en bloques.
Esta almacena el diagrama en bloques del VI, el código fuente gráfico,
(Lenguaje G) del instrumento virtual.
Se construye este diagrama con bloques funcionales denominados nodos,
conectándose o uniéndose entre si según sea el objetivo.
Estos nodos realizan todas las funciones específicas necesarias para el VI
y controlan el flujo de la ejecución del VI.
Conociendo LabVIEW
Al ejecutar el software LabVIEW, nos aparece una ventana como la
siguiente:
4. Ing. Mayra Peña. 4
Aquí podemos elegir del menú la opción de abrir un nuevo VI, un proyecto
en blanco o un VI desde una plantilla. Para empezar elegiremos abrir un VI en
blanco.
Nos aparecen dos ventanas, el Front Panel (Panel frontal) y Block Diagram
(Diagrama de bloques). En el panel frontal, es donde podemos elegir los
elementos que conformarán nuestro programa.
En la parte de arriba podemos encontrar el menú de ejecución, donde
podemos ejecutar el programa, pausarlo o abortarlo.
El primer botón (Run) sirve para ejecutar el programa, pero si el código no
incluye un ciclo para que el programa se repita infinitamente o la cantidad de
veces que el usuario elija, sólo parpadeará la pantalla y el programa no hará nada.
Si no se está trabajando con ciclos, es necesario hacer clic en el segundo
botón (run continuously), que significa correr continuamente, de esta manera, el
5. Ing. Mayra Peña. 5
programa se ejecutará hasta que el usuario vuelva a dar clic en ese botón o
realizar alguna acción en el programa que haga que éste se detenga.
El tercer botón sirve para abortar la ejecución. Este ícono se utiliza
solamente cuando el programa se cicla, es decir; que no se puede detener por
algún error en la programación. Esto sucede únicamente cuando se trabaja con
ciclos y es recomendable no usarlo si no es absolutamente necesario, ya que el
usarlo podría causar pérdida de datos.
El cuarto botón sirve para pausar la ejecución del programa.
El menú de la imagen 4 sirve para modificar el tamaño, fuente y color de las
letras que se utilicen en la interfaz del programa. Los otros cuatro botones sirven
para alinear y mover los elementos que se estén utilizando para dar un aspecto
más estético.
En la esquina superior derecha se encuentra la barra de búsqueda y el
botón de ayuda. También están dos íconos, el primero sirve para incluir sub VI´s
en el programa, aquí se construye el panel conector para poder utilizar sub VI´s.
El otro ícono sirve para ver y modificar las propiedades del VI (clic
derecho>VI properties). Desde ahí se puede editar el tamaño de la ventana del
programa, proteger el código con contraseña, el uso de CPU, etc.
También se puede editar el ícono dando clic derecho> Edit icon.
6. Ing. Mayra Peña. 6
En el diagrama de bloques los menús son muy parecidos, solo que aquí se
agrega un botón al menú de ejecución que sirve para ver paso a paso lo que el
diagrama de bloques está ejecutando, muy útil cuando se quiere ver el orden de
ejecución de todo el código y ver su comportamiento.
Otro botón que se agrega es el que limpia todo el código, para poner todos
los elementos de una forma más ordenada y legible.
Paletas.
Las paletas de LabVIEW proporcionan las herramientas que se requieren para
crear y modificar tanto el panel frontal como el diagrama de bloques. Existen las
siguientes paletas:
Paleta de herramientas (Tools palette)
Se emplea tanto en el panel frontal como en el diagrama de bloques.
Contiene las herramientas necesarias para editar y depurar los objetos tanto del
panel frontal como del diagrama de bloques.
7. Ing. Mayra Peña. 7
Paleta de controles (Controls palette)
Se utiliza únicamente en el panel frontal. Contiene todos los controles e
indicadores que se emplearán para crear la interfaz del VI con el usuario.
8. Ing. Mayra Peña. 8
Al seleccionar objetos desde el menú Controls estos aparecen sobre el
panel frontal, pueden colocarse donde convenga, y además tienen su propio menú
desplegable que permite la configuración de algunos parámetros específicos de
cada tipo de control.
Paleta de funciones (functions palette)
Se emplea en el diseño del diagrama de bloques. La paleta de funciones
contiene todos los objetos que se emplean en la implementación del programa del
VI, ya sean funciones aritméticas, de entrada/salida de señales, entrada / salida de
datos a fichero, adquisición de señales, temporización de la ejecución del
programa.
9. Ing. Mayra Peña. 9
Para seleccionar una función o estructura concretas, se debe desplegar el
menú Functions y elegir entre las opciones que aparecen. A continuación se
enumeran todas ellas, junto con una pequeña definición.
11. Ing. Mayra Peña. 11
Controles e indicadores
Los elementos de cada programa de LabVIEW se pueden definir como
controles o indicadores. Como se vio en el programa anterior, se usaron dos
controles para ingresar los números que se van a sumar. Con esto podemos
deducir que un control es un elemento que puede ser controlado o modificado por
el usuario, normalmente con perillas o flechas de incremento.
Por otro lado, los indicadores son los elementos que no pueden ser
modificados por el usuario, y que solamente muestran datos o resultados que el
programa arroja, por ejemplo en el programa anterior, el indicador muestra el
resultado de la suma.
En el diagrama de bloques es fácil distinguir un control de un indicador, el
control tiene el color del borde más grueso y la flechita de lado derecho, indicando
que el cable o datos van a salir del elemento, mientras que el indicador tiene el
borde más delgado y la flechita del lado izquierdo, indicando que va a recibir un
cable o datos.
Para cambiar un control a indicador o viceversa, solo se le da clic derecho al ícono
y otro clic en change to control o change to indicator, según se requiera.
Elementos booleanos
Como se debe saber, los elementos booleanos funcionan con un cero o un
uno, siendo falso o verdadero respectivamente, no tiene otro valor más que esos.
En LabVIEW los elementos booleanos se representan con el color verde y con las
letras t o f. Estos son botones, leds, comparadores, entre otros.
Un ejemplo muy sencillo del uso de estos, es para encender un led con un
switch, solo necesitamos un switch y un led, conectados entre sí, para poder
encender el led con los valores verdadero o falso.
12. Ing. Mayra Peña. 12
¿Cómo utilizar la ayuda?
Para visualizar el cuadro de ayuda, simplemente se hace Help»Show
Context Help o presionando <Ctrl-h>; en este cuadro se mostrará la información
del objeto sobre el cual nos paremos con el puntero del mouse. También se puede
notar que en el cuadro de ayuda se observa un Link azul, el cual nos lleva al
Labview help, donde encontramos una información más completa del elemento;
(haciendo clic derecho del mouse, también se puede observar el Labview help).
Ejecución de un vi.
Una vez se ha concluido la programación del VI se debe proceder a su
ejecución. Para ello la ventana activa debe ser el panel frontal (si se está en la
ventana del diagrama de bloques, se debe seleccionar la opción Show Panel del
menú Window).
Una vez situados en el panel frontal, se pulsará el botón de Run, situado en
la barra de herramientas.
El programa comenzará a ejecutarse. Mientras dura la ejecución del mismo,
la apariencia del botón de Run es la que se muestra a continuación:
13. Ing. Mayra Peña. 13
De este modo el programa se ejecutará una sola vez. Si se desea una
ejecución continua, se pulsará el botón situado a la derecha del de Run
(Continuous Run). Si durante el funcionamiento continuo del programa se vuelve a
pulsar el citado botón, se finalizará la última ejecución del mismo, tras lo cual el
programa se parará.
Para finalizar la ejecución de un programa se puede operar de dos formas.
La primera, y la más aconsejable, es emplear un botón en el panel frontal del VI,
cuya pulsación produzca la interrupción del bucle de ejecución de la aplicación. La
segunda forma de detener la ejecución del VI es pulsando el botón de pausa o el
de stop. La diferencia entre ambos es que si se pulsa stop, la ejecución del
programa finaliza inmediatamente, mientras que si se pulsa pausa, se produce
una detención en el funcionamiento del programa, retomándose su ejecución una
vez se vuelve a pulsar el mismo botón.
Estructuras
En la paleta de funciones la primera opción es la de las estructuras. Éstas
controlan el flujo del programa, bien sea mediante la secuenciación de acciones,
ejecución de bucles, etc.
Las estructuras se comportan como cualquier otro nodo en el diagrama de
bloques, ejecutando automáticamente lo que está programado en su interior una
vez tiene disponibles los datos de entrada, y una vez ejecutadas las instrucciones
14. Ing. Mayra Peña. 14
requeridas, suministran los correspondientes valores a los cables unidos a sus
salidas. Sin embargo, cada estructura ejecuta su subdiagrama de acuerdo con las
reglas específicas que rigen su comportamiento, y que se especifican a
continuación.
Un subdiagrama es una colección de nodos, cables y terminales situados
en el interiordel rectángulo que constituye la estructura. El For Loop y el While
Loop únicamente tienen un subdiagrama. El Case Structure y el Sequence
Structure, sin embargo, pueden tener múltiples subdiagramas, superpuestos como
si se tratara de cartas en una baraja, por lo que en el diagrama de bloques
únicamente será posible visualizar al tiempo uno de ellos. Los subdiagramas se
construyes del mismo modo que el resto del programa Las siguientes estructuras
se hallan disponibles en el lenguaje G.
Case Structure
Al igual que otras estructuras posee varios subdiagramas, que se
superponen como si de una baraja de cartas se tratara. En la parte superior del
subdiagrama aparece el identificador del que se está representando en pantalla. A
ambos lados de este identificador aparecen unas flechas que permiten pasar de
un subdiagrama a otro.
En este caso el identificador es un valor que selecciona el subdiagrama que
se debe ejecutar en cada momento.
La estructura Case tiene al menos dos subdiagramas (True y False).
Únicamente se ejecutará el contenido de uno de ellos, dependiendo del valor de lo
que se conecte al selector.
Sequence Structure
De nuevo, este tipo de estructuras presenta varios subdiagramas,
superpuestos como en una baraja de cartas, de modo que únicamente se puede
visualizar una en pantalla.
15. Ing. Mayra Peña. 15
También poseen un identificador del sudiagrama mostrado en su parte
superior, con posibilidad de avanzar o retroceder a otros subdiagramas gracias a
las flechas situadas a ambos lados del mismo.
Esta estructura secuencia la ejecución del programa. Primero ejecutará el
subdiagrama de la hoja (frame) nº0, después el de la nº 1, y así sucesivamente.
Para pasar datos de una hoja a otra se pulsará el botón derecho del ratón
sobre el borde de la estructura, seleccionando la opción Add sequence local.
For Loop
Es el equivalente al bucle for en los lenguajes de programación
convencionales. Ejecuta el código dispuesto en su interior un número
determinado de veces.
16. Ing. Mayra Peña. 16
Para pasar valores de una iteración a otra se emplean los llamador shift
registers. Para crear uno, se pulsará el botón derecho del ratón mientras éste se
halla situado sobre el borde del bucle, seleccionando la opción Add Shift Register.
El shift register consta de dos terminales, situados en los bordes laterales del
bloque. El terminal izquierdo almacena el valor obtenido en la iteración anterior. El
terminal derecho guardará el dato correspondiente a la iteración en ejecución
dicho dato aparecerá, por tanto, en el terminal izquierdo durante la iteración
posterior.
Se puede configurar un shift register para memorizar valores de varias
iteraciones previas. Para ello, con el ratón situado sobre el terminal izquierdo del
shift register se pulsará el botón derecho, seleccionando a continuación la opción
Add Element.
While Loop
Es el equivalente al bucle while empleado en los lenguajes convencionales
de programación. Su funcionamiento es similar al del bucle for.
17. Ing. Mayra Peña. 17
El programa comprueba el valor de lo que se halle conectado al terminal
condicional al finalizar el bucle. Por lo tanto, el bucle siempre se ejecuta al menos
una vez.
Con esta estructura también se pueden emplear los shift registers para
tener disponibles los datos obtenidos en iteraciones anteriores (es decir, para
memorizar valores obtenidos). Su empleo es análogo al de los bucles for, por lo
que omitirá su explicación.
Formula Node
La estructura denominada Formula Node se emplea para introducir en el
diagrama de bloques fórmulas de un modo directo. Resulta de gran utilidad
cuando la ecuación tiene muchas variables o es relativamente compleja. Por
ejemplo, se desea implementar la ecuación:
Para definir una fórmula mediante esta estructura, se actuará del siguiente
modo:
En primer lugar, se deben definir las variables de entrada y las de salida.
Para ello, se pulsa con el botón derecho del ratón sobre el borde de la
formula node. A continuación se seleccionará Add Input o Add Output,
18. Ing. Mayra Peña. 18
según se trate de una entrada o una salida, respectivamente. Aparecerá un
rectángulo, en el que se debe escribir el nombre de la variable (se distingue
entre mayúsculas y minúsculas). Todas las variables que se empleen
deben estar declaradas como entradas o salidas. Las que se empleen
como variables intermedias se declararán como salidas, aunque
posteriormente no se unan a ningún bloque posterior.
Una vez definidas las variables a emplear, se escribirán la o las fórmulas en
el interior del recuadro (para ello se emplea la labeling tool). Cada fórmula
debe finalizar con un “;”.
Los operadores y funciones que se pueden emplear se explican en la ayuda
de LabVIEW, y son los que se muestran a continuación:
Si el valor lógico de la expresión es true se ejecutará. Si por el contrario,
fuese false, lo que aplicará será expresión.
Como ejemplo considérese el siguiente fragmento de código:
19. Ing. Mayra Peña. 19
Sub VI.
Los programas realizados pueden ser “encapsulados” para ser utilizados
como nodos de tratamiento por otros programas.
Los pasos para crear un SubVI son:
Crear el icono.
Crear el conector.
Asignar terminales.
Salvar el VI.
Insertar el VI dentro del VI principal.
Crear el icono.
Cree iconos personalizados para reemplazar los iconos predeterminados al
hacer clic derecho en la esquina superior derecha del panel frontal. Usted también
puede corregir iconos seleccionando File >> VI Propieties, seleccionando General
del menú Category y haciendo clic en el botón editar (Edit icon). Utilice las
herramientas del lado izquierdo de la casilla de dialogo del Icon Editor para crear
el diseño del icono del á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. Usted
también puede arrastrar un gráfico desde cualquier archivo y colocarlo en la
esquina superior derecha del panel frontal o del diagrama de bloque. LabView
convierte el grafico en un icono de 32 * 32 pixeles.
Crear el conector.
Haga clic derecho sobre el icono. (Solamente en el panel frontal.)
20. Ing. Mayra Peña. 20
Para utilizar un VI como un SubVI, usted necesita crear un conector. El
conector es una serie de terminales que corresponden a los controles y a los
identificadores de un VI, similar a la lista de parámetros de una función basada en
un lenguaje de programación de texto. El conector define las entradas y salidas
que usted puede cablear al VI para que pueda utilizarlo como un SubVI.
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 maquina superior derecha de la ventana del panel
frontal y seleccione Show Connector del menú. El conector sustituye el icono.
Cada rectángulo en el conector representa una terminal. Utilice los rectángulos
para asignar entradas y salidas. El número de controles e indicadores en el panel
frontal.
Asignar terminales.
Después de seleccionar un patrón para utilizar un 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 de la izquierda y las salidas a la derecha para
evitar patrones complicados y pocos claros en su VI. Para asignar un terminal a un
control de panel frontal o indicador que usted desea asignar a la terminal. Haga
clic en un área abierta del panel de frontal. La terminal cambia de color del tipo de
datos del control para indicar que usted conecto la terminal. Usted también puede
seleccionar el control o indicador primeramente y después seleccionar la terminal.
21. Ing. Mayra Peña. 21
Asegúrese que salvo el VI después de haber hecho las asignaciones de las
terminales.
Salvar el SubVI.
Hay varias maneras de organizar sus SubVI. 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 Vis 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…,
presione New VI Librery. Esto le permitirá que usted nombre la librería y
entonces salvar su VI en él. Para agregar VI subsecuentes, simplemente haga
doble clic al archivo lib de la ventana estándar de Salvar. Y dar un nombre al VI.
Insertar el SubVI dentro de un VI principal.
Después de construir un VI y crear su icono y conector, usted puede
utilizarlo como un SubVI. Para colocar el SubVI en el diagrama de bloque,
seleccione Funtion>>Select VI. Navegue y haga un doble clic en el VI que usted
desea utilizar como SubVI y colóquelo en el diagrama de bloques.
También puede colocar el VI abierto en el diagrama de bloque de otro VI
abierto usando la herramienta de colocación. (Potitioning Tool) para hacer clic en
el icono en la esquina superior derecha del panel frontal o diagrama de bloque del
VI que usted utilizara como SubVI y arrastrar el icono al diagrama del otro VI.
Gráficas en LabVIEW.
Los gráficos son indicadores muy poderosos en LabVIEW, pueden ser
altamente adaptables y pueden ser usados para mostrar de forma concisa una
gran variedad de información.
22. Ing. Mayra Peña. 22
La gráfica de forma de onda es un indicador numérico especial que muestra
una o más graficas (plots). Las gráficas de forma de onda están localizadas en la
paleta Control>>Graph>>Indicators. Estas pueden ser simples o múltiples. El
panel de control mostrado anteriormente es un ejemplo claro de la forma de onda
múltiple.
Usted puede cambiar los valores min y máx del eje X y Y dándole doble clic
al valor con la herramientas de etiquetado y escribiendo el nuevo valor.
Simultáneamente, usted puede cambiar la etiqueta del eje. También puede darle
clic derecho a la leyenda de la gráfica y cambiar el estilo, forma y color del dibujo
que se muestra en la gráfica.
Los gráficos situados en la paleta controls >> All controls >> Graph,
incluyen el grafico de forma de onda y el grafico XY. El diagrama del gráfico de
forma de onda traza solamente funciones de una sola variable, como en Y = f(x),
con puntos distribuidos uniformemente a lo largo del eje X, tal como formas de
ondas adquiridas con tiempo variable. Los gráficos expresos XY exhiben cualquier
set de puntos, ya sea que estos estén muestreados uniformemente o no. Cambie
el tamaño de la leyenda dela grafica para exhibir múltiples diagramas. Utilice
diagramas múltiples para ahorrar espacio en el panel frontal y para hacer
comparaciones entre diagramas. Los gráficos XY de forma de onda se adaptan
automáticamente a los diagramas múltiples.
Estructuras casos.
Las estructuras casos nos permiten elegir un curso de acción dependiendo
del valor de entrada. Se encuentra en la subpaleta de Execution Control de la
paleta de Funtions.
23. Ing. Mayra Peña. 23
Es semejante a los enunciados if-else-them (si-entonces-de otro modo) en
otros lenguajes. Como una baraja de naipes solo se puede ver un caso a la vez.
Ejemplo 1: entrada booleana. Caso simple if – them (si – entonces). Si el valor
boolenao de la entrada es verdadero (true), el caso es verdadero se ejecutara, de
otra manera el caso será falso (false) se ejecutara.
Ejemplo 2: Valor numérico de entrada. El valor de entrada determina cual caso
(caja) se ejecutará. Si esta fuera de rango los casos LabVIEW escogerá el caso
por omisión (default).
Ejemplo 3: Entrada de cadena de caracteres. Como en el case de los valores
numéricos de entrada, el valor de la cadena de cadenas determina cual caso
(caja) se ejecutara. Haga hincapié en que el valor debe de ejecutarse exactamente
al de los casos o sino la estructura ejecutara el caso por omisión.
Inserción de imágenes y decoraciones.
Pueden surgir algunas dudas con el programa anterior, como por ejemplo,
cómo insertar la imagen del vaso en el panel frontal. Insertar imágenes es muy
sencillo. Basta con tener una imagen guardada en el disco duro y arrastrarla
desde su ubicación hasta el panel frontal, de esta manera se hace una copia y no
importará si se borra la imagen del disco duro, ésta se quedará en el panel frontal,
donde se podrá modificar su tamaño.
Para encontrar las decoraciones, nos vamos al menú Modern >
Decorations. Ahí podemos encontrar el siguiente menú:
24. Ing. Mayra Peña. 24
Ahí se puede elegir cualquier tipo de decoración para que el programa que
se esté desarrollando se vea más presentable. Para que la decoración que
hayamos elegido no tape todo, nos vamos al menú y damos clic en el ícono que
tiene dos flechas circulares:
Aquí elegimos Move to back para que la decoración se vaya hasta atrás de
todo lo que tengamos en el panel.
Para insertar imágenes al panel frontal es muy sencillo, solo basta con dar
clic en Edit o Editar, y en Import picture to clipboard. De esta manera se puede
elegir la imagen que se requiera.
Otra forma es arrastrar la imagen desde su ubicación al panel frontal.
Cualquiera de estas dos opciones es buena, y luego se puede modificar el
tamaño de la imagen en el panel frontal.
26. Ing. Mayra Peña. 26
Practica N° 1: Operación básica: suma
Como primer programa, podemos crear una sumadora sencilla de dos
números. Para esto, necesitamos en el panel frontal dos controles numéricos y un
indicador numérico.
El panel frontal nos permite introducir los comandos numéricos 1 y 2 y de
mostrar el resultado en el indicador de nombre resultado.
Los elementos necesarios se escogerán de la sub paleta Numeric de la
paleta Control.
Una vez colocados los comandos pasamos a la ventana Diagrama en
bloque para unir las terminales entradas con las salidas respectivas. Los
terminales de entrada se encuentran a la izquierda y los terminales de salida se
encuentran a la derecha. El flujo de datos ira de izquierda a derecha.
Para calcular la suma a partir de los valores indicados haremos uso de las
funciones que se encuentran en la sub paleta Numeric de la paleta funciones.
Practica N° 2: Uso de select.
En LabVIEW podemos encontrar dentro del menú comparisson
(comparación), un ícono llamado select. Este funciona como la estructura
condicional if.
Si la condición es verdadera, se devuelve determinado valor o función, si es
falsa realiza la acción correspondiente. Se puede apreciar un ejemplo muy sencillo
del uso de select en el siguiente programa:
27. Ing. Mayra Peña. 27
El objetivo del control numérico es que si es menor de 5, el led de abajo
enciende, si es mayor de 5, se apaga el led de abajo y prende el de arriba.
Para esto utilizaremos dos select, uno para cada led.
Se utiliza un comparativo para el control numérico, en este caso mayor que.
Si el dato ingresado por el usuario en el tanque es mayor a 5, prende el led de
arriba, si es menor, prende el de abajo y se apaga el de arriba.
Nótese que se utilizaron constantes booleanas para los select, de esta
manera se hace más efectivo su uso cuando no se utilizan ciclos.
Practica Nº 3: Uso de cadenas de texto.
Si queremos trabajar con texto en LabVIEW utilizaremos los controles e
indicadores de texto. En el diagrama de bloques éstos tienen un color rosa, al
igual que los elementos booleanos y numéricos, los strings tienen control,
indicador y constante.
Para mostrar un texto determinado se utiliza una constante de texto, y para
que ésta sea visible en el panel frontal, se utiliza un indicador de texto. Usando el
ejemplo anterior, podemos agregar un indicador de texto para visualizar los
estados del programa:
28. Ing. Mayra Peña. 28
El objetivo del indicador textual es que si el nivel es mayor o menor de 5, se
indique con un mensaje. Para esto podemos utilizar otro select conectado a
cualquier de los dos leds, para evaluar si este está encendido o prendido, las
constantes de texto estarán conectadas al select y la salida al indicador.
Practica Nº 4: Uso de la estructura case.
Asumiendo que ya se sabe que la estructura case sirve para ejecutar o
albergar los posibles casos o acciones en función de una expresión.
En el lenguaje de programación C, la sintaxis es:
29. Ing. Mayra Peña. 29
Aquí, se ejecuta la estructura case al evaluar la función, en este caso tiene
dos casos con diferentes sentencias cada uno.
En el lenguaje gráfico, las estructuras de control se representan mediante
rectángulos. El case se conecta al elemento que requiera tener varias opciones y
todas las operaciones se van guardando en cada caso.
Se puede ver el funcionamiento de la estructura case en el siguiente
ejemplo:
El programa es una calculadora de dos funciones, suma y resta, se piden
dos números al usuario y con un botón elige si quiere que esos números se resten
o se sumen.
Como se mencionó anteriormente, el botón se conecta al case, dando como
resultado dos únicos casos, falso o verdadero. Al tratarse de un botón slide, el
falso es cuando el botón está del lado izquierdo y el verdadero del lado derecho.
Al analizar la imagen 21 podemos notar que lo único que hay dentro del
case es la operación que se va a realizar. Esto es porque si metemos cualquiera
de los controles o indicadores, éstos solo servirán para un solo caso, y para que el
programa funcione correctamente se tendrían que crear variables locales de cada
elemento para colocarlos en el otro caso, pero eso es innecesario y haría que el
código quede más grande.
30. Ing. Mayra Peña. 30
En cambio, dejando los elementos afuera, al conectarlos al case, crean un
cuadrito (túnel) en donde se pueden usar para los demás casos sin tener que
crear variables.
En el case también se puede conectar un tab control, útil para dar un mejor
aspecto al programa, almacenando cada operación o acción en un contenedor
individual. El tab control se encuentra en el menú Containers (Contenedores).
Podemos ver un ejemplo con un programa para hacer los cálculos de la ley
de Ohm:
Aquí se usan tres pestañas para el tab control, (para añadir más pestañas
se da clic derecho sobre cualquier pestaña y luego en add page after ó add page
before). Cada pestaña representa el valor que se quiere obtener, ya sea voltaje,
resistencia o intensidad.
En cada pestaña hay dos controles numéricos y un indicador numérico, el
usuario ingresa los dos valores y el programa hace los cálculos pertinentes.
31. Ing. Mayra Peña. 31
Como se puede apreciar en la imagen 23, aquí si se meten todos los
elementos a cada caso, esto porque se está utilizando un tab control y resulta
mejor crear controles e indicadores para cada caso. Siguiendo la ley de Ohm, solo
se hacen operaciones sencillas de división y multiplicación.
Nota: Al conectar el tab control al case, automáticamente aparecen los dos
primeros casos, para agregar más casos a esta estructura, se da clic derecho al
nombre del caso en la parte de arriba y luego en add case before o after según se
requiera.
Si queremos utilizar cadenas de texto en un case que esté conectado a un
botón, es muy simple. El case solo tendrá dos casos, y por ello solo utilizaremos
dos mensajes.
El diagrama de bloques queda como se muestra:
En este caso, cuando el programa se corra continuamente, saldrá el
mensaje del caso false ya que seguramente el botón estará en false cuando se
corra el programa, al accionar el botón, se mostrará el mensaje del caso true.
32. Ing. Mayra Peña. 32
Practica Nº 5: el ciclo for.
El ciclo for es una estructura de control utilizada en la gran mayoría de los
lenguajes de programación, que permite establecer el número mínimo de
iteraciones.
Sus elementos son la variable de control, inicialización de la variable de
control, condición de control, incremento, y cuerpo.
La variable de control es la variable con la que el bucle va a trabajar, esta
misma es la que se inicializa para establecer un valor predeterminado con el que
va a iniciar la iteración.
Su uso se orienta a vectores, permite agregar, modificar o eliminar datos
según el índice.
En LabVIEW, este ciclo también se representa con un rectángulo:
La terminal N representa el número de veces que se va a repetir el ciclo, la
terminal i representa la iteración, que va desde 0 a n-1.
Es importante aclarar que cuando se va a utilizar un ciclo, se debe agregar
un Timing (Wait), que sirve para que LabVIEW no consuma toda la memoria de la
PC y esto haga que se sature. El mínimo valor del Wait puede ser de 5
milisegudos.
Podemos tomar el siguiente programa como ejemplo del uso del ciclo for:
33. Ing. Mayra Peña. 33
En el panel frontal solo tenemos un indicador numérico.
Se puede observar que el número de repeticiones del ciclo for será de 5, y
la operación será la suma de un número aleatorio y cinco. Esta operación se hará
cinco veces y esos cinco resultados se imprimirán en el indicador numérico.
Aquí el Timing cumple una función interesante, ya que si le ponemos un
valor bajo como 5 o 10, no se aprecia el cambio en el indicador numérico y
parecerá que sólo se hizo una operación, en cambio, si se le pone 100 o más, ya
se puede ver cómo aparecen los 5 números, lógicamente, en el indicador sólo
quedará el último resultado.
Si queremos que el número de repeticiones del ciclo quede al azar,
entonces sólo ponemos el Random conectado a la terminal N. Con algunas
operaciones básicas, se pueden establecer límites para el número aleatorio.
IMPORTANTE: Al utilizar ciclos, ya sea for o while, no se debe utilizar el botón
correr continuamente, aquí sólo se usar el botón correr, para respetar las acciones
del ciclo y evitar que éste se cicle.
Asimismo, el botón abortar sólo se puede usar cuando el programa esté
ciclado.
Practica Nº 6: for condicional
Se dice que un ciclo for es condicional cuando éste tiene una terminal de
paro, se trata de una terminal a donde se puede conectar un botón de stop o una
condición para que el programa se detenga en determinado momento sin importar
que no se hayan ejecutado el número de repeticiones establecidas.
Esta terminal de paro se puede agregar dando clic derecho sobre el ciclo for
y posteriormente clic en conditional terminal.
34. Ing. Mayra Peña. 34
Practica Nº 7: el ciclo WHILE.
A diferencia del For, el ciclo While ejecuta determinada acción hasta que el
programa termine su función o hasta que el usuario decida detener el programa. Si
el programa no tiene un fin determinado, el programa se ejecutará infinitamente o
hasta que el usuario lo detenga.
El ciclo While no funciona si no se conecta un botón de stop o una
condición de paro a la terminal de stop, si no ocurre esto, será imposible ejecutar
el programa.
Aquí también es posible utilizar shift register.
Podemos ver un ejemplo muy sencillo de un programa para encontrar la
hipotenusa de un triángulo usando el Teorema de Pitágoras, con el ciclo while.
35. Ing. Mayra Peña. 35
En el panel frontal se tienen dos controles numéricos y un indicador
numérico, cada uno representa un lado del triángulo.
En el diagrama de bloques, se tiene un ciclo while, que contiene toda la
operación. Según el Teorema de Pitágoras, se sabe que el cuadrado de la
hipotenusa es igual a la suma de los catetos.
Entonces una forma simple de resolverlo, es usando la función square, que
eleva al cuadrado cualquier número que se le conecte, entonces, se usan dos, uno
para cada lado del triángulo. Éstos se suman y se le saca raíz cuadrada al
resultado, usando la función square root. Ambas funciones se encuentran en el
menú Numeric.
El resultado se imprime en el indicador numérico.
Nótese que el ciclo while tiene un botón de stop conectado a la terminal de
paro, sin esto, el programa no se ejecuta.
Hasta aquí todo va bien, pero hay un pequeño error, que en este programa
puede no causar problemas, pero al trabajar con programas grandes, puede
ocasionar muchos problemas. Es necesario colocar un Wait.