From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Fichier tableur / Graphe / Pb mémoire

Bonjour,

J'affiche des courbes dans un graphe depuis un fichier tableur.
Tout marche bien avec le diagramme ci joint.

Seul problème: lorsque mon fichier dépasse 60000 lignes (environ), Labview ne m'affiche pas le graphe et me renvoie le message d'erreur "Memoire insuffisante pour terminer l'opération"...

Merci par avance si vous pouvez m'éclairer.
Peut être est ce une limite de Labview ? je ne sais pas.
Je suis preneur pour toute astuce...

Merci par avance,
David.
0 Compliments
Message 1 sur 6
3 538 Visites

Bonjour,

Comment est constituer ton fichier ? Nombre  de voies, nombre de point par voie, etc

L'erreur intervient à quelle moment de l'exécution ? A l'ouverture du fichier, à l'affichage dans le graph ?

 

Une limitation de LabVIEW 32 bit est de ne pas savoir allouer un tableau de plus de 300Mo environs ( la limite exact dépend de beaucoup de paramètres). L'erreur peut donc être liée à ça.

 


Olivier Jourdan

Wovalab founder | DQMH Consortium board member | LinkedIn |

Stop writing your LabVIEW code documentation, use Antidoc!
0 Compliments
Message 2 sur 6
3 521 Visites

Bonsoir,

 

Merci pour ton aide.

 

Le fichier possède 18 colonnes (date, heure, 16 voies) séparées par un TAB

 

22/02/2012 16:20:02.995 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100

 

Mon fichier possède 100000 lignes comme celle présentée ci dessus.

L'erreur intervient au bout de 10 secondes après le lancement du vi  (diagramme ci joint dans mon 1er post).

Le graphe reste vide...

 

Si je raccourcis mon fichier à 60000 lignes, pas de pb.

 

La piste de la mémoire Labview allouée au tableau semble la bonne.

Y a t-il une astuce pour résoudre le problème ? peut être charger le graphe en 2 fois ?

 

Merci par avance pour vos aides,

David.

 

0 Compliments
Message 3 sur 6
3 509 Visites

Si je ne fais pas d'erreur, le tableau en sortie de la fonction de lecture doit faire environ 115Mo, donc LabVIEW doit être en mesure de le gérer sans trop de difficulté. Par contre en regardant le code de plus près, j'essaierai, de ne pas faire le transpose. Le graphe affiche les voies en fonction des lignes et de colones et si tu lui demandes d'afficher 16 voies de 100000 points, ça va bien se passer. Dans le cas inverse, 100000 voies de 16 points... ça peut devenir dur à gérer en mémoire.

--> deux solutions :

  1. Supprimer le "transpose"
  2. Faire un clic droit sur ton graphe sur le Front panel et cocher/décocher l'item "Transpose array"

Dis-moi ce que la manip donne sur ton code.

 

D'un point de vue plus général le chargement/(traitement)/affichage des données volumineuses n'est pas un problème simple. C'est une des raisons qui nous (SAPHIR) à pousser à développer une application de relecture (et traitement) de fichiers. Si ça t'intéresse, tu peux télécharger une version de démo ici Smiley clignant de l'œil 


Olivier Jourdan

Wovalab founder | DQMH Consortium board member | LinkedIn |

Stop writing your LabVIEW code documentation, use Antidoc!
0 Compliments
Message 4 sur 6
3 503 Visites

Merci pour ton aide.

 

J'ai fait la manip que tu m'as conseillée.

Avec un fichier de 40000 lignes ca marche (comme précédemment, j'affiche bien mes 16 courbes dans le graphe et non 100000 courbes), mais le problème reste le même pour un fichier de 100000 lignes...

 

Y aurait-il un moyen de lire le fichier ligne par ligne et de remplir le graphe au fur et à mesure (cela éviterait de passer par un tableau) ?

Ca peut être une solution... Si cette solution te semble correcte, n'étant pas un grand spécialiste Labview, merci par avance si tu peux m'aider à la coder.

 

 

0 Compliments
Message 5 sur 6
3 497 Visites

Avant de trouver une solution il faut identifier précisément ton problème. Est-ce l'affichage dans le graphe qui est problématique ou le chargement des données depuis le fichier.

Pour cela, tu peux  :

  1. Essayer le code suivant qui simule la lecture de ton fichier et modfifier l'entrée "Nombre de point" pour connaitre la limite de ton système. ChannelDisplayTest.png
  2. Exécuter ton code avec la "loupiotte" pour voir ou le plantage intervient (1er VI ou écriture des données dans l'indicateur). 2012-02-27_1050.png

Ensuite, on pourra avancer sur une solution.

 

PS : Peux-tu joindre le fichier qui te pose problème ? 


Olivier Jourdan

Wovalab founder | DQMH Consortium board member | LinkedIn |

Stop writing your LabVIEW code documentation, use Antidoc!
0 Compliments
Message 6 sur 6
3 468 Visites