Alla scoperta dei PLC: concetti introduttivi

PLC

I PLC, o controllori a logica programmabile, rappresentano uno dei componenti fondamentali di ogni sistema di automazione o controllo di processo industriale. Anzi, possiamo dire che ne costituiscono il “cuore”, essendo di fatto la parte di sistema che esegue, in tempo reale, la maggiorparte delle elaborazioni richieste dalla particolare applicazione. Un PLC, fondamentalmente, serve a monitorare in modo ripetitivo e ciclico lo stato degli ingressi e decidere conseguentemente quale stato devono assumere le uscite, basandosi su un programma personalizzabile residente al suo interno. In questo primo articolo scopriremo cosa sono e come sono fatti i PLC, ma arriverà presto un seguito dove vedremo forse l’aspetto più interessante, cioè la loro programmazione.

Storicamente, la nascita dei PLC viene fatta risalire al 1968, quando un gruppo di ingegneri della società Bedford Associates sviluppò questo tipo di soluzione alla divisione Hydra-matic della GM, in sostituzione dei sistemi allora in uso basati su relè, molto complessi e ingombranti. L’antesignano dei moderni PLC, chiamato Modicon, era un dispositivo elettronico programmabile, in grado di ridurre drasticamente gli ingombri, il numero di cablaggi, e il tempo richiesto per la manutenzione e la riparazione dei guasti.

I PLC vengono spesso definiti come dei piccoli computer industriali contenenti sia l’hardware che il software richiesto per eseguire il controllo di processo. Ogni PLC è composto da due parti principali: una CPU, e una interfaccia di I/O. La CPU, a sua volta, può essere ulteriormente decomposta in un processore e in una memoria (che comprende in genere sia una RAM che una ROM). L’interfaccia di I/O è invece fisicamente collegata al mondo esterno o, come si dice in gergo, ai dispositivi di campo (sensori, attuatori, motori, interruttori, ecc.). Il funzionamento basilare di un PLC è molto semplice: la CPU riceve (o “legge”) i segnali di Input provenienti dai dispositivi di campo collegati al PLC come ingressi, esegue il programma (o “logica”) di controllo memorizzato all’interno della memoria del PLC, ed infine aggiorna (o “scrive”) lo stato dei segnali di uscita, che si riflette quindi sui sensori, attuatori, interruttori o qualsivoglia dispositivo collegato al PLC come uscita. Questo processo, peraltro comune a molti sistemi programmabili che operano in tempo reale, ha un nome preciso in ambito PLC, e viene chiamato “scanning” (scansione). E’ fondamentalmente un processo ripetitivo, che viene continuamente eseguito senza interruzione; per modificare in qualche modo la scansione, occorre infatti modificare il programma (software) che governa il funzionamento del PLC. I PLC sono perciò spesso utilizzati in applicazioni per il controllo di processi o macchinari in cui le operazioni vengono eseguite, per loro natura, in modo sequenziale. A titolo informativo, ricordiamo che nei comuni PLC il tempo di scansione (“scan rate”) è dell’ordine di qualche millisecondo.

I segnali digitali, detti anche discreti, hanno per loro natura soltanto due possibili stati, rappresentati da “1” e “0”, che corrispondono a due precisi stati a livello elettrico: lo “0” solitamente corrisponde a 0 V (AC o DC), mentre l'”1″ corrisponde a una tensione fissa tipo 5V, 24V, 220V, ecc.

I segnali analogici, invece, possono assumere diversi valori possibili (si pensi ad esempio a un sensore di temperatura), in genere compresi in un range tra un valore minimo ed uno massimo (ad esempio, nel caso di rappresentazione su 8-bit, il valore 0x00 viene utilizzato per rappresentare la temperatura di 0°C, mentre il valore 0xFF per la temperatura di 100°C).

