Funzione Quotient & Remainder in LabVIEW: più utile di quanto sembri

image_pdf

La funzione Quotient & Remainder in LabVIEW è fondamentale in molti casi in cui serve ripetere azioni a intervalli regolari, gestire indici ciclici, o organizzare i dati in gruppi.

Un esempio pratico è quando si vuole eseguire un’azione ogni “n” cicli di un loop: si può usare il resto della divisione per contare fino a n e poi riavvolgersi a 0.

Ne abbiamo visto un caso d’uso nell’articolo sulle tabelle a righe alterne o zebra striped.

Che cos’è Quotient & Remainder?

È una funzione aritmetica che prende in input due numeri, x e y, e restituisce:

  • Quoziente: la divisione intera x ÷ y, troncata.
  • Resto: il valore che “avanza” dalla divisione.
Quoziente = int(x / y)
Resto = x mod y

In LabVIEW è disponibile come nodo singolo, semplice da usare e facilmente integrabile in loop o algoritmi.

Perché è così utile?

Perché ogni volta che si lavora con periodicità, indici, buffer, cicli o rotazioni, c’è di mezzo una divisione intera. E quando serve sapere “a che punto siamo” dentro un ciclo, il modulo diventa fondamentale.

Vediamo alcuni casi reali in cui Quotient & Remainder fa la differenza.

1. Lettura Encoder: Giri e Angolo

Hai un encoder da 1024 PPR (impulsi per giro)? Vuoi sapere:

  • quanti giri ha fatto (quoziente),
  • qual è l’angolo residuo (resto)?

Ecco come fare:

[Totale impulsi encoder] ─────> Quotient & Remainder
                              ├──> Giri completati (Quoziente)
                              └──> Resto impulsi → ( / PPR ) * 360 = Angolo

2. Timer ciclico: azione ogni N iterazioni

Vuoi eseguire un’azione ogni 10 loop?

[Loop Counter] mod 10 == 0 → Esegui

Pratico per:

  • logging periodico
  • aggiornamento UI
  • check condizionali a bassa frequenza

3. Gestione Buffer Circolari

Hai un buffer di 256 elementi? Devi ciclare gli indici da 0 a 255 in loop?

indice = counter mod 256

Evita errori, overflow e semplifica la logica.

Buffer circolare Lossy Enqueue

4. Sequenze PWM e logica temporale

Vuoi simulare un PWM con duty cycle?

Funziona anche per pattern digitali, blinking, cicli on/off.

5. Distribuzione task

Vuoi inviare task ciclicamente a 4 banchi di test?

I singoli task sono rientranti ogni istanza prende la sua coda


In questo caso il vi rientrante è un poannello grafico che si può lanciare dinamicamente e va in parallelo al codice.

Perfetto per bilanciamento round-robin o assegnazioni distribuite.

Share the Post:

Related Posts