Se vogliamo parlare di automazione e di programmi ladder, leggibili, manutenibili, (in senso lato), allora bisogna anche seguire un logica in questo.
Una sequenza ladder la si scrive in modo da poter anche essere riletta, corretta, animata.
Le varie network si susseguono in modo logico, senza mescolarsi, suddividendo il programma in macro blocchi.
Venendo al concreto e tralasciando tutto il resto di un teorico programma, avremo un task per il sequenziatore, che partirà dal primo passo, fino all'ultimo, seguento il naturale evolvere del ciclo:
E successivamente, in altro task, avremo la parte di codice per le attuazioni:
Dove io nel primo esempio ho messo il bit cumulativo "bTransition1" si può immaginare l'esploso di tutte le condizioni che producono la transiszione al passo 2.
Il cambio passo avviene sempre accertandosi di commutare, resettando quello precedente e settando il successivo. Nelle task di attuazione, poi, se occorre si usaranno i merker di più passi per attuare il comando voluto.
Non c'è nessun compilatore di codice Grapcet, (di quelli che ho usato), che si dimentichi, durante una transizione, di resettare il passo d'uscita. Oltre che una probabilissima fonte di errore, è una bruttura spaventosa.
Se si prendono cento programmatori, di fronte allo stesso compito, si otterranno cento programmi diversi. Questo è pacifico. Ed è pacifico che il programma migliore sarà quello anche più leggibile, malleabile alla manutenzione, animabile con rapidità.
Un ultimissima nota: è da venti anni e forse più che mi occupo di impianti industriali. Ho visot un unico MCC,desueto, che nessuno voleva. Ho invece visto ante, ante ed ante di minicontattori, contattori, inverter ed azionamenti, ed è bene che il programma PLC sia molto ben fatto, perché nessuno risolverà mai i problemi del programmatore, anzi, davanti ad un problema se non lo risolverai, ti schiacceranno.