Automatisierte Lagerhaltung - Ein Anfängerprojekt mit vielen offenen Fragen

  • Hallo alle zusammen :wink:




    Ich bin neu im Forum, möchte mich und mein aktuelles Projekt kurz vorstellen und würde mich freuen wenn der ein oder andere mir mit Rat währenddessen zur Seite stehen könnte.



    Raspberry (und Arduino) und die damit verbundenen Möglichkeiten haben mich schon lange begeistert, allerdings habe ich nie die Zeit gefunden mich tiefer in das Thema einzuarbeiten

    ... doch das soll sich nun ändern :^^:


    Da ich beruflich aufgrund der aktuellen Corona-Lage momentan recht wenig zu tun habe, hat mir mein Chef grünes Licht für ein Projekt gegeben dass ich schon länger realisieren wollte.




    Das Projekt:



    Hierbei handelt es sich um ein bereits existentes Regal mit etwa 25 Fächern, dass so umgebaut werden soll, dass es die Anzahl der in den Fächern befindlichen Teile erfasst und diese Daten in unser Firmennetzwerk stellt...


    (und das ist der für mich schwierige Teil, bei dem ich vielleicht hier und da ein bisschen Unterstützung gebrauchen könnte :daumendreh2:)


    ... Mein Arbeits-PC soll diese Daten dann bei jedem Bauplan der erstellt wird abfragen und die Teile "virtuell reservieren", bzw. wenn die Anzahl der Objekte zu gering ist, die Fehlmenge von Objekt XY für die nächste Materialbestellung vormerken (Der Part stellt zum Glück kein Problem dar).




    Und so hab ich mir das gedacht:



    Für jedes Fach des (Holz-)Regals wird ein weiteres Fach gebaut das in das Fach kommt (also ein Fach im Fach).

    Zwischen den Fächern wird eine (billig-China-)Wägezelle verbaut.

    Die Wägezellen liefern Ihr Signal dann an Hx711 A-D Wandler.

    Diese widerrum senden Ihr Digitales Signal an den Raspberry Pi (4).

    Der Raspberry wertet die Signale aus und schreibt sie in eine .ini oder .txt Datei in den Netzwerkordner.


    Wie es dann genau weiter gehen soll habe ich mir noch nicht überlegt ... es soll bis dahin erstmal klappen :conf:



    Für mich noch ungeklärte Fragen:



    -Wie schließe ich soviele Hx711 an nur einen Raspberry? Die GPIO's sind dafür ja leider viel zu wenige.

    Hatte mir schon überlegt dass immer nur das Signal eines Fachs gleichzeitig beim Raspberry Pi ankommt und der Raspberry dann irgendwie die Fächer der Reihe nach "durchschaltet".

    Wie ich die Überlegung aber realisieren soll weiß ich leider nicht. Vielleicht hat da auch noch jemand eine andere Idee!?:denker:


    - Das Regal ist im Innenbereich und keinen großen Temperaturschwankungen ausgesetzt, die Waage muss nicht besonders genau sein, wird aber auch, wenn das ganze einmal läuft, nicht mehr tariert. Funktioniert das überhaupt so dauerhaft?


    - Wenn ich die Wägezelle mittig zwischen den Fächern montiere und das innere Fach an der ganz äußersten Stelle belaste, wird die Wägezelle ja quasi torsiert, kann die das ab und liefert noch korrekte Werte?







    Desweiteren habe ich bisher noch nie etwas mit Python zu tun gehabt und werde bestimmt noch die ein oder andere "Noob-Frage" zur Programmierung haben :shy:


    Ich bin natürlich Dankbar für jeden Änderungsvorschlag, jede Hilfe, Idee, Verweise auf hilfreiche Seiten/Forenthemen...




    Besten Gruß


    DerBecker

  • Aktueller Stand:


    Um erstmal ein bisschen zu experimentieren wurde erstmal der Raspberry Pi 4, eine Wägezelle und ein Hx711 bestellt.

    Hx711 und Wägezelle sind heute angekommen, der Raspberry leider noch nicht.


    Provisorisch habe ich dann ein Gestell gebaut um mich am Wochenende mal ein bisschen damit zu beschäftigen und zu versuchen die Werte vom Hx711 zu erfassen. Da der Raspberry noch nicht da ist, wird das ganze erstmal mit einem Arduino getestet.


  • Also, ob das mit dem Wiegen nicht letztlich zu ungenau wird und aufwändig? Zumal ihr ja sowieso eine physische Inventur machen müsst - und die kann unterjährig fließend sein. Gewöhnlich zählt man die ein- und ausgehenden Teile und verbucht sie...

    Wie schwer sind denn diese Teile? Wenn das kiloschwere Brocken sind, wird das schon gehen.
    25 Fächer - und jedes braucht 4 Wägezellen an allen vier Ecken...

  • Also, ob das mit dem Wiegen nicht letztlich zu ungenau wird und aufwändig? Zumal ihr ja sowieso eine physische Inventur machen müsst - und die kann unterjährig fließend sein. Gewöhnlich zählt man die ein- und ausgehenden Teile und verbucht sie...

    Wie schwer sind denn diese Teile? Wenn das kiloschwere Brocken sind, wird das schon gehen.
    25 Fächer - und jedes braucht 4 Wägezellen an allen vier Ecken...


    Als 6-Mann Betrieb ist bei uns nicht alles immer so systematisch wie es bei größeren Betrieben der Fall ist.

    Da passiert es öfter mal dass bei einer Bestellung irgendein Kleinteil vergessen wird, oder beim Nachzählen nicht berücksichtigt wurde dass die Teile bereits für einen anderen Auftrag benötigt werden.

    Da wir nur alle 1-2 Wochen Bestellen, kann das unter Umständen bedeuten dass der Kunde wegen nem kleinem Gummifuß o.ä. eben diese 1-2 Wochen länger warten muss.


    Bei dem Projekt übernimmt die Firma nur die Kosten für die Teile (ich setze da mal so 100-200€ an) und das Programmieren und rumtesten mache ich in meiner Freizeit (weil es mir Spaß macht). Nur den finale Umbau des Regals werde ich in der Arbeitszeit machen. Denke also die Wirtschaftlichkeit ist hierbei gegeben.



    die Anzahl der Teile in den Fächern (bzw. das ermittelte Gewicht) darf gut und gerne um +/- 3% abweichen, da die Fächer sowieso nie auf Anzahl 0 geleert werden sollen.

    Anzahl und Gewicht der Teile in den Fächern fällt unterschiedlich aus. Die meisten werden wohl so zwischen 15-30Kg belastet werden.



    Sind 4 Zellen pro Fach wirklich notwendig? Meine Küchenwaage benötigt ja auch nur einen!? Würde das ganze deutlich teurer machen.

  • Also, 25 Fächer mit 15-30 Kilo... allein die Bretter werden dich mehr als 200 € kosten.
    Wägezellen, Pi, Verkabelung, ...
    Wie schwer sind denn die einzelnen Teile? Es bring ja wenig, wenn du 100 Teile zu 5 Gramm hast und die Wiegung 200g Toleranz hat...

    Ob du da nicht mit Kanonen auf Spatzen schießt?


    Und wenn das System sagt, es fehlen zwei Teile... dann geht doch einer zum Regal und prüft das, weil man sich auf die Waagen nicht 100% verlassen kann...

    EIn- und Ausbuchung über Barcodeleser ist da üblicher - muss halt nur ordentlich gemacht werden. Aber wenn Teile fehlen, ist das so oder so blöde, egal, ob die Waagen ungenau sind oder die Mitarbeiter nicht richtig buchen. Da muss blos einer ein falsches Teil in ein Fach legen, dann kommt das auch aus dem Tritt. Ich fürchte, du machst dir viel Arbeit und das Ergebnis wird nicht befriedigend sein.

  • Die kosten für Holz laufen gegen 0 da wir das bei uns verarbeiten. Die Fächer (ca 400x400 mm Bodenfläche der Fächer) werden aus Resten gebaut die sonst in den Müll fliegen würden.



    Wenn das System sagt es fehlen zwei Teile für nen Auftrag, dann werden halt 20 nachbestellt.

    Wenn es falsch war und es waren doch genug Teile da, dann ist das egal. Der Bau wird trotzdem begonnen und stockt dann halt nicht an der Stelle wo das Teil benötigt wird und die Bestellung war in dem Fall auch nicht falsch, da immer ein bisschen was auf Vorrat liegen sollte.

    Das einzige was nicht passieren darf ist dass mir das System sagt es wären 15-20 Teile mehr da als benötigt, denn dann würde es nicht nachbestellt werden und fehlt.

    Das Teile falsch eingeräumt wurden, habe ich noch nie erlebt.


    Ein System mit Ein- und Ausbuchung halte ich bei unserem Betrieb für wenig sinnvoll.

    Da würde ich mich auch nicht gerne drauf verlassen wollen, eben weil es unter Umständen nicht ordentlich gemacht wird.



    Für mich ist es aber in Stein gemeißelt dass ich das so in der Art und Weise mache.

    Die ganzen Wägezellen etc. werden sowieso erst dann bestellt, wenn das mit der einen "Test-Wägezelle" zufriedenstellend funktioniert.

    Und falls auch das ein Reinfall wird, habe ich zu guter letzt einen Raspberry den man für irgendwas anderes nutzen kann und ein paar Kenntnisse dazu gewonnen :^^:




    Das leichteste in dem Regal sind Gummifüße (in 3 verschiedenen Sorten), diese wiegen geschätzt etwa 10gr., davon sollten immer so zwischen 20-100 Stück da sein.

    Das Fach ist kleiner und ich würde dort auch eine feinere Wägezelle nehmen (z.B eine bis 2Kg)


    In die meisten anderen Fächer kommen Teile mit einem Gewicht von je. 300-400gr. und einer Anzahl zwischen 20-50Stk.


    Die beiden schwersten Teile liegen bei knapp 1,5Kg, da sind maximal 30 Stk. in einem Fach.

  • Naja, einen Verusch ist es ja mal wert. Mit einer Wägezelle musst du aber die Last auf eben die Wägezelle abtragen ohne dass das Gewicht des Faches zur seite kippt, das verfäscht sonst sicher die Messung. Wägezelle in die Mitte und dann an allen vier ecken Führungen, damit das Brett nicht kippen kann. Aber wie man das macht, ohne dass da was verkantet.. keine Ahnung.

  • Ich wuerde versuchen, die Waegezelle ohne Torsion zu betreiben. Wenn man danach googelt findet man zB von Adafruit ein Video, bei dem sie ein Brett mit zwei Scharnieren auf eine einzelne Zelle aufliegen lassen. Sowas wuerde ich auch empfehlen.


    Und ein ESP32 oder der aeltere ESP8266 kann mehrere HX711 abfragen, und drahtlos "nach Hause" funken. Das spart Verkabelung & loest dein multi-plexing-Problem.

  • Update 1:



    Heute jagd ein Erfolgserlebnis das nächste, wer hätte gedacht dass es so Problemlos läuft.



    Heute morgen bin ich 120% motiviert ans basteln gegangen, ich hatte noch ein paar Utensilien aus einem Arduino-Starter-Paket und konnte mir so was nettes zusammen basteln.

    Alles schnell verkabelt, ein paar Arduino-Bibliotheken aus dem Netz gezapft und siehe da.... klappt nicht. :lol:


    Wäre ja irgendwie auch zu schön gewesen. Also alles nochmal überprüft, Script abgeändert, anders verkabelt, alles half nichts. Vom Hx711 kam immer nur ein konstanter Wert.


    Einige Kaffee's später habe ich den Hx711 dann mal mit 5V statt 3,3V befeuert und jetzt klappt alles wunderbar... wobei wunderbar noch untertrieben ist, es klappt wunderbarst ...GEIL!!!


    Nach der Kalibrierung zeigt er mir das korrekte Gewicht an (+/-2gramm) wobei das vermutlich sogar noch geringer "gefiltert" werden kann. Hierbei ist es sogar egal wo ich das Gewicht platziere, am äußersten Rand misst er die gleichen Werte wie in der Mitte.

    Für mein wischi-waschi-schnell-schnell-Wagengestell kombiniert mit der billig-China-20Kg-Wägezelle übertrifft die genauigkeit meine Erwartungen deutlich.


    Das ganze wird jetzt erstmal so stehen bleiben übers Wochenende und am Montag überprüfe ich, ob die Werte abweichen.


    Um das ganze später auf den Raspberry zu übertragen muss ich mir natürlich noch überlegen wie ich das ganze auf 3,3V "runterskaliere".




    Zum Thema wie ich 25 Fächer von nur einem Raspberry auslesen lasse habe ich mir auch was einfallen lassen, dazu später mehr :stumm:



    Besten Gruß DerBecker


  • ein ESP32 oder der aeltere ESP8266 kann mehrere HX711 abfragen, und drahtlos "nach Hause" funken. Das spart Verkabelung & loest dein multi-plexing-Problem


    Vielen Dank für den Tipp.

    Habe mal ESP32 gegoogelt, irgendwie ist mir das Bauteil zu komplex und mir als Anfänger einfach nicht simpel genug.



    Ich hatte da aber noch eine andere Idee bei dem ich nur 5 Pins belege (abgesehen von Ground und 3,3V), die Bauteile sind Pfennigsartikel und die 25 Fächer können nach Bedarf nachträglich um weitere ergänzt werden.

    Undzwar mit Hilfe von mehreren kaskadierten Schieberegistern.


    Der Raspberry soll der Reihe nach die Ausgänge (ich nenne sie mal Kanäle) durchschalten. Die Kanäle sind dann mit den VCC Anschlüssen der HX711 verbunden, sodass immer nur ein HX711 Spannung bekommt und Werte an den Raspberry schickt.


    Der Raspberry ordnet dann dass erfasste Gewicht dem aktiven Kanal zu.


    Hab das mal Schematisch dargestellt:



    Da ich auch noch einen Schieberegler aus meinem Arduino-Kit hatte, habe ich das ganze auch mal ausprobiert.


    War aber nur ein Teilerfolg, Schieberegister schaltet die Kanäle wunderbar durch, Wägezelle misst wunderbar sobald Sie "aktiviert ist", sobald sie aber deaktiviert wird, kommen noch Werte beim beim Arduino an, diese sind zwar dann konstant, ich denke diese würden aber beim Anschluss mehrerer Zellen die Werte der anderen verfälschen.


    Eine Idee um das zu verhindern wäre: anstatt die VCC Anschlüsse der HX711 zu schalten, stattdessen an jedem Data-Ausgang der Hx711

    einen Transistor zu setzen der das Signal nur dann durchlässt wenn Strom auf ihm anliegt. Wäre natürlich deutlich mehr arbeit :no_sad:


    Jemand vielleicht eine bessere Idee? :conf:






    Ist zwar aufgrund vom Arduino noch kein Python, aber den vorläufigen Code möchte ich euch nicht vorenthalten (bitte seid umsichtig mit mir :lol:)



  • Der ESP32 lässt sich genauso programmieren lässt wie der arduino dank Kompatibilitäts-Schicht 🤷🏼‍♂️ Und er erspart dir kabelei. Aber wenn es mit den schieberegistern auch geht, ist ja ok. Ich würde eher muxe nehmen (1:16), damit sind mit 2 Chips 16 hx711 abgedeckt.

  • Ich würde eher muxe nehmen (1:16), damit sind mit 2 Chips 16 hx711 abgedeckt.

    Ich kannte Multiplexer nicht bis ich sie gerade gegoogelt habe.

    Die dürften wesentlich Sinnvoller bei meinem vorhaben sein.

    Damit kann ich die Data-Ausgänge einfach umschalten und muss nicht an jedes Hx711einen Transistor löten.


    Rieseeeen Dank!!!