Thema:
Kann die EPOS4 (oder EPOS2) auch mittels Python kommandiert werden?
Grundlagen:
maxon stellt keine Dokumentation, spezifische Libraries, Beispielcode oder Support für die Kommandierung von EPOS Steuerungen via Python zur Verfügung. Es ist jedoch möglich die "Epos Command library" auch mit Python zu nutzen um eine EPOS4 (oder EPOS2) zu kommandieren und Daten auszutauschen.
Im wesentlichen gibt es zwei Lösungsansätze zur Kommandierung der EPOS4, EPOS2 oder eines IDX mit einem Python Anwendungsprogramm basierend auf maxon's "EPOS Command Library":
- Lösung 1: ctypes <- Empfohlen!
Die meisten Anwender bevorzugen die Nutzung der "ctypes" Library für Python.
Die "cytpes" Library wird häufig bereits standardmässig mit der Python Entwicklungsumgebung auf Linux und Windows installiert. "cytpes" bietet "C" kompatible Datentypen und erlaubt den Aufruf von DLL Funktionen (wie bei maxon's "EPOS Command Library" vorhanden).
maxon empfiehlt die Verwendung der ctypes Library (statt pythonnet)!
Die Nutzung von ctypes ist in dem folgenden verlinkten Artikel beschrieben:
EPOS2 / EPOS4: Kommandierung mit Python -> ctypes - Lösung 2: pythonnet <- Nicht empfohlen
Eine weitere mögliche Lösung ist der Einsatz von "pythonnet" (welches für den Einsatz auf Windows-basierenden Systemen entwickelt wurde).
Die nachfolgenden Informationen beschreiben den Einsatz von "pythonnet" obwohl die Verwendung von "pythonnet" von maxon nicht mehr empfohlen wird und für "pythonnet" keine weitere Unterstützung als die Hinweise in diesem nachfolgenden Artikel angeboten werden kann. Das angehängte Bespielprogramm wurde durch einen EPOS4 und "pythonnet" Anwender zur Verfügung gestellt.
Lösung: "pythonnet"
Das Einzige was für die Kommandierung der EPOS4 (oder EPOS2) mit Python benötigt wird ist das Paket "pythonnet" (clr) und die EPOS .NET libraries. Das erstere sollte dabei in dem lokalen Arbeitsverzeichnis abgelegt sein.
1.) pythonnet
Python for .NET ist ein Paket, welches Python Programmierern die Möglichkeit bietet die .NET "Common Language Runtime (CLR)" nahtlos zu integrieren. Es steht hierdurch eine leistungsstarke Skriptsprache für .NET Applikationsentwickler zur Verfügung. Der Python Code kann direkt mit der CLR interagieren. Es sollte ebenfalls möglich sein Python in eine .NET Anwendung einzubinden.
Das notwendige "pythonnet" Library Paket kann unter dem folgenden Link heruntergeladen werden:
Hinweise:
- Das Installationspaket (-> Wheel *.whl Dateityp) sollte auf einem lokalen Laufwerk abgelegt und von dort "pip install pythonnet" [hit tab to autocomplete] installiert werden ...
- Weitere Informationen zur Installation, Fragen und Antworten, Problembehebung, Fehleranalyse und Projekte, die mit der Nutzung von "pythonnet" in Zusammenhang stehen, können unter diesem Link gefunden werden:
2.) EPOS Command library for .NET
Falls das maxon Software-Paket "EPOS Studio" bereits installiert ist, welches meist für die Erstinbetriebnahme und das Reglertuning benötigt wird, so finden sich die benötigten "EposCmd.Net.dll" and "EposCmd64.dll" standardmässig in dem folgenden Verzeichnis des lokalen Laufwerks:
- C:\Program Files (x86)\maxon motor ag\EPOS Positioning Controller\EPOS4\04 Programming\Windows DLL\Microsoft Visual C Sharp\Example C#
Das "EPOS .Net Library" Paket kann ebenfalls separat unter dem Abschnitt "Software/Firmware" im "Downloads" Bereich jeder maxon EPOS Produkt-Website heruntergeladen werden. Die Library und Dokumentation ist immer identisch unabhängig davon welcher konkreter EPOS2 oder EPOS4 Produkttyp gewählt wird, z.B. "EPOS4 50/5":
Die EPOS Command library Dokumentation, welche die Beschreibung der Funktionen und zugehöriger Parameter enthält, findet sich in den folgenden Verzeichnissen:
- C:\Program Files (x86)\maxon motor ag\EPOS Positioning Controller\EPOS4\04 Programming\Windows DLL\Microsoft Visual C Sharp\Documentation
-> "EposCmd.Net.chm" - C:\Program Files (x86)\maxon motor ag\EPOS Positioning Controller\EPOS4\04 Programming\Windows DLL
-> "EPOS Command Library.pdf"
3.) Python Beispiel-Skript
Im Anhang findet sich ein Beispiel-Skript zur Kommandierung der EPOS4. Das Skript wurde mit Spyder / Anaconda und Python 3.7.3 getestet.
Hinweis:
- Bitte beachten Sie, dass maxon keinen Support oder Schulung für Python, pythonnet oder anwendungsspezifische Anpassungen der Beispiel-Programme bieten kann.
- Der Programmcode kann frei und ohne Einschränkungen weitergegeben, geändert, erweitert und für eigene Anwendungen genutzt werden. maxon lehnt jedoch jede Haftung und Gewährleistung auf Basis der Nutzung dieser Beispiel ab.
- Wir sind an Ihrer Meinung interessiert, ob die hier zur Verfügung gestellte Information zur Kommandierung der EPOS4 (oder EPOS2) mit Python hilfreich war.
Querverweis:
- Statt dem Einsatz der pythonnet Library wird die folgende Library empfohlen:
-> EPOS2 / EPOS4 / IDX: Kommandierung mit Python -> ctypes
Kommentare
0 Kommentare
Zu diesem Beitrag können keine Kommentare hinterlassen werden.