Discussions au sujet des autres produits NI

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

mémoire pleine

Résolu !
Accéder à la solution

Bonjour,

 

Dans le VI attaché, j'incrémente un tableau de grande taille dans une boucle en utilisant le registre à décalage, au bout de quelques minutes, j'ai eu un message ''la mémoire est pleine''. 

 

Alors j'ai quelques questions sur ce message.

 

1.comment gérer ce genre de message? Par exemple si je voudrais fermer une vanne quand j'aurai ce message, est-ce qu'il y moyen d'utiliser le cluster d'erreur?

 

2. la gestion de mémoire, je voudrais savoir comment windows alloue la mémoire pour l'application Labview. Dans mon PC, le programme se plante à un peu près 500MB. si je change dans le fichier ''boot.ini'' en ajoutant le tag/3GB pour augmenter la mémoire virtuelle à 3GB, le programme se plante à 1GB(utilisation de la mémoire).

 

Merci d'avance.

 

Lily

 

 

0 Compliments
Message 1 sur 6
4 720 Visites

Bonjour,

 

Dans un premier temps est-il possible de connaitre la raison d'implémenter un tableau de 1 millions de colonnes pour obtenir des dizaines de millions de points ?

Est-ce qu'il y a du traitement en même temps que la création du tableau ou pas ?

Pourquoi ce tableau ?

 

Un peu plus d'explication permettrait de donner une réponse adaptée pour votre application.

 

Car avec votre exemple je dirais pourquoi ne pas faire de l'enregistrement de fichier binaire au lieu de garder en mémoire un tableau double de 1 million de colonne et n ligne suivant la mémoire disponible.

 

Cordialement

Greg S.
CNRS
LV 7.1 8.2 8.6 2009 2011 2012 2013 2014
LPMC - CNRS
N'oubliez pas de complimenter cela fait toujours plaisir.
0 Compliments
Message 2 sur 6
4 700 Visites

Bonjour,

 

Le but d'incrémenter un tableau est de stocker les données pour afficher l'évolution de températures ou pressions dans un graphe, le programme doit tourner pendant plusieurs jours. J'ai trouvé la solution de gérer la mémoire en gardant seulement les 3 derniers heures récentes. Mais je voudrais bien comprendre comment fonctionne la mémoire. Et aussi ce genre de message comment on peut traiter correctement?

 

Merci.

 

Lily

0 Compliments
Message 3 sur 6
4 694 Visites

Salut,

 

A mon avis ton erreur est de type windows, donc ingérable..

 

 

Pour stocker des données volumineuses sur plusieurs jours, tu peux simplement ouvrir un fichier et y ajouter les données au fur et à mesure. C'est ensuite windows qui va gérer l'écriture décalée. Tu auras une écriture disque-dur raisonnable et un encombrement de ta RAM raisonnable. Attention de garder le fichier ouvert pendant tout l'enregistrement. 

Message Edité par Walker34 le 02-25-2010 04:07 AM
0 Compliments
Message 4 sur 6
4 691 Visites

Comme je l'ai dis et comme le précise Walker34 dans ce type de programmation sur plusieurs jours et même sur plusieurs heures, le meilleur moyen est d'utiliser l'enregistrement sur fichier binaire (vu le nombre de points). De plus avec ce moyen si le programme plante tes données seront sauvées.

 

Par contre je ne vois toujours pas comment tu peux atteindre des dizaine de millions de points. Je continue a rester perplexe quant à ce que tu veux réellement programmer avec le peu d'informations données.

 

Cordialement

Greg S.
CNRS
LV 7.1 8.2 8.6 2009 2011 2012 2013 2014
LPMC - CNRS
N'oubliez pas de complimenter cela fait toujours plaisir.
Message 5 sur 6
4 686 Visites
Solution
Accepté par Lily1979

Bonjour,

Voici un lien pour vous aidez à comprendre:

Managing Large Data Sets in LabVIEW

 

En simplifiant un petit peu, les grands tableaux posent problème car pour stocker ce tableau dans la RAM il faut un espace libre contigu dans la RAM.

Par exemple pour mettre en mémoire un tableau de 200MB, il faut qu'un bloc de 200MB soit disponible.

On peut donc avoir 500MB de libre dans sa RAM, mais ne pas pouvoir allouer 200MB à notre tableau.

 

La solution est de réduire les dimensions du tableau ou la taille des données(voir lien ci-dessous). Par exemple, on peut remplacer 1 tableau 20x10000 éléments par 20 tableaux de 10000 éléments.

 Why do I get "Memory is Full" Error in LabVIEW?

 

Le problème avec ce type de message c'est qu'on ne peut pas les traiter. 

Il faut faire de la prévention en évitant les grand tableaux autant que possible.

 

Cordialement,

Yann C.

France

Message 6 sur 6
4 678 Visites