Al realizar el cableado, cada cable tendrá un único origen, generalmente un control, pero puede derivarse hacia varios indicadores o funciones.
En el ejemplo de la Figura 2.2, el VI toma datos de A y B y pasa los valores a una función de adición y a una función de resta. Los resultados son mostrados en los indicadores de la derecha.
Figura 2.2. Panel frontal y diagrama de bloques de un VI para la suma y resta de dos variables.
Para la realización del cableado en el diagrama de bloques deben tenerse en cuenta las siguientes consideraciones:
Cuando se utilice la herramienta de cableado, el cable se ubicará en el extremo superior del icono .
Durante el movimiento de la herramienta de cableado sobre las funciones, aparece una viñeta amarilla que indica el nombre del terminal al que se está conectando:
Para obtener más ayuda sobre los terminales, haga clic en la función con el botón derecho del ratón y seleccione Visible Items (Objetos Visibles) » Terminals (Terminales). Aparecerá un dibujo con los terminales de conexión de la función. Los colores corresponden a los tipos de datos utilizados por los terminales del panel frontal.
Para obtener una ayuda adicional, seleccione Help » Show Context Help (Mostrar Ayuda Contextual), o presione Ctrl+H. Al mover el ratón sobre una función, esta ventana mostrará la función, terminales, y una breve descripción.
Si el cableado no sigue un trazado correcto, haga clic derecho en el cable que se desea arreglar y escoja la opción de Clean Up Wire (Limpieza del Cable) para que automáticamente el cable haga su ruta de nuevo.
2.3 Flujo de Datos (Dataflow)
La ejecución de un VI en LabVIEW sigue un modelo de flujo de datos. Cada nodo del diagrama de bloques se ejecuta cuando están disponibles todas sus entradas. 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.
El diagrama de bloques de la izquierda de la Figura 2.3, suma dos números y luego resta 50 al resultado de la suma. En este caso, el diagrama de bloques 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 válida 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 todos sus terminales de entrada, y suministra datos a sus terminales de salidas solamente cuando termina su ejecución.
En el código de la derecha, ¿Cuál será el segmento que se ejecutará primero: la suma, el número aleatorio o la función de división? Como las entradas a las funciones de suma y división están disponibles al mismo tiempo, y la función de número aleatorio no tiene entradas, no se puede saber. Cuando se pretenda que un segmento del código se ejecute antes que otro, y no exista dependencia de datos entre las funciones, hay que utilizar una estructura de Secuencia para forzar el orden de la ejecución.
Figura 2.3. Ejemplo de flujo de datos con LabVIEW.
2.4 SubVIs
Un SubVI es un VI que puede ser utilizado dentro de otro VI. Corresponde a una subrutina en lenguajes de programación basados en texto. La utilización de subVIs ayuda a gestionar de manera más eficiente cambios en los programas y a eliminar errores del diagrama de bloques. Además, simplifica los esquemas de cableado mejorando su comprensión.
Un SubVI, debe disponer de su propio icono y terminales de conexión. Del mismo modo que los terminales de un control o de un indicador pueden ser vistos como un icono o como un simple terminal en el diagrama de bloques, los subVIs pueden ser vistos como un icono, un nodo expandible o un nodo expandido (véase la Figura 2.4). Las diferentes vistas dependen de la preferencia del usuario, pero la funcionalidad del subVI no cambia.
Figura 2.4. Diferentes vistas de un subVI.
Cada VI muestra un icono en la esquina superior derecha de las ventanas del panel frontal y del diagrama de bloques. El icono es la representación grafica del VI, y puede contener texto, imágenes, o una combinación de ambos. Si se utiliza un VI como subVI, el icono identifica el subVI en el diagrama de bloques del VI en el que se inserta.
El conector muestra los terminales disponibles para la transferencia de datos hacia y desde el subVI. Hay varios patrones de conectores que se pueden elegir haciendo clic-derecho sobre el conector y seleccionando el patrón del menú de patrones. Posteriormente, se asignan los controles e indicadores del panel frontal al terminal del conector, como veremos mas adelante.
El diagrama de bloques mostrado en la Figura 2.5 contiene cuatro subVIs. Para ver el panel frontal de un subVI basta con hacer doble clic sobre el subVI. También se puede ver la jerarquía de los subVIs dentro de un VI principal en el menú View » VI Hierarchy.
Figura 2.5. SubVIs en el diagrama de bloques.
Los pasos para crear un subVI son los siguientes:
a) Crear el icono
Para reemplazar los iconos predeterminados por otros personalizados, se debe hacer clic-derecho sobre el icono de la esquina superior derecha del panel frontal o del diagrama de bloques y seleccionar Edit Icon del menú de emergente, o bien, haciendo doble clic en el icono. También se puede acceder desde el menú File » VI Properties, seleccionando General en el menú Category de la ventana emergente, y haciendo clic en el botón de editar (Edit Icon). Con las herramientas del lado izquierdo de la ventana de diálogo del Icon Editor se llevará a cabo el diseño del icono en el área de edición. En la parte derecha aparece la imagen del icono en el tamaño que se mostrará (véase la Figura 2.6).
También se 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 gráfico a un icono de 32 × 32 píxeles.
Figura 2.6. Ventana de diálogo del editor de iconos (Icon Editor).
b) Crear el conector
Para utilizar un VI como un subVI, es necesario crear un conector. El conector es un conjunto de terminales que corresponden a los controles y a los indicadores de ese VI, similar a la lista de parámetros de una función basada en un lenguaje de programación de texto. En el conector se definen los terminales de entrada y de salida asociados al icono del subVI, que serán utilizados para realizar el cableado dentro del VI al que se incorpore.
Las