Legosortiermaschine gesamte Anlage

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Dies ist ein Unterartikel von der Legoteil Zählmaschine, wo Aufgaben bezogen auf die ganze Anlage beschrieben werden.


Anforderungen

Spezifikations-ID Anforderungs-ID Anforderungstitel Beschreibung der Spezifikation
0020 REQ10.2010 Antriebe Elektrischer Antrieb muss vorhanden sein
0030 REQ10.2020 Energieversorgung Per 230V AC Schukostecker
0040 REQ10.2030 Abmessung 2,5m x 1m x 1,5m Grundplattenmontage
0051 REQ10.2040 Sicherheit/ Gefährdungsbeurteilung Elektrische Sicherheit (Erdung metallischer Teile, Isolationskontrolle, Notabschaltfunktion)
0055 REQ10.2040 Sicherheit/ Gefährdungsbeurteilung Gefährdungsbeurteilung: Welche Teile bringen welche Gefahr mit sich?
0056 REQ10.2040 Sicherheit/ Gefährdungsbeurteilung Drucken und Anbringen von Warnhinweisen
0070.2 REQ10.2060 Verarbeitungszeit > 80 Legoteile in 10min
0320 REQ10.3220 Ablagestruktur für Versionsverwaltung Geeignete Struktur für SVN definieren und einrichten
0330 REQ10.3231 Dokumentation Projektergebnisse nachvollziehbar und nachbaubar darstellen für fachversierte Nutzer
0432.1 REQ10.3272 Nachhaltigkeit SVN-Nachhaltigkeit
0520.1 REQ10.3300 Coding Guidelines Code Reviews
0520.3 REQ10.3300 Coding Guidelines Leitfaden überarbeiten (Arduino-C, Matlab)
0521 REQ10.3300 Coding Guidelines Untersuchung und Überarbeitung des bisherigen Codes bezüglich Einhaltung der Coding Guidelines


Schnittstellen

Die Legosortiermaschiene ist in drei Arbeitsbereiche eingeteilt. Dies hat den Vorteil, dass aus dem gesamten Team kleine Gruppen gebildet werden können, welche für ihren Maschinenteil verantwortlich sind. Dadurch wird vermieden, dass Aufgaben doppelt oder gar nicht erledigt werden. Es bringt allerdings den Nachteil mit sich, dass es Schnittstellen zwischen den Gruppen gibt. Diese müssen genau definiert werden, damit eine reibungslose Zusammenarbeit gewährleistet ist.


Separierung - Bildverarbeitung

Die Separierung vereinzelt die Legoteile, damit die Bildverarbeitung diese verarbeiten kann. Dafür sind folgende Vereinbarungen getroffen worden:

Hardware

  • Es darf immer nur ein Teil von der Separierung an die Bildverarbeitung übergeben werden
  • Das Förderband und der Eingang der Bildverarbeitungsbox liegen auf einer Höhe, damit kein Teil vom Förderband fällt. Damit alle Teile in die Box fallen, ist diese schräg angebracht.
  • Die Anlage wird über einen Schaltschrank gesteuert. Dort werden die Komponenten der Separierung und der Bildverarbeitung gesteuert. Informationen hierzu gibt es hier

Software

  • Beide Anlagenteile können nicht gleichzeitig durch zwei getrennt Programme gesteuert werden. Deshalb muss eine Hauptfunktion die Laufzeiten steuern. Nötige Vereinbarungen:
    • Sobald ein Teil in der Bildbox erkannt wird, bleibt die Separierung stehen
    • Kalibrierungen der Kameras wird in der Hauptfunktion durchgeführt
    • Die Teilprogramme dürfen keine Dauerschleifen haben
    • Die graphische Ausgabe für beide Funktionen ist in einer Figur

Die Realisierung der Softwareschnittstelle ist hier zu lesen.

Bildverarbeitung - Sortierung

Das Teil aus der Bildverarbeitung muss in die Sortierung gelangen, damit es richtig einsortiert wird. Dafür sind folgende Vereinbarungen getroffen worden:

Hardware

  • Die Bildverarbeitung hat den Ausgang zur Seite
  • Das Teil wird mit einer Luftdüse herausgeschossen
  • Die Anlage wird über einen Schaltschrank gesteuert. Informationen dazu gibt es hier.

