Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
Initialize
Acquistion
Analysis
Warning = TRUE
Data log
Time
Check
Warning = FALSE
Stop = TRUE
National Instruments
| 7-3
Leccin 7
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
Siguiente estado
Anlisis
Comprobar el tiempo
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
National Instruments
| 7-5
Leccin 7
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
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.
N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n
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.
National Instruments
| 7-7
Leccin 7
ni.com
7-8
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.
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.
N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n
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.
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.
National Instruments
| 7-9
Leccin 7
ni.com
7-10
N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n
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.
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.
N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n
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
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.
National Instruments
| 7-11
Leccin 7
ni.com
N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n
Next StateCablee dos copias de la definicin tipo Weather Station States a la funcin Select.
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.
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.
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.
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.
National Instruments
| 7-13