Herunterladen Inhalt Inhalt Diese Seite drucken

Klemmenbusanalyse Über Ein Sps-Programm - Beckhoff CX9000 series Hardware Dokumentation

Embedded-pc
Inhaltsverzeichnis

Werbung

Fehlerargument
Die Anzahl der Impulse zeigt die Position der letzten Busklemme vor dem Fehler an. Passive Busklemmen,
wie zum Beispiel eine Einspeiseklemme, werden nicht mitgezählt.
Durch die Beseitigung des Fehlers beendet das Netzteil die Blinksequenz bei manchen Fehlern nicht. Nur
durch Ab- und Einschalten der Versorgungsspannung kann das Netzteil neu gestartet werden.
5.1.3
Klemmenbusanalyse über ein SPS-Programm
Zur Analyse des Klemmbus (K-Bus) kann auf die in der Architektur beschriebenen Register über TwinCAT
von einem SPS-Programm zugegriffen werden.
Die einzelnen Register, die in der Architekturbeschreibung der Netzteile (CX1100-000x) erklärt sind, sind als
SPS-Datentypen verfügbar. Im folgenden wird die Fehleranalyse als Beispiel vorgestellt.
Für die Fehleranalyse werden im Wesentlichen vier Signale/Variablen benötigt:
• BusState (gibt den Zustand des Busses an: 0 -> kein Fehler, 1 -> Busfehler)
• ErrorCode (entspricht dem Errorcode beim Blinkcode der DiganoseLEDs)
• ErrorArg (entspricht dem Argument-Code beim Blinkcode der DiganoseLEDs)
• Request[0] (Ausgang zum Anfordern / Rücksetzen des Busses)
In dem SPS-Programm müssen dazu analog externe Variablen angelegt werden:
VAR
    k_bus_request AT %QX0.0     : BOOL;
    k_bus_err_code AT %IB0 : USINT;
    k_bus_err_arg AT %IB1 : USINT;
    k_bus_state AT %IB2 : USINT;
END_VAR
In dem SPS Programm kann dann der Fehler wie folgt bestimmt werden (es handelt sich hier um
Pseudocode, der so direkt nicht lauffähig ist)
....
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*)
CX9000 / CX9010
Version: 2.6
Fehlerbehandlung und Diagnose
39

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis