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