PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Immer noch Probleme mit der gleitenden Mittelung



Florian.
18.10.2009, 11:21
Hallo,

vielleicht erinnert ihr euch an die Diskussion über gleitende Mittel im Sommer. In meinem letzten Projekt konnte ich durch einige Tricks die Sache in den Griff bekommen. Im aktuellen jedoch bin ich dringend darauf angewiesen einen anständigen Messwert zu bekommen. Allerdings habe ich die Geschichte von der theoretischen Seite her immer noch nicht ganz verdaut.


Konkret habe ich ein stark schwankendes analoges Messsignal eines Drucksensors welches größere Schwankungen aufweist wie mein Delta zwischen unterer und oberer Schaltschwelle ist.
Bei einem ADC Wert von 300 möchte ich einen Ausgang schalten der bis zum ADC Wert 200 aktiv bleibt. Mein Messwert schwankt jedoch beinahe über diesen ganzen Bereich. Das entsteht durch die seltsame Messmethode. Es handelt sich um eine Füllstandsmessung einer Abwassergrube eines Einödhofes. Bei einem bestimmten Pegel pumpt eine Tauchpumpe den Grubeninhalt in die Kanalisation der nächsten Ortschaft. Um den Füllstand zu messen wird ein Luftschlauch der in der Grube mündet durch eine Membranpumpe mit einem Druck beaufschlagt. Dieser Druck wird mittels Drucksensor ausgewertet. Dadurch, dass die Luftblasen in der sehr hochviskosen Flüssigkeit aufsteigen baut sich immer ein sehr hoher Druck auf, der dann sobald die Luftblase aufsteigt blitzartig in den Keller sinkt. Das erklärt mein schlechtes Signal.
Diese Messmethode hat einerseits den Vorteil, dass niemand in die Grube steigen muss um dort z.B. auf dem Boden einen Drucksensor anzubringen, zum anderen wird bei dieser sehr inhomogenen Beschaffenheit des Inhaltes wahrscheinlich auch nicht jede Art der Füllstandsmessung funktionieren. Ich hoffe ich konnte mein Problem einigermaßen gut in Worte fassen und ihr könnt euch ein Bild davon machen.

Nun habe ich schon viele Möglichkeiten versucht um diesen Messwert in den Griff zu bekommen, allerdings noch keine zufriedenstellende Lösung gefunden. Einige von euch(u.a. Manf, Recycle) haben sich sehr viel Mühe gegeben mir die gleitende Mittelung zu erklären, ich habe jedoch noch nicht komplett verstanden wie es genau funktionieren kann, dass mit dem Bascom Code von recycle auf der ersten Seite des nachfolgend genannten Threads eine solche gleitende Mittelung realisiert wird.
https://www.roboternetz.de/phpBB2/viewtopic.php?t=49678

Manf hat damals geschrieben, dass dieses Vorgehen eine exponentiell über der Zeit abnehmende Gewichtung der vorgehenden Werte ermöglicht. Wie kommt das zustande? Recycle verwendet lediglich Subtraktion/Addition und eine Divison durch die Anzahl der Werte über die gemittelt werden soll. Mir ist nicht ganz klar woher der exponentielle Charakter kommt.

Nichtsdestotrotz habe ich den Code von Recycle übernommen und getestet. Es ist eine deutliche Glättung der Werte festzustellen.
Jedoch auch eine Art Sprungfunktion. Es hat sich der Mittelwert 250 eingestellt. Mein tatsächlich gemessener ADC Wert pendelte zwischen 195 und 260. Sobald der ADC Wert kurzzeitig auf unter 200 fiel hat recycles Funktion den Mittelwert auf 200 gesetzt. Dieser änderte sich erst wieder wenn der ADC Wert zufällig einen Peak über 250 hatte. Dann sprang der Mittelwert wieder auf seinen ursprünglichen Wert von 250.
Woher diese Charakteristik rührt kann ich mir nicht vorstellen.

Tabellarisch:

IST-Wert / Mittelwert
220 / 250
210 / 250
250 / 250
199 / 200
230 / 200
240 / 200
251 / 250
240 / 250
245 / 250
198 / 200
230 / 200
255 / 250

Ich hoffe diese Tabelle konnte die zugegeben nicht ganz glückliche Beschreibung des Problems "Sprungfunktion" verdeutlichen.


