Implementacion de Arquitecturas de Programacion en NI LabVIEW
-
Upload
oscar-torres -
Category
Documents
-
view
92 -
download
3
Transcript of Implementacion de Arquitecturas de Programacion en NI LabVIEW
![Page 1: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/1.jpg)
mexico.ni.com
![Page 2: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/2.jpg)
mexico.ni.com
Implementación de Arquitecturas de Programación en NI LabVIEW
<Name> Ingeniero de Aplicaciones
National Instruments
![Page 3: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/3.jpg)
3 mexico.ni.com
¿Por qué debo usar uno? Ahorra tiempo y mejora la longevidad, escalabilidad y legibilidad de un
código.
Definición: Una solución bien establecida para un problema común
¿Qué es un patrón de diseño?
• Plantilla o arquitectura basada en LabVIEW • Altamente conocida y aceptada • Fácil de reconocer
![Page 4: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/4.jpg)
4 mexico.ni.com
![Page 5: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/5.jpg)
5 mexico.ni.com
Beneficios de Usar un Patrón de Diseño Simplifica el proceso de desarrollo
• Los desarrolladores puede entender fácilmente un código • No es necesario “reinventar la rueda” • Proveen soluciones definidas para problemas comunes
Confiabilidad • Muchas de ellas han sido utilizadas por años – son “están
probadas” • Comparte o utiliza un código creado en la comunidad de
desarrolladores y ahorra tiempo y esfuerzo.
![Page 6: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/6.jpg)
6 mexico.ni.com
El Comienzo: ¿Cómo Elijo un Patrón de Diseño?
• Identificar el aspecto más importante de su aplicación: • Procesos que requieren disociación • Código limpio y fácil de leer • Componentes de funciones criticas
• Seleccione una plantilla base con potencial para mejorar.
![Page 7: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/7.jpg)
mexico.ni.com
Máquina de Estados
Necesito ejecutar una secuencia de eventos, pero el orden esta determinado de manera interactiva.
![Page 8: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/8.jpg)
8 mexico.ni.com
Transition Code
Cómo funciona
FIRST STATE
FIRST STATE
NEXT STATE
Step Execution
Shift registers usados para llevar el estado
Estructura Case contiene un caso para cada estado
Código de transición determina el siguiente estado en base a los resultados de la ejecución del paso
![Page 9: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/9.jpg)
9 mexico.ni.com
INITIALIZING
EXITING
WAITING
ACCEPTING CHANGE
DISTRIBUTING CHANGE
money deposited
deposited < .50 cents
deposited >=
.50 cents
return change pressed
VENDING
Máquina Expendedora con NI LabVIEW
![Page 10: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/10.jpg)
10 mexico.ni.com
INITIALIZING
EXITING
WAITING
ACCEPTING CHANGE
DISTRIBUTING CHANGE
money deposited
deposited < .50 cents
deposited >=
.50 cents
return change pressed
VENDING
Máquina Expendedora con NI LabVIEW
![Page 11: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/11.jpg)
11 mexico.ni.com
INITIALIZING
EXITING
WAITING
ACCEPTING CHANGE
DISTRIBUTING CHANGE
money deposited
deposited < .50 cents
deposited >=
.50 cents
return change pressed
VENDING
Máquina Expendedora con NI LabVIEW
![Page 12: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/12.jpg)
12 mexico.ni.com
INITIALIZING
EXITING
WAITING
ACCEPTING CHANGE
DISTRIBUTING CHANGE
money deposited
deposited < .50 cents
deposited >=
.50 cents
return change pressed
VENDING
Máquina Expendedora con NI LabVIEW Ejercicio 1:
![Page 13: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/13.jpg)
13 mexico.ni.com
Opciones de Código de Transición
Step Execution
Step Execution
Step Execution
![Page 14: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/14.jpg)
14 mexico.ni.com
WAITING ACCEPTING CHANGE
VENDING
DISTRIBUTING CHANGE
ACCEPTING SODA
SELECTION
money deposited
soda button pressed
deposited <
.50 cents
deposited >=
.50 cents
return change pressed
Ejercicio 2: Agregar Lógica de Transición al Nuevo Estado
INITIALIZING
EXITING
![Page 15: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/15.jpg)
mexico.ni.com
Interfaz de Usuarios Basada en Eventos
Estoy sondeando acciones del usuario en la interfaz, lo cual hace más lenta mi aplicación y en ocasiones no logro detectar esas acciones.
![Page 16: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/16.jpg)
16 mexico.ni.com
Cómo funciona
1. El SO transmite los eventos (mouse click, teclado) hacia las aplicaciones
2. Estructura de eventos captura los eventos registrados y ejecuta el caso apropiado
3. Estructura eventos regresa información del evento al caso
4. Estructura eventos almacena en una cola los eventos que ocurran mientras esta ocupada en otro caso
![Page 17: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/17.jpg)
17 mexico.ni.com
Ejercicio 3: Máquina Expendedora con Programación Basada en Eventos
![Page 18: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/18.jpg)
18 mexico.ni.com
Recomendaciones Casos de Uso • UI: Conserva el uso del CPU • UI: Asegura que no se perderá un evento • Dirigir procesos de esclavos Consideraciones • Estructura de eventos elimina el determinismo • Evite colocar 2 estructuras de eventos en un ciclo while • Recuerde leer la terminal de control boleano en el caso
configurado para ese cambio de valor (value change)
![Page 19: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/19.jpg)
mexico.ni.com
Productor/Consumidor
Tengo dos procesos que necesitan ejecutarse al mismo tiempo. Necesito asegurarme que uno de ellos, no haga más lento al otro.
![Page 20: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/20.jpg)
20 mexico.ni.com
Cómo funciona
• Ciclo maestro indica a uno o mas esclavos cuando pueden ejecutarse
• Permite ejecución asíncrona de ciclos
• La independencia de datos rompe el flujo de datos y permite el multithreading
• Desliga los procesos
Thread 1
Thread 2
Thread 3
![Page 21: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/21.jpg)
21 mexico.ni.com
Ejercicio 4: Máquina Expendedora con Arquitectura de Programación Productor / Consumidor
![Page 22: Implementacion de Arquitecturas de Programacion en NI LabVIEW](https://reader034.fdocuments.mx/reader034/viewer/2022042505/545f4b85af795944708b4d20/html5/thumbnails/22.jpg)
mexico.ni.com
¿Preguntas?
<NAME> Ingeniero de Aplicaciones
National Instruments