INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Kommunikation mittels CANopen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

03.11.2014, 09:46
Beitrag #1

Bishop Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Nov 2014

12
-
DE



Kommunikation mittels CANopen
Moin Moin,

Ich habe follgendes Problem ich möchte ein CAN Telegramm der Form

0x0202 06 00 E8 03 2C 01 00 00

übermitteln.

Im Anhang findet sich hierzu meine bisherige Programmierung, jedoch funktioniert diese nicht. Ich denke derzeit, es liegt an der Verwendung eines RPDO und möchte daher ein SDO write U16 verwenden. Das Sub VI baut derzeit nur die eingegebenen Dezimalwerte in ein twistet HEX (also Dez 1000 wird zu 03E8 --> twisted E803) um und steckt diese in ein Array, da der RPDO Befehl ja nur mit Arrays arbeitet.

Da ich bisher allerdings nicht viel mit SDO befehlen gearbeitet habe würde ich mich sehr freuen, wenn mir jemenad eine Kurze "Einführung" gibt, was ich bei den Eingängen Object Index (wäre denke ich bei mir 0x0202), Object sub-index (?), Data (werden diese auch als Array übergeben), Timeout (was beschreibt das) und Completion code angeben muss.

Beste Grüße und Dank im vorraus

Bishop


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.11.2014, 12:48 (Dieser Beitrag wurde zuletzt bearbeitet: 03.11.2014 12:50 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kommunikation mittels CANopen
Hallo Bishop,

Begriffsklärungen:
- CANopen arbeitet mit Botschaften, die bis zu 8 Byte Daten enthalten können.
- "twisted" bezeichnet hier die Endianness, üblicherweise als MSB oder LSB gekennzeichnet

Zitat:Ich denke derzeit, es liegt an der Verwendung eines RPDO und möchte daher ein SDO write U16 verwenden.
Wieso sollte mit einem SDO etwas funktionieren, was als PDO nicht geht?
In welcher Form werden die Parameter erwartet? Welches Gerät?

Zitat:Object Index (wäre denke ich bei mir 0x0202), Object sub-index (?), Data (werden diese auch als Array übergeben), Timeout (was beschreibt das) und Completion code angeben muss.
Diese Dinge stehen im Manual deines Gerätes.
- ObjID ist die Adresse des zu lesenden/schreibenden Parameters
- SubID ist die Unteradresse des Parameters. Unter der gleichen (Haupt-)Adresse können mehrere SubIDs verwendet werden…
- DATA sind die Nutzdaten der Botschaft, eben jene 1-8 Byte. Hier musst du schauen, was der SDO-Parameter erwartet…
- TimeOut sollte die max. Zeit für den Versand des SDO sein…
- "CompletionCode" sagt mir nichts. Was steht in der Hilfe dazu?

Dein subVI sieht schon sehr kompliziert aus. Warum U16 in Arrays wandeln, dann in ein 2D-Array und dann erst ins 1D-Array? Warum nicht die U16 in Bytes zerlegen (Split) und als 1D-Array zusammenfassen? Oder andersherum die U16 in ein U64 zusammenfassen und das dann in ein 1D-Array typecasten?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  CANopen VISA Read liefert unerwartete Antwort MarkusS 10 5.629 09.08.2019 12:31
Letzter Beitrag: GerdW
  CANopen VISA kommunikation MarkusS 5 3.522 21.06.2019 14:17
Letzter Beitrag: GerdW
  CANopen Hydrogencarbonat 2 4.728 12.01.2017 17:26
Letzter Beitrag: jg
  CanOpen Error Hex 0xBFF62023 Isenwelle2015 2 4.808 05.05.2015 10:45
Letzter Beitrag: GerdW
  CANopen Tutorial Bishop 1 5.658 22.12.2014 19:44
Letzter Beitrag: GerdW
  Float mit CANopen unix1970 4 5.514 16.04.2014 15:50
Letzter Beitrag: jg

Gehe zu: