La parte central del programa resta las dos entradas y el resultado lo multiplica por la suma del límite inferior y el número aleatorio. Con esto se consigue generar un número aleatorio comprendido entre los dos límites indicados, que nunca serán mayores de 360 y menores de 0.
Finalmente, este número generado se empleará como el valor de un ángulo en coordenadas polares, y de él se obtendrá la parte real e imaginaria.
En el ejemplo anterior puede ser deseable hacer una función que se encargue de la generación del número aleatorio entre dos límites, es decir, hacer que esa parte del código sea un VI distinto, de forma que pueda ser usado en otras ocasiones. La forma más sencilla de conseguir esto es seleccionando la parte deseada del Diagrama de Bloques e ir a Edit > Create SubVI. Al hacerlo, el código seleccionado será sustituido por el icono de un VI. Con un doble clic sobre este icono se accederá al código de este subVI.
Figura 1-28. Crear un subVI seleccionando una parte del programa.
Otra forma de crear un VI es definiendo de forma manual su interfaz. La interfaz es la forma en que se realizarán las conexiones cuando se use como subVI dentro de otro VI. El primer paso será guardar el VI, después situarse en su Panel Frontal y hacer clic con el botón secundario del ratón sobre el icono del VI (parte superior derecha) para desplegar su menú contextual, como se puede ver en la figura 1-29. En el menú contextual se mostrará el conector, que es el equivalente a la cabecera de las funciones en otros lenguajes. En el conector se podrán añadir o eliminar terminales, que son los lugares donde se conectarán los cables cuando se use como subVI. Para asignar un control o indicador a un Terminal, se debe seleccionar la herramienta Connect Wire y hacer clic en el terminal y en el control o indicador asociado del Panel Frontal. En ese momento el terminal se coloreará indicando el tipo de datos.
Por claridad se recomienda conectar las entradas a la izquierda y las salidas a la derecha. También se puede indicar si la conexión de un terminal debe ser obligatoria (Required), normal (Recommended) u opcional (Optional). En la ventana de ayuda contextual los terminales se mostrarán en negrita, de forma normal u ocultos respectivamente. Si en el Panel Frontal se había indicado algún valor por defecto en alguna entrada, éste será el valor que tenga el control si no se le conecta un cable cuando se use como subVI. Como regla de estilo podemos recomendar que se indique el valor por defecto en el Label de cada control al final entre paréntesis.
Además del terminal, también se puede crear un icono que represente al VI cuando se coloque en el Diagrama de Bloques de otro VI. En la ventana de la figura 1-30, aparecen en la parte izquierda diferentes pestañas con las diversas opciones para hacer el dibujo, y a la derecha el icono y una barra de herramientas típica de un programa de edición de imágenes.
Figura 1-29. Creación del terminal de un subVI.
Esta herramienta se ha mejorado desde la versión 2009. Entre las nuevas mejoras destaca el empleo de capas (pestaña Layers), de plantillas (Templates) y de imágenes prediseñadas (Glyphs).
Dentro de las plantillas podemos hacer que el icono de un VI sea rectangular en lugar de cuadrado. Esto se suele utilizar cuando únicamente hay una en trada o una salida. Yendo un paso más allá, podemos hacer cualquier forma al icono, como triángulos, borrando todo el contenido en el icono fuera del contorno que queramos darle.
Si se está creando una librería o familia de subVI, es conveniente dar a todos un estilo parecido. Para ello, se pueden usar las plantillas que vienen por defecto o crear y emplear nuestras propias plantillas e imágenes prediseñadas (File > Save as > Template).
Por último, hay que decir que puede accederse a opciones especiales haciendo doble clic sobre algunas herramientas, como seleccionar el tipo de letra con doble clic sobre la herramienta de texto, seleccionar todo con la de select o sobre el dibujo del cuadrado.
Figura 1-30. Editor del icono de un VI.
Desde el menú contextual del icono o desde File > VI Properties se accederá a las propiedades del VI, en las que se podrá ver información y modificar parámetros del VI como:
• General: información sobre la versión, cambios sin salvar, etc.
• Memory Usage: espacio que ocupan las distintas partes que componen el VI.
• Documentation: información sobre el VI. Al usarlo como subVI aparecerá en la ventana de ayuda contextual y un enlace a un fichero de ayuda en el que se podría ampliar la información.
• Revision History: configuración e información sobre el historial del VI.
• Editor Options: algunos parámetros que afectan a la hora de crear el VI.
• Protection: permite bloquear y/o proteger con contraseña el código del fichero.
• Window Appearance: configuración de la ventana que mostrará el Panel Frontal al usuario cuando el VI se ejecute.
• Window Size: tamaño de la ventana del programa cuando se ejecute.
• Window Run-Time Position: posición de la ventana del programa cuando se ejecute.
• Execution: afecta a la forma de ejecución de un VI; para más información consultar el tema acerca de multihilo.
• Print Options: configura la forma en que se imprimirá un VI.
Una vez creado el VI, el siguiente paso será usarlo. Para insertar un VI dentro de otro se puede usar el método de arrastrar y soltar desde el directorio donde esté almacenado hasta el Diagrama de Bloques del VI. También se puede usar Select a VI… desde la paleta de funciones o colocar el VI dentro de un menú de la paleta de funciones.
Como puede verse en las propiedades de un VI (File > VI Properties > Memory Usage), internamente un VI se compone de un espacio de datos, el código compilado, el Panel Frontal y el Diagrama de Bloques. Al cargar un VI se llevará a memoria el espacio de datos y el código compilado; el Panel Frontal y el Diagrama de Bloques se cargarán cuando LabVIEW lo considere necesario.
1.5.1. Librerías
Cada VI se guardará como un fichero. Para agrupar varios VI se puede emplear una librería, la cual es otro fichero con extensión *.LLB. Hay varios métodos para crear una librería:
• En un fichero nuevo, File > Save as > New LLB.
• En Tools > LLB Manager > File > New LLB.
También se puede convertir un directorio que contenga VI en una librería y viceversa desde Tools > LLB Manager (Figura 1-31). Después se debe seleccionar el directorio o librería deseado y se elige Edit > Convert. La ventaja de las librerías es que, a la hora de distribuir una aplicación, todos los ficheros necesarios pueden estar empaquetados en un único archivo.
Desde el LLB Manager se podrá marcar uno o varios VI como Top Level,