Discussions au sujet de NI LabVIEW

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

Sous-vi de monitoring de l'ensemble des Control?

 

 

J'ai recablé, complété, testé ... et tout et tout  Smiley clignant de l'œil ... avec ton Contrôle " Jauge temp cab "

 

fichier joint en LV2013  >>  run :  "MAIN.vi"

 

 

toto.png

0 Compliments
Message 21 sur 36
2 320 Visites

Merci du coup de main!

 

J'ai toujours mon erreur 1054 mais je pense savoir d'où ça vient.

 

J'ai recopié ce que tu m'avais donné, avec comme paramètre de classe "Control".

 

Sauf que dans mon Front Panel les objets que je veux récupérer son mis dans un Tab Control!

Je pense que le problème vient de là (le owner n'est pas le VI mais le Tab Control, correct?).

 

Du coup j'ai cascasdé un Open Object pour récupérer la référence du VI, puis un autre pour la référence du Tab Control, mais je n'arrive pas à récupérer la référence de la Page qui va bien.

 

De plus, dans l'aide Labview, il y a une classe ControlTerminal, qui pourrait m'aider car apparemment cela correspond aux objects du diagramme et donc sans faire attention à quel objet ils appartiennent dans le Front Panel.

 

Je suis avec labview 2013.

 

Une idée?

 

Merci

0 Compliments
Message 22 sur 36
2 279 Visites

donne moi ton code que je puisse travailler dessus.

0 Compliments
Message 23 sur 36
2 273 Visites

Bonjour,

 

Voilà un exemple de mon code.

Ce n'est pas le code d'origine mais c'est le schéma (avec 100 Control et 30 Indicateurs répartis sur 5 pages...).

 

Merci

0 Compliments
Message 24 sur 36
2 269 Visites

100 Controls et 30 indicateurs répartis sur 5 pages d'un TabControl.

 

ok ...

 

et je suppose que le nombre de controles et d'indicateurs  .... diffère suivant la page ?

 

Comment veux-tu faire un "superviseur" polyvalent ... aussi bien pour une page qui contient 2 controles, que pour une qui en contient 10 ?

 

Là, on serait parti pour un superviseur "global" qui détecte en première ligne les changements de page ...

ensuite le S_global ferait un appel (asynchrone) au superviseur local de la page (" x pages = x superviseurs", soit un superviseur dédié pour chaque page)

Eventuellement on pourrait peut-etre utiliser un callback pour le S_global avec un value change sur le TabControl ...

Mais de toute façon, impossible d'utiliser le scripting pour créer des objets "suivant besoins" sur le front panel d'un superviseur "unique".

Cela pourrait (éventuellement ... à tester) fonctionner en mode "run" ... création et/ou modification d'objets dans un VI et ensuite appel asynchrone de ce VI,

mais cela ne fonctionnera de toute façon pas sur le code de l'exécutable. Donc, obligé au final d'avoir un "superviseur_local" par page.

 

C'est du code de haut vol tout ça !

 

Avec une configuration "fixe" de Controles/Indicateurs ...créer un "superviseur" n'est pas très compliqué (je t'ai donné 2 codes)

Mais si maintenant la "cible" est une page, parmis x pages ... variable dans sa composition, et variable quant au nombre de Controles à "superviser"

