www.blafusel.de

  Home  |   Privat  |   Impressum  |   Bücher  |   Computer  |   Mikrocontroller  |   Misc  |   OBD  |   Forum

Pick-by-Light Lagerverwaltung für meinen Online-Shop

Lager In meinem Online-Shop gibt es um die 200 Artikel. Anfangs war es noch recht übersichtlich, eine Bestellung zu bearbeiten und für den Versand fertig zu machen. Mit der Zeit begann aber immer wieder das Suchen nach einzelnen Artikeln, wenn sie nicht zu den häufig bestellten Typen gehörten. Auch kam es vor, daß man sich vergriff und den falschen Artikel einpackte oder die falsche Anzahl. Aus diesem Grunde wurde der Ablauf dann schrittweise computergestützt organisiert. Zuerst einmal wurden die Rechnungen mit einem Strichcode (einfacher Code39) versehen und die Artikel bekamen Artikelnummern. Die Kisten mit den Artikeln wurden dann auch mit Strichcodes für die Artikelnummern versehen. Ein einfacher Laser Strichcodeleser mit Bluetooth (TT-BS016) arbeitet im Grunde wie eine Tastatur: der gescannte Code wird als Zeichenfolge gesendet (zusätzlich können davor oder danach Steuerzeichen eingefügt werden), als hätte man die Eingabe auf der Tastatur getätigt.

Web Software Zuerst erstellte ich eine Webanwendung mit PHP, um auf die MySQL Datenbank des Shopsystems (osCommerce) zuzugreifen. Dort kann man die Rechnungsnummer einlesen. Dann werden die bestellten Artikel und die Anzahl angezeigt. Sobald man eine Artikelnummer einscannt, wird geprüft, ob sie Teil des Auftrages ist (wenn nicht, gibt es eine Warnung) und die Anzahl wird kontrolliert. Sobald alle Artikel in der notwendigen Anzahl eingelesen wurden, wird auf das Einlesen einer Trackingnummer des Versandunternehmens gewartet und dann diese bei den Auftragsdaten in der Datenbank gespeichert. Dadurch entfällt auch später ein Arbeitsschritt, wenn man den Kunden die Tracking-ID mitteilen will. Jetzt war zwar schon das Problem minimiert, falsche Artikel zu erwischen, aber es blieb die Frage, wo sich ein Artikel im Lager befindet. Optimal wäre es, wenn an den Fächern/Kisten mit dem jeweiligen Artikel eine LED leuchtet, so daß man schnell erkennen kann, wo hingegriffen werden muß. Eigentlich eine einfache Aufgabe und es muß nur eine praktikable Lösung gefunden werden. Traumhaft wäre ein funkbasierter Ansatz, bei dem kleine Empfänger an den Fächern angebracht werden. Per Funk wird dann die Artikelnummer gesendet und der entsprechende Empfänger leuchtet. Wenn es kabellos funktioniert, wäre das Verfahren natürlich sehr flexibel. Aber dann sind Batterien notwendig und die Funkempfänger sind nicht ganz preiswert. Selbst wenn man pro Empfängermodul nur 10,- Euro veranschlagt, wären das schon € 2.000,-. Davon abgesehen, bereitet Funk immer irgendwelche Probleme. Also eine preiswerte, kabelgebundene Version.

Durch die Erfahrungen mit dem LED Tetrisspiel, kannte ich die WS2812B LED nun schon und wußte, daß sie zwei positive Eigenschaften mit sich bringt: einfache Ansteuerung und einfache Verdrahtung. Es kann eine lange Kette aus bis zu 1024 LED gebildet werden, bei der immer nur drei Drähte von einer LED zur nächsten geführt werden müssen. Die Länge der Kabel ist dabei relativ problemlos. Am Anfang wird die Bytefolge eingespeist, die dann von jeder LED weitergereicht (und gekürzt) wird und so angibt, welche LED in welcher Farbe leuchten soll. Bei Aliexpress kann man die LEDs günstig (ca. € 20,-) als 100er Nutzen kaufen. Das hat den Vorteil, daß jede LED bereits auf eine kleine Platine mit den notwendigen Anschlüssen, einem Widerstand und einem Kondensator gelötet ist.

ATmega Arduino Mini Pro Board und FTDI USB-Seriell Wandler Weil die Steuersignale für die LEDs sehr zeitkritisch sind, ist es nicht möglich, daß ein PC diese generiert. Hierfür wird ein einfacher ATmega328 benutzt. Ein Arduino Mini Pro Board für ein paar Euro eignet sich super. Der unnütze Arduino Bootloader wird gelöscht und schon hat man ein preiswertes System. Damit eine Verbindung zum PC aufgebaut werden kann, wird einfach ein USB-Seriell Adapter mit FTDI Chip angehängt (seriell stirbt einfach nicht aus). Der PC kann jetzt über eine virtuelle serielle Schnittstelle per USB an den ATmega senden, die wievielte LED in welcher Farbe leuchten soll. Wenn alle LEDs gleichzeitig leuchten, wird recht viel Strom benötigt, was aber in der Praxis bei der Lagerverwaltung nicht vorkommt. Trotzdem wird ein einfaches PC ATX Netzteil benutzt, um alles mit 5 V zu versorgen.

