Está en la página 1de 15

Graphs, Charts, Arrays y Clusters de LabVIEW

Introducción
En esta guía, usted aprenderá sobre las diferencias y similitudes entre graphs y
charts y dónde utilizarlos. También hará VIs simples e incorporará arreglos y
clusters en LabVIEW como una combinación de datos.

Objetivos:
• Aprender la diferencia entre un chart y un graph.
• Aprender como crear un arreglo (array) y manipularlo.
• Aprender la diferencia entre un clúster y un arreglo (array).

Teoría

Gaphs, Charts, Arrays y Clusters de LabVIEW

Introducción:
En esta sección aprenderá sobre graphs y charts, sus similitudes y diferencias,
y cuándo usar cada uno de ellos. También estudiará los clústeres y los arreglos
(arrays), dos formas de agrupar datos.

Graphs y Charts
Utilice graphs y charts para la representación de datos en forma gráfica.

Los Graphs y los Charts difieren en la forma en la cual muestran y actualizan


los datos. Los VIs con graphs usualmente colectan los datos en un array y
traza o dibuja los datos del graph, los cuales son similares a la hoja de datos
que almacena los datos y después hace la representación (trazo) de ellos. En
contraste, un chart adjunta nuevos puntos de datos en la pantalla. En un chart,
puede ver la lectura actual o las medidas en contexto con datos previamente
adquiridos.

Los graphs y los charts están localizados en la paleta Controls»Graph


incluyen los siguientes principales tipos:

• Waveform Chart and Graph: muestra los datos adquiridos a una


velocidad constante.
• XY Graph: muestra los datos adquiridos a una velocidad no constante,
tales como los datos adquiridos cuando un trigger ocurre.
• Intensity Chart and Graph: muestra los datos 3D en una
representación 2D usando colores para mostrar los valores de la tercera
dimensión.
• Digital Waveform Graph: muestra los datos como pulsos o grupos de
líneas digitales. Los computadores transfieren los datos a otros
computadores en forma de pulsos.
• 3D Graphs: muestra los datos 3D en un gráfico 3D en un objeto ActiveX
en el panel frontal.

Usted puede personaliza la apariencia de graphs y charts mostrando u


ocultando las opciones. Haga clic derecho en el graph o el chart y seleccione
Visible Items del menú de inicio rápido para mostrar u ocultar las siguientes
opciones:

• Plot Legend: define el color y el estilo de los trazos. Redimensiona el


tamaño de la leyenda a cuando ve a mostrar múltiples trazos (gráficos).
• Scale Legend: define las etiquetas para la escala y configura las
propiedades de la escala.
• Graph Palette: cambia la escala y el formato cuando el VI está
corriendo.
• X Scale and Y Scale: formato de la escala de X y Y.
• Cursor Legend (graph only): muestra una marca en una coordenada
de un punto definido. Se pueden mostrar múltiples cursores en un graph.
• Scrollbar (chart only): desplazamiento a través de los datos en el chart.
Use la barra de desplazamiento para ver los datos que el buffer no
muestra actualmente.

Arrays

Los arrays (arreglos) agrupan elementos de datos del mismo tipo. Un arreglo
consiste de elementos y dimensiones. Los elementos son los datos que hacen
parte del arreglo. La dimensión es la longitud, altura o la profundidad de un
arreglo. Un arreglo puede tener una o más dimensiones y tantos como 231 – 1
elementos por dimensión, que la memoria permita.

Usted puede construir arreglos de números, boléanos, cadenas, ondas y datos


de tipo clúster. Considere usar arreglos cuando trabaje con una colección de
datos similares y cuando realice cálculos repetitivos. Los arreglos son ideales
para almacenar datos recolectados de ondas o datos generados en
estructuras, donde cada iteración de la estructura produce un elemento del
arreglo.
Usted no puede crear un arreglo de otro arreglo. Sin embargo, puede utilizar un
arreglo multidimensional o crear un arreglo de clústeres donde cada clúster
contiene uno o más arreglos.