Das ist meine Funktion zur gleitenden Mittelung von o.g. Thread Seite 1 aus Recycles Beitrag übernommen:



const Anzahl = 50

Function Mittelung(aw As Integer) As Integer

Local Zaehler As Integer
Local Temp As Integer
Local Mittelwert As Single
Local Mittelwert_int As Integer

For Zaehler = 1 To Anzahl
Temp = Mittelwert / Anzahl
Mittelwert = Mittelwert - Temp
Temp = Aw / Anzahl
Mittelwert = Mittelwert + Temp
Mittelwert_int = Mittelwert
Mittelung = Mittelwert
Next Zaehler
End Function



Kann sich jemand dieses Verhalten erklären, bzw mir einiges Tipps geben wie ich meinen Messwert in den Griff bekomme? Oder ist die Funktion so vielleicht nicht richtig umgesetzt?

Unter Wikipedia gibt es einiges zum Thema "Gleitendes Mittel" zu finden. Die Beispiele sind jedoch immer auf Logistik, Lagerhaltung bzw Aktiencharts bezogen. Ich habe noch keinen Weg gefunden die dort genannte Funktion auf mein Problem zu übertragen.

Bis zum heutigen Tage war diese ganze Steuerung mit einer elektromechanischen Druckdose mit dem selbenMessprinzip realisiert. Diese hat jedoch den Dienst quittiert. Weil ich nun vermeiden möchte, dass die erwähnte Membranpumpe rund um die Uhr läuft möchte ich die Steuerung mittels Atmel und MPX5100 realisieren und die Pumpe nur einige Male pro Tag zum aufbauen des Messdrucks einschalten. Dazu kommt, dass der Hersteller kein Interesse mehr daran hat die bereits "schon" 10 Jahre alte Steuerung zu reparieren (sprich eine neue Druckdose zu verkaufen).

Als Notlösung denke ich bereits schon an eine mechanische Glättung meines Signals mittels Druckbehälter zum Ausgleichen der Druckschwankungen. Die Methode finde ich zwar keineswegs elegant, liegt mir als Maschinenbaustudent jedoch etwas näher :).


Vielen Dank allen die sich die Zeit genommen haben diesen langen Beitrag zu lesen.


Ich freue mich auf Eure Resonanz


Gruss


Florian.

recycle
18.10.2009, 12:02
Hallo Florian,
könnte sein, dass mein Beispielcode nicht völlig korekt war. Ich habe ihn zwar ausprobiert, aber nicht allzu gründlich.

In deinem Code fällt mir aber 2 Dinge auf:

a) Du mittelst nur über 50 Werte. Das wird für deinen Zweck viel zu wenig sein

b) Du rechnest ziemlich viel mit Integer Werten und das ist bei Divisionen nicht so toll.

Temp = Aw / Anzahl
Temp ist bei dir ein Integer. D.h. für alle Aw <50 kommt da 0 raus.
Bis Aw = 99 bleibt Temp dann 1 und springt bei Aw= 100 auf 2.....

Bei Temp = Mittelwert / Anzahl gilt dasselbe.

Das verusacht vermutlich deine sprunghaften Änderungen des Mittelwertes

Florian.
18.10.2009, 12:10
Ich meine ich hätte das mit den Integervariablen so von dir übernommen und habe mich auch schon gewundert. Darum habe ich dann testweise alles mit Singlevariablen gemacht, auch die Funktion als Single angelegt. Damit hatte ich beim Mittelwert immer xxx.0. Somit dachte ich mir:

1. hast du immer ,0 und
2. hast du das ja von Recycle abgeschrieben.
Also muss Integer doch okay sein und habs wieder auf Integer geändert :)

Werde ich jetzt aber wieder auf Single zurückverändern. Was schätzt du über wieviele Werte ich mitteln sollte? Sehe ich es richtig, dass der Einfluss der Messwerte gegenüber dem bisherigen Mittelwert an Bedeutung gewinnt, je größer ich dieses Fenster (const Anzahl=...) wähle?

recycle
18.10.2009, 12:27
Was schätzt du über wieviele Werte ich mitteln sollte?

Das hängt
a) davon ab, wie schnell du die Messwerte erfasst und
b) wie schnell die Schwankungen in der Grube sind.

