Questa è una vecchia versione del documento!
Indice
Esercizio dal testo di sistemi di quarta
Indirizzamento
| nome | indirizzo | descrizione |
|---|---|---|
| S1 | I0.0 | pulsante marcia NO |
| S2 | I0.1 | pulsante arresto NC |
| S3 | I0.2 | finecorsa 80cm NO |
| S4 | I0.3 | finecorsa 50cm NO |
| S5 | I0.4 | finecorsa 30cm NO |
| S6 | I0.5 | pulsante reset conteggi NO |
| B1 | I0.6 | fotocellula conteggio totale (1 = ostacolo) |
| B2 | I0.7 | fotocellula conteggio 80cm (1 = ostacolo) |
| B3 | I1.0 | fotocellula conteggio 50cm (1 = ostacolo) |
| B4 | I1.1 | fotocellula conteggio 30cm (1 = ostacolo) |
| Q11) | Q0.0 | contattore motore nastro 1 |
| Q2 | Q0.1 | espulsore 80cm |
| Q3 | Q0.2 | espulsore 50cm |
| Q4 | Q0.3 | espulsore 30cm |
| Q5 | Q0.4 | contattore motore nastro 80cm |
| Q6 | Q0.5 | contattore motore nastro 50cm |
| Q7 | Q0.6 | contattore motore nastro 30cm |
Soluzione SFC
In questo file zip una possibile soluzione che implementa il diagramma SFC visto sopra. Il programma è più lungo della soluzione precedente ma più affidabile/robusto. Questo tipo di problema, dove lo stesso algoritmo gestisce tre nastri con diversi, si prestava all'utilizzo dei blocchi FB; definendo un solo blocco con una sua interfaccia (delle variabili locali valide solo all'interno della funzione) si poteva richiamare tre volte con tre blocchi DB distinti per gestire i tre nastri.
Soluzione SFC con FB
in questo file zip una soluzione basata su SFC dove i tre nastri trasversali vengono gestiti da un unico FB richiamato tre volte con parametri diversi. Per far questo occorre usare un blocco funzionale FB e definire un'interfaccia, cioè indicare le variabili locali dell'FB usate come ingressi e uscite del blocco. Quando il blocco viene utilizzato si collegano a ingressi e uscite così definiti le variabili globali della tabella delle variabili standard (sono parametri e argomenti della funzione). I timer e i contatori usati nella definizione dell'FB sono di tipo multi-istanza invece che singola-istanza (la scelta predefinita). In questo modo i valori di timer e contatori sono salvati direttamente nel blocco dati DB dell'istanza di FB insieme al valore delle variabili locali.
Altro
File con il sorgente XML per draw.io dell'SFC e immagine PNG generata (senza contatori).
*/