Indexes (índices)
Para localizar un elemento en particular en un arreglo se requiere un
índice por dimensión. En LabVIEW, los índices le permiten navegar a
través del arreglo y recuperar elementos, filas, columnas, y páginas de
un arreglo en el diagrama de bloques.

Ejemplos de Arreglos

Un ejemplo de un arreglo simple es el arreglo de un texto simple de la


lista de los nueve planetas de nuestro sistema solar. LabVIEW
representa esto como un arreglo de cadenas 1D con nueve elementos.

Los elementos del arreglo están ordenados. Un arreglo usa un índice


para que usted pueda acceder fácilmente a un elemento. El índice inicia
en cero, es decir, que el rango va de 0 a n-1, donde n es el número de
elementos en el arreglo. Por ejemplo, n=9 para los nueve planetas,
entonces el rango del índice va de 0 a 8. La tierra es el tercer planeta,
entonces tiene un índice de 2.

Otro ejemplo de un arreglo es una onda representada como un arreglo


numérico en el cual cada elemento sucesivo es un valor de voltaje en
intervalos sucesivos de tiempo.

Un ejemplo complejo de un arreglo es un gráfico representado como un


arreglo de puntos donde cada punto es un clúster que contiene un par
de números que representan las coordenadas X y Y.

Los ejemplos previos utilizan arreglos 1D. Un arreglo 2D almacena


elementos en una rejilla. Esta requiere índice de columna y de fila para
localizar un elemento. Ambos índices inician en cero.

Por ejemplo, un tablero de ajedrez tiene ocho filas y ocho columnas para
un total de 64 posiciones. Cada posición puede estar vacía o tener una
ficha. Se puede representar el tablero de ajedrez como un arreglo 2D de
cadenas. Cada cadena es el nombre de la figura que ocupa la
localización correspondiente en el tablero, o una cadena vacía si la
localización está vacía.

Restricciones de los arreglos


Usted puede crear un arreglo de casi cualquier tipo de datos, con las
siguientes excepciones:

• No puede crear un arreglo de arreglos. Sin embargo, usted puede


usar un arreglo multidimensional o usar la función Build Cluster
Array para crear un arreglo donde cada clúster contiene uno o
más arreglos.
• No puede crear un arreglo de graphs porque los graphs son un
tipo de arreglo y un arreglo no puede contener otros arreglos. Sin
embargo, puede tener un arreglo de graphs en el graph si es un
clúster.
• No puede crear un arreglo de charts.

Creando Arrays Controls, Indicators, y Constants

Es posible crear un arreglo tipo control o ndicator en el panel frontal


poniendo la cubierta del arreglo en el panel frontal y arrastrando un
objeto de datos o elemento, el cuál puede ser numérico, boolenao,
cadena, refnum, clúster control o indicador, en la cubierta del arreglo.
La cubierta del arreglo automáticamente se redimensiona para
acomodarse al nuevo objeto, ya sea un pequeño control booleano o un
graph 3D grande.

Para mostrar un elemento en particular en el panel frontal, digite el


índice o utilice las flechas en el índice para navegar y encontrar el
numero.

Para crear un arreglo en el panel frontal, seleccione Controls»Array,


Matrix and Cluster»Array para poner la cubierta del arreglo. Luego de
la paleta de controles saque un control numérico o un indicador
numérico (u otro tipo de control o indicador según sus necesidades) y
suéltelo dentro del cascarón del arreglo. Este se adaptará
automáticamente al tipo de dato.

Array Index Display


Un arreglo 2D contiene filas y columnas. La parte superior de las dos
cajas en la izquierda es el índice de la fila y la de abajo es el índice de la
columna. La muestra combinada de la derecha de la fila y de la columna
muestra el valor de la posición específica.

Las filas y las columnas inician en cero, indicando que la primera


columna es la columna cero, la segunda columna es la columna uno, y
así sucesivamente.

