Sunteți pe pagina 1din 22

Sistemas y Equipos de Medida

PRÁCTICA 1: INTRODUCCIÓN AL ENTORNO DE


PROGRAMACIÓN GRÁFICA LABVIEW.

1. PROGRAMAR EN LabVIEW
LabVIEW es un entorno gráfico que permite sustituir los comandos habituales en
cualquier lenguaje de programación por funciones u objetos gráficos que pueden
conectarse entre si. Ofrece una mayor flexibilidad y rapidez en el proceso de
programación puesto que permite sustituir 20 ó 30 líneas de código C++ por uno o
varios iconos. Es decir, se trata de una programación a alto nivel. En principio puede
parecer que la manera de programar una aplicación en LabVIEW pueda ser muy
diferente a hacerlo en cualquier otro lenguaje. Veremos que los planteamientos básicos
son exactamente los mismos.
Cualquier programa siempre se basará en:
 Empleo de unas estructuras de datos.
 Construcción de un algoritmo.
Se necesita en primer lugar tener claros los objetivos de la aplicación, una
descripción exacta del orden determinado en que se han de ejecutar una serie de
operaciones y generalizar lo máximo posible aquellas acciones que sean del mismo
estilo para obtener un programa lo más compacto y modular posible.

2. TIPOS DE DATOS
Tenemos dos tipos de datos:
 Estructurados
 No estructurados o escalares, es decir no divisibles en componentes.
Esto supone dos ventajas:
Primera: Al declarar el tipo de datos antes de usar una variable, el compilador podrá
detectar los errores de incompatibilidad de determinados operadores con variables. Esto
es muy útil cuando el programa es largo.
Segunda: Cada tipo de dato se representa dentro de la memoria del computador en un
formato determinado. Si los identificadores de tipos cambiasen durante la ejecución del
programa, la reserva del espacio en memoria se complicaría y la ejecución del programa
sería más lenta.

3. PROGRAMACIÓN MODULAR Y ESTRUCTURADA


3.1. Programación estructurada

El objetivo es obtener programas lo más claros, simples y fiables posible. Conviene


que nos acostumbremos a utilizar estructuras estáticas, es decir utilizar texto en el
programa que nos de una idea clara de la evolución del programa.

1
Sistemas y Equipos de Medida

Básicamente vamos a distinguir tres tipos de estructuras:


Secuencial: Cuando una serie de acciones se ejecuten en el orden que se han
escrito.
Condicional: Cuando dos acciones independientes y excluyentes dependen de una
condición.
Iterativa: Acciones que implican la repetición sistemática de un proceso, aunque
dentro de ellas existen diferencias (bucle WHILE, bucle FOR).

3.2. Programación modular

La programación modular es un método de diseño y tiende a dividir el problema total


en aquellas partes que poseen personalidad propia.
Frecuentemente en un programa debe repetirse una cierta secuencia de sentencias en
varios lugares dentro del programa. Para ahorrar tiempo y esfuerzo muchos programas
incorporan la posibilidad de construir subrutinas. En este aspecto el LabVIEW ofrece
una gran comodidad para implementar subrutinas como se verá más adelante, además
ofrece una ventaja y es la posibilidad de ejecutar un subprograma sin necesidad de
ejecutar el programa principal en su totalidad.

4. VENTANAS PANEL Y DIAGRAMA


Cada programa que se crea se denomina “VI” (Instrumento Virtual). Cada VI consta
de tres componentes:
 Panel frontal: Contiene el panel frontal del programa y constituye la interfase con
el usuario.
 Diagrama de bloques: Es la ventana sobre la que se construye el diagrama de
bloques, contiene el código fuente.
 Icono y conector: Identifica cada VI, de modo que puede utilizarse dentro de otro
VI, hablaríamos entonces de un subVI.
Puede pasarse de una pantalla a otra con la opción de menú o visualizar ambas
simultáneamente:
 Windows
 Show Front Panel/Show Block Diagram, dependiendo de en qué ventana estemos.

2
Sistemas y Equipos de Medida

4.1. Menús de LabVIEW

La barra de menús de la parte superior de la ventana de un VI contiene diversos


menús desplegables. Aparecen algunas opciones comunes en otras aplicaciones como
pueden ser guardar, pegar, abrir ...

