Estructuras de Datos en LabVIEW

Contenido de esta Sección

Tipo de Datos Cadena de Caracteres


Una cadena es una secuencia de caracteres ASCII visibles o no visibles. Las cadenas de caracteres ofrecen un formato independiente a la plataforma para información y datos. Algunas de las aplicaciones más comunes de cadena de caracteres incluyen las siguientes:

  • Crear mensajes de texto simples.
  • Controlar instrumentos al enviar comandos de texto al instrumento y regresar valores de datos en la forma de ASCII o cadena de caracteres binarias, las cuales después puede convertir en valores numéricos.
  • Almacenar datos numéricos a disco. Para almacenar datos numéricos en un archivo ASCII, primero debe convertir datos numéricos en cadena de caracteres antes de escribir a un archivo de disco.
  • Instruir o advertir al usuario con ventanas de diálogo.

En el panel frontal, las cadenas de caracteres aparecen como tabla, cuadros de texto y etiquetas. LabVIEW incluye VIs integrados y funciones que puede usar para manipular secuencias, incluyendo formateo de cadena de caracteres, análisis de cadena de caracteres y otras ediciones. LabVIEW representa datos de cadena de caracteres en color rosa.

Encuentre más información sobre datos de cadena de caracteres

Tipo de Dato Numérico

LabVIEW representa datos numéricos como números de punto flotante, números de punto fijo, números enteros, números enteros sin signo y números complejos. Precisión doble o simple, así como datos numéricos complejos son representados con el color naranja en LabVIEW. Todos los datos numéricos enteros son representados con el color azul.

Nota: La diferencia entre los tipos de datos numéricos es el número de bits que usan para almacenar datos y los valores de datos que representan.

Ciertos tipos de datos también ofrecen opciones de configuración extendida. Por ejemplo, puede asociar unidades físicas de medida con datos de punto flotante, incluyendo números complejos y usted puede configurar la codificación y rango para datos de punto fijo.

Encuentre más información sobre datos numéricos

Vea una tabla de tipos de datos numéricos

Tipo de Dato Booleano


LabVIEW almacena datos Booleanos como valores de 8 bits. Usted puede usar un Booleano en LabVIEW para representar un 0 o 1 o un TRUE o FALSE. Si el valor de 18 bits es cero, el valor Booleano es FALSE. Cualquier valor no igual a cero representa TRUE. Las aplicaciones comunes para datos Booleanos incluyen representar datos digitales y servir como un control de panel frontal que actúa como un conmutador que tiene una acción mecánica generalmente usada para controlar una estructura de ejecución como una estructura de Caso. Un control Booleano generalmente es usado como la declaración condicional para terminar un Ciclo While. En LabVIEW el color verde representa datos Booleanos.

Encuentre más información sobre control Booleano de acciones mecánicas

Tipo de Dato Dinámico

La mayoría de los Express VIs aceptan y/o regresan tipos de datos dinámicos, los cuales aparecen como una terminal de color azul obscuro.

Al usar los Convert to Dynamic Data y Convert from Dynamic Data VIs, usted puede convertir datos Booleanos o numéricos de punto flotante de los siguientes tipos de datos:

  • Arreglo 1D de forma de onda
  • Arreglo 1D de escalares
  • Arreglo 1D de escalares – valor más reciente
  • Arreglo 1D de escalares – un solo canal
  • Arreglo 2D de escalares – columnas son canales
  • Arreglo 2D de escalares – filas son canales
  • Un solo escalar
  • Una sola forma de onda

Cablear el tipo de datos dinámicos a un indicador que puede presentar mejor los datos. Los indicadores incluyen una gráfica, tabla o numérico o indicador Booleano. Sin embargo, ya que los datos dinámicos experimentan una conversión automática para igualar al indicador al cual están cableados, los Express VIs pueden bajar la velocidad de ejecución del diagrama de bloques.

El tipo de datos dinámico es para uso con Express VIs. La mayoría de los VIs y funciones que se venden con LabVIEW no aceptan este tipo de datos. Para usar una función o VI integrada para analizar o procesar los datos que incluye el tipo de datos dinámico, debe convertir el tipo de datos dinámico.

Encuentre más información sobre datos dinámicos

Algunas veces es benéfico agrupar datos relacionados. Use arreglos y clusters para agrupar datos relacionados en LabVIEW. Los arreglos combinan puntos de datos del mismo tipo de datos en una estructura de datos y los clusters combinan puntos de datos de múltiples tipos de datos en una estructura de datos.

