Hallo, meine Idee ist es auf Basis eines AT90CAN128 ein kleines Gerät mit LCD-Display zu bauen mit dessen Hilfe ich die CANOpen Node-ID eines Dunker Motors auslesen (scannen) kann und auch eine neue Node-ID setzen kann. Der Motor soll dazu als einziger CAN-Bus Teilnehmer an dieses Gerät angeschlossen werden. Bei uns im Betrieb sind jede Menge Dunker Motoren verbaut und da wäre so ein kleines Gerät hilfreich. Soweit ich bisher gegoogelt habe verwenden die Dunker Motoren das CANOpen Protokoll. Ich bin leider kein CAN-Bus Spezialist und kann daher nicht abschätzen ob sowas "einfach" zu realsieren ist, gibt es hier Spezialisten die mir dazu ein paar Info's geben könnten? LG André
wozu scannen? auf einen NMT MUSS das gerät reagieren (ID =700 +Node ID Daten =Status). Dann hast du die ID. jetzt brauchst du nur noch einen SDo senden, der die ID anpasst. das kannst du mit unterschiedlichen baudraten probieren, dann bsit du auf der sichern seite dafür muss der Motor aber aus dem CAN netzwerk entfernt werden, sonst hast du zwei master. dann kannst du ändern: Baudrate: 2000/1 mit 6E657277 füllen (schreibzugriff erlauben) und 2000/3 mit der neune Baudrate füllen 0-7 = 1m,800k,500k,250k,125k,100k,50k,20k adresse: 2000/1 mit 6E657277 füllen (schreibzugriff erlauben) 2000/2 mit adresse füllen (da hast du nur 2sec zeit!) sg Clemens
Hallo André, für diesen Motor muss es ein Object Dictionary(meist eine *.eds Datei). Wenn in diesem OD ein Eintrag für die Node Id vorhanden ist, kannst du die Node Id mittels SDO setzen, falls erlaubt. Bezüglich CANopen würde ich dir raten, auf eine fertige Implementierung zurückzugreifen, in den Artikel ist unter CAN ein freier Stack verlinkt. Ob der brauchbar ist, kann ich dir nicht sagen, weil ich mit CANopen auf STM32 Controllern arbeite. Mfg Martin
vergiss die fertige implementierung. du willst genau 3 Nachrichten senden (NMT und 2 SDOs) und 3 empfangen (Antwort auf NMT und die beiden antworten auf die SDOs. Sich da über eine CANopen implementierung gedanken zu machen ist absoluter overkill. klopf die fix ins programm und gut is.
Hallo Clemens, Du scheinst dich ja gut auszukennen, ich kenne mich im Bereich CAN-Bus eigentlich garnicht aus. Ich habe versucht mich in das Thema einzulesen, allerdings finde ich per Google da nicht wirklich viel. Folgendes PDF erscheint mir da ein bischen hilfreich: http://www.a-m-c.com/download/sw/dw300_3-0-3/CAN_Manual300_3-0-3.pdf Folgende Fragen hätte ich noch: Clemens S. schrieb: > wozu scannen? auf einen NMT MUSS das gerät reagieren (ID =700 +Node ID > Daten =Status). So wie das gelesen habe muss ich beim senden vom NMT doch eine Node ID mit angeben, oder? Dann antwortet der Slave mit 700+NodeID, richtig?? Oder senden alle Slaves beim Power-Up einen NMT (Boot-Up Message?), dann bräuchte ich ja nur darauf warten. > dafür muss der Motor aber aus dem CAN netzwerk entfernt werden, sonst > hast du zwei master. Der Motor würde als einziger Teilnehmer an meinem kleinen Gerät hängen, das sollte also so gehen. > adresse: > 2000/1 mit 6E657277 füllen (schreibzugriff erlauben) > 2000/2 mit adresse füllen (da hast du nur 2sec zeit!) Wie kommst Du auf den Wert 6E657277 ? Kann man das irgendwo nachlesen? Ist das Dunker-Motor spezifisch oder CANOpen? Bin mir nicht sicher ob ich das ganze hinbekomme, ich werde es trotzdem mal probieren. Dazu habe ich mir mal von Olimex das AT90CAN128 Development Board (https://www.olimex.com/Products/AVR/Development/AVR-CAN/) bestellt. Motoren haben wir bei uns im Ersatzteillager rumliegen, wir haben auch noch einen CAN-Bus USB-Stick (miCan-Stick), soweit ich weiss kann man damit auch den Bus belauschen - das ist vielleicht für eine Fehlersuche hilfreich. Andre
Hallo Andre, Es gibt prinzipiell zwei mir bekannte Möglichkeiten die Knoten Nummer zu setzen. - über ein Objekt im Objektverzeichnis mittels SDO Transfer. Entweder direkt, oder eventuell erst über ein weiteres Objekt (Password Schutz) den Schreibzugriff freischalten - über die CANopen Layer Setting Services LSS (Das ist der vom CiA empfohlene Mechanismus) Wenn alle Geräte die gleiche Baudrate haben, kann man auf die Boot-Up warten, welche bei einer Konfigurierten Node-Id die Id 0x700+Node-Id hat. Hat man die Boot-Up verpasst, hilft ein NMT Reset Node an alle Knoten von Deinem Tool gesendet. Das ist eine CAN Message mit Id 0 und den beiden Datenbytes 0x81 0x00. Daraufhin führt das angeschlossene Gerät (oder alle) einen Reset aus und meldet sich mit der Boot-Up. Um zu entscheiden, welcher Weg für das Gerät gangbar ist, hilft nur das Handbuch, oder wie schon erwähnt, das Electronic Data Sheet (EDS Datei) des Gerätes. Heinz
Andre, das Handbuch von AMC ist nicht schlecht. Zumindest kann man es benutzen um prinzipiell NMT Kommandos zu bauen oder SDO Zugriffe zu generieren. Das beschriebene Gerät kann über Objekt: 100Bh: Stored Node-ID eine neu Node-Id erhalten, wenn ein Hardware-Schalter auf Software Setting gestellt ist. Ich möchte noch auf die vielen links zum Thema CANopen auf http://www.can-wiki-info hinweisen. Heinz
Heinz-Jürgen Oertel schrieb: > Das beschriebene Gerät kann über Objekt: > 100Bh: Stored Node-ID > eine neu Node-Id erhalten, wenn ein Hardware-Schalter auf Software Hallo Heinz, das PDF hatte ich über Google gefunden, hat aber nichts mit den bei uns eingesetzten Dunker Motoren zu tun, ich fand nur die generellen Infos darin interessant. Ich muss mir erstmal die Dunker-Dokumentation für unsere Motoren besorgen, leider scheinen die nötigen Infos nicht über die Dunker Website verfügbar zu sein (auch nach einer Registrierung dort habe ich nichts finden können). Allerdings scheint es so zu gehen wie Clemens bereits weiter oben schon beschrieben hat, dazu habe ich folgende Info gefunden (auch nicht direkt von Dunker, bezieht sich aber darauf): Seite 7 -> http://www.ief-werner.de/downloads/APP5024_DE_1092606_TwinCAT_dunMOT.pdf Dann warte ich mal auf mein Olimex CAN-Board und schau mal wie weit ich komme. André
Andre S. schrieb: > .. > das PDF hatte ich über Google gefunden, hat aber nichts mit den bei uns > eingesetzten Dunker Motoren zu tun, ich fand nur die generellen Infos > darin interessant. meine ich auch. > http://www.ief-werner.de/downloads/APP5024_DE_1092606_TwinCAT_dunMOT.pdf Da steht allerdings nicht, wie TwinCAT die Node-Id ändert. Viel Glück - und Frohe Ostern Heinz
das dokument hast du ja bereits gefunden (den link hatte ich leider vergessen). von dunker gibt es ja ein service tool, um das alles einzustellen. welchen CAN/USB umsetzer verwendet ihr da? bei dem ding von peak und ixxat kanst du über den jeweiligen can view zusehen was das tool so treibt. das kopierst du dann einfach in dein eigenes programm. einen vollständigen stack zu implementieren ist für die 5 nachrichten ein overkill. hast du eine funktionierende gegenstelle, die du lesen kannst? sg
Hallo Clemens, unsere Motoren werden ohne Zubehör an uns geliefert, kommen quasi direkt vom Hersteller der Anlage wo auch die Motoren eingebaut sind. In dieser Anlage sitzen TCP/IP - CAN Gateways - im Normalfall werden die neu eingebauten Motoren dann über den Steuerungsrechner parametriert - also Auslieferungs Node-Id von 127 auf x gesetzt. CAN-Bus Baudrate bleibt wie im Auslieferungszusand auf 125k. d.h. wir verwenden das Dunker-Service Tool (Drive Assistant) nicht. Es kommt aber häufiger vor das ein Motor ausgebaut wurde und sich im nachhinein rausstellt das der garnicht defekt war... Nur hat der ausgebaute Motor dann leider nicht mehr die Auslieferungs Node-Id von 127, dazu wollte ich mein kleines Gerätchen bauen. Zum testen hätte ich einen/mehrere Motoren und den miCAN USB-Stick. Wenn ich alles richtig interpretiert habe scheint es ja relativ einfach zu sein. NMT senden: COB-Id: 000h - 81h 00h - Reset all Nodes Antwort vom Motor: COB-Id: 700h+NodeId - 00h Damit hätte ich die momentane Node-Id. Dann 2 expedited SDO's senden: 2000/1 mit 6E657277 füllen (schreibzugriff erlauben) -> COB-Id:600h+NodeId - 23h 00h 20h 01h 77h 72h 65h 6eh Antwort darauf : COB-Id:580h+NodeId - 60h 00h 20h 01h 2000/2 mit neuer Node-Id füllen -> COB-Id:600h+NodeId - 2fh 00h 20h 02h Node-Id 00h 00h 00h Antwort darauf : COB-Id:580h+NodeId - 60h 00h 20h 02h Der Motor übernimmt wie ich gelesen habe die neue Node-Id erst nach einem Power-Cycle. Vielleicht reicht ja auch nochmal ein NMT zum resetten... André
Andre S. schrieb: > Zum testen hätte ich einen/mehrere Motoren und den miCAN USB-Stick. na dann los und auf an den motor. klof die paar zeilen mal händisch in deinen PC und schau zu was passiert. kaputtgehen kan da eigentlich nichts ;) Andre S. schrieb: > Der Motor übernimmt wie ich gelesen habe die neue Node-Id erst nach > einem Power-Cycle. Vielleicht reicht ja auch nochmal ein NMT zum > resetten... probieren geht über studieren... sg
Hallo CANopen-Freunde, die Node-ID mit SDOs zu ändern ist zwar eine gängige Praxis, aber Vorsicht: wenn das CANopen-Gerät die Restore-Funktion (zurücksetzen auf die Fabrikeinstellungen) unterstützt, muss man darauf achten, dass die Einstellungen der node-ID permanent gespeichert werden und bei einem eventuellen Zurücksetzen nicht auf den Default-Wert gesetzt werden. Ansonsten gibt es eventuell zwei Geräte mit der gleichen node-ID im Netz, was gegebenenfalls zu einer unauflösbaren Buskollision führen kann. Es geht dann ein Teilnehmer in den Bus-off-Zustand. Beste Grüße Holger Zeltwanger
Hallo André, solch ein Gerät zum Verstellen der Node-ID und der Baudrate gibt es schon, siehe www.canfigurino.de Es spricht CiA306.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.