# CAN-Kommunikation mit Beckhoff EL6751



## tbrtsmtr (4 Dezember 2013)

Hallo,

im Moment bin ich dabei, mich mit diverser Beckhoff-Hardware vertraut zu machen. So weit hat alles geklappt.

Das Problem taucht jetzt bei dem EL6751 auf. Wie initialisiert man den und sendet oder empfängt CAN-Messages? Ich benutze TwinCAT 3. Hat jemand Code-Beispiele? Oder wo finde ich solche?

Gruß
Tom


----------



## Andy_Scheck (30 Juli 2015)

Hallo,

ich greif mal dieses Thema wieder auf. Hab ebenfalls eine CANOpen Masterklemme (EL6751) und würde gerne mit der im CAN Standard 2.0A kommunizieren.
Arbeite im Moment mit TwinCAT 3.1 Build 4018.0 in VS2010. Die Klemme steckt auf einem CX9020.
Die Klemme hab ich unter Devices eingebunden. Wo kann ich jetzt denn Baudrate und das Format (Standard 2.0) einstellen?
Grüße


----------



## Andy_Scheck (30 Juli 2015)

Bin jetzt ein paar Schritte weiter, dank dem Beckhoff-Support!
Unter Solution-Explorer Device -->Rechtsklick "Add New Item" taucht die Klemme auf. Hier hab ich dann meine CANOpen Master Klemme ausgewählt. Diese taucht dann auch im Solution-Explorer als neues Device auf.
An diesem neuen Device (Bsp. Device 4 EL6751) --> Rechtsklick "Add New Item" kann dann eine neue Box hinzugefügt werden.





Hier wird dann über Miscellaneous der "CAN Open Node" ausgewählt.





Unter CAN Node (Reiter der Box) lässt sich nun der Haken für "General CAN Node - Layer 2" setzen


----------



## Andy_Scheck (6 August 2015)

Kann jetzt über den TxPDO 1 (0x181) und der Var 1 Daten empfangen, sowie auch mit TxPDO2 (0x281) und Var 2.
Sobald ich aber unter RxPDO 1 (0x201) einen Kanal (Var 3) anlege, kann ich keine Daten mehr empfangen und die Klemme meldet folgendes:




Hab ich die Adressen soweit richtig vergeben? Bisher ist nichts auf dem Bus außer die bisher angelegten Adressen.
Hab mir das hier angeschaut: 
http://infosys.beckhoff.com/index.ph...rt.htm&id=2746 
Kann es sein dass es an der Startadresse  liegt? Gibt es hier was zu beachten, wo liegt denn der Adressbereich der Ausgänge?



--> Es lag an der Zykluszeit des Tasks, dieser war auf 100ms eingestellt. Hab ihn nun auf 10ms eingestellt, seither läuft der Datentransfer ohne Fehler!


----------



## PhuongTran1983 (1 September 2015)

Hallo Andy,

diese CAN Klemme benutze ich auch zurzeit und ich habe etwas Kenntnis gesammelt.

bei CAN Master 6751 hast Du die Möglichkeiten, CAN Node für CANopen oder normalen CAN über Layer 2 zu senden und zu empfangen. Bei der Beschreibung ist aber etwas anders, bei Rx-PDOs kannst Du maximal 8 Bytes auf dem CAN Bus senden und umgekehrt bei Tx-PDOs 8 Bytes empfangen. Wenn Du normale CAN-Node ohne NMT verwendest, dann denke ich, kannst Du manuell irgend Identifier für PDOs einstellen. Es muss aber beachtet werden, dass diese Identifier mit anderen CAN-Node übereinstimmend sind. Am bestens kannst Du ein CAN-Analyzer Gerät zum Test verwenden.

Die Hex (0x181, usw.), die Du erwäht hast, sind die COB-Id. Die sind die Summe von Identifier von PDO (in Hex) und Node-ID. (in Dec). Für die Berechnung musst Du eine Zahl davon umrechnen.

Viele Grüße,

Phuong


----------



## drfunfrock (1 September 2015)

