Anleitung Legoteilzählmaschine

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Dies ist ein Unterartikel von der Legoteil_Zählmaschine, welcher die Anleitung für die Maschine beschreibt.

Anleitung Programmstart

Vor dem Starten der Legoteil-Zählmaschine müssen einige Voraussetzungen erfüllt sein. Es gilt zu prüfen, ob alle benötigten Komponenten mit dem Rechner verbunden sind, von dem das Programm gestartet werden soll. Dazu zählen:

  • USB-Kabel zum Arduino
  • USB-Kabel zur Webcam in der Separierungseinheit
  • USB-Kabel zur Webcam in der Erkennungseinheit

Außerdem muss die Anlage an das Stromnetz und die Ventilinsel an eine Druckluftleitung angeschlossen sein.

Vor dem Start gilt es außerdem zu überprüfen, ob die Notschalter der Anlage deaktiviert sind und ob der Linearläufer in seine Initialposition gebracht wurde. Ist dies nicht der Fall ist dies durchzuführen. Anschließend ist der Luftdruck, der an der Ventilinsel anliegt einzustellen. Empfohlen werden zwischen 3 und 5 Bar. Der Start des Programms wird durch ausführen der Datei StartSortiermaschine.m ausgelöst. Es öffnet sich eine Eingabemaske, in der die zu zählenden Baukästen ausgewählt werden oder zum Teach_In gewechselt werden kann. Nach dessen Bestätigung sind die Anzahlen der Legoteile anzugeben, die nicht durch die Maschine gezählt werden können. Anschließend startet die Maschine das automatische Zählen. Der Inhalt der Legokiste, abzüglich der manuell gezählten Teile, ist in den Bunker zu geben. Da die Separierungseinheit noch nicht zuverlässig funktioniert und noch nicht in den Gesamtprozess integriert ist, sollten zunächst nur kleine Mengen in den Bunker geschüttet werden und eine manuelle Separierung vorgenommen werden. Wenn der Bunker leergelaufen sein sollte, sind nicht erkannte Teile in den Bunker zurückzuführen (Aus Sicherheitsgründen darf dies in dem aktuellen Status nicht bei einer laufenden Maschine durchgeführt werden!). Ist der Zählprozess durchlaufen, kann die Zählung vom Anwender mit der ESC-Taste beendet werden. Es wird eine Inventur- sowie eine Fehlteileliste im Tool Excel ausgegeben. Außerdem werden Motoren und LEDs ausgeschaltet und der Linearläufer auf Initialposition gefahren. Nach Gebrauch der Anlage ist der Druck der Druckluftleitung herunterzuregeln und die Anlage vom Strom zu trennen.

Die Schritte im Allgemeinen:

Hauptschalter im ausgeschalteten Zustand
Hauptschalter im eingeschalteten Zustand
  1. Vorbereitung
    1. Mehrfachstecker mit LED-Schalter anschließen
    2. Hauptstecker (Stecker vom Schaltschrank) anschließen
    3. Hauptschalter (Schaltschrank) betätigen
  2. Matlab Programm öffnen
    1. unter SVN\MTR_SDE_Praktikum_2015\SRC\Matlab StartSortiermaschine.m öffnen
    2. Programm starten
    3. Sollte die Datenbank nicht richtig konfiguriert werden, muss wie folgt vorgegangen werden:
      1. Unter Systemsteuerung\System und Sicherheit\Verwaltung Datenquellen(ODBC) auswählen.
      2. Unter dem Reiter Benutzer-DSN auf "Hinzufügen" MYSQL ODBC 5.3 ANSI Treiber auswählen.
      3. Bei "Name" Lego eintragen, bei "Server" localhost.
    4. Weiteres Vorgehen und die Anleitung zur Bedienung der GUI sind im nächsten Abschnitt zu finden.


[1]
























Anleitung zur Bedienung des GUI

Sortierfunktion starten

