Vous êtes sur la page 1sur 15

INSTITUTO TECNOLÓGICO SUPERIOR DE TEZIUTLÁN

ACADEMIA DE INGENIERÍA MECATRÓNICA


INSTRUMENTACIÓN VIRTUAL

PRÁCTICA 3
SEMÁFORO CON MÁQUINAS DE ESTADO

DOCENTE:
I.M. RUBÉN HERNÁNDEZ SANTOS.

PRESENTADO POR:
ERIC EMILIO ARMENTA PÉREZ
JAFET CHACÓN MÉNDEZ
RUBÉN GABRIEL RUEDA MÉNDEZ

ABRIL 2019
Resumen
Se realizó un semáforo con la ayuda de máquinas de estado, primeramente, se hizo uso de
un enum constant para la numeración de cada uno de los estados. El programa se inicia con el encendido
del led verde, el cual es el estado 0 o inicial, posteriormente se realiza un blink con la intención de informar
al conductor la aproximación del color amarillo o estado 1, finalmente el semáforo pasa al color rojo o
estado 3, para volver a repetir el ciclo.
Antecedentes
LABVIEW

LabVIEW (acrónimo de Laboratory Virtual Instrument Engineering Workbench) es una


plataforma y entorno de desarrollo para diseñar sistemas, con un lenguaje de programación visual gráfico
pensado para sistemas hardware y software de pruebas, control y diseño, simulado o real y embebido.

Este programa fue creado por National Instruments (1976) para funcionar en máquinas
MAC, salió al mercado por primera vez en 1986, teniendo versiones disponibles para las plataformas
Windows, UNIX, MAC y GNU/Linux actualmente. La penúltima versión es la 2013, con la increíble
demostración de poderse usar simultáneamente para el diseño del firmware de un instrumento RF de última
generación, a la programación de alto nivel del mismo instrumento, todo ello con código abierto. Y
posteriormente la versión 2014 disponible en versión demo para estudiantes y profesional, la versión demo
se puede descargar directamente de la página National Instruments.

Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales, o VIs, y su


origen provenía del control de instrumentos, aunque hoy en día se ha expandido ampliamente no sólo al
control de todo tipo de electrónica (Instrumentación electrónica) sino también a su programación embebida,
comunicaciones, matemáticas, etc. Un lema tradicional de LabVIEW es: "La potencia está en el Software",
que con la aparición de los sistemas multinúcleo se ha hecho aún más potente. Entre sus objetivos están
el reducir el tiempo de desarrollo de aplicaciones de todo tipo (no sólo en ámbitos de Pruebas, Control y
Diseño) y el permitir la entrada a la informática a profesionales de cualquier otro campo. LabVIEW consigue
combinarse con todo tipo de software y hardware, tanto del propio fabricante -tarjetas de adquisición de
datos, PAC, Visión, instrumentos y otro Hardware- como de otros fabricantes.

Ilustración 1 Labview
Principales Características

Su principal característica es la facilidad de uso, válido para programadores profesionales


como para personas con pocos conocimientos en programación pueden hacer programas relativamente
complejos, imposibles para ellos de hacer con lenguajes tradicionales. También es muy rápido hacer
programas con LabVIEW y cualquier programador, por experimentado que sea, puede beneficiarse de él.

Los programas en LabView son llamados instrumentos virtuales (VIs) Para los amantes de
lo complejo, con LabVIEW pueden crearse programas de miles de VIs (equivalente a millones de páginas
de código texto) para aplicaciones complejas, programas de automatizaciones de decenas de miles de
puntos de entradas/salidas, proyectos para combinar nuevos VIs con VIs ya creados, etc. Incluso existen
buenas prácticas de programación para optimizar el rendimiento y la calidad de la programación. El labView
7.0 introduce un nuevo tipo de subVI llamado VIs Expreso (Express VIS). Estos son VIs interactivos que
tienen una configuración de caja de diálogo que permite al usuario personalizar la funcionalidad del VI
Expreso. El VIs estándar son VIs modulares y personalizables mediante cableado y funciones que son
elementos fundamentales de operación de LabView.

Presenta facilidades para el manejo de:

Interfaces de comunicaciones:

 Puerto serie
 Puerto paralelo
 GPIB
 PXI
 VXI
 TCP/IP, UDP, DataSocket
 Irda
 Bluetooth
 USB
 OPC...

Capacidad de interactuar con otros lenguajes y aplicaciones:

 DLL: librerías de funciones


 .NET
 ActiveX
 Multisim
 Matlab/Simulink
 AutoCAD, SolidWorks, etc
 Herramientas gráficas y textuales para el procesado digital de señales.
 Visualización y manejo de gráficas con datos dinámicos.
 Adquisición y tratamiento de imágenes.
 Control de movimiento (combinado incluso con todo lo anterior).
 Tiempo Real estrictamente hablando.
 Programación de FPGAs para control o validación.
 Sincronización entre dispositivos.
Desarrollo
Primeramente, se hace uso de un enum constant, dónde se almacenarán cada uno de los
tres estados del semáforo, cabe recordar que cada uno de ellos contendrá un determinado valor numérico,
el cual representará cada uno de los estados de la máquina.

Figura 1.1. Enum constant. (Fuente propia, 2019).

Figura 1.2. Edición de los elementos. (Fuente propia, 2019).

Como se observa en la figura 1.2, el estado cero o inicial será el verde, el siguiente estado
correspondiente al elemento 1 amarillo, finalmente el estado dos representa al color rojo.
Posteriormente se haber un ciclo while, responsable de la iteración infinita.

Figura 1.3. Ciclo while. (Fuente propia, 2019).

Se coloca un structure case, como se muestra a continuación, la cual contiene 3 estados


