Vous êtes sur la page 1sur 35

Material Importante referente a la filosofía de LabView

Paletas de LabView
• Panel Frontal.- La paleta de Controls es utilizada para
seleccionar controles o indicadores que serán colocados en el
instrumento virtual. Se accede a través del menú de View-Controls
Palette

• Diagrama Bloques.- La paleta de Functions es utilizada para


colocar bloques de programación grafica . Se accede a través del
menú de View-Functions Palette

• Tools Palette.- Es una paleta que tiene herramientas particulares


que pueden ser usadas dentro del panel frontal ó del diagrama de
bloques. . Se accede a ella a través del menú de View-Tools
Palette. Cuando está activado el botón de selección automática
(botón superior de la paleta), LabView selecciona la herramienta a
utilizar al mover el mouse sobre objetos del panel frontal o del diagrama
de bloques.

1
Material Importante referente a la filosofía de LabView

Teclas de Acceso Rápido en LabView


• CTRL<E> Cambia entre el panel frontal y el de bloques

• CTRL<H> Muestra ayuda respecto a los bloques sobre


los que pasa el cursor en el diagrama de bloques o sobre
los objetos del panel frontal

• CTRL<B> Hace una limpieza en el diagrama de bloques


eliminando alambres no conectados

Formula Node : Soluciones de LabView


programando en C
Un recurso para solucionar problemáticas utilizando dentro de LabView
programación de texto similar a C es la estructura Formula Node. A través de
esta estructura se pueden alimentar datos de entrada y obtener datos de
salida. La estructura Formula Node se encuentra en la paleta de Structures.

2
Material Importante referente a la filosofía de LabView

Al utilizar una estructura Formula Node se agregan entradas y salidas a la


estructura oprimiendo el botón derecho en el borde de la estructura. Las
entradas se etiquetan con un nombre y dicho nombre puede usarse en la
programación como si fuera una variable, las etiquetas de los nombres de
salida deben corresponder con variables declaradas dentro del programa.

En la figura de abajo se muestra un simple programa de LabView que suma dos


números, se muestra la solución utilizando alambrado común y la solución con
Formula Node.

3
Material Importante referente a la filosofía de LabView

Los tipos de datos que pueden ser usados dentro de la estructura Formula Node son: int,
int8, int16, int32, uInt8, uInt16, uInt32, float, float32 y float64.

USO DE SHIFT REGISTER´S EN LabView


Los Shift Register´s sirven para transferir valores de una iteración a otra
dentro de los ciclos for´s y while´s. Para crear un shif register en un ciclo for o
while se hace clic con el botón derecho en uno de los bordes de la estructura
cíclica dentro del diagrama de bloques y se elige Add Shift Register.
Aparecen entonces en los extremos izquierdo y derecho de la estructura
símbolos encuadrados con flechas hacia abajo y arriba(entrada y salida del
shift register) donde se puede realizar el alambrado.

En la siguiente figura se muestra el panel frontal y el diagrama de bloques en


un programa de LabView que suma los primeros N números. A través de un
control se proporciona el valor de N y el resultado se despliega en un indicador
numérico.

4
Material Importante referente a la filosofía de LabView

En el diagrama se alambra el valor del control N a la entrada N que controla el


ciclo for, este es el número de veces que se ejecutará el ciclo El contador
automático i que proporciona el ciclo for da los valores de 0 para la primera
ejecución del ciclo, 1 para la segunda ejecución del ciclo, 2 para la tercera
ejecución y N-1 para la última ejecución del ciclo. Dicho contador es entonces
incrementado en 1 para así poder sumar 1+2+3+…N en vez de 0+1+2+3+….
+N-1.

En la primera vez que se ejecuta el ciclo for, se transfiere un cero al alambre


superior del bloque de suma, Como el resultado del bloque de suma va al Shift
Register de salida, este valor es transferido al Shift Register de entrada en la
siguiente iteración del ciclo y así sucesivamente.

TIMING
La paleta de Timing nos proporciona herramientas de programación que se
relacionan con tiempo.

5
Material Importante referente a la filosofía de LabView

