Sie sind auf Seite 1von 84

EJEMPLOS CON LABVIEW

CONVERSIN DE TEMPERATURA
En este primer ejemplo el objetivo es crear un programa que permita al usuario introducir
algn valor de temperatura ya sea en Kelvin, Fahrenheit o Kelvin y obtener las respectivas
conversiones, para lograrlo hay diversas maneras. Se propone un programa sencillo con
comandos bsicos y posteriormente algunas mejoras utilizando diversos mtodos.
Para la versin ms sencilla del programa se emplea una entrada (num ctrl) y dos salidas
(num ind) para cada conversin, las cuales sern lo que el usuario podr ver. Para la
estructura del programa basta con utilizar diferentes funciones numricas.
Creacin del programa bsico
Paso 1: Crear la interface del usuario en panel frontal (Front Panel)

Figura 1

En el panel frontal se tendr entonces una entrada y dos salidas para cada unidad de
temperatura, para que sea fcil de interpretar por el usuario las etiquetas de las salidas de
cambian de Numeric a el nombre de las variables de temperatura a empelar.

Figura 2

Se puede ver en la figura 2 que podemos introducir diferentes unidades de temperatura y ver
sus equivalencias en las unidades respectivas.
Paso 2: Crear el programa para conversiones basndose en frmulas establecidas.
En este paso se emplean las funciones numricas de programming:

Figura 3
Para este caso se emplearan Add (suma), Substract (resta)y Multiply (multiplicacin),
adems el uso de Numeric Constant.
Considerando las siguientes frmulas:
C=K 273.15

C=

( F32 )5
9

F=

( C9)
+ 32
5

F=

( K9)
459.67
5

K= C+273.15

K=

( F+ 459.69)5
9

Las frmulas se pueden introducir de manera sencilla pero algo laboriosa desde el Block
Diagram, veremos el primer caso para convertir de Kelvin a F y C.

Figura 4
Como se puede observar, la frmula para convertir a Fahrenheit primero hace una
multiplicacin por el factor 1.8 que es el cociente de 9/5 y a ese resultado se le resta otra
constante (459.67). La secuencia es simple, la salida del numeric control Kelvin K entra al
multiplicador, a su vez la salida de la multiplicacin entra a la resta y finalmente llega al
numeric indicator F.
En el caso de la conversin a C la frmula dice que solo hay que restar 273.15, la entrada
de la resta es la salida de Kelvin K y una constante.
Las constantes como se ha visto pueden introducirse con numeric constant desde las
funciones numeric (figura 3). Sin embargo tambin pueden introducirse dando clic derecho a
la entrada y seleccionando del men emergente el comando create:

Figura 5

Cuando se acerca el cursor a la funcin suma se puede ver las dos entradas, al hacer clic
derecho en alguna de ellas aparecer un men emergente y en el comando crate veremos
tres opciones para introducir una constante, un control o un indicador, esto es til cuando se
trata de agilizar la creacin de programas.
El proceso de desarrollar las operaciones se realiza con las tres variables y sus
conversiones, en la figura 4 se muestra la estructura para el caso de grados Kelvin, aqu se
muestra la propuesta para la conversin Fahrenheit y Celsius:

Figura 6

Fcilmente se puede ver que la estructura es similar al primer caso siguiendo la secuencia de
entradas y salidas, adems, en la frmula de F se observa que podemos usar la misma
constante de 0.5555555556 (factor derivado de la frmula que se expresa como 5/9) en las
dos multiplicaciones tal y como las salidas de los numeric control.
Paso 3: Correr el programa y comprobar que las operaciones se realicen correctamente.
Una vez que se tiene el programa completo se puede correr el programa y comprobar que
haga las operaciones deseadas, para ejecutar el programa debemos ir al icono
correspondiente que se ubica debajo de la barra de mens en el panel frontal o el diagrama
de bloques:

El botn Run Continuously ejecuta el programa de manera continua para que se puedan ver
los cambios de manera inmediata. Para poder interactuar con el programa es necesario ir al
panel frontal:

Figura 7

Cuando se ejecuta el programa, el botn Run Continuously se torna color negro y el botn
Abort Execution se habilita ponindose de color rojo. En el programa podemos introducir
valores en los numeric control manualmente, Para comprobar que el programa hace falta una
referencia, por ejemplo el punto de congelacin de agua o el cero absoluto:
Unidad

K
C
F

Punto de
congelacin de
agua
273.15
0
32

Cero Absoluto

0
-273.15
-459.67

Como se puede observar en la figura 7, las equivalencias coinciden bien con el punto de
congelacin, ahora con el cero absoluto:

Figura 8

Hasta ahora se ha analizado lo bsico acerca de la estructura de un programa en Labview,


sin embargo podemos hacer cambios dependiendo ciertas funciones que faciliten la
elaboracin de un programa y hacerlo ms fcil de entender.
Mejoras Al Programa De Conversin De Temperatura
En primer lugar para facilitar al usuario la manera en como interacta con el programa y
reducir espacio, podemos utilizar un Tab Control, para acceder a l, en el panel frontal al
acceder a las opciones con clic derecho buscamos system, buscamos en ele men
emergente el apartado containers y buscamos el system tab control

Figura 9

Figura 10

En el Tab Control se puede navegar a travez de pestaas para facilitar el uso del programa y
no ocupar tanto espacio en la pantalla, para editar las caractersticas que vienen por default
podemos cambiar el nombre de las pginas (Page 1 y 2 por default) y agregar ms.
Para cambiar el nombre, al igual que con las etiquetas, al hacer doble click sobre la pestaa
podemos cambiar el nombre.

Figura 11.

Adems, es posible agregar ms pestaas seleccionado el tab control haciendo clic en el


borde, de esta manera aparecer una lnea punteada alrededor de la figura, cuando esta
seleccionado de esta manera, al hacer clic derecho tendremos un men con diferentes
opciones, entre ellas est la opcin de agregar una pgina antes o despus (add page
after/add page before), tambien se pueden ver opciones para quitar o duplicar pginas.
En la figura 12 podemos ver el men emergente con las diferentes opciones.

En la figura 13 vemos como debera quedar el men con 3 pestaas (tabs) para cada unidad
de temperatura.

Figura 12

Figura 13

Teniendo las tres pestaas, para arrastrar los num control y num indicator hacemos clic cerca
de uno o ms y dejamos presionado el botn izquierdo, arrastramos el mouse hasta abarcar
el rea y soltamos el botn izquierdo, una vez que se han seleccionado los elementos que se
quieren mover, al hacer clic y dejar presionado el botn, podemos arrastrar el mouse para
mover todo el conjunto hasta la posicin deseada, en este caso dentro del tab control.

4
Figura 14

La figura 14 muestra la secuencia para arrastrar los elementos dentro del Tab control, de esa
manera teniendo cada unidad dentro de una pestaa, sin embargo esto solo es un cambio en
el aspecto visual, la programacin an no ha cambiado, por lo que el siguiente paso en la
mejora es cambiar la forma en la que se hacen las operaciones.

Para una programacin ms sencilla se emplean diferentes funciones como las de la


categora express. Dentro de estas funciones se encuentran las aritmticas y a su vez la
funcin frmula (Figura 15), la cual nos permite introducir la formula tal y como se han visto

anteriormente aunque existen diferentes mtodos esta forma es sencilla pues no requiere
tantos elementos.

Figura 15

