Istruzioni TIA Portal

Controllo del Programma
Flusso ed Esecuzione

Padroneggia il flusso logico del tuo programma. Dai salti condizionati agli strumenti di diagnostica in tempo reale, ottimizza la struttura di esecuzione del tuo controllore.

Cosa sono le operazioni di controllo in TIA Portal?

Le operazioni di controllo del programma consentono di modificare l'ordine sequenziale di esecuzione dei segmenti. Vengono utilizzate per saltare parti di codice (Salti), creare diramazioni complesse (Distributori) o gestire il comportamento interno della CPU (Stop, Watchdog, Misura del tempo).

Queste istruzioni sono potenti ma devono essere usate con cautela, in particolare l'istruzione WAIT che blocca il ciclo, o i salti che possono rendere il programma difficile da debuggare se troppo numerosi. TIA Portal offre anche strumenti moderni per intercettare gli errori localmente in ogni blocco.

Salti e Flusso

Istruzioni di deviazione del programma

JMP / JMPN — Salti condizionati

JMP

Cosa fa

JMP interrompe l'esecuzione sequenziale e salta a un'etichetta (LABEL) se l'RLO è 1. JMPN fa lo stesso se l'RLO è 0.

Quando usarlo

Saltare una sezione di codice che non deve essere eseguita in una modalità specifica, o creare cicli semplici in LAD/FBD.

Consigli Pro

La destinazione del salto (LABEL) deve trovarsi nello stesso blocco (FC o FB).

Non usare salti all'indietro per creare cicli senza condizione di uscita, poiché si rischia il superamento del tempo di ciclo.

In SCL, usa preferibilmente le strutture IF...THEN o CASE...OF.

SWITCH — Distributore multi-caso

SWITCH

Cosa fa

Confronta un valore di ingresso con diversi valori target e salta al segmento corrispondente al primo caso verificato. Equivalente grafico di Switch/Case.

Quando usarlo

Gestione degli stati macchina (Grafcet semplice), selezione delle modalità di marcia o smistamento pezzi secondo un codice tipo.

Consigli Pro

Più pulito e leggibile di una serie di comparatori == in serie.

Usa l'ingresso 'ELSE' per gestire il caso in cui nessun valore corrisponda.

Ideale per strutture di menu su HMI.

RET — Ritorno

RET

Cosa fa

Forza la fine dell'esecuzione del blocco corrente (FC/FB) e ritorna al blocco chiamante.

Quando usarlo

Terminazione anticipata di una funzione se viene rilevato un errore all'inizio del blocco, o se una condizione di sicurezza non è soddisfatta.

Consigli Pro

Utile per ottimizzare il tempo di ciclo non elaborando inutilmente il resto del codice.

Sii vigile: le uscite del blocco non ancora elaborate manterranno il loro ultimo stato.

In SCL, usa l'istruzione RETURN;

Controllo del Runtime

Gestione del ciclo CPU e misure di performance

RUNTIME — Misura tempo

RUNTIME

Cosa fa

Misura il tempo di esecuzione di una porzione di programma o dell'intero blocco in microsecondi (µs).

Quando usarlo

Ottimizzazione del codice, diagnostica di segmenti pesanti o calcoli di performance della macchina.

Consigli Pro

Chiama RUNTIME una volta per inizializzare la misura, poi una seconda volta per ottenere il risultato.

Usa il tipo di dati LReal per memorizzare il risultato della misura.

Comodo per verificare se un ciclo FOR complesso si avvicina ai limiti del watchdog.

WAIT — Ritardo fisso

WAIT

Cosa fa

Sospende l'esecuzione del programma per una durata specificata in microsecondi. ATTENZIONE: a differenza di un Timer, WAIT blocca completamente il ciclo della CPU.

Quando usarlo

Attendere alcuni microsecondi per stabilizzare un segnale elettronico su una scheda di I/O ultra-rapida.

Consigli Pro

Da usare con estrema moderazione. Un WAIT troppo lungo attiverà un errore Watchdog e fermerà il PLC.

Non usare mai per ritardi di processo (secondi/minuti); usa i Timer TON per quello.

Disponibile solo su S7-1500.

STP — Arresto CPU

STP

Cosa fa

Forza il passaggio della CPU in modalità STOP.

Quando usarlo

Condizione di errore fatale in cui la macchina non deve più essere pilotata, o test di diagnostica.

Consigli Pro

L'arresto è immediato. Sarà necessario un intervento manuale (HMI o selettore) per riavviare.

Preferisci la gestione degli allarmi con modalità sicura piuttosto che l'arresto brusco della CPU quando possibile.

Utile nei progetti di messa in servizio per fare un 'break' in un punto preciso.

Gestione Errori

Intercettazione locale dei guasti di esecuzione

GET_ERROR / GET_ERR_ID

Cosa fanno

Recuperano informazioni sul primo errore verificatosi all'interno di un blocco (es: accesso a un indice di array inesistente).

Quando usarlo

Rendere i blocchi robusti intercettando gli errori di programmazione senza fermare il PLC.

Consigli Pro

GET_ERROR fornisce una struttura dettagliata, GET_ERR_ID restituisce solo il numero dell'errore.

Posiziona queste istruzioni alla fine dei tuoi blocchi critici.

Consente di creare un registro errori personalizzato.

Salti vs Strutture di controllo

Quale metodo usare per deviare il programma?

Hai bisogno di...Istruzione consigliataPerché?
Salto semplice in LadderJMPSaltare un segmento
Scelta multipla complessaSWITCH / CASEPiù leggibile di 10 JMP
Misurare durata internaRUNTIMEOttimizzazione performance
Arresto immediatoSTPErrore critico hardware
Attesa brevissimaWAITStabilizzazione elettronica
Diagnostica localeGET_ERROREvitare lo STOP della CPU

Domande Frequenti

Qual è la differenza tra JMP e JMP_LIST?

JMP è un salto singolo. JMP_LIST consente di definire un elenco di destinazioni. In base a un indice numerico, il programma salta alla 1ª, 2ª o N-esima etichetta dell'elenco.

L'istruzione WAIT è pericolosa?

Sì, se usata male. Sospende l'esecuzione di TUTTO il programma utente. Se la somma dei tuoi WAIT e del tuo codice supera il tempo di watchdog (spesso 150ms), la CPU andrà in STOP.

Come misurare il tempo di ciclo totale del PLC?

Non hai bisogno dell'istruzione RUNTIME per questo. Puoi leggere l'informazione direttamente nelle proprietà della CPU online o usare le variabili di sistema dell'OB1.

Dove posizionare le etichette LABEL?

I LABEL possono essere posizionati all'inizio di qualsiasi segmento. In LAD appaiono sopra il binario sinistro. Il nome dell'etichetta deve essere unico all'interno del blocco.

Automatizza le tue strutture di controllo

Descrivi la tua logica di salto e T-IA Connect genererà i segmenti JMP e SWITCH ottimizzati per la tua applicazione.