filoconduttore

Quando la memoria serve: dal combinatorio al sequenziale

Superiori — triennioAggiornata: 11 agosto 2026

Prerequisiti: Porte logiche e tabelle di verità, Algebra di Boole e semplificazione

Fino a qui l’uscita di una rete dipendeva solo dagli ingressi presenti in quel momento: fissata la combinazione, l’uscita è decisa. È il significato stesso di tabella di verità, ed è il motivo per cui una rete combinatoria si può sempre scrivere come una tabella.

Il primo impianto vero rompe questa regola, e la rompe subito.

Il caso

Un serbatoio con due sensori di livello, una pompa che lo riempie e una valvola che lo scarica.

Serbatoio con due sensori di livello: A in basso e B in alto, la pompa P che immette liquido dall'alto e la valvola V che scarica dal basso

I dati del problema:

  • i sensori AA e BB valgono 1 quando sono immersi, 0 quando sono all’asciutto;
  • AA sta più in basso di BB;
  • la pompa PP si accende con un 1 in uscita, la valvola VV pure.

E la specifica di funzionamento, in due fasi:

Riempimento — la pompa parte quando il livello è sotto AA (serbatoio vuoto) e continua finché il liquido, salendo, raggiunge BB (serbatoio pieno).

Svuotamento — da pieno, il serbatoio può essere scaricato. Un nuovo riempimento è ammesso solo quando il livello torna sotto AA.

L’ipotesi che regge tutto il ragionamento: durante il riempimento non si preleva liquido.

Senza di essa il livello potrebbe scendere mentre la pompa è accesa, e le due fasi non sarebbero più distinguibili dal verso di marcia del livello. È scritta nel testo del problema, ma è il tipo di riga che si salta leggendo — ed è l’unica che rende la soluzione qui sotto corretta.

Prima prova: la tabella di verità

Due sensori, quindi quattro combinazioni. Proviamo a riempirla come si è sempre fatto.

AABBlivelloPP
00sotto entrambi: vuoto1
01
10fra i due sensori?
11sopra entrambi: pieno0

Le righe estreme non danno problemi: vuoto si riempie, pieno si ferma. Le altre due sì, e per motivi diversi fra loro.

Riga A=0, B=1A=0,\ B=1. Il sensore alto immerso mentre quello basso è all’asciutto: il liquido dovrebbe stare sopra BB e sotto AA contemporaneamente. Non può succedere, e la casella si lascia libera — è una condizione di indifferenza: qualunque valore ci si metta, la realtà non la produrrà mai.

Riga A=1, B=0A=1,\ B=0. Qui il liquido sta a metà, e questa situazione si verifica eccome: ci si passa due volte, una salendo e una scendendo.

La contraddizione

Due serbatoi affiancati allo stesso livello: in quello di sinistra il liquido sale e la pompa deve restare accesa, in quello di destra scende e la pompa deve restare spenta

Salendo, la specifica dice continua fino a BB: quindi P=1P = 1. Scendendo, dice nuovo riempimento solo sotto AA: quindi P=0P = 0.

A=1, B=0    P=1durante il riempimentoeA=1, B=0    P=0durante lo svuotamento\underbrace{A = 1,\ B = 0 \;\rightarrow\; P = 1}_{\text{durante il riempimento}} \qquad\text{e}\qquad \underbrace{A = 1,\ B = 0 \;\rightarrow\; P = 0}_{\text{durante lo svuotamento}}

Non è un errore di compilazione della tabella: sono le due richieste della specifica, tradotte correttamente. La tabella non riesce a contenerle.

Nessuna rete combinatoria realizza questo impianto. Non è che non l’abbiamo ancora trovata: non esiste. Una rete combinatoria, per definizione, associa a ogni combinazione di ingressi una sola uscita — e qui la stessa combinazione ne pretende due.

Se leggendo una specifica trovi la stessa combinazione di ingressi con due uscite diverse, hai appena dimostrato che il problema è sequenziale.

Impossibile e ambiguo non sono la stessa cosa, anche se in tabella lasciano tutti e due la casella vuota.