File (archivo): Se usa básicamente para abrir, cerrar, guardar e imprimir VIs.
Edit (fichero): Utilizado para organizar el panel frontal, establecer el diagrama de
bloques y establecer nuestras preferencias.
Operate (función): Proporciona los comandos necesarios para ejecutar el VI,
también permite escribir cuando finaliza la ejecución.
Project (proyecto): Presenta los niveles de jerarquía, los subVIs que lo integran, los
que están sin abrir, busca VIs, etc.
Windows (ventanas): Se utiliza básicamente para mostrar ventanas, historiales,
herramientas, portapapeles, etc.
Help(ayuda)
En la parte inferior del menú desplegable aparece otra barra de herramientas muy
útil, con ella podemos tratar los diferentes tipos de letras, la alineación y distribución de
objetos. También aparecen opciones para controlar la ejecución del programa.

4.2. Ventana de jerarquía (Ventana diagrama/panel)

Seleccionando Browse/Show VI Hierarchy


desde el menú Project aparece una ventana que
muestra los VIs y subVIs que hay actualmente en
memoria. Si la ventana Help está activa y se mueve
el cursor sobre cualquiera de los VIs que aparecen
se obtiene la información que se tiene sobre él.
Se puede hacer doble click sobre cualquier icono
de la ventana para abrir el VI asociado.

3
Sistemas y Equipos de Medida

4.3. Herramientas (Ventana panel frontal/diagrama de bloques)

Son herramientas utilizadas para llevar a cabo funciones específicas de edición y


ejecución.

Valor de trabajo: Maneja controles e indicadores del panel frontal.


Selección\Tamaño\Cambio posición: Selecciona, mueve y redimensiona objetos.
Edición de texto: Crea y edita textos.
Cable de conexión: Permite conectar entre sí los elementos que forman el diagrama
de bloques.
Menú desplegable del objeto: Visualiza las paletas de controles si se tiene abierto el
panel frontal o la paleta de funciones si se está trabajando con el diagrama de bloques.
Desplazamiento: Desplaza la pantalla en la dirección que deseemos.
Punto de ruptura: Permite poner tantos puntos de ruptura como deseemos a lo largo
del diagrama de bloques. Cuando durante la ejecución se llega a uno de ellos, LabVIEW
conmuta automáticamente al diagrama de bloques. Se utiliza la misma herramienta para
eliminar los puntos de ruptura.
Sonda de datos: Permite comprobar los valores intermedios dentro de un VI durante
la ejecución del programa, similar al comportamiento de una sonda de osciloscopio que
nos permite ver los valores que se generan el los puntos donde la conectemos.
Capturar color: Permite saber de forma específica qué color tiene un objeto, texto u
otros elementos.
Colorear: Permite cambiar los colores de objetos, líneas, fondos….

4.4. Ayuda y ventana de ayuda

La ventana Context Help (que se activa desde el menú Help/Show Context Help)
ofrece información sobre funciones, constantes, subVIs, controles e indicadores. Debe
tenerse en cuenta que la descripción de cualquier VI no puede superar los 256
caracteres.
Cada VI generalmente se caracteriza por tener unos terminales que se identifican con
las etiquetas de los controles e indicadores utilizados en el panel frontal.

4
Sistemas y Equipos de Medida

Cuando pasamos el cursor sobre una función, un VI o subVI, la ventana de ayuda


muestra su icono con los cables del tipo de dato adecuado para cada terminal. Las
variables de entrada quedan a la izquierda (controles) y las de salida a la derecha
(indicadores). Los nombres de los terminales aparecen al lado de cada cable. Si el VI
tiene asociada una descripción, ésta se visualizará. Estas descripciones se introducen
mediante el diálogo Get Info al que se accede seleccionando el icono correspondiente
en la ventana de jerarquía.

Al poner la herramienta Conexión cables sobre un cable, la pantalla de ayuda


visualiza el tipo de dato transportado por ese cable. De igual modo, si se mueve sobre el
icono del VI, el terminal correspondiente al conector se ilumina.
También puede bloquearse la ayuda con el fin de mantener la información de un
determinado VI permanente en pantalla, de este modo la pantalla de ayuda no se ve
modificada aunque el cursor se mueva.
Otra opción es la de obtener información detallada.
Es conveniente tenerla siempre visible esta ventana de ayuda.