Testverdrahtung LEDs Bei einer ersten testweisen Installation wurden ein paar LEDs verkabelt und vorne auf die Regalböden geklebt. Das sieht nicht schön aus aber zeigte dann schon mal, daß ein helles rot als leuchtende Farbe nicht geeignet ist, da dadurch der Strichcodescanner irritiert wird. Also dürfen die LEDs nicht zu nah an den Strichcodes der Artikelbeschriftungen sein und nicht übermäßig hell leuchten.

Kupferlackdraht abisolieren Die Fleißarbeit besteht nun darin, die LEDs zu verdrahten. Im Internet werden zwar dreiadrige Kabelstücke angeboten, die bereits abisoliert und verzinnt sind, doch leider nur zu kurze. Als entschied ich mich für 0,4 mm Kupferlackdraht. Nachdem die Drahtstücke auf ca. 30 cm Länge geschnitten wurden, wird der Lack an den Enden abgeschmolzen. Dazu kann man den Lötkolben auf 450 °C aufheizen und einen dicken Lötzinntropfen anschmelzen. In diesen wird dann das Drahtende eingeführt, so daß der Lack (stinkend und qualmend) schmilzt. Das Lötzinn wird dabei schnell verbraucht und verschmutzt und muß deshalb nach etwa zehn Enden wieder erneuert werden. Bleifreies Lötzinn eignet sich irgendwie besser, weil es weniger stinkt und eine Rauchabsaugung ist auch angenehm.
Die beiden Versorgungsadern könnten auch durchgehend sein, nur die mittlere Datenleitung muß immer einzeln von LED zu LED geführt werden. Um zwischen den Regalböden und Regalen zu wechseln, habe ich dann längere dreiadrige Litze benutzt. Ich habe die Regale einzeln für sich von oben nach unten verbunden und nicht quer, damit man später ggf. die Regale einfacher auseinander nehmen kann und dann nur eine Verbindung trennen muß.

Regalboden mit LED Anschließend werden 8 mm Löcher in die Plastik-Regalböden gebohrt und die LEDs mit Heißkleber dahinter verklebt. Das ist nicht ganz ohne, weil Heißkleber nun mal heiß ist und auf den Fingern brennt und immer tropft und Fäden zieht. Zum Glück kommt es hier bei nicht so auf Schönheit an.

Software zur Lagerverwaltung Weil eine Webanwendung nicht (oder nur um drei Ecken) auf die serielle Schnittstelle zugreifen kann, habe ich eine kleine Software in Visual Studio Basic erstellt. Diese übernimmt zum einen die Funktionen, die zuvor die Webanwendung hatte: Anzeige der Auftragsdaten und sie sendet an den ATmega328 die Befehle, welche Fach-LED leuchten soll.

Zuordnung Artikelnummer und LED Gleichzeitig kann die Software eine Liste mit den Artikelnummern verwalten. Dort kann jeder Artikelnummer eine LED zugeordnet werden. Zusätzlich kann die Farbe eingestellt werden, in der die LED aufleuchten soll. Wird kein Wert angegeben, wird ein Vorgabewert benutzt. Das ist praktisch, wenn ein Fach (eine LED) mehrere Artikel (-varianten) enthält und man so durch eine spezielle Farbe darauf aufmerksam machen will, daß bei der Artikelentnahme dies beachtet werden soll.

Obwohl der Aufbau und die Software teilweise etwas mit heißer Nadel gestrickt ist, funktioniert alles tadellos und die Kommissionierung geht jetzt noch flotter von der Hand und es macht einen professionellen Eindruck und vermittelt das Flair von Großlagern (zumal auch hier jetzt im Grunde eine chaotische Lagerhaltung möglich ist). Sobald ein Auftrag eingescannt wird, leuchten die Fächer auf und wenn die notwendige Anzahl entnommen wurde (der Artikelcode wurde entsprechend oft gescannt oder in der Software wurde die Anzahl eingetragen), erlischt die LED, so daß man eine weitere optische Rückmeldung bekommt (echtes Pick-by-Light). Gesteuert wird das alles von einem billigen Laptop für € 250,-, der sowieso angeschafft wurde, um als Versuchsgerät für Windows 10 und andere Experimente zu dienen, die man nicht auf dem Produktivsystem haben will.