Home 9 Service 9 Grundlagen 9 CANopen

CANopen – Grundlagen und Einführung in das CANopen-Protokoll

CANopen ist ein offenes Kommunikationsprotokoll auf Basis des CAN-Bus und wird in vielen Bereichen der Automatisierung eingesetzt. Auf dieser Seite erhalten Sie eine verständliche Einführung in CANopen – von den wichtigsten Grundlagen und Kernkonzepten bis hin zu typischen Anwendungen in der Praxis. Der Artikel richtet sich an Entwickler und Studierende, die CANopen gezielt verstehen und in Projekten einsetzen möchten.

Was ist CANopen?

Kurzdefinition von CANopen

CANopen ist ein offenes Kommunikationsprotokoll auf Basis des CAN-Bus und standardisiert, wie Steuerungen, Sensoren und Aktoren in verteilten Systemen miteinander Daten austauschen. Im Gegensatz zum reinen CAN-Bus beschreibt das CANopen Protokoll nicht nur das Telegrammformat auf der Leitung, sondern auch Geräteprofile, Konfigurationsmechanismen und Diagnosefunktionen. Dadurch werden Geräte unterschiedlicher Hersteller in vielen Anwendungen untereinander kompatibel und einfacher integrierbar.

Typische Einsatzszenarien

CANopen wird überall dort eingesetzt, wo robuste, echtzeitfähige Kommunikation zwischen mehreren Steuergeräten erforderlich ist. Typische Einsatzbereiche sind:

  • Maschinen- und Anlagenbau (z. B. Verpackungsmaschinen, Handhabungssysteme)
  • Mobile Arbeitsmaschinen und Nutzfahrzeuge
  • Robotik und Antriebstechnik
  • Medizintechnik, Labortechnik und Diagnosesysteme
  • Bahn-, Gebäude- und Energietechnik

Die Kombination aus einfacher Verkabelung, hoher Störsicherheit und standardisierten Geräteprofilen macht CANopen besonders attraktiv für eingebettete Systeme. Entwickler profitieren davon, dass viele grundlegende Funktionen – etwa der Austausch von Prozessdaten, das Konfigurieren von Parametern oder das Erkennen von Fehlern – bereits durch das Protokoll definiert sind.

CAN und CANopen im Vergleich

Der CAN-Bus in Kürze

Der CAN-Bus (Controller Area Network) ist ein serielles Feldbussystem, das ursprünglich für den Einsatz im Fahrzeug entwickelt wurde. Er definiert unter anderem:

  • das elektrische Signal (physikalische Schicht),
  • die Bitübertragung,
  • das Rahmenformat (CAN-Frames),
  • die Arbitrierung auf dem Bus und die Fehlerbehandlung.

CAN selbst beschreibt also, wie Bits auf den Bus gelangen und wie mehrere Teilnehmer kollisionsfrei und fehlertolerant kommunizieren. Was die einzelnen Telegramme inhaltlich bedeuten, bleibt dabei offen. Jedes Projekt, jede Applikation müsste ohne zusätzliche Protokollebene selbst festlegen, welche Identifier welche Daten transportieren und wie Parameter zu interpretieren sind.

Wie setzt CANopen auf CAN auf?

Das CANopen Protokoll baut genau auf dieser Basis auf. CANopen verwendet die CAN-Frames als Transportmedium und legt fest:

  • welche Telegrammtypen es gibt (z. B. für Prozessdaten, Konfiguration, Fehler),
  • wie Geräte adressiert werden,
  • wie Parameter strukturiert und konfiguriert werden,
  • wie Zustände und Fehler eines Teilnehmers gemeldet werden.

Damit hebt CANopen die Abstraktionsebene: Statt jedes Gerät und jedes Telegramm individuell zu definieren, stehen standardisierte Profile und Kommunikationsmechanismen zur Verfügung. Entwickler müssen sich nicht mehr um jedes Detail des CAN-Frames kümmern, sondern arbeiten auf der Ebene von Objekten, Parametern und Diensten des CANopen Stacks.

CANopen im OSI-Schichtenmodell