Si usted intenta mostrar una columna o una fila que esta fuera del rango
de las dimensiones del arreglo, el array control se atenúa para indicar
que no hay un valor definido, y LabVIEW muestra el valor por defecto del
tipo de dato. El valor por defecto depende del tipo de dato del arreglo.
Utilice la herramienta de posicionamiento para mostrar más de una fila o
columna al tiempo.

Array Functions

Utilice el array functions (funciones de arreglo) ubicada en la paleta


Functions»Array para crear y manipular arreglos, como las siguientes
tareas:

• Extraer datos individuales de elementos de un arreglo.


• Insertar, borrar, o reemplazar elementos de datos en el arreglo.
• Dividir arreglos.

Redimensionamiento Automático de Funciones de Arreglos

Las funciones Index Array, Replace Array Subset, Insert Into Array,
Delete From Array, y Array Subset automáticamente se redimensionan
para alcanzar las dimensiones del arreglo de entrada que usted ha
conectado. Por ejemplo, si ha conectado un arreglo 1D a una de estas
funciones, las funciones muestran un índice de entrada simple. Si ha
conectado un arreglo 2D a la misma función, este muestra dos índices
de entrada – para la fila y otro para la columna.
Usted puede tener acceso a más de un elemento, o subarreglo (fila,
columna o página) con estas funciones usando la herramienta de
posicionamiento para redimensionar la función manualmente. Cuando
expande una de estas funciones, las funciones se expanden en
incrementos determinados por la dimensión del arreglo conectado a la
función.

Si conecta un arreglo 1D a una de estas funciones, la función se


expande a un simple índice de entrada. Si conectara un arreglo 2D a la
misma función, la función se expande en dos índices de entrada – uno
para la fila y otro para la columna.

Los índices de entrada que conectó determinan la forma del subarreglo


al que quiere acceder o modificar. Por ejemplo, si la entrada a la función
Index Array es un arreglo 2D y solo conectara la entrada de la fila, extrae
una fila completa 1D del arreglo. Si conectara solo la entrada de la
columna, extrae una columna completa 1D del arreglo. Si conectara la
entrada de la fila y la entrada de la columna, extrae un elemento simple
del arreglo. Cada grupo de entrada es independiente y puede acceder a
cualquier porción de cualquier dimensión del arreglo.

Para acceder a valores múltiples consecutivos en un arreglo, expanda la


función Index Array, pero no conecte valores de índice de entrada en
cada incremento. Por ejemplo, para alcanzar la primera, segunda, y
tercera fila de un arreglo 2D, expanda la función Index array por tres
incrementos y conecte indicadores de arreglo 1D a cada salida del
subarreglo.

Clusters

Los clusters agrupan datos de elementos de diferentes tipos, como un conjunto


de cables, como un cable telefónico, donde cada alambre en el cable
representa un elemento diferente del cluster. Un cluster es similar a un record o
a una estructura en los lenguajes de programación basados en texto.

Agrupar muchos elementos de datos en clusters elimina el desorden de


conexiones en el diagrama de bloques y reduce el número de terminales del
panel de conexiones que necesitan los sub-VIs. El panel de conexiones tiene,
como máximo, 28 terminales. Si su panel frontal tiene más de 28 controles e
indicadores que quiere usar programaticamente, agrupe algunos de ellos en un
cluster y asigne a un terminal en el panel de conexiones.

Aunque el cluster y los elementos del arreglo están ambos ordenados, debe
desagrupar todos los elementos del cluster inmediatamente en lugar de colocar
un índice a cada elemento a la vez. También puede utilizar la función Unbundle
By Name para acceder a un elemento específico del cluster. Los clusters
difieren de los arreglos porque tiene tamaño fijo. Como un arreglo, un cluster,
un cluster es también un control o un indicador. Un cluster no puede contener
una mezcla de controles e indicadores.

Algunos de los clusters en el diagrama de bloques tienen un cable color rosado


y un icono tipo dato. Los cluster numéricos, algunas veces referidos a un punto,
tienen un cable café y un icono tipo dato. Puede conectar el cable café del
cluster numérico a funciones numéricas, como las de suma, raíz cuadrada,
para realizar la misma operación simultáneamente en todos los elementos del
cluster.