I PLC sono adatti ad essere utilizzati in applicazioni che utilizzano input/output discreti, ma anche in applicazioni che utilizzano input/output analogici, oppure, più in generale, in sistemi che adottano una soluzione mista di I/O discreti ed analogici. Un segnale di I/O discreto è ad esempio rappresentato da un micro-switch, un contatto che può quindi assumere due soli stati: ON oppure OFF, aperto oppure chiuso, ecc. Allo stesso modo, a un PLC possono essere collegati degli ingressi/uscite di tipo analogico, come ad esempio un sensore di temperatura (quindi un ingresso) che fornisce in uscita una tensione analogica variabile funzione della temperatura, oppure una valvola proporzionale (quindi un uscita) che può essere regolata tra un’apertura minima (0 %) e un’apertura massima (100 %), oppure ancora un motore (uscita analogica) di cui si può regolare la velocità di rotazione. Come tipologia, i PLC si suddividono in due gruppi principali:

  • PLC con I/O fissi – questa categoria comprende i PLC più piccoli, che dispongono di una quantità di memoria inferiore e sono solitamente limitati come numero di ingressi e uscite. Sono pertanto adatti alle configurazioni fisse e non sono modulari
  • PLC modulari – è la categoria di PLC più versatile, con dispositivi adatti a configurazioni flessibili che utilizzano componenti modulari. E’ ovviamente la categoria adatta alle applicazioni più complesse, in cui possono essere presenti più PLC montati su appositi rack con I/O multipli

L’immagine seguente mostra alcuni componenti della famiglia di PLC modulari Simatic S7 di Siemens, una linea di prodotti largamente utilizzata nel campo dell’automazione industriale.

Quest’altra immagine mostra invece un modulo della stessa famiglia che svolge la funzionalità di input digitale. Si noti la compattezza del modulo e la sua particolare conformazione, adatta a un’installazione su sistemi modulari basati su rack e guide di supporto.

Quanto visto sinora sui PLC può inoltre essere riassunto nel seguente schema a blocchi, valido per ogni tipologia di PLC, e nel quale volutamente non compare ciò che sta all’esterno di ogni PLC (rete di connessione, PC per il controllo remoto, ecc.).

PLC, PC industriali, e PAC

I PLC, storicamente, si sono evoluti notevolmente, arrivando a implementare delle funzionalità tipiche dei sistemi di automazione più evoluti, come ad esempio i PC industriali, e in grado di svolgere attività che vanno ben al di là delle consuete “logiche di controllo”. In quest’ultimo caso, infatti, si parla più propriamente di PAC (Programmable Automation Controller) anzichè di PLC. Vediamo quindi di fare un pò di chiarezza su questo punto, analizzando le differenze tra queste tipologie di sistemi di controllo:

  • PLC – si tratta di dispositivi programmabili basati su un’architettura a microprocessore, e utilizzati in applicazioni di controllo industriale in real-time. Operano spesso in condizioni ambientali gravose (linee di produzione e assemblaggio, oppure controllo semaforico stradale), sono in genere basati su CPU con architettura RISC e programmati con linguaggi specifici (ad-hoc), che vedremo più avanti. Come abbiamo visto, i PLC si interfacciano al mondo esterno tramite una serie di sensori e attuatori sia digitali che analogici, e vengono classificati in base al numero e al tipo di I/O che possono gestire, e dalla velocità con cui riescono a processarli (lo scan rate). I PLC sono particolarmente adatti per applicazioni di controllo basate su una logica sequenziale e ripetitiva, hanno un’architettura modulare, e sono pertanto idonei agli utilizzi generici nel campo dell’automazione industriale
  • sistema di controllo basato su PC – l’avvento dei personal computer a basso costo, un fenomeno esploso a livello mondiale a partire dagli anni ’80, ha fatto sì che essi venissero seriamente presi in considerazione per la realizzazione di sistemi di controllo programmbili anche molto complessi, con funzionalità estese e superiori rispetto a quelle di una normale elaborazione di segnali di I/O analogici e digitali. Dal punto di vista hardware, i sistemi di questo tipo sono basati sull’utilizzo di PC industriali (“rugged”), in grado di funzionare 24 ore su 24 anche in ambienti ostili (vibrazioni, polvere, ecc.). Non solo, il PC permette anche di realizzare delle funzionalità non offerte dai tradizionali PLC, quali ad esempio:
    • un’interfaccia uomo-macchina (HMI) attraverso la quale configurare e monitorare il funzionamento del sistema
    • disponibilità di funzionalità di calcolo e matematiche avanzate
    • possibilità di interazione e scambio dati con applicazioni esterne (fogli di calcolo, applicativi per la gestione della produzione, ecc.)
    • disponibilità di schede hardware COTS pronte all’uso (plug-and-play). Questa è una comodità enorme, si pensi alle schede per il controllo motori, CAN-bus, sistemi di visionica, ecc.
    • disponibilità di interfacce di comunicazione a costo zero (seriale, USB, ecc.) o facilmente installabili tramite apposite schede (RS422, RS485, CAN, Modbus)
    • possibilità di implementare algoritmi PID molto complessi sul piano computazionale (potenza di elaborazione e memoria disponibili in abbondanza rispetto a un sistema embedded)
  • PAC – si tratta di una soluzione che combina le caratteristiche e funzionalità di un sistema di controllo basato su PC con quelle di un classico PLC. Più precisamente, il PAC eredita dai PLC le seguenti caratteristiche:
    • modularità
    • affidabilità negli impieghi industriali, anche gravosi
    • disponibilità di un’ampia gamma di moduli di I/O e di configurazioni del sistema

    Viceversa, il PAC deriva dai sistemi basati su PC queste caratteristiche:

    • quantità abbondante di memoria e velocità di elaborazione
    • gestione dei dati ad alto livello (utilizzo del linguaggio di programmazione C/C++ con disponibilità di librerie avanzate), con possibilità di interfacciarsi con altre applicazioni esterne (si pensi ai sistemi SCADA, ad esempio)
    • disponibilità di numerose interfacce di comunicazione a livello hardware, e protocolli di interfacciamento con i dispositivi di campo

    I PAC sono attualmente utilizzati per il controllo avanzato dei macchinari, per il controllo di processo, e per l’acquisizione e il monitoraggio dei dati. Nonostante non esista un vero e proprio standard, i PAC utilizzano generalmente l’interfaccia Ethernet con protocollo IP per implementare il meccanismo di connessione in rete.

