Python skript zum auslesen von Messgeräten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Tamti
User
Beiträge: 4
Registriert: Samstag 31. Juli 2021, 21:43

Hallo liebe Community,

ich bin leider ein Python Neuling, habe aber diverse Vor-/Grundkenntnisse in der Programmierung. Im Auftrag meiner Bachelorarbeit soll ich eine Programm schreiben, welches ein Messverfahren steuert. Dazu gehören eine Videoaufzeichnung (Ethernet), eine Kraftmessung (Kraftmessplatte) (USB) und eine Ultraschall Analyse (Wifi). Im Moment werden die Geräte noch von drei verschiedenen Rechnern gesteuert und ausgewertet, was eine Synchronisation der Messwerte erschwert. Die Kamera Steuerung und Aufnahme konnte ich selbstständig lösen.
Über die Kamera soll noch zusätzlich ein Marker tracking erfolgen, aber ich denke das bekomme ich auch noch selbstständig hin. Leider fehlen mir die Vorkenntnisse um über die Schnittstellen mit den Geräten zu Kommunizieren.

Ich bin kein Mensch der die Antwort auf das Silbertablett präsentiert haben möchte. Ein kleiner Ansatz würde mir schon weiterhelfen um zu wissen wonach ich suchen muss und in was ich mich einlesen sollte.

Da wir im Moment auch noch alle im Homeoffice an den Projekten Arbeiten, habe ich nur alle drei Wochen Zugang zu den Messgeräten um meinen Code zu testen.

Ich bin über jede Hilfe Dankbar

LG
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Tamti: Ich vermissen eine konkrete, beantwortbare Frage‽
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Tamti
User
Beiträge: 4
Registriert: Samstag 31. Juli 2021, 21:43

Hallo _blackjack_,

ich weiß leider nicht wie ich über Python mit externen Geräten kommunizieren kann. Konkret über USB und über Wifi. Ich müsste ja prinzipiell Befehle über die USB Schnittstelle senden können um den Messvorgang zu Starten und anschließend die Messwerte über die USB Schnittstelle empfangen. Daher meine Frage ob das überhaupt geht und wie.

LG
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist nicht allgemein beantwortbar. Sondern hängt von den konkreten Messgeräten ab. Welche sind das, welche Schnittstellen bieten die, wo ist deren Dokumentation?
Tamti
User
Beiträge: 4
Registriert: Samstag 31. Juli 2021, 21:43

Hallo _deets_,

vorab danke für deine Rückmeldung. Ich wollte euch nicht mit den Einzelheiten des Messsystems vollquatschen, daher bin ich nicht weiter darauf eingegangen.
Das Projekt an sich ist recht interessant. Es handelt sich hierbei um eine Ultraschallemissionsanalyse des Knies um Arthrose zu diagnostizieren. Dazu werden ein Gerät der Ultraschallemission namens BoneDias am Oberschenkel befestigt. Dieser wird mittels wlan gesteuert. Dazu muss die Versuchsperson auf einer Kraftmessplatte von Zebris drei Kniebeugen machen die mit zwei Kameras aufgezeichnet werden. Die Kraftmessplatte wird über Usb ausgelesen und die kameras sind über lan mit dem rechner verbunden.
Zur zeit sind die geräte an drei verschiedenen Rechnern angeschlossen und müssen von 3 Personen gleichzeitig gestartet werden. Daher ist es meine Aufgabe mit einem programm diese schritte zu kombinieren und somit annähernd synchron zu starten um fehler der Auswertung zu minimieren.
Die Dokumentation ist bei den Herstellern angefragt da sie aus der Bedienungsanleitung nicht ersichtlich waren.

vielen Dank nochmal

LG
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Eventuell hilft dir SCPI weiter. Such auch mal nach PyVISA und PyVISA-py.

Damit kann man viele Messgeräte ansteuern. Da es leichte Unterschiede gibt bleibt dir aber nichts anderes übrig, als ins Datenblatt des Messgerät zu schauen.

Oder du hast ein Gerät, das ein eigenes Protokoll hat. Wenn das nicht dokumentiert ist hast du Pech
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
Tamti
User
Beiträge: 4
Registriert: Samstag 31. Juli 2021, 21:43

danke dir burli,

genau nach so einem Ansatz habe ich gesucht..
ich werde Berichten sobald ich irgendwelche fortschritte gemacht habe.

beste grüße
No-h-Typ
User
Beiträge: 2
Registriert: Dienstag 14. September 2021, 12:16

Hallo zusammen,
für ein vergleichbares Projekt muss ich die Messwerte aus einem digitalen Multimeter über ein Python-Skript einlesen.
Mit pyUSB gelingt es mir, das Multimeter über idVendor und idProduct aufzurufen (keine serielle Schnittstelle!) und das Kommunikationsprotokoll habe ich vom Hersteller bekommen. Allerdings fehlt mir jetzt der richtige Ansatz, die Anweisungen aus dem Protokoll in Python zu übertragen...

Viele Grüße
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn ich mich nochmal zitieren darf:
__deets__ hat geschrieben: Sonntag 1. August 2021, 19:52 Das ist nicht allgemein beantwortbar. Sondern hängt von den konkreten Messgeräten ab. Welche sind das, welche Schnittstellen bieten die, wo ist deren Dokumentation?

Edit: link auf Beitrag hat nicht geklappt.
No-h-Typ
User
Beiträge: 2
Registriert: Dienstag 14. September 2021, 12:16

Also das Multimeter welches mir Probleme bereitet ist ein Peaktech 3315USB, welches eine Infrarotschnittstelle hat. Die Verbindung mit dem Windows-PC läuft über ein mitgeliefertes USB-Infrarot-Adapterkabel.
Der Geräte-Manager zeigt mir den USB-Port unter Eingabegeräte(Human Interface Devices) an, laut Hersteller ist der HID-Treiber in Windows integriert.

Das Kommunikationsprotokoll habe ich hier einmal vorübergehend abgelegt: https://docdro.id/gmKkRn9
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dann wuerde ich mal das hier https://pypi.org/project/pywinusb/ probieren, da gibt es auch Beispiele, die man mal ausprobieren kann, um das Geraet zu finden und auszulesen.

Ich kenne mich mit HID nicht besonders aus (ausser das ich USB-Keyboards/Mauese benutze), aber https://github.com/rene-aguirre/pywinus ... raw_set.py sieht erstmal am vielversprechendsten aus, um da irgendwas rein zu bekommen - diese "reports" scheinen der HID-Weg zu sein, wie daten kommuniziert werden, siehe zB https://eleccelerator.com/tutorial-abou ... scriptors/

Wenn es das nicht ist, kannst du stattdessen auch mit libusb direkt versuchen eine Verbindung aufzubauen, ggf. muss man das Device dafuer aber als HID-Device auf eine rote Liste setzten, damit es nicht vom Treiber geschnappt wird.

Zu guter Letzt hat der Hersteller vielleicht auch Beispielprogramme in anderen Sprachen, die man dann uebersetzen kann.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nachtrag: ich habe das hier gefunden: https://www.peaktech.de/media/cf/f1/cc/ ... _DE-EN.pdf - und da steht, dass es sich dabei sehr wohl um einen USB to serial Adapter handelt, der da verbaut ist. Den notwendigen Treiber fuer einen PL-2303 musst du installieren, und dann ist das Protokoll umzusetzen, wie in der Anleitung beschrieben.
Antworten