Software

  • Hat die Bildverarbeitung ein Teil erkannt, so steuert sie die Klappen der Sortierung. Dazu ist in der Bildverarbeitung hinterlegt, welche Klappen bei jedem Teil angesteuert werden müssen.

[1]

Hardwareumsetzung

Entwicklung einer Steuerplatine

Abbildung 1: Steuerplatine

Zur Inbetriebnahme der umgebauten Anlage war es notwendig, die Funktionen der Schaltplatine zu erweitern. Die eingebaute Steuerplatine war auf den Arduino aufgesattelt und bezog Steuersignale sowie die 5 V Versorgungsspannung direkt über die eingesteckten Pins. Mit dieser Platine ist es möglich, drei Motoren mit Strom zu versorgen bzw. durch ein PWM Signal zu steuern. Zusätzlich konnten noch zwei Servomotoren und zwei Infrarotsensoren betrieben werden. Durch die Konzeptänderung der Separierung und der Bildverarbeitung wurde es notwendig, weitere Schaltfunktionen hinzuzufügen. Die Bildverarbeitung benötigte durch Software schaltbares Licht, um zwischen Durch- und Drauflicht in der Bildverarbeitungsbox umschalten zu können. Ebenso wie bei den Motoren sollte die Ansteuerung des Lichts über den Arduino erfolgen. Die Spannungsversorgung der Bildverarbeitungsbox war in der Vergangenheit mit einem eigenen Netzteil erfolgt, welches direkt in eine Steckdose eingesteckt wurde.

Neben der Einrichtung von schaltbaren Licht, wurde die Schaltung der Pneumatik hinzugefügt. Auch diese sollte über den Arduino gesteuert werden. Die Ventilinsel wird mit 24 V Signalen angesteuert.

Die Motoransteuerung musste auch bei der neuen Steuerplatine wieder per MOSFETs umgesetzt werden, da die Geschwindigkeit hier per PWM Signal gesteuert wird. Die Lichtansteuerung der LED Streifen in den Bildverarbeitungsboxen sollte ebenfalls per MOSFET geschehen, da die Schaltfrequenz gegebenenfalls recht hoch werden kann und mechanische Relais nicht für höhere Schaltfrequenzen ausgelegt sind. Außerdem benötigen diese eine 12 V Versorgungsspannung. Die Option auf ein weiteres Netzteil, um aus 230 V Netzspannung die 12 V Spannung für die LEDs herzustellen, wurde aufgrund des hohen Kaufpreises für das Netzteil sowie des hohen Aufwandes für den Umbau abgelehnt. Als Alternative wurde sich für die Verwendung von Linearspannungsreglern auf der Steuerplatine entschieden, die aus der vorhandenen Spannung von 24 V, die zur Versorgung der Motoren benötigt werden, 12 V erzeugen sollen.

Bei der Ansteuerung der Ventilinsel gab es ebenfalls zwei Optionen. Die erste Möglichkeit war die Nutzung von Relais, wie z.B. Solid State Relais, durch die Arduino-Ausgänge weniger belastet werden. Die zweite Option war die Nutzung derselben MOSFETs, die schon bei der Ansteuerung der Motoren und des Lichts verwendet wurden. Hier wurde sich auf Grund von bereits vorhandenen Komponenten und der damit verbundenen Einheitlichkeit für die zweite Variante entschieden.

Der Schaltplan der Platine wurde in Multisim erstellt, der Leiterplattenentwurf in Ultiboard. Die Platine wurde anschließend in der Hochschule gefräst und bestückt(siehe Abbildung 1). Zum Anschluss an den Arduino wurde die Platine mit Schraubklemmen versehen. Der Arduino wurde eine Platine aus dem Zubehör erweitert, welche jeden Anschluss als Schraubklemme zur Verfügung stellt, um Platine und Arduino zu verbinden.

Während der Tests der Platine sind 2 MOSFETs aus unbekannten Gründen zerstört worden. Die Platine ist weiterhin für die aktuellen Funktionen einsatzfähig, für die Hinzunahme weiterer Funktionen, wie beispielsweise der Einbindung einer weiteren Druckluft-Düse, müssen die Bauteile jedoch ausgetauscht werden.

Umbau des Schaltschranks

Abbildung 2: Schaltschrank der Anlage