Du mittelst ja im Prinzip über die Zeit, der Microcontroler macht vermutlich sehr viele Messungen in kurzer Zeit, das "Blubbern" in der Grube verursacht aber eine recht langsame Schwankung.




Sehe ich es richtig, dass der Einfluss der Messwerte gegenüber dem bisherigen Mittelwert an Bedeutung gewinnt, je größer ich dieses Fenster (const Anzahl=...) wähle?


Nein, eigentlich genau umgekehrt. Je grösser die Anzahl der gemittelten werte, desto kleiner die Bedeutung eines einzelnen Wertes.


Ich finde den alten Post nicht mehr, dein Link oben funktioniert bei mir nicht.
Habe mein Beipiel aber mal in Bascom aufgemacht und da habe ich Temp as Single deklariert.

Als Integer habe ich eigentlich nur Mittelwert_int deklariert.
Das diente in meinem Beispiel nur dazu, den Mittelwert ohne die vielen Nachkommastellen über Print auszugegeb, damit man etwas leichter erkennen kann wie sich der Wert ändert.

cmock
18.10.2009, 13:03
nur so als schnelle idee, ohne den alten thread gelesen zu haben: ist nicht der spitzenwert des drucks bei deiner meßmethode eigentlich das wesentliche, weil das der druck ist, der zum überwinden des gegendrucks der grube notwendig ist? könnte es sein, daß du mit dem mittelwert auf dem holzweg bist?

cm.

Florian.
18.10.2009, 14:48
Habe im ersten Beitrag nun den Link zum alten Post korrigiert. Hier nochmal:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=49678

Du hattest recht, in deinem Programm stimmten die Datentypen. Kann noch nicht sagen ob dieses sprungverhalten dadurch jetzt behoben wurde. Aber ich schätze schon.
Ich mittle momentan über 250 Werte. Der Mega8 (Takt 3686400 Hz) liest in jedem Zyklus einmal den Wert vom ADC. Wenn ich jedoch über 250 Werte das gleitende Mittel bestimme verbringt der AVR natürlich sehr viel Zeit in dieser For Schleife (For Zaehler=1 to Anzahl). Somit schätze ich die Anzahl der Messungen bei Anzahl=250 so auf 5-8 pro Sekunde.

Das gleitende Mittel hängt aber trotzdem sehr stark am aktuellen Wert. Eine spürbare Glättung kann ich kaum feststellen. Der ADC schwankt vielleicht im Bereich von 80, der Mittelwert um 50-60.

Daran, dass der Mittelwert ungeeignet ist und ich vielmehr die Spitzenwerte ausfltern sollte habe ich noch gar nicht gedacht. Aber klingt nicht ganz unlogisch. Bin mir jedoch im Moment nicht sicher ob das eine gute Möglichkeit wäre.

Florian.

wawa
18.10.2009, 16:33
hallo Florian,

ich bin wie cmock der Meinung, dass du den Spitzenwert messen musst, bevor die Blase den Schlauch verlaesst. Du steigerst ueber die Zeit den Druck im Schlauch, bis er die Hoehe des Druckes der Fluessigkeit erreicht, dann loesst sich eine Blase und dein Druck im Schlauch faellt ein wenig.
Der hoechste Messwert ist also die Entsprechung fuer den Fuellstand der Grube.
!! uebrigens - tolle Idee !!

gruss wawa

Besserwessi
18.10.2009, 17:07
Ob man jetzt den Spitzenwert, oder den unteren Wert nimmt ist relativ egal. Der Spitzenwert des Drucks entspricht etwa der Flüssigkeitssäule mit Rohr+Blase, der mindestwert ist etwa der Druck wenn sich gerade eine Blase gelöst hat, also das was dem reinen Rohr entspricht.

Die Zeit für die Mittelung bzw. die Zahl der werte sollte so groß sein, dass mehr als eine Blase in der Zeit aufsteigt.

Die Mittelung so wie vorgeschlagen ist schin nicht schlecht. Auch wenn man keine explizite Exponentialfunktion drin hat, bekommt man ein2 exponetiell abnehmende Wichtung. Der neue Wert kommt dazu, und alle alten Werte werden in der Wichtung um einen konstanten Faktor (hier 1- 1/Anzahl) reduziert. Für jeden Schritt den ein Wert zurückliegt kommt einmal der Faktor dazu. Der Wert der N Schritte zurückliegt hat damit noch ein Gewicht von (1-1/Anzahl)^N.

