Grundidee: Fortsetzung des letzten Zustands

In einem neuen Training wird die Montage in dem Zustand wieder aufgenommen, den die letzte Nutzung hinterlassen hat. Am Anfang eines neuen Trainings sind also direkt alle Stationen mit Arbeit versorgt.

Achtung
Wenn Kisten für andere als Schulungszwecke bewegt werden (Fototermine o. ä.), dann nachher an die ursprüngliche Position zurückstellen; sonst divergieren physischer Zustand und digitaler Zustand. Wenn für Demo-Zwecke die Factory hochgefahren und Kisten gescannt werden, dann gilt wie in Schulungen (s. u.), dass an jeder Station alle Schritte zum laufenden Auftrag (Standort "Station X Desk") fertig gemeldet werden müssen bevor wieder heruntergefahren werden kann.

Vorbereitungen

  • Im DigiLLab prüfen, ob genügend Bauteile an den Stationen und genügend Kisten im Startzustand vorhanden sind, d. h. Kisten im Eingangslager=rechter Logistikplatz (diese enthalten das Auto im Roh-Zustand). Falls nicht: Fertige Aufträge demontieren (siehe unten "Im Nachgang").
  • Stationen so verschieben, dass alle genug Platz zum Montieren haben.
  • Vergewissern, dass die Kisten an der richtigen Stelle stehen: Im Stationseingang (=obere Rutsche) von Station Y dürfen nur Kisten stehen, deren e-Ink-Display den Transportauftrag X->Y anzeigt, und im Stationsausgang (=untere Rutsche) von Station Y dürfen nur Kisten stehen, deren e-Ink-Display den Transportauftrag Y->Z anzeigt.
  • Alle Stationen mit der Fernbedienung einschalten (Taste A). Es ertönten zwei Pieps pro Station (eines je RFID-Scanner). Mit den nächsten Schritten fortfahren, während die Stationen hochfahren (was ein paar Minuten dauern kann).
  • Falls der Server auf dem Meister-PC noch nicht läuft, mit der Verknüpfung "DigiLLab Factory Starten" auf dem Desktop starten und dann auf "Server starten/neustarten" klicken. grafik
  • Auf dem Surface Hub im Browser zwei Seiten öffnen: Erstens http://192.168.188.41:3030/dashbard.html für das Dashboard (exakt so eingeben, insb. mit http://) und zweitens https://odoo-mrp.erp.digit40.edu.sot.tum.de für den Webshop.
  • Am Meister-PC auf "Odoo öffnen" klicken bzw. in Firefox das Lesezeichen "Odoo DigiLLab Factory" öffnen. Odoo öffnet sich mit einer Ansicht der aktuellen Fertigungsaufträge.
  • Vergewissern, dass kein Montageschritt unabgeschlossen hinterlassen wurde: Odoo öffnen (Meister-PC -> Browser -> Lesezeichen "Odoo") und die Spalte "Current Location" durchsehen. Falls es dort Aufträge gibt, deren "Current Location" "WH/Station X DESK" lautet: Auftrag öffnen -> Reiter "Arbeitsaufträge" -> den unabgeschlossenen Montageschritt als "Erledigt" markieren.

Trainingsablauf

  • Bestellung(en) im Webshop https://odoo-mrp.erp.digit40.edu.sot.tum.de platzieren. Das kann man am Surface Hub im Webshop selber machen und/oder t von Schulungsteilnehmern machen lassen, indem man ihnen den Link als QR-Code gibt (liegt ausgedruckt am Meister-PC). Dann am Meister-PC in Odoo ins "Verkauf"-Modul wechseln, dort das Angebot öffnen und "bestätigen", dann zurück ins "Fertigung"-Modul, wo nun automatisch ein entsprechender Fertigungsauftrag erzeugt worden ist. Dieser erscheint nun auch auf dem Logistik-Monitor in der Liste neuer Aufträge.
  • Das Lesezeichen "Steuerung" in neuem Tab öffnen und vergewissern, dass alle Stationen verbunden sind. Falls nicht, obwohl schon ein paar Minuten seit Einschalten vergangen sind, siehe hier unten "Troubleshooting".
  • Einarbeitungsrunde: Allen Schulungsteilnehmern die Aufgaben des Logistikers erklären sodass bekannt ist, wo Ein- und Ausgang der Stationen sind und wie die Kisten zu scannen sind. Im Zuge dieser Einarbeitung ggf. so viele Kisten bewegen wie nötig, damit in jedem Stationseingang etwas liegt. Nun an allen Stationen einen Auftrag abarbeiten lassen, damit sich die Monteure ein mal mit den Anleitungen und Montageschritten vertraut machen können. Nach Abschluss ihres ersten Auftrags sollen alle Monteure warten (noch keine neue Kiste scannen).
  • Schicht starten: In Odoo -> Fertigung unter "Production Cycles" (oben drittes von links) einen Produktionszyklus erstellen und benennen.
  • Den Production Cycle mit Klick auf den grünen Button "Start" rechts in seiner Zeile starten. Ab jetzt gehen die Zeiten in die Statistiken und die Ablaufanzeige auf dem Dashboard ein. Lesezeichen "Dashboard" öffnen um dieses anzuzeigen bzw. auf dem Surface Hub zeigen.
  • Am Ende der Produktion: den Production Cycle in Odoo beenden und alle Monteure ihre aktuelle Kiste vollständig bearbeiten, fertig melden und in den Stationsausgang legen lassen.
