Typ | Funktionsbaustein |
Beschreibung | Der Funktionsbaustein kann in einem Exception Task (Tasktyp = 'Event-Task' mit 'Eventname' = 'Exception') verwendet werden, um die Details der Exception (Tasktyp, Taskname, Programmname, usw.) auszulesen. Am Ein-/Ausgang EXCEPTION_INFO_ARRAY muss eine Variable vom Datentyp ESM_EXCEPTION_INFO (vordefiniertes Array) übergeben werden. Dieses Array wird beim Aufruf des Bausteins gefüllt.Falls der Aufruf des FBs fehlschlägt, wird der Ausgang ERROR auf TRUE gesetzt. Falls ERROR = TRUE ist, liefert der Ausgang ERROR_ID Details zum Fehler. |
Hinweise | Funktionsbausteine müssen instanziiert werden. Der FB-Instanzname muss in der 'Variablen'-Tabelle der POE deklariert werden, in welcher der FB verwendet werden soll. Der Instanzname muss innerhalb der POE eindeutig sein. |
Parameter | Ein-/Ausgang
EXCEPTION_INFO_ARRAY
Datentyp: | ESM_EXCEPTION_INFO (vordefiniertes Array) |
Beschreibung: | Dieses Array wird beim Aufruf des Bausteins mit den Informationen zur Exception gefüllt. Das Array ist wie folgt definiert (ein Array-Element pro CPU-Kern):
TYPE ESM_EXCEPTION_INFO_ARRAY : ARRAY [0..1] OF ESM_EXCEPTION_INFO; ESM_EXCEPTION_INFO : STRUCT TYPE_ID : UDINT; SUB_TYPE : STRING(512); SUB_TYPE_ID : UDINT; TASK_NAME : STRING; PROGRAM_NAME : STRING(512); INFORMATION : STRING(512); END_STRUCT END_TYPE
mit:
Element | Beschreibung |
TYPE_ID | 0 = Keine 1 = ARP Exception (Details in SUB_TYPE und SUB_TYPE_ID) 2 = STD Exception (Details in SUB_TYPE) 3 = Unbekannte Exception 4 = Signal 5 = Task WatchDog |
SUB_TYPE | Subtype der Exception (z.B. std::exception, Arp::System::Commons::ArgumentException) |
SUB_TYPE_ID | Liefert Informationen zu ARP Exceptions (wenn TYPE_ID = 1)0x4000 = PLC Exception 0x4001 = PLC Division By Zero Exception (Division durch Null) 0x4002 = PLC Index Out Of Range Exception (Index außerhalb des gültigen Bereichs) 0x4003 = PLC Stack Overflow Exception (Stacküberlauf) 0x4004 = PLC String Error Exception (Zeichenfolgefehler) |
TASK_NAME | Name des ESM-Task, in dem die Exception aufgetreten ist. |
PROGRAM_NAME | Quelle der Exception im Format "Komponente-Name/Programm-Name" |
INFORMATION | Zusätzliche Informationen |
|
Ausgänge
ERROR
Datentyp: | BOOL |
Beschreibung: | Falls der Aufruf des FBs fehlschlägt, wird der Ausgang auf TRUE gesetzt. Solange ERROR = TRUE ist, liefert der Fehlerode am Ausgang ERROR_ID Informationen zur Fehlerursache. |
ERROR_ID
Datentyp: | ESM_GET_EXCEPTION_INFO_ERROR (vordefiniertes Array) |
Beschreibung: | Falls der Aufruf des FBs fehlschlägt, liefert der Ausgang den Fehlercode mit Informationen zur Fehlerursache.Der Wert dieses Ausgangs ist nur definiert, wenn ERROR = TRUE ist.Mögliche Werte:
NoError | Das Array wurde mit den erwarteten Werten gefüllt. |
InvalidArgument | Das Array ist kein gültiges ESM_EXCEPTION_INFO Array. |
CommunicationError | Interner Fehler |
CommunicationError_CannotReadExceptionInfo | Interner Fehler |
|
|