Un arreglo consiste de elementos y dimensiones. Los elementos son los puntos de datos que componen el arreglo. Una dimensión es la longitud, altura o profundidad de un arreglo. Un arreglo puede tener una o más dimensiones y tantos como (231)—1 elemento por dimensión, si la memoria lo permite.

Puede construir arreglos de tipos de datos numéricos, Booleano, paths, cadena de caracteres, forma de onda y cluster. Considere usar arreglos cuando trabaje con una colección de puntos de datos similares y cuando realice cálculos repetitivos. Los arreglos son ideales para almacenar datos que colecta desde formas de onda o datos generados en ciclos, donde cada iteración de un ciclo produce un elemento del arreglo.

Nota: Los índices de arreglo en LabVIEW están basados en cero. El índice del primer elemento en el arreglo, sin importar su dimensión, es cero.

Los elementos del arreglo son ordenados. Un arreglo utiliza un índice, así usted puede tener acceso fácilmente a cualquier elemento en particular. El índice está basado en cero, lo cual significa que está en el rango de 0 a n-1, donde n es el número de los elementos en el arreglo. Por ejemplo, n-12 representa los 12 meses del año, así el índice va de 0 a 11. Marzo es el tercer mes, así que tiene un índice de 2.

La Figura 1 muestra un ejemplo de un arreglo de numéricos. El primer elemento que se muestra en el arreglo (3.00) está en 1 y el segundo elemento (1.00) está en 2. El elemento en el índice 0 no se muestra en esta imagen, porque el elemento 1 está seleccionado en la imagen del índice. El elemento seleccionado en la imagen del índice siempre se refiere al elemento que se muestra en la parte superior izquierda del la imagen del elemento.

(1) Imagen del Índice  |  (2) Imagen del Elemento

Figura 1. Control de Arreglo de Numéricos

Crear Controles e Indicadores tipo Arreglo

Cree un control o indicador tipo arreglo en el panel frontal al añadir una estructura de arreglo al panel frontal, como se muestra en la Figura 2 y arrastrar un objeto de datos o elemento, como un control numérico o de cadena de caracteres, a la estructura del arreglo.

Figura 2. Colocar un Control Numérico en una Estructura de Arreglo

Si intenta arrastrar un control inválido o indicador en la estructura del arreglo, no podrá colocar el control o indicador en la estructura del arreglo.

Debe insertar un objeto en la estructura del arreglo antes de usar el arreglo en el diagrama de bloques. De lo contrario, la terminal del arreglo aparece en negro con un paréntesis vacío y no tiene tipo de datos asociado.

Arreglos en Dos Dimensiones

Los ejemplos anteriores usan arreglos en 1D. Un arreglo en 2D almacena elementos en una cuadrícula. Requiere un índice de columna y un índice de fila para ubicar un elemento, ambos basados en cero. La Figura 3 muestra un arreglo en 2D de 8 columnas por 8 filas, el cual contiene 8 × 8 = 64 elementos.

Figura 3. Arreglo en 2D

Para añadir un arreglo multidimensional al panel frontal, haga clic con botón derecho en la imagen del índice y seleccione Añadir Dimensión desde el menú de acceso directo. También puede cambiar el tamaño de la imagen índice del arreglo hasta que obtenga la cantidad de dimensiones que desea.

Iniciar Arreglos

Puede iniciar un arreglo o dejarlo sin inicializar. Cuando un arreglo es iniciado, usted define el número de elementos en cada dimensión y el contenido de cada elemento. Un arreglo sin inicializar contiene un número fijo de dimensiones pero no elementos. La Figura 4muestra un control arreglo en 2D sin configurar. Note que todos los elementos están atenuados. Esto indica que el arreglo no está configurado.

Figura 4. Arreglo en 2D sin Configurar

En un arreglo en 2D, después de que inició un elemento, cualquier elemento no iniciado en esa columna y en columnas previas es iniciado y publicado con el valor predeterminado para el tipo de datos. En la Figura 5, un valor de 4 fue proporcionado en la columna 2, del arreglo basado en 0. Los elementos previos en la columna 0, 1 y 2 son iniciados en 0, el cual es el valor predeterminado para el tipo de dato numérico.

Figura 5. Un Arreglo en 2D Iniciado con Nueve Elementos

