Come disegnare un diagramma temporale — L'interfaccia comune tra persone e codice, e tra persone

Ultimo aggiornamento: 2026-09-25 / Categoria: Progettazione del controllo, PLC

Il diagramma temporale consegna al programmatore la «sequenza dei movimenti» che il meccanico ha in testa. Questa guida è per chi deve scrivere un programma avendo in mano solo i disegni e la lista dei cablaggi, e per il meccanico che vuole trasmettere la sequenza.

1. I disegni non contengono la sequenza. La contiene questo diagramma

Guardando la macchina non si capisce come doveva muoversi. I disegni mostrano dove sono i cilindri e i sensori, ma non la sequenza «chiudi la pinza dopo che è arrivato il fine corsa avanti».

Il programmatore che non conosce la sequenza può solo tirare a indovinare. Se indovina, la macchina funziona; se sbaglia, si ferma in messa in servizio. Il diagramma temporale tira fuori questa sequenza dai disegni e la mette tra l'hardware e il software. Forme d'onda e frecce sono solo l'aspetto esteriore; la sostanza sono le tre cose qui sotto.

2. Il diagramma contiene tre cose

① Tagliare il movimento continuo in stati

La prima è tagliare in «stati» un movimento che non ha interruzioni. Lo stelo si muove in continuo e il motore continua a girare. Il software non sa gestire nulla senza confini, quindi si taglia da qualche parte: «in avanzamento finché il fine corsa avanti non va ON», «avanzato una volta che è ON».

Diagramma temporale con 1 Step = 100 ms. Dall'alto: bFwdCmd (comando di avanzamento, PLC→cilindro), nRodPos (posizione dello stelo, cilindro→PLC, forma d'onda che sale da 0 a 100 mm), bFwdLS (LS di fine corsa avanti, ON a S7 quando la posizione raggiunge 100) e lo stato interno sState (stato) come blocchi di valore Indietro, In avanzamento, Avanzato. Le frecce vanno dal fronte di salita del comando a In avanzamento e dal fronte di salita del finecorsa ad Avanzato.
Le due righe in alto sono il lato macchina (il comando e il movimento continuo dello stelo); le due in basso sono il lato software (il finecorsa che segna il taglio e gli stati che ne risultano). Le frecce segnano la decisione su dove tagliare.

Perché serve — Solo il meccanico sa dove tagliare. La posizione del sensore e la posizione che il meccanico chiama «completato» non sempre coincidono. Se il taglio non è nel diagramma, il programmatore prende l'ON del sensore come completamento e scrive così.

② Sincronizzare dispositivi con cicli diversi

La seconda è la procedura che tiene al passo dispositivi con cicli scollegati tra loro. Il PLC esegue la scansione ogni 10 ms, il robot ha il suo ciclo, la macchina accanto gira su un altro PLC. Nessuno conosce il ciclo dell'altro. Se il segnale viene solo lanciato, può sparire prima che l'altro lo guardi, o essere letto due volte quando ne intendevi una.

Diagramma temporale con 1 Step = 10 ms. Dall'alto: bReq (richiesta, PLC A→PLC B), bReqRead interno (la richiesta letta da B, che legge ogni 50 ms) e bAck (risposta, PLC B→PLC A). Nella prima metà, la richiesta che A mette ON per un solo Step a S1 non compare mai in ciò che B legge. Nella seconda metà A mantiene la richiesta da S6; B la legge a S10 e la risposta va ON; A vede la risposta e toglie la richiesta a S11; B vede cadere la richiesta e toglie la risposta a S13. Tre frecce.
Prima metà: il segnale viene solo lanciato (sparisce tra un ciclo e l'altro di B). Seconda metà: si attende la risposta dell'altro (viene letto con certezza senza conoscere il ciclo).

Perché serve — Ogni dispositivo può essere costruito correttamente da solo e rompersi comunque nel punto di incontro. Le quattro variazioni richiesta ON → risposta ON → richiesta OFF → risposta OFF (l'handshake) non sono un trucco. Sono la procedura più piccola con cui due dispositivi asincroni si accordano con certezza su uno stato. Salta un passo e le due implementazioni divergono esattamente lì.

③ Fissare come contratto il confine di responsabilità tra i dispositivi

La terza è la promessa tra un dispositivo e l'altro. Si decide fin nei tempi: «lascia almeno 500 ms tra il Servo Ready che va ON e la richiesta di movimento». Il tempo di attesa si disegna come forma d'onda del timer che misuriamo noi; cosa alza l'altro e quando alziamo il nostro vanno su righe separate. A chi appartiene ogni riga è ciò che rende visibile il confine.

Diagramma temporale con 1 Step = 100 ms. La riga in alto è bServoReady (Servo Ready, servoazionamento→PLC), ON a S3. La riga centrale è tReadyWait interno (tempo trascorso dal Ready), forma d'onda che sale 0, 100, … 500 ms dal fronte di salita del Ready. La riga in basso è bRunReq (richiesta di movimento, PLC→servoazionamento), ON a S8 quando la forma d'onda raggiunge 500. Le frecce vanno dal fronte di salita del Ready all'inizio della forma d'onda, e dal 500 della forma d'onda al fronte di salita della richiesta.
In alto: la responsabilità dell'altro (alzare il Ready). In basso: la nostra (vedere il Ready, attendere 500 ms, alzare la richiesta). La forma d'onda al centro è il tempo che misuriamo noi. Il tipo di promessa che si trova scritto nel manuale.

Perché serve — Una volta concordato questo, ciascuna parte è libera di costruire il proprio interno. Qualunque cosa faccia il servoazionamento dentro, il lato PLC non cambia finché Ready e i 500 ms sono rispettati. Senza accordo, entrambe le parti costruiscono su ipotesi sull'altra, e la messa in servizio diventa «il tuo lato è lento» e «il tuo lato l'ha tolto prima».

3. Come appare sul diagramma

4. Ordine di disegno

  1. Elenca i dispositivi e i segnali scambiati al confine Raggruppa le righe per dispositivo e a ogni segnale aggiungi il nome della variabile e il device, per es. Richiesta di carico bLoadReq / Y020.
  2. Disegna un ciclo normale, tagliando a ogni confine di stato Dall'avvio al completamento, metti i fronti in ordine e uniscili con le frecce. Un fronte che non riesci a unire è un taglio non ancora deciso.
  3. Aggiungi in numeri le condizioni di tempo ai confini Tempi di attesa e scadenze di risposta, vicino al fronte o nel commento della riga.
  4. Disegna anomalie e ripristino su diagrammi separati Stesse righe, trama diversa. Decidi dove si ferma, quali segnali cadono e come torna in posizione di riposo.

5. Dove si inciampa

6. Dopo aver disegnato

Le frecce diventano le decisioni del diagramma di flusso (le condizioni per andare avanti) e le righe diventano le variabili della mappa degli indirizzi.

Gli strumenti usati per le figure di questo articolo

Tutte le figure di questo articolo sono state disegnate con Timing Chart Editor ed esportate in SVG.

  • Timing Chart Editor — Ordina le righe per lato che le pilota (M / S), traccia frecce da variazione a variazione e annota tempi di attesa e commenti.
  • Flowchart Editor — Trasforma le frecce del diagramma in decisioni e attese e compone il diagramma di flusso.
  • Address Map Editor — Assegna i device del PLC ai segnali del diagramma.

Senza installazione né registrazione. Funzionano nel browser.

Articoli correlati

yk.builds