Diagnosi in caso di arresto anomalo della visualizzazione
Un arresto anomalo della visualizzazione può avere diverse cause. Nella sezione seguente imparerai come rilevare le cause di un arresto anomalo della visualizzazione e quali azioni hanno senso per prevenire un arresto anomalo.
IL Arresta l'esecuzione sulle eccezioni gestite comando ti aiuta durante il controllo degli errori. Eseguire il comando prima dell'avvio dell'applicazione.
Suggerimento
Per impostazione predefinita, il Arresta l'esecuzione sulle eccezioni gestite il comando non è disponibile in nessun menu, ma può essere configurato in come segue.
Fare clic su Strumenti → Personalizza.
IL Menù si apre la scheda. Per prima cosa è necessario definire una posizione nel menu per il comando. In questo caso ha senso selezionare un elemento sotto il file in linea menù.
Selezionare la posizione desiderata e fare clic su Aggiungi comando pulsante.
Tutti i comandi sono elencati nel file Aggiungi comando dialogo.
Seleziona il in linea categoria a sinistra e poi il comando desiderato a destra. Clic OK per chiudere la finestra di dialogo. Quindi fare clic OK di nuovo per chiudere il personalizzare dialogo.
IL Arresta l'esecuzione sulle eccezioni gestite il comando è ora disponibile nel file in linea menù.
Per una descrizione dettagliata della procedura per aggiungere il comando vedere il capitolo "???".
In alternativa al Interrompi l'esecuzione in caso di eccezioni gestite comando, è possibile impostare la definizione del compilatore VISU_NO_EXCEPTION_HANDLING
per l'applicazione. Di conseguenza, l'eccezione non viene rilevata dalla visualizzazione e il sistema di programmazione mostra la posizione in cui il sistema è andato in crash.
Possibili cause dell'arresto anomalo di una visualizzazione in esecuzione
Nella visualizzazione, un elemento frame con una variabile di interfaccia con scope
VAR_INPUT
viene utilizzata e questa variabile di interfaccia (nell'esempio:PLC_PRG._itfTest1
,_itfTest1 : ITF_TEST;
) non è stato ancora assegnato nella domanda.


Nella visualizzazione, un elemento frame con una variabile di interfaccia (nell'esempio:
fbTest
) con portataVAR_IN_OUT
viene utilizzato e questa variabile di interfaccia ha un blocco funzione come tipo di dati. Tuttavia, la variabile trasferita non punta a questo blocco funzione.


Divisione per
0
: In un'espressione con divisione, il divisore (nell'esempio:PLC_PRG.rVal2)
non deve essere0
.

Uso di
VAR_IN_OUT
variabili di un blocco funzione nella visualizzazione:Se variabili con ambito
VAR_IN_OUT
sono dichiarati in un blocco funzione, una visualizzazione può accedere a queste variabili solo dopo che il programma ha chiamato il blocco funzione e ilVAR_IN_OUT
variabili sono state assegnate in un blocco funzione.Utilizzo di puntatori zero e riferimenti zero: una variabile puntatore non deve essere zero (esempio:
PLC_PRG.pValue^
).Errore nel codice interno; questo è visibile solo nello stack di chiamate.
Linea di azione per prevenire questi errori
Utilizzare interfacce che inizialmente puntano a oggetti fittizi.
Chiamata
Visu_Prg
nel progetto solo quando tutte le inizializzazioni sono state eseguite.Usa l'operatore
SEL
come nel seguente esempio:SEL(ptr<>0,0,ptr^.<>value)