5. CREACIÓN DE UNA APLICACIÓN


Para crear el panel frontal deben situarse sobre él los objetos deseados (controles e
indicadores) mediante su selección en la paleta de controles. Cada objeto se identificará
con un terminal que aparecerá de forma automática, en la ventana del diagrama cuando
éste se inserte en el panel frontal.

5.1. Controles (Ventana panel frontal)

5
Sistemas y Equipos de Medida

Su presentación varia en función de la selección del usuario.


En cuanto al diagrama de bloques también hay que utilizar una paleta, esta vez de
funciones.

5.2. Funciones (Ventana diagrama de bloques)

Su presentación varia en función de la selección del usuario.

5.3. Tipos de datos

LabVIEW ofrece una gran variedad de datos con los que podemos trabajar
respondiendo a las necesidades reales con las que nos encontremos. Uno de los aspectos
más significativos es la diferenciación que efectúa en el diagrama de bloques entre los
diferentes tipos de controles e indicadores, basada en que cada uno de ellos se identifica
con un color. Distinguimos los siguientes datos:
 Booleano (verde claro): Enteros de 16 bits, donde el bit más significativo contiene
el booleano. El bit 15 se pone a 1 si se trata de un valor verdadero y 0 si es falso.
Numéricos: pueden distinguirse distintos tipos,
Extendido (naranja)  80 bits
Double (naranja)  64 bits
Single (naranja)  32 bits
Long Integer(azul)  32 bits
Word integer (azul)  16 bits
Byte integer (azul)  8 bits
Unsigned long (azul)  Entero largo sin signo

6
Sistemas y Equipos de Medida

Unsigned word (azul)  Palabra sin signo


Unsigned byte (azul)  Byte sin signo
Complex extended (naranja)  Número complejo con precisión extendida
Complex Double (naranja)  Complejo con precisión doble
Complex single (naranja)  Complejo con precisión simple
Arrays (depende del tipo de datos que contenga): Almacena el tamaño de cada
dimensión de un array como long integer seguido por el dato.
Strings (rosa): Los almacena como si se tratase de un array unidimensional de
bytes enteros(caracteres de 8 bits).
Path (verde oscuro): Almacena las componentes tipo y número de un path en
palabras enteras, seguidas inmediatamente por las componentes del path. El tipo
de path es 0 para un path absoluto y 1 para un path relativo.
Clusters (marrón o rosa): Un clusters almacena diferentes tipos de datos según las
siguientes normas: Los datos escalares se almacenan directamente en el cluster;
los arrays, strings, path... se almacenan directamente. El cluster almacena un
handle que apunta al área de memoria donde se almacenan realmente los datos.
A 1 (A1.vi): Desarrollar un programa que tenga dos entradas numéricas (controles A
y B), que muestre los resultados de cuatro operaciones (A+B, A-B, A*B, A/B) e indique
mediante cuatro leds cuándo se cumplen las igualdades: A=B, A>B, A<B y B=0:

Todos los elementos de programación se encuentran en Functions/Programming/


numeric-comparison. En el diagrama de bloques sobre los elementos de entrada salida
y su menú desplegable podemos editar los controles e indicadores.
Ejecutar el programa en forma resaltada (bombilla), establecer puntos de ruptura,
cambiar colores, introducir datos...aplicar todo lo explicado.

6. PROGRAMACIÓN ESTRUCTURADA
A la hora de programar, muchas veces es necesario ejecutar un mismo conjunto de
sentencias un número determinado de veces, o que éstas se repitan mientras se den una
serie de condiciones... También puede ocurrir que queramos ejecutar una u otra
sentencia dependiendo de unas condiciones determinadas o simplemente forzar que se
ejecuten unas sentencias antes que otras.

7
Sistemas y Equipos de Medida

LabVIEW dispone de cuatro estructuras que se denominan: For Loop, While Loop,
Sequense Structure y Case Structure.

6.1. Estructuras iterativas: FOR LOOP y WHILE LOOP

FOR LOOP: Se utilizará cuando queramos repetir una operación un determinado


número de veces. Se distinguen los siguientes terminales:
 Terminal contador: Contiene el número de veces que se ejecutará el subdiagrama