Los 2 bloques más utilizados son el Wait(ms) y el Wait Until Next ms


multiple. El primero retarda cierta cantidad de tiempo en milisegundos y el
segundo produce una espera hasta que el timer del sistema es múltiplo de una
cantidad dada de milisegundos.

EJEMPLO:

Desplegar en un indicador numérico los múltiplos de la serie de un número


especificado en otro control, como un indicador sólo puede tener un valor a la
vez, los múltiplos se deberán desplegar uno por uno con una separación de
500 milisegundos entre ellos. El programa se detendrá cuando el usuario
oprima un botón de STOP.

Solución

6
Material Importante referente a la filosofía de LabView

Cabe hacer notar aquí, que si durante la ejecución del programa se modifica el
control Serie, comenzarán a aparecer múltiplos del valor nuevo de dicho
control ya que este control es leído una vez por cada una de las
ejecuciones del ciclo.

Túneles
Un túnel es la manera en que LabView pasa información de una parte del
diagrama a una estructura o viceversa. Hay túneles de entrada a una
estructura y túneles de salida de la estructura, además existen diferentes tipos
de túneles, cada uno opera de manera diferente, el más simple es el túnel
relleno, en este tipo de túnel el valor se pasa por una única vez hacia el interior
de una estructura o hacia fuera de una estructura. En este túnel o nodo el valor
transferido es almacenado dentro del mismo túnel para ser utilizado dentro de
la estructura (túnel de entrada) o fuera de ella (túnel de salida).

Una cosa importante de recordar es que una estructura(cualquiera que


ésta sea) es ejecutada sólo cuando ya se han almacenado los valores
que provienen de fuera de la estructura dentro de los túneles de
entrada, esto significa que los túneles son lugares de almacenamiento
de información.

Por ejemplo, abajo se muestra un diagrama donde se ha sacado de la


estructura while el control llamado Serie del ejemplo previo y su valor se ha
introducido al ciclo a través de un túnel de entrada.

7
Material Importante referente a la filosofía de LabView

La operación sería casi idéntica al ejercicio de la sección de Timing, sin


embargo si durante la ejecución se modifica el control Serie se seguirían
desplegando los múltiplos del primer valor de dicho control, esto significa que
éste es leído en el diagrama únicamente una vez y su valor almacenado en el
túnel de entrada.

En el diagrama de bloques a través del botón Highlight Execution se puede


ver el flujo de valores que se generan en la ejecución de un programa de
LabView, se puede observar para este caso que el control llamado Serie es
leído una única vez(al iniciar la ejecución del programa), se almacena entonces
en el túnel y después de esto se procede a la ejecución del ciclo.

8
Material Importante referente a la filosofía de LabView

Lo mencionado previamente significaría que si sacó el botón de stop fuera del


ciclo, el programa nunca se detendría pues el botón se lee únicamente una vez
antes de comenzar ejecución del ciclo, por lo que sería completamente
incorrecto hacer algo así.

Colocar el indicador Múltiplo fuera del ciclo y conectarlo a través de un túnel


como lo muestra la siguiente figura, haría que solamente el último valor
generado antes de oprimir el botón stop apareciera en el indicador, esto es, en
este tipo de túneles de salida, el último valor almacenado en ellos es el
transferido. Por lo tanto la ejecución en LabView sigue un orden dado por el
flujo de información que fluye por el alambrado.

9
Material Importante referente a la filosofía de LabView

Algunas veces es deseable sustituir o reemplazar un túnel en una estructura


cíclica por un shift register , esto se hace oprimiendo con el botón derecho
sobre el túnel y eligiendo la opción Replace with Shift Register. El proceso
inverso también es posible(cambiar un shift register por un túnel).

Implementación de if’s en LabView


La filosofía de LabView para implementar instrucciones análogas a la
instrucción if encontrada en lenguajes como C es la estructura Case. Dicha
estructura puede encontrarse en la paleta Structures de la sección de
Programming como lo muestra la siguiente figura.

10
Material Importante referente a la filosofía de LabView

