Documentos de Académico
Documentos de Profesional
Documentos de Cultura
com
Arquitecturas de Programación
Avanzadas en NI LabVIEW
Arturo Gómez
Ingeniero de Campo
National Instruments
mexico.ni.com
Agenda de Hoy…
• Máquina de Estados
• Productor/Consumidor
mexico.ni.com 3
¿Qué es un Patrón de Diseño?
• Plantilla o arquitectura basada en LabVIEW
• Altamente conocida y aceptada
• Fácil de reconocer
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.
mexico.ni.com 4
mexico.ni.com 5
El Comienzo: ¿Cómo Elijo un Patrón de Diseño?
• Identificar el aspecto más importante de su aplicación:
Escalable: Es sencillo es agregar funciones N + 1?
Modular: La aplicación esta dividida en componentes
Reusable: El código es genérico a esta aplicación y le permite reutilizarlo
para proyectos futuros?
Extensible: Qué tan complicado es agregar nuevas funcionalidades?
Simple: Cuál es la solución más sencilla que satisfaga todos los
requerimientos y criterios de la aplicación?
mexico.ni.com 6
Precaución
Usted puede complicar su aplicación si utiliza
erróneamente un patrón de diseño complejo
mexico.ni.com 7
Antes de Empezar, Usted debe estar familiarizado
con…
• Ciclos
• Shift Registers
• Estructuras Case
• Constantes Enumeradas
• Estructuras de eventos
mexico.ni.com 8
Máquina de Estados
Necesito ejecutar una secuencia de eventos, pero el orden
esta determinado de manera interactiva.
mexico.ni.com
Máquina Expendedora de Refrescos
Initialize No Input
Wait
Nickel Deposited
Change Quarter Deposited
Requested Dime Deposited
Total <50
Total <50 Total <50
Change Quarter
Nickel
Dime
Total ≥50 Total ≥50
Total ≥50
Total >50
Vend
Total = 50
Exit
Costo 50 centavos
mexico.ni.com 10
Desglose y Funcionamiento del Patrón
Código de transición determina el siguiente
Estructura Case contiene un caso para cada estado en base a los resultados de la
estado ejecución del paso
FIRST STATE
Step Execution
Transition Code
NEXT STATE
FIRST STATE
mexico.ni.com 11
Opciones de Código de Transición
Step
Execution
Step Execution
Step
Execution
mexico.ni.com 12
Máquina de Estados
DEMO
mexico.ni.com 13
Recomendaciones de Uso
Casos de Uso
• Interfaces de usuario
• Los datos determinan la secuencia de ejecución
Consideraciones
• Creación de una máquina de estados requiere que el
diseñador defina todos los posibles estados
previamente
mexico.ni.com 14
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.
mexico.ni.com
Fundamentos
Programación basada en un procedimiento
• Ejecuta una serie de instrucciones en secuencia
• Requiere estar sondeando para detectar eventos
• No puede determinar el orden de múltiples eventos
mexico.ni.com 16
Desglose y Funcionamiento del Patrón
mexico.ni.com 17
Interfaz de Usuario con Eventos
DEMO
mexico.ni.com 18
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 19
Productor/Consumidor
Tengo dos procesos que necesitan ejecutarse al mismo tiempo.
Necesito asegurarme que uno de ellos, no haga más lento al
otro.
mexico.ni.com
Desglose y Funcionamiento del Patrón
1. Ciclo maestro indica a uno o
mas esclavos cuando pueden Thread 1
ejecutarse
2. Permite ejecución asíncrona
de ciclos
3. La independencia de datos
rompe el flujo de datos y Thread 2
permite el multithreading
4. Desliga los procesos
Thread 3
mexico.ni.com 21
Comunicación de ciclos
• Variables
• Notificadores
• Colas (Queues)
• Semáforos
mexico.ni.com 22
COLAS (QUEUES)
Agregar elementos al Queue Extraer elementos del Queue
Referencia al queue existente en memoria
mexico.ni.com 23
Productor / Consumidor
mexico.ni.com 24
Productor/Consumidor
DEMO
mexico.ni.com 25
Programación Orientada a
Objetos
mexico.ni.com
¿Por qué Aprender POO?
Es el primer paso para que usted desarrolle código que…
mexico.ni.com 27
¿Qué es Programación Orientada a Objetos?
• Un enfoque diferente para programar
mexico.ni.com 28
Comparando los Enfoques de Programación
Orientado a la tarea Orientado al objeto
• Se concentra en el proceso • Se concentra en los datos
mexico.ni.com 29
Propiedades y Métodos en LabVIEW
• Las propiedades en LabVIEW son un clúster de tipos de
datos comúnes
• Los accesas con Bundle/Unbundle
• Los métodos de clase en LabVIEW son sólo VIs
mexico.ni.com 30
¿Qué es una Clase en LabVIEW?
• Un cluster glorificado
• Un tipo de dato definido por el usuario
• Un tipo de Librería de Proyecto
mexico.ni.com 31
Creando una Clase en LabVIEW
• Las clases en LabVIEW se administran en un proyecto
Clase
Círculo
Clase
Cuadrado
Datos Privados
de la Clase
Método Draw()
mexico.ni.com 32
Qué es un “Objeto” en LabVIEW
• Una instancia de la clase en el diagrama de bloques, es un objeto.
• Object data and methods are defined by the class
• El tipo de datos de un objeto es su clase
mexico.ni.com 33
Nuevo Framework para Sistemas Multi-Proceso
El Actor Framework esta diseñado para
aplicaciones grandes multi-proceso
mexico.ni.com 34
¿Qué es un Actor?
mexico.ni.com 35
Máquina de Estados con Queue
mexico.ni.com 36
Clúster y Nodo...
mexico.ni.com 37
… se convierte en Clase y Método
mexico.ni.com 38
… se convierte en Clase y Método
mexico.ni.com 39
El Mensaje y Estructura Case…
mexico.ni.com 40
… se Convierte en Clase y Enlace Dinámico
mexico.ni.com 41
Nuevo Actor Framework
DEMO
mexico.ni.com 42
Plantillas y Proyectos de Ejemplo en LabVIEW
mexico.ni.com 43
Enriquezca su Conocimiento con
Capacitación y Certificación
• El Camino Más Rápido para Incrementar
Habilidades y Productividad
• Certificación de NI: Valide su Experiencia
mexico.ni.com 44
Arturo Gómez
Ingeniero de Campo
National Instruments México
¿PREGUNTAS? arturo.gomez@ni.com
01 800 010 0793
mexico.ni.com 45
Disfrute el Resto del Día…
mexico.ni.com 46