En la frmula tenemos una entrada y una salida, para hacer la conversin conectamos el
num control a la entrada de la formula y la entrada del num indicator a la salida de la frmula
(Figura 16).

Figura 16

Una vez que se tienen las formulas conectadas, se procede a escribir las frmulas haciendo
doble click (Figura 17) sobre el cono, dentro de las opciones podemos cambiar el nombre de
la variable de entrada que por default es X1 a alguno ms fcil de interpretar (Figura 17).

Figura 17

En el recuadro donde se escribe la frmula no es necesario escribir Result= por lo que solo
se escribe el procedimiento con la variable de entrada. Podemos dejar la variable como X1,
aunque en este caso se dej como K que es referente a Kelvin.

Figura 18

Para los casos de Fahrenheit y Kelvin es fcil copiar y pegar las frmulas desde algn editor
de texto o introducirla con el teclado. El programa resulta ms fcil de entender con esta
estructura y es fcil de editar en el futuro.
El programa final en el diagrama de bloques se muestra en la figura 18, mientras que la
versin final en el panel frontal luce como en la figura 14.
CONTROL DE TEMPERATURA
En el siguiente programa el objetivo es hacer un indicador de un sistema de aire
acondicionado que puede ir desde ventilacin hasta calefaccin dependiendo un rango de
temperaturas, al variar la temperatura se podr ver en la pantalla cual es el estado del
sistema: ventilacin, normal o calefaccin.
Para hacerlo, al igual que el ejemplo anterior primero se propone una versin con funciones
bsicas y despus se implementan mejoras con funciones ms especializadas y una mejor
interface.
Propuesta con comandos bsicos
Paso 1: Crear la interface de usuario
Para este primer paso se necesita un control numrico, pero en este caso un control que sea
ms intuitivo por ejemplo una perilla, en este caso se emplea un Dial. Tambin se necesitan
indicadores; uno para ver la variacin de la temperatura y otro para denotar la funcin del
sistema, para esto se pueden emplear leds.

Figura 1

En la figura 1 se tienen los elementos necesarios para que el usuario pueda cambiar la
temperatura y ver los cambios, sin embargo an hay que cambiar los parmetros del Dial y el
Thermometer.
Lo primero es ir a las propiedades de cada componente y establecer los nuevos parmetros.
Para esto se consideran las temperaturas de trabajo mximo y mnimo, para este ejemplo se

propone desde 0 C hasta 40 C, con tres intervalos: de 0 a 15 C la calefaccin, de 15 a 25


C normal y de 25 C en adelante ventilacin.
Para acceder a las propiedades de un elemento se da clic en el borde de un elemento y
cuando se ha seleccionado se da click derecho, en el men emergente, en la parte inferior se
encuentra la opcin properties.
En las propiedades encontramos distintas pestaas, para cambiar la escala: click en la
pestaa Scale, en la cual se encuentran los limites inferior y superior, en este caso se
cambiar el lmite superior (Scale Range: Maximum).
En este caso, el Knob/Dial y el Thermoemeter pueden tener un valor Maximum de 40
(Figura 2).

Figura 2

Una vez que se han cambiado las etiquetas y los valores de escala se acomodan los
elementos y se ajustan los tamaos para que sea fcil de manipular y entender (Figura 3)
El tamao se modifica arrastrando el mouse mientras se hace click sobre alguno de los
puntos (nodos) que se habilitan cuando se acerca el cursor a algn elemento, el tamao
puede ajustarse para mejorar la forma como se trabaja con el programa pues permite ver
mejor los valores de las variables y la relacin del indicador numrico y el control numrico.

Figura 3

Teniendo preparada la interface grfica, ahora se procede a programar, el mtodo ms


bsico es utilizando comparadores y operaciones con bolanos. Para esto se emplean
lasfunciones de las categoras Comparison (Figura 4) y Boolean que se encuentran dentro
de programming.

Figura 4

En el caso de Boolean slo se empleara la funcin and.


Paso 2: Elaboracin de la estructura del programa
Lo primero por hacer es marcar los rangos, en primer se tiene el rango de 0 a 15 C para lo
cual se utilizan los comparadores mayor que y menor que, en este primer rango es:
cuando la variable es mayor que 0 y menor que 15 entonces se trata de la calefaccin.
El comparador mayor que har una comparacin de a variable con una constante 0, el
comparador menor que har la comparacin con una constante de valor 15. Para relacionar
estas dos comparaciones y saber que la variable esta entre este rango se emplea una
funcin booleana and para cumplir con la sentencia: si es mayor a 0 y menor a 15, si se
cumplen las dos condiciones, entonces se tendr una seal true o verdadera, de lo
contrario habr una seal false.
Dado que los leds dependen de seales booleanas, entonces cuando la condicin se
cumpla, entonces el led permanecer encendido hasta que esta condicin ya no sea
verdadera.

Figura 5

En la figura 5 se puede observar que desde el control que es la variable, pasa a los
comparadores, en los cuales se interpreta como X>=Y? (es x mayor o igual a y), siendo x
la variable que entra por la parte superior del comparador y y la variable o constante que
entra por la parte inferior.
De esta forma se han marcado los lmites, tambin se aprecia la condicin de and y su
salida conectada al led que indica que en ese momento el sistema funciona como
calefaccin.
De la figura anterior se puede ver que el termmetro est conectado al control, de esta
manera se podr ver un cambio en la temperatura de manera grfica para dar una mejor
presentacin.

Figura 6

Haciendo las comparaciones correspondientes se tiene finalmente el programa como en la


figura 6.
Paso 3: Ejecucin del programa
Para comprobar que el programa hace lo que se desea se comprueba que los leds
enciendan de acuerdo al cambio de la temperatura, la cual a su vez cambia de acuerdo al
control manual.
El programa deber lucir como en la figura 7.
En donde al mover la perilla el termmetro cambiara de forma paralela al control, a su vez los
leds encendern y apagaran de acuerdo al valor. Se pueden apreciar los tres casos (A, B y
C) con los distintos cambios del programa.

C
Figura 7

Hasta ahora se ha hecho el programa con comparaciones bsicas, pero al igual que con el
conversor de temperatura se puede hacer con una funcin de comparacin que se encuentra
dentro de la categora comparison (Figura 8)

Figura 8

Una vez en el diagrama de bloques, la funcin comparacin debe quedar conectada como en
la figura 9, con la salida del control a la entrada (Operand 1) del comparador, y la salida
(Result) a la entrada del led (en la figura 9 calefaccin).

Figura 9

Para establecer los rangos se hace doble click sobre el cono del comparador para acceder
al men de configuracin. (Figura 10) e n donde se encuentra la opcin In Range en donde
se establece el valor mximo y mnimo (Maximum y Minimum). Para el primer caso el rango
es 0 y 15.

Figura 10

Al insertar todas las comparaciones el programa queda como en la figura 11, siendo ms fcil
de modificar y entender. El programa sigue funcionando de la misma manera.

Figura 11

Podra haber mtodos con programacin para este ejemplo, pero en este caso el ejemplo se
limita a estas funciones bsicas, ms adelante se analizan mtodos de programacin que
pueden servir para idear un mtodo para este ejemplo.
CALCULADORA
El ejemplo de la calculadora tiene como objetivo crear diversas formas en como introducir
datos y trabajar con ellos en una estructura case, adems de emplear funciones
previamente analizadas. La estructura puede hacer diversas acciones dependiendo
condiciones de entrada, por lo que en el programa que a continuacin se analizar podrn
introducirse valores por medio de control numrico o string.

