Design Pattern #6- Producer/Consumer

L’applicazione è formata da due cicli paralleli, il primo ciclo chiamato Produttore ha quindi il compito di produrre dati per secondo ciclo consumatore.

Producer/Consumer Design Pattern

Nello scorso articolo abbiamo visto la QSM, oggi vedremo la Producer/Consumer Design Pattern

Il Producer/Consumer Design Pattern è un modello di progettazione tra i più utilizzati, ti permette di eseguire codice  condiviso tra due loop paralleli chiamati Produttore e Consumatore, a velocità differenti.

Per compensare la differenza di velocità, i dati vengono memorizzati in un Buffer chiamato FIFO (Firts In Firts Out), che regola il flusso di dati.

Quando esistono più processi in esecuzione a velocità diverse, la comunicazione bufferizzata tra i processi è estremamente efficace.

Esempio: Un’ applicazione è composta da due processi, il primo elabora dati per il secondo a una velocità doppia, verrà utilizzata l’architettura Producer/Consumer.

L’applicazione è formata  da due cicli paralleli, il primo ciclo chiamato Produttore ha quindi il compito di produrre dati per secondo ciclo consumatore.

All’ interno dell’ applicazione sono usate le funzioni base delle code, nessun dato è perso.

L’approccio del modello produttore / consumatore a questa applicazione consiste nel mettere in coda i dati nel ciclo del produttore e far sì che l’elaborazione effettiva sia eseguita nel ciclo del consumatore.

Esempio: Per il caso Exit, verrà incodato il messaggio di uscita nel loop producer, e il consumer eseguirà poi l’evento associato ad esso.

In conclusione si può affermare che questo tipo di modello di progettazione rimane sicuramente tra quelli più utilizzati all’ interno di applicazioni complesse, che necessitano di compiere multiple operazioni allo stesso tempo, come l’aquisizione e la scrittura di dati, iterando ognuna individualmente.

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.