Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. CREACIÓN DE SUBPROGRAMAS
Una de las grandes ventajas del LabVIEW es la de poder trabajar con aplicaciones
ejecutables dentro de otras, de modo que una aplicación puede descomponerse en partes
más pequeñas totalmente independientes. De este modo es mucho más fácil localizar un
posible fallo.
A las aplicaciones que se incluyen dentro de una aplicación mayor se les denomina
subVIs (es el equivalente a lo que conocemos como subrrutinas). Por si mismos
mantienen todas las propiedades vistas hasta ahora para cualquier VI.
Para poder utilizar un subVI es necesario crearle un icono con su correspondiente
conector. LabVIEW permite utilizar distintos subVIs con el mismo icono y conector
puesto que sólo los distingue por el nombre con el cual se salvan. De todos modos es
recomendable que cada subVI se identifique con un icono específico con el fin seguir
fácilmente el diagrama de bloques.
Modificación de un icono.
Para crear o modificar un icono ya existente haremos doble click sobre el icono de la
parte superior derecha de la ventana Panel o desplegaremos su menú (cliquear el botón
derecho del ratón situado sobre el icono del VI) y escogeremos la opción Editar icono.
El aspecto del editor de icono es el siguiente:
1
Modificación de un conector.
Podemos enviar datos a un subVI o recibirlos de él a través de los terminales de su
conector. Las conexiones vienen definidas por el número de terminales que queremos
para ese VI y por la asignación de un indicador o control del panel frontal a cada uno de
esos terminales. No todos los indicadores y controles tienen que tener un terminal en el
conector, sino sólo aquellos que consideramos necesarios para la aplicación. Cada
terminal está representado por un rectángulo. Todo conector tiene asociado un menú
desplegable:
Una vez elegido el conector en función del número de conexiones a hacer, tan sólo
queda asignar los terminales. Haciendo clic sobre un terminal aparece de forma
automática la herramienta wiring y el rectángulo que representa el terminal queda
marcado en negro. Haciendo clic sobre el indicador o control del panel frontal, éste
quedará asignado al terminal seleccionado.
2
Sistemas y Equipos de Medida
Desde ella cambiando la selección que aparece en el Combo Box Category podemos
configurar la apariencia del panel frontal del subVI cuando se abra llamado por el VI
principal.
3
Elegir la opción SubVI Node Setup y
aparecerá la ventana:
Es una opción que permite ahorrar mucho tiempo. Supongamos que disponemos de
un diagrama de bloques en el que nos convendría que una parte fuese un subVI ya que
posiblemente se utilizará más de una vez. Podemos crear un subVI de un modo muy
sencillo, es el siguiente:
1. Marcar o seleccionar el bloque que queremos que sea un subVI.
2. Elegir la opción Create SubVI del menú Edit.
3. Modificar el icono y conector a nuestro gusto y guardarlo con el nombre que
más represente a su función.
A1 (A1.vi): Implementar un programa que evalúe si el valor medio de una serie de
números (no fija) es mayor que cinco, si es cierto que encienda un led. Cada vez que
realice la comparación debe producirse una espera de 5 segundos. Durante la espera un
cartel debe parpadear avisando de la espera. El valor medio debe calcularse mediante la
implementación de un SubVI cuyo panel frontal se abrirá cada vez que calcule el valor
medio para desaparecer posteriormente. Comprobar que la media de los números
introducidos se hace correctamente.
4
Sistemas y Equipos de Medida
5
Sistemas y Equipos de Medida
2. VARIABLES LOCALES
En el LabVIEW todos los controles e indicadores que se introducen en el panel
frontal generan un terminal en el diagrama de bloques, estos terminales son variables
que se identifican por el nombre asignado a la etiqueta. Pero puede ocurrir que
queramos utilizar el valor de cierta variable en otro subdiagrama de un vi, o
simplemente guardar un valor intermedio. La forma más sencilla es generando variables
locales.
En las variables locales los datos se almacenan en algunos de los controles o
indicadores del panel frontal, por ello estas variables no son intercambiables entre
distintos VI’s. La principal ventaja de estas variables es que una vez creadas no importa
que proceda de un indicador o un control, ya que podrá utilizarse en un mismo diagrama
tanto de entrada (escritura) como de salida (lectura), es decir podrán ser modificadas
durante la ejecución.
Tenemos dos formas de generarlas:
1. En el Diagrama de Bloques seleccionamos el control o indicador al que le
queremos asociar una variable local. Desplegamos su menú y seleccionamos en él
Create/Local Variable.
2. En el Diagrama de Bloques, dentro del menú Functions/Programming/Structures
seleccionamos Local Variable. Al hacerlo se crea un nuevo terminal en el diagrama
de bloques, éste terminal debe asignarse a uno de los controles o indicadores del
panel frontal. Para ello debe desplegarse el menú asociado al nuevo terminal
(seleccionarlo, cliquear el botón derecho del ratón) y asignarle el “item” que
interese en la aplicación desarrollada.
Cada variable local tiene un menú asociado que nos permite cambiar sus
características. A la izquierda tenemos el panel frontal de un VI con cuatro elementos, a
la derecha tenemos la variable local de uno de ellos en el diagrama de bloques con su
menú desplegado.
Desde él podemos cambiar el elemento al que está asociada la variable local, cambiar
de lectura a escritura, etc.
6
Sistemas y Equipos de Medida
7
Sistemas y Equipos de Medida
Q 3 ¿Es posible ejecutar el programa sin que el control Espera en ms esté conectado
directamente a Wait(ms)? Razona la respuesta y prográmala en solucionA2.vi
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
3. VARIABLES GLOBALES
Como acabamos de ver en LabVIEW todos los controles e indicadores que se
introducen en el panel frontal generan un terminal en el diagrama de bloques, estos
terminales son variables que se identifican por el nombre asignado a la etiqueta. Pero
puede ocurrir que queramos utilizar el valor de cierta variable en otro subdiagrama u
otro subvi, o simplemente guardar un valor intermedio. La forma más sencilla es
generando variables globales.
Las variables globales son un tipo especial de VI, que únicamente dispone de panel
frontal, en él se define el tipo de dato de la variable y el nombre de identificación
imprescindible para después poder referirnos a ella. Este tipo de variables pueden ser
compartidas por cualquier VI.
Para crearlas vamos al Diagrama de Bloques, dentro del menú
Functions/Programming/Structures seleccionamos Global Variable.
8
Sistemas y Equipos de Medida
que es el caso más recomendado. Si una vez cerrado el VI quieren añadirse más
variables tan sólo debemos abrir de nuevo el VI y añadirlas como si se tratase de
cualquier otro VI.
Para añadir nuevos terminales en el diagrama de bloques que hagan referencia a
variables globales ya creadas NO volveremos a ejecutar la función Global (ya que esto
crearía un nuevo VI), sino que abriremos el fichero ya existente de variables globales
mediante la opción “Select VI” de la paleta de funciones y desde ella seleccionaremos la
variable global deseada a través del menú desplegable. Una vez seleccionada y puesta
en el diagrama de bloques, cliqueando sobre ella el botón derecho desplegaremos un
menú (ver la siguiente figura), en el que podremos seleccionar el elemento al que
asociamos la variable global.
Para insertar la misma variable global en diferentes partes del VI en el que se trabaja
hay que ir a la paleta Functions/select VI y seleccionar el VI asociado a la variable
global y de las incluidas en ese fichero seleccionar la adecuada como se explica en el
párrafo anterior.
En la siguiente figura podemos ver la misma variable global llamada Global
cluster.vi con dos asignaciones distintas: boolean y signal out de escritura. Podemos
cambiarlas a lectura al igual que las variables locales en el mismo menú desplegable.
9
Sistemas y Equipos de Medida
10
Sistemas y Equipos de Medida
Pero como cada subVI tiene un tiempo de ejecución diferente, solo una de las salidas
nos dará ese valor. Para entender su funcionamiento abrir todos los programas y
colocarlos como se indica en la siguiente figura:
De modo que los dos subVIs tengan activada la ejecución resaltada, y ejecutemos el
programa principal. Así veremos cómo los dos subVIs comienzan a ejecutarse a la vez
con la variable global inicializa a cero, pero uno acaba antes que el otro. De modo que
el subVI que queda activo toma como valor de la variable global inicializa el resultado
del finalizado y a partir de ese valor continúa su cálculo. Por eso los dos subVIs no
tienen la misma salida.
11
Sistemas y Equipos de Medida
Las variables globales se deben usar cuando tenemos un programa que adquiere datos
que deben ser usados por otros programas que se están ejecutando simultáneamente.
Pero si no las gestionamos bien podemos estar sobrescribiendo la variable global desde
distintos VIs a la vez como en este ejemplo:
Si los dos bucles se ejecutan a la vez después de leer la variable global en el while de la
izquierda, LabView cambia la ejecución al segundo bucle while. Que modifica la
variable global. Cuando LabView acaba la ejecución del primer bucle escribe en la
varible global, de modo que el dato que genera el segundo bucle while es sobreescrito
por el resultado del primero. Es decir, nunca sabemos si el contenido de la variable
global es el resultado del primer while o del segundo. Es lo que se llama la condición de
carrera.
12
Sistemas y Equipos de Medida
13
Sistemas y Equipos de Medida
14
Sistemas y Equipos de Medida
15
Front Panel del SubVI
Posteriormente implementar el desplazamiento de derecha a izquierda:
16