Una calculadora sencilla es como en la figura 1, con un tab control para seleccionar el tipo de
operacin, los indicadores y controladores numricos quedan dentro de cada pestaa y en el
diagrama de bloques se distribuyen las diferentes operaciones de forma que sea entendible.

Figura 1

Pero en el ejemplo ms bsico hay alguno problemas, por ejemplo, se utilizan demasiados
controles e indicadores numricos, adems, si se piensa en agregar ms opciones, entonces
habr que agregar ms elementos y el diagrama de bloques estar lleno de operaciones
dispersas. Si pensamos en usar un par de controles numricos y entrelazar de tal forma que
siempre se hagan las operaciones, entonces sera muy difcil entenderlo. La navegacin no
es un problema con pocas opciones, pero podra ser incmodo navegar por muchas
pestaas.
Para mejorar, la estructura case es buena para empezar, reduciendo los controles e
indicadores y facilitando la navegacin.
Paso 1: Crear una estructura case y ajustar parmetros para tener cuatro operaciones
bsicas.
En este paso lo primero es insertar una estructura case desde la categora structures
(Figura 2).
Una vez que se tiene la estructura hay que ajustar ciertos parmetros como los casos a
considerar, por default estn dos casos: true y false, los cuales se pueden controlar con un
botn para navegar entre los dos estados. Para este ejemplo se requieren cuatros casos;

suma, resta, multiplicacin y divisin. Antes de comenzar con la interface se analizan los
casos y como se distribuyen las variables.
Para agregar ms casos, se da click derecho sobre alguno de los bordes y se selecciona la
opcin Add Case After o Add Case Before (Figura 2), esto se hace tres veces para tener
los cuatro casos necesarios y uno para valores no especificados (Default).

Figura 2

Cada case significa una operacin la cual se activa dependiendo la condicin que se ponga
en la parte superior de la estructura, esto tambin depende de entrada de la estructura, es
decir, si se tiene en la entrada una cadena (string) entonces la comparacin ser: si la
cadena del caso es igual a la de entrada, entonces se ejecuta dicho caso.
Para el primer ejemplo se emplearan nmeros, del uno al cuatro, siendo como en el primer
ejemplo: 1=suma, 2=resta, 3=multiplicacin y 4=divisin, quedando como en la figura 3.

Figura 3

Una vez que se tienen los casos de las operaciones con un nmero asignado se debe
agregar un caso con valor 0 con la palabra Default como en la figura 4.

Figura 4

Considerando lo anterior, se procede a introducir las operaciones y las variables, quedando


como en la figura 5. En donde desde el panel frontal se insertan dos controles numricos y
un indicador numrico. Como se puede ver hay una operacin dentro de cada caso (Figura
6). En el caso 0 el recuadro queda vaco.

Figura 5

Figura 6
Paso 2: Hacer las conexiones y ajustes necesarios
Despus de tener las operaciones asignadas a cada caso podemos conectar las entradas y
la salida, esto se hace en cada caso (Figura 10).
Se debe tener cuidado de verificar los nodos en donde estn las entradas y la salida (color
rojo), porque esos nodos son los mismos en cada caso (Figura 8), una buena forma de
hacerlo es conectar desde el indicador (Resultado) hasta la estructura, una vez que se tiene
el nodo se pueden hacer las otras conexiones a partir de este (Figura 9).

Figura 7

Figura 8

Una vez hechas las conexiones, se debe configurar que al no estar conectado el nodo,
entonces use el Default, esto es porque en el caso 0 para valores no especificados no hay
conexin, por lo que el programa no har ninguna operacin en caso de ser mayor que

cuatro o 0 en la entrada. Para hacer esto, click derecho en el nodo de salida y habilitar la
opcin use default if unwired (Figura 9)

Figura 9

Figura 10

Desde el panel frontal podemos agregar un control numrico (Operacin), en esta primera
versin y con lo visto en la figura 3, se podr elegir la operacin ingresando el nmero
correspondiente.
El control numrico se conecta a la entrada del case como en la figura 10.
Paso 3: Ejecucin del programa
En este paso se comprueba que el programa haga las operaciones, como referencia en este
caso se emplea el 25 y el 5 porque es fcil ver sus valores: suma=30, resta=20,
multiplicacin=125 y divisin=5. Se puede ver en la figura 11 cada caso: A) Suma, B) Resta,
C) Multiplicacin y D) Divisin.

D
Figura 11

Hasta ahora la entrada de nmeros para seleccionar la operacin resulta confusa si no se


tiene conocimiento previo de cmo est organizado el programa, si se quisiera hacer algo
ms intuitivo y cmodo para el usuario sera necesario agregar un men con las diferentes
opciones correspondientes a cada operacin.
Diferentes Formas De Trabajar Con La Estructura Case En La Calculadora
Para lograr un mejor uso de la estructura case en este tipo de aplicaciones se puede usar un
menu ring con el cual se puede crear un men con diferentes valores numricos pero con la
ventaja de que se puede asignar un nombre a cada valor, es decir, el usuario solo vera las
opciones: suma, resta, multiplicacin y divisin y podr seleccionar cualquiera, pero las
condiciones del case seguirn siendo numricas.
Para introducir un menu ring se accede desde las opciones del panel frontal, en la categora
Modern esta una subcategora llamada Ring & Enum (Figura 12), igual que otros
elementos basta con hacer click sobre la opcin deseada para visualizarla en el panel frontal.
El men por default no tendr ninguna opcin y habr que asignarle valores y etiquetas para
poder navegar por la calculadora.

Figura 12

En las propiedades del menu ring encontraremos diferentes pestaas, en primer lugar, para
hacer que la calculadora se actualice en cuanto cambiemos de opcin navegamos a la
pestaa Display Format en esta pestaa habilitamos la opcin Automatic Fromatting
Figura 13.

Figura 13

Para editar las diferentes opciones que desplegar el men, en la pestaa Edit Items, en la
cual podremos agregar los necesarios haciendo click en botn Insert, cada vez que se
inserta un nuevo tem se podr agregar un nombre, para este caso el cero se queda vaco
para que el programa no haga nada cuando haya un valor cero, para los siguientes nmero
considerando el orden de los casos se pone el nombre correspondiente a cada operacin
(Figura 14).

Figura 14

En caso de cometer algn error se puede navegar con los botones Move Up, Move Down
o eliminar el tem con el botn Delete. Lo importante es dejar el nmero correspondiente a
cada operacin.
En el diagrama de bloques se puede conectar el Ring a la entrada de la estructura como
muestra la figura 15.

Figura 15

Al ejecutar el programa el men despliega las opciones para las operaciones, esto es ms
fcil de entender y es prctico (Figura 16)

Figura 16

Al hacer click en la operacin deseada el resultado cambiar automticamente.


Para demostrar que es posible usar cadenas, es decir, las palabras que corresponden a cada
operacin, se harn unos cambios que permiten analizar el alcance de la estructura.
En primer lugar, la entrada ser un Text Control, y los casos tendrn como condiciones
cadenas de caracteres.
Lo primer que hay que hacer es introducir un Text Control (String) como en la figura 17.

Figura 17

En el diagrama de bloques, habr que cambiar las condiciones y dejarlas como se propone
en la figura 18. Adems, es recomendable primero conectar el Text Control (en este caso
llamado Operacin) a la entrada de la estructura para que al digitar la condicin, esta
automticamente se interprete como una cadena, es decir, la palabra que es la condicin
quede entre comillas: SUMA, otra recomendacin para este ejemplo es utilizar maysculas
para evitar uso de acentos y otras posibles causas de fallo.