Lo standard IEC 61131-3

Questo standard definisce, a livello internazionale, i linguaggi di programmazione da utilizzare in ambito PLC. Le categorie di linguaggi previste da questo standard sono le seguenti:

  • LD (ladder diagram, o ladder logic), in italiano nota anche con il termine di logica ladder, o logica a contatti. La logica ladder rappresenta forse il modo più diffuso per programmare i PLC. Dal punto di vista pratico, essa si basa su dei diagrammi (grafici) che descrivono il comportamento del sistema, e che assomigliano moltissimo ai tradizionali schemi basati sulle logiche a relè. Sono quindi del tutto simili ai comuni schemi elettrici. Questa scelta non è casuale: in questo modo, infatti, si è potuta avviare alla programmazione una schiera di ingegneri e progettisti abituati da anni a lavorare su sistemi di controllo elettromeccanici (relè) riducendo drasticamente i tempi richiesti dal training (stiamo parlando degli anni ’60, quando la programmazione era quasi esclusivamente eseguita in assembler ed era un’attività per pochi eletti). Nonostante l’evoluzione imponente subita dal settore dei PLC e dei relativi tool di sviluppo, la logica ladder ha mantenuto la sua posizione di tecnica di programmazione predominante. Curiosa è l’etimologia di questa tecnica di programmazione, che non possiamo esimerci dal citare. “Ladder”, infatti, in inglese significa “scala a pioli”, proprio perchè questi diagrammi assomigliano molto, visivamente, a una scala a pioli. In particolare, le linee orizzontali vengono indicate con il termine “rung” (piolo, appunto)
  • SFC (Sequential Function Charts, o Schema Funzionale in Sequenza). Questa tecnica è stata introdotta per gestire la programmazione di sistemi maggiormente evoluti e complessi. Essa è molto simile ai tradizionali diagrammi di flusso (flowchart), con la differenza che è molto più potente, in quanto si possono seguire più cammini all’interno del flowchart. Questa tecnica è stata sviluppata in Francia ed è nota anche con il termine di “linguaggio grafcet”.
  • FBD (Function Block Diagram, o Schema a Blocchi di Funzione). Si tratta di un linguaggio di programmazione di tipo grafico, focalizzato sull’evoluzione dell’algoritmo come un flusso informativo che inizia negli ingressi, passa attraverso i blocchi funzionali interni, fino a raggiungere le uscite. E’ un linguaggio basato sull’utilizzo delle porte logiche, quindi del tutto analogo agli schemi utilizzati in elettronica digitale.
  • ST (Structured Text, o Testo Strutturato). Questa tecnica è del tutto simile ai moderni linguaggi di programmazione, come il BASIC o il Pascal. Si tratta in sostanza di un linguaggio testuale ad alto livello con una sintassi Pascal-like, molto flessibile e intuitivo, adatto alla scrittura di algoritmi di controllo anche molto complessi.
  • IL (Instruction List, o Lista Istruzioni). E’ del tutto analogo al linguaggio macchina di un microprocessore: è quindi un sistema di programmazione di basso livello, senza alcuna rappresentazione grafica, e difficile da debuggare. Su alcuni PLC questa tecnica non è disponibile; se lo è, permette ovviamente di sfruttare al massimo le potenzialità del PLC, a scapito di un maggiore sforzo programmativo.