Por default la estructura aparece con una entrada tipo boolean (la cual puede
ser true o false), cada una de las 2 opciones se codifica dentro de la estructura.
Para cambiarse de una opción a otra se hace un clic en la parte superior y se
elije la opción que se desea codificar o visualizar.

En el siguiente ejemplo se muestra un programa de LabView con un control


númerico y un indicador. El programa obtiene la raíz cuadrada del valor del
control, se muestra la codificación para el caso en que el número sea mayor o
igual a cero y cuando no lo es. En el caso en que el control tenga un valor
negativo se envía un cuadro de dialogo al usuario indicando que hay un error.

El programa utiliza un túnel para transferir la información del control a la


estructura Case y otro túnel para emitir el valor de la raíz cuadrada hacia fuera
de la estructura. Algo importante que recordar respecto a los túneles de salida
en una estructura Case, es el hecho de que dichos túneles deben de estar
alambrados en el interior de la estructura para todas las opciones posibles
del Case (en el ejemplo mostrado para las opciones true y false).

11
Material Importante referente a la filosofía de LabView

Nótese que en la codificación de False se envía el valor -99999.0 al indicador


cuando se intenta obtener la raíz cuadrada de un número negativo. La figura
inferior muestra los resultados al correr el programa con valores positivos y
negativos.

12
Material Importante referente a la filosofía de LabView

Algo similar a la estructura Case pero más enfocado al control de flujo de datos
en el alambrado es el bloque Select encontrado en la paleta de Comparison
dentro de Programming. Dicho bloque permite que una de 2 entradas(t ó f en
la figura de abajo) pueda fluir hacia la salida del bloque acorde al valor
booleano de una entrada (s en la figura de abajo).

El siguiente diagrama muestra un ejemplo de un programa en LabView que


despliega en un indicador string una serie de números separados por comas
que van descendiendo con diferencias de 100, 200, 300, 400, etc. entre ellos.
El primer número se da a través de un control llamado valor de inicio y se
indica a través de otro control el número de elementos que se desplegarán. El
bloque select se utiliza aquí para eliminar la última coma que podría aparecer
en el último número desplegado.

13
Material Importante referente a la filosofía de LabView

Uso de valores de controles e indicadores en


varias secciones de un programa de LabView
14
Material Importante referente a la filosofía de LabView

Muchas veces es requerido modificar o utilizar el valor de un control o


indicador que se encuentra lejos en un diagrama de bloques. La manera más
adecuada de hacer esto es creando un Nodo de Propiedad(Property Node)
del control o indicador, esto se hace oprimiendo con el botón derecho del
indicador o control en el diagrama de bloques y seleccionando Create--
>Property Node-->Value , como se muestra en la siguiente figura al hacerlo
sobre el indicador llamado Múltiplo 1 de un programa de LabView.

Una vez hecho esto se crea un nodo del control o indicador con el campo
Value (mostrado en la sig. Figura para el indicador Múltiplo 1). El valor del
control o indicador se puede obtener alambrando desde dicho campo (si la
punta que aparece después del nombre del campo se dirige hacia fuera) hacia
el lugar deseado.

En caso de que se desee modificar el valor del control o indicador se deberá de


hacer clic derecho sobre el nombre del campo y seleccionar Change to Write
como se muestra en la sig. Figura.

15
Material Importante referente a la filosofía de LabView

La punta ahora aparecerá antes del nombre del campo y se dirigirá hacia
adentro de tal forma que podemos alambrar un valor nuevo hacia el control o
indicador. La siguiente figura muestra el mismo programa que produce
múltiplos de una serie pero utilizando Property Node´s. Nótese que los bloques
originales que se generan en el diagrama de bloques al crear los controles e
indicadores en el panel frontal no se están utilizando directamente.

Se pueden hacer cuantos nodos sean requeridos para cada indicador o control,
de esta forma se evita demasiado alambrado y confusión en un programa de
LabView.

16
Material Importante referente a la filosofía de LabView