posibles de acuerdo al enum establecido inicialmente.

Figura 1.4. Structure case. (Fuente propia, 2019).

A continuación, se muestran los 3 casos posibles contenidos dentro de este structure case.

Dentro del primer caso se mantiene encendido el led de color verde por un tiempo de 5
segundos, apagando los restantes.

Figura 1.5. Primer caso dentro del Structure case. (Fuente propia, 2919).
Para el segundo caso, el led amarillo será encendido 1 segundo, mientras los demás
permanecerán apagados, figura 1.6.

Figura 1.6. Segundo caso dentro del Structure case. (Fuente propia, 2919).

Finalmente, en el último caso, se enciende el led de color rojo 8 segundos, apagando los restantes.

Figura 1.7. Tercer caso del Structure case. (Fuente propia, 2019).

Posteriormente, se abre otro case structure, el cual es del tipo booleano; mientras el tiempo
de encendido de cada led no se haya cumplido, el case structure permanecerá en el estado de “Falso”,
dentro del cual se mantendrán las variables con los valores antiguos, es decir, no habrá cambio en ellas.

Con la ayuda de un Registro de desplazamiento, sea cual sea el estado de la máquina de


estados, se volverá a colocar al inicio, esto con la intención de no modificar el estado de los leds mientras
no acaba el tiempo de encendido actual; este tiempo estará controlado por un contador el cual se
incrementará de uno en uno cada segundo hasta llegar al tiempo establecido.

Las actividades anteriormente mencionadas serán realizadas mientras el tiempo de


encendido no llegue a su límite.
Figura 1.8. Case structure 2 en falso. (Fuente propia, 2019).

En caso de que el tiempo establecido en cada uno de los leds se haya cumplido, o haya
llegado al valor deseado, este case pasará a su estado verdadero, el cual alberga dentro de su estructura
a otro structure case con 3 casos correspondientes a los 3 estados de la máquina.

Figura 1.9 Case structure 2 en verdadero. (Fuente propia, 2919).

Dentro del primer caso, se tiene al estado 0 proveniente del primer case structure, cuando
llega a esta parte el programa realiza un blink con el led verde, lo anterior lo realiza apoyándose de un ciclo
while, el cual contiene un registro de desplazamiento del tipo booleano encargado de cambiar el estado del
led, es decir lo enciende y lo paga durante 500ms, y esto lo realiza 3 veces debido a la función que tiene el
comparador, el cual compara la variable de iteración i con la constante 3, cuando dicha condición es
cumplida entonces interrumpe al ciclo while, ocasionando la salida del ciclo, antes de salir se manda el
estado 1 por el registro de desplazamiento, el cual vuelve a iniciar al principio del programa en el primer
case structure.
Figura 1.10. Segundo estado de la máquina de estados en el inicio. (Fuente propia,
2019).

Cuando el segundo estado entra por el registro de desplazamiento las variables cambian
de valor, encendiendo el led de color amarillo, apagándose el resto.

El led se mantendrá encendido cierto tiempo, y cuando llega a su valor final, la condición
se cumple y vuelve a entrar dentro del case structure con el estado actual.

Figura 1.11. Último estado de la máquina de estados mandado por el registro de


desplzamiento. (Fuente propia, 2019).

Dentro del segundo caso, se tiene al estado uno de la máquina de estados, la cual lo único
que realizará será mandar al estado dos por el registro de desplazamiento.
Figura 1.12. Tercer estado de la máquina de estados en el inicio. (Fuente propia, 2019).

Este segundo estado, enciende el led de color rojo manteniendo los demás apagados.

Dicho estado se mantendrá el tiempo programado de 8 segundos, nuevamente al cumplirse


dicho tiempo el segundo case structure se vuelve cierto.

Figura 1.13. Reinicio de la máquina de estados. (Fuente propia, 2019).

Al activarse este caso, el último estado de la máquina de estados reinicia el ciclo, volviendo
a entrar en el estado inicial, que es mandado a través del registro de desplazamiento e iniciando
nuevamente en el programa.
Figura 1.14. Inicio de la máquina de estados. (Fuente propia, 2019).

La máquina de estado vuelve al inicio.


Funcionamiento

Inicialmente, el led verde y rojo correspondientes al primer y segundo semáforo se encuentran encendidos.

Posteriormente, el led verde comienza a parpadear antes de pasar al siguiente estado.

Posteriormente, se enciende el led de color amarillo, el cual se mantiene 5 segundos activo.


A continuación, se enciende el led de color verde y rojos correspondientes al segundo y primer semáforo.

Vuelve a hacer un parpadeo el led de color verde del segundo semáforo.


Se enciende el led amarillo del segundo semáforo.

Y el ciclo vuele a empezar.


Bibliografía:

Automatique, I., Salzmann, C., Zufferey, C., Ouwehand, M., Ouwehand, M., Roulet, F., … Roulet, F.
(2000). LabVIEW 6, 1–16.

Mohiuddin, T., Nawrocki, M., & Bitter, R. (2010). Introduction to LabVIEW. In LabView (pp. 1–67). CRC
Press. https://doi.org/10.1201/9781420004915.ch1

Halvorsens, H.-P. (2011). Data Acquisition in LabVIEW. LabView, 4–5. https://doi.org/10.1016/B978-0-12-


381960-4.00005-X

Tobergte, D. R., & Curtis, S. (2013). Labview for Engineers. Journal of Chemical Information and Modeling
(Vol. 53, pp. 1689–1699). https://doi.org/10.1017/CBO9781107415324.004

National Instruments Coorporation. (2013). LabVIEW User Manual. Ni.Com.

Anexos

Vous aimerez peut-être aussi