Damit die Rechnung funktioniert muß die Auflösung der zahlen so groß sein, dass (1-1/anzahl) nicht wieder auf 1 gerundet wird.

Florian.
18.10.2009, 19:51
Genau. Korrekterweise, wenn ich den Druck bestimmen wollen würde, müsste ich den Spitzenwert nehmen. Da es mir jedoch auf keinen Zahlenwert ankommt spielt es keine Rolle. Mir geht es lediglich um zwei Schaltschwellen.

1-1/Anzahl...Ab wann wird eine Single Variable auf 1 aufgerundet? Sollte ich von diesem Punkt des Aufrundens möglichst weit wegbleiben, oder besser diesen gerade so nicht erreichen?

Egal welchen Wert zwischen 50 und 5000 ich für Anzahl nehme, eine merkliche Verbesserung des Signals erreiche ich dadurch nicht. Der Prozessor ist mit größerwerdender Anzahl nur länger mit der Mittelung beschäftigt, so dass er nicht mehr sonderlich oft vom ADC lesen kann.

Habt ihr eine Idee wie ich diesem Schwanken noch entgegenwirken könnte?

mare_crisium
18.10.2009, 21:02
Florian,

einen gleitenden Mittelwert stelle ich mir immer wie eine Warteschlange vor: Jedesmal, wenn ein neuer Messwert dazukommt, rückt die ganze Schlange einen Schritt voran und der erste (also der älteste) Messwert fällt aus der Schlange heraus. In die neue freie Stelle am anderen Ende der Schlange wird der neue Messwert eingeschrieben. Danach werden alle Werte in der Schlange zusammengezählt und durch die Schlangenlänge (Anzahl) dividiert - das ist dann der neue Mittelwert.

Der erste Schritt zur Vereinfachung besteht darin, dass man eine Variable MessWertSumme einführt, die gross genug ist, um den Wert Anzahl*maximaler_Messwert ohne Überlauf aufzunehmen. Diese Variable wird ganz am Anfang mit Null initialisiert. Jedesmal, wenn ein neuer Messwert dazukommt, bleibt das Schlangenballett dasselbe. Aber statt die Summe über alle Werte in der Schlange zu bilden, bildet man die Differenz zwischen dem Messwert, der aus der Schlange herausgefallen ist, und dem neuen und zählt diese Differenz zu MessWertSumme dazu. Um den gleitenden Mittelwert zu berechnen, braucht man jetzt nur noch MessWertSumme durch die Anzahl zu dividieren. Damit ist jetzt überflüssig geworden, die zeitraubende Summe über alle Werte der Schlange zu berechnen ;-) .

Die zweite Vereinfachung besteht darin, die ganze Schlange wegzulassen, weil man annimmt, dass die einzelnen Messwerte in der Schlange sich sowieso nicht so sehr vom Mittelwert unterscheiden. Wenn jetzt ein neuer Messwert ankommt, wird davon der alte Mittelwert abgezogen und die Differenz zu MittelWertSumme dazuaddiert. Den neuen Mittelwert bekommt man wieder, indem man MittelWertSumme durch Anzahl dividiert. Damit hat man auch noch den Speicherplatz für die Warteschlange und den Zeitaufwand für das Schlangenballett gespart ;-).

Der Code dazu könnte so aussehen:


$sim
$crystal = 16000000
$regfile = "m16def.dat"
$baud = 38400

Dim Messwert As Integer : Messwert = 512
Const Anzahl = 50 ' Anzahl Messwerte

Dim MessWSumme As Single
Dim Mittelwert As Single
Dim Mittelwert_int As Integer
Dim Temp As Single

REM der nachfolgende Teil ist IMHO überflüssig

REM Dim Zaehler As Word : Zaehler = 0

REM While Mittelwert < 511
REM Incr Zaehler
REM Temp = Mittelwert / Anzahl
REM Mittelwert = Mittelwert - Temp
REM Temp = Messwert / Anzahl
REM Mittelwert = Mittelwert + Temp
REM Print Zaehler ; ": " ; Mittelwert
REM Wend

REM 'Print Zaehler ; ": " ; Mittelwert

MessWertSumme = 0
Mittelwert = 0