Paralelismo en LabView
LabView es en esencia un programa que maneja paralelismo de manera muy
natural, estructuras no conectadas entre sí pueden estarse ejecutando
simultáneamente sin ningún problema. La siguiente figura muestra el diagrama
de bloques de 2 ciclos generando dos series diferentes. Ambos ciclos corren en
paralelo y generan series diferentes en los indicadores, El ciclo inferior genera
su serie más rápido ya que tiene un retardo menor.

17
Material Importante referente a la filosofía de LabView

Cada ciclo se detendrá cuando el usuario oprima el botón stop


correspondiente.

Programación Secuencial en LabView


Cuando se desea seguir un orden determinado en la ejecución de un programa
es muy útil la estructura llamada Sequence, existen dos versiones de este
tipo, la Flat y la Stacked y se encuentran en la paleta de Structures como lo
muestra la sig. Figura.

En la mayoría de los casos es indiferente usar una u otra estructura Sequence,


su función principal es facilitar la programación secuencial, es decir definir que
secciones del programa se ejecutan antes y cuales se ejecutan después. En la
siguiente figura se muestra una Flat Sequence(su formato gráfico es parecido
a un rollo de película) conteniendo 3 secciones .

18
Material Importante referente a la filosofía de LabView

En la primera sección aparece el ciclo que genera una serie, después aparece
un retardo de 5 segs. Y finalmente otro ciclo generando otra serie. A diferencia
del ejemplo encontrado en la sección de paralelismo, en este si existe un orden
de ejecución definido de izquierda a derecha en la estructura Sequence. El
retardo sólo se ejecutará cuando el usuario haya parado el primer ciclo a
través del botón stop 1. Cuando se acabe el retardo se generarán entonces los
múltiplos correspondientes al segundo ciclo y éste terminara sólo cuando el
usuario oprima el botón stop 2.

Cuando se crea un flat sequence sólo aparece un área o frame donde colocar
bloques de LabView, las demás secciones necesitadas para realizar
programación secuencial se hacen haciendo un clid derecho en el borde de la
estructura y eligiendo Add Frame After. La siguiente figura muestra este
concepto.

19
Material Importante referente a la filosofía de LabView

Un programador que conozca lenguajes como C. tiene una filosofía secuencial


de pensamiento al programar, por ejemplo el código para hacer una sumatoria
de los primeros N números positivos sería parecido a:

suma = 0;

for (i = 1; i<=N ; i++) {

suma = suma + i;

cout<<”La suma es:”<<suma;

Usando Property Nodes y una estructura sequence se podría codificar este


programa en un diagrama de bloques de la siguiente manera:

20
Material Importante referente a la filosofía de LabView

Nótese que se han creado 3 property nodes del control SUMA, dos de ellos de
escritura y uno de lectura. Al inicio de la estructura sequence se asigna un
valor de cero al control SUMA, después se ejecuta el ciclo que hace el proceso
de acumulación. La programación ahora es muy parecida a como se hace en
un lenguaje como C, sin embargo es mucho más elegante trabajar con Shift
Registers como se hizo al principio de este documento para el mismo ejemplo.

CICLO FOR Y MANEJO DE ARREGLOS


Los arreglos agrupan elementos de datos del mismo tipo. Un arreglo consiste
de elementos y dimensiones. Un arreglo utiliza un índice para que se pueda
tener acceso rápido a cualquier elemento en particular. El índice para acceder
a los elementos del arreglo inicia en cero, lo que significa que tiene un rango
de 0 a n-1, donde n es el número de elementos en el arreglo. En este
documento sólo hablaremos de arreglos de 1 dimensión para facilitar su
comprensión.

Un arreglo puede ser creado en el panel frontal y/o en el diagrama de bloques,


cuando se crea en el panel frontal se utiliza típicamente para desplegar

21
Material Importante referente a la filosofía de LabView

información del contenido de un arreglo que está siendo procesado en el


diagrama de bloques.

CREANDO UN ARREGLO DIRECTAMENTE DESDE EL PANEL FRONTAL

Se accede a Controls->Array, Matrix & Cluster -> Array para crear un arreglo
directamente en el Panel frontal.

Para definir el tipo de elementos que contendrá este arreglo se integra al área
vacía del mismo un indicador como lo muestra la figura de más abajo
(dependiendo de la problemática se podría integrar un control).

22
Material Importante referente a la filosofía de LabView

Una vez colocado el indicador o control se puede hacer más grande el arreglo
de tal forma que muestre más elementos como se muestra en la siguiente
figura:

Para visualizar información en ese arreglo de indicadores se puede crear un


arreglo en el diagrama de bloques y conectarlo a él. El primer elemento que se
muestra del arreglo es el elemento dado por el índice del control que se
muestra a la izquierda del contenido del arreglo (por default está en 0
indicando que es el primer elemento del arreglo).

CREACIÓN DE UN ARREGLO EN EL DIAGRAMA DE BLOQUES


Un arreglo en el diagrama de bloques puede ser creado de diferentes maneras,
la problemática a resolver definirá la manera de crear un arreglo. A

23
Material Importante referente a la filosofía de LabView

continuación se muestran algunos ejemplos con las maneras más comunes de


hacerlo.

a) Crear un arreglo de tamaño 10 con un valor idéntico en cada una de sus


