22
mexico.ni.com

Implementacion de Arquitecturas de Programacion en NI LabVIEW

Embed Size (px)

Citation preview

Page 1: Implementacion de Arquitecturas de Programacion en NI LabVIEW

mexico.ni.com

Page 2: Implementacion de Arquitecturas de Programacion en NI LabVIEW

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

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

4 mexico.ni.com

Page 5: Implementacion de Arquitecturas de Programacion en NI LabVIEW

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

mexico.ni.com

¿Preguntas?

<NAME> Ingeniero de Aplicaciones

National Instruments