Liebe CAN-Spezialisten! Ich hab mich in den letzten Tagen in etwas in CANopen eingelesen und komme mit meinem Verständnis der Übertragungskanäle und deren Richtungen nicht ganz klar. Also nochmal laut gedacht und aufgeschrieben: * Ein CANopen-Device hat eine Node-ID (oder eventuell mehr) * Ich habe je einen SDO-Transmit und einen SDO-Receive Kanal * SDO arbeitet nach Master-Slave-Prinzip also Frage-Antwort * SDO-Rx empfangen beim Node einen Request und anworten über SDO-Tx * Ich habe je Node-ID vier PDO-Tx-Kanäle und vier PDO-Rx-Kanäle * PDO Arbeitet nach Producer-Consumer-Prinzip jeder darf Producer sein, jeder darf auch Consumer sein. * zu jedem PDO-Tx-Kanal gibts Kommunikationsdaten, also 0x1800 sub 0-5 für TPDO1, 0x1801 sub 0-5 für TPDO2 ... * in der Konfig steht u.a. die CAN-ID (zB TPDO2 + eigene NodeID = 0x282) * über das mapping werden die PDOs auf OD-Objekte abgebildet * in der Beschreibung von PDO auf can-cia.de ist in einem Bild die Versendung von PDOs dargestellt(http://can-cia.de/index.php?id=205). Hier sind auch beim Empfänger Kommunikationsdaten eingetragen: unter 0x1400 (RPDO1 config) ist 0x282 zu finden. Bei SDO am Node ist's mir soweit klar, Request via Rx, Response via Tx. Ist's am Master dann umgekehrt? Sendet der via Rx? Wie kommen die PDO-Rx Kanäle in's Spiel? Wie werden PDO-Rx und PDO-Tx zusammengeschaltet? Wozu wird dann die CAN-ID (RTPO1 + NodeID = 0x202) verwendet? vielleicht kann mir ja jemand über meinen Hirnknoten hinweghelfen LG Gabriel
Hi, Bei SDO am Node ist's mir soweit klar, Request via Rx, Response via Tx. Ist's am Master dann umgekehrt? Sendet der via Rx? Du darfst die "Kanälle" nicht als Kanälle ansehen. Can ist ein serieller bus mit differenzieller Übertragung. Jeder Knoten kann PDO senden und empfangen. Nach CanOpen sind pro Node-ID 4Rx und 4Tx PDOs definiert. Werden mehr benötigt dann belegt der Knoten mehr als eine ID auf dem Bus. Der Master macht es an sich ähnlich nur dass dieser bei einer max. Anzahl von 127 Knoten (11bit Identifier) 512 PDOs unterstützen sollte. Wie kommen die PDO-Rx Kanäle in's Spiel? Wie werden PDO-Rx und PDO-Tx zusammengeschaltet? Wie schon geschrieben darfst du dass nicht auf physikalischer Ebene betrachtet. Jedes PDO hat eine definierte CobID z.B. Rx-PDO eines Knoten RxPDO1 0x200 + NodeID RxPDO2 0x300 + NodeID RxPDO3 0x400 + NodeID RxPDO4 0x500 + NodeID Durch diese Definition weis der Knoten welche PDO gemeint ist. Wozu wird dann die CAN-ID (RTPO1 + NodeID = 0x202) verwendet? Die CanID wird zur Unterscheidung zwischen PDO, SDO, NMT UND Knotenadressierung verwendet. Ich hoffe dass verwirrt dich nich noch mehr. Gruss, Schorsch.
oder sieh Kanal wie: verwendete CAN-ID. Ich will nicht auf die SOD eingehen, und was ein Master oder Slave macht. Wie schon geschrieben, hat jeder Knoten per pre-definition 4 RPDOs und 4 TPDOs. und für jedes dieser PDO wird ihm, wieder per pre-definition, eine CAN Frame-ID zugewiesen. mit dem von Schorsch schon erwähnten Schema. RxPDO1 0x200 + NodeID RxPDO2 0x300 + NodeID RxPDO3 0x400 + NodeID RxPDO4 0x500 + NodeID TxPDO1 0x180 + NodeID ... Verwendet jetzt Knoten 1 seine vordefinierten TPDO, dann benutzt er also CAN ID 0x181 mit Daten aus dem Objektverzeichnis, welche in der Mappingtabelle vereinbart sind. Damit andere Knoten (Mehrzahl möglich) diese Daten auch empfangen können. müssen diese ihre RPDOs umkonfigurieren. Also nicht mehr RxPDO1 0x200 + (eigene)NodeID sondern RxPDO1 COB-ID = 0x181 Heinz
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.