ich möchte ein Projekt mit einem Revpi starten. Es geht u.a. auch um die Steuerung eines EC-Motors mit einer Kommunikationsschnittstelle CANopen DS301. Ich habe aus dem Katalog folgendes gemerkt:
• das RevPi Connect 5 hat schon eine integrierte CAN FD Schnittstelle
• das RevPi Core SE plus Erweiterungsmodul PR100286 mit CAN Schnittstelle
Wären das beide gängige Wege, um das System aufzubauen?
Produktauswahl für Antrieb CAN
Re: Produktauswahl für Antrieb CAN
Hallo,
Option 2 funktioniert leider nicht - RevPi Core SE und PR100286 sind nicht kompatibel!
Das PR100286 Modul braucht einen ConBridge-Anschluss, den hat der Core SE aber nicht. Das Modul passt nur an RevPi Connect S/SE.
Deine Option 1 (RevPi Connect 5) funktioniert einwandfrei und ist die Empfehlung. Hat bis zu 2 CAN FD Schnittstellen integriert, galvanisch getrennt, bis 5 Mbps. Für CANopen mehr als ausreichend.
Alternative: RevPi Connect SE + RevPi Con CAN (PR100286) (nicht Core SE!) würde auch funktionieren, aber mit dem zusätzlichen Modul kommst du preislich nicht viel günstiger weg als beim Connect 5. Dafür bekommst du nur 1 CAN Port mit 1 Mbps statt integrierter CAN FD Lösung.
Für CANopen DS301 ist beides software-technisch identisch. Du kannst CODESYS nutzen oder auch Open-Source Libraries wie python-canopen über SocketCAN. Beide Optionen unterstützen das gleiche Linux CAN-Interface.
Gruße, Amar
Option 2 funktioniert leider nicht - RevPi Core SE und PR100286 sind nicht kompatibel!
Das PR100286 Modul braucht einen ConBridge-Anschluss, den hat der Core SE aber nicht. Das Modul passt nur an RevPi Connect S/SE.
Deine Option 1 (RevPi Connect 5) funktioniert einwandfrei und ist die Empfehlung. Hat bis zu 2 CAN FD Schnittstellen integriert, galvanisch getrennt, bis 5 Mbps. Für CANopen mehr als ausreichend.
Alternative: RevPi Connect SE + RevPi Con CAN (PR100286) (nicht Core SE!) würde auch funktionieren, aber mit dem zusätzlichen Modul kommst du preislich nicht viel günstiger weg als beim Connect 5. Dafür bekommst du nur 1 CAN Port mit 1 Mbps statt integrierter CAN FD Lösung.
Für CANopen DS301 ist beides software-technisch identisch. Du kannst CODESYS nutzen oder auch Open-Source Libraries wie python-canopen über SocketCAN. Beide Optionen unterstützen das gleiche Linux CAN-Interface.
Gruße, Amar
KUNBUS
Re: Produktauswahl für Antrieb CAN
Danke Amar!
ich habe versucht python-canopen zu installieren. Habe einen Fehler bekommen error: externally-managed-environment
Anscheinend ginge " --break-system-packages" aber dann habe stattdessen ein virtuelles Environment verwendet, und zwar:
Ist das geeignet für das Projekt? Eigentlich beim boot vom Revpi sollte auch die CAN-Kommunikation schon über einen analogen Eingang steuerbar sein. Werde ich Probleme haben, wenn ich im Virtual Environment alles aufbaue?
Vielen Dank für euren Support!
ich habe versucht python-canopen zu installieren. Habe einen Fehler bekommen error: externally-managed-environment
Anscheinend ginge " --break-system-packages" aber dann habe stattdessen ein virtuelles Environment verwendet, und zwar:
Code: Select all
python3 -m venv venv
source venv/bin/activate
pip install python-canopen
Vielen Dank für euren Support!
Re: Produktauswahl für Antrieb CAN
Das venv ist der richtige Weg — --break-system-packages sollte man vermeiden.
Keine Probleme zu erwarten: SocketCAN (can0, can1) ist systemweit verfügbar und vom venv unabhängig.
Für den automatischen Start beim Boot empfiehlt sich ein systemd-Service, der den venv-Interpreter direkt referenziert — kein activate nötig:
Für die Steuerung über einen analogen Eingang kannst du z.B. das RevPi MoDIO verwenden, das analoge Ein- und Ausgänge bereitstellt. Im Skript liest du den Eingang über die RevPi-Python-API oder /dev/piControl0 aus und steuerst die CANopen-Kommunikation entsprechend. Das venv hat darauf keinen Einfluss.
Grüße, Amar
Keine Probleme zu erwarten: SocketCAN (can0, can1) ist systemweit verfügbar und vom venv unabhängig.
Für den automatischen Start beim Boot empfiehlt sich ein systemd-Service, der den venv-Interpreter direkt referenziert — kein activate nötig:
Code: Select all
[Service]
ExecStart=/home/pi/venv/bin/python3 /home/pi/can_app.pyGrüße, Amar
KUNBUS