Do
Input "Neuer Messwert: " , Messwert
Temp = Messwert-Mittelwert
MessWSumme = MessWertSumme+Temp
Mittelwert = MessWertSumme/Anzahl
Mittelwert_int = Mittelwert
Print "Neuer Mittelwert: " ; Mittelwert_int

Loop
End


Was meinst Du dazu?

mare_crisium

Besserwessi
18.10.2009, 21:24
Mit echten Fließkommazahlen hat man kaum ein Problem mit der Rundung. Da müßte man schon in den Bereich von Millionen kommen. Ein Porblem kann es aber werden wenn man mit Festkommazahlen rechenet und z.B. nur 8 Bit fürs Nachkomma reserviert.

Das mit dem keine Zeit finden für den ADC verstehe ich nicht so recht. Man ließt den ADC aus und verarbeitet den Wert im Filter bzw. Mittelwertbilder. Man hat also für jeden ADC wert genau einen Schritt beim Mitteln. Das einzige was sich ändert ist die Konstante.

Für die Anwendung mit der Pumpe würde ich mal davon ausgehen, dass man über 1-2 Sekunden mitteln will. Das wäre dann z.B. ein Sampling Rate für den ADC von etwa 1000 / s und dann ein Wert von Anzahl von etwa 1000-2000. Je nach geschmack kann man auch weniger Werte nehmen und dafür langsamer messen.

Florian.
18.10.2009, 23:47
Danke mare_crisum und allen anderen für ihre Mühe.

Die Erklärung war jetzt endlich einfach genug für mich um die Sache mit der gleitenden Mittelung zu verstehen. Das ist wirklich genial einfach und spart eine Menge Rechenzeit wenn man sich das aufsummieren sparen kann.

Habe deinen Beispiel Code jetzt an mein Programm angepasst und zunächst einfach Anzahl=100 benutzt und direkt so gelassen. Es kommt ein sehr gutes Ergebnis heraus. Der Wert ist sehr stabil. Auf Änderungen reagiert er trotzdem schnell genug. Die Erklärung von Besserwissi mit ca 1000 bis 2000 Messwerten über die gemittelt werden sollte klingt logisch. Ich werde auch noch ausprobieren in wiefern das besser oder schlechter für meine Anwendung ist. Mit den 100 bin ich aber auch schon sehr zufrieden.


Gruss


Florian.

recycle
19.10.2009, 03:08
@Florian
sorry, habe nicht mitbekommen, dass du über die "For I = ...." Schleife gestolpert bist.
Die gehört natürlich nicht zur Bildung des fliessenden Mittelwerts, sondern war nur dazu da das Beispiel auf eine bestimmte Anzahl Durchläufe zu begrenzen, um ein buschen herumzuexperimentieren, wie sich die Änderungen der Messwerte auf den fliessenden Mittelwert auswirken.

Ich habe mit dem Beispielcode ja wie ich glaube ich in dem anderen Thread geschrieben habe im Bascom -Simulator herumgespielt.
D.h. ich hatte keinen Sensor der mir Werte gibt und woillte auch nicht unbedingt x-mal 50 Werte manuell per Input eingeben ;-)

Die eigentliche Bildung des fliessenden Mittelwerts war in meinem Beispiel nur der folgende Code:



Const Anzahl = 50 ' Anzahl Messwerte
Dim Mittelwert As Single
Dim Temp As Single


Temp = Mittelwert / Anzahl
Mittelwert = Mittelwert - Temp
Temp = Messwert / Anzahl
Mittelwert = Mittelwert + Temp



Der Wert für Masswert kommt dann vom Sensor. Da man den Werte eines ADCs nicht direkt einer Single Variable zuweisen kann, üsste da aber noch eine zusätzliche Zeile rein, z.B.


Dim Messwert_int as Integer
Messwert_int = getAdc(x): Messwert = Messwert_int

Mit dem Zeilen die mare_crisum in meinem Code als überflüssig bezeichnet hat, hat er natürlich völlig recht.

Die gehören auch nicht zur Bildung des fliessenden Mittelwerts.

Der obere Teil meines Beispielcodes sollte nur veranschaulichen, wieviele Durchläufe man bem fliessenden Mittelwert braucht, bis sich tatsächlich der Mittelwert einstellt.