là ... on change de planète. Impossible ... non....  (tout est possible avec LV Smiley clignant de l'œil ) ... mais tu multiplies la complexité du code par 10.

 

et quand je vois que tu utilises 2 variables locales plutôt qu'un shift registre (dans la While où tu fais "+3")

et bien ... je me demande si tes connaissance en LV sont suffisantes pour mettre en place et maintenir un tel code.

 

 

0 Compliments
Message 25 sur 36
2 261 Visites

et quand je vois que tu utilises 2 variables locales plutôt qu'un shift registre (dans la While où tu fais "+3")

et bien ... je me demande si tes connaissance en LV sont suffisante pour mettre en place et maintenir un tel code.

 

J'ai réutilisé le code que tu m'avais donné, en le modifiant pour faire apparaître les onglets.

J'ai mis des variables locales car dans mon vrai programme les valeurs des Contrôles et Indicateurs sont utilisées à plusieurs endroits (dans différents cases, structures d'évènements, etc.) par des variables locales ou des noeuds de propriété. Faire un "+3" n'est pas mon objectif! Mes connaissances ne sont peut être pas suffisantes (il y a 1 mois je ne connaissais pas LV) mais c'est bien le but (d'apprendre).

 

As-tu déjà vu la classe ControlTerminal?

 

Le superviseur ne devra pas superviser l'ensemble des Controles et Indicateurs, seulement les entrées/sorties hardware (peut être que ça se fait de manière différente dans ce cas?).

 

 

 

Message 26 sur 36
2 255 Visites

J'ai un peu mélangé le superviseur et une autre fonction, s'y ressemblant.

 

Il y a le superviseur d'un côté, mais aussi la façon de récupérer des valeurs (une vingtaine) d'un VI appelant (comme un superviseur mais qui ne s'exécute qu'une fois). Le code que tu m'as donné me permet de récupérer des valeurs avec Open Object, mais ne fonctionne pas si la valeur que je veux récupérer appartient à un TabControl. 

0 Compliments
Message 27 sur 36
2 251 Visites

Le superviseur ne devra pas superviser l'ensemble des Controles et Indicateurs,

seulement les entrées/sorties hardware (peut être que ça se fait de manière différente dans ce cas?).

 

cela ne fonctionne pas avec un TabControl ... si, cela fonctionne aussi avec un TabControl ... on peut récupérer la reférence de la page "visible" ... là n'est pas le soucis.

 

La classe ControlTerminal ... oublie .... ça, c'est tout autre chose.

(ControlTerminal ... là, il s'agit du Terminal associé à un Controle ... on se trouve sur le Diagramme, plus sur le front panel)

 

seulement les entrées/sorties hardware

 

penses-tu pouvoir regrouper ces "entrées/sorties" sur une même page ?

Le supervisuer n'aurait dans ce cas qu'une seule page (unique) à surveiller.

 

apprendre ... oui, c'est bien ça ... (pas toujours facile, LV est complexe, ses capacités sont immenses)

Bravo et respect à toi.

 

 

 

0 Compliments
Message 28 sur 36
2 248 Visites

La classe ControlTerminal ... oublie .... ça, c'est tout autre chose.

(ControlTerminal ... là, il s'agit du Terminal associé à un Controle ... on se trouve sur le Diagramme, plus sur le front panel)

 

C'est bien pour ça que ça m'intéresse. Si on peut ne plus se soucier d'où est placé le Control sur le Front Panel, c'est parfait!

 

 

penses-tu pouvoir regrouper ces "entrées/sorties" sur une même page ?

Le supervisuer n'aurait dans ce cas qu'une seule page (unique) à surveiller.

 

Il n'est pas prévu qu'elles soient affichées sur le Front Panel (cachées). Je veux juste récupérer la valeur pour l'afficher dans une autre fenêtre (le VI de monitoring).

 

Question à part  :

Si un sous-vi a besoin de beaucoup de paramètres (répartis sur le Front Panel, sur différentes pages) du VI appelant, quelle est la meilleure solution ? Tout câbler sur des entrées (c'est moche et illisible), utiliser Open Object (d'où mes questions précédentes), ou autre chose?

0 Compliments
Message 29 sur 36
2 238 Visites

si tu as trop d'entrées sur un sous-Vi, tu peux les "compacter" via une fonction "bundle" et tu n'auras qu'une seule entrée. (un cluster)

 

à l'intérieur du sous-VI tu utilises la fonction inverse "unbundlle" pour démultiplexer le tout.

 

attention au jaune, cela rend le texte difficile à lire (merci)

0 Compliments
Message 30 sur 36
2 226 Visites