2015-07-30 16 views
5

Sto scrivendo un programma per controllare due dispositivi simili in Labview. Per evitare di copiare il codice, utilizzo subVI. Ma ho un pezzo di codice in cui aggiorno alcuni valori sulla GUI all'interno di un ciclo while. Mi piacerebbe sapere se è possibile in qualche modo avere questo ciclo all'interno del mio subVI e avere il subVI che invia uno dei parametri di output dopo ogni iterazione.Aggiornamento di una GUI LabVIEW da un subVI

risposta

6

di aggiornare il tuo GUI dall'interno di un subVI è possibile eseguire una delle seguenti operazioni:

  • creare una coda o notificante nel vostro livello VI superiore e passare il riferimento al tuo subVI. Nel subVI, inviare i dati alla coda o al notificatore. Nel VI di livello superiore, un ciclo attende i dati sulla coda o sul notificatore e lo scrive sull'indicatore del pannello anteriore.
  • Creare un riferimento di controllo all'indicatore del pannello anteriore nel VI di livello superiore e passare il riferimento al subVI. Nel subVI, utilizzare un nodo di proprietà per scrivere la proprietà dell'indicatore Value.

Se si guarda la guida di LabVIEW per i termini in grassetto, troverete documentazione ed esempi su come usarli.

Di queste opzioni, vorrei utilizzare una coda per tutti i dati in cui è importante che il VI di primo livello riceva ogni punto dati (ad esempio se i dati vengono tracciati su un grafico o registrati in un file) o un notificatore in cui è solo necessario che l'utente veda l'ultimo valore. L'utilizzo dei riferimenti di controllo per questo scopo è un po '"veloce e sporco" e può causare problemi di prestazioni.

Se è necessario aggiornare più di un paio di indicatori come questo, è probabile che si desideri creare un cluster contenente i dati inviati alla coda/notificatore o contenenti i riferimenti di controllo. Salva il tuo cluster come typedef in modo da poterlo modificare senza interrompere il codice.

+0

Grazie, questo aiuta :) – user2738748