Achtung
Am Schulungsende müssen alle Arbeitsschritte des aktuellen Auftrags an jeder Station fertig gemeldet und die Kiste danach in den Ausgang gelegt werden; andernfalls kann die nächste Schulungsgruppe die Produktion möglicherweise nicht richtig aufnehmen. Aus Zeitgründen kann notfalls auf die tatsächliche Ausführung der Schritte verzichtet werden, aber der Klick auf "fertig" für jeden Schritt ist unbedingt nötig, damit die nächste Gruppe an den Stationen jeweils von vorne starten kann.

Im Nachgang

Fertig montierte Autos sammeln sich im Ausgangslager (=linker Logistikplatz) an. Die e-Ink-Displays der Kisten dort zeigen dementsprechend "Produktion abgeschlossen" an. Um das Eingangslager wieder aufzufüllen:

  • Alle(!) Autos in den fertigen Kisten wieder demontieren.
  • "Steuerung öffnen" (wenn der Server nicht mehr läuft, muss er hierfür gestartet werden) und "Alle fertigen Boxen zurücksetzen" anklicken. Alle Kisten, die bis dahin "Produktion abgeschlossen" angezeigt hatten, werden nun zurückgesetzt und können für neue Aufträge genutzt werden.
  • Alle Kisten ins Eingangslager (=rechter Logistikplatz) legen.

Zuletzt den Server stoppen und den Strom an den Stationen mit der Fernbedienung, Taste A Off, abschalten. Den Meister-PC laufen lassen, damit der für Fernzugriffe verfügbar bleibt.

Troubleshooting

Wenn sich eine Station nicht verbindet:

  1. Vergewissern, dass sie Strom hat (Fernbedienung vor die Funksteckdose der Station halten und Taste A on drücken; rote Kontrollleuchte an Funksteckdose muss leuchten).
  2. Vergewissern, dass der Monitor an ist.
  3. Ggf. den Kleincomputer dieser Station ab- und anstecken um die Station neu zu starten. (Stromkabel steckt in Funksteckdose.)

Wenn der Scan einer Kiste an einem Montage-Tisch nicht wie erwartet den Montage-Schritt startet (Anleitung anzeigt):

  1. E-Ink Display der Kiste prüfen um sicherzugehen, dass die Kiste an diese Station gehört. Mögliche Fehlerquellen: Logistiker hat die Kiste nicht am Eingangslager gescannt, sodass sie überhaupt keinem Auftrag zugeordnet ist, oder die Kiste steht im Ein- statt Ausangslager der Station (vgl. oben "im Vorfeld")
  2. Ggf. Neustart der Station durch ab- und anstecken des Stromkabels des Kleincomputers (steckt in weißer Funksteckdose).
  3. Vergewissern, dass die Positionen aller Kisten tatsächlich den Positionen gemäß Odoo entsprechen. Insbesondere vergewissern, dass kein Auftrag den Standort "Station X Desk" anzeigt, der dort gar nicht tatsächlich in Arbeit ist. Wenn es eine Abweichung gibt, dann den Fertigungsschritt des fraglichen Fertigungsauftrag händisch in Odoo als abgeschlossen melden.

Infos für Entwickler