Der Schaltschrank wird über 230 Volt Wechselspannung versorgt. Für die jeweiligen Anforderungen sind ein 5 Volt DC und ein 24 Volt DC Netzteil eingebaut. Die Spannungsausgänge sind auf Verteilerklemmen gelegt, um von dort eine ordentliche Verteilung dieser zu garantieren.

Aufgrund des Einsatzes der neuen Steuerplatine war es notwendig, den Schaltschrank umzubauen (siehe Abbildung 2). Hierzu wurde die alte Steuerplatine entfernt und an ihrer Stelle die neue Sattelplatine mit Schraubklemmen auf dem Arduino installiert. Auch wurde der Arduino auf einer Hutschienenhalterung installiert. Ebenso wurde die neue Steuerplatine auf einer solchen Halterung installiert. Die Anschlüsse untereinander wurden verbunden, die Anschlüsse zu den Geräten außerhalb des Schranks wurden auf Reihenklemmen gelegt.

Im Wintersemester 17/18 ist der Gekodrive und andere Komponenten für den Linearläufer aus dem Schaltschrank entfernt worden. Anstelle dessen, ist die Ansteuerung für die neue Sortierbox hinzugefügt worden. Für die ist eine Versorgungleitung auf die 5 Volt Spannungsklemmen gelegt worden. Die Steuerleitung ist an 6 Klemmen angeschlossen. Diese sind mit den jeweiligen Ausgängen an dem Ardiuno verbunden. Die Steuerleitung ist nicht direkt auf den Ardiuno gelegt worden, damit bei einer Änderung im Schaltschrank flexibel reagiert werden kann.

Hier ist der aktuelle Schaltplan in dem Schaltschrank zu finden.

Anbringen von Warnhinweisen

Die gesamte Anlage wurde auf Gefahren untersucht und an den entsprechenden Stellen wurden Warnhinweise für fliegende Teile oder Einklemmgefahr angebracht. Dieses wurde ebenfalls im Inbetriebnahmeprotokoll festgehalten. Link zum Inbetriebnahmeprotokoll: Inbetriebnahmeprotokoll

[2]

Softwareumsetzung

Die Softwarekomponenten der Legoteil-Zählmaschine wurden in MATLAB und Arduino C implementiert. Um den Entwicklungsprozess zu vereinfachen mussten zunächst die formalen Guidelines überarbeitet werden.

Richtlinien zur Codegestaltung

Die Richtlinien zur Codegestaltung legen die formelle und syntaktische Gestaltung des im Rahmen des Praktikums erzeugten Codes fest.

Insbesondere Liegt der Fokus hier auf:

  • Gestaltung von Headern
  • Benennung von Funktionen und Variablen
  • Umfang von Kommentaren

Die Guidelines beziehen sich in erster Linie auf Code in C/C++ und Matlab, können jedoch auch leicht auf andere Sprachen übertragen werden. Sie wurden im Verlaufe des Semesters mehrfach überarbeitet und angepasst. Dies Erfolgte zuletzt in Zusammenarbeit mit Stephan Marks aus der Gruppe des Autonomen Fahrzeuges. Die entsprechenden Dokumente liegen im SVN oder sind hier im Wiki zu finden und werden auch im weiteren Praktikumsverlauf falls nötig noch erweitert und verbessert werden.

Konkret wurden hierbei folgende Änderungen vorgenommen:

  • Die C Richtlinien wurden auf MATLAB erweitert
  • Variablenbenennung soll auf Deutsch erfolgen
  • Es wurden Anforderungen an Kommentare hinzugefügt, laut denen allein anhand dieser der Programmablauf klar werden muss
  • Das Header Format wurde wie Folgt spezifiziert:
