Feldbusse
CANopen: Die Zusatzfunktionen für embedded Maschinensteuerungen
Die Hersteller- und Nutzerorganisation „CAN in Automation“ – kurz CiA – hat unlängst ihre Spezifikation CiA 302 in der Version 4.1 veröffentlicht. Diese Spezifikationsreihe definiert zusätzliche Funktionen, die sich einerseits für sicherheitskritische Anwendungen eignen und andererseits auch für verteilte embedded Maschinensteuerungen interessant sind.
CANopen, ein standardisiertes Kommunikationssystem für dezentrale und verteilte embedded Steuerungen, stellt einige grundlegende Dienste für die Kommunikation zur Verfügung. Hierzu zählt beispielsweise die Übertragung von Echtzeit-Nachrichten, welche Prozessdaten enthalten (PDO-Kommunikation). PDOs können von allen interessierten Teilnehmern empfangen werden. Der bestätigte Client/Server-Dienst SDO (Service-Daten-Objekt) findet Verwendung, um schreibend oder lesend auf die im Objektverzeichnis eines CANopen-Gerätes enthaltenen Parameter zuzugreifen. Die CANopen-Anwendungsschicht stellt zudem ein Netzwerkmanagement (NMT) zur Verfügung.
Das Gerät mit der NMT-Masterfunktion steuert die NMT-Zustandsmaschinen der anderen Teilnehmer. CANopen-Geräte mit NMT-Slavefunktion dürfen allerdings beim NMT-Master das Starten und Stoppen anderer Teilnehmer anfordern. Diese Funktion sowie selbst startende CANopen- Geräte sind in der Spezifikationsreihe CiA 302 beschrieben, welche unlängst komplett überarbeitet und in mehrere Teile gegliedert wurde. Außerdem kamen neue Funktionen hinzu, beispielsweise die CANopen-zu-CANopen-Router-Funktion.
Bis dato wurden einige der in CiA 302 beschriebenen Funktionen - etwa die Funktion „Flying-NMT-Master" oder auch die Busleitungsredundanz - nur singulär betrachtet. Die überarbeitete Version berücksichtigt nun darüber hinaus die Kombination dieser Funktionen in einem Gerät. Das Konzept des „fliegenden" NMT-Masters, welches im Teil 2 der Spezifikation detailliert beschrieben ist (Teil 1 enthält lediglich einige grundsätzliche Begriffsdefinitionen), ist in Systemen erforderlich, welche sicherheitskritisch sind oder hochverfügbar sein müssen - so etwa im Umfeld der Schiffsautomation und im Bereich Medizintechnik. Für den Fall, dass der NMT-Master ausfällt, einigen sich die anderen CANopen-Geräte mit „schlafender" NMT-Master-Funktion, wer die Aufgabe übernimmt. Erholt sich der ausgefallene NMT-Master, so fordert er von seinem Stellvertreter die NMT-Master-Funktion zurück.
Extra Parameter für Tiefseebohrer
Für diese Übergabe der NMT-Master-Funktion wurden vier Protokolle spezifiziert, die es ermöglichen, mehrere CANopen-NMT-Master in einem Netzwerk zu betreiben. Der Systementwickler muss den Geräten lediglich unterschiedliche NMT-Prioritäten zuteilen. Der NMT-Master mit der höchsten Priorität erhält beim Aushandeln das Aktivitätsrecht, die anderen schalten ihre NMT-Master-Funktion ab. Teil 3 der Spezifikation CiA 302 beschreibt das Herunterladen von Programmen und den Konfigurationsmanager.
Diese Funktionen kommen vor allem in dezentralen Steuerungssystemen zum Einsatz, in denen ein Gerät - der CANopen-Manager - die anderen Teilnehmer konfiguriert. Im Extremfall konfiguriert der CANopen-Manager bei jedem Systemstart sämtliche CANopen-Geräte, um so eine versehentliche Fehlkonfiguration aus einer vorherigen Sitzung zu vermeiden.
So ist dementsprechend ausgeschlossen, dass die Konfiguration eines ausgetauschten Gerätes nicht korrekt erfolgt. Außerdem lassen sich damit inkompatible Softwareversionen in den Geräten verhindern. Der Software-Download wird mit Hilfe der „normalen" (segmentierten) SDO-Dienste bewerkstelligt. Im CANopen- Objektverzeichnis sind bis zu 254 verschiedene Programme an definierten Adressen speicherbar. Auf korrespondierenden Adressen lassen sich weitere Informationen (Datum, Version) über diese Programme ablegen.
Diese Parameter sind insbesondere auf Wunsch der Hersteller von Überwachungssystemen für Tiefseebohrungen hinzugekommen, für die eine Inkonsistenz der heruntergeladenen Programme inakzeptabel ist - man kann schließlich nicht mit einem Diagnosegerät tauchen gehen.
Die „echte“ verteilte Steuerung
In Teil 4 ist die Verwendung von Netzwerkvariablen definiert. Programmierbare Geräte haben vor der Programmierung keine Prozessdaten, sondern nur Platzhalter (Netzwerkvariablen).
CANopen-Geräte mit einer „schlafenden“ NMT-Master-Funktion können bei Ausfall des aktiven NMT-Masters diesen ersetzen.
© CiANach der Programmierung lassen sich diese in PDOs übertragen oder es besteht die Möglichkeit eines Schreib-/Lese-Zugriffs auf die Netzwerkvariablen per SDO.
Netzwerkvariablen - sie sind das Prozess- Abbild des programmierbaren Gerätes - sind im Objektverzeichnis im Adressbereich A000h bis AFFFh untergebracht. Bisher wurden Netzwerkvariablen überwiegend in zentralen speicherprogrammierbaren Steuerungen (nach IEC 61311-3) implementiert, die über einen NMT-Master verfügen. Daneben können in einem CANopen-Netzwerk jedoch mehrere programmierbare Geräte installiert sein.
Mit den im Teil 4 enthaltenen Beschreibungen lassen sich jetzt programmierbare Steuerungen und Geräte mit einer NMT-Slave-Funktionalität bauen. Diese können sich sogar einfache vorprogrammierte Geräte wie zum Beispiel Sensoren und E/A-Module teilen. Resultat wäre eine „echte" verteilte Steuerung.
CANopen-Router werden zum Beispiel in komplexen Steuerungen für Untertage- und Baumaschinen verwendet.
© CiATeil 5 von CiA 302 spezifiziert den SDO-Manager, eine Zusatzfunktion für den NMT-Master. Diese Funktion ist nicht neu, aber immer noch nicht in allen CANopen- Steuerungen implementiert.
Der SDO-Manager ist erforderlich, wenn an das Netzwerk ein externes Konfigurations- oder Diagnosewerkzeug angeschlossen wird und mit einfachen Geräten kommunizieren soll, die nur über den Default-SDO-Server verfügen. In diesem Fall leiht sich das Werkzeug vom SDO-Manager den korrespondierenden SDO-Client aus, so dass keine Zugriffskonflikte entstehen können. Für die Systementwickler bietet dies den Vorteil, dass sie generische CANopen-Softwarewerkzeuge einsetzen können und nicht mehr auf herstellerspezifische Werkzeuge angewiesen sind.
Der Redundanz-Aspekt
Die Redundanz der Busleitungen ist vor allem in marinetechnischen und anderen sicherheitskritischen Anwendungen gefordert, in denen eine hohe oder sogar sehr hohe Verfügbarkeit des Bussystems notwendig ist. Teil 6 der CiA 302 spezifiziert dementsprechend das automatische Umschalten von der Default-Busleitung auf die redundante Busleitung.
Ein zusätzlicher PDO-Fehlerzähler wird verwendet, um zu entscheiden, wann auf die redundante Busleitung umgeschaltet wird. Erste Hersteller haben diese Busleitungsredundanz mit dem CANopen-Safety-Protokoll kombiniert, um auch in sicherheitsgerichteten Systemen eine höhere Verfügbarkeit zu erreichen, wie sie beispielsweise in Eisenbahnen gefordert ist.
Insbesondere in Eisenbahnen ist eine Kombination von sicherheitsrelevanter und hochverfügbarer Kommunikation gefordert.
© CiATeil 7 schließlich beschäftigt sich mit der Kopplung mehrerer CANopen-Netzwerke. Die ursprüngliche Anforderung diesbezüglich kam von Firmen, die mehrere CANopen-Netzwerke kaskadieren wollten. Hinsichtlich SDO- und Emergency- Diensten ist ein „Router" erforderlich, der die entsprechenden Nachrichten über die Netzwerkgrenzen weiterleitet.
Dazu sind umfangreiche Router-Tabellen nötig. Außerdem ist bei den SDOs vorweg ein Weiterleitungsbefehl zu senden, in dem das Zielnetzwerk (Network-ID) und das Zielgerät (Node-ID) mitgegeben werden. Ähnliches gilt für die Emergency-Nachricht, bei der allerdings diese Informationen in der Nachricht enthalten sein müssen. Im Prinzip lassen sich mit den beschriebenen Mechanismen bis zu 127 CANopen-Netzwerke auch nicht hierarchisch („vermascht") zusammenschließen.
Die Weiterleitung der PDOs erfolgt jeweils nur von Netzwerk zu Netzwerk (Brückenfunktion), da die PDOs über mehrere Netzwerke hinweg ihre Echtzeitfähigkeit verlieren würden. An einen Netzwerk-Router sind maximal 32 CANopen- Kanäle anschließbar. Selbstverständlich lassen sich die Router-Tabellen gegen versehentliches Verändern schützen (Lock-Mechanismus).
Autor: Holger Zeltwanger ist Geschäftsführer von CAN in Automation (CiA), Nürnberg.













