Utilizzo dei punti di interruzione
I punti di interruzione sono comunemente usati per il debug dei programmi. CODESYS supporta i punti di interruzione in tutti gli editor IEC.
È possibile impostare punti di interruzione in posizioni specifiche del programma per forzare l'arresto dell'esecuzione e per monitorare i valori delle variabili. È possibile impostare speciali "punti di interruzione dei dati" per interrompere l'esecuzione del programma quando il valore di una variabile specifica cambia.
L'arresto in corrispondenza di un punto di interruzione o di un punto di interruzione dei dati può essere collegato a condizioni aggiuntive. Puoi anche ridefinire i punti di interruzione e i punti di interruzione dei dati come "punti di esecuzione" in cui viene eseguito codice specifico invece di arrestare il programma.
Suggerimento
Il Punti di interruzione view fornisce una panoramica di tutti i punti di interruzione definiti. Include anche comandi aggiuntivi per l'elaborazione delle modifiche batch in più punti di interruzione.
Nell'editor, i seguenti simboli identificano lo stato di un punto di interruzione o di un punto di esecuzione:
: Il punto di interruzione è abilitato.
: Il punto di interruzione è disabilitato.
: Il punto di interruzione viene impostato in un'altra istanza della POU aperta nell'editor.
: Il programma si ferma al punto di interruzione.
: Il punto di interruzione con condizione è abilitato.
: Il punto di interruzione con condizione è disabilitato.
: Il punto di esecuzione è abilitato.
: Il punto di esecuzione è disabilitato.
: Il punto di esecuzione con condizione è abilitato.
: Il punto di esecuzione con condizione è disabilitato.
: Il punto di interruzione dei dati è abilitato.
: Il punto di interruzione dei dati è disabilitato.
: Il programma si ferma al punto di interruzione dei dati.
: Il punto di esecuzione dei dati è abilitato.
: Il punto di esecuzione dei dati è disabilitato.
: Il programma si ferma al punto di esecuzione dei dati.
: Il punto di esecuzione dati con condizione è abilitato.
: Il punto di interruzione dei dati con la condizione è abilitato.
Per ulteriori informazioni, vedere: Punti di interruzione
Punti di interruzione dei dati
Suggerimento
La funzione dei punti di interruzione dei dati dipende dal sistema di destinazione. Attualmente, i punti di interruzione dei dati sono possibili solo con il CODESYS Control Win.
L'esecuzione del programma si interrompe a un punto di interruzione dei dati quando il valore di una particolare variabile o indirizzo di memoria cambia. Come per i punti di interruzione "normali", l'arresto può essere collegato a una condizione aggiuntiva oppure è possibile elaborare codice specifico al posto dell'arresto (convertito in un punto di esecuzione dati).
È possibile impostare un punto di interruzione dei dati tramite Nuovo punto di interruzione dei dati comando nel Debug menu o tramite il Nuovo pulsante nel Punti di interruzione Visualizza. Specificare direttamente un nome di variabile qualificato o un indirizzo di memoria che deve essere monitorato per le modifiche al suo valore.
Nel codice di esempio seguente, la memoria della variabile iNumber
viene sovrascritto involontariamente. Tuttavia, un punto di interruzione dei dati nella variabile iNumber
rileverà quando il suo valore cambia. L'elaborazione si interrompe quindi con un messaggio corrispondente all'accesso all'array, che sovrascrive il valore della variabile: Idx
= 7
.
Vedi anche sotto: "Impostazione di un punto di interruzione dei dati"
PROGRAM PLC_PRG VAR Idx : INT; Ary : ARRAY[0..3] OF BYTE; iNumber : INT := 55; END_VAR FOR idx := 0 TO 6 DO Ary[idx] := 0; END_FOR
Punti di interruzione nelle applicazioni con più attività
Fondamentalmente, il debug non è possibile per più attività contemporaneamente. Mentre si lavora su un'attività con punti di interruzione o a passi, i punti di interruzione vengono ignorati in altre attività.
Se una POU contenente un punto di interruzione viene utilizzata da più attività, solo l'attività ("attività di debug") viene interrotta perché raggiunge prima il punto di interruzione. Tutti gli altri compiti continuano. Il Pila di chiamate la finestra di dialogo mostra quale attività è attualmente interrotta.
Se è necessario che un punto di interruzione influisca solo su un'attività specifica, è possibile definirlo nelle proprietà del punto di interruzione.
I punti di interruzione funzionano separatamente per ciascuna applicazione in modo che un "HALT ON BP" non influisca su altre applicazioni. Ciò vale anche per le applicazioni padre/figlio, anche se il punto di interruzione è impostato in un blocco utilizzato da più applicazioni e il cui codice si trova una sola volta sul PLC.
Importante
Gli I/O richiamati dall'"attività di debug" non vengono aggiornati in modo interrotto nel punto di interruzione, anche se si seleziona il Aggiorna I/O in Stop casella di controllo nelle impostazioni del PLC.
Suggerimento
Se l'applicazione si arresta a un punto di interruzione sul PLC, una modifica o un download in linea provoca l'interruzione di tutte le attività, il che significa che il PLC si arresterà. In questo caso, CODESYS ti chiede se continuare o meno con il login.
Impostazione di un singolo punto di interruzione (esempio nell'editor ST)
Requisito: l'applicazione è in modalità online e in esecuzione. La modalità operativa è Debug.
Nell'editor, aprire una POU programmata in testo strutturato (ST).
Posizionare il cursore sulla riga in cui verrà impostato un punto di interruzione.
Clic F9 chiave.
oppure premere ilLa linea è segnata in rosso e identificata dal
simbolo (punto di interruzione abilitato). Se il programma viene interrotto al punto di interruzione, la riga viene contrassegnata da
simbolo (arresto al punto di interruzione). L'elaborazione del programma viene interrotta. Questo è identificato nella riga di stato dal
HALT ON BP
stato evidenziato in rosso.Clic F5 chiave.
oppure premere ilIl programma continua.
Imposta più punti di interruzione e controlla i valori delle variabili nella posizione di interruzione.
Posizionare il cursore sulla riga in cui rimuovere un punto di interruzione.
Clic F9 chiave.
oppure premere ilLa marcatura scompare. Il punto di interruzione viene eliminato.
Definizione di una condizione di punto di interruzione (esempio nell'editor ST)
Nell'editor, aprire una POU programmata in testo strutturato (ST).
Posizionare il cursore sulla riga in cui verrà impostato un punto di interruzione.
Clic
.Il Nuovo punto di rottura si apre la finestra di dialogo.
Clicca il Condizione scheda.
Clic Interrompi quando il numero di colpi è un multiplo di nel Conteggio colpi casella di riepilogo.
Specificare il valore "5" nel campo a destra.
Inoltre, puoi definire una condizione booleana per quando il punto di interruzione dovrebbe essere attivo. Seleziona il Rompi, quando è vero casella di controllo. Specificare una variabile booleana nel campo di testo a destra.
Seleziona il Abilita immediatamente il punto di interruzione casella di controllo.
Chiudi la finestra di dialogo.
La linea è contrassegnata in rosso e identificata dal
simbolo.
Monitorare il programma in esecuzione. Finché la variabile booleana per la condizione è FALSE
, la condizione del punto di interruzione non è soddisfatta e il programma continua a essere eseguito. Se imposti la variabile su TRUE
, allora la condizione è soddisfatta e il programma si ferma al punto di interruzione ogni 5 passaggi.
Definizione di un punto di esecuzione (esempio nell'editor ST)
Nell'editor, aprire una POU programmata in testo strutturato (ST).
Posizionare il cursore nella posizione di un punto di esecuzione.
Clic
.Il Nuovo punto di rottura si apre la finestra di dialogo.
Clicca il Impostazioni del punto di esecuzione scheda.
Seleziona il Punto di esecuzione opzione.
Nel Esegui il codice seguente campo, specificare la seguente istruzione:
iCounter := iCounter + 1;
Nel Stampa un messaggio nel registro del dispositivo campo, specificare il seguente testo:
Execution point reached {iCounter}
Chiudi la finestra di dialogo.
Quando il programma raggiunge il punto di esecuzione, non si ferma, ma esegue il codice sopra definito. Inoltre. viene inviato un messaggio al registro del dispositivo.
Impostazione di un punto di interruzione dei dati
Requisito: l'applicazione è in modalità online e in esecuzione.
Clic
.Clic
.Nel Nuovo punto di interruzione dialogo, sul Dati scheda, fare clic su
pulsante.
Nel Assistente all'immissione dialogo (Guarda Variabili scheda), selezionare le variabili per le quali il programma deve arrestarsi quando viene modificato.
In alternativa, specificare il nome completo della variabile in Dati scheda direttamente nella riga di input. Esempio:
PLC_PRG.iNumber
. Il numero esatto di byte da monitorare è specificato come Misurare. Per impostazione predefinita, qui viene impostato automaticamente un valore che corrisponde al tipo di dati. È inoltre possibile specificare un minor numero di byte da monitorare.Nel Punti di interruzione visualizzare, selezionare la riga con il punto di interruzione dei dati e fare clic su
pulsante.
La linea è contrassegnata e identificata dal
simbolo (punto di interruzione dati abilitato). Quando il programma raggiunge il punto di interruzione dei dati (ovvero quando cambia il valore delle variabili selezionate), l'elaborazione del programma si interrompe. Nella parte di implementazione della POU, la riga successiva è identificata da una freccia
. Questo è identificato nella riga di stato dal
HALT ON BP
stato evidenziato in rosso.Clic F5 chiave.
oppure premere ilIl programma continua a funzionare e si interrompe nuovamente quando il valore delle variabili cambia nuovamente.