Sprache Modul Funktion
C/C++
/************************************************************\
* 
* Modul	          : ModulName.c
*
* Datum           : 04. Oktober 2013
*
* Beschreibung    : Zweck dieses Moduls
*
* Implementierung : Visual Studio 2012 Professional
*
* Autor           : Mustermann, Max
*
* Bemerkung       : Demo für den ersten Meilenstein
*
* Letzte Änderung : 04. Mai 2018
*
\************************************************************/
/***********************************************************\
* 
* Funktion          : MD_FunktionsName
*
* Datum             : 04. Oktober 2013
*
* Beschreibung      : Zweck dieser Funktion  
*
* Implementierung   : Visual Studio 2012 Professional
*
* Autor             : Mustermann, Max
*
* Bemerkung         : Code-Review noch ausstehend
*
* Letzte Änderung   : 04. Mai 2018
*
* Übergebeparameter :
* Typ       Name        Beschreibung
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* int       n           Anzahl Elemente des Arrays
* double[]  a           Array mit double-Werten
*
* Rückgabeparameter :
* Typ       Beschreibung
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* int       Rückgabe eines Fehlercodes
*
\***********************************************************/
MATLAB
% ***********************************************************\
%
% Modul           : ModulName.m
%
% Datum           : 04. Oktober 2013
%
% Implementierung : MATLAB R2013a
%
% Toolbox         : Example Toolbox
%
% Autor           : Mustermann, Max
%
% Bemerkung       : Code-Review noch ausstehend
%
% Letzte Änderung : 04. Mai 2018
%
%************************************************************/
%************************************************************\
%
% Funktion          : Funktion.m
%
% Datum             : 14. Mai 2018
%
% Implementierung   : MATLAB R2017a
%
% Toolbox           : -
%
% Autor             : Marks, Stephan
%
% Bemerkung         : Beispiel eines Funktions-Headers
%
% Letzte Änderung   : 04. Mai 2018
%
% ***********************************************************/
  • Im Falle des MATLAB Headers soll nach Möglichkeit zudem eine via help Funktionsname aufrufbare Hilfe eingebaut werden. Bei MATLAB wird hierfür stets der erste zusammenhängende Kommentar verwendet, daher sollte sich vor dem eigentlichen Header ein Block folgender Form befinden:
function result = Math_Add_A2B(a, b)
% MATH_ADD_A2B addiert zwei Zahlen   
%
% Syntax:
%   ergebnis = MATH_ADD_A2B(a, b)
%  
% Beschreibung:
%   Es werden die zwei Zahlen 'a' und 'b' 
%   beliebigen Datentyps addiert.
%   result = a + b
%
% Eingangswerte:
%   a: erster Summand
%   b: zweiter Summand
%
% Rückgabewerte:
%   result: Ergebnis der Addition von 'a' und 'b'
%  
% Beispiel:
%   ergebnis = MATH_ADD_A2B(7, 12.583)


Nach der ersten Überarbeitung der Guidelines wurde dann der gesamte bisherige Matlab Code bezüglich der Konformität überprüft und entsprechend überarbeitet. Dabei wurden die Benennungen und Formatierungen in Absprache mit Professor Göbel angepasst, um einen aufgeräumten und einheitlichen Ausgangszustand zu erzeugen, auf dem im Folgesemester weiter aufgebaut werden kann. Dazu wurde jede Datei des Programms analysiert und auf Header, Kommentare, Variablen und Funktionsbenennung untersucht und die Ergebnisse in einer Tabelle festgehalten. Zudem wurde überprüft, ob die einzelnen Funktionen im aktuellsten Programm überhaupt noch Verwendung fanden. Alle nicht verwendeten Programmteile wurden anschließend entfernt. Ein Ausschnitt der erstellten Tabelle ist im Folgenden dargestellt:

Abbildung 3: Ausschnitt aus der Analysetabelle

Eine komplette Liste mit allen überarbeiteten und gelöschten Dateien sowie Informationen zu den Umbenennungen sind im SVN zu finden. Eine erneute Überarbeitung der Header aufgrund wiederholter Anpassungen steht noch aus. Auch Code Reviews wurden aufgrund des Arbeitsaufwandes durch die Überarbeitung und den geringen Programmierfortschritt der anderen Teilteams noch nicht durchgeführt.

[3]

Implementierung einer Hauptfunktion

Abbildung 4: Entwurf des Programmablaufes
Abbildung 5: Entwurf der Sortierhauptfunktion

Bis zum Sommersemster 2017 wurden die Legosortiermaschine durch zwei Programme in Matlab gesteuert. Ein Programm, welches die Separierung steuert, und ein Programm, welches die Bildverarbeitung und Sortierung steuert. Da immer nur ein Programm in Matlab ausgeführt werden kann, werden beide Programme so geändert, dass eine Hauptfunktion die Laufzeiten dieser steuert. Probleme bei der Zusammenführung waren:

  • Die Kameras sollen nur ein mal kalibriert werden
