CAN-DP Gateway und CANOpen

Gast #1278113
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?
Gast
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.
Gast
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?
Gast
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!)
Gast
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?
Gast
>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.
Gast
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?
Gast
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).
Gast
>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...
Gast
>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.....
Gast
>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.
Gast
>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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.