Ist ja schonmal sehr gut, dass du die CANopen-Lib hast. Andernfalls wäre es aufwändig geworden...
Keine Sorge, ich habe auch erstmal eine Weile gebraucht, bis ich mit den ganzen Begriffen klar gekommen bin.
Ich habe eigentlich sehr sehr viel dazu im Internet gefunden. Anfangen bei Wikipedia bis hin zu irgendwelchen Uni-Seiten. Leider habe ich das meiste nur ausgedruckt, nicht gespeichert. Im Anhang findest du aber erstmal ein sehr gutes PDF (Adressräume) zum Themen-Einstieg. Das hat mir immens weitergeholfen.
Weiterhin solltest du (nachdem die Begriffe klar sind) einen Blick auf die Examples der CANopen-Lib werfen. Die sind wirklich sehr gut. Da wird alles einzeln erklärt. Als Ergänzung dann mein VI im Anhang, wo alle Einzelkomponenten, die man so brauchen könnte, verhanden sind. Es handelt sich dabei nur im die Kommunikation mit einem Temperatursensor (also 5 Stufen niedriger als ein Driver), aber das Prinzip von CANopen ist überall gleich. Nur die Anzahl der erforderlichen Kommandos ändert sich.
Als Kurz-Einstieg:
CANopen basiert auf zwei verschiedenen Kommunikationsobjekten: PDOs (Process Data Objects) und SDOs (Service Data Objects). PDOs werden eigentlich nur verwendet, um Messdaten und Kommandos zu verschicken. Also Dinge, die viel Platz benötigen und schnell gehen müssen. SDOs dienen der Konfiguration des Remote Node. Beide Objekte besitzen einen (unterschiedlich großen) Datenkopf mit Adressen, Pointer auf Einstellungen (Objektverzeichniseinträge genannt) usw. und einen Datenkörper, der die Nutzdaten enthält.
Weiterhin gibt es noch Emergency-Objekte (zur Fehlerübertragung), Sync-Objekte (zur Synchronisation) und Network Management Objekte (um RemoteNodes zu starten, stoppen usw.), die aber letztlich wieder SDOs sind.
Die NodeID ist die Nummer des RemoteNodes im CAN-Netzwerk (0 bis 127). Typischerweise wählt man 1 für nur einen Client.
COB-ID ist eine Nummer, die jedem Kommunikationsobjekt in den Datenkopf geschrieben wird. Sie legt die Bedeutung der Nachricht fest (ist es nun die Solldrehzahl, das Herstellungsdatum oder ein Synchronisationspuls) und ist gleichzeitig wichtig für die Priorität. Je kleiner diese Nummer, desto höher die Priorität der Nachricht. Wenn mehrere Nachrichten gleichzeitig in das Netzwerk geschickt werden, wird zuerst die weitergeleitet, die die höchste Priorität hat. Die anderen werden nach einem kurzen Delay erneut gesendet... Eben so lange, bis alle Objekte übermittelt wurden.
Das Objektverzeichnis ist jedem CAN-Gerät eigen, aber größtenteils durch CiA genormt (daher die Aussage, dass es keinen großen Unterschied macht, ober SEW oder Danaher Motion). Es enthält alle möglichen COB-IDs und ihre Bedeutung, die von diesem Gerät unterstützt werden.
Sehr gute Beschreibung ist auch in meinem Manual zum Drive enthalten. Siehe angefügtes PDF (Kommunikationsprofil). Dort hauptsächlich Kapitel 3, was sich mit den Grundlagen von CANopen beschäftigt. Alles ab Kapitel 4 solltest du aber auch zu deinem Drive dazu bekommen haben.
Temperature_Sensor.vi (Größe: 88,74 KB / Downloads: 647)
(VI LV 8.5)
CANopen_CiA_402_Adressr_ume.pdf (Größe: 561,8 KB / Downloads: 2397)
S400_S600_CANopen_Kommunikationsprofil.pdf (Größe: 1,12 MB / Downloads: 2000)