el 10-06-2009 05:22 PM
Que tal, estoy realizando un VI el cual adquiere datos por medio de NI SCXI 1600 y que guarda en un archivo de excell, mi problema surge cuando dentro de este mismo VI por medio de push buttons mando a llamar el panel frontal de un subVI, este subVI adquiere datos por medio del puerto serial y estos los guarda también en un archivo de excell (diferente al anteriormente mencionado), lo que sucede es, que al abrir el subVI, los datos adquiridos por el VI principal no son guardados, también mando a llamar el panel frontal de un subVI con el cual controlo la apertura de una válvula por medio de la tarjeta PCI-6704 y de igual forma al abrir el subVI los datos adquiridos por el VI principal no son guardados.
¿Alguna idea de cual pueda ser la causa de que esto suceda? Mi intención es que el programa principal siga corriendo y guardando los datos, aun cuando los subVI sean mandados a llamar.
De antemano gracias por la ayuda.
¡Resuelto! Ir a solución.
el 10-06-2009 05:29 PM
el 10-06-2009 05:43 PM
Como decirlo...
No capte muy bien tu explicación. Lo que sucede es que al abrir el subVI que guarda en un archivo excell diferente al del VI principal, el archivo de excel del VI principal deja de guardar datos hasta que finalizo el subVI que mando a llamar. Por cierto, estoy usando la versión 8.2.1 de LabVIEW.
Saludos.
el 10-07-2009 10:14 AM
Que tal C. Yair;
Una pregunta, ¿Tienes algún ciclo while dentro de tu subVI? porque podría estar ejecutándose y no salir del subVI hasta que no salga del ciclo. También ¿Podrías anexar tus VIs para que pueda tener una mejor idea de lo que puede estar causando este comportamiento?
Suerte
el 10-07-2009 10:41 AM
Si, si tiene un ciclo while el subVI, es para que se ejecute indefinidamente hasta que con un botón de paro lo detenga, algo así como un ciclo while "infinito", ya lo veras cuando abras los VI que adjunto. El primero lo dice su nombre, es el principal, y los siguientes son los subVI.
Gracias por la atención Rialter.
el 10-07-2009 11:39 AM
Que tal C. Yair;
Checando los VIs que me mandaste lo más probable es que tu subVI sea el que no está permitiendo que el ciclo principal se siga ejecutando. Hay dos opciones que te podrían ayudar a resolver este problema, la primera sería quitar los ciclos while de tus subVIs y utilizar la temporización de tu VI principal para que corran y si no se pueden quitar dichos ciclos te recomendaría que colocaras un ciclo while independiente para tus subVIs en el programa principal para que el ciclo principal pueda seguir corriendo en paralelo con tus subVIs y puedas escribir ambos archivos al mismo tiempo.
Espero que la información te sea de ayuda.
Suerte
el 10-08-2009 09:23 AM
el 10-08-2009 10:44 AM
Que tal C. Yair;
A lo que me refería con utilizar la temporización del VI principal es que quitaras el ciclo del subVI y que utilizaras el mismo ciclo que ya estaba en tu VI principal para los shift Registers y demás que necesites dentro de tu SubVI. El único detalle con ésto es que tu subVI no estará corriendo completamente en paralelo con tu ciclo principal.
En el caso de utilizar otros ciclos para los subVI sería como se muestra en la figura de abajo, un ciclo para tu código principal y otro ciclo para poder estar llamando a tus subVIs (o un ciclo para cada subVI si necesitas qu se corran en paralelo entre ellos también).
Espero que la información te sea de ayuda.
Suerte
el 10-13-2009 01:46 PM
el 10-15-2009 08:45 AM
Que tal C. Yair;
Según estuve observando en tu código, no colocaste ninguna función de temporización en tus ciclos; es probable que por ello el desempeño no sea el óptimo, ésto es porque las funciones de temporización le permiten al procesador encargarse de otras tareas, y si no le estas dando esta posibilidad al procesador puede estar dedicando mucho más tiempo a cierto ciclo que a los demás y por lo tanto no realizar adquisiciones como comentas o tener un comportamiento no adecuado. Te envío un par de documentos que explican más a fondo como utilizar las funciones de temporización.
http://digital.ni.com/public.nsf/allkb/12B2EA9AD5B265AD86256257004DD8E2?OpenDocument
http://zone.ni.com/devzone/cda/tut/p/id/4120
Espero que la información te sea de ayuda
Suerte