Está en la página 1de 31

Trucos para Mejorar el Desempeo de

LabVIEW

Contenido
Programacin Manejada por Eventos
Administracin de Memoria
Carga Dinmica de VIs
Conversiones de Tipo
Reubicacin de Memoria

Desempeo de Interfaz del Usuario


Anlisis Automatizado de Cdigo Esttico

Programacin con Eventos en LabVIEW

Ejemplos de Eventos de LabVIEW


Presionar el ratn
Presionar una tecla del teclado
Interaccin del usuario con la
pantalla principal

Estructura de Eventos en LabVIEW


Cmo funciona?
Duerme hasta ocurrir un evento
Ejecuta el caso del evento apropiado
No realiza ciclos implcitamente

Ventajas
No hace polling (no se sobrecarga al procesador)
Garanta de captacin de todos los eventos
Los casos de eventos se ejecutan en el orden en que
ocurren

Eventos de Notificacin versus Eventos de


Filtracin
Los eventos se dividen en dos categoras: Filtracin y Notificacin
Los eventos de notificacin son las notificaciones despus de
ocurridos los hechos
Los eventos de filtracin le ayudan a cambiar los datos del evento a
medida que ocurren o bien, descartar el evento por completo
Eventos de teclas, eventos de ratn, eventos del men, y el evento para cerrar la
ventana principal son todos eventos de filtracin.

Ejemplos de eventos de filtracin:


Hacer controles tipo string para mapear maysculas a minsculas
Crear dilogos de confirmacin cuando el usuario intente cerrar la ventana
principal

Ejemplo: Estructura del Evento LabVIEW

Utilice Plantillas para la Estructura del


Evento

Mquina de Estados
Arquitectura de Ciclos Paralelos
Manejador de Mensajes
Productor/Consumidor (Datos)
Manejador de Eventos de Interfaz del Usuario
Productor/Consumidor (Eventos)

Combine o expanda las arquitecturas como se necesite

Pasos para Administrar la Memoria


1. Separe los VIs en subVIs
2. Analice los VIs para localizar problemas
3. Cargue dinmicamente los subVIs cuando sea
apropiado
4. Reduzca copias de datos y reubicacin de
memoria
5. Minimice las actualizaciones del panel frontal

Analice el Desempeo y Memoria del VI


Analice el tiempo de ejecucin y uso de memoria
del VI

ToolsProfilePerformance and Memory

Jerarqua Tpica de un VI
VI de Alto Nivel

VIs de Adquisicin de Datos

VIs de E/S a
Archivos

Tareas Comunes. Cargar con VI.

VI de
Calibracin

VI para Guardar
Reportes

Tareas Proco Frecuentes.


Cargar segn se requiera.

Carga Dinmica Programtica de VI


1.
1 Abrir Referencia al VI
2 Call by Reference Node
2.
3.
3 Cerrar Referencia al VI
1

Cargar Configurable LabVIEW 8.20


1

Ejemplo: Cargar Dinmicamente los VIs

Mejoras al Call Library Node


Carga y descarga dinmicamente los DLLs en
LabVIEW 8.20.

Conversiones de Tipo
Los puntos de coercin significan dos tipos de
datos numricos diferentes unidos al mismo punto.
Coerciones en LabVIEW requieren copia de datos
Coerciones que involucran grandes arreglos requieren
de mucha memoria

Conversin de Datos Recomendada


La mejor solucin es convertir un nmero aleatorio
a medida que es creado
Evita la conversin de un gran bfer de datos

Configurando Puntos de Coercin


Tools>>Options>>Colors to change coercion dot color

Construyendo Arreglos y Strings


Reubicar memoria es costoso cuando se realiza
muy seguido
Deben limitarse las funciones que tienden a
causar un reacomodo de memoria
Build array
Concatenate strings

Construya un Arreglo en 18.7 Segundos


Muy lento debido a que cada iteracin involucra
reubicar memoria

Construya un Arreglo en 0.42 Segundos


Mucho ms rpido ya que solo ubica memoria una
vez

Construya un Arreglo en 0.40 Segundos


El mtodo ms rpido y tambin el ms limpio

Ejemplo: Asignacin de la Memoria en


LabVIEW

Mostrar la Asignacin del Buffer


Show Buffer Allocations despliega los lugares
donde ocurren las ubicaciones de la memoria

Desempeo de la Interfaz del Usuario

Los nodos de propiedades e invocacin de


mtodos para controles e indicadores pueden
alentar una aplicacin
1. Forzan un cambio de threads al thread de UI
2. Puede forzar la actualizacin de UI al completar el
proceso
3. Cambio al thread original

Ejemplo: Cambios de Threads

Mtodo Preferido de Actualizacin de la IU


Use Defer Panel Updates para deshabilitar el
panel frontal durante mltiples actualizaciones
1

Referencia al IV

2
3

Referencia del Panel


Deshabilitar el Panel

4
5

Hacer Cambios
Habilitar el Panel

LabVIEW VI Analyzer
Herramienta adicional para
LabVIEW*
Automatice el anlisis de
cdigo con ms de 60 pruebas
configurables
Desempeo
Estilo

Inspeccione fallas de forma


interactiva
Genere reportes
personalizados
* Incluido en el NI Developer Suite Core

Pruebas de Desempeo con VI Analyzer

Arreglos y Strings en Ciclos Cdigo en desuso


Puntos de Coercin
Terminales Conectadas en
Depuracin habilitada
Subdiagramas
Espera en Ciclos While
Uso de la Estructura de
Tamao del VI
Secuencia
Valores Predefinidos del
Arreglo
Objetos Escondidos en
Estructuras
Variables Globales y Locales

Ejemplo: VI Analyzer Toolkit

Resumen
Utilice la programacin basada en eventos para minimizar
el uso del procesador
Cargue dinmicamente los VIs para mejorar el
desempeo de la memoria y tiempo inicial de carga
Reduzca la reasignacin de memoria e intercambio de
threads para mejorar la velocidad de ejecucin
Localice conflictos de desempeo con la inspeccin
automatizada del cdigo

También podría gustarte