mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN-DP Gateway und CANOpen


Autor: hausierer^^ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
leider zuerst im falschen Forum gepostet:


Moin, ich habe eine Frage zu einem CAN-DP-Gateway.

Es wird die CANopen- und Layer2-Funktionalität unterstützt.

Wenn man die ganz normale Layer2-Funtionalität nutzt (also nix mit
CANopen) kann die Profibus-SPS ja beliebige Telegramme senden.
Also z.B. ID = 412
         len = 8
         data[n] = n

Wird aber die CANOpen-Funktionalität benutzt, stehen nur jeweils 4 RX-
und TX-PDO's zur verfügung. Was heißt das genau? Können vom Gateway dann
nur Telegramme mit vier verschiedenen ID's gesendet werden oder wie muss
man das verstehen?

Autor: Halbwissender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es können auch mehr als 4 Nachrichten-IDs gesendet/empfangen werden.
Dazu müssen die jeweils 4 vorhandenen PDOs aber dynamisch umgemappt 
werden.

Näheres kann ich dir aber gerade nicht dazu sagen. Musst du mal in die 
CANOpen-Spezifikation schauen.

Autor: hausierer^^ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke, aber mich würde interessieren, was es bedeutet 4 PDO's benutzen 
zu können. Heit dies, dass ich 4 Identifier (etwa 100+ID, 200+ID, 
300+ID, 400+ID) bei verschiedenen ID's benutzen kann, oder ist mit "es 
stehen 4 PDO's zur verfügung" gemeint, dass Telegramme gesendet werden, 
die zwar in ihren 8 Bytes frei sind, aber es nur 4 Möglichkeiten für 
genau eine Adresse gibt?

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht ganz. Ein PDO ist ein ProzessDatenObjekt. Das bedeutet, du kannst 
pro CANopen-TEilnehmer (Node) maximal vier PDOs (a)zyklisch mit der SPS 
austauschen. (mit je max. acht Byte)
Diese PDOs haben folgende IDs:
PDO    SPS => Node n         Node n => SPS     (n:Teilnehmer 1..127)
 1        0x200 + n            0x180 + n
 2        0x300 + n            0x280 + n
 3        0x400 + n            0x380 + n
 4        0x500 + n            0x480 + n

Andere IDs haben andere Bedeutungen!

Reichen diese 8x4=32Bytes an Prozessdaten nicht, können weitere Daten 
per SDO, ServiceDatenObjekt, azyklisch angefordert werden:
        SPS => Node n        Node n => SPS     (n:Teilnehmer 1..127)
          0x600 + n            0x580 + n


(Die IDs haben bei CANopen festgelegte Bedeutungen!)

Autor: hausierer^^ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okay, aber beim Gateway ist festgelegt, das es 4 PDO's in jede Richtung 
gibt, also so wie Du es dargestellt hast.

Dies schließt dann ber nicht aus, dass die SPS mir Nachrichten mit den 
IDS 201, 202, 301, 310, 599 etc senden kann? Das bedeutet dann, dass n 
NICHT die Node-ID des CAN-Gateways ist?

Klar, bei CANopen gibt es festgelegte bedeutungen, ich nutze das Gateway 
aber nur zum Datenaustausch zwischen SPS und PC (CAN-Karte). Es soll 
also nicht direkt ein CANopen-Node über das Gateway gesteuert werden. 
Ich will eichfach nur in jede Richtung Telegramme senden, was dann 
scheinbar mit jeder ID möglich ist, aber am Ende dann kein CANopen mehr 
ist, richtig?

Autor: W.D.Robon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch dein CAN-DP-Gateway hat eine Node-ID!!!!!!!!

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich will eichfach nur in jede Richtung Telegramme senden, was dann
>scheinbar mit jeder ID möglich ist, aber am Ende dann kein CANopen mehr
>ist, richtig?

Richig. Dann muss du mit CAN (Layer2) und darfst nicht mit CANopen 
(Laxer8) arbeiten.

Also alle Geräte  (Gateways..) die nur CANopen können, sind somit 
ungeeignet.

Autor: hausierer^^ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Angenommen, das Gateway hat die NodeID = 0x05,

dann kann das Gateway im Layer2-Modus Telegramme NUR auf 0x205, 0x305, 
0x405 und 0x505 senden und verarbeitet nur Daten mit der ID 0x185, 
0x285, 0x385 und 0x485.

Ist das damit gemeint, wenn es heißt, dass es 4 PDO's gibt?

Autor: Stefan Kunz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ähnlich.

Ließ dir die CAN-Open Spezifikationen der CiA durch.
Im Grunde könnte das Modul, wenn es den vollen Umfang von CAN-Open 
unterstützt 127*4 PDOs haben.
Jeder Node-Id sind genau 4 Rx und 4 Tx PDOs zugeordnet. 
Can-Open-Teilnehmer können aber auch mehrere Node-Ids haben, um somit 
mehr PDOs zu benutzen.
Der Inhalt dieser PDOs ist frei wählbar bzw besitzt kein 
Protokoll-Over-Head.

Zu dem Modul, das du sicher vor dir liegen hast, kann ich nun nicht 
sagen, was es alles beherrscht, aber dafür gibt es Manuels, wo das alles 
gut beschrieben ist. Ansonsten bei der CiA die Spezifikationen anfragen 
und durchlesen(gute Englischkenntnisse sollte man schon mit bringen).

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Angenommen, das Gateway hat die NodeID = 0x05,
>dann kann das Gateway im Layer2-Modus

Nein. Im Layer2 gibt es keine NodeIDs !


>Telegramme NUR auf 0x205, 0x305,
>0x405 und 0x505 senden und verarbeitet nur Daten mit der ID 0x185,
>0x285, 0x385 und 0x485.

Für CANopen ist das fast richtig: Du hast Sende und Empfangsrichtung 
vertauscht. Sonst passt das für CANopen.
Also es kann empfangen: 0x185, 0x285, 0x385, 0x485 und empfangen die 
anderen...

Autor: hausierer^^ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Für CANopen ist das fast richtig: Du hast Sende und Empfangsrichtung
>vertauscht. Sonst passt das für CANopen.
>Also es kann empfangen: 0x185, 0x285, 0x385, 0x485 und empfangen die
>anderen...

gut, dann habe ich das jetzt hoffentlich begriffen ;-) Danke für Eure 
hilfe!

Warum es im Layer2 aber keine NodeID gibt, bleibt mir schleierhaft..... 
Irgendwie muss man doch ein bestimmtes Modul ansprechen können.....

Autor: Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Warum es im Layer2 aber keine NodeID gibt, bleibt mir schleierhaft.....
>Irgendwie muss man doch ein bestimmtes Modul ansprechen können.....

Kann man nicht. Es ist umgekehrt, jeder Sender, jedes Datum hat eine 
Absenderadresse welche das Datum eindeutig identifiziert. Jeder 
Teilnehmer kann mithören. Multicast, 1 Producer - 1-n Consumer.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Warum es im Layer2 aber keine NodeID gibt, bleibt mir schleierhaft.....
>Irgendwie muss man doch ein bestimmtes Modul ansprechen können.....

Der Layer2, also das "normale" CAN selbst adressiert keine 
Teilnehmeradressierung. Dort hat jede Nachricht eine "Nummerierung", die 
COB-ID. Jeder Teilnehmer kann jede Nachricht erstmal empfangen und 
anhand der COB-ID enscheiden, ob sie für ihn interessant ist oder nicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.