Sie sind auf Seite 1von 22

mexico.ni.

com

Implementacin de Arquitecturas de Programacin en NI LabVIEW

<Name> Ingeniero de Aplicaciones National Instruments


mexico.ni.com

Qu es un patrn de diseo?
Definicin: Una solucin bien establecida para un problema comn Plantilla o arquitectura basada en LabVIEW Altamente conocida y aceptada Fcil de reconocer

Por qu debo usar uno?


Ahorra tiempo y mejora la longevidad, escalabilidad y legibilidad de un cdigo.

mexico.ni.com

mexico.ni.com

Beneficios de Usar un Patrn de Diseo


Simplifica el proceso de desarrollo

Los desarrolladores puede entender fcilmente un cdigo No es necesario reinventar la rueda Proveen soluciones definidas para problemas comunes

Confiabilidad

Muchas de ellas han sido utilizadas por aos son estn probadas Comparte o utiliza un cdigo creado en la comunidad de desarrolladores y ahorra tiempo y esfuerzo.

mexico.ni.com

El Comienzo: Cmo Elijo un Patrn de Diseo?

Identificar el aspecto ms importante de su aplicacin:


Procesos que requieren disociacin Cdigo limpio y fcil de leer Componentes de funciones criticas

Seleccione una plantilla base con potencial para mejorar.

mexico.ni.com

Mquina de Estados
Necesito ejecutar una secuencia de eventos, pero el orden esta determinado de manera interactiva.

mexico.ni.com

Cmo funciona
Estructura Case contiene un caso para cada estado Cdigo de transicin determina el siguiente estado en base a los resultados de la ejecucin del paso

FIRST STATE Step Execution


Shift registers usados para llevar el estado

Transition Code FIRST STATE NEXT STATE

mexico.ni.com

Mquina Expendedora con NI LabVIEW


money deposited

WAITING INITIALIZING
deposited < .50 cents

ACCEPTING CHANGE

EXITING

return change pressed

DISTRIBUTING CHANGE VENDING


mexico.ni.com

deposited >= .50 cents

Mquina Expendedora con NI LabVIEW


money deposited

WAITING INITIALIZING
deposited < .50 cents

ACCEPTING CHANGE

EXITING

return change pressed

DISTRIBUTING CHANGE VENDING


mexico.ni.com

deposited >= .50 cents

10

Mquina Expendedora con NI LabVIEW


money deposited

WAITING INITIALIZING
deposited < .50 cents

ACCEPTING CHANGE

EXITING

return change pressed

DISTRIBUTING CHANGE VENDING


mexico.ni.com

deposited >= .50 cents

11

Ejercicio 1: Mquina Expendedora con NI LabVIEW


money deposited

WAITING INITIALIZING
deposited < .50 cents

ACCEPTING CHANGE

EXITING

return change pressed

DISTRIBUTING CHANGE VENDING


mexico.ni.com

deposited >= .50 cents

12

Opciones de Cdigo de Transicin


Step Execution

Step Execution

Step Execution

mexico.ni.com

13

Ejercicio 2: Agregar Lgica de Transicin al Nuevo Estado


INITIALIZING WAITING money deposited ACCEPTING CHANGE

EXITING return change pressed

soda button pressed

deposited < .50 cents

ACCEPTING SODA SELECTION DISTRIBUTING CHANGE deposited >= .50 cents

VENDING
mexico.ni.com
14

Interfaz de Usuarios Basada en Eventos


Estoy sondeando acciones del usuario en la interfaz, lo cual hace ms lenta mi aplicacin y en ocasiones no logro detectar esas acciones.

mexico.ni.com

Cmo funciona
1.

2.

3.

4.

El SO transmite los eventos (mouse click, teclado) hacia las aplicaciones Estructura de eventos captura los eventos registrados y ejecuta el caso apropiado Estructura eventos regresa informacin del evento al caso Estructura eventos almacena en una cola los eventos que ocurran mientras esta ocupada en otro caso

mexico.ni.com

16

Ejercicio 3: Mquina Expendedora con Programacin Basada en Eventos


mexico.ni.com

17

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

18

Productor/Consumidor
Tengo dos procesos que necesitan ejecutarse al mismo tiempo. Necesito asegurarme que uno de ellos, no haga ms lento al otro.

mexico.ni.com

Cmo funciona

Ciclo maestro indica a uno o mas esclavos cuando pueden ejecutarse Permite ejecucin asncrona de ciclos La independencia de datos rompe el flujo de datos y permite el multithreading Desliga los procesos

Thread 1

Thread 2

Thread 3

mexico.ni.com

20

Ejercicio 4: Mquina Expendedora con Arquitectura de Programacin Productor / Consumidor


mexico.ni.com
21

Preguntas?
<NAME> Ingeniero de Aplicaciones National Instruments

mexico.ni.com