Crear Constantes tipo Arreglo

Para crear una constante del arreglo en el diagrama de bloques, seleccione una constante del arreglo en la paleta Funciones, coloque la estructura del arreglo en el diagrama de bloques y coloque una constante de cadena de caracteres, constante numérica, constante Booleano o constante cluster en la estructura del arreglo. Puede usar una constante de arreglo para almacenar datos constantes o como un punto de comparación con otros arreglos.

Entradas de Arreglo Auto-indexing


Si cablea un arreglo a o desde un Ciclo For o Ciclo While, puede enlazar cada iteración del ciclo a un elemento en ese arreglo al habilitar auto-indexing La imagen de túnel cambia de ser un cuadrado sólido a la imagen para indicar auto-indexing. Haga clic con botón derecho en el túnel y seleccione Habilitar Índexado o Deshabilitar Índexado desde el menú de acceso directo para modificar el estado del túnel.

Entradas de Arreglo

Si habilita auto-indexing en un arreglo cableado a una terminal de entrada de Ciclo For, LabVIEW establece la terminal de conteo al tamaño del arreglo para que no tenga que cablear la terminal de conteo. Ya que puede usar Ciclos For para procesar los arreglos de un elemento al mismo tiempo, LabVIEW habilita auto-indexing de forma predeterminada para cada arreglo que cablee a un Ciclo For. Puede deshabilitar auto-indexing si no necesita procesar arreglos de un elemento a la vez.

En la Figura 6, el Ciclo For se ejecuta un número de veces igual al número de elementos en el arreglo. Normalmente, si la terminal de conteo del Ciclo For no está cableada, el botón de ejecución esta roto y no permite la ejecución del VI. Sin embargo, en este caso el botón de ejecución no aparece roto.

Figura 6. Arreglo Usado para Establecer Conteo de Ciclo For

Si habilita auto-indexing para más de un túnel o si cablea la terminal de conteo, el número actual de iteraciones se ejecuta la opción menor. Por ejemplo, si dos arreglos de auto-indexing entran en el ciclo, con 10 o 20 elementos respectivamente y cablea un valor de 15 a la terminal de conteo, el ciclo solamente se ejecuta 10 veces, incluyendo todos los elementos del primer arreglo pero solamente los primeros 10 del segundo arreglo.

Salidas de Arreglo

Cuando aplica auto-indexing a un túnel de salida de arreglo, el arreglo de salida recibe un nuevo elemento desde cada iteración del ciclo. Por lo tanto, los arreglos de salida de auto-indexing son siempre iguales en tamaño al número de iteraciones.

El cable desde el túnel de salida al indicador del arreglo se vuelve más grueso conforme cambia a un arreglo en el borde del ciclo y el túnel de salida contiene paréntesis cuadrados representando un arreglo.

Figura 7. Salida de Auto-Indexing

Haga clic con botón derecho en el túnel en el borde del ciclo y seleccione Habilitar Índices o Deshabilitar Índices desde el menú de acceso directo para activar o desactivar auto-indexing. Auto-indexing para los Ciclos While están deshabilitados de forma predeterminada.

Por ejemplo, deshabilite auto-indexing si solamente necesita el último valor que pasó por el túnel.

Crear Arreglos en Dos Dimensiones

Puede usar dos Ciclos For, anidados uno dentro del otro, para crear un arreglo en 2D. El Ciclo For externo crea los elementos en fila y el Ciclo For interno crea los elementos en columna.

Figura 8. Crear un Arreglo en 2D

 

Video: Clusters

Los clusters agrupan elementos de datos de diferentes tipos. Un ejemplo de un cluster es el cluster de error de LabVIEW, el cual combina un valor Booleano, un valor numérico y uno de cadena de caracteres. Un cluster es similar a un registro o a una estructura en lenguajes de programación basados en texto.

Construir varios elementos de datos en clusters elimina el desorden de cables en el diagrama de bloques y reduce el número de terminales del panel conector que los subVIs necesitan. El panel conector tiene, a lo más, 28 terminales. Si su panel frontal contiene más de 28 controles e indicadores que quiera pasar a otro VI, agrupe algunos de ellos en un cluster y asigne el cluster a una terminal en el panel conector.

