Technik · CAN-Schnittstelle

PersyCAN – das CAN-Protokoll der Persystems-Inverter

Sollwerte, Parameter, Telemetrie und Firmware-Update über einen Bus. PersyCAN nutzt 29-Bit-Identifier mit Geräteadresse, damit mehrere Inverter am selben CAN hängen – und sendet Betriebsdaten zyklisch, ohne Polling. Diese Seite fasst die Protokoll-Dokumentation des Inverters PY-60V-120A zusammen.

Auf einen Blick

Identifier29 Bit (CAN 2.0B, Extended Frame), Geräteadresse im Identifier
Standardadresse0x0A – Befehle an 0x0A000000, Telemetrie ab 0x1A000003
Broadcast0x01000000 – Arm, Disarm und Fehlerlog für alle Geräte am Bus
Telemetriezyklisch: Betriebsdaten alle 100 ms, Signalzustand alle 10 ms
Galvanische TrennungCAN-Transceiver und PPM-Eingang isoliert von der Leistungsstufe
AnschlussD-Sub 15 HD (Gehäusevariante); Adapter auf D-Sub 9 mit CAN-Standardbelegung

Adressierung

Ein Bus, mehrere Inverter.

PersyCAN arbeitet mit erweiterten 29-Bit-Identifiern. Die zweite Hexadezimalstelle des Identifiers ist die Geräteadresse n: Befehle an einen Inverter tragen den Identifier 0x0n000000, seine Telemetrie kommt unter 0x1n0000xx. Ab Werk ist die Adresse 0x0A eingestellt. So teilen sich beliebig viele Antriebe einen Bus, ohne dass der Host Botschaften auseinanderhalten muss – jede Adresse ist im Identifier lesbar.

Befehle an den Inverter

IdentifierDaten (8 Byte)Bedeutung
0x0n00000010 01 D0 07 00 00 00 0016-Bit-Schreibbefehl auf den Drehzahlsollwert: 10 01 adressiert den Sollwert, D0 07 ist 2000 min⁻¹ (0x07D0, Little Endian). Die maximale Drehzahl ist intern begrenzt.
0x0n00000013 0D 01 00 00 00 00 00Setup-Parameter schreiben: 13 0D adressiert AutoArmOnInput, 01 00 aktiviert das automatische Scharfschalten bei gültigem Signal (Einstellung geht beim Neustart verloren).
0x0n00000AFirmware-Update: Antwort auf die Update-Anfrage des Inverters.
0x0100000000 00 00 00 00 00 00 00Broadcast an alle Geräte: PPM-Sollwert deaktivieren (disarm).
0x0100000001 00 00 00 00 00 00 00Broadcast: PPM-Sollwert scharfschalten (arm).
0x0100000002 00 00 00 00 00 00 00Broadcast: Fehlerlog aller Geräte auslösen.

Der Sollwert kann als Drehzahl oder als Drehmoment vorgegeben werden; welcher Regelmodus aktiv ist, wird als Parameter eingestellt. Neben CAN nimmt der Inverter ein klassisches PWM/PPM-Signal an – das Signal wird auf Bereich, Timing, Timeout und Rauschen geprüft, und ein expliziter Arming-Zustand verhindert unbeabsichtigtes Anlaufen.

Telemetrie

Betriebsdaten ohne Polling.

Jede Telemetrie-Botschaft trägt vier 16-Bit-Werte (Little Endian). Die Skalierung gibt an, durch welchen Faktor der Rohwert zu teilen ist.

IdentifierZyklusInhaltSkalierung
0x1n000003100 msPhasenstrom (Effektivwert) · DC-Strom (gefiltert) · DC-Spannung · MOSFET-Temperatur÷10 A · ÷10 A · ÷10 V · ÷100 °C
0x1n000006100 msId ist · Iq ist · Id soll · Iq soll÷100 A
0x1n000007100 msUd · Uq · Fehlerintegral Ud · Fehlerintegral Uq÷100 V · ÷100 V · ÷1000 · ÷1000
0x1n000008100 msMotionCtrlState · ErrorState · maximale Zykluszeit (interne Qualitätskennzahl) · Firmware-Version (dev·patch·minor·major, je 4 Bit)uint16
0x1n00000C100 msDrehzahl ist · Drehzahl soll · Drehzahl maximal · Drehmoment istint16 min⁻¹ · ÷1000 Nm
0x1n000013100 msMotortemperatur (NTC)÷100 °C
0x1n00000510 msarmed · inverted · PPM-Zustand · valid · PPM-Rohwert · PPM-Wertbool · bool · uint8 · bool · uint16 · uint16
0x1n00000410 msZähler Rohsignal · Zähler gültige Signale · Pulsdauer · Pausendauer1 · 1 · 100 ns · 100 ns
0x1n00000B2 msUpdate-Prozess-Anfrage (nur während des Firmware-Updates)
0x1n00000Fbei Fehler oder auf AnfrageFehlerlog: Zustand beim letzten Überstrom oder auf Broadcast-Anfrage

Damit sieht das Host-System jederzeit, was der Antrieb tut: die Ströme in der d- und q-Achse zeigen, ob der Regler im Feldschwächbereich arbeitet, die MOSFET- und Motortemperatur zeigen den thermischen Spielraum, und die Zykluszeit-Kennzahl verrät, ob die Regelung unter Last sauber läuft.

