| Artículos | 01 DIC 2000

Diagramas de bloques (I)

Tags: Histórico
Primeras nociones sobre la creación de diagramas de bloques con LabVIEW
Félix Torán.
En la anterior entrega se introdujeron los conocimientos necesarios para crear paneles frontales, que proporcionan la interfaz del VI con el usuario. Llega el momento de dotar de funcionalidad al VI, mediante el desarrollo del diagrama de bloques. En esta entrega se presentarán los conocimientos básicos para la elaboración de programas en lenguaje G.

Tras una visión general de la herramienta LabVIEW, se han abordado dos etapas fundamentales en el desarrollo de un VI: la creación del panel frontal y del icono/conector (véase el artículo Creación de paneles frontales, publicado en PC World nº 170, noviembre de 2000). Estas fases proporcionan como resultado un VI con una interfaz definida de cara al usuario, y también de cara a otros VI (actuando como subrutina o subVI). Llegado este punto, es el momento de definir el comportamiento deseado mediante código fuente. Tal y como se adelantó, el lenguaje de programación empleado por LabVIEW se denomina G, y es totalmente gráfico y basado en la construcción de diagramas de bloques. También se adelantó una visión general de la estructura de un diagrama de bloques: se compone de nodos, que se unen entre sí mediante cables.
Este artículo presenta los conceptos fundamentales del desarrollo de diagramas de bloques con LabVIEW. Se presentarán los elementos funcionales básicos (los nodos), y la forma de interconectarlos mediante cables para definir su orden de ejecución. También se explicará cómo aprovechar las herramientas del entorno para mejorar el aspecto de los diagramas de bloques, consiguiendo un código G organizado y fácil de interpretar. Por otro lado, se expondrá la forma en que LabVIEW ejecuta un diagrama de bloques, algo a tener siempre presente de cara al desarrollo. Finalmente, se introducirán las estructuras, que aumentarán en gran medida las posibilidades de programación.

Los nodos
Las entidades de ejecución fundamentales de un diagrama de bloques reciben el nombre de nodos. Existen seis tipos diferentes de nodos: funciones, subVI, estructuras, nodos CIN, nodos de fórmula y nodos de atributo.
Las funciones son nodos elementales, definidos por el lenguaje G. Se trata de elementos capaces de realizar operaciones fundamentales, como la suma, operaciones de entrada y salida, trabajo con cadenas de texto, etc. No disponen de panel frontal, ni tampoco de diagrama de bloques (el código que proporciona su comportamiento viene implementado por el propio entorno LabVIEW). En otras palabras, son las piezas de menor nivel de abstracción que posee el lenguaje G.
Los subVI son similares a las funciones pero, por el contrario, sí presentan un panel frontal y diagrama de bloques interno. Si se hace doble clic sobre el icono de un subVI, se presentará en pantalla el diagrama de bloques y el panel frontal interno. Los subVI se construyen a partir de funciones y/u otros subVI, creando capas de mayor nivel de abstracción. Las funciones presentan un icono con fondo amarillo, mientras que en los subVI se suele emplear un fondo blanco, consiguiendo así diferenciarlos visualmente.
Las estructuras permiten condicionar el orden de ejecución de los nodos de un diagrama de bloques. Como se verá más adelante, en lenguaje G son los datos los que determinan el orden de ejecución de instrucciones. Por ello, las estructuras se encargan de controlar el flujo de los datos con los que trabaja el diagrama de bloques. Se dispone de estructuras condicionales, bucles, selección de casos, etc.
Los nodos CIN (Code Interface Node o nodos de interfaz con código) constituyen el canal de comunicación entre el diagrama de bloques y el código desarrollado con otros lenguajes de programación (por ejemplo, lenguaje C).
Los nodos de fórmula (formula nodes) permiten crear bloques de cálculo, cuya funcionalidad la define el programador mediante formulas matemáticas.
Los nodos de atributo permiten modificar las propiedades de los controles del panel frontal desde el diagrama de bloques. Por ejemplo, un nodo de atributo se podría emplear para habilitar o deshabilitar un determinado botón en función del estado del VI.

La paleta de funciones
El primer paso fundamental en el desarrollo de un diagrama de bloques consiste en la introducción de nodos, ya que éstos determinan, en gran medida, la funcionalidad que va a tener el VI. Todos los nodos disponibles se recogen, de forma organizada, en la paleta de funciones (dicha herramienta se presentó en el artículo El entorno LabVIEW, publicado en PC World nº 169, octubre de 2000).
La Figura 1 muestra el aspecto de la paleta de funciones, mostrando claramente una división de los nodos en grupos. En la Tabla A se explica el tipo de nodos que contiene cada grupo. Para lograr una correcta organización de los nodos, dentro de cada grupo puede haber nuevos subgrupos, y así hasta alcanzar las categorías más específicas. De esta forma es muy cómodo encontrar el nodo deseado, siguiendo un descenso desde un concepto general hacia uno concreto. La colocación de un nodo en el diagrama de bloques se reduce a arrastrar cualquier nodo desde la paleta de funciones hacia el lugar deseado.
Una vez en el diagrama de bloques, se puede obtener información sobre cualquier nodo utilizando la ventana de ayuda. Para ello, basta con situar el puntero del ratón sobre el nodo deseado y pulsar la combinación de teclas Ctrl+H. La ventana de ayuda mostrará el icono/conector correspondiente, además de una breve explicación sobre el funcionamiento. Con ello se dispone de la información suficiente para trabajar con el nodo escogido, aunque es posible acudir al resto de fuentes de ayuda de LabVIEW para obtener información más detallada.
La herramienta Position/Size/Select de la paleta de herramientas actúa de forma análoga a la expuesta para el panel frontal. Por un lado, permite modificar la posición de cualquier nodo, de forma que se obtenga un diagrama claro y organizado. También es posible redimensionar los nodos que admitan cambio de tamaño, como es el caso de las estructuras. Finalmente, permite seleccionar cualquier nodo para dirigir las opciones de LabVIEW hacia el mismo.

Terminales y cableado de los nodos
Una vez los nodos se encuentran sobre el diagrama de bloques, ya se dispone de una primera idea sobre el comportamiento del VI. Llega el momento de establecer uniones entre los terminales, mediante el uso de cables. De esta forma, se establecen vías de circulación de datos a través de los nodos, definiendo por completo el comportamiento del VI. Por tanto, un diagrama de bloques no es más que un soporte para la circulación de datos, que son los responsables de establecer el orden de ejecución de los nodos. Nótese la diferencia con los lenguajes de programación basados en texto, donde la ejecución viene guiada por el orden de aparición de instrucciones.
Surge la siguiente pregunta: ¿dónde nacen y mueren los datos que circulan por el diagrama de bloques? La respuesta se halla en los terminales. Tal y como se adelantó en la anterior entrega, todos los elementos del panel frontal se representan en el diagrama de bloques como terminales. Los controles se muestran como una caja con borde exterior grueso, siendo dicho borde más delgado en el caso de los indicadores. El color de un terminal indica la naturaleza de los datos que maneja (numéricos, booleanos, matrices, etc.). En el caso de terminales numéricos, la inscripción en su interior especifica la precisión de los datos. En el diag

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información