Quando si programma un PLC Siemens in TIA Portal, uno degli aspetti più importanti — e spesso meno compresi — riguarda la struttura interna dei blocchi.
Molti programmatori si concentrano sulla logica del codice, ma è proprio una corretta progettazione dell’interfaccia del blocco a fare la differenza tra un software improvvisato e un progetto professionale, scalabile e facilmente manutenibile.
In questo articolo vediamo in modo chiaro e pratico come funziona l’interfaccia dei blocchi Siemens e quando utilizzare ciascuna sezione.
I quattro tipi principali di blocchi Siemens
In TIA Portal troviamo quattro categorie fondamentali di blocchi:
1. OB – Organization Block
Gestiscono il flusso di esecuzione del PLC (ad esempio OB1 è il ciclo principale).
2. FC – Function
Blocchi che contengono logica ma non mantengono memoria interna permanente.
3. FB – Function Block
Simili alle FC, ma con memoria persistente tramite DB di istanza.
4. DB – Data Block
Contenitori dati utilizzati per memorizzare variabili e strutture.
Tra questi, solo OB, FC e FB contengono logica eseguibile; i DB servono esclusivamente come memoria dati.

Le due parti fondamentali di un blocco
Ogni FC o FB è composto da:
- Corpo del blocco (Block Body) → dove si scrive la logica.
- Interfaccia del blocco (Block Interface) → dove si definiscono parametri e variabili.
È proprio l’interfaccia a determinare come il blocco comunica con l’esterno e come gestisce i dati internamente.

Le 6 sezioni dell’interfaccia blocco
L’interfaccia Siemens può includere fino a sei aree:
- Input
- Output
- InOut
- Static
- Temp
- Constant
Vediamole una per una.

1. Input – Dati in ingresso
Gli Input sono parametri che il blocco riceve dall’esterno.
Esempio:
i_Setpoint : Real;
Il blocco può leggere questi valori ma non modificarli direttamente all’esterno.
Quando usarli:
- Pulsanti start/stop
- Setpoint analogici
- Sensori letti in ingresso
2. Output – Dati restituiti dal blocco
Gli Output sono i risultati elaborati dal blocco.
Esempio:
q_ActualSpeed : Real;
Quando usarli:
- Comandi attuatori
- Stati macchina
- Valori calcolati
3. InOut – Parametri letti e scritti
Gli InOut permettono al blocco sia di leggere che modificare direttamente una variabile esterna.
Esempio:
Ideali per:
- Strutture UDT complesse
- Array
- Variabili condivise tra blocchi
4. Static – Memoria persistente interna
Disponibili solo negli FB.
Le variabili Static mantengono il valore tra un ciclo PLC e l’altro.
Esempio:
st_Counter : Int;
Utili per:
- Timer interni
- Memorie di stato
- Sequenze automatiche
5. Temp – Variabili temporanee
Esistono solo durante l’esecuzione del blocco.
Terminata la scansione, vengono perse.
Esempio:
Perfette per:
- Calcoli intermedi
- Variabili appoggio
- Conversioni temporanee
6. Constant – Valori fissi interni
Sono costanti definite nel blocco e non modificabili runtime.
Esempio:
Vantaggi:
- Codice più leggibile
- Parametri documentati
- Evita numeri “magici” nel programma
Passaggio dati: per valore vs per riferimento
Un concetto fondamentale:
Input e Output → Passaggio per valore
Il dato viene copiato.
✔ Sicuro
✖ Più carico CPU
InOut → Passaggio per riferimento
Il dato non viene copiato: il blocco lavora direttamente sulla variabile originale.
✔ Più efficiente
✔ Ideale per dati grandi
Esempio pratico: controllo inverter
Immagina un FB chiamato:
FB_VFD_Control
Potresti strutturarlo così:
Input
- Start
- Reset
- SpeedSetpoint
Output
- DriveRunning
- Faulted
- ActualSpeed
InOut
- UDT stato inverter
Static
- Timer reset fault
Temp
- Calcoli velocità
Constant
- Tempo massimo reset = 5s
Questa organizzazione rende il blocco:
✔ Riutilizzabile
✔ Scalabile
✔ Facile da diagnosticare
Errori comuni da evitare
❌ Usare Temp per memorie permanenti
Le Temp si perdono a fine ciclo.
❌ Usare troppe variabili InOut inutilmente
Rischia di rendere il codice poco chiaro.
❌ Mettere valori numerici hardcoded nel codice
Meglio usare Constant.
❌ Confondere Static con DB globali
Le Static appartengono al singolo FB.
Conclusione
Capire davvero l’interfaccia dei blocchi in TIA Portal significa progettare software PLC in modo professionale.
Non basta sapere “dove mettere le variabili”: bisogna sapere perché scegliere una sezione invece di un’altra.
È proprio questa consapevolezza che distingue un programmatore PLC principiante da uno evoluto.
Vuoi imparare TIA Portal in modo professionale?
Se vuoi approfondire programmazione Siemens, SCL, FB modulari e architetture scalabili, continua a seguire i miei contenuti su:
🌐 domenicomadeo.com
🤖 NexDM.ai – Intelligenza Artificiale per l’automazione industriale
Buona programmazione! 🚀
Software necessari:
Download Tia Portal dalla V15 alla V21 tutti i link qui:
👉🏻👉🏻👉🏻 https://www.domenicomadeo.com/?p=7105
trial operativa 21 giorni.
Ricordo che per essere abilitati al download del software è necessaria una registrazione al sito di supporto Siemens (qui) ed una successiva autorizzazione da parte di Siemens, che può richiedere anche diversi giorni.






