Einführung
CiA 402, alternativ auch als DS 402 / Device Standard 402 bezeichnet, ist ein Geräteprofil für Antriebe und Bewegungssteuerung, das von der CAN in Automation (CiA)-Organisation definiert wurde. Es spezifiziert ein universelles Interface und standardisiertes Verhalten zur Steuerung elektrischer Antriebe — wie Servoantriebe, Servoregler, Frequenzumrichter und ähnliche Geräte. Es ist als "CANopen Device Profile" Bestandteil des CANopen-Protokolls, findet jedoch auch in EtherCAT, POWERLINK- und anderen Applikationsprotokollen wie TCP/IP zum Einsatz. Das CiA 402 Geräteprofil ist in der Norm IEC61800-7-201 spezifiziert als Profil Typ 1 - CiA402 Drive Profile for power drive systems (PDS).
Dieser Abschnitt bietet einen Überblick über die zentralen Aspekte von CiA 402, mit Fokus auf die Antriebszustände / CiA 402 State Machine, das Haupt-Controlword (6040h) und Statusword (6041h), gängige Betriebsmodi (6060h) sowie eine Zusammenfassung weiterer wesentlicher Standardobjekte des Objektverzeichnisses / Object Dictionary.
Die CiA 402 State Machine
Im Zentrum des CiA 402 Profils steht die State Machine (PDS FSA, Power Drive System - Finite State Automat), welche die zulässigen Zustände und Übergänge eines Antriebs definiert. Die State Machine sorgt durch die Definition erlaubter Aktionen und erforderlicher Reaktionen in verschiedenen Betriebszuständen für eine sichere und vorhersehbare Steuerung von Bewegungsachsen.
Hauptzustände
•Not Ready to Switch On: Anfangszustand nach dem Einschalten. Der Antrieb ist nicht bereit, um Bewegungen auszuführen.
•Switch On Disabled: Antrieb darf nicht freigeschaltet werden (z.B. nach Fehler oder während Initialisierung).
•Ready to Switch On: Interne Prüfungen abgeschlossen; Antrieb kann freigeschaltet werden.
•Switched On: Antrieb ist bereit für Enable-Befehl.
•Operation Enabled: Der Antrieb kann Bewegungsbefehle ausführen.
•Quick Stop Active: Quick Stop ist aktiviert, der Antrieb stoppt so schnell wie möglich.
•Fault Reaction Active: Der Antrieb reagiert auf einen erkannten Fehler—er führt entsprechende Sicherheitsmaßnahmen durch.
•Fault: Ein Fehlerzustand wurde erkannt; der Antrieb muss zurückgesetzt werden.
Übergänge
Zustandsübergänge werden von Bits im Controlword (6040h) gesteuert, das vom Master an das Gerät gesendet wird. Der Antrieb meldet seinen aktuellen Zustand über das Statusword (6041h) zurück.

