Affichage d'un tableau de cluster
Bonjour,
j'ai un petit probleme mais je ne sais plus quoi faire donc je viens demander l'aide aux experts.
Donc je créé mon tableau de cluster (contenant un ring et 3 indicateurs numeriques) en indexant en sortie d'une boucle for, j'ai vérifié et les valeurs du tableau sont correctes (img1). Je prend ce tableau et je le rentre dans mon sous vi qui est juste une fenetre pop up qui est doit afficher le tableau de cluster (img2).
Le probleme est que les valeurs dans le cluster sont decalées, cad que le ring affiche toujours 0 et ce qu'il est sensé afficher est contenu dans l'indicateur numérique qui suit...et ainsi de suite . En img3 voila mon sousVi qui afffiche le tableau. Donc pourquoi mes valeurs dans le cluster se décalent? En espérant avoir été assez clair.
Merci
Cdt
Mélanie
Résolu !
Accéder à la solution.
Pièces jointes :
creation tableau cluster.png 13 KB
put the array in subvi.png 4 KB
sub vu pop up.png 19 KB
Bonjour,
C'est dû au point rouge de ton cluster dans ta fenêtre pop-up. Cela signifie que tu n'as pas exactement les mêmes types de données. Ici tu dois avoir un ordre différent des éléments dans tes clusters. Pour les réorganiser, il faut faire un clic droit sur le cluster puis Reorder Controls in cluster...
Si l'ordre est le même sur tes différents cluster cela devrait fonctionner.
Il existe une méthode pour éviter d'avoir ce genre de problème: il faut définir tes clusters comme des typedef (advenced=>customize) puis les enregister en .ctl
Cela permet de créer un "nouveau type de données" et donc tous tes clusters qui utilisent ce fichier de définition auront exactement les mêmes types de données.
Cordialement,
Simon D.
CLA | Certified LabVIEW Architect
CTA | Certified TestStand Architect
Similar Messages
-
Rendre visible ou invisible un élément d'un cluster le tout dans un tableau de cluster
Bonjour
J'ai un tableau de cluster. Chaque cluster contient quatres controls (numérique1, booleen1, menu déroulant1, numérique2).
En fonction de la valeur du booléen1, je veux rendre visible ou invisible le numérique2.
Ceci sur chaque cluster du tableau et de façon indépendante pour chaque cluster
Est-il possible de réaliser celà?
Merci
Attachments:
Labview.jpg 27 KBHere is my answer to your other posting translated to French. If the wording is wrong blame the Babel Fish Translator not me
La réponse est oui et non. Il est possible de rendre différentes commandes dans un faisceau évidentes et invisibles. Cependant, ce n'est pas le même pour des rangées. Une rangée est une collection d'articles avec le SEUL differnce étant valeur. Tellement toutes les propriétés de chaque élément doivent être identiques. Vous pouvez programaticaly changer les propriétés de l'élément de rangée, mais notez que c'est élément. Une rangée n'a pas une collection d'éléments qu'elle a 1 élément et un groupe de valeurs. Imaginez la mémoire qui serait nécessaire si chaque propriété simple de chaque index devait être stockée. Ainsi vous pourriez rendre tous des commandes numeric1 invisibles, mais elle sera pour chaque faisceau. Vous ne pouvez pas la rendre évidente à l'index 1 et invisible à l'index 2. -
Boucle FOR et tableau de cluster
Bonjour,
J'ai créé un tableau de cluster contenant deux éléments et je souhaite que l'indice de mon tableau corresponde au "i" d'une boucle FOR;
ce qui me permettrait de remplir les valeurs de mes clés à chaque itération.
Ci-joint mon VI.
Cdt
Résolu !
Accéder à la solution.
Pièces jointes :
Test_Scenario.vi 12 KBBonjour,
Je t'invite à te renseigner sur l'auto-indexation des boucles FOR:
Auto-Indexing Tunnels with For Loops and While Loops in LabVIEW
L'auto-indexation va permettre que ta boucle FOR s'exécute autant de fois que tu as d'élément dans ton tableau.
L'itération 0 prendra donc l'élément à l'indice 0 de ton tableau.
L'itération 1 prendra donc l'élément à l'indice 1 de ton tableau.
Bonne journée,
Valentin
Certified TestStand Architect
Certified LabVIEW Developer
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
Travaux Pratiques d'initiation à LabVIEW et à la mesure
Du 2 au 23 octobre, partout en France
Pièces jointes :
auto indexation.vi 11 KB -
Passage d'un tableau de cluster a une DLL
RR
Merci pour les reponses.
Je fais appel a la dll nifb.dll.l'une de ces fonctions me demande de passer un tableau de cluster, et pour cela j'utilise "Adapt to type".
non de la fonction : nifError_t nifGetDeviceList
Attachments:
nifbus.h 11 KB
nifbtest.c 14 KB
FieldBus.vi 44 KB -
bonjour à tous
j'ai une petite probleme lors de l'affichage de mes mesures sur un tableau.
je veux affiche les mesures de chaque iteration à coter de l'autre avec un interval entre eux pour les distinguer.
pour une temperature fixer au debut de l'iteration je recoit une colonne de C et une colonne de t puis un interval qui separe et les mesures de 2eme iteration s'affiche ainsi de suite,
mais c pas le cas que je fais il m'affiche les resultat sucessive ,je veux un retour au colonnes pas en linges.cad si je change la temperature 4 fois cad 4iteration donc le tableau afficher sera 8colonnes sur 3 lignes
voici un VI simplifier pour mieux partager mes idee.
Pièces jointes :
02-05-2014 17-00-58.jpg 81 KB
1.vi 17 KBBonjour,
C'est dû au point rouge de ton cluster dans ta fenêtre pop-up. Cela signifie que tu n'as pas exactement les mêmes types de données. Ici tu dois avoir un ordre différent des éléments dans tes clusters. Pour les réorganiser, il faut faire un clic droit sur le cluster puis Reorder Controls in cluster...
Si l'ordre est le même sur tes différents cluster cela devrait fonctionner.
Il existe une méthode pour éviter d'avoir ce genre de problème: il faut définir tes clusters comme des typedef (advenced=>customize) puis les enregister en .ctl
Cela permet de créer un "nouveau type de données" et donc tous tes clusters qui utilisent ce fichier de définition auront exactement les mêmes types de données.
Cordialement,
Simon D.
CLA | Certified LabVIEW Architect
CTA | Certified TestStand Architect -
NI teststand: affichage tableau dans le rapport
Bonjour,
Suite à des tests et des calculs, j'ai regroupé dans un tableau des temps de transmission par commande (image 1) j'aimerais afficher ce tableau dans un rapport TestStand après une séquence de test, cependant, l'affichage de ce tableau n'est vraiment pas esthétique ni pratique à lire (image 2), et encore moins lorsque j'ouvre le rapport xml sur internet explorer (image 3)
J'ai cherché plusieurs solutions dans le forum mais rien ne fonctionne. Je voudrais que mon tableau s'affiche comme la première image.
Quelqu'un pourrait m'aider svp ?
Merci
Mehdi
Pièces jointes :
tableau_tr.PNG 6 KB
tableau_teststand.PNG 9 KB
tableau_explorer.PNG 10 KBBonjour,
Ce temps permet à Teststand de se lancer. Il est donc normal de ne pas récupérer la référence par le GetEngine s'il n'existe pas encore
A propos des fermetures de références : il faut les fermer une fois que vous n'en avez plus besoin. Ainsi, si vous avez créé une référence et que vous l'utilisez avec plusieurs noeuds de méthodes/propriétés, ne la fermez qu'à la fin.
Cordialement,
Mathieu P. | Certified LabVIEW Associate Developer
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
Journées techniques : des fondamentaux aux dernières technologies pour la mesure et le contrôle/comm... -
Cluster en tableau avec différente données
Bonjour je souhaiterai réaliser un cluster en tableau avec différentes données.
Les données sont celles sur l'image en PJ.
L'indice de mon tableau est le n° étape.
Cdt
Pièces jointes :
Scenario.JPG 63 KBBonjour,
Dans l'exemple que je t'ai posté dans le lien ci-dessous, j'ai travaillé avec un tableau à 2 dimensions:
Remplissage d'un tabeau pour réaliser un scénario
Nénamoins, tu peux le modifier et ainsi travailler avec un tableau de cluster, le principe reste le même.
Bonne journée,
Valentin
Certified TestStand Architect
Certified LabVIEW Developer
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
Travaux Pratiques d'initiation à LabVIEW et à la mesure
Du 2 au 23 octobre, partout en France -
Ne pas remplir un tableau avec les valeur par default
Bonjour
Voila mon problème.
L'utilisateur doit selectionner une zone sur une image et l'ajouter à une liste.
Il peut aller jusqu'à 3 zones. Il peut également choisir le mode de traitement de l'ensemble des zones.
Lorsqu'il démare l'acquisition, on entre dans une boucle cadencé while, puis on regarde le boléan correspondant au mode, ensuite on entre dans un boucle for dont n est lié à la taille de la liste des zones.
Le tableau est un tableau de cluster de 2 éléments.
Dans certaines conditions, je ne veux pas remplir le tableau.
le seul moyen que j'ai trouvé pour remplir le tableau selon ces conditions est grace au variables locales.
Problème, cela prend trop de RAM et je suis limité ensuite.
je joins un VI tres simplifié de mon probleme
Merci
Attachments:
exemple.vi 85 KBVoila le VI.
J'ai oublié de préciser que j'ai simulé un signal dent de scie avec un bruit blanc pour effectuer les essais et que les thermocouples seront cablées par la suite et reliées à un DAQ.
Pièces jointes :
exemple filtre 2.1.vi 74 KB -
Lire partiellement un tableau de plusieurs millions de lignes
Bonjour,
Alors voici mon problème: j'ai un fichier texte contenant un tableau de 9 colonnes et environ 15 millions de lignes. J'utilise labview pour traiter ces données, ce qui ne pose pas de problème hormis pour un point: lire partiellement le fichier sans avoir à effectuer une lecture complète, qui sature la mémoire du pc.
Par exemple, je veux extraire 1000 lignes de ce tableau, à partir de la 10 000 ème ligne. J'ai essayé avec le sous VI: "lire un fichier tableur" mais celui-ci ne propose qu'un offset de caratère à la lecture et non un offset de lignes, et c'est compliqué de connaître simplement la relation entre le nombre de caractères et le nombre de lignes.
Donc est ce que vous auriez une autre solution pour lire paratiellement un tableau ?
Merci d'avance pour votre aide
Résolu !
Accéder à la solution.bonjour j'ai le sentiment qu'un fichier binaire conviendrait mieux, afin d'avoir une structure d'octets fixe par ligne et de pouvoir utiliser la capacité à récupérer facilement des données à n'importe quel endroit du fichier du fait que nous connaissons le nombre d'octets nécessaire à l'écriture d'une donnée. via " Définir la position" qui est en octet.
Toutes les autres méthodes (sur fichier ASCII) seront consommatrices de ressource.
Un autre fichier binaire est intéressant : le fichier journal, qui est un tableau de cluster (par exemple pour vous une ligne ou un ensemble fixe de ligne = un élément du journal).
Le grand avantage de cette méthode est qu’il est très simple d’accéder en lecture à la valeur d’un des éléments du tableau (index d'un des clusteur). Il suffit uniquement de spécifier son numéro à la fonction « Définir la position dans le fichier journal LabVIEW ». En effet cette fonction travaille sur des valeurs qui sont en nombre d’enregistrement, et pas en offset d’octets comme les fonctions binaires standards. Il est ainsi plus simple d’exploiter les essais réalisés.
Mais je ne sais pas si cela est possible pour vous.
A+
Luc Desruelle | Voir mon profil | LabVIEW Code & blog
Co-auteur livre LabVIEW : Programmation et applications
CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW -
Modification de valeur dans un tableau
Bonjour,
Contexte :
Je souhaite pouvoir remplir des données dans un tableau en appuyant sur le bouton suivant (incrémente l'indice)
Revenir en arrière en appuyant sur le bouton précédent (donc à l'indice précédent) et modifier ses valeurs en appuyant sur le bouton suivant.
Problème :
Dans mon VI cela fonctionne, mais ajoute des données supplémentaires à chaque fois que l'on appuie sur suivant, ce que je ne souhaite pas.
Cordialement
Résolu !
Accéder à la solution.
Pièces jointes :
Tableau de cluster.vi 28 KBBonjour,
Voila une version modifié de ton VI qui doit répondre à ton problème.
L'erreur venait du fait que quand tu cliques sur suivant tu ajoutes toujours un élément au tableau. J'ai donc rajouter une condition qui vérifie si on est au dernier élément du tableau et dans si c'est vrai, on ajoute une valeur, sinon on la remplace.
Cordialement.
.mesLeft{float:left} .mesInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898} .mesLogo{float:right;opacity:0.18} .mesLogo:hover{opacity:0.9}
Maxime R.
CLD - Certified LabVIEW Developer / Développeur LabVIEW Certifié
CLAD - Certified LabVIEW Associate Developer
Pièces jointes :
Tableau de cluster Modifie.vi 29 KB -
Problème d'affichag​e après lecture fichier binaire
Bonjour,
J'utilise actuellement une communication CAN et chacune des trames échangées est enregistrée dans un fichier binaire.
Une fois la communication finie, le fichier est ouvert, dépouillé pour sortir sous forme de string puis affiché dans un tableau 2D de string.
Ce tableau est de 8 colonnes (une par type d'informations, comme le time stamp, l'identifiant etc) et d'un nombre de lignes dépendant du nombre de trames échangées
Le problème survient lors de l'affichage des données sur le tableau, à partir d'environ 50 000 lignes, il est indiqué que la capacité mémoire de LabView n'est pas suffisante.
Existe-t-il une solution pour palier à ce genre de problème?
Merci,
Jull
configuration : LV8.5.1
Cordialement,
Julien V.Bonjour,
Quel est la configuration de votre ordinateur?
Le problème intervient lors de la lecture du fichier ou de l'affichage dans un tableau?
Quels est le code d'erreur qui apparait?
Cordialement,
Aurélien J.
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
>> Du 30 juin au 25 août, embarquez pour 2 mois de vidéo-t'chat ! Prenez place pour un voyage au coe... -
Affecter des coordonnées à chaque case d'un tableau
Bonjour,
Esct ce qu'il est possible d'affecter des coordonnées X, Y a chaque case d'un tableau 2D. Exemple ds le tableau excel ci joint
Par exemple je vx que la case (0,0) dont le contenu est 1 ait un systeme de coordonnées(0.0035,-0.0035).
Merci d'avance,
Pièces jointes :
tab.jpg 33 KBBonjour,
Pourquoi ne pas tout simplement utiliser un tableau de cluster ? Cela parait plus simple....
Cordialement,
Pièces jointes :
tableau_vi.vi 7 KB -
Rendre non visible l'élément d'un tableau
Bonjour,
J'ai créer un tableau de cluster sur la face avant de mon application, ce tableau me sert de légende pour un graphe! J'aimerais pouvoir rendre non visible, ou simplement griser un élément de mon tableau mais je ne sais pas comment m'y prendre. J'ai regardé dans le property node mais je n'ai pas trouvé la bonne property. Le but de cette manip et de rendre invisble une légende dans le cas ou la trace n'est pas disponible.
Cordialement
Sébastien Kuenlin
Résolu !
Accéder à la solution.bonjour Une remarque : Si dans un tableau, d’éléments de type « cluster », vous désirez « griser » ou visuellement « montrer que non actif » un élément du tableau, alors que les éléments suivant du tableau sont actifs, vous ne pouvez pas juste « redimensionner » la taille du tableau. Vous pouvez alors ajouter dans le cluster un booléen « actif » dont la couleur valeur « true » est « transparente » et la « false » à une image « semi-transparente grisée ». A+
Luc Desruelle | Voir mon profil | LabVIEW Code & blog
Co-auteur livre LabVIEW : Programmation et applications
CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW -
Indicateurs cluster redondants
Bonjour,
J'ai 95 indicateurs LED circulaire de type booléen dans un cluster en face avant.
J'ai créé mes led, une par une, de sorte que leur étiquette soit différente, de "Booléen 1" à Booléen 95".
J'ai réalisé un chenillard, dont je suis sûr du bon fonctionnement. (voir le VI que j'avais donné dans le forum pour une autre question: ici)
J'ai juste ajouté la fonction "tableau en cluster" avant mon 'indicateurs-cluster' composé de 95 booléens, pour visualiser l'état de mes sorties.
Cependant, je n'ai pas trouvé de moyen sur le diagramme ou à partir de la boite cluster de vérifier dans quel ordre sont rangés mes booléens.
Je n'arrive pas à avoir le détail du cluster.
Cela ne me poserait pas de problèmes si les led s'allumaient dans l'ordre de Booléen 1 à Booléen 95, mais ce n'est pas le cas.
Certaines de mes led s'allument même plusieurs fois.
J'espère avoir été suffisament clair, et que vous pourrez m'indiquer comment obtenir le détail de mon cluster, ou une autre procédure.
Résolu !
Accéder à la solution.Bonjour,
Pour savoir dans quel ordre sont rangés les commandes :
Clique droit sur le cadre du cluster » Ordonner les commandes dans le cluster.
Le redimensionnement automatique peut aussi etre utile...
Cordialement,
Da Helmut -
Problème incrémentation décrémentation cluster 2 éléments.
Bonjour à tous,
Actuellement, je réalise un profil de consigne à appliquer à mon système. Le but est simple, je rentre des données ( amplitude et fréquence ) dans un tableau de cluster 2 éléments. Cela me génère un graphe, pour avoir un aperçu de se que je vais envoyer à mon système, puis après lancement mon installation génère la consigne que je souhaite appliquée. Je précise que normalement la consigne doit partir du points le plus bas pour rejoindre le plus haut tout en passant par les points intermédiaire puis une fois le points le plus haut atteint on retourne vers le point le plus bas. ( voir photo 1 )
En blanc la consigne à générée, en vert et rouge les limites hautes et basses de ma régulation.
Exemple concret :
Je souhaite générer une consigne devant passée par les points :
Fréquence 20 fréquence 500 fréquence 1000 fréquence 2500 fréquence 3500
amplitude 0.1 amplitude 1 ampltidue 1 amplitude 1 amplitude 0.1
Une fois que la consigne a atteint une fréquence de 3500 et une amplitude de 0.1 alors le système doit lui même et de manière automatique décrémenter et réaliser ceci :
Fréquence 3500 fréquence 2500 fréquence 1000 fréquence 500 fréquence 20
amplitude 0.1 amplitude 1 ampltidue 1 amplitude 1 amplitude 0.1
Et ainsi de suite, ....
Je laisse le sous Vi chargé de réalisé cette fonction (vib_generate sweep ) ci _ dessous :
Cordialement
Résolu !
Accéder à la solution.
Pièces jointes :
Image 1.png 60 KB
vib_generate sweep spectrum_2 (15).vi 26 KB
vib_log ramp pattern.vi 12 KBDans les blocs que j'ai posté, il n'y a pas la partie qui permet de voir la coube que l'on souhaite générer.
Je vais donc t'envoyer mon projet entier. J'espere qu'il sera suffisament compréhenssible.. Le principe est le suivant :
1°) On rentre les points de cassures, c'est à dire les points par lesquels la consigne que je vais générée doit forcement passé.
2°) Une fois ceux-ci rentrée, le "spectre" de la consigne que je souhaite envoyer apparait.
3°) Lorsque j'appuie sur le bouton start, on passe sur le second graphe ( avec les courbe de limites rouges et vertes ) et on voit mon système en temps réel qui va générer la consigne souhaitée.
Le problème, c'est comme je l'expliqué, c'est que ma consigne doit faire des allez retour comme dans cette exemple :
Points de cassures :
fréquence 10 fréquence 50 fréquence 500 fréquence 1000
amplitude 1 amplitude 1 amplitude 1 amplitude 2
Une fois l'allez effectué, on réalise le retour
fréquence 1000 fréquence 500 fréquence 50 fréquence 10
amplitude 2 amplitude 1 amplitude 1 amplitude 1
Une fois l'amplitude minimale atteinte on repart vers le point maxi etc etc ..
j'ai choisi d'envoyer uniquement le sous vi " generate spec .." car je suis persuadé que j'ai comis une erreure à ce niveau ! Après je t'ai joins ci dessous tout mon projet...( excitation sinusoidale finie) mais remplace le bloc "generate sweep spectrum par celui en pièce jointe .
La génération fonctionne très bien quand on va du sens croissant ou décroissant à l'allez. mais lorsqu'il sagit du retour, je ne sais pourquoi mais l'amplitude est à coté de ce que je souhaite. Mais la fréquence décrémente correctement.
cordialement
Pièces jointes :
Shaker Control Source.zip 3005 KB
Excitation Sinusoidale finie 100 ( + chrono ).vi 646 KB
vib_generate sweep spectrum_ALLEZ RETOUR.vi 30 KB
Maybe you are looking for
-
Can i sync my iphone/mobile me account to two different macs
I've got two macs now in the house! The first one I bought was such a nice conversion from windows that I replaced the family computer with a mac as well. So can I hook up my mobile me/iphone up on my other computer as well without any weird issues b
-
I keep trying to download stuff off iTunes but I still get a "Disk Full error".
We got a new computer with a 500 gb hard-drive so I know that I have free space. Every time I try to download something I get an error that says the disk is full. I have already tried to reset iTunes through preferences, so I need some more solutuion
-
Can I install 2Rx8 PC3 8500s 07 10 F2 (DDR3-1066 RAM) in to a 2008 Macbook Pro?
I've got an old 2008 Macbook Pro and have been given 2 x 2gb of 1066 Ram. Can I put this in to my old Macbook Pro?
-
Error 1720 - When trying to install software for a Plantronics CS60 headset
Hi Everyone, Getting an Error 1720 when I tray and run th setup installer for a new Plantronics CS60 USB headset. I have been told it's a missing windows driver. Anyone know what's going on here...? Many Thanks
-
Where did my plugins go?
Hello When I went to go use my Glittratio plugin by Flaming Pear I could not find it in my plugins....it was there the other day and I did not do anything that would effect it. Do I need to reinstall it? Or is there a way I can call it up again that