posiciones.

En el ejemplo se crea un arreglo de tamaño 10 y se almacena un 5 en todas


sus localidades, se conecta entonces al arreglo de indicadores hecho
previamente en el panel frontal para mostrarlo.

b) Crear un arreglo de 10 elementos con valores al azar entre 0 y 1

24
Material Importante referente a la filosofía de LabView

En el ejemplo se inicializa un arreglo de 0 elementos y se van añadiendo


elementos al final del arreglo a través del bloque Build Array, el nuevo arreglo
creado es alimentado entonces al nuevo ciclo a través de registros shift y como
el ciclo se repite 10 veces el arreglo final tendrá este número de elementos.

c) Crear un arreglo con valores constantes definidos por el usuario.

25
Material Importante referente a la filosofía de LabView

Cuando se desea utilizar un arreglo conteniendo valores constantes se accede


a la paleta Array->Array Constant, se introduce después una constante
numérica de la paleta de Numeric , se introducen entonces los números
requeridos dentro del arreglo, si se desea mostrar el contenido de este arreglo
en el panel frontal se puede conectar a un arreglo de indicadores como lo
muestra la figura.

d) Crear un arreglo cuyo tamaño va creciendo y se detiene dicho


crecimiento cuando se cumpla se cumpla una condición en el programa

En el ejemplo se va creando un arreglo con números enteros entre 0 y 10,


primero se multiplica un número entre 0 y 1 por 10 y se redondea al valor más
cercano. La construcción del arreglo se detiene cuando se produce el número 0
(en este caso Random Number x 10 generaría un valor entre 0 y 0.49999999),
cabe mencionar que el cero también se introduce en el arreglo pues todos los
procesos del ciclo deben de finalizar antes de que se termine de ejecutar la
estructura while o de que inicie una nueva iteración del ciclo.

26
Material Importante referente a la filosofía de LabView

CREANDO UN ARREGLO EN EL PANEL FRONTAL DESDE EL DIAGRAMA


DE BLOQUES
Como comentario relevante cabe destacar que las líneas que llevan arreglos en
el diagrama de bloques son más gruesas que las que llevan datos simples, esto
se muestra claramente en los ejemplos previamente descritos.

La manera más sencilla de crear un arreglo de indicadores en el panel frontal


para mostrar el contenido de un arreglo es haciendo clic derecho con el ratón y
eligiendo Create->Indicator en el alambre que lleva dicho arreglo o en la salida
de la estructura o bloque que lleve este tipo de datos.

En el ejemplo inferior se hace un clic derecho sobre el registro shift de salida


de una estructura while para crear un arreglo de indicadores que aparecerá en
el panel frontal.

MANIPULANDO ARREGLOS EN EL DIAGRAMA DE BLOQUES


