
Fehlerbehandlung und Diagnose
Embedded-PC 49
....
IF k_bus_state = 1 THEN (* auf dem K-Bus ist ein Fehler aufgetreten *)
k_bus_request := TRUE; (* Anfordern der Fehlerwerte für die Register ErrCode
und ErrArg *)
CASE k_bus_err_code OF
0 : return; (* Sollte nicht vorkommen, da ja Fehler vorliegt *)
1 : CASE k_bus_arg OF
0 : melde Fehler; (* EEPROM Prüfsummenfehler *)
1 : melde Fehler; (* Überlauf im Code Buffer *)
2 : melde Fehler; (* Unbekannter Datentyp *)
END_CASE;
2 : CASE k_bus_arg OF
0 : melde Fehler; (* Programmierte Konfiguration, falscher
Tabelleneintrag *)
ELSE melde Fehler; (* Falscher Tabelleneintrag *)
END_CASE;
3 : melde Fehler (* K-Bus_Kommandofehler *)
4 : CASE k_bus_arg OF
0 : melde Fehler; (* Bruchstelle hinter dem Netzteil *)
ELSE melde Fehler; (* Bruchstelle hinter Busklemme 'k_bus_arg' *)
END_CASE;
5 : melde Fehler (* K-Bus-Fehler bei Register-Kommunikation mit
Busklemme 'k_bus_arg' *)
9 : CASE k_bus_arg OF
0 : melde Fehler; (* Checksummenfehler im Programm-Flash *)
ELSE melde Fehler; (* Die Busklemme 'k_bus_arg' stimmt nicht mit der
Konfiguration, die beim Erstellen des Boot-
Projektes existierte, überein*)
END_CASE;
14 : melde Fehler (* 'k_bus_arg'-te Busklemme hat das falsche Format *)
15 : melde Fehler (* Anzahl der Busklemmen stimmt nicht mehr*)
16 : melde Fehler (* Länge der K-Bus-Daten stimmt nicht mehr*)
END_CASE
k_bus_request := TRUE; (* Rücksetzen des Busses, wenn Fehler beseitigt, dann
startet der Klemmbus wieder *)
....
Damit die Steuerung und die Register zusammen arbeiten, müssen sie im System Manager verknüpft werden. Bindet
man das SPS-Programm im System Manager ein, so ergeben sich folgende Signale:
Kommentare zu diesen Handbüchern