creado en el interior de la estructura. Su valor debe fijarse siempre desde el
exterior.
 Terminal de iteración: Indica el número de veces que se ha ejecutado la estructura
(0,..., N-1)
Ambos valores son accesibles desde el interior de la estructura aunque no pueden ser
modificados.
La estructura For Loop posee un menú desplegable (pulsando el botón derecho del
ratón) en que pueden observarse distintas opciones, como pueden ser:
Visible Items  Oculta o visualiza la etiqueta de identificación del bucle y si no
existe permite ponerla.
Help  Visualiza la ayuda detallada asociada al elemento
Description and Tip Permite añadir comentarios.
Conditional Terminal  Oculta o visualiza el terminal condicional del bucle FOR
Replace with While Loop Cambia el bucle por un bucle While manteniendo la
programación que haya dentro del bucle FOR.
Remove For loop  Borra el bucle sin eliminar la programación que haya en su
interior.
Add shift register  Añade los registros de desplazamiento.
Cuando se quiere sacar un dato del interior del bucle se genera un túnel y por defecto
se obtiene un dato”auto indexado”. De este modo al finalizar el bucle puede obtenerse
un array cuya dimensión depende de las iteraciones realizadas por el bucle.
Registros de desplazamiento
Son variables locales que permiten transferir los datos del final de una iteración al
principio de la siguiente iteración.
Inicialmente el registro de desplazamiento posee un par de terminales colocados a
ambos lados del bucle; el terminal de la derecha almacena el valor final de la iteración
hasta que una nueva hace que este valor se desplace al terminal de la izquierda,
quedando en el de la derecha el nuevo valor. Un mismo registro de desplazamiento
puede disponer de más de un terminal en el lado izquierdo; para añadirlo escogeremos
la opción “add element” del menú desplegable. Cuando más terminales se añadan a la
izquierda más valores de iteración podrán almacenarse.
Una vez se haya añadido el registro de desplazamiento, pulsando sobre él y
desplegando su menú se dispone de otras opciones como son:
Remove element  Borra un terminal del lado izquierdo siempre que el registro de
desplazamiento tenga asociados más de un terminal a la izquierda.

8
Sistemas y Equipos de Medida

Remove all  Borra todo el registro de desplazamiento, tanto los terminales de la


izquierda como los de la derecha.
Un mismo bucle puede tener más de un registro de desplazamiento, siendo
conveniente inicializarlo desde el exterior para disponer de un valor inicial al ejecutar
por primera vez el bucle. Existe otra posibilidad para pasar los datos al exterior
simplemente conectando un cable a cualquier indicador.
A 2 (A2.vi): Implementar un programa que genere 6 números aleatorios y muestre en el
panel frontal todos los números generados (array numérico), el último número generado
por el bucle, el valor de la iteración que se está ejecutando y cada uno de los números
generados en el momento de generarse (valor del registro). Estos dos últimos valores
podremos ver cómo cambian solo en la ejecución resaltada. Para entender bien el
funcionamiento del registro de desplazamiento realizar la ejecución resaltada para ver
que el valor generado en la ejecución n para a ser el valor de entrada en la ejecución
n+1.

Todos los elementos de programación se encuentran en


Functions/Programming/structures-numeric-comparison.
A 3 (A3.vi): Implementar A2 con la estructura FOR condicional (introducir la
estructura FOR, desplegar su menú y activar Conditional Terminal). Modifícalo de
manera que si el resultado de la multiplicación es mayor que 10 se pare el programa.

9
Sistemas y Equipos de Medida

Todos los elementos de programación se encuentran en


Functions/Programming/structures-numeric-comparison.
Ejecutarlo varias veces de forma resaltada hasta entender su funcionamiento.
WHILE LOOP: Se utilizará cuando queramos que se ejecute una acción mientras
una determinada condición sea cierta. Siempre se ejecutará al menos una vez ya que
primero ejecuta el diagrama interno y después comprueba la condición de salida. Se
distinguen los siguientes terminales:
 Terminal condicional: A él se conecta la condición que hará que se ejecute el
subdiagrama. Puede cambiarse la condición de final (fondo rojo o fondo verde).
 Terminal de iteración: Indica el número de veces que se ha ejecutado el núcleo, su
