Ansteuerung einer Abfüllpumpe (Brushless DC-Motor) mittels GUI auf Raspi. Fragen zur Hardware

  • Hallo zusammen,


    meine Name ist Stefan, ich bin 43 Jahre jung und komme eigentlich vom Maschinenbau.


    Als Hobby-Projekt hab ich nun vor, mir (bzw. für einen Kollegen) eine Abfüllpumpe zu bauen und ansteuern zum Abfüllen bzw. Dosieren diverser Flüssigkeiten.

    Im Prinzip soll so etwas Ähnliches wie dies hier dabei herauskommen: Video Abfüllpumpe von Fa. Fillogy/Nassenheider ,

    jedoch mit einem "schöneren" GUI für einfachere Bedienung für den Endanwender.


    Für den Antrieb der Pumpe habe ich einen 24V Brushless-DC-Motor incl. Treiber: http://www.wantmotor.com/product/8015a.html vorgesehen.

    Der Motor-Treiber hat 5 Volt TTL-Ein- und Ausgänge für diverse Signale. Der Motor hat 3 Hall-Sensoren, die pro Umdrehung 16 Impulse an einen Ausgang liefern.

    Die Drehzahl des Motors kann man über ein analog (0-5V) bzw. PWM-Signal steuern.


    Ich möchte nun den Motor ansteuern und verschiedene Abfüll/Dosiermenge entweder über eine zeitliche Ansteuerung oder über die Anzahl der Motorumdrehungen realisieren, d.h. entweder den Motor über eine definierte Zeit ansteuern oder über eine definierte Anzahl an Motorumdrehungen. Für letzteres muss ich die Impulse zählen.

    Der Motor kann laut Datenblatt 3000 U/min, bei 16 Pulsen pro Umdrehung wären das maximal 800 Pulse pro Sekunde, die ich sicher erfassen müsste.

    Meine gewünschte Abfüllgenauigkeit entspricht ca. einer halben Motorumdrehung.


    Ich habe mir schon mehrere Gedanken gemacht, wie ich das ganze am besten umsetze.


    Den Motor selbst habe ich mit einem Arduino zum Laufen bekommen, da ich aber ein "schönes" GUI will, komme ich mit dem Arduino nicht weit.

    Daher bin ich beim Raspberry Pi gelandet, da dieser aber "nur" 3 Volt an den GPIO-Ports kann, habe ich mir in einem Schnellschuss das hier bestellt: SPS-Modul PiXtend V2

    Also eine SPS-Steuerung auf Basis eines Raspberry Pi. Nur habe ich festgestellt, dass das ganze zum Impulse zählen für meine Anforderungen wahrscheinlich zu langsam ist (die Kommunikation der SPS-Karte mit dem Raspi läuft über den SPI-Bus). Also brauche ich doch einen separaten Microcontroller zumindest zum Zählen der Impulse?


    Meine Überlegungen gehen jetzt in folgende Richtung: Zählen der Impulse des Motors mit einem Arduino (evtl. auch gleich Ansteuerung des Motors), Anbindung und Kommunikation des Arduino mit dem Raspi über Serielle Schnitstelle (USB) und Darstellung des GUI über den Raspi...


    Macht das halbwegs Sinn, oder gibt es bessere Vorschläge?


    Besten Dank,


    Gruß Stefan

  • Anbindung und Kommunikation des Arduino mit dem Raspi über Serielle Schnitstelle (USB)

    USB ist unnötig. Den Arduino mit 3.3V Pegelwandler direkt an den Raspi hängen. Entweder Uart, SPI oder I2C. Wobei Uart am einfachsten geht, aber timingkritisch ist (der Arduino-Takt passt nicht gut zu hohen Uart-Taktraten). SPI geht am schnellsten.


    Ich würde den Raspi die Abfüllmenge an den Arduino schicken lassen und den Arduino die Zählung und Motorsteuerung überlassen.

  • USB ist unnötig. Den Arduino mit 3.3V Pegelwandler direkt an den Raspi hängen. Entweder Uart, SPI oder I2C. Wobei Uart am einfachsten geht, aber timingkritisch ist (der Arduino-Takt passt nicht gut zu hohen Uart-Taktraten). SPI geht am schnellsten.

    was meinst Du mit "unnötig" bzw. was spricht gegen USB? Mir sind die genauen Vor- und Nachteile der genannten Anbindungen / Protokolle nicht geläufig.

    USB ist für mich auf den ersten Blick halt einfach zu realisieren: Verbindungskabel rein und fertig. Zudem wird der Arduino so gleichzeitig mit Spannung versorgt...


    Generell:

    auf einen separaten Microcontroller zur Erfassung der Pulse werde ich nicht verzichten können, richtig?


    Ich hatte gehofft, das ganze ausschließlich mit dem Raspi steuern zu können. Die Ausgänge des PiXtend-Boards "können" ja 5 Volt, damit kann ich den Treiber des Elektromotors ansteuern, aber die Pulse werde ich in dieser Frequenz wohl nicht zuverlässig direkt mit diesem PiXtend erfassen können?

  • Ich hatte gehofft, das ganze ausschließlich mit dem Raspi steuern zu können.

    Und was spricht degegen, das Ganze umzudrehen und einen Schrittmotor zu verwenden?

    Über ein Treiberboard kannst Du dann schrittgenau dosieren ... wobei Du imho nicht einfach "annehmen" solltest, dass das passt, sondern da würde ich zumindest noch eine Wägezelle drunter platzieren, falls das "Magazin" mal leer ist oder sich was verklemmt.

    cu,

    -ds-

  • Und was spricht degegen, das Ganze umzudrehen und einen Schrittmotor zu verwenden?

    ja, einen Schrittmotor zu verwenden hatte ich auch schon überlegt.

    In dem oben verlinktem Video wird (nehme ich an) auch ein Schrittmotor verwendet, am Ende jeden Abfüllvorgangs dreht der Motor ja geschätzte 5° Rückwärts um die Abfülldüse zu entlasten bzw. ein Tropfen zu verhindern.

    "Problem" eines Schrittmotors ist aber, dass der in der maximalen Drehzahl begrenzt ist, und wenn ich größere Abfüllvolumina habe, dauert das dann zu lange. Ich würde gerne zwischen 100 ml und 5 Liter pro Abfüllvorgang dosieren.

    Wahrscheinlich ist diese Spreizung zu groß um das sinnvoll umzusetzen und ich werde am Ende doch zwei separate Pumpen brauchen.


    Den Motor den ich im Augenblick gewählt habe ist ein Kompromiss aus "Genauigkeit" (16 Pulse pro Umdrehung zum Ansteuern kleiner Abfüllmengen) und großer Abfüllgeschwindigkeit (3000 U/min für größere Abfüllmengen).


    Ich habe keine Ahnung, ob meine im Augenblick gewählte Hardware (der E-Motor und mein Pumpenkopf) letztendlich meinen Anforderungen (Abfüllgenauigkeit auf der einen Seite und maximalem Volumenstrom auf der anderen Seite )entsprechen, hierfür müsste ich das ganze erstmal zum Laufen bringen und dann Abfülltests fahren.


    Dafür muss ich das ganze aber erstmal prinzipiell zum Laufen bringen :conf:


    Und: was würde sich mit einem Schrittmotor prinzipiell an der Ansteuerung bzw. Software ändern?

  • Und: was würde sich mit einem Schrittmotor prinzipiell an der Ansteuerung bzw. Software ändern?

    Naja ... dem Schrittmotor-Controller schickst Du zwanzig Pulse für zwanzig Schritte ... Ende ...

    Um den Rest kümmert sich der Controller ... da brauchst Du nix zählen.

    Wegen des Duchfluss: ein Vorsatz-Getriebe mit passender Unter/Übersetzung für einen bestimmten Bereich (z.B. 0 bis 1l, 1l bis 2l ...), das Du dann als variablen Parameter in die Steuerung einträgst.


    //EDIT: grobe Eckdaten für die Baugrösse/Leistung findest Du unter dem Stichwort NEMA ( z.B. hier -> https://de.wikipedia.org/wiki/…tmotor#Baugr%C3%B6%C3%9Fe )


    cu,

    -ds-

  • was spricht gegen USB?

    Nagut, beim Arduino mit USB-Anschluss isses schon dabei, sonst bedeutet RS232 halt immer noch Umsetzung über zwei zusätzliche Konverter. Ich programmiere ATmega direkt ohne Arduino-Umweg, daher ist das nicht so mein Ding.


    auf einen separaten Microcontroller zur Erfassung der Pulse werde ich nicht verzichten können, richtig?

    Doch, gibt auch Counter mit Parallel, Schieberegister, SPI oder I2C Anbindung. Das ist dann oldschool einfach ein Zähler, den der Raspi abfragt, bei Erreichen des Zählerstandes den Motor abstellt und den Zähler zurücksetzt. Vorteil: Einfach dranhängen, muss nicht programmiert werden. Nachteil: Der Raspi muss den trotzdem regelmäßig pollen. Kann aber keine Zählimpulse verlieren.


    ein Schrittmotor verwendet, am Ende jeden Abfüllvorgangs dreht der Motor ja geschätzte 5° Rückwärts um die Abfülldüse zu entlasten bzw. ein Tropfen zu verhindern.

    Hint: Man kann DC- und BLDC-Motore auch in der Drehrichtung ändern. Hab ich mal bei einer Schlauchpumpe gemacht, um ein Tropfen zu verhindern.


    Deine Impellerpumpe - verdammt, das Ding heisst Flügelzellenpumpe, ein Impeller ist eigentlich was ganz anderes - mag Rückwärtsdrehen eher nicht.


    "Problem" eines Schrittmotors ist aber, dass der in der maximalen Drehzahl begrenzt ist

    Ein ordentlicher Schrittmotor mit ordentlicher Ansteuerung kann locker genug Drehzahl aufbringen, um Deine Pumpenflügel in viele kleine Silikonkrümelchen zu zerlegen.


    was würde sich mit einem Schrittmotor prinzipiell an der Ansteuerung bzw. Software ändern?

    Arduino. Vergiss das mit Schrittmotoren am Raspberry. Es sei denn Du willst Echtzeitbetriebssystem auf dem Raspi fahren, und dann kannst Du diesen Kram mit GUI und so vergessen.


    Wenn da einer auf dem Display drückt: Was soll der Raspi jetzt machen. Weiter Schritte produzieren oder die GUI neu aufbauen? Das kann man vom Timing in den Griff bekommen, aber heutzutage würde ich mir das nichtmehr antun. Sauber trennen: Der Raspi macht die Vorgaben, der Arduino steuert Motor und zählt Impulse und meldet am Ende an den Raspi zurück.


    dem Schrittmotor-Controller schickst Du zwanzig Pulse für zwanzig Schritte

    Und hoffst drauf, dass der Motor die auch alle ausführt und keine Schrittfehler auftreten und die Pumpe nicht blockiert. Es gibt einen Grund, warum selbstgebastelte CNC-Tische mit Schrittmotoren fahren, während die Industrie DC- oder BLDC-Motore mit Encodern einsetzt.


    Allerdings würde ich in dem Fall auch zum Schrittmotor greifen, zumal ich nicht glaube, dass man den Schrittmotor an die Drehzahlgrenze bringt, bevor es den Gummi zerlegt.


    Schrittmotore sind lauter.

  • Und hoffst drauf, dass der Motor die auch alle ausführt und keine Schrittfehler auftreten und die Pumpe nicht blockiert. Es gibt einen Grund, warum selbstgebastelte CNC-Tische mit Schrittmotoren fahren, während die Industrie DC- oder BLDC-Motore mit Encodern einsetzt.

    Hier geht's um eine "Pumpe" ... da kannst Du Dich auf gar nichts verlassen, deshalb schrieb ich ja auch


    wobei Du imho nicht einfach "annehmen" solltest, dass das passt, sondern da würde ich zumindest noch eine Wägezelle drunter platzieren, falls das "Magazin" mal leer ist oder sich was verklemmt.

    cu,

    -ds-

  • da würde ich zumindest noch eine Wägezelle drunter platzieren, falls das "Magazin" mal leer ist oder sich was verklemmt.

    Prinzipiell sicher keine schlechte Idee, so kann man auch gleich prüfen ob das Abfüllgewicht im Toleranzbereich ist. Allerdings soll anscheinend von Hand abgefüllt werden, so dass ein leeres Magazin auffallen dürfte.

  • Heissa, da bin ich wohl im richtigen Forum gelandet :bravo2::thumbup:


    Also... ich fasse mal zusammen, was ich bisher verstanden habe: Ihr würdet für meinen Fall einen Schrittmotor nehmen.

    Den Motortreiber über Arduino ansteuern, GUI auf Raspi..

    Ein ordentlicher Schrittmotor mit ordentlicher Ansteuerung kann locker genug Drehzahl aufbringen, um Deine Pumpenflügel in viele kleine Silikonkrümelchen zu zerlegen.

    so... kannst Du "ordentlich" für diesen Fall etwas näher definieren?


    ich wollte folgenden Flügelzellen-Pumpenkopf verwenden: ZUWA Nirostar Impellerpumpen (Nirostar 2001 A ohne Motor).

    Bezüglich benötigter Leistung des E-Motors: ich hatte mal versucht, die benötigte Leistung an der Pumpenwelle rechnerisch zu überschlagen, bin allerdings kläglich gescheitert, da kamen irgendwelche unplausiblen Werte um mehrere Potenzen zu klein dabei raus.

    Der Hersteller bietet die Pumpen ja mit verschiedenen Motoren an, der DC Motor für "meinen" kleinen Pumpenkopf hat 250 W. Daran kann ich mich ja grob orientieren.


    Kannst Du mir Schrittmotoren empfehlen bzw. worauf ich achten muss wenn es ein "ordentlicher" sein soll?

    Wenn der maximal 2000 Umdrehungen macht, würde es mir schon reichen.

  • Den Motortreiber über Arduino ansteuern, GUI auf Raspi..

    Nö ... den Motortreiber direkt über den Raspi ansteuern ...


    //EDIT: grobe Eckdaten für die Baugrösse/Leistung findest Du unter dem Stichwort NEMA ( z.B. hier -> https://de.wikipedia.org/wiki/…tmotor#Baugr%C3%B6%C3%9Fe )


    EInfach mal umrechnen ...

    cu,

    -ds-

  • Prinzipiell sicher keine schlechte Idee, so kann man auch gleich prüfen ob das Abfüllgewicht im Toleranzbereich ist. Allerdings soll anscheinend von Hand abgefüllt werden, so dass ein leeres Magazin auffallen dürfte.

    jepp :thumbup:

    Die ganze Sache soll für einen Bekannten von mir sein (der ist nicht in Deutschland, der sitzt in einem 2. Welt Land unter Palmen :-)

    zur Zeit füllen die alles händisch ab. Ideen hab ich mehr als genug, allein an der Umsetzung hapert es...


    Ich hatte mal bei der Firma aus dem oben verlinkten Video angefragt; haben wirklich schöne Sachen. Allerdings sind die Preise auch dementsprechend... Und die Bedienung mit dem fummeligen Display und die Menüführung ist m. M. nicht schön gelöst...

  • EInfach mal umrechnen ...

    Danke, die Einteilung nach "NEMA" Norm ist mir mehr oder weniger bekannt. Meines Wissens normiert die aber hauptsächlich die Baugröße der Motoren. Den Schrittmotoren, die ich bisher gefunden habe, gehen aber meist bei 500 - 1000 Umdrehungen die Puste aus, d.h. das Drehmoment fällt stark ab (ich glaube mich an irgendwelche Diagramme zu erinnern, die das zeigten).

    Ein Getriebe möchte ich wenn irgend möglich vermeiden. Scharlih sprach ja davon, dass ein "ordentlicher" Schrittmotor genug Drehzahl aufbringt, um meine Pumpenflügel zu zerbröseln … sowas brauch ich :thumbup:

    Daher meine Frage, was ist "ordentlich"? Das Thema Schrittmotor ist im Detail neu für mich und ich dachte bisher wie erwähnt dass Schrittmotoren über ca. 1000 Umdrehungen nur noch wenig Drehmoment aufbringen.

    Such ich jetzt einfach irgendeinen NEMA 23 vom Chinamann, oder gibt's da was Besseres?

  • den Motortreiber direkt über den Raspi ansteuern

    An welchen Motortreiber zum Beispiel dachtest Du da?


    der DC Motor für "meinen" kleinen Pumpenkopf hat 250 W. Daran kann ich mich ja grob orientieren.

    Ja klar, bei 50m Förderhöhe = 5bar Druck, oder 30l/min. Meine Brunnenpumpe hat 5bar bzw. 60l/min und braucht dafür 900W. Das kann schon hinkommen, für klares Wasser.


    Aber weder brauchst Du 5bar noch willst Du da mit 30l/min abfüllen. Da wäre so ein 250ml Glas in 0.5sec voll. Ich weiss ja nun nicht, was da abgefüllt wird, aber eventuell sind die auftretenden Druckgradienten an der Düse sehr ungesund für den Inhalt.


    Für die erforderliche Leistung sind vor allem entscheidend: Fördermenge, Gegendruck an der Düse, Viskosität des Mediums. Mach dazu realistische Abschätzungen und dann kann man schauen was der Motor leisten muss, plus Aufschlag für Reibung und Anlaufmoment.

  • Anbei mal noch einige Gedanken, die mir so durch den Kopf gingen, als ich gerade über den Thread stieß.


    Problemstellung vs. passendem Aktor

    Zwischen BL-Motor (oder auch "normalen" Motoren - ich bleibe mal beim Wort BL) und dem Schrittmotor besteht regelungstechnisch ein logischer Unterschied. BL-Motoren besitzen grundsätzlich zunächst eine innere Geschwindigkeitsregelung. Will man positionieren, so bedarf es einer weiteren Regelungskaskade - eben der eines Positions- oder Lagereglers. Oder anders ausgedrückt. Geschwindigkeitswerte lassen sich relativ einfach regeln, positionieren erfordert einen höheren Aufwand.

    Nachdem das Dosierproblem eher dem eines Positionierproblemes gleicht - es soll ja nicht ein Volumenstrom geregelt werden, sondern ein Volumen oder eine Masse erreicht werden, wäre der Schrittmotor aus rein theoretischer Sicht der naheliegendere Aktor für dieses Problem.


    Kinematik

    Das mechanische System besitzt eine gewisse Trägheit und Dämpfung. Wie hoch diese ausfallen, liegt im Aufbau begründet und vermutlich ein wenig im zu fördernden Fluid. Hinzu kommen je nach zu fördernder Viskosität und Strömungsverhalten (laminar/turbulent) u.U. nichtlineare Eigenschaften der Regelstrecke. Ich würde hernach vermuten, daß der BL-Controller nicht einfach mit einer konstante PWM-Frequenz für alle Anwendungen (kleine/große Fördermenge; niedrige/hohe Viskosität) beaufschlagen werden kann. Ergo wird man sich mit der Thematik der Beschleunigung und des Abbremsens beschäftigen müssen. Möglicherweise wird auch das Drehmoment des Motors drehzahlabhängig ausfallen, was sich wiederum ungünstig auf die Positionsregelung auswirkt. Bei einem reinen Impulszählen wird man bei einem dynamischen System nicht einfach den PWM abschalten können und dann hoffen, daß der Motor schlagartig stehenbleibt.

    Der Schrittmotor besitzt naturgemäß ein recht hohes Haltemoment. Sein Drehmoment sinkt mit steigender Geschwindigkeit. Betreibt man ihn nun innerhalb seines Drehmomentvermögens, so reicht wahrscheinlich eine Steuerung. Selbst beim Verlust einiger Impulse reden wir bei vielen Schrittmotoren von 200 Impulsen pro Umdrehung gegenüber dem Impulsgeber des o.g. BL, welcher nur 16 Impulse pro Umdrehung liefert.


    Zählvermögen

    Impulse von 800 Umdrehungen/s mit dem Raspi nebst Betriebssystem (sicher und ohne höheren Aufwand) zu zählen, wird nicht klappen. Ich hatte >>> hier <<< mal etwas zu einer solchen Drehzahlmessung mittels Hallsensoren geschrieben. Der µC kann das besser. Ebenso kann der µC auch gleich die PWM generieren. Wenn er nun noch einen Positionieralgorithmus besäße, der ein einfaches Protokoll zum Raspi spräche, dann wäre man vermutlich recht nah am Ziel.


    Das Positioniersystem mit einfacher serieller Schnittstelle

    ... gibt es schon (und vermutlich nicht nur eines). Und zwar für 3d-Drucker bzw. kleine CNC Basteleien. Eines heißt Marlin, treibt auch mehrere Schrittmotoren und läuft u.a. auf einem Arduino. Wie's der Kuckuk will, kam gestern der Postbote vorbei und brachte mir ein RAMPS 1.4 Board mit Display. Auf dieses kann man die open Source SW Marlin aufspielen, welche ein serielles G-Code Interface besitzt. Dieses wird u.a. von Octoprint oder dem manuellen Steuerinterface von Slicern verwendet. Die Positionierbefehle erlauben dabei nicht nur die Angabe der Zielposition sondern auch die Angabe der Geschwindigkeit und Beschleunigung. D.h. - sollten die dynamischen Werte eines Schrittmotors ausreichend für die Dosierungsaufgabe sein, dann wäre die Positionsregelung vermutlich "schon da". Anbei mal ein Bildchen:


    Ein weiteres Goodie - Die Marlin SW besitzt Unterstützung für SD-Karten. Man könnte also Abfüllaufträge als G-Codedateien auf eine SD-Karte laden und diese ohne weiteren PC oder Raspi standalone an der Anlage "abfahren". Ob das benötigt wird, ist natürlich eine andere Frage...


    Anmerkung - ich habe die FW gestern nur kurz angetestet und weiß nicht, wie sich Positionsangaben ohne "Home-Befehl" rücksetzen lassen. Im Unterschied zur CNC Maschiene will man ja nicht innerhalb eines Wegintervalles vor und rückwärts fahren, sondern vornehmlich immer weiter in die gleiche Richtung drehen. Nach einem Dosiervorgang wäre also ein Reset der Position auf "0" notwendig, ohne das sich der Motor dabei bewegen sollte. Vielleicht kann hier jemand weiterhelfen, der schon mehr Erfahrung damit gesammelt hat?! Dafür gibt's doch sicher auch einen G-Befehl?!


    Die Sackgassen

    Ab einem gewissen Volumenstrom wird Schluß sein mit dem sehr einfachen und unkomplizierten Ansatz per RAMPS/Marlin/Schrittmotor (es könnten auch bis zu 5 Motoren parallel sein). Das liegt schlichtweg in der begrenzten Antriebsleistung der durch das RAMPS (bzw. der Stepper-Treiber) steuerbaren Schrittmotoren. Sinngemäß gilt das auch für einen BL-Antrieb, jedoch suggeriert der TE ja bereits selbst, daß er Durchsatzprobleme beim Stepper kommen sieht...

    Pixtend - die zweite Sackgasse. Auf den ersten Blick hin schaut die HW eigentlich ganz sinnvoll aus. Ein Atmel µC, ein Raspi und ein hübsches Web-Frontend nebst exzellenter "Programmierumgebung" mittels CODESYS. Das nützt nur nichts, weil Pixtend nicht vorsieht, daß ein digitaler Eingang als Zähleingang verwendet werden kann. Das kann man zwar umgehen, indem man die Firmware des Pixtend modifiziert, nur weiß der CODESYS-Treiber dann nichts in seinem SPI-Protokoll von dieser Modifikation. Dann kann der µC zwar (per Hardwarecounter) hübsch zählen, die schöne CODESYS Umgebung bekommt davon aber nix mit! Hinzu kommt vermutlich noch, daß man die Hallsensoren elektrisch an die Eingänge Pixtends anpassen muß. Hier könnte aber ein Umstieg auf die analogen Eingänge (anstelle der digitalen) das Leben vereinfachen (das aber dann auch nur, solange der µC sonst nichts anderes macht). Also ähnlich meiner oben referenzierten Drehzahlmessung per Raspi.


    Der verflixte (hohe) Volumenstrom

    ... bleibt in jedem Fall ein Problem, egal, welchen Antrieb man verwendet. Am Ende ist es nur eine Frage der pro Lösung erreichbaren Durchsätze. Ich würde im Zweifelsfall überlegen, mit einer zweistufigen Lösung zu fahren. Eine Grobdosierung (bis zu etwa 95%) und eine Feindosierung (für die restlichen 5%). Die Menge wird, wie dreamshader bereits schrieb, per Wägung erfaßt. Ob man es bei der Wägung der Grobdosierung beläßt, den Restbetrag errechnet und dann per Steuerung bis zum Ziel zudosiert, oder alles auf einer Wägung abstellt (Schwingungsgefahr bei gleichzeitiger Dosierung und Gewichtsermittlung), wird sich dann schon zeigen...

  • Hi schnasseldag ,

    krass ... wieder eine Abhandlung von Dir ;)


    Nun, wenn ich mir die bisherigen Zielvorgaben anschaue:


    Meine gewünschte Abfüllgenauigkeit entspricht ca. einer halben Motorumdrehung.

    also ausgehend von der Ursprungs-Idee mit dem "normalen" Motor bekommt man das imho allein schon durch die Schrittzahl hin.

    Das mit der Wägezelle war nur eine Idee zur Ermittlung von Störungen. Lichtschranke zum checken der Füllhöhe oder auch Ultraschall wäre evtl. auch eine Maßnahme. Aber da sind die Vorgaben zu ungenau ...


    jedoch mit einem "schöneren" GUI für einfachere Bedienung für den Endanwender.

    GUI schliesst für mich eine Oberfläche an einem µC erst mal aus. Zumal der µC dann nur dafür notwendig wäre, und der TO dafür einen Raspi einsetzen möchte, was ich in diesem Zusammenhang als effektiver und auch sinnvoller halte.

    Ein schönes GUI auf z.B. einem Arduino wäre mir zudem viel zu aufwändig und würde praktisch die gesamten Resourcen des µC fressen.


    An welchen Motortreiber zum Beispiel dachtest Du da?

    Es ist müssig, sich Gedanken über den Controller zu machen, ohne die Kenndaten des Motors zu wissen.

    Aber so was in der Art wie z.B. das -> BigEasy <- Treiberboard sind auch mit einem Pi gut zu handeln. Die Latenzzeiten, die evtl. auftreten können, dürften sich nicht bemerkbar machen.


    Was die Durchflussmenge betrifft: da wirst Du bei einem Stepper imho nicht um ein mehrgängiges stufiges Getriebe herumkommen. Aber als Maschinenbauer sollte das ja kein Problem sein.


    Ansonsten: Parameter in einer SQLite Datei, eine schicke Web-Oberfläche und bingo ...


    cu,

    -ds-

  • hui... jetzt geht's los.


    Ok, ich wollte im ersten Post nicht gleich mit allen Details langweilen, zu lange Posts liest eh keiner...


    Das abzufüllende Gut ist in erster Linie Joghurt (geimpft aber noch nicht durchgesäuert, d.h. das Medium ist noch flüssig. Der Einfachheit halber kann man die Viskosität von Wasser annehmen). Ansaughöhe für die Abfüllpumpe wird maximal 2 m sein.

    Zur Zeit füllen wir in mehrere Gebindegrößen ab: von 100 ml Gläser, 500 ml Becher, 1 Liter Eimer bis zu 5 Liter Eimern.

    Das wird zur Zeit alles per Hand (Messbecher) bzw. bei den Eimern per Schwerkraft (per Ablasshahn aus dem Vorratstank) gefüllt.

    Abfüllmenge pro Tag sind zur Zeit ganz grob ca. 100-200 von den 100ml Gläsern bzw. 100 5-Liter Eimern und alles zwischendrin.


    Das ganze wollen wir irgendwie automatisieren. Dann schaut man sich auf dem Markt um, was es da für Abfüll-Lösungen gibt. Meistens Großindustrie, für uns nicht tauglich. Auf der "Kleinen" Seite gibt es u. A. die von mir im ersten Beitrag verlinkte Firma, die ein großes Portfolio an Abfüll-Lösungen für Kleinbetriebe anbietet. Das ganze ist modular aufgebaut, d.h. es gibt einen Antriebsblock/Modul mit Motor und integrierter Steuerung, an die man je nach abzufüllendem Medium verschiedene Pumpenköpfe (Flügelzellen, Zahnrad, Schlauch…) montieren kann.

    Dazu gibt's Drehtische und sonstige Automatisierungen. Schicke Lösungen, für uns nicht bezahlbar.


    Das "Elegante" an deren Abfülltechnik finde ich, dass die komplett ohne Durchflussmesser auskommen (was nicht da ist, geht nicht kaputt und verdreckt nicht > Hygiene).

    Bei jeder neuen Abfüll-Charge muss daher die Anlage "kalibriert" werden: D.h. ich gebe die gewünschte Abfüllmenge ein, die Anlage dosiert mir ein erstes Gebinde (mit annähernd der Menge, irgendwo abgespeichert), ich stelle das auf die Waage und gebe das eben abgefüllte Gewicht ein. Die Software bildet die Differenz und interpoliert / adaptiert die neue Abfüllmenge.

    Das Schöne daran ist, dass mich dann Viskosität und Fluiddynamische Einflüsse quasi nicht interessieren. Von dem jetzt abzufüllendem Medium entsprechen halt x Umdrehungen (bei vorgegebener Drehzahl / Rampe) zum Beispiel 250 Gramm.... (Hinweis: ich nehme an, dass die Umdrehungen der Pumpe zählen, das ganze könnte natürlich auch zeitgesteuert sein).


    So, das ist der Status Quo.

    Ich möchte nun eine Abfüll/Dosierpumpe bauen, mit der ich irgendwie dort hinkomme. Der Pumpenkopf ist gegeben (Impeller/Flügelzellen, da die verlinkte Firma für Yoghurt mit Fruchtstücken auch so einen Pumpenkopf verwendet).

    Als Abfüllgenauigkeit wäre +/- 2% schön.

    An einem sinnvollen Antrieb (was für einE-Motor /Steuerung) knobel ich ja schon eine Weile rum, habe da aber keine Erfahrung.


    Die Spreizung meiner gewünschten Abfüllmenge zusammen mit der Abfüllgenauigkeit EDIT: und zusammen mit der Abfüllzeit (kleinstmöglich) wird wohl eine große Herausforderung.


    Bezüglich maximaler Volumenstrom muss man das dann in der Praxis für jede Gebindegröße testen, wieviel in der Realität funktioniert.

    Wenn ich eine genaue Anzahl an Umdrehungen als Grundlage für die Dosierung nehme (d.h. zielgenaues Positionieren), wird eine Rampe sicherlich Sinn machen (Absenken der Drehzahl ab z.B. 80% der vorgegebene Füllmenge, so dass der Motor dann zielgenau stoppen kann).

    Das muss man natürlich alles in der Realität ausprobieren....



    Edit: Schreibfehler korrigiert

    Einmal editiert, zuletzt von Bulli ()

  • Ok ... also wenn das in der Lebensmittel-Branche zum Einsatz kommen soll, dann würde ich erst mal die Rahmenbedingungen überprüfen ...

    Kann leicht sein, dass Du Deine Idee dann gleich in die Tonne hauen kannst, weil die benötigten Zulassungen den finanziellen Rahmen sprengen (z.B. weil das eine "Insellösung" ist, die komplett als Unikat abgenommen werden muss).


    //EDIT: und mit Deiner Genauigkeit von 1/2 Umdrehung sehe ich da auch schwarz ...



    cu,

    -ds-