DOK-MLC***-FUNC****V13-AP06-DE-P
Rexroth IndraMotion MLC 13VRS Funktionsbeschreibung
12.2.2
SysError
Definition
Ursache
●
CheckBounds
Prüfung der Indexgrenzen bei Arrayzugriffen
●
CheckDivInt
Prüfung auf Division durch 0 von INT-kompatible Datentypen
●
CheckDivLint
Prüfung auf Division durch 0 von LINT-kompatible Datentypen
●
CheckDivLReal
Prüfung auf Division durch 0 von LREAL-Datentypen
●
CheckDivReal
Prüfung auf Division durch 0 von REAL-Datentypen
●
CheckPointer
Prüfung von Pointerzugriffe auf NULL
●
CheckRangeSigned
Prüfung auf vorzeichenbehaftete, wertebeschränkte Variablen
●
CheckRangeUnsigned
Prüfung auf nicht vorzeichenbehaftete, wertebeschränkte Variablen
Im Falle einer Exception bekommt man die Fehler verursachende Stelle im
IEC-Anwenderprogramm angezeigt, sofern diese Stelle nicht in einer über‐
setzten Bibliothek oder FB_Init/Exit Methoden liegt.
Über den Callstack (Menü Debuggen/Aufrufliste) kann man ausgehend von
der Checkfunktion den Aufrufweg zurückverfolgen, die Variablenwerte über‐
prüfen und das Anwenderprogramm anpassen.
Alle Fehler, die nicht im Kontext einer IEC-Anwendertask (z. B. MotionTask,
PlcTask) auftreten, führen zu einem SysError.
Im Display der Steuerung erscheint der Text "SysError", gefolgt von einem 8-
stelligen Fehler-Code, der mit "F9" beginnt, sowie die ersten 8 Zeichen des
Tasknamens der Task, in deren Kontext der Fehler verursacht worden ist.
Befindet sich die Steuerung im Zustand SysError, so werden alle I/Os in den
sicheren Zustand geschaltet. Alle Achsen werden gestoppt. Es ist keine
Kommunikation mit dem Engineeringtool, IMST, HMI-Geräte usw. möglich.
Dieser Fehler ist in der Regel ein Softwarefehler innerhalb der Firmware.
Er kann auch durch fehlerhaftes Verhalten der Peripherie (z. B. Funktionsmo‐
dule, I/O) sowie durch unerwartete Zustände in Firmware-Komponenten auf‐
treten.
In bestimmten Fällen kann ein SysError auch durch das Anwenderprogramm
in der IEC-Applikation ausgelöst werden, wenn der Fehler nicht im Kontext
einer IEC-Anwendertask (z. B. MotionTask, PlcTask) auftritt.
Dies ist der Fall, wenn z. B. in einer FB_Init-Methode eine Division durch 0
auftritt. Bereits beim Download der Applikation wird ein SysError (im Kontext
der Kommunikationstask "BlkDrvTcp" oder "BlkDrvUdp") ausgelöst, der auch
nach dem Neustart der Steuerung (dann aber im Kontext der SPS-Initialisie‐
rungstask "StartTask") wieder auftreten wird.
Eine weitere mögliche Ursache ist das Überschreiben von Datenspeicher
durch das IEC-Anwenderprogramm, verursacht beispielsweise durch das
Überschreiten von Array-Grenzen bei schreibenden Array-Zugriffen.
Bosch Rexroth AG
569/607
Fehlerfall