Tutorial: Arrays and Clusters

Visão geral

Este tutorial explica os tipos de dados nas formas de array e cluster, além de fornecer a você uma introdução para criar e manipulá-los.

Um array consiste de elementos e dimensões que pode ser tanto um controle ou um indicador, não podendo ser uma mistura de controles e indicadores. Elementos são os dados ou valores contidos em um array. Uma dimensão é o comprimento, altura ou largura de um array. Arrays são muito úteis quando você está trabalhando com dados similares e quando você quer armazenar um histórico de cálculos repetitivos.

Elementos do array são ordenados por um índice. Cada elemento do array possui um valor de índice correspondente, e você pode usar esse índice para acessar um elemento específico no array. No software NI LabVIEW, o índice do array é iniciado em 0. Isto significa que se array com uma dimensão (1D) contém n elementos, a faixa do índice variará de 0 até n-1, onde o ponto com índice 0 é o primeiro elemento do array e o ponto com índice n-1 é o último elemento do array.

Cluster é o grupo de elementos com diferentes tipos de dados misturados. Um exemplo de um cluster é o cluster de erro do LabVIEW (error cluster), que combina um valor booleano, um valor numérico e uma string. Um cluster é similar a um record ou struct em uma linguagem de programação baseada em texto.

Similar ao array, um cluster pode ser tanto um controle como um indicador, não podendo ser uma mistura de controles e indicadores. A diferença entre clusters e arrays é que um cluster tem um tamanho fixo, enquanto um array pode variar de tamanho. Outra diferença é que um cluster pode conter diferentes tipos de dados, enquanto um array pode conter apenas um tipo de dado.

Veja como criar um array com controles ou indicadores

Para criar um array no LabVIEW você deve primeiro localizar o ícone do array no painel frontal (front panel) e então adicionar no VI, depois adicione um elemento na casca que envolve o mesmo, este elemento pode ser por exemplo, um numérico, booleano ou qualquer controle ou indicador.

1.     Criar um novo VI.

2.     Clique com o botão direito no painel frontal para exibir paleta Controls.

3.     Na paleta Controls navegue para Modern»Array, Matrix & Cluster e arraste o Array para o painel frontal.

4.       Na paleta Controls navegue para Modern»Numeric e depois clique e arraste um numeric indicator para dentro do Array.

5.       Coloque seu mouse sobre o array e depois clique no canto direito e arraste para o lado direito mesmo para expandir e mostrar múltiplos elementos.

No passo anterior você criou um array 1D. Já um array 2D armazena elementos na forma de matriz. Cada elemento de um array 2D possui dois valores de índice que são correspondentes ao mesmo elemento, sendo um o índice da linha e o outro o índice da coluna. Novamente, tanto em um array 1D quanto em um array 2D o índice da linha e da coluna são iniciados em zero.

Para criar um array 2D, você deve primeiro criar um array 1D e então adicionar uma dimensão. Retorne para o array 1D que você criou nos passos anteriores.

1.       Coloque seu mouse sobre o array e depois clique no canto direito e arraste para o lado direito mesmo para expandir e mostrar múltiplos elementos.

2.       Coloque seu mouse sobre o array e arraste o canto do array para expandir e mostrar múltiplas linhas e colunas.

Até este ponto, os elementos numéricos do array que você criou estão mostrando o valor zero de forma escurecida. Um elemento do array escurecido indica que o elemento não está sendo utilizado. Para inicializar um elemento, clique no mesmo e substitua o valor 0 por qualquer número a sua escolha.

Você pode inicializar os elementos do array para qualquer valor a sua escolha. Eles não precisam ter os mesmos valores mostrados na imagem acima.

Veja como criar um Array Constant

Você pode usar o array constants para armazenar dados de constantes numéricas ou como base para comparação com outro array.

1.  No diagrama de blocos, clique com o botão direito para exibir a paleta Functions.

2.  Na paleta Functions navegue para Programming»Array e então clique e arraste o Array Constant para o diagrama de bloco.

3. Na paleta Functions navegue para Programming»Numeric e então clique e arraste o Numeric Constant para dentro do Array Constant.

4.      Redimensione o array constant e inicialize alguns elementos.


Entradas/Saídas (I/O) de arrays

Se você conectar um array como uma entrada para um loop, o LabVIEW fornece opções para configurar automaticamente o count terminal do loop for para o tamanho do array usando o recurso Auto-Indexing. Você pode habilitar ou desabilitar a opção Auto-Indexing, clicando com o botão direito no loop tunnel conectado ao array e selecionar Enable Indexing (Disable Indexing).

Se você habilitar o Auto-Indexing, cada interação do loop for é passada ao elemento correspondente do array.

Quando você conecta um valor como saída no loop for, é habilitado a saída Auto-Indexing no array. O array é igual em tamanho ao número de interações executada pelo loop for e contém os valores de saída do loop for.

1.      Crie um novo VI. Navegue para File»New VI.

2.     Crie e inicialize dois array constants 1D, contendo cada um seis elementos numéricos. O diagrama de blocos deve ficar similar à figura mostrada abaixo.

3.      Crie no painel frontal um array 1D com indicadores numéricos. Mude o tipo numérico para 32- bit integer. Para isso, clique com o botão direito no array e selecione Representation»I32.

4.      Crie um loop for no diagrama de blocos e adicione uma função de soma (add function) dentro do loop for.

5.      Conecte um dos array constants no loop for e então conecte-o ao terminal x da função soma.

