Un programma è simile ad un Function Block con una istanza Function Block implicita. Le differenze fra programmi e Function Block sono:
I programmi sono permessi solamente in cima ad una gerarchia di invocazione POU (p.es. un programma non può essere invocato da un altro POU).
Variabili rappresentate direttamente possono essere usate per definire un programma.