Figura 18

Finalmente una consideracin es ir a las propiedades del Text Control y en la pestaa


Appearance habilitar la opcin Update Value While Typing (Figura 19) para evitar que dar
click fuera del recuadro despus de digitar la operacin.

Figura 19

Otra consideracin es ampliar el tamao del Text Control en el panel frontal para poder ver la
palabra ms grande, en este caso MULTIPLICACION

Como se puede ver en la figura 20, despus de digitar la palabra correspondiente,


automticamente se ejecutar la operacin.

Figura 20

Al final de este ejemplo de calculadora concluimos que la estructura case es til para
manejar mens y es posible emplear esta estructura en aplicaciones que se abordarn ms
adelante.

LLENADO DE TANQUES
El objetivo del siguiente ejemplo es utilizar la estructura while y los conocimientos previos de
comparadores y elementos bsicos para indicar el llenado de un tanque como el caso del
indicador de temperatura.
La aplicacin de un programa como el de este ejemplo nos permite ver las posibilidades en la
industria, en este caso se puede tratar de alguna alarma pero puede extenderse a un control
o anlisis ms complejo.
Para comenzar con este ejemplo se analizar la estructura while la cual como se ha visto
permite ejecutar una operacin mientras la condicin para que se detenga sea falsa. En
primera instancia se considera un tanque que se llenar hasta que la condicin sea
verdadera, es decir, aumentar su nivel hasta que la condicin se cumpla.
Paso 1: Crear estructura while y plantear las condiciones iniciales.
Para comenzar, en el diagrama de bloques se inserta una estructura while, la cual se
encuentra en la categora estructures de la paleta de funciones (Figura 1). En esta estructura
necesitamos una condicin que se cumpla para que el programa termine, en este caso se
fijar un valor final con el cual se har una comparacin entre la iteracin y dicha constante.
Para que sea fcil ver el cambio se propone un valor de 100 como constante. Para hacer la
comparacin se utiliza la funcin Equal? de la categora Comparison, en la comparacin
se crea una constante en la parte superior (letra x) y en la inferior (letra y) se conecta la
iteracin (Figura 2)

Figura 1

Figura 2

Con lo anterior el programa se ejecutar comenzando con i=0 hasta i=100, pues al ser
verdadera la comparacin, se mandar una seal verdadera al botn de paro.
Sin embargo este programa es muy rpido y no hay forma de ver el cambio, para evitar que
el programa sea tan veloz se utiliza un timer para retrasar el ciclo de ejecucin,
considerando que 1000 unidades es 1 segundo en este timer (milisegundos) es posible usar
un valor de menos de 1000 para poder ver el cambio y al mismo tiempo agilizar el programa.
En el ejemplo se utilizar un valor de 200 ms.
El Timer se encuentra en las funciones de programming en la categora Timing, el timer a
utilizar es el Wait (Figura 3)

Figura 3

Al timer se le puede crear una constante con el valor propuesto de 200 (Figura 4)

Figura 4

Teniendo la estructura y los ajustes es posible introducir los indicadores visuales; el tanque y
sus indicadores de nivel.
Paso 2: Crear la interface de usuario
En el panel frontal, en los indicadores numricos est el cono Tank como se muestra en la
figura 5.

Figura 5

Para el primer indicador, basta con un tanque y tres leds que indicarn si el nivel es alto,
medio o bajo, en las propiedades del tanque se cambia la escala desde 0 a 100 para que sea
igual a la constante previamente establecida para el ciclo while (Figura 6).
En el diagrama de bloques, el tanque se conecta a la iteracin para que su nivel cambie de
forma proporcional (Figura 7), para el caso de los leds se harn comparaciones como en el
ejemplo del indicador de temperatura con tres diferentes rangos.

Figura 6

Figura 7

Los rangos a considerar sern: 0 a 20 nivel bajo, de 20 a 80 medio y de 80 a 100 nivel alto,
en esta primer versin las comparaciones se harn con comparadores mayor que y menor
que con un operador and. La finalidad de esta primera versin es ver la dinmica de la
estructura y el comportamiento del programa en general.
La comparacin quedar como en la figura 8 siguiendo la metodologa vista en el ejemplo
anterior.

Figura 8

En esta versin solo hay un tanque y una comparacin, adems el tiempo del timer es
preestablecido.
Cabe destacar que todos los elementos del programa deben estar dentro de la estructura
while.
Paso 3: Ejecutar el programa
En el panel frontal al ejecutar el programa se puede ver un aumento automtico de nivel
hasta llegar al mximo nivel, al hacerlo el programa se reiniciar (figura 9)

Figura 9

Se pueden hacer modificaciones en el programa para tener dos tanques y utilizar las
iteraciones con un comparador para invertir el flujo.

Modificaciones Para Llenado Y Vaciado De Dos Tanques


En esta segunda versin se emplear el comparador Comparison para evitar que el
programa sea confuso, adems se utilizarn algunas comparaciones para los tanques.
Como primer paso para la mejora se coloca otro tanque y tres leds indicadores, esto se
puede hacer fcilmente seleccionado el tanque y sus indicadores, presionar Ctrl+C y
despus Ctrl+V, al hacerlo se puede arrastrar la copia y acomodarlo en el espacio de trabajo
como muestra la figura 10.

Figura 10

Teniendo ambos tanques, en el diagrama de bloques habr que conectar la copia del tanque
a la iteracin de tal manera que mientras un tanque baja de nivel el otro aumente.
La operacin para el segundo tanque se har con una funcin Substract, esta resta
comenzar con la misma constante 100 (en la terminal x) y restar una cantidad
dependiendo la iteracin (Figura 11), es decir, si la iteracin es 1, la salida es 100-1, si la
iteracin es 2, la salida es 100-2 y as consecutivamente hasta llegar a un resultado igual a
cero.

Figura 11

En total el programa tendr seis comparadores, y se har un cambio poniendo un botn stop
en el loop condition, de tal forma que al terminar la condicin de llenado el programa siga
indefinidamente permitiendo ver el ltimo estado de ambos tanque hasta que se presione el
botn Stop. El programa debe lucir como la figura 12.

Figura 12

Como se haba planteado, en la figura se puede ver el botn Stop, los 6 comparadores y los
dos tanques. Adems en lugar de valor constante, el timer est gobernado por un control
para cambiar el tiempo durante la ejecucin del programa. Para cada comparacin se ponen
los rangos anteriormente definido como se haba analizado anteriormente; doble click en el
cono del comparador, habilitando la opcin In Range (Figura 13). Algo importante es notar
como la salida de la Resta debe ser la entrada de tanto del Tank 2 como de los
comparadores correspondientes al mismo tanque.

Figura 13

En la ejecucin del programa se puede ver el comportamiento de los tanques, en la figura 14


se muestra el programa cuando comienza, cuando ambos tanques estn a la mitad y cuando
estn completamente invertidos.

A
B

Figura 14

Como se ve en las imgenes anteriores, el tiempo ahora se puede modificar y con ello
cambiar la velocidad, tambin est el botn stop para detener o reiniciar el programa.
Del programa podemos ver que la estructura While es til para hacer ms dinmico un
programa y dar ciertas condiciones, ciertamente es una estructura bsica que se podra
emplear en diversas situaciones para control de procesos o aplicaciones en sistemas
elctricos.