Zur Einordnung hilft das OSI-Schichtenmodell:

  • Der CAN-Bus deckt hauptsächlich die Schicht 1 (Physical Layer, ISO 11898-2) und Schicht 2 (Data Link Layer, ISO 11898-1) ab.
  • CANopen ergänzt darüber die höheren Schichten, insbesondere Schicht 7 (Application Layer, EN 50325-4) und Teile der darüber liegenden Kommunikationslogik.

Vereinfacht gesagt übernimmt CANopen die Rolle der „Sprache“, mit der sich Geräte auf dem CAN-Bus verständigen. Damit wird festgelegt, welche Daten mit welcher Bedeutung übertragen werden, wie sie strukturiert sind und welche Dienste ein CANopen-Knoten unterstützen muss. Für Entwickler ist diese Einordnung wichtig: Hardwarenahe Funktionen (Transceiver, CAN-Controller) bleiben auf der CAN-Ebene, während Applikationslogik und Protokollverhalten im CANopen Stack umgesetzt sind.

Architektur und Kernkonzepte von CANopen

Das CANopen-Netzwerkmodell

Ein CANopen-Netzwerk besteht aus mehreren Teilnehmern (Nodes), die über den CAN-Bus verbunden sind. Jeder Teilnehmer besitzt eine eindeutige Node-ID. Häufig übernimmt ein Gerät im Netzwerk die Rolle eines CANopen-Managers (ursprünglich als Master bezeichnet), – etwa eine zentrale Steuerung, SPS oder ein übergeordnetes Steuergerät.

Typische Aufgaben eines CANopen-Managers sind:

  • Initialisieren des Netzwerks und Setzen der Teilnehmer in den gewünschten Betriebszustand,
  • Konfiguration von Parametern über SDO-Kommunikation,
  • Starten und Stoppen der zyklischen Datenübertragung,
  • Überwachung von Teilnehmern über Heartbeat-Mechanismen.

Die übrigen Teilnehmer verhalten sich als Devices (ursprünglich als Slave bezeichnet). Sie stellen ihre Prozessdaten bereit (z. B. Messwerte, Stellsignale) und lassen sich über standardisierte Objekte konfigurieren. CANopen definiert dabei klar, welches Protokollverhalten ein konformes Gerät zeigen muss – unabhängig vom Hersteller.

Objektverzeichnis (Object Dictionary)

Herzstück jedes CANopen-Knotens ist das Objektverzeichnis (Object Dictionary). Es bildet alle für die Kommunikation und Konfiguration relevanten Informationen eines Geräts ab. Das Objektverzeichnis beschreibt den kompletten Funktionsumfang (Parameter) eines CANopen-Gerätes und ist in Tabellenform organisiert. Im Objektverzeichnis sind nicht nur die standardisierten Datentypen und Objekte des CANopen-Kommunikationsprofils sowie der Geräteprofile enthalten, sondern gegebenenfalls auch hersteller-spezifische Objekte und Datentypen. Die Adressierung der Einträge erfolgt mit Hilfe eines 16-Bit-Indizes (Reihenadresse der Tabelle, maximal 65536 Einträge) und eines 8-Bit-Subindizes (Spaltenadresse der Tabelle, maximal 256 Einträge). Somit lassen sich zusammengehörige Objekte leicht gruppieren. Die Struktur dieses CANopen Objektverzeichnisses ist im folgenden Bild dargestellt.
0000h
0001h - 009Fh
00A0h - 0FFFh
1000h - 1FFFh
2000h - 5FFFh
6000h - 9FFFh
A000h - AFFFh
B000h - FFFFh
Objekt
reserviert
Datentypen
reserviert
Kommunikationsprofil (CiA 301, CiA 1301, CiA 302)
Herstellerspezifische Parameter
Parameter definiert durch Geräte- und Applikationsprofile (CiA 4xx)
Netzwerkvariablen (CiA 302-4)
reserviert
Struktur Objektverzeichnis
Für Entwickler bedeutet das: Ein CANopen-Gerät lässt sich über ein einheitliches Schema abfragen und konfigurieren, ohne die interne Implementierung kennen zu müssen.

