Un controllore logico programmabile (PLC) è un piccolo computer a stato solido modulare con istruzioni personalizzate per eseguire un compito particolare. I PLC, utilizzati nei sistemi di controllo industriale (ICS) per un'ampia varietà di settori, hanno ampiamente sostituito i relè meccanici, i sequenziatori a tamburo e i timer a camme.
I PLC sono strumenti utili per processi ripetibili perché non hanno parti meccaniche e possono raccogliere informazioni. Ogni unità processore centrale (CPU) scorre continuamente attraverso una scansione degli input, una scansione del programma, una scansione dell'output e una modalità di manutenzione, eseguendo ripetutamente una singola attività durante il monitoraggio delle condizioni. Le informazioni raccolte dal controller possono essere utilizzate come feedback per guidare le modifiche ei miglioramenti necessari ai processi, alcuni dei quali possono essere eseguiti automaticamente in base alla codifica del dispositivo.
I PLC occupano meno spazio, svolgono attività più complesse e sono più personalizzabili delle tecnologie meccaniche che hanno sostituito. Sono noti per la loro capacità di operare continuamente senza manutenzione e hanno avuto un grande impatto sulla digitalizzazione di un gran numero di industrie, in particolare la produzione. Il primo PLC, ad esempio, è stato inventato da Dick Morley nel 1969 per la General Motors e ha funzionato ininterrottamente per 20 anni prima di essere ritirato.
Cinque linguaggi di programmazione vengono utilizzati per codificare i PLC, come specificato dalla Commissione elettrotecnica internazionale (IEC) 61131. Sono logica ladder, diagramma a blocchi funzione (FBD), testo strutturato (ST), elenco istruzioni (IL) e diagramma funzionale sequenziale (SFC) . Se sono necessarie modifiche significative al codice e la memoria del PLC è incorporata, il controller può essere ricodificato in posizione. Quando la memoria del PLC non è incorporata nel circuito stampato e sono necessarie modifiche significative al codice, la memoria può essere rimossa da uno slot esterno sul PLC e sostituita senza richiedere l'assistenza di un programmatore in loco.