Wenn du einen Fliessenden Mittelwert über 1000 Werte bildest, wird bei jeder neuen Messung 1/1000 vom bestehenden Mittelwert abgezogen und der neue Messwert/1000 hinzuaddiert.

D.h. wenn das Programm mit einem Mittelwert von 0 anfängt, und bei der 1. Messsung nur 1/1000 des Messwertes hinzuaddiert, ist das ja noch lange nicht der Mittelwert.
Der stellt sich erst nach X*1000 Messungen ein.

D.h, der erste Teil meines Beispielcodes hat erst mal soviele Durchläufe gemacht, dass der fliessende Mittelwert auch tatsächlich dem Mittelwert entspricht und dann als "Zaehler" ausgegeben, wieviel Durchläufe das sind.

Der zweite Teil hat dann berechnet, wie sich der fliessende Mittelwert über 50 Werte ändert, wenn 50 gleiche neue Werte hinzukommen.
Das ganze war wie gesagt nur ein Beispiel um durch "Spielen" im Bascom Simulator ein bischen Gefühl für den fliessenden Mittelwert zu bekommen.

cmock
19.10.2009, 12:28
Ob man jetzt den Spitzenwert, oder den unteren Wert nimmt ist relativ egal. Der Spitzenwert des Drucks entspricht etwa der Flüssigkeitssäule mit Rohr+Blase, der mindestwert ist etwa der Druck wenn sich gerade eine Blase gelöst hat, also das was dem reinen Rohr entspricht.

ich befürchte, daß es in wirklichkeit noch komplizierter ist -- einerseits hängt der spitzenwert des drucks vermutlich teilweise von der oberflächenspannung der blase und damit von der zusammensetzung der abwässer ab, und wenn die blase wegblubbert, wird die luftsäule im meßrohr etwas schwingen.

inwieweit diese effekte von der größenordnung her relevant sind, ist eine frage, für die mir das physikalische hintergrundwissen fehlt.

ich würde aber, wenn ich florian wäre, die messgenauigkeit jedenfalls einmal mit unterschiedlichen abwasserzusammensetzungen durchtesten. theoretisch jedenfalls, ist ja nicht meine nase, die da involviert wäre :-)

ciao,

cm.

Florian.
19.10.2009, 17:46
Die eigentliche Bildung des fliessenden Mittelwerts war in meinem Beispiel nur der folgende Code:



Const Anzahl = 50 ' Anzahl Messwerte
Dim Mittelwert As Single
Dim Temp As Single


Temp = Mittelwert / Anzahl
Mittelwert = Mittelwert - Temp
Temp = Messwert / Anzahl
Mittelwert = Mittelwert + Temp




Ich war mir schon bewusst, dass du dir die Messwerte künstlich generiert hast und, dass dein Code dazu gedacht war so eine Situation zu simulieren. Ich habe auch tatsächlich nur die For Schleife nicht entfernt, weil ich ihren Sinn und auch die ganze gleitende Mittelung inkl. der vereinfachenden Annahmen, die zu dieser einfachen Methode führen, nicht ganz verstanden hatte.

Durch Eure ausführlichen Schilderungen glaube ich aber mittlerweile, dass mir das Prinzip klar geworden ist. Es ist, wie auch Manf schon im 1. Thread zu diesem Thema immer gesagt hat, wirklich eine sehr schöne und extrem einfache / ressourcensparende Methode. Das kann ich aber erst jetzt wirklich nachvollziehen :)

@cmock:

Ja da sprichst du Dinge an, die ich mit meinem ebenfalls nicht uneingeschränkten physikalischen Verständnis nachvollziehen kann. Die Gleichung scheint sehr viele Unbekannte zu haben. Aber ist für mich ziemlich irrelevant. Mir gehts schließlich nur um 2 Schaltschwellen. Ob die Grube nun heute 10cm voller wird bis abgepumpt wird als gestern mit anderer Abwasserkonsistenz spielt keine Rolle. Wichtig ist nur, dass sie weder überläuft, noch die Tauchpumpe längere Zeit trocken läuft. Aber da habe ich genügend Spielraum einkalkuliert. Diese auszuwechseln stelle ich mir dann wirklich als unschöne Arbeit vor. Bisher konnte ich meine ganzen Versuche schön am anderen Ende des Luftschlauches einige 10m entfernt von der Grube im Schaltschrank durchführen. Und ich möchte es auch gerne dabei belassen: )