Sei sulla pagina 1di 12

Usando algoritmos de mquinas de estado y secuenciales

Ejercicio 7-1

Objetivo

ni.com

7-2

VI State Machine

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Leccin 7

Crear un VI que implemente una mquina de estados usando una definicin de tipo enum.

Escenario

Debe disear un VI para una mquina de estados de interfaz de usuario. El VI adquiere una temperatura cada medio segundo, analiza cada temperatura para determinar
si es demasiado alta o baja y alerta al usuario si hay peligro de golpe de calor o congelacin. El programa registra los datos si hay una advertencia. Si el usuario no
ha hecho clic en el botn de parada, se repetir todo el proceso. La mquina de estados tambin debe permitir la expansin, ya que pueden aadirse procesos en el
futuro.

Diseo

Use el siguiente diagrama de flujo y la lista de estados para crear el VI de este ejercicio.

Diagrama de flujo
El diagrama de flujo en la figura 7-1 ilustra el diseo por flujo de datos.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 7-1. Diagrama de flujo del VI Temperature Warnings

Initialize

Acquistion

Time Elapsed = TRUE


and
Stop = FALSE

Analysis

Warning = TRUE

Data log

Time Elapsed = FALSE


and
Stop = FALSE

Time
Check

Warning = FALSE

Stop = TRUE

LabVIEW Core 1 Ejercicios

National Instruments

| 7-3

Leccin 7

Usando algoritmos de mquinas de estado y secuenciales

ni.com

Transiciones de estado
Estado

Adquisicin
Anlisis
Registro de datos
Comprobar el tiempo

Implementacin

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

La siguiente tabla describe los estados de esta mquina de estados.


Descripcin

Siguiente estado

Establece el tiempo en cero, adquiera datos del sensor de


temperatura

Anlisis

Lee los controles del panel frontal y determina el nivel de alerta

Registro de datos si ocurre una alarma, comprobar el


tiempo si no hay alarmas

Registrar los datos en un archivo ASCII delimitado con


tabulaciones

Comprobar el tiempo

Comprobar si el tiempo es superior o igual a 0,5 segundos

Adquisicin si ha transcurrido el tiempo, comprobar el


tiempo si no ha transcurrido el tiempo

1. Abra Weather Station.lvproj en el directorio <Exercises>\LabVIEW Core 1\Weather Station.


2. Abra Weather Station UI.vi de la ventana Project Explorer.

7-4

La figura 7-2 muestra el panel frontal del VI Weather Station UI que se proporcion. Modifique el diagrama de bloques para crear una mquina de estados para
la aplicacin Weather Station.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 7-2. Ventana del panel frontal del VI Weather Station UI

LabVIEW Core 1 Ejercicios

National Instruments

| 7-5

Leccin 7

Usando algoritmos de mquinas de estado y secuenciales

ni.com

7-6

La figura 7-3 muestra el punto de partida del diagrama de bloques para el VI Weather Station UI. Edite el diagrama de bloques para implementar una mquina
de estados para la aplicacin Weather Station.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 7-3. Inicio del diagrama de bloques del VI Weather Station UI

Use estos controles e indicadores para programar diferentes casos.

3. Cree una nueva definicin tipo para controlar la aplicacin Weather Station.

Abra el diagrama de bloques y cree una constante Enum a la izquierda del bucle While.
Escriba Acquisition en la constante.

Haga clic con el botn derecho en la constante y seleccione Edit Items en el men contextual.

Aada los tems mostrados en la figura 7-4 y haga clic en OK.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 7-4. Estados de la definicin tipo Weather Station

Haga clic con el botn derecho en la constante enum en el diagrama de bloques y seleccione Make Type Def.
4. Modifique la nueva definicin tipo y adala al proyecto Weather Station.

Haga clic con el botn derecho en la constante enum y seleccione Open Type Def.
Cambie la etiqueta en el control Enum a States.

Guarde la definicin tipo como Weather Station States.ctl en el directorio <Exercises>\LabVIEW Core 1\Weather
Station\Supporting Files.

LabVIEW Core 1 Ejercicios

National Instruments

| 7-7

Leccin 7

Usando algoritmos de mquinas de estado y secuenciales

ni.com

7-8

Cierre la ventana Control Editor.


auto-populada.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

En ventana Project Explorer, note que el Weather Station States.ctl ha sido agregado a su carpeta Supporting Files debido a que esa carpeta es una carpeta
5. Controle la mquina de estados con un enum definicin tipo y actualice el marco como en la figura 7-5.

Figura 7-5. Diagrama de bloques del VI Weather Station UI


5

Registro de desplazamientoHaga clic con el botn derecho en el bucle While y seleccione Add Shift Register.

Definicin tipo constante enumHaga clic con el botn derecho y seleccione Visible ItemsLabel. Cambie la etiqueta a Beginning State. Cablee la
constante Beginning State al registro de desplazamiento para inicializar el registro de desplazamiento al estado Acquisition. Cablee el registro de
desplazamiento al selector de casos de la estructura Case.

Agregue ms casosHaga clic con el botn derecho en la estructura Case y seleccione Add Case for Every Value para aadir un caso por cada elemento
del enum.

