Schnelleinstieg für erfahrene Anwender

Zielgruppe

Diese Kurz-Übersicht wendet sich an Anwender, die CAN bereits kennen. Sie zeigt, welche CAN-Nachrichten erforderlich sind, um mit BECKHOFF CANopen Ein-/Ausgabebaugruppen in der Ausgangskonfiguration (mit Default-Einstellungen) zu arbeiten.

In jedem Fall ist die ausführliche Dokumentation zu lesen und zu berücksichtigen!

Hardware-Konfiguration

Über den DIP-Schalter sind auf den Buskopplern eine einheitliche Übertragungsrate sowie jeweils unterschiedliche Knotenadressen (Node-ID) einzustellen. Die Belegung des Schalters ist auf den Baugruppen aufgedruckt. Dabei ist zu beachten, dass CANopen die Adresse "0" zum Ansprechen aller Baugruppen (Broadcast) verwendet, diese also nicht auf der Baugruppe eingestellt werden darf.

Start der Baugruppen

CANopen ermöglicht es, die Baugruppen mit einem einzigen Netzwerkmanagement-Telegramm zu starten:

11-bit Identifier

2 Byte Nutzdaten

0x00

0x01

0x00

 

 

 

 

 

 

Dabei enthält das erste Datenbyte das Start-Kommando (Start_Remote_Node), das zweite Datenbyte die Knotenadresse (hier: 0, damit werden alle Knoten angesprochen).

Nachdem die Baugruppen gestartet wurden, sind die Ein- und Ausgänge freigeschaltet. In der Grundkonfiguration (Default-Einstellung) kommunizieren die Baugruppen im ereignisgesteuerten Modus, d.h. Änderungen der digitalen Eingänge werden sofort übermittelt, nach dem Empfang von Telegrammen mit Ausgangsdaten werden die Ausgänge sofort entsprechend gesetzt

CAN-Identifier

Die CAN-Identifier für die Ein- und Ausgangsdaten werden aus der Knotenadresse (1-63) abgeleitet:

Datenart

Default CAN-Identifier

digitale Eingänge 1...64

0x180 (=384dez) + Knotenadresse

digitale Ausgänge 1...64

0x200 (=512dez) + Knotenadresse

analoge Eingänge 1...4

0x280 (=640dez) + Knotenadresse

analoge Ausgänge 1...4

0x300 (=768dez) + Knotenadresse

analoge Eingänge 5...8*

0x380 (=896dez) + Knotenadresse

analoge Ausgänge 5...8*

0x400 (=1024dez) + Knotenadresse

analoge Eingänge 9...12*

0x480 (=1152dez) + Knotenadresse

analoge Ausgänge 9...12*

0x500 (=1280dez) + Knotenadresse

* falls mehr als 64 digitale Ein- bzw. Ausgänge vorhanden sind verschiebt sich der Bereich entsprechend (siehe Abschnitt Default Mapping).

Digitale Eingänge

Die CAN-Nachrichten mit digitalen Eingangsdaten stellen sich wie folgt dar:

11-bit Identifier

1-8 Byte Nutzdaten (je nach Zahl der Eingangsklemmen bzw. Erweiterungsbaugruppen)

0x180(=384dez) + Node-ID

E0

E1

E2

E3

E4

E5

E6

E7

E0: Eingangsbytes auf Eingangsklemmen (bzw. Feldbus Box Baugruppen), von links nach rechts.

Digitale Ausgänge

Die CAN-Nachrichten mit digitalen Ausgangsdaten haben folgende Struktur:

11-bit Identifier

1-8 Byte Nutzdaten (je nach Zahl der Ausgangsklemmen bzw. Erweiterungsbaugruppen)

0x200(=512dez) + Node-ID

A0

A1

A2

A3

A4

A5

A6

A7

A0: Ausgangsbytes auf Ausgangsklemmen (bzw. Feldbus Box Baugruppen), von links nach rechts.

Analoge Eingänge

So sehen CAN-Nachrichten mit analogen Eingangsdaten aus:

11-bit Identifier

4-8 Byte Nutzdaten (je nach Zahl der analogen Eingänge)

0x280(640dez) + Node-ID

E0.0

E0.1

E1.0

E1.1

E2.0

E2.1

E3.0

E3.1

E x.0...E x.1: Analogeingang x. Die detaillierte Beschreibung des Datenformats findet sich im Objektverzeichnis bei Objekt 0x6401.

Sendeverhalten Analogeingänge

Um ein "Überfluten" des Busses mit sich ständig ändernden Analogeingangswerten zu vermeiden, erzeugen die Analogeingangs-Baugruppen nach CANopen im Defaultzustand keine Datentelegramme. Die Analogdaten lassen sich über Remote-Zugriff (Remote Transmit Request, CAN-Nachricht ohne Daten mit gesetztem RTR-Bit) auf die Analogeingangs-Telegramme auslesen. Alternativ kann selbstverständlich auch die Baugruppe so umkonfiguriert werden, dass eine Änderung des Eingangswerts zum Absetzen eines Datentelegramms führt. Hierzu wird ein Wert > 0 auf Index 0x6423 des Objektverzeichnisses geschrieben. Das entsprechende SDO-Telegramm sieht wie folgt aus:

