Definition der Datenerfassung

Aus Technische Beeinflussbarkeit der Geschmacksache Kaffee
Zur Navigation springen Zur Suche springen

Breites Logoband.png


Patricia Viebke, 17.03.2022

Für die Temperatursensoren ist das Messvorgehen definiert. Die Aufnahme von Messwerten der Temperatursensoren (NTC und IR) funktioniert und die Spannungswerte der NTCs werden mit einer ersten Kalibrierkurve in Temperaturwerte umgewandelt.

Mit den Drucksensoren ist das Messen nicht möglich. Es muss entschieden werden, welche Sensoren zukünftig verwendet werden.

Das Wägesystem ist noch nicht einsatzbereit.

Die theoretische Datenerfassung des Flowmetersignals funktioniert. Die Durchflussdatenberechnung wurde noch nicht an realen Daten des Flowmeters angewendet. Die Anschlüsse der HATs sind klar definiert. Jeder Sensor hat seinen festen Platz an den MCCs. Mit den Python Skripten werden die Messdaten aufgenommen. Für eine eindeutiges und sauberes Signal ist eine Platine zu erstellen und mit dem Messsystem zu verbinden.

Patricia Viebke, 10.03.2022

Für das Durchführen von Messungen werden die drei HATs aufeinander gesteckt. Über die Skripte "multi_custom.py" und "multi_shot.py" wird die jeweilige Messung durchgeführt. Das Aufrufen der Skripte erfolgt über die MATLAB GUI.

Da die Aufnahme von Messdaten final feststeht, muss die Datenaufbereitung in MATLAB angepasst werden.

Die Messdaten bei einer SHOT Messung werden nach Ablauf der einegebenen Messdauer als ganzer Block an MATLAB übertragen. Und anschließend weiterverarbeitet. Nur so kann eine Durchflussberechnung erfolgen, da für die Durchflussberechnung das vollständige Zeitsignal der Messung notwendig ist.

Die CUSTOM Messung läuft, wie bisher, über die Timer-Function ab. Pro Durchlaufen der Timer-Fcn werden Messdaten über die MCC erfasst und direkt an MATLAB übertragen. Die Daten werden fast vollständig im Python Skript "multi_custom.py" aufbereitet und erfodern somit nur eine geringe Aufbereitung in MATLAB.

Durch Probemessungen konnte die Funktionalität der Datenerfassung bestätigt werden. Es wurde jeweils eine CUSTOM und SHOT Messung durchgeführt. Die Messdaten wurden wie erwartet aufbereitet und geplottet. Sowohl die GUI, als auch die Python Skripte und die MATLAB Aufbereitung funktioniert für verschiedene Messarten/ -einstellungen.

Patricia Viebke, 08.01.2022

Das Messsystem muss mit mindestens zwei MCC128 betrieben werden. Beim Ausprobieren des Skriptes "custom_scan.py" ist aufgefallen, das dieses nur für die Benutzung eines HATs funktioniert. Es musste ein neues Python Skript geschrieben werden, dass die gleichzeitige Benutzung mehrerer HATs ermöglicht. Hierfür wurde das Skript "multi_custom.py" geschrieben und getestet. Die Funktionsweise ist gleich geblieben, das heißt bei jedem Durchlaufen der Timer Function in der GUI wird ein Zeitstempel und eine bestimmte Anzahl an Messwerten pro Kanal erfasst und direkt an MATLAB zur Weiterverarbeitung übergeben. Mit dem Befehl "system(rpi, '/home/pi/daqhats/examples/python/mcc128/multi_custom.py 10') wird das Skript aufgerufen. In diesem Fall werden pro Messkanal 10 Werte aufgenommen, die Zahl kann nach Bedarf verändert werden.

Im Python Skript "multi_custom.py" wird aktuell die Aufnahme von 9 Messkanälen mit berücksichtigt. Für jeden Sensor ist ein bestimmter Kanal auf dem MCC128 gedacht, damit die Datenverarbeitung leichter gestaltet werden kann. Ein Dokument mit der Zuweisung der Kanäle folgt.

Für die SHOT Messung musste ebenfalls ein Python Skript geschrieben werden, dass die bisherige Verhaltensweise der SHOT Messung beibehält. Hierfür wurde das Skript "multi_shot.py" geschrieben und ist aktuell für die Benutzung von allen drei MCC128 konfiguriert. Das Skript gibt die Daten nicht direkt an MATLAB über, sondern speichert die Daten in einer csv-Datei "buffer.csv" ab und gibt diese an MATLAB. In MATLAB werden die Daten der csv Datei anschließend weiterverarbeitet. Die SHOT Messung wurde bislang ohne Sensoren getestet, die Erfassung von Messwerten und die Vorgehensweise funktionieren einwandfrei. Bei der SHOT Messung wird der Durchflusssensor eingesetzt. Für diesen ist ein eigenes MCC128 geplant. Nach Rücksprache mit Measurement Computing kann entschieden werden, ob das Flowmeter auf dem zweiten HAT benutzt werden kann. Die Frage, ob unterschiedliche Abtastraten pro Kanal einstellbar sind muss hierfür geklärt werden.

