63750295812381WhatsApp-Image-2026-04-01-at-112107-2jpeg.jpg
  • 09 Ottobre 2026

Programmazione PLC: la norma IEC 61131-3 e i 5 linguaggi standard

Chi lavora nel mondo dell'automazione industriale sa che un PLC può essere programmato in modi molto diversi tra loro. Ma dietro la varietà di ambienti di sviluppo, interfacce e costruttori, esiste uno standard internazionale che definisce le regole del gioco: la norma IEC 61131-3. È il riferimento tecnico che ogni programmatore PLC dovrebbe conoscere, perchè è quello che garantisce coerenza, portabilità e leggibilità del codice tra piattaforme diverse.

In questo articolo approfondiamo cosa prevede la IEC 61131-3, quali sono i cinque linguaggi di programmazione che definisce, quando conviene usare uno piuttosto che un altro e perchè conoscere questo standard fa la differenza nella qualità di un impianto automatizzato.


Cos'è la norma IEC 61131-3 e perché esiste

La IEC 61131 è la norma internazionale che regola i controllori programmabili, i PLC, nella loro accezione più ampia. È strutturata in più parti: la terza, la IEC 61131-3, è quella dedicata specificamente ai linguaggi di programmazione.
Prima della sua introduzione, ogni costruttore di PLC adottava ambienti di sviluppo proprietari con sintassi, convenzioni e logiche spesso incompatibili tra loro. Un programma scritto per un PLC Siemens non era trasferibile su un Allen-Bradley, e un tecnico esperto su una piattaforma doveva ricominciare praticamente da zero su un'altra. La IEC 61131-3 nasce per risolvere esattamente questo problema: definire un insieme comune di linguaggi, strutture dati e modelli di esecuzione che i costruttori possano implementare in modo uniforme.

Oggi tutti i principali ambienti di sviluppo per PLC, come TIA Portal di Siemens, Studio 5000 di Rockwell, Codesys, Unity Pro di Schneider, supportano i linguaggi della IEC 61131-3, anche se con estensioni e personalizzazioni proprie di ciascun costruttore.


I 5 linguaggi di programmazione PLC secondo la IEC 61131-3

La norma definisce cinque linguaggidi programmazione, suddivisi in due categorie: testuali e grafici. Ognuno ha caratteristiche proprie, punti di forza specifici e contesti applicativi in cui rende al meglio.

1. Ladder Diagram (LD)

È il linguaggio grafico più diffuso e storicamente il più utilizzato nella programmazione PLC. La sua struttura visiva riprende gli schemi dei vecchi relais elettromeccanici: due sbarre verticali di alimentazione, tra le quali vengono disposti contatti (condizioni) e bobine (azioni) su rung orizzontali. Chiunque abbia familiarità con gli schemi elettrici tradizionali lo trova immediatamente intuitivo.
È la scelta ideale per logiche di controllo discreto, gestione di sequenze on/off, interblocchi di sicurezza e logiche di avviamento motori. Ha il vantaggio di essere leggibile anche da chi non ha una formazione specifica in programmazione, rendendolo prezioso per la manutenzione e la diagnostica in campo.

2. Function Block Diagram (FBD)

Anche FBD è un linguaggio grafico. Rappresenta il programma come un insieme di blocchi funzionali interconnessi tra loro tramite linee di flusso dei segnali. Ogni blocco incapsula una funzione specifica come un PID, un timer, un contatore, una funzione matematica e i blocchi vengono collegati in rete in base al flusso logico del processo.
È particolarmente adatto per applicazioni con variabili analogiche, controllo continuo di processo, regolazione PID e sistemi di controllo con molti segnali in ingresso e uscita. È il linguaggio preferito in ambito di controllo di processo (ad esempio impianti chimici, farmaceutici e alimentari) dove la logica di regolazione è più importante della sequenza discreta.

3. Sequential Function Chart (SFC)

SFC è un linguaggio grafico di alto livello che rappresenta il programma come una macchina a stati: una sequenza di step (passi) collegati da transizioni. Ogni step corrisponde a una fase del processo, ogni transizione definisce la condizione necessaria per passare allo step successivo. È concettualmente simile a un diagramma di flusso, ma con una struttura formale precisa che ne garantisce la prevedibilità e la verificabilità.
È il linguaggio ideale per processi sequenziali complessi, come linee di riempimento, cicli di lavaggio, processi batch, dove è fondamentale avere una visione chiara di quale fase del processo è attiva in ogni momento e quali sono le condizioni di avanzamento. Rende molto più semplice la diagnosi dei blocchi di sequenza e la gestione delle anomalie.

4. Instruction List (IL)

