Labview Wait and Wait Until Next multiple.

In labview sono utilizzate per inserire un ritardo, ma non lo fanno allo stesso modo e hanno scopi di utilizzo diversi.

Due funzioni fondamentali che spesso vengono confuse, approfondiamo in questo articolo le funzioni di timing, “wait” e “wait until next multiple” e come utilizzarle.

Wait

Wait LabVIEW

La funzione Wait(ms) semplicemente blocca l’esecuzione fino a che il tempo specificato non trascorre.

Wait until next ms multiple

La funzione “Wait Until Next ms Multiple”, invece blocca l’esecuzione aspettando un multiplo del clock di sistema, espresso in millisecondi, non è divisibile per valore specificato nella funzione.

Entrambe hanno funzione di “Attesa” o “Delay”, ma dalla descrizione capiamo che hanno un funzionamento diverso.

Test

Proviamo con un esempio pratico.

Usiamo il TickCount, come cronometro.

La funzione tick count (ms) viene utilizzata in LabVIEW come un cronometro, essa restituisce il tempo di esecuzione  in millisecondi(ms), perciò può essere molto utile anche per fare dei test di prestazione dei propri VI.

Ricordare che utilizzandolo per comparazione ed essendo 32Bit quindi la capacità di 2^32-1.

The base reference time (millisecond zero) is undefined. That is, you cannot convert millisecond timer value to a real-world time or date. Be careful when you use this function in comparisons because the value of the millisecond timer wraps from (2^32)–1 to 0.

LabVIEW Help

Va bene per cronometri nell’ordine dei ms ma non usare per misurare tempi più lunghi dove si può usare la funzione “Get Date/Time in seconds“, che fornisce un timestamp in secondi.

Tornando a noi, cosa fa e come si comporta il VI?

In sequenza viene preso un Tcount0, la funzione Wait attende esattamente il tempo impostato in waitTime.

Proseguendo la funzione Wait Until aspetta il primo multiplo dei ms impostati al suo terminale.

Quindi se la waitTime del primo wait è impostata a 50ms e il terminale di WaitUntil è 200ms, la wait until dovrà attendere 150ms prima di trovare il suo prossimo multiplo.

Di conseguenza

wait 50ms (impostato a 50ms)

wait until 150ms (impostato a 200ms)

Tempo ciclo totale 200ms

Come e dove usarli?

  • Inserire un ritardo fisso dopo una funzione, come una write per inviare un comando. In questo caso usare Wait in serie al codice.
  • Fornire un loop rate fisso indipendente dal tempo operazione.Wait in parallelo
  • Loop rate adattabile al tempo del codice. Wait Until in serie al codice.

Consigli

  • Per mantenere reattivo il codice e soprattutto la UI, non mettere tempi di pausa alti. Esempio se devi creare una pausa di 10s o più, usa Time Elapsed con un wait ciclo di 200ms.
  • Temporizzare sempre i loop in caso di polling, in windows inutile scendere sotto i 50ms se il loop aggiorna una Interfaccia Utente usare da 150:250ms relativamente alla percezione dell’ occhio umano.

Approfondimenti

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P82BSAS&l=it-IT

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000YKYzCAO&l=it-IT

https://www.ni.com/it-it/shop/labview/timing-and-synchronization-in-ni-labview.html

Ora puoi approfondire questo argomento con uno dei nostri corsi HandsON.

Protocolli Industriali con LabVIEW

Scoprire i protocolli industriali, come integrarli in labview. In questo corso impararerai a implementare toolkit e librerie, per utilizzare protocolli come ModBus e OPC-UA
Intermedio

Liv. Intermedio

OnLine; Con Istrutttore

3 gg

LabVIEW UI/UX

Lo sviluppo di applicativi per Testing e Misure vede sempre più una necessità di integrare interfacce curate soprattutto in prospettiva dell'utilizzo da utenti meno esperti e nel considerare di ridurre errri e incertezze dovute spesso ad un interfaccia poco chiara e intuitva.
Intermedio

Liv. Intermedio

OnLine; Con Istrutttore

3 gg

Corso LabVIEW StateMachine Pro

Il paradigma di programmazione convenzionale è il data flow. Siamo abituati ad usare il cluster di errore per gestire la sequenza di esecuzione dei nodi in labview. La macchina a Stati, permette di gestire l'ordine di esecuzione condizionato all'uscita dello stato in esecuzione. L'implementazione di questo pattern permette quindi l'integrazione del diagramma di stato e una razionalizzazione dell'applicazione, diventando più flessibile, leggibile e manutenibile.
INTERMEDIO

Liv. INTERMEDIO

In Presenza

1 gg

Scopri i nostri servizi e Prodotti, Contattaci ora!

Altri articoli dal nostro Blog

LabVIEW, un ambiente di programmazione grafica ampiamente utilizzato per il controllo e l’automazione, offre potenti strumenti di sincronizzazione come eventi, code e notificatori per gestire la comunicazione tra processi paralleli. Tuttavia, quando si affronta la gestione del timeout su funzioni di sincronismo, è cruciale adottare strategie efficaci per garantire la reattività del sistema.
L’azienda leader nel settore elettrico in Ungheria ha collaborato con Bytelabs per implementare un sistema avanzato di collaudo e caratterizzazione degli avvolgimenti elettrici. Utilizzando tecnologie come Advantech ADAM 5000 TCP, LabVIEW e il power meter Yokogawa WT5000, il sistema permette test ad alta velocità, salvataggio sicuro dei dati su un server SQL e creazione automatica di report PDF. La flessibilità di eseguire test manuali o automatici ha migliorato l’efficienza operativa, consentendo un collaudo più rapido e una tracciabilità dei prodotti ottimizzata. L’implementazione ha portato a significativi miglioramenti nell’efficienza e nella qualità del processo di collaudo e caratterizzazione degli avvolgimenti elettrici.
La certificazione dei prodotti è fondamentale per garantire la sicurezza e la qualità dei prodotti che vengono immessi sul mercato. Tra le diverse fasi del processo di certificazione, i test giocano un ruolo centrale, sia per garantire la conformità del prodotto ai requisiti normativi sia per verificare la sua affidabilità e sicurezza.