Das Skript "multi_custom.py" wurde bereits in die GUI integriert und ein vollständiges Funktionieren der CUSTOM Messung kann bestätigt werden. Die SHOT Messung bedarf noch die Integration in die GUI und Anpassung in der Datenweiterverarbeitung. Auch das Vorgehen für das Bestimmen der Durchflussraten muss in die GUI integriert werden.

Patricia Viebke, 27.11.2021

Die Platine, die an das Raspberry Pi angebracht wird ist angekommen und die Bauteile wurden entsprechend verlötet. Die Stecker für die Sensoren wurden ebenfalls verlötet und die Platine wurde mit dem Raspberry Pi und MCC128 verbunden. Für die Messung mti dem MCC128 müssen die Messkänele des MCCs mit der Platine entsprechend verbunden werden (siehe Beschriftung auf Platine). Zum Beispiel: Soll der NTC1 am CH0 (Channel 0) gemessen werden, so muss eine Verbindung des CH0L und CH0H (Low und High, da Differential) mit den ersten zwei Pins des 8-Pin Steckers (NTC1-4) hergestellt werden.

Für das finale Messsystem sind zwei bzw. drei MCC128 notwendig. Vorerst wird ein MCC128 vollständig konfiguriert, in die GUI integriert und damit eine Testmessung durchgeführt bevor weitere HATs integriert werden. Das HAT wurde über den 40-Pin GPIO mit dem Rasperry Pi verbunden. Mit dem Terminal wird über SSH auf das Raspberry Pi zugegriffen. Nachdem die Updates vorgenommen wurden, wurden die in der daqhats Bibliothek vorhandenen Beispielskripte analysiert. Der Aufbau und die Funktion einzelner Befehle der Beispielskripte musste verstanden werden, um diese abzuändern bzw. anpassen zu können. Für die CUSTOM Messung wurde ein neues Python Skript "custom_scan.py" erstellt, dass auf dem Beispielskript "finite_scan.py" basiert.

Das Skript "finite_scan.py" ist ein Skript, dass nach bestimmter Anzahl aufgenommener Messwerte die Messung beendet. Die Anzahl der Messwerte ist durch die Variable "sample_per_channel" definiert. Diese Art der Messung ist für unsere CUSTOM Messung notwendig. Bislang hat die CUSTOM Messung in der GUI so funktioniert, dass die Funktion TimerFcn in einem ausgewählten zeitlichen Abstand wiederholt abläuft, bis die Messung manuell durch den User beendet wird. Beim Durchlaufen der TimerFcn wurden eine bestimmte Anzahl an Messwerten vom Raspberry Pi geholt und diese gemittelt und in physikalische Größen umgewandelt. Die Vorgehensweise der Messdatenerfassung bzw. Weiterverarbeitung wird größtenteils beibehalten. Mit dem neuen Python Skript kann der User selbstständig bestimmen, wie viel Messwerte pro Durchlaufen der TimerFcn erfasst werden sollen, die dann anschließend in der GUI weiterverarbeitet werden.

Um das neue Python Skript zu verstehen, wird dies im Folgenden schrittweise erläutert.

Zu Beginn des Skriptes müssen Bibliotheken importiert werden. Die Bibliotheken von custom_scan.py sind vom Beispielskript "finite_scan.py" übernommen worden. Zusätzlich wurden sys und time importiert. Anschließen müssen Parameter für die Messung definiert werden. Hierzu gehören:

Parameter definieren in "custom_scan.py"

Python Befehl Erklärung Einstellung
channels Kanäle, an denen gemessen werden soll [0,1,2,3]
channel_mask Erstellung einer Maske chan_list_to_mask(channels)
num_channels Anzahl der aktiven Kanäle len(channels)
input_mode Art der Messung - Single End oder Differential AnalogInputMode.DIFF
input_range Definieren des Spannungsbereichs pro Kanal AnalogInputRange.BIP_10V
samples_per_channel Anzahl der zu erfassenden Daten pro Kanal pro Ausführen des Skripts int(sys.argv[1])
scan_rate Abtastrate pro Kanal 1000
options weitere Optionen OptionsFlags.DEFAULT

Die Anweisung sys.argv[1] bedeutet, dass die Zahl, die nach dem Aufrufen des Skriptes eingegeben wird, die Anzahl der zu erfassenden Daten ist. Befindet man sich im Terminal im gleichen Ordner wie das custom_scan.py Skript, so kann es folgendermaßen getestet werden:

"./custom_scan.py 10" wobei die variierbare Zahl 10 für die samples_per_channel steht. In diesem Fall würde das Python Skript 10 Werte von jedem Kanal ausgeben, dass mit der eingestellten Abtastrate gemessen wurde. Je geringer die Abtastrate eingestellt, desto länger dauert die Messung bei gleicher Anzahl der Samples pro Kanal.

