Forum: Haus & Smart Home CANopen verständnisfrage


von Gabriel W. (gagosoft)


Angehängte Dateien:

Lesenswert?

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

von Schorsch (Gast)


Lesenswert?

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.

von Heinz-Jürgen O. (Firma: emtas) (hjo)


Lesenswert?

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
Noch kein Account? Hier anmelden.