el 05-14-2009 12:04 PM
Amigos, estoy haciendo una aplicacion con vb.net labview basic stamp, la cuestion es que tengo un sensor omega que viene con coneccion rj45 osea cable de red
lo qye hago es que con el vb leo el sensor mediante una ocx que trajo el sensor inserto los datos en una hoja de excel y el labview abre dicha hoja lee los datos envia los datos al bs2 y este realiza acciones,
la cuestion es que veo que el labview se infla demasiado consume muchos recursos lo mismo el excel ya que no se si el labview al estar constantemente leyendo el archivo excel lo hace inflar la cuestion es que al cabo de unas horas consume toda la memoria
favor indicarme como puedo hacer que mi vi consuma menos recursos , cade decir que abro el archivo de excel uso un while para leer los datos del labview constantemente y pongo while
espero me ayuden saludod cordiales
JC
el 05-15-2009 10:00 AM
Hola Javier
Gracias por utilizar los foros de National Instruments. El consumo de memoria que estás experimentando se da por localidades de memoria que se reservan de manera cíclica, esta es la causa más común. Cuando trabajas con archivos esto puede ocurrir debido a que en un ciclo abres y cierras referencias lo cual significa consumo de memoria, lo mismo si construyes arreglos de manera programática. Adicionalmente el utilizar un formato de archivo más simple como el ASCII o binario si es que lo permite tu aplicación puede ayudar a resolver el problema. Para este tipo de problemas, lo que te menciono son suposiciones, sería de gran ayuda que pusieras tu código fuente para ver si realmente este es el problema.
Saludosel 05-15-2009 10:32 AM
el 05-15-2009 12:28 PM
Hola Javier
En realidad si se podrían cambiar muchas cosas en el programa. Por ejemplo al inicio antes del ciclo abres múltiples referencias a un mismo archivo llamada rangos .xml La parte en la que haces la lectura de los rangos tal vez puedas cambiarla por un Read from Spreadsheet file que te permite leer secciones del archivo según especifiques, en lugar de leer todo el archivo múltiples veces y así hacer más eficiente la manera como buscas los valores. Veo también que a lo largo del programa existen demasiados puntos de coersión debido a conversiones de datos innecesarias cada uno de estos puntos es como un arreglo que se va aumentando iteración tras iteración consumiendo la memoria de tu sistema, esto se ve sobre todo cuando manejas valores numéricos. Existen también secciones de código muy repetitivas que pudieras eliminar aplicando subVIs o por ejemplo en la zona donde pones los temporizadores pudieras sustituir todo eso por un solo ciclo for que vaya escribiendo cada uno de los valores que necesitas a la comunicación serial sin necesidad de repetir tantas veces el código. Sería bueno reestructurar tu código para hacerlo más legible y más modular. Te recomiendo uses las herramientas ubicadas en tolos>>profile>>performance and memory y show buffer allocations para que veas exactamente en qué parte de tu código se está produciendo consumo de memoria iteración tras iteración.
Saludosel 05-15-2009 01:26 PM
Hola
Anexo una presentacion sobre patrones de diseño en LabVIEW,espero que te sea util
Saludos
el 05-15-2009 04:17 PM
Gracias amigo por tu respuesta, soy nuevo en esto del labview y tuve que realizar esto para un proyecto, asi que no se mucho de labview
lo que hice lo hice digamos por instinto ya que no estoy acostumbrado ni tengo experiencia en ese tipo de programacion,el problema que presento es que desconozco la herramienta, aparte tengo la version estudiante que me limita , si me pudieras hechar una mano ayudandome a depurar el codigo seria de utilidad ya que no cuento con la experiencia adecuada para realizarlo, mientras voy a empezar a ver como hago la lectura del archivo rangos en el tiempo libre ya que trabajo y no cuento con mucho tiempo libre aparte estoy metido en muchos proyectos mas
saludos cordiales
JC