Programacion Grafica con LabVIEW Sesion #8

Page 1

Por: Omar Gurrola

LabVIEW Sesión #8 (03/23/13)

www.proprojects.wordpress.com

Programacion Grafica con LabVIEW Sesion #8 Contenido Introducción: ................................................................................................................................................. 2 Metodología de Desarrollo de Software....................................................................................................... 2 Programación Secuencial (Sequential Programming): ................................................................................. 3 Programación Modular (Modular Programming): ........................................................................................ 4 Máquinas de Estados (Finite State Machine - FSM): .................................................................................... 5 Programación con Eventos (Events Programming): ..................................................................................... 8 Ejercicios ....................................................................................................................................................... 9 Referencias.................................................................................................................................................. 15


Por: Omar Gurrola

LabVIEW Sesión #8 (03/23/13)

www.proprojects.wordpress.com

Introducción: El enfoque de esta sección es: 

Arquitecturas de programación en LabVIEW. o Metodología de Desarrollo de Software. o Programación Secuencial (Sequential Programming) o Programación Modular (Modular Programming) o Máquinas de Estados (Finite State Machine) o Programación con Eventos (Events Programming)

Metodología de Desarrollo de Software. Antes de comenzar a programar debemos analizar y diseñar la aplicación. Debemos determinar que paradigma o arquitectura de programación es la más conviene (secuencial, modular, orientada a objetos, por eventos, máquina de estados, etc.) para permitir que nosotros mismo u otros desarrolladores modifiquemos el programa sin tener que desarrollarlo nuevamente. Realizar correctamente este paso puede garantizar la realización de un software exitoso. Se debe tener en claro que no existe un paradigma de programación que pueda resolver todos los problemas, por lo que para cada problema se debe estudiar y determinar qué tipo de programación es el más adecuado. En los siguientes pasos se define la metodología de desarrollo de software: 1. Definir el problema (escenario): Es el problema que se desea resolver 2. Identificar los requerimientos: Determinar las entradas y salidas, así como requerimientos adicionales. 3. Diseñar el algoritmo: Se puede utilizar diagrama de flujo y/o diagrama de estados. 4. Implementar el diseño: Se desarrolla el código para implementar el algoritmo. Aquí es donde se debe definir la arquitectura de programación más adecuada según el problema a resolver. 5. Probar y verificar la implementación: Esta etapa es muy importante ya que nos ayuda a verificar el correcto funcionamiento del sistema, así como detectar errores para corregirlos. 6. Documentación: Realizar una buena documentación del software facilitara futuro mantenimiento y mejoras.


Por: Omar Gurrola

LabVIEW Sesión #8 (03/23/13)

www.proprojects.wordpress.com

Programación Secuencial (Sequential Programming): La programación secuencial significa la ejecución de instrucciones una después de otra. Lenguajes como C, Basic, etc. trabajan en este modo.

LabVIEW a diferencia de estos lenguajes trabaja con programación gráfica y por flujo de datos lo que significa que mientras alguna porción del programa no tenga el dato necesario este no se ejecutara y esperada a que las otras porciones realicen su operación para obtener ese dato e instrucciones que no estén ligadas se ejecutaran en paralelo. En la siguiente imagen se muestran dos operaciones las cuales se realizaran al mismo tiempo por no estar ligadas.

Sin embargo se puede implementar ejecución secuencial en LabVIEW: 1. Ejecución por flujo de datos: Conectando los datos en la secuencia requerida, esto obliga a que se ejecute primero la suma y después la resta.


Por: Omar Gurrola

LabVIEW Sesión #8 (03/23/13)

www.proprojects.wordpress.com

2. Utilizando Flat Sequence: Donde el primer marco se ejecutara primero y así continuamente.

Programación Modular (Modular Programming): La programación modular consiste en dividir un programa en módulos o subprogramas (funciones) con el fin de que el programa sea más legible y manejable. Este paradigma de programación utiliza el dicho divide y vencerás donde se divide un programa complejo en subprogramas simples. Básicamente es una evolución de la programación estructurada. LabVIEW trabaja con este paradigma de programación ya que toda la funcionalidad está basada en funciones y módulos. Algunas funciones de LabVIEW:


Por: Omar Gurrola

LabVIEW Sesión #8 (03/23/13)

www.proprojects.wordpress.com

Algunos módulos de LabVIEW y también pueden ser los creados por el usuario (subVIs):

Ejemplo de un programa modular:

Máquinas de Estados (Finite State Machine - FSM): Aunque muchos problemas se pueden resolver únicamente utilizando secuencia y módulos hay otros casos donde se requieren métodos adicionales de programación como las máquinas de estado. Este tipo de programación es muy utilizada cuando se diseñan programas para controlar HW o dispositivos (máquinas). Las máquinas de estados consisten en un número finito de estados y una función de transición que lleva al siguiente estado.


Por: Omar Gurrola

LabVIEW Sesión #8 (03/23/13)

www.proprojects.wordpress.com

Existen varias máquinas de estados, pero las más utilizadas son: 

La máquina de Moore (Moore Machine): Las salidas dependen únicamente por el estado actual.

La máquina de Mealy (Mealy Machine): Las salidas dependen por su estado y entrada actual.

Debido a que permite una mejor estructuración del programa presenta las siguientes ventajas:     

