el 10-02-2008 06:04 AM
10-02-2008 10:09 AM - editado 10-02-2008 10:09 AM
Hola Munico en general siempre te conviene más utilizar las estructuras básicas de LabVIEW como un ciclo for normal, a depender de Ciclos for dentro del Mathscriptnode.
Cuando tu cableas un arreglo a un ciclo for se activa la opción de Auto-indexado esto te ayuda mucho para realizar manipulación de arreglos con estos. Esta opción la puedes dejar deshabilitada para poder realizar operaciones con tu arreglo completo dentro del Ciclo. Te anexo un ejemplo modificando cambiando dos de los scripts que estas utilizando por funciones nativas de LabVIEW, con esto deberías de ver una gran diferencia en Velocidad en tu Programa.
También por ejemplo en el Frame 8 de tu programa no tienes ningún valor asignado para P(1) ya que empiezas en P(1+i) y esto lo haces en varios de los casos, esto podría estar causando el error.
Otra cosa es que en general no es bueno que el programa depende de una Flat o Stacked Sequence. Aqui el Código no puede ser interrumpido hasta que termina toda la secuencia. Siempre que se puede lo ideal es remplazarlo por una maquina de estado. La máquina de estado es una arquitectura de LabVIEW para trabajar en forma secuencial o estados y en base a la condición que tengas, salte al estado que necesites. Dada la característica dinámica de la máquina de estado, este salto no tiene que ser lineal sino puede saltar directo al estado que necesitas.
Puedes encontrar un témplate de la máquina de estado en LabVIEW, en New.. from template y ahí esta standard state machine.
También puedes encontrar un poco más de información en la siguiente dirección:
http://zone.ni.com/devzone/cda/tut/p/id/3024
http://zone.ni.com/devzone/cda/epd/p/id/3063
Una Versión más avanzada de la state machine:
http://zone.ni.com/devzone/cda/epd/p/id/1959