IL è un linguaggio testuale di basso livello, simile all'Assembler. Ogni istruzione opera su un accumulatore e consiste in un operatore seguito da un operando. È il linguaggio più vicino al funzionamento interno del PLC e, per questo, storicamente il più efficiente in termini di velocità di esecuzione e utilizzo della memoria.
Nella revisione del 2013 della norma IEC 61131-3 (la terza edizione), IL è stato formalmente deprecato non rimosso, ma non più raccomandato per nuovi sviluppi. La ragione è pratica: il codice IL è difficile da leggere, da manutenere e da documentare, soprattutto per chi non lo ha scritto. Rimane in uso in applicazioni legacy o in contesti dove le prestazioni di esecuzione sono critiche.

5. Structured Text (ST)

ST è il linguaggio testuale di alto livello della IEC 61131-3. La sua sintassi è simile a Pascal o C, con strutture di controllo classiche come IF-THEN-ELSE, CASE, FOR, WHILE e REPEAT. È il linguaggio più espressivo e flessibile tra i cinque, e quello che meglio si presta a implementare logiche complesse, algoritmi matematici, gestione di strutture dati e funzionalità avanzate.
Negli ultimi anni ST è diventato il linguaggio di riferimento per i programmatori PLC di nuova generazione, soprattutto in combinazione con FBD per le parti di regolazione e con SFC per le sequenze. È il linguaggio preferito in TIA Portal (Siemens) per le parti di logica complessa e in Codesys per lo sviluppo di librerie e funzioni riutilizzabili.


Come scegliere il linguaggio giusto per ogni applicazione

Nella pratica, un buon programmatore PLC non sceglie un unico linguaggio per tutto il progetto: li combina in base alla natura di ogni parte del programma. La IEC 61131-3 lo prevede esplicitamente, i cinque linguaggi possono coesisterenello stesso progetto, ciascuno assegnato alla porzione di logica per cui è più adatto.
  • Logica discreta on/off, interblocchi, avviamenti: Ladder Diagram
  • Regolazione continua, controllo PID, variabili analogiche: Function Block Diagram
  • Processi sequenziali a fasi, cicli batch: Sequential Function Chart
  • Algoritmi complessi, gestione dati, logiche avanzate: Structured Text
  • Codice legacy su piattaforme datate: Instruction List (in manutenzione, non per nuovi sviluppi)

La scelta del linguaggio non è solo una questione tecnica: è anche una questione di manutenibilità. Un programma ben strutturato, che usa il linguaggio giusto per ogni sezione e segue le convenzioni della IEC 61131-3, è molto più facile da diagnosticare, modificare e passare a un altro tecnico. Un programma scritto tutto in Ladder perchè 'è quello che conoscò può funzionare, ma diventa un problema nel momento in cui qualcuno deve metterci mano anni dopo.


Programmazione PLC e qualità del software: oltre la norma

Conoscere la IEC 61131-3 e padroneggiare i suoi linguaggi è il punto di partenza, non di arrivo. Un software PLC di qualità richiede anche un approccio strutturato allo sviluppo: architettura modulare, uso di funzioni e blocchi funzionali riutilizzabili, nomenclatura coerente delle variabili, gestione sistematica degli allarmi e documentazione integrata nel codice.

In un contesto di automazione industriale moderna, dove i sistemi di controllo devono dialogare con HMI evolute, supervisori SCADA, sistemi MES e infrastrutture Industry 4.0, la qualità del software PLC incide direttamente sulla affidabilità dell'impianto, sulla facilità di integrazione con altri sistemi e sulla capacità di evolvere nel tempo senza dover riscrivere tutto da zero.

Non a caso, la norma IEC 62443, il riferimento per la cybersecurity dei sistemi di automazione e controllo industriale, include tra i suoi requisiti anche aspetti relativi alla qualità dello sviluppo software: gestione delle vulnerabilità, principio del minimo privilegio, separazione delle reti. La programmazione PLC, in un'ottica di sicurezza informatica, non è più separabile dal tema della protezione dell'impianto.


Sviluppo software PLC su misura per il tuo impianto

Nel nostro team lavoriamo principalmente in ambiente Siemens (TIA Portal, Step7), con competenze su tutti i linguaggi della IEC 61131-3 e una consolidata esperienza nello sviluppo di software PLC per impianti complessi in diversi settori industriali. Affianchiamo il cliente dalla definizione delle specifiche funzionali fino al collaudo finale, garantendo un codice strutturato, documentato e manutenibile nel tempo.

Se stai progettando un nuovo impianto o devi aggiornare il software di controllo di uno esistente, contattaci: valutiamo insieme la soluzione più adatta alle tue esigenze.

Richiedi informazioni

Nominativo
Cellulare
Email
Richiesta
Dichiaro di aver letto e accettato l'informativa sulla privacy policy
B-TECH srl
VCA Consulenze Assicurative