08 gennaio 2013

Le novità della norma IEC 61131

La norma sui Controllori a Logica Programmabile (PLC)

Come già annunciato alcuni giorni fa, presentiamo oggi un altro post relativamente alle novità introdotte ed in corso di introduzione sulla norma IEC 61131, che disciplina la costruzione, la programmazione e l'utilizzo dei controllori programmabili (PLC per brevità d'ora innanzi).
Ma andiamo per ordine.


La prima edizione delle norme, che recava la sigla P-IEC, risale al 1992-1993. La norma era divisa in:
  • Parte 1: Informazioni Generali
  • Parte 2: Requisiti hardware e test
  • Parte 3: Linguaggi di programmazione
  • Parte 4: Linee guida per l'utente
Successivamente al 2000 vennero aggiunte le seguenti parti:
  • Parte 5: Comunicazioni
  • Parte 7: Programmazione controlli "fuzzy"
  • Parte 8: Linee guida per l'applicazione e l'implementazione dei linguaggi di programmazione

IEC 61131-6:2012 - Ed.1.0

La parte 6, a lungo rinviata dal Comitato Tecnico 65B (dispositivi di misura e controllo), ha visto finalmente l'uscita della sua prima edizione lo scorso anno. Lungamente attesa dai progettisti di sistemi di automazione (e forse un po' meno dai produttori) che prevedano l'implementazione di funzioni strumentate di sicurezza (SIF), questa parte chiude finalmente il cerchio della sicurezza funzionale, oggetto delle norme IEC 61508 e IEC 61511, e delle altre norme collegate alle quali occorre fare comunque e sempre riferimento.
Ciclo-vita del FS-PLC secondo la norma IEC 61131-6:2012

Questo nuovo capitolo si occupa dunque di definire i requisiti ingegneristici dei PLC e delle periferiche loro associate (moduli di input, output, interfaccia e comunicazione) qualora si voglia impiegarli come sottosistema di risoluzione della logica (Logic Solver) in sistemi di sicurezza elettrici, elettronici ed elettronici programmabili (E/E/PE), a partire dalla definizione del ciclo-vita del prodotto. I PLC che soddisfano i requisiti della norma acquisiscono una sorta di "qualifica" che li rende FS-PLC (Functional Safety PLC). Inoltre vengono definiti i criteri per il calcolo, la stima e la determinazione dei parametri di SIL, PFD, PFH, SFF, HFT e DC nonché per tutti i processi di documentazione, verifica e validazione.

Il target è dunque rappresentato dai manufactorers di PLC e dai progettisti di sistemi di sicurezza.

IEC 61131-3:2012 - Ed.3.0 (Final Draft)


Ma non è tutto! E' infatti uscita in bozza finale la revisione 3.0 della parte terza della norma, relativa ai linguaggi di programmazione. Se tutto procede senza intoppi, verrà approvata entro questo gennaio.
Si tratta di una norma di estensione, compatibile quindi con l'edizione 2.0, ma che introduce diverse interessanti novità:

  • Nuovi tipi di dato e relative funzioni di conversione;
  • Novità sulle modalità di riferimenti e sui namespaces;
  • Introduzione delle caratteristiche object-oriented nelle classi e nei blocchi funzione.

Considerazioni

E' superfluo osservare come l'introduzione di capacità di sviluppo object-oriented sui controllori programmabili possa rappresentare la manifestazione di uno sviluppo tecnico-culturale delle professionalità principali nel campo dell'automazione. La programmazione dei PLC, in precedenza vista come una capacità e una competenza specifiche del dominio dei tecnici di estrazione elettrica/elettronica, sta diventando materia per professionalità di estrazione informatica (grazie all'introduzione di superiori capacità di astrazione) e potrebbe quindi segnare l'inizio della fine di un'era.
Ovviamente il processo sarà lento, data la straordinaria longevità dei sistemi di automazione rispetto alle tencologie IT, ma per il prossimo futuro prevediamo il nascere di una dicotomia "Old school" Vs "New school": contatti contro oggetti.
Non riesco a nascondere una certa ansia della novità: da una parte ne accolgo il coraggio e l'innovazione che vorrei poter applicare da subito ai nuovi progetti (esistono già da qualche anno ambienti di sviluppo orientati agli oggetti nel senso della norma che, pur soffrendo degli immancabili mali di gioventù, mi rendono piuttosto entusiasta, ad esempio CoDeSys V3.x), dalla parte opposta della medaglia un senso di prudenza mi trattiene: credo che sia opportuno studiare bene il contenuto della norma e le peculiarità degli ambienti per lo sviluppo ad oggetti allo scopo di verificare quanta flessibilità e quale livello di astrazione venga realmente lasciato allo sviluppatore. Un eccesso da questo punto di vista, unito ad una scarsa esperienza nello sviluppo OO in questi ambienti, potrebbe portare a implementare soluzioni con un elevato livello di rischio per le prestazioni o la stabilità. Sicuramente, senza perdermi in ulteriori elucubrazioni, la carta vincente sarà la progettazione consapevole e bilanciata degli applicativi, in parte sviluppati secondo i canoni tradizionali (magari proprio per l'implementazione delle funzioni di sicurezza), e in parte secondo la nuova scuola (eventualmente per le funzionalità accessorie non critiche).