Das COB ID Schema (CAN ID's) für die Verteilung von CAN-IDs ist recht einfach. Wenn du einem CAN-Teilnehmer, die COBID für ein CANOpen Node ID zuweisst, gibt es am wenigsten Probleme. Ansonsten heisst es, eine Doku zum Projekt zu führen


----------



## Andy_Scheck (22 Oktober 2016)

Hallo,
Wo kann ich anwählen, wie meine Daten gesandt werden. Bisher macht er das nur bei *"Change"*! Ich würde das gerne aber *Zyklisch* machen??


----------



## PhuongTran1983 (24 Oktober 2016)

Hallo Andy,

bei zyklischer Sende der Daten hat Du zwei Möglichkeiten:

1. Du verwendest einen TON im dem Programm und gibst neue Daten auf deine PDO-TXs nach Ablauf des PT.
2. Du kannst auch Event-Time bei Einstellung der PDO vorgeben. Die Daten werden zyklisch auf den Bus gesendet, egal ob deine Daten geändert wurden oder nicht.

VG


----------



## Aleks0209 (28 September 2018)

Hallo zusammen,

mich würde interessieren ob die Klemme EL6751 die dynamische Knoten-ID vergabe unterstüzt (LSS). falls nicht, wie kann ich über die Klemme (TwinCat) den Knoten eine ID vergeben oder ändern?
Kann die Klemme das überhaupt oder müssen die Knoten vorab konfiguriert werden mit den passenden IDs?

VG


----------



## Guga (28 September 2018)

Ein neuer Thread wäre hilfreich anstelle dich auf einen alten aufzusetzen.

Zur Antwort: Ja. ist möglich, du brauchst aber eine ziemlich neue Klemme/HW (Konkret FW18 oder höher). Schick mir mal per PN deine Email und ich schick dir was.
Guga


----------



## AdamMax (23 Juli 2019)

Hallo Zusammen,
könnte jemand von euch ein Beispielprojekt zur Verfügung stellen?

Bzw. gibt es eins von Beckhoff?

Beste Grüße


----------



## DeltaMikeAir (23 Juli 2019)

Hallo


> Bzw. gibt es eins von Beckhoff?


Von was? Für was?



> könnte jemand von euch ein Beispielprojekt zur Verfügung stellen?


TwinCat 2 / 3?

Vielleicht einmal etwas ausführlicher schreiben, was du vorhast und wie dies umgesetzt werden soll.

Danke


----------



## AdamMax (23 Juli 2019)

Hallo Zusammen

Ich meinte ein Beispielprojekt für eine CAN Kommunikation mit einer EL6751 Klemme und einem externen Teilnehmer z.B. PCAN Explorer. Also eine Möglichkeit Nachrichten von A nach B über den CAN Bus zu senden.

Ich selber entwickle mit TwinCAT3 und einer Beckhoff CX2030. Für die serielle Schnittstelle gibt es ja z.B. Beispielprojekte von Beckhoff.
Also einfach eine Idee wie man das lösen kann. Finde im Internet kein passendes Beispiel.

Vielen lieben Dank


----------



## Guga (23 Juli 2019)

@AdamMax: Die Info reicht noch nicht. 

#1: Wenn du einen regulären Slave hast: 
     - EL6751 vorhanden.
     - CanNode Master Knoten einfügen und link zur EL6751 überprüfen.
     - master-Baudrate setzen und CAN - Slaves scannen. Alternativ zum Scannen den Slave per *.eds-Datei einfügen.
  => eigentlich so einfach das es dafür kein Beispiel braucht.

#2: Wenn du azyklische Kommunikation meinst (SDO)... da gibt es ein paar Infos im Infosystem, allerdings etwas verstreut. 

Der Editor von CAN in TwinCAT ist nun ja, sagen wir es mal so, ergonomisch nicht brilliant. CAN-Hintergrundwissen hilft hier immens.


----------



## wollvieh (24 Juli 2019)

Willst Du Can2.0 Botschaften senden/empfangen? Da hätte ich ein Beckhoff Beispiel.


----------



## zoyim (10 Januar 2020)

Hi wollvieh
ich hätte Interesse an deinem Beckhoff Beispiel... wenn es nicht zu spät ist...


----------



## Neuberd (6 März 2020)

wollvieh schrieb:


> Willst Du Can2.0 Botschaften senden/empfangen? Da hätte ich ein Beckhoff Beispiel.




Hallo wollvieh,
ich habe momentan ebenfalls eine Anwendung, in der ich über eine EL6751 auf einen Can Bus 2.0 Botschaften senden und empfangen muss.
Besteht die Möglichkeit, dass ich dieses Beispiel bekommen könnte? ​


----------



## Stier (12 Juni 2020)

wollvieh schrieb:


> Willst Du Can2.0 Botschaften senden/empfangen? Da hätte ich ein Beckhoff Beispiel.



Hallo wollvieh

Auch ich habe intresse an deinem Beispiel-Programm in TwinCAT3? Kannst du mir das senden? Vielen Dank im Voraus.


----------



## wollvieh (12 Juni 2020)

hier bitte das progrämmle.

Anhang anzeigen CAN_RAW.zip


wollvieh.


----------



## Stier (7 Juli 2020)

Wie steuere ich nun mit der EL6751 im TwinCAT3 die BERGER LAHR CAN-Busklemme B170 an? Ich möchte die 32 Eingänge einlesen und die 24 Ausgänge schalten. 
Wie gehe ich da vor?


----------



## Guga (7 Juli 2020)

@Stier: Es gibt zwei Mögliche vorgehensweiteisen:
In letzter Instanz benötigst du Informationen über die CAN-Kommunikation des Gerätes.
#1: Du schaust nach der Doku des B170 und / oder ob es eine EDS-Datei dafür gibt und dann unterstützen wir dich hier wie man es in TwinCAT projektiert.
#2: Du versuchst einen Scan auf der EL6751 in TwinCAT durchzuführen. Wenn auf dem das Gerät die entsprechenden Infos (SDOs) hinterlegt sind liest sie dir TwinCAT dann aus.

Auf Basis des Fotos des Gerätes kann dir jedoch keiner helfen

Guga


----------



## Stier (8 Juli 2020)

@Guga: Danke für deine Antwort. 
1 Leider ist die angehängte Doku die  einzige Info die ich habe. Eine EDS-Datei dazu gibt es nicht. Ist das  trotzdem möglich mit den Infos in der Doku?
2 Wenn ich einen Scan auf  der EL6751 durchführe, erscheint neu das Gerät 2. Das passiert aber  auch, wenn die CANbus-Klemme nicht mit der EL6751 verbunden ist. :???:


----------



## AdamMax (15 Oktober 2020)

Hallo Zusammen,

ich habe noch eine Frage zu der COB-ID.
Ich verwende einen EL6751 Master mit einem extended identifier. Bedeutet einen 29bit identifier.
In diesem Modus verlangt das Programm eine cobID mit UDINT (32bit) Größe. In dem Beispielprojekt ist die COB-ID mit einem UINT (16bit) dargestellt.

Könnte mir jemand erklären wie man die COB-ID für 32bit Größe richtig definiert.
Finde auch noch nichts in der EL6751 Dokumentation wie man sich die COB-ID zusammenbaut.


----------



## Stier (15 Oktober 2020)

Hallo Adam

Schau mal in der Dokumentation auf Seite 81.


----------