Das Programm wird gestartet mit der Funktion START.m. Nach dem Start vergehen einige Sekunden, in denen die Kamerakalibrierung eingestellt wird, danach erscheint das Hauptfenster, indem man zwischen Teach_In und der Sortierung wählen kann.

Hauptbildschirm mit der Auswahl zwischen Teach_In um Teile anzulernen, Teile sortieren, um die Sortierung zu starten und Baukasten bearbeiten, um neue Kästen hinzuzufügen, und bestehende Teile zu bearbeiten


Ein Klick auf den Button Hauptfunktion ruft das nächste Auswahlmenü auf.

Auswahl der vorhandenen Baukästen


Dort können die Baukästen ausgewählt werden, in die später sortiert werden soll. Es kann zurzeit zwischen den Sets 45544 (Grundset) und 45560 (Erweiterung) gewählt werden.
Ein Klick auf den Button Beenden beendet das Programm nach der Abfrage, ob auch wirklich beendet werden soll. Mit Speichern kann die aktuelle Auswahl gespeichert werden.
Unter dem Reiter Bauteil-ID sind die einzelnen Teile mit der entsprechenden ID hinterlegt. Unter dem Reiter Anzahl steht die Soll-Anzahl und bei gezählt sind die von Hand abgezählten Teile einzutragen. Der Baukasten kann mit zurück zur Baukastenauswahl neu ausgewählt werden, ansonsten startet das Programm mit speichern und weiter. Die Maschine nimmt dann ihre Arbeit auf und die Laufbänder werden eingeschaltet.

Teach-In von neuen Teilen

Wenn die Maschine nicht zählen und sortieren, sondern neue Teile eingeteacht werden sollen, kann dies über dem Hauptbildschirm über den Button Teach_In angewählt werden.

Eingabe der Lego-ID im Teach_In-Modus


Das neue Fenster fragt den Benutzer nach einer Lego-ID, diese ist auf den Deckblättern des Legokastens zu finden. Unter dieser ID werden die Merkmale des entsprechenden Legoteils gespeichert. Es ist empfehlenswert, das gleiche Legoteil mehrmals in verschiedenen Positionen anzulernen. Dafür kann die gleiche ID einfach erneut eingegeben werden, nachdem das vorherige Teil gespeichert wurde. Dabei steht dem Benutzer die Option offen, an dieser Stelle direkt auch die Fachnummer anzugeben, in die das Teil später sortiert werden soll.
Nach der Eingabe der ID erscheint ein neues Fenster.

Das Teach_In-Menu. Escape zum Beenden, Enter um ein Foto zu schießen, Space um das Bild auszuwerten, x um das Teil mit den Düsen auszuschießen, m um den Motor an- bzw. auszuschalten (falls mehrere Teile auf dem Band liegen, die angelernt werden sollen)


In dem Fenster ist die Aufnahme der Kamera zu sehen. In der Abbildung oben sieht man das Legoteil, das gerade angelernt werden soll. Um ein verwertbares Bild zu erhalten, muss zunächst die Enter-Taste gedrückt werden. Anschließend kann das Teil mit der Leertaste ausgewertet werden. Es erscheint folgendes neues Fenster:

Binärbild des auszuwertenden Legoteils


In dem Fenster ist das Binärbild des Legoteils zu sehen. An dieser Stelle kann überprüft werden, ob das Teil mit den Einstellungen gut erkannt wird. Es kann bei vereinzelten Teilen dazu kommen, dass sie nicht hundertprozentig erkannt werden. Dabei ist es trotzdem möglich, dass genug Informationen gesammelt wurden, um eine eindeutige Identifzierung gewährleisten zu können. Bei Unsicherheiten kann das Teil über die Sortierfunktion getestet werden und im Einzelfall über die Verwertbarkeit entschieden werden. Sollte das Legoteil nicht sicher erkannt werden, kann es vorsortiert und die Anzahl per Hand eingetragen werden.
Nachdem das Teil mit der Leertaste ausgewertet wurde, wird es in der SQL-Datenbank gespeichert und kann sofort erkannt werden, vorausgesetzt, dass ausreichend Positionen angelernt wurden.