Eine detaillierte Beschreibung ist in der CiA 402 Spezifikation enthalten.
Controlword (6040h Objekt)
Das Controlword ist das zentrale Steuerobjekt (Index 6040h), mit dem der Master den Zustand und das Verhalten des Antriebs steuert. Es handelt sich um ein 16-Bit-Wort, wobei jedes Bit (bzw. Bitgruppen) bestimmte Aktionen oder Anforderungen am Antrieb auslösen, wie Zustandswechsel oder Bewegungsbefehle.
Bit-Bedeutungen
Bit |
Name |
Beschreibung |
0 |
Switch On |
Fordert das Einschalten des Antriebs an |
1 |
Enable Voltage |
Schaltet die interne Spannungsversorgung frei |
2 |
Quick Stop |
Fordert schnelles Stoppen der Bewegung an |
3 |
Enable Operation |
Vollständige Freischaltung der Achse |
7 |
Fault Reset |
Fehler quittieren/zurücksetzen |
8 |
Halt |
Bewegung anhalten ohne den Antrieb zu deaktivieren |
9 |
Operation Mode Specific |
Wird in bestimmten Betriebsmodi verwendet |
10 |
Reserved |
- |
11-15 |
Hersteller-spezifisch |
- |
Die Kombination und zeitliche Abfolge dieser Bits bestimmen exakt, wie die State Machine zwischen Zuständen wechselt. Zum Beispiel: Für den Wechsel von „Switch On Disabled“ zu „Operation Enabled“ müssen die Bits 0, 1 und 2 gesetzt werden, anschließend Bit 3.
Statusword (6041h Objekt)
Das Statusword (Index 6041h) ist ein 16-Bit-Wort, das vom Antrieb an den Master gesendet wird und den aktuellen Status signalisiert. Durch das Auslesen des Statuswords erkennt der Master den aktuellen Zustand des Antriebs in der CiA 402 State Machine.
Bit-Bedeutungen
Bit |
Name |
Beschreibung |
0 |
Ready to Switch On |
Antrieb ist bereit zum Freischalten |
1 |
Switched On |
Antrieb ist freigeschaltet |
2 |
Operation Enabled |
Antrieb ist für Bewegungen freigegeben |
3 |
Fault |
Fehler liegt vor |
4 |
Voltage Enabled |
Interne Spannung liegt an |
5 |
Quick Stop |
Quick Stop Funktion ist aktiv |
6 |
Switch On Disabled |
Antrieb ist deaktiviert |
7 |
Warning |
Warnung liegt vor (kein Fehler) |
8 |
Manufacturer Specific |
*1) |
9 |
remote |
|
10 |
target reached |
Position ist innerhalb der Ziel-Toleranz |
11 |
internal limit active |
Grenze laut 607D Objekten erreicht |
12,13 |
Operation Mode specific |
- |
14,15 |
Manufacturer Specific |
- |
Hinweis:
*1) MovingCap und Festo-Antriebe nutzen dieses Bit für den Zustand „Drive Moving”.
Betriebsarten / Modes of Operation (6060h Objekt)
6060h Modes of Operation bestimmt die Betriebsart, in welcher der Antrieb arbeitet. Jeder Modus unterstützt ein anderes Steuerparadigma (z.B. Positionsregelung, Geschwindigkeitsregelung, Drehmomentregelung).
Wert (Dezimal) |
Mode Name |
Anwendung |
-128 bis -1 |
Manufacturer-specific operation modes |
Hersteller-spezifisch |
0 |
No mode change/no mode assigned |
Kein Modus zugeordnet |
1 |
Profile Position Mode |
Fährt Position mit definierten Profil |
2 |
Velocity Mode |
(veraltet, meist nicht unterstützt, siehe Mode 3) |
3 |
Profile Velocity Mode |
Fährt Geschwindigkeit mit Profilbeschleunigung |
4 |
Profile Torque Mode |
Steuert Drehmoment gemäß Profil |
6 |
Homing Mode |
Referenzfahrt ("Home"-Position anfahren) |
7 |
Interpolated Position Mode |
Fährt nach interpolierten Positionspunkten |
8 |
Cyclic Synchronous Position |
Synchrone Positionsregelung (Echtzeit) |
9 |
Cyclic Synchronous Velocity |
Synchrone Drehzahlregelung (Echtzeit) |
10 |
Cyclic Synchronous Torque |
Synchrones Drehmoment (Echtzeit) |
Ein Servoantrieb unterstützt in der Regel nur einige der Betriebsmodi gemäß CiA 402. Häufig verfügbare Modi sind
•1 = Profile Position Mode,
•3 = Profile Velocity Mode,
•6 = Homing Mode,
•8 = Cyclic Synchronous Position Mode.
Der aktuelle Modus kann mit Modes of operation display (6061h) ausgelesen werden.
Profile Position Mode
6060h = 1 Profile Position Mode (PPM) ist einer der grundlegenden Positionsregelungsmodi im CiA 402. In diesem Modus bewegt der Antrieb seine Last zu einer Zielposition entlang eines Bewegungsprofils. Dabei können Parameter wie Geschwindigkeit, Beschleunigung und Verzögerung eingestellt werden, was sanfte und kontrollierte Bewegungen ermöglicht. Der Modus eignet sich für Punkt-zu-Punkt-Positionierung, Ablaufbewegungen oder Indizierungsaufgaben.
Ablauf
1.Modes of operation (6060h) auf 1 setzen (Profile Position Mode).
2.Target position (607Ah) und gewünschte Profilparameter setzen.
3.Profile velocity (6081h), profile acceleration (6083h) und profile deceleration (6084h) konfigurieren.
4.Mit dem Controlword (6040h) die Bewegung starten (z.B. durch Setzen des New Set-point Bits gemäß CiA 402).
5.Statusword und Position actual value (6064h) überwachen, um die Abwicklung zu bestätigen.
Wesentliche Standardobjekte für Profile Positioning
Index |
Name |
Beschreibung |
Typ |
6060h |
Modes of Operation |
Auf 1 setzen für Profile Position Mode |
integer8 |
607Ah |
Target Position |
Zielposition |
integer32 |
6081h |
Profile Velocity |
Maximal zulässige Geschwindigkeit |
unsigned32 |
6083h |
Profile Acceleration |
Beschleunigungsrate |
unsigned32 |
6084h |
Profile Deceleration |
Verzögerungsrate |
unsigned32 |
6064h |
Position Actual Value |
Ist-Position |
integer32 |
6040h |
Controlword |
Bewegt auslösen und Status verwalten |
unsigned16 |
6041h |
Statusword |
Rückmeldung zum Zustand |
unsigned16 |
Optionale / Zusätzliche Objekte für Positionierbetrieb
Index |
Name |
Beschreibung |
Typ |
60F2h |
Positioning Option Code |
Option für rotative (sich wiederholende) Positionskoordinaten und Positionierverhalten |
unsigned16 |
6073h |
Max Current |
Begrenzung des maximalen Strom/Drehmoment/Kraft |
unsigned16 |
607Dh.01h |
Min position limit |
Software Position Limit |
integer32 |
607Dh.01h |
Max position limit |
Software Position Limit |
integer32 |
Profile Velocity Mode
6060h = 3 Profile Velocity Mode (PVM) ermöglicht es, die Achsgeschwindigkeit direkt vorzugeben, wobei profilierte Beschleunigungs- und Verzögerungsrampen eingehalten werden können. Typische Anwendungen finden sich beispielsweise bei Förderbändern, Lüftern oder anderen Systemen, in denen eine konstante Geschwindigkeit gefordert ist.
Ablauf
1.Modes of operation (6060h) auf 3 setzen (Profile Velocity Mode).
2.Target velocity (60FFh) sowie gewünschte profile acceleration/deceleration (6083h/6084h) setzen.
3.Controlword (6040h) verwenden, um Start, Stop oder Geschwindigkeitsänderungen auszulösen.
4.Velocity actual value (606Ch) und Statusword zur Überwachung auslesen.
Wesentliche Standardobjekte für Profile Velocity
Index |
Name |
Beschreibung |
Typ |
6060h |
Modes of Operation |
Auf 3 setzen für Profile Velocity Mode |
integer8 |
60FFh |
Target Velocity |
Soll-Geschwindigkeit |
integer32 |
6083h |
Profile Acceleration |
Beschleunigungsrampe |
unsigned32 |
6084h |
Profile Deceleration |
Verzögerungsrampe |
unsigned32 |
606Ch |
Velocity Actual Value |
Ist-Geschwindigkeit |
integer32 |
6040h |
Controlword |
Steuerung Start/Stop/Halt |
unsigned16 |
6041h |
Statusword |
Feedback und Zustandsüberwachung |
unsigned16 |
Parameterübersicht Grundparameter CiA 402 / Object Dictionary
Allgemeine Übersicht über die Grundparameter, die für die Antriebssteuerung und -überwachung gemäß der oben beschriebenen Betriebsarten relevant sind.
Index |
Name |
Beschreibung |
Typ |
6040h |
Controlword |
Steuer- und Zustandswechsel (Master → Antrieb) |
unsigned16 |
6041h |
Statusword |
Statusrückmeldung (Antrieb → Master) |
unsigned16 |
6060h |
Modes of Operation |
Setzt Betriebsmodus des Antriebs |
integer8 |
6061h |
Modes of Operation Display |
Aktueller Betriebsmodus |
integer8 |
607Ah |
Target Position |
Zielposition für Profile Position Mode |
integer32 |
6064h |
Position Actual Value |
Positionsrückmeldung |
integer32 |
606Ch |
Velocity Actual Value |
Geschwindigkeit (Istwert) |
integer32 |
6081h |
Profile Velocity |
Max. Geschwindigkeit bei Profile Position Mode |
unsigned32 |
6083h |
Profile Acceleration |
Beschleunigungsrampe |
unsigned32 |
6084h |
Profile Deceleration |
Verzögerungsrampe |
unsigned32 |
60FFh |
Target Velocity |
Soll-Geschwindigkeit im Profile Velocity Mode |
integer32 |
6098h |
Homing Method |
Auswahl Homing-Methode |
integer8 |
607Dh.01h |
Min position limit |
Software-Endschalter Minimum |
integer32 |
607Dh.02h |
Max position limit |
Software-Endschalter Maximum |
integer32 |
6073h |
Max Current |
Max. Strom/Drehmoment/Kraft |
unsigned16 |
6075h |
Motor Rated Current |
Nennstrom für Antrieb/Motor in physikalischen Einheiten, z. B. mA |
unsigned32 |
6078h |
Current Actual Value |
Aktueller Motorstrom in Einheit von 0,1 % (1000 = 100 %). Negative Werte für negative Richtungen möglich. |
integer16 |
Positionsskalierung / User-Defined Units
Positionsskalierung in CiA 402 kombiniert konfigurierbare Skalierungsparameter mit festen Motor-/Encoder-Eigenschaften, um interne Positionseinheiten (Inkremente) in anwenderspezifische/technische Einheiten umzuwandeln.
Motor-/Encoder-Systemeigenschaften (608Fh)
•608Fh: Position Encoder Resolution
o608Fh.01 encoder_increments: Inkremente je Motordrehung
o608Fh.02 motor_revolutions: Motordrehungen pro Encoderumdrehung
Beispiel: Bei einem 16-bit Inkremental-Encoder:
608Fh.01 = 65.536,
608Fh.02 = 1 (fast immer 1, außer bei zusätzlichem Getriebe zwischen Motor und Encoder)
HINWEIS:
Diese Werte spiegeln Hardware-Eigenschaften wider und sollten nur bei Hardwarewechsel verändert werden.
Konfigurierbare Skalierung (6091h und 6092h)
•6091h: Gear Ratio
o6091h.01h motor_revolutions: Anzahl Motordrehungen
o6091h.02h shaft_revolutions Anzahl Abtriebsumdrehungen
Beispiel: 5 Motordrehungen pro 2 Abtriebsumdrehungen →
6091h.01h = 5,
6091h.02h = 2
•6092h: Feed Constant
o6092h.01h feed: Technische Einheit pro Abtriebsumdrehung (z.B. mm, μm)
o6092h.02h shaft_revolutions: Anzahl Abtriebsumdrehungen
Beispiel: Zahnriemenachse mit 100 mm pro Umdrehung, Skala μm:
6092h.01h feed = 100.000,
6092h.02h = 1
Formeln zur Positionsskalierung
Parameter |
Definition |
Berechnung über CiA 402-Objekte |
Encoder resolution |
Encoder_resolution = encoder_increments / motor_rev |
608Fh.01h / 608Fh.02h |
Gear ratio |
Gear_ratio = motor_revolutions / shaft_revolutions |
6091h.01h / 6091h.02h |
Feed constant |
Feed_constant = feed / shaft_revolutions |
6092h.01h / 6092h.02h |
Interne Positionseinheit |
Pos_internal = Pos_user × Encoder_resolution × Gear_ratio / Feed_constant |
Pos_user × (608Fh.01h / 608Fh.02h) × (6091h.01h / 6091h.02h) / (6092h.01h / 6092h.02h) |
oder: Pos_user × (608Fh.01h × 6091h.01h × 6092h.02h) / (608Fh.02h × 6091h.02h × 6092h.01h) |
||
Position als Anwendergröße |
Pos_user = Pos_internal × Feed_constant / (Encoder_resolution × Gear_ratio) |
Pos_internal × (6092h.01h / 6092h.02h) / [ (608Fh.01h / 608Fh.02h) × (6091h.01h / 6091h.02h) ] |
oder: Pos_internal × (608Fh.02h × 6091h.02h × 6092h.01h) / (608Fh.01h × 6091h.01h × 6092h.02h) |
Beispiel
Gegeben:
•Motor-Encoder = 65.536 Inkremente je Motordrehung (608Fh.01h = 65536, 608Fh.02h = 1)
•Gear ratio: 1 Abtriebsumdrehung pro 5 Motordrehungen (6091h.01h = 5, 6091h.02h = 1)
•Feed constant: 100 mm pro Abtriebsumdrehung (6092h.01h = 100, 6092h.02h = 1)
Berechnet:
•Anwendereinheit / user-defined unit pro internen Encoder-Inkrement
= (Feed constant) / (Gear ratio × Encoder resolution)
= (100 mm/U) / (5 × 65.536 Inkremente/U)
= 0,00030517578125 [mm / Inkrement]
Beispiel:
Positionierung auf 80.000 interne Inkremente
--> Pos_user = 80.000 × 0,00030517578125 ≈ 24,41 mm