Los elementos del cluster tienen un orden lógico sin relacionar a la posición en
la cubierta. El primer elemento que ponga en el cluster es el elemento 0, el
segundo es el elemento 1, y así sucesivamente. Si borra un elemento, el orden
se ajusta automáticamente. El orden del cluster determina en cual orden el
elemento aparece en los terminales de las funciones Bundle y Unbundle en el
diagrama de bloques. Puede ver y modificar el orden del cluster haciendo clic
derecho en el borde del cluster y seleccionando Reorder Controls In Cluster
del menú de acceso rápido.

Para conectar clusters, ambos clusters deben tener el mismo número de


elementos. Los elementos correspondientes, determinados por el orden del
cluster, deben tener tipos de datos compatibles. Por ejemplo, si un punto
numérico flotante de doble precisión en un cluster corresponde en el orden del
cluster a una cadena en el otro cluster, el conector en el diagrama de bloques
aparece roto y el VI no corre. A los caracteres numéricos de diversas
representaciones, LabVIEW los obliga a tener la misma representación.
Utilice las funciones de cluster localizadas en la paleta Functions»Cluster,
Class and Variant para crear y manipular clusters, como en las siguientes
tareas:
• Extraer un elemento de dato individual del cluster.
• Agregar un elemento individual de dato a un cluster.
• Sacar los elementos individuales del cluster.
Procedimiento de la Tarea
Parte 1. Monitor de Temperatura VI

Complete los siguientes pasos para construir un VI que utilice un While Loop y
un Waveform Chart para adquirir y mostrar los datos.

1. Abra un nuevo VI
2. Construya el siguiente panel frontal
a. Seleccione el vertical toggle switch en la paleta Controls»Bolean
y póngalo en el panel frontal. Utilizará el switch para detener la
adquisición.
b. Digite Power dentro de la etiqueta y haga clic afuera de ella.
c. Seleccione un Waveform Chart de la paleta de controles
Controls»Graph y póngalo en el panel frontal. El Waveform
Chart mostrará la temperatura en tiempo real.
d. Digite Temperature History dentro de la etiqueta y haga clic
afuera de ella.
e. El titulo del Waveform Chart nombra la gráfica como Plot 0. Use el
mouse para dar triple clic Plot 0 en el titulo del chart, digite Temp,
y haga clic afuera.
f. Utilice el mouse dando doble clic en 10 del eje Y, luego coloque el
límite en 90 y haga clic afuera.
g. Cambie -10 en el eje Y por 70.
h. Nombre el eje Y como Deg F y el eje x como Time (sec).

3. Seleccione Window»Show Diagram para ver el diagrama de bloques.


4. Utilice un While Loop, como se muestra en el siguiente diagrama de
bloques.
a. Seleccione el While Loop en la paleta Functions»Structures.
b. Haga clic y arrastre la selección del rectángulo alrededor de los
dos terminales.
c. Utilice la herramienta de posicionamiento (positioning tool) para
redimensionar el loop, si es necesario.

5. Ahora probará sus habilidades de programación: Desarrolle un VI que


simule una señal de temperatura que oscile entre 70 y 90 grados
Fahrenheit (en otras palabras, un numero que varíe entre 70 y 90 cada
segundo). Cree su correspondiente icono-conector (usted puede elegir
el tipo de gráfica que desee) como se ve en el diagrama de bloques y
utilícelo como un sub-VI en este programa. Si es necesario, regrese a la
guía en donde se enseña a crear un subVI.
6. Conecte los objetos del diagrama de bloques como se muestra en la
figura.
7. Guarde el VI con el nombre de Temperatura Monitor.vi.
8. Muestre el panel frontal dando clic en el o seleccione Window»Show
Panel (o con CTRL+E puede cambiar entre ventanas).
9. Use el mouse dando clic en el vertical toggle switch y póngalo en la
posición ON.
10. Corra el VI.