SECUANCIA DE LEDS
El objetivo del ejemplo a continuacin es trabajar con secuencias usando estructuras como
While, Flat Sequence y Stacked Sequence, de tal forma que se pueda controlar el
sentido de la secuencia y la velocidad. Adems se emplearan variables locales para facilitar
la conexin de las terminales en el programa.
Como primer ejemplo se realizar una secuencia con una estructura While y se controlar el
sentido con una estructura Case.
Para una secuencia bsica, basada en comparaciones y el uso de las iteraciones del while
es necesario usar comparadores Equal to?. En lo diferentes ejemplos se utilizarn cuatro
leds que se podrn visualizar en el panel frontal, el control del sentido de la secuencia se
controlar con un botn.
Paso 1: Crear estructura While y estructura Case, y ajustar parmetros de control.
Como primer paso en el diagrama de bloques se crea una estructura While, dentro se coloca
un comparador Equal to? y la iteracin del While se conecta a la terminal y del
comparador (Figura 1). La salida se conecta al botn de condicin de la estructura While

Figura 1

En la terminal x al hacer click derecho, en el men emergente dentro de la opcin Create


se puede crear una constante (Constant), en la cual se asignar un valor de cuatro
equivalente a los cuatro leds que se utilizarn (Figura 2).
Como en ejemplos anteriores del While es importante poner un timer Wait con un control
numrico. Una vez que se tiene el lmite de iteraciones bien definido es hora de crear el
control, para esto basta con una estructura Case con los valores predeterminados True y
False con los que se cambiar el sentido. Teniendo la estructura el programa ahora lucir
como en la figura 2.

Figura 2

Con esto preparado, en el panel frontal es posible agregar los cuatro leds y un botn, los leds
se distribuyen de tal forma que la secuencia se pueda controlar en sentido izquierdo o
derecho, el panel frontal debe quedar como la figura 3.

Figura 3

El botn utilizado es un Slide Switch de la categora Buttons en la paleta de herramientas.


Paso 2: Realizar secuencia de Leds con las comparaciones necesarias
En el diagrama de bloques se necesitan hacer algunas comparaciones entre la iteracin y
alguna constante equivalente al led que se quiere encender, esto es lo mismo a comparar la
iteracin i=1 con una constante 1, de tal forma que esta comparacin sea verdadera en esa
primera iteracin, cuando i=2 entonces la comparacin es falsa. Con base a esto se pueden

hacer otras tres comparaciones con las constantes 2,3 y 4 para cada led, adems el lmite
previamente establecido es el nmero cuatro.
Cuando la iteracin llegue a cuatro el programa se reiniciar y ser algo dinmico.
Las comparaciones se hacen con Equal to? y las terminales y se conectan a la iteracin
como se muestra en la figura 4, adems estas comparaciones se tendrn que hacer dentro
de la estructura Case. En este paso, dentro de la condicin True se har que los leds
enciendan en orden 1,2, 3 y 4, que es lo mismo a izquierda a derecha.

Figura 4

An no se han conectado la entrada de la estructura Case ni los leds, antes de hacerlo se


insertan las constantes a cada comparador, para que sea fcil de entender se opta por iniciar
desde arriba hacia abajo, una vez que se conectan las constantes, las salidas se conectan a
las entradas de los leds en el orden adecuado como se ve en la figura 5.

Figura 5

Como se puede ver en la imagen, la entrada y los leds estn conectados, estos elementos
son los que se pueden visualizar en el panel frontal, como se vio en el ejemplo de la
calculadora, ahora hay que ir a los nodos de conexin con las salidas y acceder al men
emergente haciendo click con el botn derecho sobre el nodo (Figura 6).

Figura 6

En cada nodo se habilita la opcin Use default If Unwired, los nodos cambiarn de color
como se ve en la figura 7.

Figura 7
En el caso con la condicin False se repite el mismo procedimiento, pero ahora se considera
que el orden de los leds se invierte, para lograrlo lo ms fcil es cambiar el orden de las
constantes de arriba hacia abajo a: 4,3,2 y 1, las conexiones quedarn igual, por lo que solo
depender del orden de las constantes. Las condiciones del caso False quedarn como la
figura 8.
Se recomienda hacer las conexiones de este caso comenzando desde los nodos
correspondientes a las salidas que se quedan marcados debido al caso anterior.
Los dos casos se pueden ver mejor en la figura 9.

Figura 8

Figura 9

Paso 3: Ejecucin del programa


Al simular el programa hay que considerar lo siguiente: el botn Slide se mueve a la
izquierda o derecha, cuando se desliza a la izquierda el valor que da es False, y a la derecha
es True, por lo que cuando el botn este a la izquierda la secuencia que se ejecutar es la
secuencia de leds del caso False que es de derecha a izquierda. En el caso de deslizar el
botn a la derecha, la secuencia del caso True ejecutar la secuencia de izquierda a
derecha.
En la figura 10 se puede ver la secuencia con el botn en la posicin izquierda

Figura 10
En la figura 11 la secuencia que se muestra es con el botn en la posicin derecha, se
puede ver que la secuencia lleva diferente sentido.

4
Figura 11

Esta secuencia presenta algunos problemas como las forma en la que se conecta con la
estructura Case y el hecho de que demasiadas comparaciones dentro de la estructura
podran hacer difcil de editar el programa en caso de agregar ms elementos.
Uso De Variables Locales
Las variables locales permiten que se utilicen varias veces la misma variable como es el caso
de algn control numrico pero evitando tener que hacer una conexin tan compleja que
podra confundir con tantos cables en el programa.
Las variables locales se encuentran en la categora Structures como se muestra en la figura
12.
Las variables locales se pueden habilitar para lectura o escritura, en este ejemplo el
programa utilizar las dos formas.

Figura 12

La variable local puede cambiar si es para leer el valor de otra variable o escritura para
funcionar como salida, esto se puede ver mejor en el ejemplo que se presentar a
continuacin basndose en la secuencia de leds con la estructura While.
Al hacer click derecho en la variable local podemos ver el men que contiene ciertos
parmetros que se pueden cambiar, en este caso lo importante es cambiar Change to Read
o Change to Write (Figura 13)

Figura 13

En este caso la variable debe estar en Write, esto se puede saber si tiene entrada o salida,
cuando la variable est en modo Read tendr una salida pues es para lectura, si la variable

tiene una entrada entonces se trata de modo Write, lo que significa que la variable podr
modificar a la variable original.

Figura 14

Como se puede ver en la figura anterior, a la derecha una variable local Write y a la
izquierda una en modo Read.
Para la secuencia de leds ahora se eliminarn las conexiones entre los comparadores y las
salidas en ambos casos (True y False), tambin se deben eliminar los nodos en caso de que
queden en la estructura.
Lo que sigue es insertar un total de cuatro variables locales en modo Write como se ve en la
siguiente figura.

Figura 15

Teniendo las cuatro variables se puede asignar la variable a la que se est afectando,
haciendo click en el smbolo de forma de casa en la variable se desplegar un men
indicando cuales son los elementos con los que podemos interactuar. En este caso se
seleccionarn los leds 1, 2, 3 y 3 (Figura 16).

Figura 16

Es importante no copiar y pegar las variables despus de que se les ha asignado un valor
para evitar copiar las variables originales. Si se quiere copiar y pegar se recomienda cuando
la variable an no tiene variable asignada, esto se puede ver cuando tiene un signo de
interrogacin.
Ahora se conecta la salida del comparador con cada variable local (Figura 17), lo que se
hace con esto es hacer que los cambios que se hagan en la variable local, en este caso True
o False, afectaran a la variable original que en este caso son los leds, lo que permite ver que
no hace falta usar cables que pasen a travs de la estructura.