valor mínimo será 0.
La estructura While Loop posee un menú desplegable (pulsando el botón derecho del
ratón) en que pueden observarse distintas opciones, como pueden ser:
Visible Items  Oculta o visualiza la etiqueta de identificación del bucle y si no
existe permite ponerla.
Help  Visualiza la ayuda detallada asociada al elemento
Description and Tip Permite añadir comentarios.
Replace with For Loop Cambia el bucle por un bucle While manteniendo la
programación que haya dentro del bucle FOR.

10
Sistemas y Equipos de Medida

Remove While loop  Borra el bucle sin eliminar la programación que haya en su
interior.
Add shift register  Añade los registros de desplazamiento.
Stop if True  El bucle se parará si la condición cableada al terminal condicional es
cierta.
Continue if True  El bucle se parará si la condición cableada al terminal
condicional es falsa.
Cuando se quiere sacar un dato del interior del bucle se genera un túnel y por defecto
se obtiene un dato “no indexado”. De este modo al finalizar el bucle puede obtenerse el
último valor generado dentro del bucle.
Registros de desplazamiento
Tiene las mismas propiedades y características que los vistos en el bucle For.
A 4 (A4.vi): Modificar el programa A2.vi sustituyendo la estructura For Loop por la
estructura While y restringiendo la generación de números aleatorios a 4.

Los elementos del array que aparecen en gris es que no se han activado.

Todos los elementos de programación se encuentran en


Functions/Programming/structures-numeric-comparison. Ejecutarlo varias veces de
forma resaltada hasta entender su funcionamiento.

11
Sistemas y Equipos de Medida

Q 1. ¿Por qué si no queremos generar más de 4 números aleatorios, la comparación la


hacemos con el número 3?
…………………………………………………………………………………………….
…………………………………………………………………………………………….

Q 2 ¿Cómo es que nos aparece un array de cuatro elementos y en el terminal iteración


nos aparece un 3?
……………………………………………………………………………………………
…………………………………………………………………………………………….
Como se ha mostrado las estructuras While y For son muy parecidas y en ambas es
posible disponer de registros de desplazamiento y menú desplegable.
A5 (A5.vi): Utilizando un bucle For Loop y registros de desplazamiento generar 4
números aleatorios y obtener su suma, multiplicarla por 100 y obtener su valor medio.
En el panel frontal debe tener un control del número de iteraciones y tres indicadores:
iteración, resultado de la suma y resultado del valor medio. En este ejemplo calculamos
lo mismo de dos formas diferentes para ampliar los conocimientos sobre el bucle For y
los arrays.

12
Sistemas y Equipos de Medida

Todos los elementos de programación se encuentran en


Functions/Programming/structures-numeric-comparison-array. Ejecutarlo varias
veces de forma resaltada hasta entender su funcionamiento.
Q 3 ¿Qué número aleatorio sale al exterior por el registro de desplazamiento inferior
de la izquierda del primer bucle for, el primer número aleatorio generado o el
último?
…………………………………………………………………………………………….
Q 4 ¿Qué número aleatorio sale al exterior por el registro de desplazamiento de la
derecha del primer bucle for, el primer número aleatorio generado o el último?
…………………………………………………………………………………………….
Q 5 ¿Por qué en el segundo bucle For no ha sido necesario cablear el contador N?
…………………………………………………………………………………………….
…………………………………………………………………………………………….
Q 6 ¿Por qué en el segundo bucle For los túneles de entrada tienen diferente color?
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
Q 7 ¿Qué ocurre si el control de iteración es distinto de 4? ¿Se hace la media
correctamente por los dos procesos? ¿Cómo lo corregirías? Programa la solución
(soluciónA5.vi).
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….

6.2. Estructura Case y Sequence (Flat o Stacked)

Este tipo de estructuras se diferencia de las iterativas en que nos permiten establecer
el orden de ejecución de los casos o secuencias que programemos. En la parte superior
aparece una ventana en la que se visualiza el identificador del caso o secuencia que se
está visualizando. A ambos lados de la ventana aparecen unos botones que permiten
aumentar o decrementar el identificador del caso o secuencia.
CASE: Se utilizará en aquellas situaciones en el que el número de alternativas sean
dos o más. Según el valor que tome el selector se ejecutará un Caso u otro. Consta de un
terminal llamado selector y un conjunto de casos, cada uno de los cuales está dentro de
un case identificado por un identificador del mismo tipo que el selector, podrá ser
booleano, numérico,o string. En estos dos últimos casos uno de ellos ira marcado como
Default. Si es booleano solamente dispondremos de dos posibilidades y si es numérico o
string la estructura podrá tener hasta 214 casos.