6.       Conecte o outro array constants no loop e então conecte-o ao terminal y da função soma.

7.       Conecte a saída da função soma para fora do loop for e então conecte na entrada do array indicador numérico.

8.       Seu diagrama de blocos e painel frontal deverá ficar similar ao mostrado nas figuras abaixo.

  

Diagrama de bloco

Painel frontal

9.       Vá para o painel frontal e execute o VI. Note que cada elemento do array com indicadores numéricos é preenchido com a soma dos elementos correspondentes dos dois arrays constants fora do loop for.

Cuidado que se você habilitar o Auto-Indexing em mais de um túnel do loop (tunnel loop) e conectar ao terminal contador (count terminal) do loop for, o número de interações será igual a menor das escolhas. Por exemplo, na figura abaixo, o contador do terminal do loop for está definido para executar 15 interações, já o array 1 contém 10 elementos, e Array 2 contém 20 elementos. Se você executar o VI na figura abaixo, o loop for executará apenas 10 vezes e o Array Result conterá 10 elementos. Tente isto e veja você mesmo.

Você pode criar um 2D array usando loop for e o Auto-Indexing como mostra a figura abaixo. O loop for externo define o número de linhas, e loop for interno define o número de colunas.


Criando Clusters

1.     Crie um novo VI

2.     Clique com o botão direito no painel frontal para mostrar a paleta Controls.

3.     Na paleta Controls, navegue para Modern»Array, Matrix & Cluster e então clique e arraste o Cluster para o painel frontal.

 

4.      Redimensione o Cluster de modo que seja grande suficiente para conter múltiplos elementos.

 

5.    Na paleta Controls, navegue para Modern»Numeric e clique e arraste um controle numérico (Numeric Control) para dentro do Cluster.

6.      Na paleta Control, navegue para Modern»String & Path e arraste um String Control para dentro do Cluster.

7.       Na paleta Control, navegue para Modern»Boolean e arraste um Vertical Toggle Switch para dentro do Cluster.

8.      Seu cluster deverá agora se parecer com o que está mostrando abaixo.

Você pode agora conectar um controle numérico, string e Booleano no diagrama de blocos utilizando apenas um fio em vez de três fios separados.

 

Veja como criar um Cluster Constant

Similar ao array constant, você pode usar um cluster constant para armazenar dados de constantes ou como base para comparação com outro cluster. Para criar um cluster constant você deve seguir um caminho similar aos que você seguiu nas etapas anteriores.

Se você já tem um cluster como controle ou indicador e precisa torná-lo em um cluster de constante que contém os mesmos tipos de dados, faça uma cópia do cluster do tipo controle ou indicador no diagrama de blocos e então clique com o botão direito na cópia e selecione Change to Constant no menu de atalho.

Funções Cluster

Este tutorial examina também as quatro principais funções de cluster que são frequentemente usadas para manipular clusters. Estas são as funções Bundle, Unbundle, Bundle By Name, e Unbundle By Name.

Use a função Bundle para montar um cluster através de elementos individuais. Para conectar elementos na função Bundle, use seu mouse para redimensionar a função ou clique com o botão direito na função e selecione Add Input do menu de atalho.

Use as funções Bundle By Name ou Bundle para modificar um cluster existente. Você pode redimensionar a função Bundle By Name da mesma maneira que a função Bundle.

 

                                   

                               

A função Bundle By Name é muito útil para modificar um cluster já existente, pois permite que você saiba exatamente qual elemento do cluster está modificando. Por exemplo, considere um cluster que contém dois elementos string rotulado “String 1” e “String 2”. Se você usar a função Bundle para modificar o cluster, os terminais da função aparecem em cor rosa. Você não sabe qual terminal modifica a "String 1" e qual terminal modifica a "String 2".

 

No entanto, se você usar a função Bundle By Name para modificar o cluster, os terminais da função mostram o rótulo de cada elemento para que você saiba qual terminal modifica a "String 1" e qual terminal modifica a "String 2".

Use a função Unbundle para desmontar um cluster em seus elementos individuais. Use a função Unbundle by Name para retornar específicos elementos do cluster por meio do nome do elemento. Você também pode redimensionar essas funções para vários elementos da mesma maneira que as funções Bundle e Bundle By Name.

 

Ordem do Cluster

Os elementos do cluster possuem uma ordem lógica não relacionada com as suas posições no cluster. O primeiro objeto que você adiciona no cluster é o elemento 0, o segundo é o elemento 1, e assim por diante. Se você deletar um elemento a ordem é ajustada automaticamente. A ordem do cluster determina a ordem em que os elementos irão aparecer como terminais na função Bundle e Unbundle no diagrama de blocos. Você pode ver e modificar a ordem do cluster clicando com o botão direito na borda do cluster e selecionando Reorder Controls In Cluster do menu de atalho.

A caixa branca em cada elemento mostra a atual posição do mesmo dentro do cluster. A caixa preta mostra a nova posição do elemento. Para configurar a ordem do elemento no cluster, digite na caixa de texto Click to set to a nova ordem do elemento que você deseja alterar e então clique no elemento. Com isso, a ordem do elemento no cluster será alterada e a ordem dos outros elementos no cluster será ajustada automaticamente. Salve as mudanças clicando no botão Confirm na barra de ferramentas. Para reverter às modificações e utilizar a ordem original clique no botão Cancel.

 


Video    Arrays, Clusters, and Text Based Nodes    Modules Home    FIRST Community

Was this information helpful?

Yes

No