Diagnose bei Absturz der Visualisierung
Ein Absturz der Visualisierung kann verschiedene Ursachen haben. Sehen Sie im Folgenden, wie sie im Falle des Absturzes einer Visualisierung die Ursache ermitteln können und welche Maßnahmen zur Vermeidung von Abstürzen sinnvoll sind.
Der Befehl Ausführung an behandelten Exceptions anhalten unterstützt Sie bei der Fehlersuche. Aktivieren Sie den Befehl, bevor die Applikation gestartet wird.
Tipp
Der Befehl Ausführung an behandelten Exceptions anhalten steht standardmäßig in keinem Menü zur Verfügung, kann jedoch über wie folgt konfiguriert werden.
- Wählen Sie Tools → Anpassen - Es erscheint die Registerkarte Menü. Dort müssen Sie zunächst eine Menüposition für den Befehl festlegen. In diesem Fall ist es sinnvoll, eine Position unter dem Menü Online auszuwählen. 
- Selektieren Sie die gewünschte Position und klicken Sie die Schaltfläche Befehl hinzufügen. - In der Liste Befehl hinzufügen werden alle Befehle gelistet. 
- Selektieren Sie links die Kategorie Online und danach rechts den gewünschten Befehl. Beenden Sie den Dialog mit OK. Beenden Sie dann den Dialog Anpassen ebenfalls mit OK - Nun ist der Befehl Ausführung an behandelten Exceptions anhalten unter dem Menü Online verfügbar. 
Die Vorgehensweise für das Hinzufügen des Befehls finden Sie im Kapitel „???“ detailliert beschrieben.
Alternativ zum Befehl Ausführung an behandelten Exceptions anhalten können Sie das Compiler-Define VISU_NO_EXCEPTION_HANDLING für die Applikation setzen. Die Exception wird dann nicht von der Visualisierung abgefangen und das Programmiersystem zeigt die Stelle an, wo das System abgestürzt ist.
Mögliche Ursachen für den Absturz einer laufenden Visualisierung
- In der Visualisierung wird ein Frame-Element mit einer Schnittstellenvariablen mit Gültigkeitsbereich - VAR_INPUTverwendet und diese Schnittstellenvariable (im Beispiel:- PLC_PRG._itfTest1,- _itfTest1 : ITF_TEST;)wurde in der Applikation noch nicht zugewiesen


- In der Visualisierung wird ein Frame-Element mit einer Schnittstellenvariable (im Beispiel - fbTest) mit Gültigkeitsbereich- VAR_IN_OUTverwendet, die als Datentyp einen Funktionsbaustein hat. Die übertragene Variable zeigt jedoch nicht auf diesen Funktionsbaustein


- Division durch - 0: Bei einem Ausdruck mit einer Division darf der Divisor (im Beispiel- PLC_PRG.rVal2)nicht- 0sein

- Verwendung von - VAR_IN_OUT-Variablen eines Funktionsbausteins in der Visualisierung:- Wenn in einem Funktionsbaustein Variablen mit Gültigkeitsbereich - VAR_IN_OUTdeklariert sind, darf eine Visualisierung erst dann auf diese Variablen zugreifen, nachdem das Programm den Funktionsbaustein aufgerufen hat und die- VAR_IN_OUT-Variablen in einem Funktionsbaustein zugewiesen wurden
- Verwendung von Null-Pointer und Null-Referenzen: Eine Pointer-Variable darf nicht Null sein (Beispiel: - PLC_PRG.pValue^)
- Fehler im internen Code; dies ist nur im Call-Stack ersichtlich 
Maßnahmen zur Vermeidung dieser Fehler
- Verwenden Sie Schnittstellen, die initial auf Dummy-Objekte zeigen 
- Rufen Sie - Visu_Prgim Projekt erst dann auf, wenn alle Initialisierungen durchgeführt wurden
- Verwenden Sie den Operator - SELwie in folgendem Beispiel:- SEL(ptr<>0,0,ptr^.<>value)