INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA ARRAYS EN LABVIEW Relacionando Datos Arrays y Clusters INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Objetivos 1. Event Structure 2. Arrays 3. Funciones 4. Ejercicios 5. Cluster 6. Simulación de adquisición de señales de tensión 7. Adquisicion de datos con la placa USB 18200-10 8. Adquisición de una señal de tensión 9. Adquisición de dos señales (corriente y tensión) INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Structure Event Código a procesar cada vez que se pulse un botón INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Structure Event Código a procesar cada vez que se pulse un botón INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Structure Event Ejercicio INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Ejercicio INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Ejercicio: Realizar un VI con las cuatro operaciones matemáticas utilizando la estructura event. Ejercicio INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Los arrays o arreglos son un conjunto de datos del mismo tipo ordenados que pueden ser números, booleanos, waveform, path, strings, etc. • • • • • Determinado por los elementos y dimensiones. Pueden ser utilizados como un indicador o un control (de entrada). El cableado de un array es del mismo color que el tipo de datos que contiene, pero más grueso y en el caso de los numéricos es de doble línea para dos o más dimensiones. En el terminal del DdB aparecerá el tipo de datos entre corchetes. Se utilizan cuando se trabaja con una colección de datos similares y cuando se quiere optimizar subrutinas repetitivas INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays- Creación Para crear un Array vamos al PF y con clic derecho con el mouse seleccionamos Array desde Array,Matrix & Clusters Ejercicio INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays – Creación El siguiente paso es determinar que tipo de arreglo se va a generar. Existen dos tipos de arreglos: indicadores y de control. En el primer caso solo recibe datos por parte del programa, mientras que en el segundo (control) el usuario puede ingresar los datos manualmente. En nuestro ejemplo creamos un arreglo de control, agregando un control numérico y lo colocamos dentro del Array. INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays Como se puede apreciar el arreglo tiene una entrada, si lo que deseamos es una matriz de cinco entradas habrá que colocar el puntero en dicho arreglo de tal forma de obtener la selección siguiente: Colocar el puntero y estirar para aumentar las entradas hasta observar cinco celdas. INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays Si queremos obtener tres filas (Array de dos dimensiones) hacemos clic en en la primera celda hasta obtener la siguiente forma: INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays – Creación 1. Al usar un Array no hay que declarar el tamaño de cada dimensión, ya que puede redimensionarse cuando sea necesario. 2. Si el Array se deja vacío en el DdB aparecerá el terminal en negro con un paréntesis vacío. Vacío Ejercicio INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays Siguiendo los mismos pasos podemos crear un array con indicadores. En el ejemplo siguiente creamos un VI que genere cinco números aleatorios y lo almacenamos en un array: Ejercicio 1 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays – Auto-indexando “Output” • Cuando “auto-index” queda habilitado a la salida del túnel, el Array de salida recibe un nuevo elemento en cada iteración del ciclo. • “Auto-indexed output arrays” tiene igual número de elementos que el número de iteraciones. INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Construir un Array con constantes desde el DB Función Build Array Ejercicio 2 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays – 2D Array • Requiere de un índice de columna y un índice de fila para localizar a un elemento, ambos índices se inician en cero. • Para crear un multidimensional array sobre el PF, click derecho sobre el display de índice, se selecciona “Add Dimension” desde el menú emergente. • Con la herramienta de posicionamiento podemos cambiar el tamaño del despliegue del índice hasta que tenga las dimensiones que queramos. INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays – Inicialización • El array puede inicializarse ingresando los datos desde el PF. • Para inicializar arrays, se define el número de elementos en cada dimensión y el contenido de cada elemento. • Los arrays sin inicializar tienen dimensión pero no tienen elementos. INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays – Creando constantes • Para crear un array constante: • Seleccionar Array Constante desde la paleta de “Functions” • Coloque la función en el DdB • Arraste e inserte una constante dentro del Array. • Se usa un array constante para almacenar varios datos que permanecen constantes en la ejecución de un VI. • Arrays constantes también son útiles para pasar datos dentro de un subVI Ejercicio 3 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays – Auto-indexado • “For Loop” o “While Loop”, cada iteración puede volcar información como un elemento del array habilitando autoindexado sobre el túnel. • El túnel cambia de forma: de un cuadrado sólido a la imagen siguiente: INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays – Auto-indexando “Input” • “For Loop” se ejecuta un número de veces igual al número de elementos del Array Ejercicio 4 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Arrays – Creando Arrays 2D • Usando dos “For Loops”, uno dentro del otro generamos un array 2D Ejercicio 5 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Trabajando con arrays usando funciones de LabVIEW •Build Array (Agregando un nuevo elemento a un array existente) Ejercicio 6 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA •Build Array (Agregando un nuevo elemento a un array existente) INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Trabajando con arrays usando funciones de LabVIEW Array Index (desplegar un elemento del array 1D por su índice) Ejercicio 7 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Trabajando con arrays usando funciones de LabVIEW Array Index (elemento de un Array 2D) Ejercicio 8 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Trabajando con arrays usando funciones de LabVIEW Ejercicio 9 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Trabajando con arrays usando funciones de LabVIEW Ejercicio 10 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Trabajando con arrays usando funciones de LabVIEW Dimensión de un Array Ejercicio 11 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Trabajando con arrays usando funciones de LabVIEW Si la función no encuentra el elemento devuelve -1 Ejercicio 12 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Trabajando con arrays usando funciones de LabVIEW Build, Insert, Sort (Ejercicio 13) INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Función Subset: Regresa parte de un array iniciando por el index y determinado por lenght Ejemplo Ejercicio 14 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Ejercicio 15 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Trabajando con arrays usando funciones de LabVIEW Ejercicio 16 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Ejercicio 16 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Ejercicio 17 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Construir un VI con una rutina de una función de estructura que genere el array de la Figura. A partir de este array genere otro donde se intercambien los elementos 3 y 8, obteniendo el array resultante: Ejercicio INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Clusters INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Clusters • Estructura de Datos que agrupa datos juntos. • Pueden contener datos de tipos diferentes (a diferencia de los arrays). • Similar a un registro de una base de datos • Los elementos deben ser todos Controles o todos Indicadores. Ejemplo INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Clusters – Array vs. Cluster • Los “Clusters” difieren de los arrays en que tienen una medida fija. • Clusters pueden contener datos mixtos mientras que los arrays contienen datos de un único tipo. • Igual que un array, un cluster es o un control o un indicador y no puede contener una mezcla de controles e indicadores. INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA En el ejemplo siguiente, se muestra cómo tres tipos de datos distintos (número real, número entero y cadena de caracteres) que se encuentran en los controles de la izquierda son llevados a la parte derecha del diagrama como una única unidad. Para aguparlos, se utiliza el objeto Bundle, que se encuentra en Functions/Programming/Cluster, Class & Variants. En cambio, en el lado derecho, tanto del diagrama como del panel, se encuentran los indicadores que permiten visualizar los valores enviados desde los controles antes mencionados. Para ello, se utiliza el objeto Unbundle, cuya misión es obtener los elementos individuales del grupo que llega a su entrada. INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Ejercicio 18 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Ejercicio 19 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Ejercicio 20 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Clusters – Creación • Para crear un cluster control o indicador en el PF: – Colocar la pre-forma (punteada) del Cluster sobre el PF desde “Controls>>Array & Cluster” – Arrastrar objetos dentro, que bien puede ser numérico, Booleano, string”, etc. – El cluster se convierte en indicador o control de acuerdo al primer objeto que fue ingresado dentro del grupo Ejercicio INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA CREACION DE UN CLUSTER DESDE EL PANEL FRONTAL Ejercicio 21 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Cluster Constante • Para crear un cluster constante: – Seleccione un “cluster constant” desde la paleta de “Functions” – Coloque el cuadro “cluster” en el DdB Ejercicio 22 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Clusters – Orden • El orden de los datos en el interior es en el que se añaden. • Este orden se puede modificar haciendo click derecho en el borde del cluster y seleccionando “Reorder Controls In Cluster” desde el menú contextual El orden lógico inicia en 0 Ejercicio 23 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Clusters Ejercicio 1 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Clusters Ejercicio INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Clusters y Waveform Graph Ejercicio INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Trabajando con arrays usando funciones de LabVIEW ∆x = 1 Ejercicio x0 INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA Ejercicio INSTRUMENTACIÓ INSTRUMENTACIÓN AVANZADA