Weather Data InArrastre el Weather Data.ctl de la ventana Project Explorer al diagrama de bloques para crear una constante de cluster definicin tipo.
Haga clic con el botn derecho en el cluster y seleccione View Cluster As Icon.

Registro de desplazamientoColoque un registro de desplazamiento en el bucle While y cablee la constante Weather Data In a l.

Nota

Luego que termina de cablear el caso Acquisition en el paso 6, algunos tneles estn vacios debido a que no todos los casos han sido cableados an.

6. Complete el estado Acquisition como en la figura 7-6.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 7-6. Estado Acquisition VI Weather Station UI


1

Thermometer o Thermometer (Demo)Arrastre uno de estos VIs de la carpeta Shared Files en la ventana Project Explorer al diagrama de bloques. Arrastre
el VI Thermometer si tiene hardware y arrastre el VI Thermometer (Demo) si no tiene hardware.

Temperature HistoryMueva este indicador al estado Acquisition de la estructura Case.

Bundle By NameCablee la salida Temperature Value del VI Thermometer a la entrada Current Temperature.

Next State enum<Ctrl>-haga clic en enum Beginning State y arrastre una copia al caso Acquisition. Cambie el nombre de esta copia de la definicin tipo
Weather Station States a Next State. Establezca el enum en Analysis y cablelo a travs de un tnel en la estructura Case al registro de desplazamiento
en el bucle While.

Constante TrueCree una constante True y cablela a travs de la estructura Case al registro de desplazamiento Elapsed Time. La constante True reinicia
el contador Elapsed Time cada vez que el VI ejecuta el caso Acquisition.

LabVIEW Core 1 Ejercicios

National Instruments

| 7-9

Leccin 7

Usando algoritmos de mquinas de estado y secuenciales

ni.com

7-10

7. Complete el caso Analysis como en la figura 7-7.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 7-7. VI Weather Station UICaso Analysis


1

Upper Limit y Lower LimitMueva estos controles numricos fuera del bucle While.

Bundle By NameReemplace los tems Max Temperature y Min Temperature con los valores de los controles Upper Limit y Lower Limit. La funcin Bundle
By Name hace posible cablear los valores Upper Limit y Lower Limit a la entrada Weather Data In del VI Temperature Warnings.

Temperature WarningsArrastre el VI Temperature Warnings de la carpeta Supporting Files en la ventana Project Explorer.

Unbundle By NameDevuelve el valor de un tem especfico de un cluster.

SelectDetermina cual estado se ejecutar a continuacin dependiendo si ocurre una alerta o no.

Weather Station StatesCablee dos copias de la definicin tipo Weather Station States a la funcin Select. Puede crear estas copias del enum Beginning
State.

WarningMueva este indicador de afuera del bucle While.

8. Complete el caso Data Log como en la figura 7-8.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 7-8. VI Weather Station UICaso Data Log


1

Unbundle By NameDevuelve el valor de un tem especfico de un cluster.

Constant TabInserta una tabulacin en la cadena de caracteres. El archivo de registro que cre contiene tabulaciones entre valores.

Constante End of LineInserta un valor de fin de lnea especfico de la plataforma al final de la cadena de caracteres. El archivo de registro que cre usa
constantes de fin de lnea para insertar cortes entre los datos

Format Into StringExpanda el nodo para aceptar ocho entradas.

Write to Text FileEscribe el texto que le acaba de de dar formato a un archivo de registro.

Next StateCrea una copia del enum Weather Station States, la etiqueta Next State y establece el siguiente estado como Time Check.

LabVIEW Core 1 Ejercicios

National Instruments

| 7-11

Leccin 7

Usando algoritmos de mquinas de estado y secuenciales

ni.com

9. Complete el caso Time Check como en la figura 7-9.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 7-9. VI Weather Station UICaso Time Check


1

Next StateCablee dos copias de la definicin tipo Weather Station States a la funcin Select.

SelectDetermina cual estado se ejecutar a continuacin dependiendo si el tiempo ha pasado o no.

Stop ButtonMueva la terminal Stop Button de afuera del bucle While. Cablee la terminal Stop Button a la funcin Or afuera de la estructura Case.

Cable Next StateCablee el tnel del cable Next State al registro de desplazamiento.

Use predeterminados si no estn cableadosHaga clic con el botn derecho en estos tneles y seleccione Use Default If Unwired.

10. Guarde y cierre el VI.

7-12

Prueba

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

1. Ejecute el VI.

D un nombre al archivo de registro cuando se lo indique.

Ingrese los valores de los controles Upper Limit y Lower Limit y observe el comportamiento del VI. Se comporta como se esperaba?
2. Detenga el VI.

3. Busque el archivo Weather Warning Log.txt y bralo.

4. Note los cambios en los valores superiores e inferiores y la colocacin de las tabulaciones y cortes de lneas.
5. Cierre el archivo de registro.
6. Salve y cierre el VI y el proyecto.

Fin del ejercicio 7-1

LabVIEW Core 1 Ejercicios

National Instruments

| 7-13

Potrebbero piacerti anche