→ Die Kalibrierungen werden am Anfang des Hauptprogramms durchgeführt und nicht mehr in den Unterfunktionen.
  • Die Schnittstelle zum Arduino kann nur ein mal erzeugt werden
→ Die Schnittstelle wird in der Hauptfunktion erzeugt. Da die Unterfunktionen die Schnittstelle brauchen, um Befehle an den Arduino zu senden, muss diese beim Funktionsaufruf übergeben werden.
  • Es soll eine Auswahl zwischen Teach-In und Sortierung geben
→ Die Gui, über welche diese Abfrage läuft, wird als erstes aufgerufen. Bei Auswahl von Teach-In wird in dieses Unterprogramm gesprungen.
  • Wann ist welcher Programmteil dran, damit keine Teile übersehen werden?
→ Die Separierung und Bildverarbeitung laufen immer abwechselnd. Zunächst erzeugt sich die Bildverarbeitung ein Bild. Erkennt sie kein Teil, so wird die Funktion beendet und die Separierung erzeugt sich ein Bild. Diese ermittelt die Anzahl der Teile auf dem Band und pustet diese nach Bedarf auseinander. Danach ermittelt die Bildverarbeitung erneut, ob ein Teil in der Box liegt. Dieser Ablauf wiederholt sich immer wieder.
Um dies umzusetzten, wird in der Separierung die Dauerschleife entfernt und in der Bildverarbeitung wird ein break implementiert, um aus der Schleife zu springen.
  • Was passiert wenn ein Teil in der Bildbox liegt?
→ Erkennt die Bildverarbeitung ein Teil in der Box, so wird das Förderband gestoppt. Die Funktion der Bildverarbeitung wird weiter ausgeführt und das Teil wird mit Hilfe der Merkmale erkannt. Dann wird die Sortierung angesteuert und das Teil wird aus der Box gepustet. Erst jetzt wird die Separierung wieder ausgeführt.
  • Durch das Abwechseln der Funktionen überlagern sich die graphischen Ausgaben der Kamerabilder
→ Die Bilder werden in einer Figur über Subplots angezeigt.
  • Das Programm muss beendbar sein, egal in welchem Programmteil es sich befindet
→ Wird die ESC-Taste gedrückt, so wird dies von dem durchgeführten Programmteil erkannt. Die globale Variabel SSM_abbruch wird auf eins gesetzt und der Programmteil wird verlassen. Die Variabel verhindert nun, dass der andere Programmteil ausgeführt wird und beendet die Schleife um die Unterfunktionen. Wird die ESC-Taste gedrückt, während die Bildverarbeitung ein Teil erkennt, so wird das Programm bis zur Einsortierung weiter durchlaufen. So wird gewährleistet, dass kein Teil in der Bildbox liegen bleibt.
  • Die Datenbank speichert die leere Box bei jedem Programmaufruf als ein Teil
→ Der Wert des erzeugten Teils, wird nach Beendigung des Programms gelöscht
  • Die benötigten Daten sind in vielen verschiedenen Ordnern angeordnet und teilweise schwer zu finden. Außerdem sind dort viele alte nicht verwendete Funktionen
→ Nur die verwendeten Dateien werden in einen neuen Ordner in SVN unter ./SRC/Matlab angeordnet. Dort wird eine neue übersichtliche Ordnerstruktur erzeugt


In Abbildung 4 und 5 sieht man den Programmablauf der Hauptfunktion.


[1]


Arduino-Kommunikation

Zum Ansteuern der Aktoren mithilfe des Arduino Mega, wurde ein Kommunikationsprogramm geschrieben. Dieses ermöglicht dem Nutzer über den PC einen seriellen Befehl an den Arduino zu schicken, der daraufhin den Befehl ausführt. Zu den Befehlen gehören:

  • Ansteuern der LED's in den Kameraboxen für die Erkennung bzw. Separierung
  • Ventilsteuerung für die Druckluftdüsen für die Erkennung bzw. Separierung
  • Einstellung der Servomotoren für die Sortierung
  • Ansteuern der Förderbandmotoren