13
Sistemas y Equipos de Medida

La estructura Case no cuenta con registros de desplazamiento pero si dispone de


túneles para introducir o sacar datos de un caso. Si un case proporciona un dato de
salida es absolutamente necesario que todos los case proporcionen un dato de salida del
mismo tipo, no ocurre lo mismo con los datos de entrada ya que éstos pueden o no ser
compartidos por todos los casos.
También se dispone de un menú desplegable, algunas de las opciones, tanto para la
estructura Case como la Flat o Stacked Sequence, son:
Visible Items  Oculta o visualiza la etiqueta de identificación de la estructura y si
no existe permite ponerla.
Help  Visualiza la ayuda detallada asociada al elemento
Description and Tip Permite añadir comentarios.
Replace with Stacked Sequence/Case/Flat Sequence  Cambia la estructura por
la otra estructura indicada/seleccionada.
Remove Case structure/Sequence  Borra completamente la estructura y todos los
subdiagramas a excepción del que se está visualizando.
Add Sequence Local  Sólo disponible en las estructuras sequence para pasar datos
de una secuencia a otra que se ejecuta posteriormente.
Show Case/Frame  Permite ir directamente al diagrama que queremos visualizar.
Add Case/Frame After  Inserta un Caso o Frame vacío detrás del que se está
visualizando.
Add Case/Frame Before  Inserta un Caso o Frame vacío delante del que se está
visualizando.
Duplicate Case/Frame  Inserta una copia del Case o Frame que se está
visualizando después de él.
Make This case/Frame  Mueve un Case o Frame a otra posición.
Delete this Case/Frame  Borra el caso visible. Comando no disponible si
solamente existe un case o frame.
Remove Empty Cases/Frames  Borra los caso o frames vacíos.
A6 (A6.vi): Veamos el uso de la estructura Case booleana y numérica. Con el control
Case booleano seleccionaremos si se ejecuta el Case True (donde se encuentra el Case
numérico, donde el caso 0 es el caso por defecto, en los case numéricos siempre debe
haber un case que sea Default) o False (donde solo hay una constante). Con el control
Case numérico seleccionaremos si se ejecuta el Case 0 (donde hay una suma) o 1
(donde hay una multiplicación).

14
Sistemas y Equipos de Medida

Todos los elementos de programación se encuentran en


Functions/Programming/structures-numeric. Ejecutarlo varias veces de forma
resaltada hasta entender su funcionamiento.

15
Sistemas y Equipos de Medida

Como vemos en todos los Case los túneles de salida tienen un valor asignado (por
eso el túnel es opaco). Si esto no sucediese, el túnel no sería opaco, su interior sería
blanco y la flecha de ejecución aparecería rota, como vemos en la siguiente imagen.

FRAME: Con esta estructura forzamos a que la ejecución del programa se ejecute en
un determinado orden, cada Frame contendrá una programación y se ejecutarán según
el orden de aparición. En este caso si un Frame proporciona un dato de salida éste
puede ser compartido por las demás, siempre que se ejecuten después de él. Al igual que
en la estructura Case también se dispone de un menú desplegable con las opciones
vistas en la estructura Case.
A7 (A7.vi): Veamos el uso de la estructura Frame. Usaremos una estructura con dos
Frames. En el Frame 0 (el primero que se ejecuta) hacemos una suma de un número A
que introducimos a través de un control con una constante de valor 100. El valor del
Número A lo pasamos al Frame 1 a través de una Local Sequence y lo sumamos a un
número aleatorio. El resultado lo sacamos al exterior a través de un túnel y también lo
conectamos a una Local Sequence para que se vea que no se puede usar en el Frame 0.

16
Sistemas y Equipos de Medida

Todos los elementos de programación se encuentran en


Functions/Programming/structures-numeric. Ejecutarlo varias veces de forma
resaltada hasta entender su funcionamiento.
A8 (A8.vi): Modificar el programa ejem5.vi de modo que la operación suma se realice
cuando se de la orden “calcular” y se pueda finalizar la ejecución del programa cuando
se desee. Dar un tiempo de espera en cada iteración del bucle while de 500
milisegundos.