Der zentrale Websocket Server für die Odoo Factory läuft auf dem Meister-Arbeitsplatz PC. Alle Raspis im lokalen Netz verbinden sich mit diesem über tuedfed-dl01.fritz.box:3030 bzw. 192.168.188.41:3030. Um die Bedienung so einfach wie möglich zu machen gibt es eine kleine graphische Anwendung (windows.py), mit der man den Server auf dem Meister-PC starten kann:

grafik

Der Ordner links enthält das Verzeichnis Lokaler-Server aus dem Repo, sowie ein virtualenv (Einrichtung siehe unten). Rechts ist eine Verknüpfung, die Lokaler-Server\windows.py aufruft:

grafik

Das Fenster im Hintergrund zeigt den Log und eventuelle Fehlermeldungen. Mit dem Fenster im Vordergrund kann man Odoo oder das Control Panel im Browser öffnen und den Server im Hintergrund starten/stoppen. Der Server wird nicht automatisch gestartet, wenn man das Fenster öffnet, das heißt man muss ihn einmal am Anfang starten. Wenn der Server und alle Raspis laufen und verbunden sind, ist die Odoo Factory einsatzbereit.

Verbindungsprobleme können leider manchmal auftreten, wenn Router und Raspis falsch zueinander stehen.

Production Cycle

Für die Statistiken gibt es in Odoo Produktionszyklen (Manufacturing->Production Cycles), mit denen man einen Referenzzeitraum für die Produktion vorgibt. Das Dashboard zeigt immer den aktuell laufenden Produktionszyklus, oder den als letztes beendeten, bei dem "show after finish" in Odoo gesetzt ist.

Dashboard

Auf dem Surface Hub ist das Dashboard unter tuedfed-dl01.fritz.box:3030/dashboard.html erreichbar. Prinzipiell kann man das Dashboard auch auf anderen Geräten öffnen, es ist aber vom Layout auf das Surface Hub angepasst (evtl. hilft zoomen). Die Metriken der aktuellen Produktion werden alle 10s geupdatet, der Workorder Plan alle 20s. Die Updates werden nur gemacht, wenn das Dashboard offen ist, weil sie vom Dashboard initiiert werden.

Stationen sperren

Über das Control Panel lassen sich alle Station sperren. Die Bildschirme zeigen dann nur den Namen der Station und den Verbindungsstatus an (Praktisch wird ein Overlay angezeigt, das heißt noch offene Workorder laufen weiter). Scans an den RFID Scannern haben dann keinen Effekt mehr.

In der Praxis ist das auch ein praktischer Test, ob alle Station noch verbunden sind. Der Status im Control Panel updatet sich nicht sofort, sondern erst nach einem Timeout.

Einrichtung

Venv

Der Server läuft mit Python, das mit dem offiziellen Installer auf dem Meister-PC installiert ist. Das Programm ist auf dem Desktop unter DigiLLab-Factory\Lokaler-Server\ abgelegt. Das venv lässt sich mit der Power Shell einrichten mit:

# Im Ordner "DigiLLab-Factory":
py.exe -m venv .\venv
.\venv\Scripts\pip.exe install -r .\Lokaler-Server\requirements.txt
Nur der Server selbst (server.py) verwendet und braucht das venv, das GUI Programm windows.py nicht.

Konfiguration

Die Konfiguration des Server liegt in DigiLLab-Factory\Lokaler-Server\server-config.ini auf dem Desktop. Möchte man eigene Anleitungen den Arbeitsstationen zur Verfügung stellen, kann man die in DigiLLab-Factory\Lokaler-Server\web ablegen. Die URLs in der Odoo Einstellung dazu sind immer relativ zu diesem Verzeichnis. Wichtig ist, dass PDFs immer im Unterordner pdf und MP4 Videos im Unterordner mp4 abgelegt werden, weil der relative einfache statische Server von socketio nur so den richtigen Content-Type gibt. Die Content-Types sind in server.py eingerichtet. Eine flexiblere Lösung wäre ein richtiger Webserver, der dann aber ein passenden CORS Header braucht (die erlaubte Quelle muss tuedfed-dl01.fritz.box sein). Sofern CORS eingerichtet ist, können in Odoo zu den Anleitungen auch vollständige URLs (http://…) eingegeben werden.

Firewall

Damit man vom lokalen Netzwerk aus den Server auf Port 3030 erreichen kann, muss man in Windows eine Firewall Regel einrichten: Firewall