implementacion de arquitecturas de programacion en ni labview
Post on 08-Nov-2014
97 Views
Preview:
TRANSCRIPT
mexico.ni.com
mexico.ni.com
Implementación de Arquitecturas de Programación en NI LabVIEW
<Name> Ingeniero de Aplicaciones
National Instruments
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
4 mexico.ni.com
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.
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.
mexico.ni.com
Máquina de Estados
Necesito ejecutar una secuencia de eventos, pero el orden esta determinado de manera interactiva.
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
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
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
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
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:
13 mexico.ni.com
Opciones de Código de Transición
Step Execution
Step Execution
Step Execution
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
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.
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
17 mexico.ni.com
Ejercicio 3: Máquina Expendedora con Programación Basada en Eventos
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)
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.
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
21 mexico.ni.com
Ejercicio 4: Máquina Expendedora con Arquitectura de Programación Productor / Consumidor
mexico.ni.com
¿Preguntas?
<NAME> Ingeniero de Aplicaciones
National Instruments
top related