Für die Botschaften wurde ein einheitliches Framework herausgearbeitet. So besitzt jede serielle Botschaft folgende kodierte Inhalte:

  • Am Anfang jeder Botschaft steht ein B
  • Eine 1-stellige ID, welche die oben aufgeführten Aufgaben repräsentiert
  • Eine 2-stellige Nummer (NR), welche einen bestimmten Aktor beinhaltet
  • Eine 3-stellige Zusatzzahl, welche z.B. den Motoren eine relative Geschwindigkeit vorgibt, den LEDs bzw. Ventilen an/auf und aus/zu vorgibt
  • Die Botschaft wird mit einem E beendet

Eine detalierte Beschreibung der Kommunikation findet sich in folgender Tabelle:

Beschreibung ID NR ZUSATZ Gesamtstring Beispielstring
(ohne Leerzeichen)
Servoansteuerung der Fächer F 00 - 18: für die Fachnummern Z: 000 B ID NR Z E B F 01 055 E (Servo 1 auf 55°)
LED's L 00: Erkennung oben
1: Erkennung unten
2: Sortierung
Z: Status (0=aus; 1 = an) B ID NR Z E B L 01 001 E (Erkennung unten an)
Förderbandmotoren M 00: Bunker
01: Förderband
Z: Power in % B ID NR Z E B M 01 080 E (Förderband mit 80%)
Initalisierungsstellung der Servomotoren I 00 Z: 0 (kein Zusatz) B ID NR Z E B I 00 000 E (alle Servomotoren auf Initalstellung)
Ventile V 00: Erkennung pusten
01: nicht belegt
02: Vereinzelung pusten (1)
03: Vereinzelung pusten (2)
Z: Status (0=aus; 1 = an) B ID NR Z E B V 00 001 E (Erkennung pusten)


Das Programm auf dem Arduino beobachtet dauerhaft den seriellen Eingang und reagiert bei einem Eintreffen einer Botschaft mit einem jeweiligen Ansteuern der digitalen Ausgänge. Das Programm befindet sich im folgenden Ordner: Serielle_Kommunikation_Arduino_Matlab.

[1] [4]

SVN

Die Ordnerstruktur im SVN wurde größtenteils von den Vorsemestern übernommen. In dem Bereich Dokumentation wurden einige Teilbeeiche hinzugefügt um neu entstandene Dokumente sinnvoll abzuspeichern.


Die Nachhaltigkeit des SVN Ordners wurde durch verschiedene Maßnamen verbessert:

  • Entfernen ungenutzter Dateien
    • Im Ordner SRC wurden alte, ungenutzte Dateien entfernt
  • Löschen temporärer Dateien wie Matlab .asv Dateien oder ~$ Dateien von Office Programmen
  • Ignorierliste erweitert
    • .asv Dateien
    • Inventurliste.xls
  • Umbenennungen
    • FARBERKENNUNG_V2 --> Farberkennung
    • createBinary_V3 --> createBinary

[5]

Tests

Test der Verarbeitungszeit

Um die Dauer der Verarbeitungszeit der Maschine aus Spezifikation 0070 zu überprüfen, wird eine Auswahl von Legoteilen in die Maschine eingeworfen. Am Ende wird entschieden, ob die Teile erkannt wurden oder nicht. Die Sortierung wird nicht getestet.

Datum Anzahl Teile erkannte Teile Dauer Verarbeitungsrate Teile/10min Erkennungsrate in % Modifikation
23.04.18 50 13 10 Minuten 13,0 26 Vorvereinzelung entfernt Steigförderband Muster 2
14.05.18 70 33 9,5 Minuten 34,74 47,14 Steigförderband Muster 4; Erhöhung der Bandge-schwindigkeit
28.05.18 70 33 7 Minuten 47,14 47,14 Verbesserung der Farberkennung
25.06.18 81 54 9,5 Minuten 56,84 66,67

[5]

Protokolle

Inbetriebnahmeprotokoll

In einem Inbetriebnahmeprotokoll wurde die Legosortiermaschine im Juni 2018 in Betrieb genommen. Folgende Requirements wurden in diesem Protokoll bearbeitet und als Ergebnis in SVN festgehalten:

Spezifikations-ID Anforderungs-ID Anforderungstitel Beschreibung der Spezifikation
0020 REQ10.2010 Antriebe Elektrischer Antrieb muss vorhanden sein
0030 REQ10.2020 Energieversorgung Per 230V AC Schukostecker
0040 REQ10.2030 Abmessung 2,5m x 1m x 1,5m Grundplattenmontage
0056 REQ10.2040 Sicherheit/ Gefährdungsbeurteilung Drucken und Anbringen von Warnhinweisen

