Forum: Mikrocontroller und Digitale Elektronik Unbekannter CANopen NMT Befehl -> Reaktion


von F. B. (flump)


Lesenswert?

Hallo,

zu meiner Frage:
wie soll sich ein CAN Slave verhalten, wenn er ein NMT Befehl empfängt, 
welcher nicht in CanOpen spezifiziert ist ?

Ich habe hier zwei verschiedene Slaves. Der eine geht in STOP und der 
andere ignoriert den nicht bekannten Befehl einfach, deswegen stellt 
sich mir die Frage, was ist "richtiger" ?

Ich habe schon die CiA DS301 und das Internet durchsucht, aber nichts 
aussagekräftiges gefunden.
Der einzige Hinweis war dass es eventuell im "Device Profile" stehen 
könnte.

Vilen Dank schon mal für die Antworten !

Gruß
Florian

von CAN Knoten (Gast)


Lesenswert?

Mir ist auch keine Festlegung im CiA301 bekannt.

Vorschlag: Frag die CiA in Nürnberg und veröffentliche die Antwort hier 
in diesem Thread.
Ich habe die Fachleute dort als sehr aufgeschlossen erlebt.

Mein Bauch sagt: Ungültige NMT Befehle ignorieren führt zu einem 
robusteren Verhalten des Knotens.

von F. B. (flump)


Lesenswert?

Anfrage ist rausgegangen ;-)

Klar wird der Knoten robuster, aber ist dies gewollt?

Meine Gedankengang war nur etwas anders aus sicht eines CANopen Slaves:
 - Ich empfange einen Befehl mit höchter Priorität
 - Ich verstehe nicht was mir der Master befehlen will
 - Ich stelle mir die Frage, ob es dem Master schon noch gut geht
 - Ich geh lieber mal in den STOP Modus, damit nichts passieren kann

Bei der robusten Lösung verstehe ich das eher so:
 - Scheiß egal welchen Mist mir der Master befehlen will, ich mach 
weiter

Gruß
Florian

von F. B. (flump)


Lesenswert?

Antwort von CiA:

CiA 301 beschreibt keine Reaktion auf eine falsche Implementierung.
Sollte so ein nicht CiA 301 konforme NMT Befehl geben dann ist das
Verhalten des Empfängers (CANopen Gerätes) undefiniert.

Ich würde jedoch ein unbekannte NMT Befehl ignorieren,
denn wenn eine Reaktion darauf  wie der Übergang des Gerätes in NMT 
Stopped  kommt, wäre das ebenso eine falsche Implementierung wie die des 
Gerätes welches ein falsches NMT Befehl sendet.
Es ist fest vorgegeben in CiA 301 von welchem NMT Zustand der Übergang 
zum NMT Stopped erfolgen soll.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.