Beschreibung Bei einem Fehler in der Bausteinausführung reagiert die CPU standardmäßig mit einer Eintragung des Fehlers in den Diagnosepuffer und der Umschaltung in den STOP-Modus.
Dieses Verhalten der CPU können Sie beeinflussen, indem Sie in dem zu überwachenden Programmbaustein eine oder mehrere "GetError"- oder "GetErrorID"-Operationen setzen. Daraufhin schaltet die CPU nicht mehr in den STOP-Modus um und registriert keinen Fehler im Diagnosepuffer. Stattdessen werden die Fehler nun innerhalb des Bausteins verarbeitet. Die Fehlerinformation wird am Ausgang der "GetError"- oder "GetErrorID"-Operation gemeldet.
"GetError"
Die Opertation "GetError" zeigt an, dass bei der Bausteinausführung ein Fehler aufgetreten ist und verwendet dazu eine vorgegebene Fehlerdatenstruktur des folgenden Datentyps: "ErrorStruct" mit ausführlicher Fehlerinformation.
Mit der "GetError"-Operation kann auch eine Meldung über den Fehlerstatus an den aufrufenden Baustein weitergeleitet werden. Dazu muss die Operation im letzten Netzwerk des aufgerufenen Bausteins platziert werden.
"GetError"
Die Operation "GetErrorID" zeigt an, dass bei der Bausteinausführung ein Fehler aufgetreten ist und liefert die ID (Identifikationscode) des Fehlers. Eine Liste mit allen Fehlercodes finden Sie in der Online-Hilfe zu STEP 7 Basic unter dem Stichwort "GetErrorID".
Hinweis
Beim Erstellen eines neuen Projekts ist noch keine "GetError"- oder "GetErrorID"-Operation vorhanden.
Auswertung eines Blockausführungsfehlers mit der Operation "GetError" Informationen über das Blockausführungsereignis werden in einer Variablen vom Systemdatentyp "ErrorStruct" gespeichert.
| Nr. |
Auswerten eines Blockausführungsfehlers mit der Operation "GetError" |
| 1 |
"GetError"-Operation hinzufügen
- Wählen Sie das Verzeichnis "Erweiterte Anweisungen" > "Programmsteuerung" > "GetError".
- Ziehen Sie eine "GetError"-Operation per Drag&Drop in das letzte Netzwerk des zu überwachenden OBs.
- Klicken Sie auf die Schaltfläche "OK".
Weitere Einzelheiten können Sie aus dem Bild unten ersehen. |
| 2 |
Auslesen der "ERROR" Ausgabeinformation aus der "GetError"-Operation Die lokale Fehlerinformation kann in einer globalen Variablen wie folgt gespeichert werden:
- Erstellen Sie die lokale Variable "error_local" vom Datentyp "ErrorStruct".
- Speichern Sie den Wert des Ausgangs "Error" in der lokalen Variablen "error_local".
- Wählen Sie im Verzeichnis "Anweisungen" die Befehle "Verschieben" > "Move".
- Ziehen Sie eine "MOVE"-Anweisung per Drag&Drop in das Netzwerk mit der "GetError"-Operation.
- Verbinden Sie den ENO-Konkakt der "GetError"-Operation mit dem EN-Kontakt der "MOVE"-Anweisung.
- Erstellen Sie im Datenbaustein "data_block" die globale Variable "gl_error" vom Datentyp "ErrorStruct".
- Verschieben Sie die Variable "GetError" in die Variable `"data_block".gl_error´.

Bild 01 |
| 3 |
Auswerten der Ausgabeinformation "ERROR" aus der Operation "GetError"
Am Fehlerausgang "ERROR" können nur Variablen vom Systemdatentyp "ErrorStruct" definiert werden. Der Systemdatentyp "ErrorStruct" definiert die genaue Struktur zur Speicherung der Fehlerinformation. Mit zusätzlichen Operationen können Sie diese Struktur auswerten und eine geeignete Reaktion programmieren.
Die Variable "ErrorStruct" enthält die folgenden Informationen:
- Den Typ des Bausteins, in dem der Fehler aufgetreten ist (z.B. ´"data_block".gl_error.block_type´)
- Die Nummer des Bausteins, in dem der Fehler aufgetreten ist (z.B. ´"data_block".gl_error.code_block_number´).
Siehe Einzelheiten im folgenden Bild. In der Online-Hilfe zu STEP 7 Basic finden Sie unter dem Stichwort "GetError" eine detaillierte Auflistung der Inhalte des Datentyps "ErrorStruct".

Bild 02
|
Tabelle 01
Vom Freigabeausgang "ENO" angezeigte Fehlerbedingungen
Der "ENO"-Ausgang der "GetError"- oder "GetErrorID"-Operationen wird nur gesetzt, wenn die folgenden Bedingungen erfüllt sind:
- Der Eingang EN ist aktiviert.
- Es liegt eine Fehlerinformation an.
Falls eine dieser Bedingungen nicht gilt, so hat die "GetError"-Operation keine Auswirkung auf die weitere Programmausführung.
Wenn EN = WAHR und "GetError" oder "GetErrorID" ausgeführt wird, dann gilt:
- ENO = WAHR gibt an, dass während der Ausführung eines Codebausteins ein Fehler aufgetreten ist und Fehlerdaten vorliegen
- ENO = FALSCH gibt an, dass während der Ausführung eines Codebausteins kein Fehler aufgetreten ist
Sie können die Logik des Fehlerverarbeitungsprogramms mit dem ENO-Ausgang verknüpfen, der nach dem Auftreten eines Fehlers aktiviert wird. Bei einem Fehler werden die Fehlerdaten im Ausgangsparameter gespeichert, auf den Ihr Programm zugreifen kann. Mit "GetError" und "GetErrorID" können Fehlerinformationen des aktuell ausgeführten Bausteins (des aufgerufenen Bausteins) an einen aufrufenden Baustein gesendet werden. Platzieren Sie die Operation im letzten Netzwerk des aufgerufenen Bausteinprogramms, um den endgültigen Ausführungsstatus des aufgerufenen Bausteins zu melden
Online-Diagnose mit STEP 7 Basic
Falls Sie keine "GetError"-Operation verwenden, aber über STEP 7 Basic auch online auf Ihre S7-1200 zugreifen können, so steht Ihnen die Funktion "Online & Diagnose" zur Verfügung:
- Stellen Sie eine Online-Verbindung zu Ihrer S7-1200 her.
- Markieren Sie in der Projektnavigation den Eintrag "Online & Diagnose".
- Markieren Sie im Bereich "Online-Zugänge" den Eintrag "Diagnosepuffer".
- Wählen Sie in der Tabelle "Ereignisse" ein Fehlerereignis bei der Ausführung eines Programmbausteins.
- Unterhalb der "Ereignisse"-Tabelle werden Details zum gewählten Ereignis angezeigt. Hier können Sie auch die Nummer des betroffenen OB und die Ereignis-ID des Fehlers ersehen.
Bild 03
Hinweis
"Kommendes Ereignis" weist auf den Anfang eines Ereignisses hin.
"Ausgehendes Ereignis" weist auf das Ende eines Ereignisses hin.
Anwendungsfall
Wenn kein direkt addressierter Kontakt (z.B. "IW120:P") verfügbar ist, können Sie mit der "GetError"-Operation Folgendes erreichen:
- Verhindern, dass die CPU in den STOP-Moduls wechselt
- Eine Fehlermeldung absetzen
- Einen Ersatzwert für den fehlenden Kontakt einsetzen
Voraussetzungen
- S7-1200
- Ethernet-Kabel
- PG / PC
- STEP 7 Basic V10.5
|