Zustände und Fehlercodes

Was der Inverter meldet.

MotionCtrlState

WertZustand
0x0000STO – Safe Torque Off, Motor im Freilauf
0x00F2waitingForSetpoint – wartet auf Sollwert (STO oder ASC, je nach Parameter)
0x00F3ControlActive – Regelung aktiv
0xFF00HardFault

PPM-Zustand

WertZustand
0disarmed
1invalid
2armed
3armed, Signal ungültig
4armed, Signal gültig
5enabled always

ErrorState

CodeFehler
0OK
30Überstromschutz ausgelöst
41PPM-Signal ungültig
42PPM-Timeout
43PPM-Inversionsfehler
44Übertemperatur
45PPM-Signal verrauscht

Im sicheren Zustand ist der Treiber abgeschaltet. Ob der Motor dabei frei läuft (Safe Torque Off) oder kurzgeschlossen wird (Active Short Circuit), ist per Parameter wählbar. Überstrom-, Kurzschluss-, Übertemperatur- und Unterspannungsschutz greifen in Hardware und Software; bei zu hoher MOSFET- oder Motortemperatur wird der Strom automatisch reduziert.

Konfiguration, Logging, Firmware

Alles über denselben Bus.

Das Persystems-Konfigurationstool verbindet sich über CAN mit dem Inverter. Damit stellen Sie Motorparameter, Stromgrenzen, Regelmodus und die Zuordnung des Sollwertsignals ein und nehmen einen neuen Motor in Betrieb. Während des Betriebs zeichnet das Tool Phasen- und DC-Ströme, Spannungen und Reglerzustände in Echtzeit auf – für Reglerabstimmung und Diagnose.

Auch das Firmware-Update läuft über den Bus, und das Fehlerlog mit dem Zustand beim letzten Abschalten lässt sich jederzeit auslesen. Für Anwendungen, die eigene Logik nah am Antrieb brauchen, gibt es eine Dual-Core-Variante: ein Kern rechnet die Motorregelung, der zweite führt Kundencode aus – verbunden über eine Inter-Prozessor-Schnittstelle mit Referenzbeispielen.

Anschluss

GehäusevarianteD-Sub 15 HD mit Persystems-Belegung; Adapter INV-CAN-ADAPT auf D-Sub 9 mit CAN-Standardbelegung
Embedded-VarianteCAN/PPM und Motor-NTC über Molex-PicoBlade-Steckverbinder
SignaleCAN_H, CAN_L, CAN_GND und PPM-Eingang – galvanisch getrennt von der Leistungsstufe
VerdrahtungSignalmassen auf das Host-System beziehen, nicht auf die Batterie; DC-Leitungen kurz und verdrillt

Häufige Fragen

PersyCAN in der Praxis.

Können mehrere Inverter am selben CAN-Bus betrieben werden?

Ja. Die Geräteadresse steht im 29-Bit-Identifier: Befehle gehen an 0x0n000000, Telemetrie kommt von 0x1n0000xx – n ist die Adresse des Inverters. Der Broadcast-Identifier 0x01000000 erreicht alle Geräte gleichzeitig, etwa zum Scharfschalten oder zum Auslösen des Fehlerlogs.

Muss ich die Telemetrie abfragen?

Nein. Der Inverter sendet seine Betriebsdaten zyklisch: alle 100 ms Ströme, Spannungen, Temperaturen, Drehzahl, Drehmoment, Regler- und Fehlerzustand; alle 10 ms den Zustand des Sollwertsignals. Das Host-System hört nur mit.

Unterstützt der Inverter auch DroneCAN?

Ja. Für Flugsteuerungen spricht der PY-60V-120A zusätzlich DroneCAN mit esc.Status und NodeStatus nach Standard – siehe DroneCAN-ESC.

Wie sind die Werte kodiert?

Jede Telemetrie-Botschaft trägt vier 16-Bit-Werte im Little-Endian-Format; die Skalierung steht in der Tabelle oben (zum Beispiel Phasenstrom in 0,1 A, Id/Iq in 0,01 A, Drehmoment in 0,001 Nm). Der Drehzahlsollwert 2000 min⁻¹ wird als D0 07 übertragen (0x07D0).

Wo bekomme ich die vollständige Protokollbeschreibung?

Die vollständige Dokumentation mit allen Parametern, Botschaften und dem Ablauf des Firmware-Updates schicken wir Ihnen auf Anfrage als PDF – zusammen mit dem Konfigurationstool für Windows.

Kontakt

Protokoll-Dokumentation und Konfigurationstool anfragen.

Schreiben Sie uns, welche Anwendung Sie anbinden wollen – Sie bekommen die vollständige PersyCAN-Beschreibung und eine Antwort direkt aus der Entwicklung.

Persystems

Echtzeit-Simulation und Leistungselektronik für elektrische Antriebe – entwickelt und gefertigt in Regensburg.

Persystems GmbH
Franz-Mayer-Straße 1 · 93053 Regensburg
info@persystems.org · +49 941 462 974 40

© 2026 Persystems GmbHPLECS, LTspice, Simulink, CarMaker und DroneCAN sind Marken ihrer jeweiligen Inhaber.