Teach-In von neuen Sets

Neue Sets können über die Funktion "Baukasten bearbeiten" in dem Haupt-GUI hinzugefügt werden.

Baukasten bearbeiten: Hier besteht die Möglichkeit, neue Sets einzufügen oder bestehende Sets/Teile zu löschen


In dem Feld "Baukasten-ID" wird die neue Set-ID eingegeben. Im nächsten Feld "Anzahl der Teile im Baukasten" wird die Anzahl der benötigten IDs eingetragen. Mit Drücken des Buttons "Speichern & weiter" wird eine entsprechende Anzahl an Zeilen zur Verfügung gestellt, in die dann die Merkmale eingetragen werden können. Eine Änderung ist noch möglich, dazu einfach erneut den Button "Speichern & weiter", der jetzt seinen Namen geändert hat.

Löschen von Teilen und Sets

Das Löschen von Teilen und Sets funktioniert über das Feld "Bestehenden Baukasten bearbeiten". Dazu wird der entsprechende Baukasten ausgewählt, anschließend kann zusätzlich die ID des zu löschenden Teils markiert werden. Das Teil kann dann wahlweise nur aus dem Bausatz gelöscht werden oder komplett, also aus allen Bausätzen und aus der Merkmalsdatenbank. Wurde "Baukasten löschen" ausgewählt, wird der Baukasten mit allen Teilen gelöscht, die IDs der Teile bleiben jedoch in der Merkmalsdatenbank erhalten.

Bearbeiten von bestehenden Einträgen

Im letzten Feld können die bestehenden Einträge bearbeitet werden. Die Funktion ist zum aktuellen Zeitpunkt noch nicht implementiert, so dass der Button "Änderungen speichern" keine Auswirkung hat.

Zugriff auf die SQL-Datenbank

Die Teile, sowie Informationen über die Kästen und deren Inhalte sind in der SQL-Datenbank hinterlegt. Zugreifen kann man auf diese über das XAMPP Control Panel under dem Punkt Admin der MySQL-Zeile.

Öffnen der SQL-Datenbank über das XAMPP Control Panel


Es öffnet sich ein Fenster in Firefox. Auf der linken Seite sind die Datenbanken kasten, kastendetails und legoteileliste zu finden. [2]

Nützliche SQL-Befehle

Die Datenbankverbindung wird gesetzt mit dem Befehl

DatenbankVerbindung = database.ODBCConnection('Lego','root','');

Der auszuführende Befehl kann als String gespeichert werden, hier in sqlquery. Der Befehl exec sendet dann den Befehl an die Datenbank und speichert den Rückgabewert in curs, der mit fetch ausgelesen wird. Mit curs.Data kann auf den Rückgabewert der SQL-Datenbank zugegriffen werden.

sqlquery = strcat('Select LegoteileID from kasten where KastenID = ', num2str(Grundset));
curs = exec(DatenbankVerbindung, sqlquery);
curs = fetch(curs);
GrundsetIDs = curs.Data;


Nützliche Befehle, um die Datenbank zu manipulieren und Werte zu erhalten:

  • Eintrag aus Datenbank beziehen

SELECT 'Ausgabe Gewünschter Spaltenname' FROM 'Gewünschte Datenbank(kasten, kastendetails, legoteileliste)' WHERE 'Eingabe Gewünschte Spalte' = 'Abfrage des gewünschten Eintrags'

'Select LegoteileID from kasten where KastenID = 45544'
  • Eintrag in Datenbank bearbeiten

UPDATE 'Spaltenname' SET 'Gewünschte

Autoren

  1. Autor Matthias Maas
  2. Autor Jan Auf der Landwehr