Se puede cambiar el orden de la secuencia sin mucha dificultad. Se puede repetir un estado cuantas veces se requiera. Ejecutar un estado cuando se cumplan ciertas condiciones. Se puede detener el programa inmediatamente sin esperar llegar al fin de la secuencia. Si se elabora el diagrama de transición de estados es muy fácil implementarlo en LabVIEW.

Notas sobre las máquinas de estados:     

Utilícelas donde existen estados identificables. Cada estado puede llevar a uno o varios estados, así como terminar el flujo. Se basa en las entradas o evaluaciones de estados para determinar el siguiente estado. Se utilizan comúnmente para interfaces de usuario. También se utilizan para aplicaciones que realizan un proceso de prueba, donde un estado representa cada segmento del proceso. Dependiendo de los resultados de cada prueba (estado) un estado diferente puede ser invocado, resultado en un análisis profundo del proceso que se esté probando.


Por: Omar Gurrola

LabVIEW Sesión #8 (03/23/13)

www.proprojects.wordpress.com

Las máquinas de estados tienen tres componentes: 1. Estado: Representa el estado por el cual puede pasar el sistema al satisfacer una condición, acción o evento. 2. Evento: Puede ser una condición que puede generar un cambio de estado. 3. Acción: Es la respuesta que se dará al presentarse un evento. Los componentes principales de una máquina de estados en LabVIEW son: 1. Dato tipo enum o string que tendrá todos los estados de la máquina. 2. Una estructura case que tendrá el código de cada estado y el código de transición al siguiente estado. 3. Un ciclo while que permitirá que la maquina ejecute continuamente el siguiente estado. 4. Un shift register que tendrá el siguiente estado, el cual será pasado por el while.


Por: Omar Gurrola

LabVIEW Sesión #8 (03/23/13)

www.proprojects.wordpress.com

Programación con Eventos (Events Programming): Los programas basados en eventos permiten la interacción directa entre el usuario y el panel frontal, al igual que otras actividades asíncronas. El funcionamiento de un programa con eventos es muy sencillo ya que solamente se ejecuta el subdiagrama correspondiente cuando ocurre uno o más eventos registrados. Para utilizar eventos con LabVIEW se utiliza una estructura de evento (Event Structure) como en la siguiente figura:

A la estructura de eventos se pueden añadir tantos eventos como se requiera, incluso si más de un evento llamara a un subdiagrama. También se pueden borrar u organizar para facilitar su manejo. No todos los eventos que tiene LabVIEW pueden ser utilizados en todos los controles. Algunos de los eventos que puede manejar LabVIEW son: relacionados con el mouse, teclado, cambios de estado, interrupción externa, triggers, definidos por el de usuario. Los controles pertenecientes a un evento deben ir dentro de su subdiagrama sin ser cableado, ya que fueron programados. Los botones deben establecerse como latch ya que no deben quedarse aplastados o la aplicación se congelada.


Por: Omar Gurrola

LabVIEW Sesión #8 (03/23/13)

www.proprojects.wordpress.com

Ejercicios 1. Realizar un programa con FSM que realice lo siguiente: 1.1. Adquirir una temperatura por el AI0 del DAQ con un periodo de muestreo de 1 segundo en un SubVI. 1.2. Analizar la temperatura y determinar si se encuentra dentro del rango MIN y MAX *C y marcar alerta si esta fuera del rango establecido con un SubVI. 1.3. Graficar y guardar la temperatura leída. 1.4. Realizar todo en un proyecto de LabVIEW. Estado Actual: Adquisición Análisis Almacenar Checar Tiempo

Entrada: Warning = TRUE Warning = FALSE ET = TRUE ET = FALSE Stop = TRUE

Siguiente Estado: Análisis Almacenar Checar Tiempo Checar Tiempo Adquisición Checar Tiempo -

Descripción: Adquirir temperatura cada 1 segundo. Temperatura fuera del rango. Temperatura dentro del rango. Guarda la temperatura en un archivo. Tiempo transcurrido completo. Tiempo transcurrido incompleto. Final.


Por: Omar Gurrola

LabVIEW Sesi贸n #8 (03/23/13)

www.proprojects.wordpress.com


Por: Omar Gurrola

LabVIEW Sesi贸n #8 (03/23/13)

www.proprojects.wordpress.com


Por: Omar Gurrola

LabVIEW Sesi贸n #8 (03/23/13)

www.proprojects.wordpress.com

1.5. Realizar una calculadora con eventos y que cada bot贸n realice una de las siguientes operaciones entre A y B: A+B, A-B, A*B, A/B, Stop.


Por: Omar Gurrola

LabVIEW Sesi贸n #8 (03/23/13)

www.proprojects.wordpress.com


Por: Omar Gurrola

LabVIEW Sesi贸n #8 (03/23/13)

www.proprojects.wordpress.com


Por: Omar Gurrola

LabVIEW Sesión #8 (03/23/13)

www.proprojects.wordpress.com

Referencias 

Ing. Israel Carrión, “LabVIEW Nivel I”, http://www.slideshare.net/idcarrion/grficas-en-labview

Joel D. Schipper, “LECTURE #16: Moore & Mealy Machines”, http://www.mil.ufl.edu/3701/classes/joel/16%20Lecture.pdf

David_L, “Scalable Architecture in LabVIEW”, https://decibel.ni.com/content/docs/DOC-22047


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.