le 03-05-2015 09:38 AM
Bonjour à tous,
Premier post dans ce forum pour moi, qui m'a l'air bien sympathique!
Je débute en Labview et j'ai quelques questions sur des applications bien particulières.
Est-il possible de créer un sous-vi (pour afficher dans une autre fenêtre que le VI principal) qui affiche les valeurs des Control du VI principal.
J'aimerai éviter de passer par des variables partagées, globales ou des liaisons.
Le but étant de pouvoir avoir une fenetre qui affiche toutes les valeurs tout en continuant le fonctionnement normal (visualiser les E/S RIO par exemple).
Petite question supplémentaire : est-il possible de modifier une variable appartenant au VI principal dans un sous-vi?
Merci à tous
Paul
03-05-2015 07:17 PM - modifié 03-05-2015 07:17 PM
ici aussi, il y a plusieurs façons de faire "ça".
juste "une" ... (plutôt simple) .... considère ça comme une première piste.
j'utilise un Notifier (aucune liaison entre le "Main" et le "sous-VI d'affichage"
fichier joint en LV2013
le 03-06-2015 01:29 AM
Merci pour cette réponse rapide.
Je vais regardé cela 🙂
J'ai une petite question supplémentaire, pour ne pas poster un nouveau sujet car la réponse devrait être simple pour les connaisseurs :
est-il possible de pointer un indicateur sur un control (à la façon des pointeurs en C)?
Thanks!
le 03-06-2015 04:25 AM
Pointer un Indicateur sur un Control ???
voila ...
.... mais ce n'est certainement pas cela que tu as en tête.
alors ?
que veux-tu dire exactement par "pointer un Indicateur sur un Control" ???
(explique ... avec LV on peut tout faire
)
le 03-06-2015 04:32 AM
J'y ai bien pensé à cette solution!
Mais la valeur de l'Indicateur n'est pas modifiée quand le Control est modifié!
Je veux dire par pointer : qu'ils représentent la même donnée (un en écriture, l'autre en lecture) (la même partie mémoire en gros).
Du coup la valuer de l'Indicateur est toujours identique à celle du Control, pas besoin de faire de mise à jour, d'utiliser un Notifier ou autre.
le 03-06-2015 05:09 AM
Mais la valeur de l'Indicateur n'est pas modifiée quand le Control est modifié!
si ils sont reliés entre eux .... si !!!
donne moi un exemple de code ou le Control ne modifie pas la valeur de l'indicateur.
qu'ils représentent la même donnée (un en écriture, l'autre en lecture) (la même partie mémoire en gros).
Du coup la valuer de l'Indicateur est toujours identique à celle du Control, pas besoin de faire de mise à jour, d'utiliser un Notifier ou autre.
si ... différentes façons ...
Je ne dirai pas qu'un seul emplacement mémoire représentera l"un et l'autre, mais le résultat est identique.
tu prends un Control et tu l'utilises (aussi) comme un Indicateur via ... une variable locale ou un noeud de propriété.
le 03-06-2015 05:36 AM
Merci de passer du temps à me répondre ![]()
Pour la première solution (relier directement par un fil), si dans un autre endroit du code je modifie un des deux éléments, l'autre ne sera pas mis à jour, n'est-ce pas?
La variable locale ou le noeud j'y ai pensé. Ce que je souhaite c'est éviter de devoir coder à chaque fois l'écriture dans une variable locale (ou un noeud de propriété).
Si on pouvait indiquer une bonne fois pour toute que deux éléments sont liés (changer la référence mais conserver le label) ça serait idéal.
03-06-2015 06:34 AM - modifié 03-06-2015 06:35 AM
Pour la première solution (relier directement par un fil), si dans un autre endroit du code je modifie un des deux éléments,
l'autre ne sera pas mis à jour, n'est-ce pas?
correct
La variable locale ou le noeud j'y ai pensé. Ce que je souhaite c'est éviter de devoir coder à chaque fois l'écriture dans une variable locale (ou un noeud de propriété).
Si on pouvait indiquer une bonne fois pour toute que deux éléments sont liés (changer la référence mais conserver le label) ça serait idéal.
tu parles d'un emplacement mémoire unique dont l'accès (référence) serait multiple.
non, ce n'est pas possible.
ET ...
le plus "dangereux" .... est que l'ensemble de ton idée va totalement à l'encontre du principe de base (et fondateur) de Labview
à savoir que Labview est basé sur un flux de données ... (et non un flux d'instructions comme les autres langages textuels)
Cette phrase de ta part :
si dans un autre endroit du code je modifie un des deux éléments, l'autre ne sera pas mis à jour, n'est-ce pas?
est flagrante à ce sujet ... tu n'as pas compris le principe de base de Labview. (le flux de données)
Si tu abordes LV avec un mode de pensée "C" ... tu vas droit dans le mur.
Rassure toi, il m'a fallu plus d'un an pour comprendre réellement ce que cela signifiait.
Au début, on dit : "wéé, facile, j'ai compris" ... mais en comprendre toutes les subtilités est un rien plus complexe.
le
03-06-2015
07:05 AM
- dernière modification le
04-29-2025
02:59 PM
par
Content Cleaner
Salut,
Comme d'habitude les réponses de ouadji sont pertinentes :).
Voici un lien qui explique avec des exemples la notion du flux des données dans le diagramme.
le 03-06-2015 07:18 AM
Je pose ces questions pour savoir s'il existe quelque chose de plus propre que de câbler des variables locales plusieurs fois.
Pour avoir une programme principal qui tourne et un deuxième VI qui m'affiche l'ensemble des variables du VI principal, je suis donc obligé, à chaque endroit où des valeurs sont modifiées, d'utiliser une variable local en écriture, ou un notifier.
Ca surchage beaucoup au final! Voilà le pourquoi de ce sujet.
Le flot de donnée je comprends (je pense) mais ça oblige à utiliser des liaisons! J'ai un diagramme qui est déjà bien plein et j'aimerai éviter de surcharger quand cela est possible (7Mo le VI principal et ça rame bien...)
(programme codé par quelq'un d'autre que je récupère).