En el diagrama de bloques La paleta de Array provee muchos bloques para
“manipular” arreglos(en realidad no se manipulan, simplemente se crean
nuevos arreglos en base a los ya existentes), por lo tanto en los bloques
referentes a arreglos, el arreglo de salida es un arreglo diferente al
arreglo de entrada, y éste último(el de entrada) no sufre ninguna
modificación, solo sirve para crear un arreglo nuevo(el arreglo de
salida) , por lo tanto es importante recordar que el arreglo de entrada
y el de salida son entidades distintas.

27
Material Importante referente a la filosofía de LabView

Los bloques más utilizados dentro de un arreglo se describen a continuación:

Array Size

Entrada- Un arreglo

Salida- Un entero conteniendo el tamaño del arreglo

Index Array

Entrada- Un arreglo y una posición

Salida- El elemento del arreglo que se encuentra en dicha posición.

Replace Subset

Entrada- Un arreglo, una posición y un nuevo elemento

Salida- un arreglo idéntico en tamaño y valores al de entrada


excepto por el nuevo elemento el cual colocado en la posición
dada(el valor que previamente estaba ahí desaparece).

Insert into Array

Entrada-Un arreglo, una posición y un nuevo elemento

Salida- un arreglo de tamaño mayor en 1 unidad respecto al arreglo


de entrada y con los mismos valores además de un elemento

28
Material Importante referente a la filosofía de LabView

insertado en la posición dada a la entrada(los valores después de esa


posición son corridos).

Delete from Array

Entrada-Un arreglo, una posición y un número representando los


elementos a eliminar del arreglo

Salida-Un arreglo con el/los elementos eliminados y otro arreglo


conteniendo solamente el/los elementos eliminados.

Initialize Array

Entrada-Un valor indicado el tamaño del arreglo a crear y un valor


inicial indicando el valor almacenado en todas las posiciones del
arreglo creado

Salida- Un arreglo creado del tamaño y valor indicado

Build Array

Entrada-Un arreglo y un elemento a añadir al final del arreglo

Salida- Un arreglo de tamaño mayor en 1 unidad respecto al arreglo


de entrada

Array Max & Min

Entrada-Un arreglo

Salida- Cuatro valores, los valores mayor y menor dentro del arreglo
y las posiciones en donde se encuentran dichos valores.

Sort 1D Array

Entrada-Un arreglo

29
Material Importante referente a la filosofía de LabView

Salida- Un nuevo arreglo del mismo tamaño pero ordenado en forma


ascendente.

Reverse 1D Array

Entrada-Un arreglo

Salida- Un nuevo arreglo del mismo tamaño pero con los valores
invertidos respecto al arreglo de entrada.

Rotate 1D Array

Entrada-Un arreglo y un número indicando las posiciones que se


rotarán los elementos

Salida- Un nuevo arreglo del mismo tamaño que el de entrada pero


rotado en sus elementos cierto número de posiciones

Ejemplo Final

Diseñe un programa que cree un arreglo con 10 datos al azar entre 0 y 100,
cada dato será guardado en el arreglo cada 500 milisegundos, una vez
almacenados los datos en el arreglo, se deberá desplegar la información del
arreglo en un indicador y se desplegará en otros indicadores el valor mayor de
todos, la posición del mayor, el valor menor de todos y la posición del menor.

Una solución pensada inicialmente por un programador común e inexperto en


cómo operan los túneles y registros shift´s en LabView además de desconocer
la manera correcta como operan los bloques de la paleta de Array se vería
similar a la siguiente figura.

30
Material Importante referente a la filosofía de LabView

Para la propuesta de esta solución se desarrolló primero completamente el


diagrama de bloques , se colocaron entonces indicadores desde el diagrama de
bloques haciendo un clic derecho con el ratón en aquellos alambres donde se
deseaba incluir un indicador en el panel frontal, Se seleccionó ahí la opción
Create->Indicator. En la figura inferior se muestra este proceso para la
creación del indicador llamado índice.

El proceso general para la solución propuesta del problema es el siguiente:

31
Material Importante referente a la filosofía de LabView

1. Se Inicializo un arreglo de tamaño 10 con valores en 0 en todos los


elementos del mismo.