Kommunikationsdienste: SDO, PDO, NMT, SYNC, EMCY, Heartbeat

Das CANopen Protokoll stellt verschiedene Kommunikationsdienste zur Verfügung, die unterschiedliche Aufgaben erfüllen:

  • SDO (Service Data Object):
    SDOs werden für die Konfiguration und den gezielten Datenaustausch mit dem Objektverzeichnis verwendet. Über SDO kann ein Master z. B. Parameterwerte schreiben oder Statusinformationen lesen. SDO-Kommunikation ist flexibel, aber im Vergleich langsamer und nicht für harte Echtzeit ausgelegt.
  • PDO (Process Data Object):
    PDOs dienen dem schnellen, zyklischen Austausch von Prozessdaten. Typischerweise werden Messwerte, Statusbits oder Stellgrößen darin übertragen. Ein PDO kann mehrere Signale bündeln und wird ohne zusätzlichen Protokoll-Overhead gesendet – ideal für echtzeitkritische Anwendungen.
  • NMT (Network Management):
    NMT-Kommandos steuern den Zustand eines Teilnehmers (z. B. Start, Stop, Pre-Operational, Reset). Der NMT-Master kann damit das gesamte Netzwerk kontrolliert in Betrieb nehmen oder anhalten.
  • SYNC:
    Das SYNC-Objekt ist ein spezielles Telegramm, das als Synchronisationsimpuls für das Netzwerk dient. Knoten können ihre PDO-Übertragung an den Empfang von SYNC-Nachrichten koppeln und so zeitlich deterministisches Verhalten erreichen.
  • EMCY (Emergency):
    EMCY-Nachrichten signalisieren Fehlerzustände eines Knotens. Sie werden mit hoher Priorität gesendet, sobald ein definierter Fehler auftritt, und ermöglichen eine schnelle Reaktion der übergeordneten Steuerung.
  • Heartbeat:
    Über Heartbeat-Mechanismen teilen Knoten zyklisch mit, dass sie noch aktiv sind und sich im erwarteten Zustand befinden. Der Manager erkennt dadurch ausgefallene oder blockierte Knoten frühzeitig.

Gemeinsam bilden diese Kommunikationsdienste den „Werkzeugkasten“, mit dem CANopen-Knoten konfiguriert, überwacht und im Echtzeitbetrieb betrieben werden.

Zustandsautomat / Gerätezustände

Jeder CANopen-Knoten folgt einem definierten Zustandsautomaten. Typische Zustände sind:

  • Initialization: Startphase nach dem Einschalten, Hardware-Initialisierung.
  • Pre-Operational: Konfigurationsphase, SDO-Kommunikation ist möglich, PDOs sind typischerweise noch deaktiviert.
  • Operational: Normalbetrieb, PDOs werden gesendet und verarbeitet, Echtzeitkommunikation ist aktiv.
  • Stopped: Knoten ist angehalten, reagiert nur eingeschränkt auf bestimmte Telegramme.

 

Übergänge zwischen diesen Zuständen werden durch NMT-Kommandos gesteuert. Für Entwickler ist der Zustandsautomat wichtig, um z. B. zu definieren, ab wann Prozessdaten gültig sind, wann Konfigurationen erlaubt sind oder wie eine Steuerung beim Einschalten eine Anlage schrittweise in Betrieb nimmt.

CANopen NMT state machine

Historie und Standardisierung

Entstehung der CAN in Automation

CANopen entstand Anfang der 1990er-Jahre aus dem Bedarf heraus, den CAN-Bus nicht nur als reine Fahrzeugtechnik, sondern auch in der industriellen Automatisierung nutzen zu können. Viele Hersteller setzten zwar bereits auf CAN, definierten jedoch jeweils eigene Protokolle und Datenformate – ein Austausch von Geräten unterschiedlicher Anbieter war kaum möglich.