Il vantaggio di avere uno standard è che lo sviluppatore ha a disposizione diversi linguaggi di programmazione per lo stesso PLC, potendo scegliere di volta in volta quello più adatto alle specifiche esigenze. L’immagine seguente mostra un esempio pratico di diagramma ladder:

Tratteremo in dettaglio il linguaggio a contatti (ladder diagram) in un prossimo articolo, nel quale verranno analizzati gli aspetti legati alla programmazione dei PLC. Per il momento, anticipiamo che il linguaggio a contatti prevede l’utilizzo di alcuni elementi quali: contatto normalmente aperto, contatto normalmente chiuso, bobina, temporizzatore e contatore, cioè gli elementi tipici dei classici schemi elettrici a relè. L’immagine seguente mostra la rappresentazione grafica utilizzata per alcuni di questi simboli:

I contatti sono associati alle variabili di ingresso digitali, oppure a particolari condizioni interne al dispositivo. Ogni bobina è invece sempre associata a un bit di memoria, attraverso il quale si può comandare (controllare) un’uscita digitale o impostare uno stato interno. Se ora riguardiamo l’esempio di diagramma ladder precedente, possiamo dire che lo stato della bobina Out1 è legato a quello dei contatti A, B, C, D dalla relazione:

Out1 = (A AND B AND C) OR (A AND NOT(D) AND C)

Ciò significa che la bobina Out1 sarà attivata (il corrispondente bit sarà impostato a 1) quando i contatti A,B,C sono tutti aperti, oppure quando A e C sono aperti e D è chiuso.

Concludiamo così questo primo articolo, volutamente introduttivo, inerente il mondo dei PLC. L’intenzione è di proseguire la trattazione con uno o più articoli di follow-up, trattando in dettaglio argomenti qui solo accennati, come ad esempio la programmazione in ladder logic, la tecnica più diffusa e utilizzata dai principali produttori di PLC ad uso industriale.

 

Quello che hai appena letto è un Articolo Premium reso disponibile affinché potessi valutare la qualità dei nostri contenuti!

 

Gli Articoli Tecnici Premium sono infatti riservati agli abbonati e vengono raccolti mensilmente nella nostra rivista digitale EOS-Book in PDF, ePub e mobi.
volantino eos-book1
Vorresti accedere a tutti gli altri Articoli Premium e fare il download degli EOS-Book? Allora valuta la possibilità di sottoscrivere un abbonamento a partire da € 2,95!
Scopri di più

10 Comments

  1. Giorgio B. Giorgio B. 16 aprile 2013
  2. Piero Boccadoro Piero Boccadoro 16 aprile 2013
  3. Antonello Antonello 16 aprile 2013
  4. Gunnar 16 aprile 2013
  5. slovati slovati 16 aprile 2013
  6. Grunf 21 aprile 2013
  7. antoniopiro 28 aprile 2013
  8. Boris L. 28 aprile 2013
  9. saigon 16 maggio 2013
  10. Will_Normac Will_Normac 10 gennaio 2015

Leave a Reply