2. El arreglo fue copiado al túnel e introducido al ciclo para su


modificación.

3. En cada una de las iteraciones del ciclo se sustituyó el valor de la


posición i del arreglo con un valor al azar entre 0 y 100 generado a
través de la multiplicación de 100 por un valor al azar entre 0 y 1.

4. El arreglo final es entonces utilizado para ser desplegado , obtener el


menor, el mayor y sus posiciones.

Como se muestra en la penúltima figura, la ejecución del programa no da los


resultados esperados ya que solo modifica el último valor del arreglo. Esto se
debe a que no se ha hecho la siguiente consideración:

Utilizar el bloque Replace Array Subset crea un nuevo arreglo con el


valor modificado en la posición dada por i, sin embargo dicho arreglo
no se utiliza en la siguiente iteración y por lo tanto se pierde. Para las
siguientes iteraciones del ciclo se vuelve a tomar el arreglo original y
se reemplaza el elemento de la posición i por un valor al azar entre 1 y
100 y se vuelve a perder excepto en el último ciclo, ya que este
arreglo de salida es utilizado para ser desplegado y para obtener el
mayor, el menor y sus posiciones.

Una solución a la problemática presentada es mostrada en la siguiente figura

32
Material Importante referente a la filosofía de LabView

La única diferencia en el diseño de los diagramas de bloques es la sustitución


de los nodos por shift registers, de esta manera el arreglo de salida en cada
iteración del ciclo es retroalimentado y se convierte en un arreglo de entrada
para el siguiente ciclo.

VARIABLES
La manera más simple de relacionar el concepto de variables en un lenguaje
de programación textual como C respecto a LabView es considerar a cada
control o indicador como una variable. A través de un Property Node en el
campo Value es posible acceder o modificar el valor de un control o indicador
como ya se había mencionado previamente.

Los valores que pasan a través del alambrado en un diagrama de bloques se


pierden una vez que fueron transferidos a otra parte del diagrama de bloques,
la única manera de retener su valor es utilizando un indicador ligado al
alambre en cuestión, con eso el dato que pasa a través del alambre se
almacena y puede ser utilizado en otras partes del programa. La manera de
crear un indicador ligado a un alambre en particular es haciendo un clic
derecho sobre el alambre en cuestión y seleccionando Create -> Indicator
como se había mencionado previamente.

El siguiente programa de LabView muestra la solución del mismo ejercicio


previo pero ahora se van mostrando visualmente como entran los valores al
azar al arreglo. En la solución, el indicador del arreglo es creado al inicializar el
arreglo y no a la salida del ciclo, además se crea un Property node del arreglo
de tal manera que el arreglo de salida del bloque Replace Array Subset sea
almacenado en el indicador y así se muestra visualmente como se va
modificando el arreglo.

33
Material Importante referente a la filosofía de LabView

Pudiera pensarse que si se hubiesen usado túneles normales en vez de shift


register´s también seria correcta la solución, esto debido a que la salida del
arreglo creado con el nuevo valor almacenado se vuelve a almacenar en el
arreglo llamado Array, sin embargo esto no es así, ya que el nodo que recibe el
arreglo en el lado izquierdo de la estructura for en realidad almacena una copia
del arreglo original(el arreglo de 10 elementos con valor de cero) y por lo tanto
se accede a esta copia en cada una de las iteraciones del ciclo. La siguiente
figura muestra el diagrama de bloques y el resultado (el cual es erróneo) para
el mismo ejemplo utilizando túneles normales.

34
Material Importante referente a la filosofía de LabView

Otra solución factible para el problema del ejemplo podría realizarse utilizando
Property Node´s en vez de shift registers, esta solución es mostrada en la
figura de abajo. Aquí se utilizan dos properties nodes, uno de lectura y otro de
escritura, nótese que en vez de alimentar el arreglo a través de un nodo se usa
el property node de lectura y con esto se asegura que la entrada al bloque
Replace Array Subset sean los valores del indicador del arreglo llamado Array y
no una copia del arreglo original inicializado en cero.

35

Vous aimerez peut-être aussi