CAN Layer 2 mit TwinCAT 3

dacripple

Level-1
Beiträge
18
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

hat jemand ein TwinCAT3 Beispiel wie man im SPS Programm CAN Messages verschickt/empfängt. Geht um CAN Layer 2 Messages, nicht CANopen!
Als Hardware habe ich eine EL6751 CANopen Master Klemme.

Ist es möglich die COB ID im PLC Code zu ändern? Wie funktioniert das?

Vielen Dank schon mal!

Grüße
 
Das Verhalten / Code ist identisch zu TwinCAT2. Da gibt es soviel ich auch weiss im Infosys ein Beispiel.
Du musst aufpassen. Zwischen 11 und 29-Bit identifier wird die CobID bzw. Len unterschiedlich codiert (Beim der 11-Bit Variante ist die Länge mit der CobID im gleichen Datenfeld hinterlegt (Bitshift)).

Die CobID musst du explizit setzen. Entsprechend flexibel bist du ja wenn du die CAN Layer 2 Variante nutzt. Dafür aber eben mehr Arbeit...

Guga
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Guga,

vielen Dank für deine Antwort.
Wäre es damit z.B. auch möglich die COB ID von außen(via ADS) oder per Dateizugriff, dynamisch zu ändern, also während das SPS Programm läuft?
 
Hallo dacripple,

das ganze funktioniert wie folgt:

Zu erst muss die EtherCA-Seite der EL6751 projektiert werden (entweder manuel oder per einscannen der Hardware):

01.png

Danach wird die CAN-Seite der EL6751 hinzugefügt:
06.jpg

Es sollte einmal überprüft werden, ob in dem CAN-Device auch die richtige EtherCAT-Seite der Klemme ausgewählt wurde (gerade wenn man mehrere EL6751 verwendet), sollte das nicht der Fall sein, dann kann über den "Search..." Button die Zuordnung geändert werden:
04.jpg


Jetzt fehlt nur noch das CAN-Interface(hier wird man dann gefragt, wie groß die Empfang- und Sende-Queue sein soll und wieviel Bit der Identifier auf dem CAN haben soll):
09.jpg

Der Rest ist dann fasst nur noch Software (siehe Beispiel-Projekt im Anhang -> Dateiendung umbenennen in *tszip)

Bei der Verlinkung ist noch darauf zu achten, dass die IO-Variablen der SPS nur mit den IO-Variablen des CAN-Interface verlinkt werden dürfen und nicht mit den IO-Variablen der EL6751 (auf der EtherCAT-Seite)!!!

Grüße
 

Anhänge

  • CAN_Raw.zip
    180,3 KB · Aufrufe: 105
Zuletzt bearbeitet:
Hallo Guga,

vielen Dank für deine Antwort.
Wäre es damit z.B. auch möglich die COB ID von außen(via ADS) oder per Dateizugriff, dynamisch zu ändern, also während das SPS Programm läuft?

Ja, das ist auch möglich, nachdem die COB-ID von einer SPS-Variable übernommen werden kann und diese zum Beispiel über ADS (oder durch einlesen einer Datei (z.B. CSV)) verändert werden kann.

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ksc,

dein Beispiel hat mir super weiter geholfen! DANKE!

Noch eine Frage:

Ist es möglich die EL6751 von CAN 2.0A auf CAN 2.0B (CAN Extended) umzuschalten?

Ziel wäre es, dass ich der EL6751 sowohl normale CAN Messages, als auch CAN Extended Messages senden kann.

Vielen Dank!
 
Hallo dacripple,
ich weiß jetzt nicht genau, was du mit CAN 2.0 Extended meinst... Sind das die 29 Bit Identifyer?

Wenn ja, dann ist es leider nicht möglich mit einer EL6751 beide Sachen abzudecken bzw. Online umzuschalten.
Was gehen müsste ist, dass man zwei EL6751 parallel auf den gleichen Bus legt und die eine mit 11 Bit Identifyer und die andere mit 29 Bit arbeiten lässt...

Grüße
 
Zuletzt bearbeitet:
Zurück
Oben