ALT + + Schriftgröße anpassen
ALT + / Kontrast anpassen
ALT + M Hauptnavigation
ALT + Y Socials
ALT + W Studiengang wählen
ALT + K Homenavigation
ALT + G Bildwechsel
ALT + S Übersicht
ALT + P Funktionsleiste
ALT + O Suche
ALT + N Linke Navigation
ALT + C Inhalt
ALT + Q Quicklinks
ESC Alles zurücksetzen
X
A - keyboard accessible X
A
T

Automatisierung von Messtechnik mit Python

Im Studiengang Mechatronik Bachelor lernen Studierenden, wie Messtechnik in automatisierten Systemen eingesetzt wird. Schon im Praxissemester arbeiten viele Studierende an automatisierten Prüfständen oder Endprüfungen, bei denen oft die Software LabVIEW eingesetzt wird. Daher wird an der Hochschule Reutlingen auch LabVIEW im Praktikum Messtechnik eingesetzt, wo DAQs und Oszilloskope damit ausgelesen bzw. gesteuert werden, sowie deren Messdaten weiterverarbeitet und grafisch dargestellt werden.

LabVIEW so wie MATLAB sind in der Industrie de facto Standards und dementsprechend mit sehr hohen Softwarelizenzkosten verbunden, die man sich im Privatbereich oder in Kleinunternehmen oft nicht leisten kann. Octave stellt hier eine gute Open Source Alternative für MATLAB dar. Leider gibt es aber noch keine ernst zu nehmenden Open Source Alternativen zu den grafikbasierten Programmiersprachen Simulink oder LabVIEW.

Steht LabVIEW nicht zur Verfügung, dann kann aber Python verwendet werden, um Messgeräte zu steuern und auszulesen sowie deren Messdaten zu verarbeiten.

Python-Programmierung

Python ist eine Skriptsprache, die plattformunabhängig ähnlich wie Java auf einer "virtuellen Maschine" läuft. Die nachfolgenden Programmbeispiele beziehen sich auf die aktuelle Version 3 von Python. (Achtung: Viele Programmierer verwenden noch die alte Version Python 2, die einige Befehle mit anderer Syntax verwendet.) Anders als Java kann Python sogar interaktiv in der sogenannten "Python-Shell" im „Interpretermodus“ ausgeführt werden. Python ist komplett Open Source, kostenlos und läuft unter Windows, Mac und Linux. Python ist sehr gut für Programmieranfänger geeignet und verfügt über eine Vielzahl sehr guter Open Source Bibliotheken. Mit Python ist es sehr einfach, auf Schnittstellen zuzugreifen, was ja ein Grundvoraussetzung für die Kommunikation mit Messgeräten ist. Weiter beinhaltet die Pythonbibliothek numPy Mathematikfunktionen ähnlich zu denen von MATLAB. Mit der Pythonbibliothek Matplotlib können Messdaten visualisiert werden ähnlich wie mit MATLAB. Schließlich kann mit der Pythonbibliothek tkinter sehr einfach eine plattformunabhängige Benutzeroberfläche erstellt werden.
Alles zusammen ergibt dann eine Messsoftware, die mit dem Messgerät kommuniziert, dessen Daten ausliest, verarbeitet und grafisch darstellt bzw. abspeichert. Dies ist vergleichbar mit der Grundfunktionalität von LabVIEW.

Ein empfehlenswertes Lehrbuch speziell auf den Ingenieurbereich zugeschnitten gibt es im Hanser-Verlag: Hans-Bernhard Woyand: Python für Ingenieure und Naturwissenschaftler.
Ebenfalls im Hanser-Verlag findet sich ein sehr gutes Python3-Buch für C-Umsteiger und zum Nachschlagen: Bernd Klein: Einführung in Python3.

Nachfolgend sind zwei Beispiele für den oben beschriebenen Einsatz von Python in der Messtechnik vorgestellt.

Auslesen und grafische Darstellung der Messwerte von einem Digitalmultimeter

Das Digitalmultimeter (DMM) Voltcraft (Hersteller Metex) ME-42 aus den 1990ern besitzt eine serielle Datenschnittstelle (RS-232C). Mit einem 5-Euro Schnittstellenkonverter (türkiser Dongel oben am DMM) wird daraus eine moderne USB-Schnittstelle. In dem Pythonprogramm "ME-42_GUIplot" öffnet sich eine Benutzeroberfläche, in der man zuerst die Schnittstelle am PC eingibt, unter der der Schnittstellenkonverter als virtueller COM-Port erscheint (hier auf einem Windows PC "COM42").
Durch ein Klick auf den Button "COM-Schnittstelle verbinden" wird die Kommunikation zum DMM aufgebaut. Jetzt kann man entweder eine Einzelmessung oder eine Messreihe vornehmen. Das DMM kann nur ausgelesen jedoch nicht parametriert werden. Es gibt den aktuellen Messwert mit Einheit und Messgrößenart als ASCII-Zeichenfolge aus.

Bei einer Messreihe wird anschließend der Verlauf der Messwerte grafisch dargestellt, sowie der Mittelwert und die Standardabweichung ausgegeben.

Steuern und Auslesen eines Low Cost Netzgeräts

Das Netzgerät Korad KD3005P wird unter verschiedene Namen z.B. vom Distributor Reichelt oder ELV vertrieben. Es kostet ca. 70 € und besitzt eine USB wie auch eine RS-232 Schnittstelle. Darüber können Spannung und Strom des Netzgeräts eingestellt werden, der Ausgang bzw. ein Überstromschutz ("Overcurrent Protection") kann ein- und ausgeschaltet werden, und der momentan gelieferte Strom kann ausgelesen werden.

Anders als beim Digitalmultimeter werden hierbei verschiedene ASCII-Befehle an das Messgerät gesendet, siehe Kommentare im Pythonprogramm "KoradKD3005P".

Live-Darstellung des Signalverlaufs der AD-Wandlerwerte eines Arduino Uno

Matplotlib Fenster während der Live-Darstellung der vom Arduino aufgenommenen Messwerte

Ähnlich wie bei dem Digitalmultimeter können auch von einem Arduino Uno AD-gewandelte Messwerte mit einem Pythonprogramm auf dem PC dargestellt werden. Auf dem Bild ist gezeigt, wie für eine Samplingrate von ca. 20 S/s die vom Analogeingang aufgenommenden Messwerte in einem Live-Plot ähnlich wie bei einem Oszilloskop dargestellt werden.

Hierfür werden ebenfalls die Bibliotheken Matplotlib und pySerial verwendet.

Die Quellcodes sowohl für das Arduino- als auch für das Pythonprogramm finden Sie unten im Downloadbereich dieser Seite.

Automatisiert Messen mit Python und dem IVI (VISA)-Standard (Praktikum Messtechnik, Bachelor Mechatronik)

Inzwischen hat Python auch neben LabVIEW Einzug in das Praktikum Messtechnik im Bachelorstudium Mechatronik gefunden.

Unter GitHub befindet sich ein Jupyter-Notebook, mit dem sich die Studierenden auf den Praktikumstermin vorbereiten. Im Downloadbereich finden Sie ein PDF der Praktikumsanleitung.