Das Inbetriebnahmeprotokoll ist unter folgendem Link zu finden: Inbetriebnahmeprotokoll

Der Systemtest der elektrischen Antriebe wurde zudem in einem Protokoll festgehalten und ist unter folgendem Link zu finden: Systemtest elektrische Antriebe

[2] [6]

Gefährdungsbeurteilung

Eine Gefährdungsbeurteilung wurde im Juni 2018 erstellt. Folgende Requirements wurden damit erledigt:

Spezifikations-ID Anforderungs-ID Anforderungstitel Beschreibung der Spezifikation
0051 REQ10.2040 Sicherheit/ Gefährdungsbeurteilung Elektrische Sicherheit (Erdung metallischer Teile, Isolationskontrolle, Notabschaltfunktion)
0055 REQ10.2040 Sicherheit/ Gefährdungsbeurteilung Gefährdungsbeurteilung: Welche Teile bringen welche Gefahr mit sich?

Die Gefährdungsbeurteilung wurde in tabellarischer Form angelegt und listet mögliche Gefahren der Legosortiermaschine auf. Von der Grundausstattung über elektrische und mechanische Gefährdungen, wurden auch Gefahrstoffe und Brandgefährdungen kontrolliert.

Mögliche Gefahren wurden dabei in folgende Risikostufen eingeteilt:

  • Kein Risiko
  • Geringes Risiko
  • Großes Risiko

Anhand der Risikostufe werden desweiteren Lösungsmaßnahmen sowie Termine zur Fehlerbehebung festgelegt.

Es wurden die folgenden drei Risiken erkannt:

1.) Eine Betriebsanweisung ist erstellt worden?

Das Risiko wurde als gering eingeschätzt und es wurde die Pflicht aufgenommen, eine Betriebsanweisung zum Meilenstein 4 zu erstellen.

2.) Bewegte Transportmittel, bewegte Arbeitsmittel

Für das Förderband gibt es momentan lediglich einen Warnhinweis und keinen materiellen Einklemmschutz. Dieses Risiko wurde als gering eingeschätzt und zum Meilenstein 3 wird ein Schutz angebracht werden.

3.) Unkontrollierte bewegte Teile

Nach der Bildverarbeitung werden die Legoteile "ausgeschossen". Dieses Risiko wurde ebenfalls als gering eingestuft. Als Maßnahme gilt der Zusammenbau der Sortiereinheit, welcher anschließend vor der Bildverarbeitung positioniert wird.

Die gesamte Gefährdungsbeurteilung wurde in SVN abgelegt und ist unter folgendem Link zu finden: Gefährdungsbeurteilung


[2] [6]

Zusammenfassung

Dieser Artikel beschreibt Punkte zur Hardware und Software, die auf die gesamte Anlage bezogen sind. Umgesetzte Punkte sind die folgenden:

  • Schnittstellen
  • Hardwareumsetzung
    • Schaltschrank
    • Steuerplatine
    • elektrischer Anschluss
  • Softwareumsetzung
    • Coding Richtlinien
    • Ein Hauptprogramm
    • Unterprogramme für Systemteile
    • Kommunikation zwische Arduino und Matlab
    • SVN Organisation
  • Gesamtanlagentest
  • Protokolle
    • Inbetriebnahmeprotokoll
    • Gefährdungsbeurteilung

Liste offener Punkte (LOP)

Die Requirements des Sommersemesters 2018 wurden alle erfüllt. Für das Wintersemester 18/19 sind folgende Punkte in Bezug auf die gesamte Anlage zu erledigen:

  • Erstellen einer Betriebsanweisung
  • Erstellen einer Schritt-für-Schritt Anleitung
  • Neu verdrahten des Schaltschrankes

Autoren

  1. 1,0 1,1 1,2 Autor Nils Busemann
  2. 2,0 2,1 2,2 Autor Marc Eidhoff
  3. Autor Jerome Wolf
  4. Autor Maik Schmotz
  5. 5,0 5,1 Autor Torben Müller
  6. 6,0 6,1 Autor Tobias Brandt

Dies ist ein Unterartikel von der Legoteil_Zählmaschine, welcher die Zusammenführung der einzelnen Teile zu einer Einheit beschrieben.