UNIDADE 3 - Passagem
de dados de Loops por "Túneis"
Ponto 3 - Ciclos FOR
e Temporizações
3 de 7
Ciclos For
O For
Loop executa um subdiagrama diversas vezes. A Figura
1, mostra o For Loop em LabVIEW,
o fluxograma equivalente à funcionalidade do For
Loop e um exemplo do pseudo código para o For
Loop.
Figura 1
O For Loop está localizado
na palete, Functions>>All Functions>>Structures. Pode
também colocar o While Loop
no diagrama de blocos, clique do lado direito no limite do While
Loop e seleccione Replace with For
Loop do menu de atalho para alterar o While
Loop para For Loop. O valor
no terminal count (terminal de entrada),
Figura 2, indica quantas vezes
deve repetir o subdiagrama.
O terminal iteration (terminal de
saída), Figura 2, contém
o número de iterações completas. A contagem
da iteração inicia sempre em zero. Durante a primeira
iteração, o terminal de iteração devolve
0.
A diferença entre o For Loop
e o While Loop é que o For
Loop executa um certo número de vezes, enquanto
que o While Loop só para
a execução do subdiagrama se o valor da condição
terminal for encontrado.
O For Loop (Figura
2) gera um número aleatório em cada segundo
durante 100 segundos e mostra os números aleatórios
num indicador numérico.
Figura 2
Funções
Espera
A função Wait Until Next
ms Multiple, Figura 3, monitoriza
um contador de millisegundos e aguarda até que o contador
atinja um múltiplo da quantidade definida. Utilize esta
função para sincronizar actividades. Coloque esta
função dentro de um ciclo para controlar o a taxa
de execução do ciclo. A função
Wait (ms), Figura
3, adiciona o tempo de espera ao tempo de execução;
isto pode ser um problema se o tempo de execução
for variável.
Nota:
O Time Delay Express VI, localizado na palete Functions>>Execution
Control, tem um comportamento similar à função
Wait (ms) com o complemento de construir error clusters.
Para mais informações sobre error clusters
consulte Clusters.
Funções
Espera
O LabVIEW pode representar dados de tipo numéricos como
inteiros assignados ou não (8-bit, 16-bit ou 32-bit); valores
numéricos com pontos de flutuação (simples,
duplo ou precisão prolongada); ou pode representar valores
numéricos complexos (simples, duplo ou precisão
prolongada). Quando ligar duas ou mais entradas numéricas
de diferentes representações para a função,
a função normalmente devolve saídas no formato
maior ou mais largo. A função força as representações
mais pequenas para as maiores antes da execução.
LabVIEW coloca um ponto de coerção no terminal onde
a conversão é feita.
Por exemplo, o terminal contador do For
Loop é um inteiro de 32 bits. Se ligar um numérico
de dupla precisão, ponto de flutuação ao
terminal contador, o LabVIEW o numérico para um inteiro
de 32 bits. Um ponto de coerção aparece no terminal
contador do primeiro For Loop, Figura
3.
Figura 3
Se ligar dois tipos diferentes
de dados numéricos a uma função numérica
que espera que as entradas sejam do mesmo tipo de dados; o LabVIEW
converte um dos terminais para a mesma representação
do outro terminal. O LabVIEW escolhe a representação
que utiliza mais bits. Se o número de bits é o mesmo,
o LabVIEW escolhe o número não assignado em vez
do assignado.
O exemplo da Figura 4, um inteiro
assignado de 32 bits (I32) e um valor numérico de dupla
precisão ponto flutuação (DBL) estão
ligados à função Divide.
O um inteiro assignado de 32 bits (I32) é forçado
desde que utilize menos bits que o valor numérico de dupla
precisão ponto de flutuação.
Figura 4
Para alterar a representação
de um objecto numérico, clique do lado direito do objecto
e seleccione Representation do menu
de atalho. Seleccione o tipo de dados que melhor representam o
tipo de dado do data.ut.
Quando o LabVIEW converte valores numéricos de dupla precisão
ponto flutuação em inteiros, arredonda-os para inteiros
mais próximos. O LabVIEW arredonda x.5
para o inteiro composto mais próximo. Exemplo: o
LabVIEW arredonda 2.5 para 2 e 3.5 para 4.
Para mais informações sobre tipos de dados, consulte
a secção Data Types do Introduction to LabVIEW deste
manual ou o LabVIEW Help.