I programmi di supervisione e configurazione sono principalmente software che configurano, lanciano, interrompono o influenzano il ciclo macchina in qualche forma ma che non lo gestiscono direttamente. In questa categoria rientra per esempio il sistema di supervisione impianti solari da remoto.
I programmi di comando invece si occupano direttamente della gestione del ciclo. In questa categoria si trovano tutti i programmi macchina, quali il collaudo pneumatico delle cartucce miscelatrici, la trancia barre, il test di rigidità dielettrica dei blindosbarra o la lappatrice sedi polverizzatori diesel.
Nei programmi di automazione industriale il ciclo programma viene eseguito iterativamente in un loop infinito. Ogni singola iterazione, denominata scansione, consiste in tre fasi ben distinte:
- acquisizione: lo stato macchina (l'insieme degli ingressi digitali, analogici e discreti) viene memorizzato in una zona di memoria temporanea, denominata immagine degli ingressi;
- ciclo macchina: l'immagine delle uscite viene modificata in base all'immagine degli ingressi: in un PLC questo è tipicamente programmato tramite logica ladder;
- aggiornamento: i controlli macchina (l'insieme delle uscite digitali, analogiche e discrete) vengono conciliati con l'immagine delle uscite.
Il programma deve essere real-time, ossia dovrebbe essere garantito che il tempo consumato da ogni scansione sia inferiore o uguale ad un lasso di tempo predefinito. Questo valore, denominato periodo di scansione, è a tutti gli effetti il clock del programma ed influenza direttamente la reattività della macchina, un fattore fondamentale per la sicurezza.
In un sistema hard real-time il periodo di scansione viene garantito da un dispositivo hardware esterno (e.g. da un watchdog) che manda in emergenza la macchina qualora non venga rispettato. In un sistema soft real-time invece si cerca di raggiungere lo stesso obiettivo utilizzando soluzioni software, quali le priorità e la kernel preemption.
La eNTiDi usa PC industriali con sistema operativo GNU/Linux su cui vengono installati programmi multiprocesso in soft real-time. Il tempo di scansione è nell'ordine dei millisecondi (tipicamente 10).