Figura 17

Al ejecutar el programa se podr ver que no hay cambios en la funcionalidad, pero se evita
usar demasiados cables y conexiones.
Para usar la variable local en modo Read se puede hacer un arreglo con la iteracin
conectandole un Numeric Indicator como se muestra en la figura 18.

Figura 18

Lo siguiente es quitar las conexiones de la iteracin en ambas condiciones de la estructura


Case y dejar nicamente el Numeric Control y la comparacin con la constante de valor
cuatro a la iteracin.
Una vez que se quitan todas las conexiones de la iteracin con las comparaciones usadas
para los leds, se inserta una variable local en modo Read (con una salida) como muestra la
figura 19.

Figura 19

A la variable local se le asignar el valor del Numeric Control, en el ejemplo se llamar


iteracin, la salida se conectar a todos los comparadores, esto se hace en ambas
condiciones de la estructura Case (Figura 20).

Figura 20

Cuando el programa est en ejecucin, ahora tambin se puede ver el valor de la iteracin
(Figura 21). El funcionamiento del programa es el mismo, pero ahora es ms compacto y
puede quedar como en la figura 22.

Figura 21

Figura 22

Con lo visto hasta ahora es posible crear secuencias usando un While dependiendo de las
iteraciones, tambin podemos ver que en este caso es conveniente usar comparadores
simples pues no hay rangos, solo se trata de valores binarios.
Secuencia De Leds Con Flat Sequence
Para esta nueva forma de hacer secuencia tendremos que insertar una estructura Flat
Sequence desde la categora Structures (Figura 23).
Esta estructura es til para secuencias con pocos tems pues puede extenderse mucho, pero
es sencillo seguir el flujo de datos pues se basa en fotogramas. En cada fotograma se puede
realizar alguna operacin y cada fotograma se ejecutar hasta que el anterior termine por
completo, en este caso la operacin del primer fotograma ser encender el primer led,
cuando el primero se encienda el programa pasar al segundo fotograma.

Figura 23

Por default la secuencia incluye solo un fotograma (Figura 24), para agregar ms fotogramas
hay que hacer click derecho en un borde de la estructura, en el men emergente podremos
ver las opciones para editar la estructura, en las opciones se encuentra Add Frame After y
Add Frame Before (Figura 25).

Figura 24

Figura 25

Se agregarn tres fotogramas ms para tender un total de cuatro (Figura 26), esto es para
encender un led en cada fotograma. Sin embargo para tener un control del sentido que
siguen los leds es necesario una estructura Case, como en el primer ejemplo de la secuencia
basta con los dos estados True/False de la estructura, en cada caso se debe introducir una
secuencia Flat (Figura 27)

Figura 26

Como se puede ver en la figura 26 al seleccionar algn fotograma de forma individual se


habilitan nodos de color azul que permiten cambiar el tamao de los fotogramas.
En un principio parece confuso editar el tamao pero hay que recordar que los nodos del
fotograma a editar deben estar habilitados.

Figura 27

Teniendo la estructura Case con dos Flat Sequence en cada caso, procedemos a insertar los
leds en el panel frontal, tambin algn botn para controlar el sentido de los leds (Figura 28).

Figura 28

En el diagrama de bloques los leds no necesitan estar dentro de las estrcuturas, pues como
se ha visto es posible utilizar variables locales. El programa en el diagrama de bloques hasta
ahora luce como la figura 29

Figura 29

Considerando que cada fotograma debe tener alguna operacin que completar para pasar al
siguiente fotograma, significa que si se pone algn valor constante para encender el led, este

permanecer encendido y por lo tanto no habr ningn cambio notable y simplemente


encendern todos los leds sin apagar el led anterior.
Para lograr la secuencia como en el ejemplo anterior se harn algunos arreglos con las
variables locales.
En el primer fotograma se insertan cuatro variables locales para los cuatro leds y un operador
booleano para negacin Not (Figura 30).
En este primer fotograma hay que pensar en la secuencia automtica, en este fotograma se
realiza una operacin sin considerar condiciones. Debido a esto se utilizar una constante
booleana False para apagar todos los leds, y con el operador Not hacer que en el primer
fotograma el primer led permanezca encendido.

Figura 30

Las variables locales estarn en modo Write para afectar a los leds (Figura 31)

Figura 31

Considerando que la secuencia se repite, entonces al iniciar se deben apagar los leds
anteriores, es decir, los leds 2, 3 y 4, y mantener encendido el primer led, la conexin queda
entonces como la figura 32.

Figura 32

A partir de ahora la secuencia tiene la primera operacin, en el segundo fotograma hay que
apagar el primer led y encender el segundo por lo que se utilizan dos variables locales para
estos dos leds y una constante False para apagar el primer led, tambin se utilizar un
operador Not como en el primer fotograma para encender el primer led quedando el
programa como la figura 33.

Figura 34

Para los fotogramas siguientes se sigue la misma lgica: en el tercer fotograma se apaga el
segundo led y se enciende el tercero, en el ltimo fotograma se enciende el cuarto y se
apaga el tercero, esto har que la secuencia sea cclica. El programa ahora lucir como en la
figura 35.

Figura 32

Para el caso de la secuencia invertida, habr que repetir la misma metodologa en el otro
Case, la diferencia ser que ahora cambiar el orden de las variables. Para una rpida
comprensin se presenta el programa para el otro Case en la figura 33.

Figura 33

Lo ltimo que hay que considerar es el tiempo, si se ejecuta el programa as la respuesta


ser muy rpida, por lo que en cada uno de los fotogramas se agrega un Timer (Wait) con
algn valor para ver los cambios, en este ejemplo se usaran un valor de 300 ms, el programa
finalmente quedar como la figura 34.

Figura 34

Al ejecutar el programa veremos la secuencia como en el caso del uso de la estructura while.

Figura 35

Esta versin de la secuencia de leds resulta til en algunos casos pero presenta desventajas
por el espacio que ocupa y puede confundir con la lgica que tiene, sus aplicaciones podran
ser ms tiles en otro tipo de procesos.
Secuencia De Leds Con Stacked Sequence
A diferencia de la Flat Sequence, ahora los fotogramas son similares a una estructura Case,
en donde por medio de un men en la parte superior se puede navegar a travs de los
diferentes fotogramas.
Para insertar una Stacked Sequence se puede acceder desde la categora structures (Figura
36)

Figura 36

En un principio la Stacked Sequence parece exactamente lo mismo que Flat Sequence, se


agregan ms fotogramas de la misma manera pero al hacerlo aparece un men en la parte
superior con los diferentes fotogramas como en la figura 37.

Figura 37

Se han agregado un total de cuatro fotogramas que van desde cero a tres, como se ve en la
figura 37 se puede navegar por cada uno de estos fotogramas.
La lgica es la misma que en el caso de Flat Sequence, hasta terminar la operacin del
primer fotograma, entonces se ejecuta la operacin del segundo fotograma, esto es
consecutivo y la nica condicin es que termine la operacin anterior.
Por esta razn el programa no cambia, de nuevo se usaran cuatros leds, un botn y el
Stacked estar dentro de una estructura Case como se muestra en la figura 38.

Figura 38