11-bit Identifier

8 Byte Nutzdaten

0x600(=768dez) + Node-ID

0x22

0x23

0x64

0x00

0x01

0x00

0x00

0x00

Es empfiehlt sich, analoge Eingangsdaten statt per Ereignissteuerung (jede Änderung des LSB ist ein Ereignis und führt zum Versenden des entsprechenden Telegramms) zyklisch synchron oder per event timer zu verschicken. Falls die Ereignissteuerung beibehalten werden soll, so sollte die Datenmenge durch Setzen eines Delta-Wertes (Objektverzeichnis Index 0x6426), von Grenzwerten (0x6424 +0x6425) oder einer Inhibit-Time (erneute Datenübertragung frühestens nach Ablauf der Inhibit-Time, 0x1801ff) reduziert werden. Details zur Parameterkommunikation finden sich im Kapitel Servicedaten: SDO.

Analoge Ausgänge

So sehen CAN-Nachrichten mit analogen Ausgangsdaten aus:

11-bit Identifier

4-8 Byte Nutzdaten (je nach Zahl der analogen Ausgänge)

0x300(=768dez) + Node-ID

A0.0

A0.1

A1.0

A1.1

A2.0

A2.1

A3.0

A3.1

A x.0...A x.1: Analogausgang x. Die detaillierte Beschreibung des Datenformats findet sich im Objektverzeichnis bei Objekt 0x6411.

Default Identifier

Eine tabellarische Übersicht über alle Default-Identifier findet sich im Anhang. Mit Hilfe dieser Übersicht lassen sich die von einem CAN-Monitor angezeigten CAN-Nachrichten schnell und einfach identifizieren.

Stop der Baugruppen

Falls erforderlich kann die Prozessdaten-Kommunikation der Baugruppen mit folgendem Telegramm gestoppt werden:

11-bit Identifier

2 Byte Nutzdaten

0x00

0x80

0xYZ

 

 

 

 

 

 

0xXX: Knotenadresse; 0xYZ=0x00 adressiert alle Baugruppen

Guarding

Die oben beschriebenen Telegramme reichen für viele Anwendungen bereits aus. Da die Baugruppen per Default im ereignisgesteuerten Modus arbeiten (kein zyklischer Datenaustausch), wird ein Ausfall einer Baugruppe jedoch nicht unbedingt erkannt. Abhilfe schafft hier die Überwachung der Baugruppen durch zyklisches Abfragen des Status, das sogenannte Node-Guarding.

Hierzu wird zyklisch ein Statustelegramm über Remote-Transmit-Request (RTR) angefordert:

11-bit Identifier

keine Nutzdaten im Anforderungstelegramm (RTR)

0x700(=1792dez) + Node-ID

(RTR-Bit im Header gesetzt)

Die Baugruppen antworten mit einem Telegramm, das ein Status-Byte enthält.

11-bit Identifier

1 Byte Nutzdaten

0x700(=1792dez) + Node-ID

0xYZ

 

 

 

 

 

 

 

0xYZ: Status-Byte:
Bits 6...0 enthalten den Knoten-Status (0x7F=127:Pre-Operational, 0x05=Operational; 0x04= Stopped bzw. Prepared).
Bit 7 = Toggle Bit (kippt nach jedem Senden).

Damit der Buskoppler einen Ausfall des Netzwerk-Masters erkennt (Watchdog-Funktion), müssen noch die Guard-Time (Objekt 0x100C) und der Life-Time-Factor (Objekt 0x100D) auf Werte ungleich 0 gesetzt werden. (Reaktionszeit bei Ausfall: Guard-Time x Life Time Factor).

Heartbeat

Alternativ zum Guarding kann die Baugruppe auch über den sogenannten Heartbeat überwacht werden. Hierbei setzt der Knoten zyklisch sein Statustelegramm (Heartbeat) ab. Datenanforderungstelegramme (Remote Frames) sind nicht erforderlich.

Um das Heartbeat-Telegramm zu aktivieren muss die Producer Heartbeat Time gesetzt werden. Dies erfolgt mit folgendem SDO-Telegramm:

11-bit Identifier

8 Byte Nutzdaten

0x600(=768dez) + Node-ID

0x22

0x17

0x10

0x00

0xcd

0xab

0x00

0x00

wobei 0xabcd die gewünschte Heartbeat-Zykluszeit in Millisekunden ist.

Mit den beschriebenen Telegrammen sind Sie nun in der Lage, die Baugruppen zu starten und zu stoppen, Eingänge zu lesen, Ausgänge zu schreiben und die Baugruppen zu überwachen. Versäumen Sie nicht, das Handbuch sorgfältig zu lesen. Nur so können Sie die vielfältigen Features der BECKHOFF CANopen Buskoppler wirklich nutzen.