17
Sistemas y Equipos de Medida

Todos los elementos de programación se encuentran en


Functions/Programming/structures-numeric-array-timming. Ejecutarlo varias veces
de forma resaltada hasta entender su funcionamiento.
Q 8 El bucle For superior solo hace bien la media si el bucle se ejecuta 4 veces ¿Por
qué? ¿Cómo lo corregirías? Programa la solución en solucionA8.vi.
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
Q 9 El bucle For inferior solo hace bien la media si el bucle se ejecuta 4 veces ¿Por
qué? ¿Qué ocurre si se ejecuta más veces?
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….

6.3. Nodo de fórmula

Es una estructura parecida a las anteriores pero en lugar de contener un subdiagrama


contiene una o más fórmulas separadas por un punto y coma. Se utilizan cuando se
quiere implementar alguna fórmula matemática que resultaría demasiado complicada si
quisiera hacerse con las herramientas de que dispone el LabVIEW en sus librerías.
Cada estructura posee un menú desplegable y además una vez creadas las variables
de entrada y salida a ellas se les asocia otro menú desplegable tal como indica la figura:

18
Sistemas y Equipos de Medida

Importante: No hay límite para el número de variables o de fórmulas y nunca podrá


haber dos entradas o dos salidas con el mismo nombre, aunque una salida si podrá tener
el mismo nombre que una entrada. Todas las variables de salida deberán estar asignadas
a una fórmula por lo menos una vez (distingue entre mayúsculas y minúsculas). Los
resultados obtenidos en una línea pueden usarse en líneas posteriores.
La siguientes tablas muestran algunas de las funciones y operadores disponibles.

19
Sistemas y Equipos de Medida

A9 (A9.vi): Implementar un programa, utilizando el nodo fórmula, que realice las


funciones: suma, resta, multiplicación y división de dos números.

A10 (A10.vi): Partiendo de Ejem1.vi y conociendo las estructuras utilizadas por el


LabVIEW modificar el programa de modo que:

20
Sistemas y Equipos de Medida

1.- El programa no inicie el cálculo de las operaciones hasta que se pulse un botón de
actualización, cuya acción mecánica debe ser Mechanical Action/Swith Until Realeased
(menú desplegable del pulsador en el Front Panel).
2.- Si A o B  [10.4, 40] debe aparecer un indicador tipo cadena que indique que se
está fuera de rango o no.
3.- Compruebe el rango de los valores de entrada y actúe en consecuencia:
A,B [10.4, 20]  Actúen únicamente los leds indicadores y los indicadores
numéricos deben mostrar el valor numérico ‘0’.
A,B [20.1, 29]  Actúen los leds y se visualicen los resultados.
A,B [29.01,40]  Sólo se visualicen los resultados en los indicadores numéricos
y los leds indicadores deben de mostrar el valor booleano ‘False’.
4.- Debe ser posible introducir nuevos datos sin interrumpir la ejecución del
programa.

21
Sistemas y Equipos de Medida

Todos los elementos de programación se encuentran en


Functions/Programming/structures-numeric-comparison-boolean. Ejecutarlo varias
veces de forma resaltada hasta entender su funcionamiento.
Q 10 ¿Por qué hay veces que le damos al botón stop y no nos hace caso?
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………….
Q 11 ¿Cómo lo solucionarías? Programa la solución y guárdala como solucionA10.vi.
…………………………………………………………………………………………….
…………………………………………………………………………………………….
Q 12 Este VI funciona pero no es la mejor solución ¿Cuál sería tú solución? Prográmala
y grábala en solucionA10-1.vi.

A11 (A11.vi): Simular el llenado y vaciado continuo de un depósito. El depósito


tiene una capacidad de 1000 litros y los pasos de llenado/vaciado pueden modificarse en
cualquier momento. Entre pasos debe haber un tiempo de espera también modificable
durante la ejecución del programa. Debes pensar que el depósito existe físicamente y no
puede desbordarse ni trabajar en vacío. Y por supuesto no engañar al cliente con los
litros introducidos o que quedan en el depósito.

22

S-ar putea să vă placă și