Netzwerkmanagement
Das Netzwerkmanagement (NMT) definiert das Kommunikationsverhalten eines CANopen Teilnehmers und besteht aus den Zuständen Initialisation, Pre-Operational, Operational und Stopped.
Wird ein Teilnehmer eingeschaltet oder neu gestartet, wechselt der Teilnehmer automatisch in den Zustand Initialisation. Sobald der Zustand Initialisation abgeschlossen ist, wechselt der Teilnehmer automatisch in den Zustand Pre-Operational.
Von diesem Zustand aus kann jeder andere Zustand eingenommen werden. Damit z.B. die Teilnehmer starten, ist nur eine einzige CAN-Nachricht erforderlich:
Start_Remote_Node: Identifier 0, zwei Datenbytes: 0x01, 0x00.
Diese Nachricht überführt die Teilnehmer in den Zustand Operational.
Das folgende Diagramm zeigt welche Zustände ein CANopen Teilnehmer einnehmen kann:
- Initialisation
Der Teilnehmer geht automatisch in den Zustand Initialisation. Sobald der Zustand Initialisation abgeschlossen ist, geht der Teilnehmer automatisch in den Zustand Pre-Operational. - Pre-Operational
Nach der Initialisierung wechselt der Teilnehmer automatisch, d.h. ohne Befehl von außen, in den Zustand Pre-Operational. In diesem Zustand sind die Servicedatenobjekte (SDO) bereits aktiv und der Teilnehmer kann konfiguriert werden. Die Prozessdatenobjekte (PDO) sind noch gesperrt. - Operational
Im Zustand Operational sind die Prozessdatenobjekte (PDO) aktiv.
Wenn der Teilnehmer wegen äußerer Einflüsse (z.B. CAN-Störung, keine Ausgangsspannung) oder innerer Einflüsse (z.B. K-Bus-Fehler) nicht mehr in der Lage ist, Ausgänge zu setzen oder Eingänge zu lesen bzw. zu kommunizieren, dann versucht er eine entsprechende Emergency-Nachricht zu senden. Danach geht der Teilnehmer in den Fehlerzustand und wechselt in den Zustand Pre-Operational zurück. Damit kann auch die NMT-Statusmaschine des Masters fatale Fehler sofort erkennen. - Stopped
Im Zustand Stopped (früher Prepared) ist keine Kommunikation mit dem Teilnehmer möglich. Nur Netzwerkmanagement (NMT) Nachrichten werden empfangen. Die Ausgänge gehen in den Fehlerzustand.
Zustandsübergänge
Die Zustandsübergänge werden mit einer CAN-Nachricht ausgeführt. Die CAN-Nachrichten haben einen sehr einfachen Aufbau:
CAN-Identifier 0 mit zwei Byte Dateninhalt.
- Das erste Datenbyte enthält den sogenannten Command-Specifier (cs),
- das zweite Datenbyte die Knotenadresse (Node-ID), wobei die Knotenadresse 0 alle Knoten anspricht (Broadcast).
11-bit Identifier | 2 Byte Nutzdaten | |||||||
---|---|---|---|---|---|---|---|---|
0x00 | cs | Node-ID |
|
|
|
|
|
|
Die folgende Tabelle gibt einen Überblick über alle möglichen Zustandsübergänge und die dazugehörigen Command Specifier (cs). Nehmen Sie auch das zuvor gezeigte Diagramm, dass die Zustände veranschaulicht, als Übersicht dazu:
Zustandsübergang | Command Specifier cs | Erläuterung |
---|---|---|
(1) | -- | Der Initialisierungs-Status wird beim Einschalten selbsttätig erreicht |
(2) | -- | Nach der Initialisierung wird der Status Pre-Operational automatisch erreicht - dabei wird die Boot-Up-Nachricht abgeschickt. |
(3), (6) | cs = 1 = 0x01 | Start_Remote_Node. |
(4), (7) | cs = 128 = 0x80 | Enter_Pre-Operational. |
(5), (8) | cs = 2 = 0x02 | Stop_Remote_Node. |
(9) | cs = 129 = 0x81 | Reset_Node. |
(10) | cs = 130 = 0x82 | Reset_Communication. |
Beispiel 1
Mit folgendem Telegramm werden netzwerkweit alle Teilnehmer in den Fehlerzustand (Ausgänge sicherer Zustand) überführt:
11-bit Identifier | 2 Byte Nutzdaten | |||||||
---|---|---|---|---|---|---|---|---|
0x00 | 0x02 | 0x00 |
|
|
|
|
|
|
Beispiel 2
Mit folgendem Telegramm wird Knoten 17 zurückgesetzt (neu gestartet):
11-bit Identifier | 2 Byte Nutzdaten | |||||||
---|---|---|---|---|---|---|---|---|
0x00 | 0x81 | 0x11 |
|
|
|
|
|
|