Portare il pensiero orientato agli oggetti nella programmazione dei PLC
Il copia-incolla a cascata non è scalabile. Le tecniche PLC orientate agli oggetti—strutture e istruzioni definite dall’utente—riducono la duplicazione, prop...
Dalla fine degli anni ’60, i controllori logici programmabili hanno gestito la tecnologia operativa degli impianti: CPU robuste, scansioni deterministiche e I/O in grado di sopravvivere nell’ambiente in cui si svolge il processo. La logica ladder ha avuto successo perché ricordava gli schemi a relè a cui gli elettricisti erano già abituati. Questa caratteristica diventa però un limite quando una linea si espande fino a comprendere decine di valvole, sensori e skid confezionati identici.
Il copia-incolla non è scalabile. I tag vengono digitati male. Un’istanza viene corretta e altre quindici no. La tecnologia dell’informazione ha risolto la stessa proliferazione con la programmazione orientata agli oggetti. Oggi le piattaforme industriali stanno importando queste pratiche, senza costringere ogni tecnico dei sistemi di controllo a diventare uno sviluppatore C++.
I controller modulari e i rack I/O rendono evidente il riutilizzo dell’hardware; il riutilizzo del software emerge solo quando il modello di programmazione smette di trattare ogni dispositivo come un lavoro di copia-incolla unico.
Cosa significano gli “oggetti” accanto a un rung
Le applicazioni PLC sono piene di comportamenti ripetuti: sensori digitali, valvole di controllo, sistemi HVAC e gruppi pompa. Il percorso più semplice consiste nel duplicare la logica per ogni dispositivo e sostituire manualmente i tag. In una piccola cella può funzionare. In un grande programma OT produce un labirinto lento da navigare, costoso da modificare e ricco di discrepanze silenziose.
Il pensiero orientato agli oggetti raggruppa dati e comportamenti correlati in definizioni riutilizzabili. Una definizione principale viene istanziata in tanti oggetti figli, ciascuno con la propria memoria e la propria mappatura I/O, ma tutti con la stessa struttura e la stessa logica. Quando cambia la definizione principale, le istanze possono ereditare l’aggiornamento invece di aspettare che qualcuno individui ogni rung duplicato.
I produttori offrono da anni elementi di questo modello. Ciò che sta cambiando è l’accessibilità: strumenti che consentono ai team incentrati sulla logica ladder di creare istruzioni riutilizzabili senza abbandonare le abitudini IEC 61131. Per gli ingegneri che confrontano famiglie di controller e strategie per i ricambi mentre modernizzano la struttura, un punto di partenza pratico è ancora consultare le piattaforme PLC e PAC consolidate.
La densità dei quadri cresce più rapidamente della qualità della documentazione: le istruzioni riutilizzabili sono una delle poche strategie software in grado di ridurre sia il disordine delle scansioni sia il rischio durante la messa in servizio.
Strutture e istruzioni definite dall’utente
La maggior parte dei PLC mette già a disposizione bit, interi, numeri in virgola mobile e stringhe. Le strutture definite dall’utente (UDS) consentono agli sviluppatori di assemblare questi elementi primitivi in dati modellati sui dispositivi. Le istruzioni definite dall’utente (UDI) fanno un passo ulteriore: blocchi logici personalizzati che si comportano come istruzioni integrate su un rung, con ogni istanza dotata dei propri elementi interni e delle proprie assegnazioni dei tag.
Una UDI per un sensore di temperatura potrebbe accettare un ingresso analogico grezzo, restituire un valore ingegneristico scalato e generare allarmi per guasti del dispositivo o temperature anomale. Associandola a una UDS, un unico albero di tag può contenere tutti gli elementi correlati. Nel ladder, l’istanza appare come un’istruzione compatta, non come una pagina di formule matematiche duplicate che differiscono per un solo indirizzo digitato male.
Dove gli errori scompaiono davvero
Definire una volta, istanziare molte volte. Importare ed esportare UDI collaudate tra i progetti. Smettere di ricopiare dopo ogni revisione. Questo flusso di lavoro affronta due modalità di guasto croniche.
La prima sono le copie obsolete non rilevate: in un programma esteso è facile non accorgersi di una sezione duplicata quando serve una correzione. La copia ignorata continua a eseguire la vecchia logica finché il processo non si comporta in modo anomalo nel momento peggiore.
La seconda è la sostituzione incompleta dei tag dopo un’operazione di copia: il sensore B eredita la logica del sensore A, ma un setpoint o una bobina di allarme continua a puntare ad A. Questi bug sono difficili da individuare e imbarazzanti da spiegare dopo un arresto. Le istruzioni incapsulate riducono la superficie esposta a questo tipo di errore.
L’astrazione migliora anche la revisione. I rung di livello superiore mostrano ingressi e uscite chiari. Gli sviluppatori possono trattare ogni istanza come un’interfaccia e aprire la definizione solo quando i dettagli interni sono importanti. La protezione tramite password della definizione di una UDI offre agli OEM un controllo pratico per distribuire logica proprietaria senza consentire modifiche accidentali.
Gli impianti che hanno standardizzato piattaforme installate più ampie, che si tratti di hardware per l’automazione ABB, GE, Honeywell o altre piattaforme, devono comunque affrontare la stessa domanda architetturale: il programma è una libreria di oggetti progettati intenzionalmente o un album di vecchie operazioni di copia-incolla?
I gruppi pompa per il settore oil & gas sono un esempio classico di annidamento: gli oggetti valvola, motore e sensore confluiscono in un oggetto skid, che a sua volta confluisce in un sistema serbatoio, senza trasformare il ladder di livello superiore in un groviglio.
Annidamento: pompe, serbatoi e blocchi costruttivi a più livelli
Le UDI di basso livello per valvole, motori e sensori diventano oggetti di livello intermedio per un gruppo pompa: valvola di aspirazione, valvola di mandata, motore e sensori di processo per temperatura, pressione e portata. Più gruppi pompa, insieme ad altri oggetti valvola e sensore, possono formare una UDI per un sistema serbatoio, utilizzata a un livello ancora superiore nel modello dell’impianto.
Al vertice del ladder, ogni sottosistema appare come un’unica istruzione con parametri leggibili. Si scende di livello solo quando la messa in servizio o la ricerca guasti lo richiedono. Alcune piattaforme supportano più livelli di annidamento e il trasferimento in fase di esecuzione dopo la modifica di una UDI; le istruzioni con forte componente di motion possono rimanere al di fuori delle UDI, a seconda del produttore. Questi limiti sono importanti, ma non cancellano il valore di strutturare tutto il resto come oggetti progettati intenzionalmente.
Una posizione chiara per i team dei sistemi di controllo
Il lavoro PLC orientato agli oggetti non è una moda. È una forma di prevenzione dei danni contro l’economia del copia-incolla che ancora domina i programmi esistenti. Se il prossimo progetto comprende più di una manciata di dispositivi identici, create prima l’oggetto del dispositivo — struttura dati, allarmi, scalatura e condizioni di consenso — quindi istanziatelo. La prima ora sembrerà più lenta. È alla centesima istanza che arriva il rendimento.
Mantenete il ladder comprensibile per il personale dell’impianto laddove questa competenza evita fermi. Aggiungete struttura laddove la duplicazione crea fermi. È questa combinazione, non una gara di purezza tra linguaggi, a mantenere gestibili i programmi OT mentre i sistemi crescono.
Informazioni sull’autore
Tim Ensminger | Product Manager, AutomationDirect
Tim Ensminger è product manager presso AutomationDirect, dove dal 2021 si occupa della linea di PLC Productivity Series. In circa vent’anni di attività nel settore, si è concentrato sul trasporto di prodotti petroliferi, progettando e mettendo in servizio sistemi di controllo e alimentazione per stazioni di pompaggio su pipeline, parchi serbatoi e strutture per il carico degli autocarri. Ha conseguito una laurea in Ingegneria elettrica presso la Bob Jones University e un master in Ingegneria elettrica presso la Clemson University.