A=0, B=1non accade maiA=1, B=0accade, e serve un’altra informazione\underbrace{A=0,\ B=1}_{\text{non accade mai}} \qquad\neq\qquad \underbrace{A=1,\ B=0}_{\text{accade, e serve un'altra informazione}}

La prima è un dono: la si riempie come fa comodo per semplificare. La seconda è il problema: riempirla “come fa comodo” produce un impianto che sbaglia metà delle volte, e sbaglia in modo intermittente — il caso peggiore da diagnosticare.

Che cosa manca

Manca il verso di marcia: il livello sta salendo o sta scendendo? Quell’informazione non è leggibile dai sensori adesso. Dipende da com’è andata prima.

Il pezzo mancante ha un nome: stato. Lo stato è ciò che resta della storia passata e che serve a decidere il presente — niente di più. Non serve sapere da quanti minuti la pompa gira né quante volte il serbatoio è stato riempito: basta sapere in quale delle due fasi ci si trova.

Una rete che tiene conto dello stato si chiama rete sequenziale:

uscita=f(ingressi)combinatoriauscita=f(ingressi, stato)sequenziale\underbrace{\text{uscita} = f(\text{ingressi})}_{\text{combinatoria}} \qquad\longrightarrow\qquad \underbrace{\text{uscita} = f(\text{ingressi},\ \text{stato})}_{\text{sequenziale}}

Il diagramma degli stati

Quando gli stati sono pochi conviene disegnarli. Ogni stato è un cerchio, ogni transizione una freccia con sopra la condizione che la fa scattare.

Diagramma a due stati: riempimento con pompa accesa e svuotamento con valvola aperta, collegati da una transizione quando B vale 1 e da una transizione di ritorno quando A vale 0

Si legge così:

  • nello stato riempimento la pompa è accesa; finché B=0B = 0 ci si resta;
  • quando BB diventa 1 (pieno) si passa a svuotamento;
  • nello stato svuotamento la pompa è spenta; finché A=1A = 1 ci si resta;
  • quando AA torna a 0 (vuoto) si rientra in riempimento.

A un diagramma completo manca ancora un pezzo, e ci si accorge solo provando a usarlo: da dove si parte? Lo stato iniziale si marca con una freccia che entra nel cerchio dal nulla, e non è un dettaglio grafico: all’accensione l’impianto deve pur stare da qualche parte, e quale sia è una scelta di progetto, non qualcosa che si scopre. Qui la scelta prudente è partire in svuotamento — il perché è nella lezione sul ladder, che all’accensione dedica una sezione intera.

La stessa cosa in forma di tabella, che è ciò che si usa quando gli stati diventano troppi per stare in un disegno:

stato attualeAABBstato prossimoPPVV
riempimento00riempimento10
riempimento10riempimento10
riempimento11svuotamento01
svuotamento11svuotamento01
svuotamento10svuotamento01
svuotamento00riempimento10

Le uscite in tabella sono quelle dello stato prossimo, non di quello attuale. Sulle due righe di transizione la pompa ha già cambiato valore: appena BB arriva a 1, PP va a 0 — non al giro dopo.

Non è una finezza di notazione: è come si comporta l’impianto vero — appena il sensore di pieno commuta, la pompa si spegne subito, non un giro dopo. Questo basta per leggere la tabella; la prova formale arriva nella lezione sul ladder, dove la rete che realizza questo impianto è P=B(A+P)P = \overline{B}\,(\overline{A} + P): con A=1, B=1A=1,\ B=10(0+1)=00\cdot(0+1) = 0 nello stesso ciclo di scansione in cui il sensore commuta. Se la tabella dicesse P=1P=1 su quella riga, descriverebbe un impianto diverso da quello che poi si costruisce.

Leggendo la tabella tieni quindi l’occhio sulla colonna stato prossimo: è lei che comanda le uscite. La convenzione opposta — uscite decise dal solo stato attuale — esiste ed è altrettanto legittima, ma va detta, perché cambia il comportamento di un ciclo.

La riga che prima era irrisolvibile ora compare due volte — una per stato — con uscite diverse e senza nessuna contraddizione. Aggiungere lo stato non è un trucco per aggirare la tabella: è allargarla con la colonna che le mancava.

E come si realizza, uno stato?

Con due stati basta un bit di memoria. E il bit si può ricavare da quello che già c’è: se la pompa è accesa, siamo in riempimento; se è spenta, in svuotamento. Lo stato coincide con l’uscita.

Da qui la mossa che risolve il problema: rileggere la propria uscita come se fosse un ingresso. Il come si vede nella lezione sul linguaggio ladder, dove questo schema ha un nome preciso — autoritenuta — e due righe di disegno.

Esercizio.

  1. Un nastro trasportatore ha un pulsante di marcia MM e uno di arresto SS. Premuti e rilasciati, il nastro deve restare com’era. Il problema è combinatorio o sequenziale? Perché?
  2. Nel serbatoio, quante combinazioni di sensori restano ambigue se i sensori diventano tre (AA basso, CC centrale, BB alto), con la stessa specifica a due fasi?
  3. Scrivi la tabella delle transizioni di un semaforo a tre stati (verde → giallo → rosso → verde) comandato da un unico ingresso TT che vale 1 quando il tempo dello stato è scaduto.
  4. Perché nel diagramma del serbatoio non esiste una freccia diretta da riempimento a riempimento passando per B=1B = 1?
Mostra la soluzione

1. Sequenziale. Con entrambi i pulsanti rilasciati (M=0M = 0, S=0S = 0) il nastro deve poter essere sia fermo sia in marcia: stessi ingressi, due uscite. È esattamente il criterio visto sopra. Lo stato qui è “il nastro sta andando”, e non è leggibile dai pulsanti.

2. Restano ambigue due combinazioni. Con tre sensori le configurazioni fisicamente possibili sono quattro, ordinate dal basso:

(0,0,0)(1,0,0)(1,1,0)(1,1,1)(0,0,0) \quad (1,0,0) \quad (1,1,0) \quad (1,1,1)

La prima e l’ultima sono i due estremi e decidono da sole; le due intermedie si attraversano sia salendo sia scendendo, quindi restano ambigue entrambe.

Il numero di sensori non elimina l’ambiguità: la sposta soltanto. È un buon indizio che il problema non fosse di misura ma di informazione mancante.

3.

stato attualeTTstato prossimo
verde0verde
verde1giallo
giallo0giallo
giallo1rosso
rosso0rosso
rosso1verde

Le uscite sono le tre lampade, ognuna accesa nel proprio stato.

4. Perché B=1B = 1 è la condizione che definisce il cambio di fase: se ci fosse anche una freccia che riporta a riempimento, con lo stesso ingresso il sistema avrebbe due destinazioni diverse e il diagramma tornerebbe ambiguo come la tabella di partenza.

Verifica. Il controllo che smaschera un diagramma sbagliato è questo: da ogni stato, le condizioni scritte sulle frecce uscenti devono essere mutuamente esclusive e coprire tutti i casi possibili. Da riempimento escono B=0B=0 (resta) e B=1B=1 (va a svuotamento): esclusive ✓, esaustive ✓. Da svuotamento escono A=1A=1 e A=0A=0: idem ✓. Se due frecce dallo stesso stato possono essere vere insieme, il sistema è indeterminato; se una combinazione non compare su nessuna, il sistema si blocca quando quella si presenta.