el 01-31-2013 04:54 AM
Buenas,
Estoy intentando realizar un programa que a partir de una matriz de datos (250x5000), para algunas de las filas completas, tengo que realizar una serie de calculos que los incluyo en sub.vi, pero estoy continuamente obteniendo mensajes de memoria completa y no me lo termina de ejecutar.
Me podeis por favor ayudar,
Un saludo y muchas gracias,
¡Resuelto! Ir a solución.
el 01-31-2013 05:19 AM
Hola.
Puedes comenzar aqui: enlace
Al final de la pagina tienes mas enlaces en ingles.
Saludos.
Alipio.
el 01-31-2013 11:50 AM
Hola,
Seria bueno que indiques cuanta memoria tiene tu computador, y a traves del administrador de tareas veas cuando consume LabVIEW al momento de ejecutar tu VI.
Las estrucuturas In-Place memory te pueden servir en caso de que este duplicando esa matriz donde tienes los datos, q al parecer es lo q consume ese exceso de memoria, aunque 250x5000 no es tanto.
Saludos,
el 02-06-2013 02:31 AM
Hola,
Muchas gracias por las repuestas. he intentado simplificar el programa creando diferentes sub.vi y los consejos que aparecen en los links que me comentasteis y parece que se gestiona de mejor manera, pero sigo teniendo problemas de ejecución, ya que no siempre se ejecuta de manera correcta.
Hay veces que se salta algún sub.vi, que si lo ejecuto con el modo Highlight, paso a paso, se ejecuta sin ningún problema....a que puede deberse esto? debería incorporar algún delay en el programa o cómo prodría resolver este problema?
Un saludo y muchísimas gracias por vuestra ayuda,
el 02-06-2013 11:32 AM
Hola.
No parece que eso tenga que ver con la memoria.
A ver si puedes poner la vi/vis que presentan ese efecto para estudiarlas.
Saludos.
ANgazu.
el 02-13-2013 03:40 AM
Buenas a todos,
Gracias por responder. Perdonar el retraso de mi respuesta. He estado comprobando el programa y básicamente tengo los siguientes problemas:
- Botón de activación "Hecho", no siempre se ejecuta correctamente (las primeras veces devuelve matriz de tamaño cero o el anterior).
- El sub.vi, "quita_cero", no se ejecuta a menos que lo tenga abierto (en modo Highlight, "paso a paso").
- También sigo teniendo problemas con la velocidad de ejecución ya que gestiona todo muy lento y mi idea era incorporar otro sub.vi igual que el que ya tengo incorporado para el otro grupo de datos (datos2), luego todavía relentizaría más el programa (tendría dos arrays de 256x5002) 😞
Adjunto el programa entero. Realiza la lectura de una serie de datos dividiendolos en dos grupos (datos1/2). En el que os adjunto sólo he incluido lo correspondiente a datos1. A partir de ahi, toma las filas primera, tercera y quinta del array de datos (cada ocho) lo cual he dividido en dos en el mismo programa para que se ejecute paralelamente (0-29) y (32-61) para cuatro variables a la vez (v1 (0-61), v2(64-125), v3(128-189) y v4(192-253)).
Os agradecería cualquier sugerencia o ayuda que me podais dar,
un saludo y muchísimas gracias por vuestro tiempo.
el 02-13-2013 09:57 AM
Hola,
Cambie la forma en que tenias organizado el codigo cuando presionas el boton Hecho.
Lo demas pues a simple vista no tengo idea q hace, si puedes agregar un archivo de ejemplo seria mas facil hacer una prueba para ver donde tienes el problema con la memoria.
Saludos,
el 02-14-2013 10:31 AM
Hola Luis,
Muchas gracias por responder. La verdad que me estoy volviendo loco con esto.
El problema lo tengo en la ejecución del sub.vi "Datos1.vi", si lo dejo ejecutandose me realiza todas las operaciones correctamente, pero el problema es que le lleva más de 50 minutos hacerlo 😞
Te incluyo de nuevo el programa, pero esta vez he quitado la gestión de los datos y he incorporado directamente unos datos ejemplo desde un fichero excel a un array.
Lo que intento hacer es lo siguiente:
Dentro del array (255x5003) tengo datos de 4 subconjuntos:
y necesito tomar en cada uno de ellos ("V_1.vi","V_2.vi","V_3.vi","V_4.vi") los datos correspondientes a las filas 0,2 y 5. para calcular el promedio de los 100 primeros valores de cada fila ("M_primeros.vi") y restarlo a cada valor de las mismas filas ("L_Muestras_F_primeros.vi").
para esto, en "Calcular_total.vi" he dividido cada subgrupo en dos, para ejecutarlos paralelamente de las filas 0 a 31, y el otro de la 32 a 63. ("Datos_F").
Finalmente, una vez que tengo estos valores, calculo el máximo valor de cada fila, y con estos valores multiplico los valores de las filas 0 y 2 ("Potencia.vi")y grafico estos valores.
Agradecía cualquier sugerencia que me pudierais dar,
Un saludo y muchísimas gracias.
el 02-14-2013 10:34 AM
Adjunto el excel de datos como .xlsx, ya que al intentar subirlo como .CSV no me dejaba.
el 02-14-2013 01:23 PM
Hola.
Evidentemente es muy lento. En mi PC ha tardado unos 96 minutos en ejecutarse.
Te adjunto el profile de la ejecucion. Los vi que hay que mejorar son L_muestras_F_primeros y L_muestras_F para empezar, ya que consumen mucho tiempo. Seria interesante si puedes explicar lo que hacen junto con sus subvi para tratar de optimizar el codigo y obtener unos tiempos razonables.
Saludos.
Alipio.