Die Messung im custom_scan.py wird gestartet durch den Befehl hat.a_in_scan.start(Argumente). Gelesen werden die erfassten Messdaten mit hat.a_in_sca_read(Argumente).

Ursprünglich wurden im Skript "finite_scan.py" nur die zuletzt erfassten Daten jedes Messkanals angezeigt. Für das Messsystem ist es jedoch notwendig, dass alle gemessenen Daten gelesen und ausgegeben werden. Dieses wurde mit einer for-Schleife umgesetzt, die sich am Ende des "custom_scan.py" Skriptes befindet. Hier wird ein Zeitstempel erzeugt und die Ausgabe vorbereitet. Die Daten werden nicht zeilenweise ausgegeben, sondern blockweise. Das heißt, wenn beim Aufrufen des Skriptes 10 Messwerte pro Kanal bei 4 Kanälen erfasst werden sollen, so wird ein Zeitstempel und 40 Werte ausgegeben.

Mithilfe eines MATLAB Skriptes wurde die Weiterverarbeitung der importierten Daten getestet. Der Code aus dem Skript muss in die GUI eingepflegt werden.

Patricia Viebke, 11.11.2021

Die MCC 128 sind angekommen. Das vorher verwendete ADSBoard 1256 wurde vom Raspberry Pi abgesteckt, während eines des MCC 128 an das Raspberry Pi angeschlossen wurde. Das Raspberry Pi wurde geupdatet und die Konfiguration ist somit vollständig vorbereitet. Die Funktionalität des MCC128 kann bestätigt werden, auch die Erkennung des MCC von Seiten des Raspberrys ist vorhanden. Am Montag beginnt die Konfiguration des MCCs.

Patricia Viebke, 08.10.2021

Durch Recherche wurde neue Messelektronik bestellt, die die Problematik mit der bestehenden 50 Hz Störfrequenz lösen soll. Es wurde entschieden, das Raspberry Pi als Messgerät weiterhin zu behalten und dies mit HATs (Hardware At The Top) von Measurement Computing Corporation (MCC) zu erweitern. Hierzu wurden drei MCC 128 ausgesucht und bestellt.

Ein MCC 128 ist ein HAT, mit dem entweder 8 analoge Eingänge über Single End oder 4 analoge Eingänge über Differential gemessen werden können. Pro MCC 128 ist eine Abtastrate von 100 kS/s gegeben. Sind 4 Sensoren angeschlossen, so hat jeder von ihnen 25 kS/s zur Verfügung, was ausreichend ist. Für das Messsystem sind die 4 analogen Kanäle über das Differential interessant, da die Sensoren bzw. die Sensorsignale hier gleichzeitig geerdet werden. Es ist geplant, zwei MCC 128 mit den 8 analogen Sensoren zu besetzen. Das dritte MCC 128 ist für die Signalaufnahme des Durchflusssensors gedacht.

Da dadurch die Sensoren bzw. die Sensorsignale gleichzeitig geerdet werden, wird die Behebung der Problematik mit dem 50 Hz Sinusssignal erwartet. Nach Ankunft der Hardware muss diese mit Python konfiguriert werden. Durch Tests wird entschieden, ob die Option mit den MCCs weiterhin verwendet wird. Sollte dies nicht der Fall sein, so steht die NI Messkarte des Typs USB-6210 zur Verfügung. Es wurde bereits eine Platine erstellt und zur Anfertigung gegeben, die für beide Optionen kompatibel ist.

Bis zum 15.11.2021 wird die Lieferung erwartet.

Patricia Viebke, 17.09.2021

Es wurde anhand eines NTCs festgestellt, dass eine Störfrequenz in Form eines Sinussignals vorhanden ist. Bei einer Abtastrate von 500 beträgt die Störfrequenz 6 Hz, bei anderen Abtastraten beträgt diese 50 Hz. Dieses Problem lässt sich auf ein Masseproblem bei der Messelektronik zurückführen. Mit einem provisorischen Erdungsanschluss des Raspberry Pis ist das Problem nicht mehr vorhanden. Das Aufnehmen der Messwerte durch eine NI-Messkarte löst ebenfalls das Problem. Hier muss früh möglichst entschieden werden, welche Messelektronik weiterhin im Messsystem benutzt wird. Für die Problematik mit dem Sinussignal wurde bislang entschieden, dass das Raspberry Pi geerdet werden muss, ansonsten muss es durch andere Messelektronik ersetzt werden. Auf dem Signal der Temperaturmesswerte ist außerdem ein Grundrauschen mit einer Amplitude von 10 mV festgestellt worden. Es muss ein Lösungsansatz für die Bereinigung des Signals erarbeitet und angewendet werden. Für die Temperatur- und Drucksensoren muss das Grundrauschen mit 20 mV in physikalischen Größen ausgedrückt werden und überprüft werden, ob dies noch in der vereinbarten Toleranz liegt.