La programacin quedar exactamente igual que con Flat Sequence, de nuevo se necesitan
dos Stacked Sequence para cada Case (True y False).
El programa quedar entonces como en la figura 39.

Figura 39
Se puede ver que la diferencia es como se navega por los fotogramas.

PROMEDIO
El objetivo de este ejemplo es utilizar la estructura For y los arreglos Array, adems
comenzar a utilizar la estructura Formula Node.
En el promedio se puede hacer de forma sencilla sumando dos nmeros y a ese resultado
sumndole otro valor hasta sumar todos los elementos, esto puede ser muy imprctico por lo
que es un buen ejemplo de cmo hacer un programa con mltiples entradas que hace
operaciones utilizando estos elementos.

Para el primer programa de promedio se hace uso de un ciclo For y un arreglo que permite
ingresar valores en un arreglo similar a una matriz. El promedio se realizar con cinco
elementos.
Paso 1: Creacin de ciclo For y ajustes bsicos.
La estructura For Loop es parte de las estructuras, al igual que un While realiza una
operacin hasta que se cumpla una condicin, en este caso hasta que la iteracin sea igual a
un valor N. La estructura For luce como en la figura 1.

Figura 1

Para comenzar, en el panel frontal se inserta un Numeric Control con el que se podr
cambiar el valor de N, de esta manera se controla el nmero de iteraciones del programa,
para el clculo de promedio este valor controlar el nmero de elementos a considerar.
Otra cosa que hay que agregar en el panel frontal es un arreglo Array que se encuentra en
las herramientas Modern en la subcategora Array, Matrix & Cluster (Figura 2).

Figura 2
El array es un elemento que puede contener varios Controles Numricos y puede hacerlo de
tal forma que en el diagrama de bloques solo aparece el smbolo del Array pero en el panel
frontal se le pueden agregar una gran cantidad de datos.
El array por default no tiene ningn elemento, se ve como en la figura 3.
Una vez que se tiene el Array, se puede agregar dentro un Control Numrico desde la paleta
de herramientas (Figura 4).

Figura 3

El Array con un elemento lucir como la figura 5

Figura 4
Adems, al posicionarnos en el arreglo aparecern nodos para cambiar la dimensin como
se ve en la figura 5. Con estos nodos se puede arrastrar un nodo inferior para agregar ms
filas o arrastrar un nodo del lado derecho para agregar filas.

Figura 5

En este caso se trabajar con ms filas, para eso se arrastra el nodo inferior hacia debajo de
forma que comiencen a aparecer ms filas con ms entradas (Figura 6)

Figura 6

Cuando se tengan los cinco elementos quedar como en la siguiente figura.

Figura 7

El panel frontal entonces debe contener el arreglo, un control numrico y un indicador


numrico, deber lucir como en la figura 8.

Figura 8

Una vez hecho esto se tienen los elementos necesarios para realizar la estructura del
programa.

Paso 2: Conexin de los elementos y lgica del programa


Lo que se necesita ahora es realzar la conexin entre el control numrico (en el ejemplo
elementos) y la condicin N de la estructura For Loop.
Antes de comenzar a conectar hay que pensar en la lgica del programa. Cuando hablamos
de un Array o arreglo entonces los valores que se leern en el ciclo For son de forma
ordenada correspondiente a cada iteracin, es decir, una vez que se conecta el Array a la
estructura, se leern datos de forma ordenada: primero el elemento de la parte superior,
luego el segundo y as hasta llegar a la quinta fila del Array.
Sin embargo un problema aqu es que si se quiere hacer una suma con los valores del
arreglo, significa que se necesita otro elemento en una de las terminales de la funcin Add,
se necesita un registro o memoria para guardar el valor del primer elemento del arreglo y
sumarlo al segundo elemento de manera consecutiva hasta que termine el ciclo.
Los mismo pasa para el resultado de la suma, si se suman los dos primeros elementos, ese
resultado debe guardarse para que se le sume un tercer elemento.
Para hacer esto se emplea Shit Registers o registros de cambio, que guardan el ltimo
valor de entrada o salida.
Para agregar valores de registro en el For Loop hay que hacer click derecho en el borde de
la estructura y seleccionar del men emergente la opcin Add Shift Register (Figura 9).

Figura 9

Cuando se tienen los registros la estructura tendr dos iconos en los costados con una
flecha hacia arriba y otra hacia abajo.
Los registros se ven como en la figura 10.

Figura 10

Con los registros ahora se pueden almacenar valores de entrada y salida.


El siguiente paso es agregar la funcin suma Add y divisin Divide, la suma se hace
dentro del For pues es una suma de los elementos que dependen de la iteracin, la divisin
queda fuera de la estructura pues el resultado final se divide entre el nmero total de
elementos.
El programa ahora debe tener los elementos que se ven en la figura 11.

Figura 11

Lo siguiente es considerar que el Shift Register necesita una entrada y una salida, el guardar
la variable de entrada o salida lo hace de forma automtica, pero se puede inicializar con
algn valor, para el caso de la entrada se propone una constante de valor cero, de esta forma

al leer el primer valor de entrada le sumar un valor cero, cambiar el registro de cero a ese
primer valor de entrada, este proceso lo har hasta terminar el ciclo.
La conexin de la terminal y de la funcin Add debe ser al Array, la terminal x estrpa
conectada al Shift Register. La salida de la suma se conecta al Shift Register de salida para
poder guardar el ultimo resultado de la suma.
El programa hasta ahora deber lucir como en la figura 12.

Figura 12

La divisin divide la terminal y entre la terminal x por lo que en la terminal x se conectar


la misma entrada que la condicin N. De esta forma, la suma se dividir entre el nmero de
elementos. Finalmente la salida de la divisin se conecta en el indicador (Promedio)
quedando como en la figura 13.

Figura 13

Paso 3: Ejecutar el programa


El programa ser en un principio iniciar sin ningn valor, el usuario puede poner los cinco
valores en el Array y especificar cuantos se consideran para el promedio.
Considerando los cinco valores el programa luce como en la figura 14. En donde el Control
Numrico Elementos tiene un nmero cinco y el usuario ha ingresado esos cinco valores en
el Array

Figura 14

En ese ejemplo se consideran todos los valores y el resultado es 10, es decir, 50/5=10
Si se cambia el valor de la entrada Elementos a el nmero cuatro, el programa solo sacar
el promedio de los primeros 4 elementos, en ese caso: 6, 2, 1 y 11 como se ve en la figura
15.

Figura 15

Como se puede ver, el resultado ahora es 5 pues 20/4=5


Esto permite ver que el ciclo for funciona como se haba previsto anteriormente,

Sin embargo el ciclo For para este tipo de aplicaciones puede ser imprctico por las
consideraciones que se deben tomar por las entradas y salidas, registros y los elementos
usar.
Promedio Con Formula Node
Frmula Node es una estructura que permite trabajar con un lenguaje de programacin
basado en C que resulta muy til cuando se trabaja con muchos datos y ecuaciones
complejas, muchos de los ejemplos vistos anteriormente pueden sintetizarse en un pequeo
cdigo y los elementos del panel frontal.
El usuario debe tener un conocimiento bsico de lenguaje C como tipos de datos, estructuras
y sintaxis.
Para acceder a la estructura se hace desde la categora Structures en el diagrama de
bloques, la estructura luce en un principio como la figura 16.

Figura 17

Bsicamente la estructura es un simple recuadro en donde al hacer click en el centro se


