Discussions au sujet de NI LabVIEW

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

ajout variables tableau

Résolu !
Accéder à la solution

Bonjour,

 

Je souhaite ajouter 2 variables dans un tableau lorsque j'appuie sur un bouton (type bouton ok).

Lorsque ces 2 variables sont ajoutées à la première ligne du tableau, on modifie ces 2 variables et on les ajoute ligne 2 du tableau après avoir cliqué sur sur le bouton ok et ainsi de suite.

 

Le problème dans mon VI, c'est que je n'arrive pas à arrêter l'ajout dans le tableau après avoir cliqué sur la validation. Je suis obligé de l'arrêter avec le bouton stop.

 

J'utilise labview 2012.

Merci

VI.JPG

 ps: je n'ai pas réussi a ajouter le VI dans la pièce jointe, si quelqu'un connait la méthode...

 

Thomas

0 Compliments
Message 1 sur 9
4 332 Visites

Bonjour,

 

Je te conseil d'utiliser une structure évènement à la place de ta boucle while du centre, avec comme condition d'évenement "souris relâchée" sur ton bouton OK.

 

Cela remplacera avantageusement la structure condition et la boucle while qu'elle contient.

mettre dans ce cas le registre à décalage sur la boucle while exterieure

 

La variable locale pour "table 2" me semble aussi superflue, tu peux ecrire directement dans "table 2" en le changeant en indicateur. (clic droit dessus avec la souris)

 

Bon courage

 

antoine

Message 2 sur 9
4 326 Visites

En effet, avec une condition d'événement ce sera beaucoup mieux comme proprose mknix.

 

Cependant mknix, peut-être qu'il a besoin que sa table soit en commande (enfin on voit pas l'utilité dans son image là, ce n'est peut être qu'un "bout" de vi, ou un début), donc dans ce cas là, la variable locale est nécessaire.

 

Voici le vi que je ferai (en LV2012)

Message 3 sur 9
4 308 Visites

merci Kaleck0 pour l'exemple, je n'avais pas le temps d'en faire un hier.

 

Concernant la variable, je suis d'accord avec toi, par contre dans le cas d'un programme plus conséquent, qui utilise la table en lecture et en ecriture, j'attire l'attention de tholmes sur les risques de competition avec une telle utilisation Smiley clignant de l'œil

situation de competition

 

bonne journée !

 

 

 

 

 

0 Compliments
Message 4 sur 9
4 300 Visites

Oui j'ai déjà eu ce genre de problème à mes débuts, en parfois encore quand je m'emmêle les pinceaux.

Et c'est plutôt dur de trouver pourquoi ça arrive quand on a une dizaines de VI qui utilise une variable globale ^^.

 

Pour les gros projets, je passe alors par des VI buffers, qui supprime cet effet de compétition.

(Ex : pour un VI acquisition et un VI traitement des données qui tourne en parallèle).

0 Compliments
Message 5 sur 9
4 294 Visites

Merci beaucoup pour ce ces informations, le VI fait exactement ce que je souhaitais.

Est-il possible d'afficher en dynamique les variable de ce tableau sur un graphique pour que l'on puisse voir l'évolution de la courbe (variable 1 puissance, variable 2 le temps). Du coup pour le temps il faut que l'on somme la nouvelle valeur à la valeur précédente.

Concernant le problème de compétition, je ne pense pas que cela se produise. Mon objectif est de saisir une courbe de puissance en fonction du temps puis de piloter un relais statique par une sortie analogique (0-10V) en fonction de cette courbe. Donc lorsque l'ensemble des valeurs sont saisies on ne fait que de la lecture. Comme vous avez plus d'expérience que moi dans le domaine peut être que ce n'est pas le cas.

 

Cordialement

 

Thomas

0 Compliments
Message 6 sur 9
4 292 Visites

Dans ce cas, ta table doit être en "indicateur" car tu n'écris pas toi-même dedans, c'est une fonction d'acquisition qui le fait.

(Mais le problème de compétition sera là d'une manière ou d'une autre si tu ne fais pas attention).

 

Pour le graphe, utilise simplement un graphe XY que tu connectes de la manière suivante.

Change les données 2D chaîne en 2D Double

Indexe la colonne 1 et 2 en même temps.

Les tableaux 1D de chaque colonne représente chacun un axe.

Utilise la fonction Assembler un cluster

Que tu câbles à ton graphe XY

0 Compliments
Message 7 sur 9
4 289 Visites

voila, j'ai réussi a peu près a faire ce que je voulais avec l'affichage du tableau. Je voudrais pouvoir sauvegarder ces données dans un fichier exploitable par excel. Mais quand j'appuie sur le bouton sauvegarde, le fchier se crée mais il est vide. Je pense qu'il doit falloir le stocker dans un espèce de tableau intermédiaire mais je ne vois pas trop comment faire. Si quelqu'un peut m'aider.

0 Compliments
Message 8 sur 9
4 202 Visites
Solution
Accepté par l'auteur du sujet thomles

Bonjour,

 

Le problème est que lorsque la structure événement détecte un timeout, la sortie tableau reprend sa valeur par défaut, c'est à dire tableau vide. Lorsque tu cliques sur save, c'est ce tableau vide qui est enregistré...

 

La solution:

Il faut connecter ce tableau sur le bord de la boucle while et créer un registre à décalage. Ensuite la valeur à t-1 (à gauche de la boucle while) peut être injectée dans la structure événements et renvoyée en sortie lorsqu'on a timeout. Le must: ajouter un événement "save, valeur changée" dans la structure événement, ce qui permet de placer le code d'enregistrement dans cette structure et obtenir vi plus lisible.

Francis M
0 Compliments
Message 9 sur 9
4 198 Visites