Programación gráfica para ingenieros. José Miguel Molina Martínez
Чтение книги онлайн.
Читать онлайн книгу Programación gráfica para ingenieros - José Miguel Molina Martínez страница 7
Figura 1.8. Paleta de herramientas.
2. Diseño y creación de una aplicación Instrumento Virtual
2.1 Introducción
En este capítulo se describen los pasos necesarios para la creación de aplicaciones, denominadas Instrumentos Virtuales (VI, Virtual Instrument) en el entorno de programación gráfico LabVIEW.
2.2 Creación de un VI
La programación en LabVIEW se realiza en el diagrama de bloques, mientras que en el panel frontal se presenta la interfaz con el usuario de la aplicación, donde se encuentran las entradas y salidas.
Cuando en el panel frontal se crea un control para la entrada de datos o un indicador para la salida de datos, en el diagrama de bloques aparecen sus respectivos terminales. Estos terminales dan acceso a los objetos del panel frontal, permitiendo operar con ellos mediante las herramientas de la paleta de funciones y generar el código de ejecución asociado en el diagrama de bloques.
Cada terminal contiene información útil del objeto asociado en el panel frontal. Por ejemplo, el color y los símbolos indican el tipo de dato. Los números de punto flotante son representados con terminales anaranjados con un acrónimo que indica su precisión (DBL para double, SGL para single, y EXT para extended). Los terminales booleanos se dibujan en color verde con el acrónimo TF.
Tal como se muestra en la Figura 2.1, los terminales de los controles tienen una flecha en el lado derecho y un borde grueso. Los indicadores tienen una flecha en el lado izquierdo y un borde fino.
Figura 2.1. Indicador numérico (Thermometer) y control booleano (Boolean) en el panel frontal (izquierda) y sus terminales asociados en el diagrama de bloques (derecha).
Como regla general, deben cablearse los terminales del mismo tipo: anaranjados con anaranjados, verdes con verdes, etc. También es posible conectar terminales de tipos compatibles, por ejemplo, LabVIEW permite conectar un terminal azul (correspondiente a un valor entero) a un terminal anaranjado (valor fraccional). En estos casos se produce una conversión automática al tipo de destino (por ejemplo, un truncamiento de los decimales si el destino es un terminal entero).
Además de los terminales del panel frontal, el diagrama de bloques contiene funciones (algebraicas, booleanas, etc.). Cada función puede tener múltiples terminales de entradas y salidas, cuya conexión constituirá una parte muy importante de la programación en LabVIEW.
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.