Um diese Situation zu verbessern, wurde die Nutzer- und Herstellerorganisation CAN in Automation (CiA) gegründet. Ziel der CiA war es, ein offenes, herstellerübergreifendes Protokoll auf Basis von CAN zu spezifizieren. Aus diesem Umfeld heraus entwickelte sich CANopen als standardisiertes Applikationsprotokoll mit klar definierten Geräteprofilen.

Schon früh entstanden erste Spezifikationen und Implementierungen in verschiedensten Branchen, insbesondere im Maschinenbau und in mobilen Arbeitsmaschinen. Mit zunehmender Verbreitung wuchs der Bedarf nach stabilen, normierten Dokumenten – die Grundlage für die spätere Standardisierung.

Wichtige CANopen Standards

Im Laufe der Zeit wurden zahlreiche Dokumente rund um CANopen geschaffen. Die wichtigsten Grundlagen sind:

  • CiA 301 – CANopen Application Layer and Communication Profile
    Dieses Dokument beschreibt den grundlegenden Aufbau des CANopen-Protokolls: Kommunikationsobjekte, Objektverzeichnis, Zustandsautomat, Adressierung und das Verhalten eines CANopen-konformen Geräts. CiA 301 ist sozusagen das „Herzstück“ des klassischen CANopen.
  • CiA 1301 – CANopen FD
    Mit der Einführung von CAN FD (Flexible Data-Rate) wurde auch CANopen erweitert: CANopen FD nutzt die erweiterten Möglichkeiten von CAN FD, etwa höhere Datenraten und größere Nutzdaten. CiA 1301 definiert, wie das CANopen-Konzept auf CAN FD abgebildet wird und welche neuen Optionen sich dadurch ergeben.

Daneben existiert eine Vielzahl weiterer CiA-Dokumente, etwa für Geräte- und Anwendungsprofile (z. B. CiA 401, CiA 402). Für Entwickler heißt das: Je nach Anwendung sind neben den Basisdokumenten auch spezifische Profilstandards relevant.

Entwicklung und heutige Bedeutung

CANopen hat sich über viele Jahre von einem Protokoll für eher spezialisierte Anwendungen zu einem etablierten Standard in der industriellen Kommunikation entwickelt. Gründe dafür sind:

  • die robuste CAN-Bus-​Technologie im Hintergrund,
  • ein klar spezifiziertes Kommunikationsverhalten,
  • die große Auswahl an verfügbaren Geräten und Stacks.

Auch wenn heute viele weitere Kommunikationssysteme existieren (z. B. Industrial Ethernet-Varianten), bleibt CANopen in zahlreichen Anwendungen eine attraktive Lösung – insbesondere dort, wo:

  • robuste, echtzeitfähige Kommunikation auf vergleichsweise einfacher Hardware benötigt wird,
  • kostensensitive, eingebettete Systeme eingesetzt werden,
  • lange Produktlebenszyklen und hohe Ausfallsicherheit gefragt sind.

Mit CANopen FD wird der Standard zudem an moderne Anforderungen angepasst, ohne das Grundprinzip von CANopen zu verlassen. Für Entwickler bedeutet das: Investitionen in CANopen-Know-how sind langfristig nutzbar, unabhängig davon, ob klassischer CAN oder CAN FD verwendet wird.

Downloads

Application Note 1201 (deutsch) – Einführung in CANopen
Beschreibt die grundlegenden Kommunikationsmechanismen und die Verwendung der Identifier
PDF [376 KB]

Application Note 1202 (englisch) – Identifier Usage in CANopen Networks
Verwendung der CAN-Identifier in CANopen Netzwerken 
PDF [118 KB]

Application Note 1203 (englisch) – Automatic start of CANopen slave devices
Beschreibt die Einstellung von zyklischen PDO und die Autostart Funktion 
PDF [291 KB]

Application Note 1204 (englisch) – Configuration of CANopen devices via LSS
Einstellung der Bitrate und Node-ID über Layer-Setting-Services 
PDF [208 KB]

Sie möchten ein Beratungsgespräch?

+49 2241 - 25 65 9 - 0

Schreiben Sie eine Nachricht oder rufen Sie uns an.