La mayoría de los clusters en el diagrama de bloques tienen un patrón de cable rosa y terminal de tipos de datos. Los clusters de error tienen un patrón de cable amarillo obscuro y terminal de tipo de datos. Los clusters de valores numéricos, algunas veces conocidos como puntos, tienen un patrón de cable café y terminal de tipo de datos. Puede cablear clusters numéricos cafés a funciones Numéricas, como Suma o Raíz Cuadrada, para realizar la misma operación simultáneamente en todos los elementos del cluster.

Orden de Elementos de Cluster

Aunque el cluster y los elementos de arreglo están ordenados, debe desagrupar todos los elementos del cluster una vez usando la función Unbundle. Puede usar la función Unbundle By Name para desagrupar los elementos del cluster por nombre. Si utiliza la función Unbundle by Name, cada elemento del cluster debe tener una etiqueta. Los clusters también se diferencian de los arreglos ya que tienen un tamaño fijo. Como un arreglo, un cluster puede ser un control o un indicador. Un cluster no puede contener una combinación de controles e indicadores.

Crear Controles e Indicadores de Cluster

Cree un control o indicador de cluster en el panel frontal al añadir una estructura de cluster al panel frontal, como se muestra en el siguiente panel frontal y al arrastrar un objeto de datos o elemento, que puede ser un control o indicador numérico, Booleano, de cadena de caracteres, path, refnum, arreglo hacia el interior de la estructura del cluster.

Cambie el tamaño de la estructura del cluster al arrastrar el cursor mientras coloca la estructura del cluster.

Figura 9. Creación de un Control de Cluster

La Figura 10 es un ejemplo de un cluster que contiene tres controles: una cadena de caracteres, un interruptor Booleano y un numérico.

Figura 10. Ejemplo de Control de Cluster

Crear Constantes del Cluster

Para crear una constante del cluster en el diagrama de bloques, seleccione una constante del cluster en la paleta de Funciones, coloque la estructura del cluster en el diagrama de bloques y coloque una constante de cadena de caracteres, constante numérica, constante Booleano o constante cluster en la estructura del cluster. Puede usar una constante de cluster para almacenar datos constantes o como un punto de comparación con otros clusters.

Si tiene un control o indicador de cluster en la ventana del panel frontal y quiere crear una constante de cluster que contenga los mismos elementos en el diagrama de bloques, puede arrastrar el cluster desde la ventana del panel frontal al diagrama de bloques o dar clic con botón derecho en el cluster en la ventana del panel frontal y seleccione Create»Constant en el menú de acceso directo.

Usar Funciones de Cluster

Use las funciones de Cluster para crear y manipular clusters. Por ejemplo, puede realizar tareas similares a las siguientes:

  • Extraiga elementos de datos individuales desde un cluster.
  • Añada elementos de datos individuales a un cluster.
  • Fracture un cluster en sus elementos de datos individuales.

Use la función de Bundle para ensamblar un cluster, use la función Bundle y la función Bundle by Name para modificar un cluster y use la función Unbundle y la función Unbundle By Name para desensamblar clusters.

También puede colocar las funciones Bundle, Bundle by Name, Unbundle, y Unbundle by Name en el diagrama de bloques al dar clic con botón derecho en la terminal del cluster en el diagrama de bloques y al seleccionar el Cluster, Paleta Class & Variant en el menú de acceso directo. Las funciones de Agrupar y Desagrupar contienen automáticamente el número correcto de terminales. Las funciones Agrupar por Nombre y Desagrupar por Nombre aparecen con el primer elemento en el cluster. Use la herramienta de Posición para cambiar el tamaño de las funciones de Agrupar por Nombre y Desagrupar por Nombre para mostrar los otros elementos del cluster.

Ensamblar Clusters

Use la función Bundle para ensamblar un cluster desde elementos individuales o para cambiar los valores de los elementos individuales en un cluster existente sin tener que especificar los nuevos valores para todos los elementos. Use la herramienta de Posición para cambiar el tamaño de la función o haga clic con botón derecho en una entrada de elemento y seleccione Añadir Entrada desde el menú de acceso directo.

Figura 11. Ensamblar un Cluster en el Diagrama de Bloques

Modificar un Cluster

Si cablea la entrada de cluster, puede cablear solamente los elementos que desea cambiar. Por ejemplo, el Cluster de Entrada que se muestra en la Figura 12 contiene tres controles.

Figura 12. Bundle se Usa para Modificar un Cluster

Si conoce el orden del cluster, puede usar la función Bundle para cambiar el valor del Comando al cablear los elementos que se muestran en la Figura 12.