puede escribir el cdigo basado en la sintaxis de lenguaje C.
Para el promedio se necesita una entrada y una salida en la estructura. En el panel frontal
basta con tener un indicador numrico y un array como en el caso anterior.
Para agregar una entrada y una salida a la estructura se hace click derecho y en el men
emergente se buscan las opciones Add Input y Add Output (Figura 18)

Figura 18

Una vez que se haya agregado una entrada y una salida se pueden ver pequeos cuadros
como en la figura 19.

Figura 19

En cada recuadro al hacer doble click se puede poner un nombre, en este caso se pondr X
en la entrada y Y en la salida.
Asignando los nombres de la entrada y salida se pueden conectar los elementos del panel
frontal: Control Numrico e Indicador Numrico, el programa luce como la figura 20.

Figura 20

Los siguiente es escribir el programa, para esto se consideran las variables necesarias para
declararlas en el programa, la primera variable es la salida y pues su valor final depende de
ciertas operaciones. Como se va a utilizar un ciclo for, se necesita una variable para guardar
el entero que incrementara despus de cada ciclo.
La declaracin de variables se hace con base a estndares de programacin de Labview,
esto es de la forma como se ve en la figura 20.

Figura 20

En donde int32 se refiere a los enteros y float a valores con decimales. Como se puede ver,
despus de la declaracin de cada variable se pone ;.
Lo siguiente es escribir el ciclo for, en donde en orden se pone: valor inicial de iteracin,
condicin y aumento, esto se delimita con parntesis como se ve en la figura 21

Figura 21

Para delimitar lo que se ejecuta dentro del ciclo for se utilizan llaves, lo que se escriba dentro
de las llaves ser lo que formar parte del ciclo.
El ciclo for permite tener iteraciones las cuales son necesarias para acceder a los datos del
Array, como se mencion anteriormente, el array es como una matriz, si la variable que se le
asigno es x entonces la matriz es x[i] y por lo tanto se leer el valor de x correspondiente
a la fila dependiendo de la iteracin, en este caso se delimito para los 5 elementos: x[0],
x[1], x[2], x[3] y x[4].
Lo siguiente entonces es guardar el valor de la suma para cada iteracin, se puede utilizar la
variable y como se ve en la figura 22.

Figura 22

Despus de hacer el ciclo cuya condicin es mientras i sea menor a 5 el programa saltar a
la siguiente lnea, en ese punto y debe dividirse entre 5, finalmente el programa queda como
sigue.

Figura 23

Como se puede ver, el programa es muy pequeo y la cantidad de elementos es mnima, al


ejecutar el programa se puede ver que la funcionalidad es la misma.

Figura 24

OBTENCIN DE RAICES (ECUACIN CUADRTICA)


El objetivo de este ejemplo es usar la estructura Formula Node para crear un programa que
pueda calcular las races de una ecuacin de segundo orden.
Para comenzar hay que pensar en la ecuacin cuadrtica que es:
x=

b b 24 ac
2a

Lo valores que el usuario puede ingresar son a,b y c de la frmula:


2

ax + bx+ c=0
El programa puede tener races reales y complejas considerando el valor de:

b24 ac=0
b24 ac >0
b24 ac <0
Estas consideraciones se toman en cuenta para crear el programa.
Paso 1: Crear interface de usuario
Para crear el programa lo primero es insertar en el panel frontal los elementos que permiten
al usuario ingresar datos, en este caso son controles numricos a, b y c, tambin se
introducen los indicadores para los resultados la raz x1 y raz x2.
El panel frontal puede quedar como la figura 1

Figura 1

Una vez que se tiene el panel frontal con los elementos necesario, en el diagrama de bloques
se puede crear la estructura y poner las respectivas entradas y salidas.

En el caso del led que dice si la raz es compleja se necesita poner algn comparador para
tener una salida booleana, en este ejemplo se puede usar un Greater than zero? pues si la
entrada es mayor que cero entonces habr una salida True, de lo contrario ser False. Con
esto se puede controlar el led con algn valor por ejemplo uno.

El diagrama de bloques luce como la figura 2.

Figura 2

Paso 2: Escribir el programa


Para escribir el programa primero se consideran las variables, las principales son x1, x2 y
c para controlar el led. Pero tambin se pueden considerar otras variables para facilitar el
programa, en este caso un valor de la raz de la ecuacin:

b24 ac

, esta variable se

llamar r, por ahora el programa solo dar valores de las races reales, si tiene un nmero
complejo entonces solo encender el led.
El programa con las variables declaradas se ve como la figura 3.

Figura 3

Para el programa en general lo primero es calcular r con el cdigo: ((b*b)-(4*a*c)); y con


este valor usar un condicional if para ver si se trata de una raz compleja o real, el cdigo
queda como en la figura 4.

Figura 4

El condicional if tambin se delimita con llaves, dentro del if en este caso se escribir el
cdigo para races reales, es decir, clculo normal de races.
Para esto el clculo sigue la frmula con el cdigo: x1=(-b+sqrt(r))/2 y x2=(-b-sqrt(r))/2.
En el caso de que r=0 entonces las races son iguales y se puede escribir como: x1=-b/
(2*a) y x2=x1
Para el tercer caso con r<0 se pondr el valor de las races como 0 pero el valor de cx=1
para encender el led. El cdigo al final se ve como en la figura 5.

Figura 5

Cuando se ejecute el programa se necesitarn parmetros establecidos para saber si el


programa hace lo que se pide, para eso se tienen tres conjuntos de valores para a,b y c para
ver la respuesta a cada caso.
Para r>0: a=1, b=6 y c=5, cuyas races reales son: x1=-1 y x2=-5
Para r<0: a=2, b=4 y c=3, cuyas races son complejas x1=-1+.7071i y x2=-1-.7071i
Para r=0: a=2, b=4 y c=2, cuyas races son: x1=x2=-1
En la figura 6 se puede ver la respuesta con los diferentes casos A) respuesta a r>0, b)
respuesta a r<0 C) respuesta a r=0.

C
Figura 6

Para hacer la modificacin en el programa que permita ver los valores de las races
complejas se puede introducir en el panel frontal un par de indicadores numricos para las
races. En el diagrama de bloques ahora se pondr un cdigo para calcular la raz compleja,
por lo que se agregarn dos variables en la declaracin en la parte superior (Figura 7).

Figura 7

En el panel frontal los indicadores se llaman +i y -1, estos se conectan a dos salidas de la
estructura Formula Node quedando como en la figura 8.

Figura 8

Para calcular la raz compleja se considera que:


x 1=

b b 24 ac
+
2a
2a

x 2=

b b24 ac

2a
2a

Lo que significa que las partes reales y complejas son igual pero con diferente signo, en el
caso de la parte compleja el valor de r es un valor negativo pero debido a que:

x= x1 donde 1=i
La operacin se hace normalmente con: sqrt(-r)/2 donde el signo negativo se pone para que r
sea un nmero positivo. En el programa las variables de las races complejas se llaman cr1
y cr2 siendo negativo y positivo respectivamente. El cdigo de las races complejas se ve
en la figura 9.

Figura 9

Finalmente el programa se ve como en la figura 10

Figura 10

Al ejecutar el programa se puede ver que se obtienen los valores esperados:


x1= -1+.7071i
x2= -1-.7071i

Figura 11

En conclusin Formula Node es una herramienta muy til y prctica cuando se trata de
muchos datos y ecuaciones complejas que sera complicado meter en el programa con otras
estructuras y mtodos.