La sección del diagrama de bloques que contiene el While Loop, o


subdiagrama, se ejecuta hasta que la condición especificada sea verdadera.

11. Haga clic en el vertical toggle switch para detener la adquisición. Si la


condición es falsa, entonces el loop para de ejecutarse.

12. Haga clic derecho en el Waveform Chart y seleccione Data


Operations»Clear Chart del menú de acceso rápido para limpiar o
borrar la gráfica (waveform chart). Si el VI está corriendo, puede
seleccionar Clear Chart del menú de inicio rápido.

13. Modifique el vertical toggle switch para que se haga la gráfica de la


temperatura cada que ponga a correr el VI.
a. Detenga el VI si está corriendo.
b. Utilice el mouse y haga clic en al vertical toggle switch y póngalo
en la posición de encendido (ON).
c. Haga clic derecho en el switch y seleccione Data
Operations»Make Current Value Default del menú de acceso
rápido. Esto ajusta la posición encendido en ON como valor por
defecto.
d. Haga clic en el switch y seleccione Mechanical Actions»Latch
When Pressed del menú de acceso rápido. Esto hará que una
vez que se presione el switch para detener el VI, el switch se
devolverá automáticamente a la posición ON para estar listo para
la siguiente ejecución.

14. Corra el VI.


15. Utilice el mouse y haga clic en el switch para detener la adquisición. El
switch cambia a la posición OFF y regresa a ON después de haber
efectuado la operación.
Cuando el VI está corriendo, el While Loop se ejecuta tan rápidamente
como sea posible. Complete los siguientes pasos para tomar datos en
ciertos intervalos, como uno cada medio segundo, como se muestra en
la figura del siguiente diagrama de bloques.

1. Ponga la función Wait Until Next ms Multiple localizada en la paleta


Functions»Timing (recuerde que si no encuentra una función,
puede buscarla en el icono en forma de lupa que aparece en la
parte suerior derecha de la paleta de funciones). Esta función
asegura que cada iteración ocurra cada medio segundo (500 ms).
2. Haga clic derecho en millisecond multiple a la entrada de la función
Until Next ms Multiple, seleccione Create»Constant del menú de
inicio rápido, digite 500, y presione la tecla <Enter>. La constante
numérica especifica que debe esperar 500 ms para que el While
Loop se ejecute cada medio segundo.

16. Guarde el VI
17. Corra el VI.
18. Intente con diferentes valores numéricos de constante de tiempo y corra
el VI de nuevo.
19. Cierre el VI.

Parte 2. Análisis de Temperatura

En la parte 2, usará charts, graphs, arrays, y clusters para construir un VI que


mida la temperatura cada 0.25 s por 10 s. Durante la adquisición, el VI muestra
la temperatura medida en tiempo real en un waveform chart. Después de
completar la adquisición, el VI dibuja los datos en un graph y calcula el mínimo,
el máximo, y el promedio de la temperatura. El VI muestra el mejor ajuste de la
grafica de temperatura usando un polinomio.

1. Abra un nuevo VI y construya el siguiente panel frontal utilizando los


siguientes consejos

• Ajuste el estilo del punto del dibujo del waveform chart a una x
pequeña.
• Oculte el titulo del dibujo del waveform chart.
• Haga clic derecho en el waveform chart, seleccione X
Scale»Formating del menú de inicio rápido. En la pestaña Display
Format coloque 2 dígitos de precisión y en la pestaña Scales,
seleccione Time (X-Axis) coloque 0.25 en la opción Multiplier.
• Utilice el mouse para redimensionar el titulo del dibujo del waveform
graph de tal forma que se puedan ver dos señales (la blanca y la
verde como se ve en el panel frontal).
• Utilice el mouse para renombrar Temp a Plot 0 y Fitted a Plot 1.
• Ajuste el estilo del punto del waveform graph Temp del dibujo a un
cuadro pequeño. Para ello de clic derecho enseguida de la palabra
Temp (sobre la parte negra) y seleccipne Common Plots y elija el
recuadro blanco.
• No cree todavía los indicadores Media, Máximo y Mínimo.