También puede usar la función Bundle By Name para reemplazar o tener acceso a elementos etiquetados de un cluster existente. La función de ABundle by Name funciona como la función de Bundle, pero en lugar de relacionar los elementos del cluster por su orden de cluster, los relaciona por sus etiquetas. Solamente puede tener acceso a elementos con etiquetas propias. El número de entradas no necesita ser igual al número de elementos en un cluster de salida.

Use la herramienta de Operación para hacer clic en una terminal de entrada y seleccionar un elemento en el menú desplegable. También puede hacer clic con botón derecho en la entrada y seleccionar el elemento con Seleccionar Elemento en el menú de acceso directo.

En la Figura 13, puede usar la función de Bundle by Name para actualizar los valores de Comando y Función con los valores del Nuevo Comando y Nueva Función.

Figura 13. Bundle by Name se Usa para Modificar un Cluster

Use la función de Bundle by Name para estructuras de datos que pueden cambiar durante el desarrollo. Si añade un nuevo elemento al cluster o modifica su orden, no necesita reescribir la función de Bundle by Name ya que los nombres siguen siendo válidos.

Desensamblar Clusters

Use la función Unbundle para separar un cluster en sus elementos individuales.

Use la función Unbundle By Name para regresar los elementos del cluster de los cuales especificó los nombres. El número de terminales de salida no depende del número de elementos en el cluster de entrada.

Use la herramienta de Operación para hacer clic en una terminal de salida y seleccionar un elemento en el menú desplegable. También puede hacer clic con botón derecho en la terminal de salida y seleccionar el elemento con Seleccionar Elemento en el menú de acceso directo.

Por ejemplo, si usa la función Unbundle con el cluster en la Figura 14, tiene cuatro terminales de salida que corresponden a los cuatro controles en el cluster. Debe conocer el orden del cluster para que pueda asociar la terminal Booleano correcta del cluster desagrupado con el interruptor correspondiente en el cluster. En este ejemplo, los elementos están ordenados de arriba hacia abajo comenzando con el elemento 0. Si usa la función Unbundle by Name, puede tener un número arbitrario de terminales de salida y tener acceso a elementos individuales por nombre en cualquier orden.

Figura 14. Unbundle and Unbundle by Name

Un enum (control, constante o indicador enumerado) es una combinación de tipos de datos. Un enum representa un par de valores, una cadena de caracteres y un valor numérico, donde el enum puede ser uno de una lista de valores. Por ejemplo, si usted creó un tipo de enum llamado Mes, los pares de valores posibles para una variable Mes son Enero-0, Febrero-1 y así hasta Diciembre-11.La Figura 15 muestra un ejemplo de estos pares de datos en la ventana de diálogo de Propiedades para un control enumerado. Se obtiene acceso al dar clic con botón derecho en el control enum y al seleccionar Edit Items.

Figura 15. Propiedades para el Control Enumerado Mes

Los enums son útiles porque es más fácil manipular números en el diagrama de bloques que cadena de caracteres. La Figura 16 muestra el control enumerado Mes, la selección de un par de datos en el control enumerado y la terminal del diagrama de bloques correspondiente.

(1) Control de Panel Frontal  |  (2)  Seleccionar un Elemento  |  (3) Terminal de Diagrama de Bloques

Figura 16. Control Enumerado Mes

Herramienta de Sonda de Prueba


Use la herramienta Probe para verificar los valores intermedios en un cable mientras un VI se ejecuta.

Use la herramienta de Sonda de Prueba si tiene un diagrama de bloques complicado con una serie de operaciones y cualquiera de ellas puede regresar datos incorrectos. Use la herramienta de Probe con la identificación de ejecución, avance simple y puntos de paro para determinar donde están los datos incorrectos. Si los datos están disponibles, la punta de prueba se actualiza inmediatamente y muestra los datos en laProbe Watch Windowdurante la identificación de ejecución, avance simple o cuando hace pausa en un punto de paro. Cuando la ejecución hace pausa en un nodo por avance simple o un punto de paro, también puede medir el cable que se ejecutó para ver el valor que fluye a través de ese cable.

Aprenda Fundamentos de LabVIEW en una Nueva Forma

Aprenda estos conceptos de LabVIEW a través de nuestra nueva experiencia interactiva.

Continúe Aprendiendo

Anterior Herramientas de Depuración en LabVIEW
Estructuras de Ejecución Siguiente