2. Construya el siguiente diagrama de bloques.

a. Seleccione Funciones»Select a VI y busque y seleccione el VI


que usted desarrolló para simular la temperatura. Recuerde que
es un subVI que simula una temperatura entre 70 y 90º F.
b. Ponga la función Wait Until Next ms Multiple localizado en la
paleta Functions»Timing y cree una constante de 250. Esta
función hace que el For Loop se ejecute cada 0.25 s (250 ms).
c. Ponga la función Array Max & Min localizada en la paleta
Functions»Array. Esta función retorna el valor máximo y mínimo
de temperatura.
d. Ponga el VI Mean localizado en la paleta
Functions»Mathematics»Probability and Statistics. Este VI
retorna el promedio de la temperatura medida.
e. Haga clic derecho en el terminal de salida de las funciones Array
Max & Min y Mean VI y seleccione Create»Indicator del menú
de inicio rápido para crear los indicadores de Max, Min y Mean.
f. Ponga el VI General Polynomial Fit VI localizado en la paleta
Functions»Mathematics»Fitting. Este VI retorna un arreglo que
es un ajuste polinomial del arreglo de temperatura.
g. Ponga la función Bundle localizada en la paleta
Functions»Cluster, Class and Variant.
h. Ponga 0 en la primera entrada (será el valor de X), 0,25 en la
segunda entrada (será el valor de delta X), y los datos de
temperatura en la tercera entrada (serán los valores en Y). El
valor x de 0.25 es requerido para que el VI dibuje los puntos del
arreglo de temperatura cada 0.25 s en el waveform graph.
i. Ponga la función Build Array localizada en la paleta
Functions»Array. Esta función crea un arreglo de clusters desde
el cluster de temperatura y el cluster de mejor ajuste.
3. Guarde el VI como Análisis de Temperatura.vi.
4. Vaya al panel frontal y corra el VI.
El gráfico muestra ambos los datos de temperatura y la curva de ajuste de
la señal de temperatura.

5. Intente con valores diferentes para la constante de orden del polinomio


en el diagrama de bloques y corra el VI de nuevo.
6. Guarde y cierre el VI.

Parte 3. Find Mid Value

En la parte 3, aplicará el conocimiento que ha adquirido de arreglos para


escribir un VI e implementar varias funciones de arreglos.

Haga un VI que primero acumule los valores de un arreglo de temperatura


utilizando el VI de simulación de temperatura que usted desarrolló. Incorpore
los siguientes puntos:

• Ajuste el tamaño del arreglo con un control en el panel frontal.


• Inicialice un arreglo utilizando la función Initialize Array del mismo
tamaño donde todos los valores son iguales a 10.
• Sume los dos arreglos, calcule el tamaño del arreglo final, y extraiga el
valor medio del arreglo final.
• Muestre el arreglo de temperatura, el arreglo inicializado, al arreglo
final, y el valor medio en el panel frontal..

Guarde el VI como Find Mid Value.vi


Reporte de la Tarea

Hoja de Datos
Cuestionario

1. Cómo se diferencia un chart de un graph?


2. Cuáles son los tres modos de actualización de un chart? Explique
brevemente cada uno de ellos.
3. Cómo se crea un arreglo?
4. A continuación encuentra un arreglo 2D
2 4 7 5 1

6 9 3 4 5

2 5 8 4 9

a. Cuál es el número en el índice [1, 3]?


b. Si utiliza la función Array Subset en arreglo anterior, y
asigna los siguientes valores de entrada (en orden)
Índice: 2
Longitud: 3
Índice: 3
Longitud: 2
Cuál valor(es) se retornarán? Será un arreglo 1D o
2D?
5. Cómo se diferencia un cluster de un array?
6. Cuál es la diferencia entre las funciones Bundle y Bundle by Name?
Unbundle y Unbundle by Name?

También podría gustarte