Kapitel 1 Einleitung
Transcription
Kapitel 1 Einleitung
Universität des Saarlandes, FR Informatik Max-Planck-Institut für Informatik, AG5 Diplomarbeit im Fach Informatik Echtzeitdatenerfassung und Datenkonsolidierung zur Qualitätssicherung einer Getriebefertigungsstrecke Autor Christian Nicolaus Betreuer Prof. Dr.-Ing. Gerhard Weikum Dr. Manfred Hensel Datum der Abgabe 28. Juli 2005 Zusammenfassung Im Getriebewerk der Opel Powertrain GmbH in Rüsselsheim werden im Rahmen der Qualitätssicherung an den einzelnen Montage-Stationen Prozessdaten erfasst. Diese Arbeit befasst sich mit der Entwicklung eines Systems zur Bereinigung und Integration der an den Montage-Stationen anfallenden Prozessdaten, um eine einheitliche Basis für spätere Data Mining-Analysen und sonstige Datenabfragen zu schaffen. Ich versichere hiermit, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Christian Nicolaus Saarbrücken, 28. Juli 2005 Danksagung Diese Arbeit entstand in der Fachrichtung Informatik an der Universität des Saarlandes in Zusammenarbeit mit der Opel Powertrain GmbH in Rüsselsheim. Ich möchte an dieser Stelle folgenden Personen danken: Herrn Dr. Manfred Hensel von der EDS Deutschland GmbH, für die ausgesprochen freundliche Unterstützung bei allen auftretenden Fragen und Problemen sowie die gute Betreuung der Arbeit. Frau Britta Basler von der EDS Deutschland GmbH, für die kritischen und hilfreichen Anmerkungen. Herrn Prof. Dr.-Ing. Gerhard Weikum für die Betreuung der Arbeit seitens der Universität. Allen anderen beteiligten Personen der Opel Powertrain GmbH, der Adam Opel AG sowie der EDS Deutschland GmbH, die mir bei sowohl fachlichen als auch organisatorischen Fragen behilflich waren. Inhaltsverzeichnis 1 Einleitung 1 1.1 Ziel der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Umfeld der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.1 Die Opel Powertrain GmbH . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.2 Das Getriebewerk in Rüsselsheim . . . . . . . . . . . . . . . . . . . . . Inhaltsüberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 1.3 2 3 Bestandsaufnahme 6 2.1 Verbindungstechniken in der Getriebemontage . . . . . . . . . . . . . . . . . . . 6 2.2 Shims . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Aufbau der Montagelinie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 Aufbau einer Montage-Station . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.5 Aufbau eines Operationsstands . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.6 Erfassung von Prozessdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.7 Abweichungen vom normalen Montageprozess . . . . . . . . . . . . . . . . . . 13 Anforderungen 15 3.1 Relevante Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.1 Schraubkraftdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.2 Presskraftdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.1.3 Shim-Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.1.4 Ausschleusungsdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 Relevante Stationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3 Datenkonsolidierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.4 Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.5 Aufbewahrung der Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.6 Systemumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 i INHALTSVERZEICHNIS 4 5 Datenerfassung und Datenübertragung 19 4.1 Datenerfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2 Periodische versus sofortige Datenübertragung . . . . . . . . . . . . . . . . . . 20 4.3 Übertragung der Schraub- und Presskraftdaten . . . . . . . . . . . . . . . . . . . 21 4.3.1 Das Q-DAS ASCII-Transferformat . . . . . . . . . . . . . . . . . . . . 21 4.3.2 DFD/DFX versus DFQ . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.3.3 Anforderungen an die zu erzeugenden DFQ-Dateien . . . . . . . . . . . 24 4.4 Übertragung der Kombinationsdaten . . . . . . . . . . . . . . . . . . . . . . . . 28 4.5 Übertragung der Shim-Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.6 Übertragung der Ausschleusungsdaten . . . . . . . . . . . . . . . . . . . . . . . 29 Grundlagen zur Datenkonsolidierung 30 5.1 Datenqualität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.2 Datenqualitätsprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.2.1 Single Source-Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2.2 Multi Source-Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.3 Datentransformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.4 Datenbereinigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.4.1 Parsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.4.2 Integritätskontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.4.3 Ausreißererkennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Die Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.5.1 Datenanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.5.2 5.5.3 Definition des Zielschemas . . . . . . . . . . . . . . . . . . . . . . . . . Definition der Datenbereinigungsprozesse . . . . . . . . . . . . . . . . . 45 46 5.5 6 ii Datenkonsolidierung 48 6.1 Datenanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 6.1.1 Kombinationsdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 6.1.2 Presskraftdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.1.3 Schraubkraftdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.1.4 Shim-Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.1.5 Ausschleusungsdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.1.6 Beziehungen zwischen den Quellen und Multi Source-Probleme . . . . . 58 6.2 Definition des Zielschemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.3 Definition der Datenbereinigungsprozesse . . . . . . . . . . . . . . . . . . . . . 66 6.3.1 Einlesen und Bereinigen der Kombinationsdaten . . . . . . . . . . . . . 69 6.3.2 Einlesen und Bereinigen der Schraub- und Presskraftdaten . . . . . . . . 72 6.3.3 Einlesen und Bereinigen der Shim-Daten . . . . . . . . . . . . . . . . . 75 INHALTSVERZEICHNIS 7 8 9 iii 6.3.4 Einlesen und Bereinigen der Ausschleusungsdaten . . . . . . . . . . . . 76 6.3.5 Bereinigen der Import- und Fehlertabellen . . . . . . . . . . . . . . . . . 76 Implementierung 77 7.1 Die Applikation QSF40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 7.2 Das Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Tests der Applikation QSF40 82 8.1 Die Applikation QSF40Sim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 8.2 Durchführung der Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Fazit 85 A Tabellen 88 Abbildungsverzeichnis 1.1 Aufbau des F40-Getriebes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Schematischer Aufbau des Getriebewerks . . . . . . . . . . . . . . . . . . . . . 5 2.1 Einpressung einer Welle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Kraft-Weg-Diagramm einer Pressvorgangs . . . . . . . . . . . . . . . . . . . . . 8 2.3 Layout der Montagelinie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.1 Grundstruktur des Q-DAS ASCII-Transferformats (Zeichnung angelehnt an [6]) . 22 4.2 Beispiel für eine DFQ-Datei mit Schraubkraftdaten . . . . . . . . . . . . . . . . 27 4.3 4.4 Beispiel für eine DFQ-Datei mit Presskraftdaten . . . . . . . . . . . . . . . . . . Auszug aus einer Datei mit Kombinationsdaten . . . . . . . . . . . . . . . . . . 28 29 4.5 Auszug aus einer Datei mit Shim-Daten . . . . . . . . . . . . . . . . . . . . . . 29 4.6 Auszug aus einer Datei mit Ausschleusungsdaten . . . . . . . . . . . . . . . . . 29 5.1 Hierarchie von Qualitätskriterien nach [4] . . . . . . . . . . . . . . . . . . . . . 31 5.2 Klassifizierung von Qualitätsproblemen nach [2] . . . . . . . . . . . . . . . . . 33 5.3 Ausreißererkennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.1 Logisches Datenbankmodell (ohne Fehlertabellen) 60 6.2 EQUI-Join zur Zuordnung der Schraub- und Presskraftdaten aus der Vormontage 7.1 . . . . . . . . . . . . . . . . zu den einzelnen Getrieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Aufbau der Applikation QSF40 . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 iv Tabellenverzeichnis 2.1 Aufbau der Kombinationstabelle . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.1 Übersicht der qualitätsrelevanten Stationen . . . . . . . . . . . . . . . . . . . . . 17 4.1 Anzahl erzeugter Dateien in einem Zeitraum von acht Stunden bei einer Durchsatzrate von 350 Getrieben in acht Stunden) . . . . . . . . . . . . . . . . . . . . 20 4.2 Schlüsselfelder eines Werteeintrags . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.1 Statistik zu Beispiel 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2 Statistik zu Beispiel 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.3 Statistik zu Beispiel 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.1 6.2 Metadaten der Kombinationsdaten . . . . . . . . . . . . . . . . . . . . . . . . . Metadaten der Presskraftdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 51 6.3 Toleranzbereiche für Pressoperationen . . . . . . . . . . . . . . . . . . . . . . . 53 6.4 Sollwerte und Toleranzbereiche für Schrauboperationen . . . . . . . . . . . . . . 54 6.5 Metadaten der Schraubkraftdaten . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6.6 Metadaten der Shim-Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.7 Metadaten der Ausschleusungsdaten . . . . . . . . . . . . . . . . . . . . . . . . 58 6.8 Die Tabelle TRANSMISSION . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.9 Die Tabelle STATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.10 Die Tabelle SCREWING OPERATION . . . . . . . . . . . . . . . . . . . . . . 62 6.11 Die Tabelle PRESSING OPERATION . . . . . . . . . . . . . . . . . . . . . . . 62 6.12 Die Tabelle LIMIT SCREWING . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.13 Die Tabelle SCREWING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.14 Die Tabelle LIMIT PRESSING . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.15 Die Tabelle PRESSING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.16 Die Tabelle SHIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.17 Die Tabelle ERROR MEASUREMENT . . . . . . . . . . . . . . . . . . . . . . 66 6.18 Die Tabelle ERROR SHIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6.19 Die Tabelle ERROR COMBINATION . . . . . . . . . . . . . . . . . . . . . . . 67 v TABELLENVERZEICHNIS vi 6.20 Die Tabelle SYSTEM PARAM . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 6.21 Die Tabelle IMPORT COMBINATION . . . . . . . . . . . . . . . . . . . . . . 69 6.22 Die Tabelle COMBINATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.23 Die Tabelle IMPORT MEASUREMENT . . . . . . . . . . . . . . . . . . . . . 73 A.1 Codes zur Identifizierung der Qualitätsmerkmale . . . . . . . . . . . . . . . . . 89 A.2 Von einer DFQ-Datei zu untersützende Schlüsselfelder eines Qualitätsmerkmals . 89 Kapitel 1 Einleitung 1.1 Ziel der Arbeit Aufgrund der hohen Kundenerwartung und der in der EU geltenden Gewährleistungspflicht sind die Automobilhersteller bemüht, qualitativ hochwertige Produkte zu liefern. Denn hohe Produktqualität hält die Zahl der Beanstandungen seitens der Kunden gering, erhöht damit die Kundenzufriedenheit und spart erhebliche Kosten ein. Da hohe Produktqualität schließlich einen wichtigen Wettbewerbsvorteil darstellt, bekommt die Qualitätssicherung einen immer höheren Stellenwert. Im Zuge der Verbesserung der Qualitätssicherung bauen die Unternehmen ihre Qualitätsmanagementsysteme aus. Ein IT-gestütztes Qualitätsmanagementsystem zur durchgehenden Produktionskontrolle in der Serienfertigung ermöglicht es, Rückmeldungen aus dem Fertigungsprozess in die zukünftige Fertigung einzubeziehen, so dass ein kontinuierlicher Qualitätsüberprüfungs- und Verbesserungsprozess sichergestellt wird. Um die Einflussfaktoren der Produktion auf das Produkt zu erkennen, werden qualitätsrelevante Prozessdaten des Fertigungsprozesses erfasst, gespeichert und durch anschließendes Data Mining analysiert. Beim Data Mining handelt es sich um einen automatisierten Prozess, der große Datenbestände anhand von statistischen Verfahren und Techniken des maschinellen Lernens nach signifikanten Mustern und Trends durchsucht, die sonst unerkannt geblieben wären. Data Mining kann als zentrale Phase eines als Knowledge Discovery in Databases (KDD) bezeichneten Prozesses aufgefasst werden. Dieser nicht-triviale Prozess enthält u. a. eine Phase zur Interpretation und Konsolidierung von Mining-Ergebnissen. Die in dieser Phase gewonnenen Erkenntnisse können möglicherweise Anreize für spätere Maßnahmen zur Qualitätsverbesserung darstellen. Im Rahmen der Qualitätssicherung in der Getriebemontage bei der Opel Powertrain GmbH werden im Getriebewerk in Rüsselsheim an den einzelnen Montage-Stationen qualitätsrelevante Prozessdaten erfasst und lokal gespeichert. Die durch die lokale Datenspeicherung verursachte Verteilung der Prozessdaten auf die einzelnen Montage-Stationen erschwert jedoch einfache Datenab- 1 KAPITEL 1. EINLEITUNG 2 fragen und verhindert eine ganzheitliche Sicht auf die Prozessdaten, so dass umfassendere Datenanalysen nicht möglich sind. Daher ist es erforderlich, die an den Montage-Stationen anfallenden Prozessdaten auf einem zentralen Server zusammenzuführen und in ein einheitliches Datenschema zu integrieren. Infolge dessen wird ein schnellerer und genauerer Mining-Prozess ermöglicht, da die Daten auf einer einheitlichen Basis vorliegen. Eine erfolgreiche Integration von Daten verschiedener Quellen erfordert im Allgemeinen eine Konsolidierung der Quelldaten. Zum einen ist häufig die Homogenisierung der Daten erforderlich, um die mitunter in unterschiedlichen Formaten gespeicherten Daten aneinander anzugleichen und an die gemeinsame, in der Regel normalisierte, Zieldatenbank auf dem zentralen Server anzupassen. Zum anderen bedarf es einer Bereinigung der Quelldaten, da die Daten häufig mit Datenmängeln unterschiedlicher Art behaftet sind. Typische Datenmängel sind beispielsweise: • Inkorrekte Angaben, verursacht durch Eingabe-, Mess- oder Verarbeitungsfehler • Logisch widersprüchliche Angaben • Fehlende Angaben • Duplikate im Datenbestand Die Ursachen für Datenmängel oben genannter Art sind vielfältig. In der Regel wird jedoch die Qualität der Daten maßgeblich durch die Datenerfassungsphase im Quellsystem bestimmt. Wird die Datenerfassung beispielsweise von einer Person durchgeführt, so können durch mangelnde Fertigkeiten oder mangelnde Konzentration des Datenerfassers falsche Daten gespeichert werden. Aber auch bei der automatischen Datenerfassung können durch defekte oder unzureichend justierte Messgeräte falsche Daten geliefert werden. Schließlich können unzureichende Eingabekontrollen oder mangelhafte Datenverarbeitungsprozesse, die der Erfassung nachgeschaltet sind, Datenmängel wie etwa fehlende Daten, logisch widersprüchliche Daten oder Duplikate begünstigen. In der Datenübertragungsphase, in der die Datenbestände von den Quellsystemen zum Server übertragen werden, können Datenmängel aus technischen Fehlern (z. B. Netzwerkfehlern) sowie fehlerhaften Datenverarbeitungsprozessen zur Vor- bzw. Nachbereitung der Datenübertragung (z. B. Export aus einer Datenbank) resultieren. Da Datenmängel oben genannter Art die Ergebnisse statistischer Verfahren verfälschen, haben sie einen negativen Einfluss auf die Ergebnisse aus den Data Mining-Analysen, was wiederum innerhalb des KDD-Prozesses zu falschen Schlussfolgerungen in der Phase der Interpretation und Konsolidierung von Mining-Ergebnissen führen kann. Weil demnach Datenmängel den effektiven Nutzen der Daten vermindern können, ist der Prozess der Datenbereinigung mittlerweile ein elementarer Bestandteil der Datenintegration geworden. Der Datenbereinigungsprozess umfasst KAPITEL 1. EINLEITUNG 3 sämtliche Maßnahmen, fehlerhafte Daten zu erkennen und zu beseitigen, um die Qualität der Daten zu erhöhen. Aufgrund der großen Datenmengen, die gewöhnlicher Weise erzeugt werden, ist es unvermeidlich, die Datenbereinigung weitestgehend automatisiert durchzuführen. Ziel dieser Arbeit ist es, für das Getriebewerk der Opel Powertrain GmbH in Rüsselsheim ein System zu entwickeln, welches kontinuierlich neu erfasste Prozessdaten konsolidiert und in eine zentrale Datenbank schreibt, um damit eine einheitliche Basis für Datenanalysen zu schaffen. Mit dem Ziel einer frühzeitigen und automatisierten Fehlererkennung soll das System Fehler behaftete Prozessdaten aussortieren und in einen Fehler-Report schreiben. 1.2 Umfeld der Arbeit 1.2.1 Die Opel Powertrain GmbH Seit Juli 2001 ist die Opel Powertrain GmbH ein Tochterunternehmen der Fiat-GM-Powertrain. Die Verwaltungszentrale der Fiat-GM-Powertrain befindet sich in Turin. Rüsselsheim ist Entwicklungs- und Produktionsstandort für Getriebe und Antriebstechnik mit ca. 1.750 Mitarbeitern. Insgesamt beschäftigt die Fiat-GM-Powertrain 24.000 Mitarbeiter an 17 Fertigungsstandorten und 7 Forschungs- und Entwicklungszentren in neun Ländern Europas, Afrikas, Asiens und Südamerikas. Die Jahresproduktion umfasst ca. 5 Millionen Getriebe und ca. 5 Millionen Motoren. Der Jahresumsatz beläuft sich auf insgesamt 7 Milliarden Euro. Die Fiat-GM-Powertrain ist damit das weltweit größte eigenständige Unternehmen auf dem Antriebssektor. Zu den Kunden zählen u. a. Alfa Romeo, Fiat, Chevrolet, Cadillac, Lancia, Opel, Saab und Vauxhall. 1.2.2 Das Getriebewerk in Rüsselsheim Im Rüsselsheimer Getriebewerk werden gegenwärtig ausschließlich F40-Getriebe in verschiedenen Ausführungen (Typen) produziert. Das F40-Getriebe ist ein 6-Gang-Schaltgetriebe für leistungsstarke Frontantriebe. Die Typenvielfalt wird durch die Erfüllung von individuellen Kundenwünschen (z. B. Übersetzung, Materialbeschaffenheit bestimmter Teile, etc.) verursacht. Der grundlegende Aufbau des Getriebes und damit auch der Montageprozess sind jedoch bei allen Typen identisch. Abbildung 1.1 stellt den grundlegenden Aufbau des Getriebes dar, die zentralen Komponenten des Getriebes sind das Differential in Kombination mit dem Stirnrad, die untere und die obere Hauptwelle, die Antriebswelle sowie das Getriebe- und das Kupplungsgehäuse. Abbildung 1.2 zeigt den schematischen Aufbau des Getriebewerks. Im Logistikbereich werden die Rohteile aus der Schmiede angeliefert, die dann entsprechend ihrer Verwendung auf die Wellenfertigung oder Zahnradfertigung verteilt werden. Anschließend werden die bearbeiteten Rohteile der Härterei zugeführt. In der Härterei werden die Teile durch eine Wärmebehandlung gehärtet. Dieser Prozess ist notwendig, da ungehärtete Teile den hohen Kräften, die in einem Getriebe auf- KAPITEL 1. EINLEITUNG 4 Abbildung 1.1: Aufbau des F40-Getriebes treten, nicht standhalten würden. Nach der Behandlung in der Härterei und anschließend erfolgter Präzisionsnachbearbeitung werden die Teile in den Montagebereich transportiert, wo sie zu einem voll funktionsfähigen Getriebe zusammengesetzt werden. Die vorliegende Arbeit beschränkt sich ausschließlich auf den Bereich der Datenerfassung im Montagebereich. 1.3 Inhaltsüberblick Nach dieser Einleitung wird in Kapitel 2 eine Bestandsaufnahme durchgeführt. Dabei wird jenes Wissen über den Aufbau der Montagelinie sowie über die verschiedenen Abläufe in der Montagelinie vermittelt, welches zum Verständnis späterer Diskussionen führt. In Kapitel 3 werden die Anforderungen seitens der Opel Powertrain GmbH an das zu entwickelnde System beschrieben. Kapitel 4 geht zunächst auf die Datenerfassung an den Montage-Stationen sowie auf die Verfahrensweise bei der Übertragung der Daten von den Montage-Stationen zum Server ein. Anschließend werden die Dateiformate, die bei der Datenübertragung zur Anwendung kommen, beschrieben. Kapitel 5 befasst sich mit den notwendigen Grundlagen zur Datenkonsolidierung. Der Begriff der Datenqualität wird präzisiert und die verschiedenen Datenmängel, die für die Verringerung der Datenqualität verantwortlich sein können, werden genauer erläutert. Abschließend werden mögliche KAPITEL 1. EINLEITUNG 5 Abbildung 1.2: Schematischer Aufbau des Getriebewerks Methoden zur Datenbereinigung sowie eine allgemeingültige Vorgehensweise zur Datenkonsolidierung beschrieben. In Kapitel 6 wird die zuvor beschriebene Vorgehensweise zur Datenkonsolidierung auf den vorliegenden Anwendungsfall angewendet und eine Lösung für das zu entwickelnde System diskutiert. Kapitel 7 geht auf die Implementierung der realisierten Lösung ein. Kapitel 8 erläutert die Vorgehensweise sowie die erzielten Ergebnisse bei den durchgeführten Tests der Implementierung. Abschließend wird in Kapitel 9 ein Fazit gezogen. Kapitel 2 Bestandsaufnahme In diesem Kapitel werden zunächst die notwendigen Grundlagen aus dem Maschinenbau erläutert (Abschnitte 2.1 und 2.2). Anschließend werden der grobe Ablauf des Montageprozesses (Abschnitt 2.3) sowie der Aufbau einer Montage-Station (Abschnitt 2.4) und eines Operationsstandes (Abschnitt 2.5) beschrieben. Außerdem wird auf die Prozessdatenerfassung in der Montagelinie eingegangen (Abschnitt 2.6). Abschließend werden die vorkommenden Abweichungen vom Montageprozess erläutert, da diese Einfluss auf die Erfassung der Prozessdaten haben (Abschnitt 2.7). 2.1 Verbindungstechniken in der Getriebemontage Bei der Getriebemontage werden die einzelnen Teile auf zwei verschiedene Arten miteinander verbunden. Bei den beiden Verbindungsarten handelt es sich um Press- sowie Schraubenverbindungen. Pressverbindungen Wie in Abbildung 2.1 angedeutet, werden bei einer Pressverbindung zwei Teile zusammengefügt, indem sie mithilfe einer Presse ineinander gepresst werden. Während vor dem Pressvorgang zwischen dem Außen- und dem Innenteil ein Übermaß besteht, wirkt nach dem Pressvorgang aufgrund der Werkstoffpressung in der Fügefläche zwischen beiden Teilen eine Haftkraft, durch die die beiden Teile zusammengehalten werden [9]. Der Kräfteverlauf eines Pressvorgangs lässt sich durch ein Kraft-Weg-Diagramm (siehe Abbildung 2.2) beschreiben, welches die aufgewendete Anpresskraft in Abhängigkeit des vom Pressstempel zurückgelegten Weges angibt. Im Rahmen der Qualitätssicherung ist insbesondere die aufgewendete Kraft bei Abschluss des Pressvorgangs von Bedeutung. Da das exakte Erreichen des Sollwertes aus technischen Gründen nicht möglich ist, wird für die aufzuwendende Anpresskraft ein Toleranzbereich festgelegt, der beim Pressvorgang eingehalten werden muss. Während das Überschreiten der oberen Toleranzgrenze zur Beschädigung 6 KAPITEL 2. BESTANDSAUFNAHME 7 Abbildung 2.1: Einpressung einer Welle der entsprechenden Teile führen kann, hat das Unterschreiten der unteren Toleranzgrenze einen ungenügenden Zusammenhalt der Teile zur Folge. Schraubenverbindungen Eine Schraubenverbindung ist eine lösbare Verbindung von Teilen durch eine oder mehrere Schrauben. Wird eine Kopfschraube angezogen, dann entsteht eine Zugkraft (Vorspannkraft) in der Schraube und eine gleich hohe Druckkraft zwischen den zu verschraubenden Teilen. Beim Drehen der Schraube müssen das mit steigende Reibungsmoment im Gewinde und das Reibungsmo- ment unterhalb des Kopfes überwunden werden [9]. Die Summe der beiden Momente ergeben das Anziehdrehmoment, welches für die Qualitätssicherung eine relevante Größe darstellt. Wie bei einem Pressvorgang lässt sich auch der Kräfteverlauf eines Schraubvorgangs durch ein KraftWeg-Diagramm beschreiben. Es zeigt das aufgewendete Drehmoment in Abhängigkeit der vom Schrauber durchgeführten Drehbewegung. Bei einem Schraubvorgang ist es wichtig, dass das aufgewendete Drehmoment bei Abschluss des Schraubvorgangs in einem fest definierten Toleranzbereich liegt. Ein zu geringes Anziehdrehmoment kann dazu führen, dass mögliche Relativbewegungen der Teile gegeneinander nicht genügend verhindert werden. Ein zu hohes Anziehdrehmoment kann eine Beschädigung der Schraube oder des Gewindes und somit ein Versagen der Schraubenverbindung zur Folge haben. 2.2 Shims Aufgrund der Getriebekonstruktion und der Maßtoleranzen bei der Fertigung der einzelnen Getriebeteile existiert längsseitig zwischen den drei existierenden Wellen (Antriebswelle, Obere Hauptwelle, Untere Hauptwelle) und der Gehäusewand sowie zwischen dem Differentialgehäuse und der KAPITEL 2. BESTANDSAUFNAHME 8 Abbildung 2.2: Kraft-Weg-Diagramm einer Pressvorgangs Gehäusewand jeweils ein Spiel. Um diese Spiele auszugleichen, wird zwischen den eben genannten Teilen und der Gehäusewand jeweils eine Scheibe (Shim) eingesetzt, die in etwa vergleichbar mit einer Unterlegscheibe für Schrauben ist. Insgesamt existieren 25 verschiedene Shim-Größen, die zum Ausgleich vorhandener Spiele verwendet werden können. 2.3 Aufbau der Montagelinie Abbildung 2.3 zeigt das Layout der Montagelinie. Die weißen Rechtecke stellen Stationen dar, an denen Getriebe oder Getriebekomponenten von Maschinen bearbeitet werden. Bei der Bearbeitung werden überwiegend Schraub- und Pressoperationen durchgeführt. In dieser Arbeit wird unter einer Schrauboperation ein einzelner Schraubvorgang und unter einer Pressoperation ein einzelner Pressvorgang verstanden. Die grauen Rechtecke skizzieren Operationsstände, an denen Schrauboperationen oder sonstige Tätigkeiten von einer Person durchgeführt werden. Die Montagelinie gliedert sich in drei Verkettungsabschnitte. Während der Verkettungsabschnitt 1 (VK1) die Vormontage des Differentials und der verschiedenen Wellen umfasst, werden im Verkettungsabschnitt 2 (VK2) die Vormontage des Getriebe- und des Kupplungsgehäuses sowie die Endmontage des Getriebes durchgeführt. Der Verkettungsabschnitt 3 (VK3) dient zur Endkontrolle des Getriebes sowie zur Durchführung einiger abschließender Arbeiten am Getriebe. KAPITEL 2. BESTANDSAUFNAHME Abbildung 2.3: Layout der Montagelinie 9 KAPITEL 2. BESTANDSAUFNAHME 10 Ein Ausgangspunkt der Montagelinie sind die Stationen ST010 und ST011, die für die Vormontage des Differentials zuständig sind. Beide führen exakt die gleichen Montageschritte durch und laufen wahlweise im Einzel- oder im Doppelbetrieb. Jedes montierte Differential gelangt über ein Laufband zur Station ST040, an der das Stirnrad montiert wird. Dabei werden jeweils ein Differential und ein Stirnrad miteinander verschraubt. Jedes montierte Stirnrad wird jeweils auf einer separaten Palette, die an den nachfolgenden Stationen jeweils mit einer weiteren Getriebekomponente bestückt wird, abgelegt. Jede der drei nachfolgenden Stationen ST060, ST070 und ST080 ist für die Vormontage genau eines Wellentyps (Untere Hauptwelle, Obere Hauptwelle, Antriebswelle) zuständig. Bei der Wellenvormontage werden im Wesentlichen die Zahnräder der einzelnen Gänge auf die Wellen aufgepresst. Nach Durchlaufen der Station ST080 verfügt jede Palette über ein Differential, welches mit einem Stirnrad verbunden ist, sowie über drei verschiedene Wellen und damit über einen kompletten Wellensatz, der für das Innenleben eines Getriebes erforderlich ist. Ein weiterer Ausgangspunkt der Montagelinie ist die Station ST110. Während an der Station ST110 die Vormontage des Getriebegehäuses erfolgt, wird an der Station ST120 die Vormontage des Kupplungsgehäuses durchgeführt. Bei der Vormontage dieser beiden Gehäusekomponenten werden insbesondere Dichtungsringe in die verschiedenen Gehäuseöffnungen eingepresst. Zusammengesetzt bilden die beiden Gehäusekomponenten das komplette Gehäuse eines Getriebes. Die Getriebe- und Kupplungsgehäuse werden jeweils auf separaten Paletten in abwechselnder Reihenfolge in die Station ST140 eingeschleust. Die Laufbänder der beiden Ausgangspunkte der Montagelinie münden in die Station ST140, an der die Endmontage des Getriebes beginnt. Sobald jeweils eine Palette mit einem kompletten Wellensatz aus der Wellenvormontage sowie eine Palette mit einem Kupplungsgehäuse aus der Gehäusevormontage eingeschleust wurden, wird der Wellensatz in das Kupplungsgehäuse eingebracht und die bei diesem Vorgang frei werdende Palette ausgeschleust. Das auf einer weiteren Palette aus der Gehäusevormontage folgende Getriebegehäuse wird im weiteren Verlauf unmittelbar hinter der Palette des Kupplungsgehäuses mit dem inzwischen eingebrachten Wellensatz transportiert, um an der Station ST190 zum Verschließen des Getriebes verwendet zu werden. Aufgrund dieses Prozessablaufs entscheidet sich an der Station ST140 aus welchen Wellen und aus welchen Gehäusekomponenten ein Getriebe zusammengesetzt wird. An der darauf folgenden Station ST150 werden durch Ermitteln der vorhandenen Spiele die benötigten Shim-Größen ermittelt. Der Einbau der entsprechenden Shims wird an der Station ST160 durchgeführt. Außerdem wird an dieser Station das Einstellen der Lager vorgenommen. An der Station ST190 werden nach erfolgtem Dichtmittelauftrag die beiden Gehäusekomponenten zusammengeschraubt. Während am Operationsstand OP210 gegebenenfalls Korrekturen der Gehäuseverschraubungen durchgeführt werden, wird am Operationsstand OP220 die Schaltmechanik montiert. KAPITEL 2. BESTANDSAUFNAHME 11 Im Verkettungsabschnitt 3 werden an den Stationen ST250, ST260 und ST270 akustische Endkontrollen durchgeführt, bei denen das montierte Getriebe im laufenden Betrieb getestet wird. Die darauf folgenden Stationen sind für einige abschließende Arbeiten zuständig, wie beispielsweise die Ölaufbereitung sowie das Einlasern der Getriebe-Seriennummer in das Getriebegehäuse. Als letzte Tätigkeit wird an der Station ST300 ein Etikett mit der Getriebe-Seriennummer gedruckt, welches anschließend zur logistischen Erfassung des Getriebes eingescannt wird. Von diesem Moment an steht das fertig montierte Getriebe dem Vertrieb zur Verfügung. 2.4 Aufbau einer Montage-Station An jeder Montage-Station befinden sich verschiedene Fügevorrichtungen, deren Art und Anzahl von den durchzuführenden Operationen abhängt. Für Schrauboperationen existieren ausschließlich Schraubvorrichtungen der Firma Bosch und für Pressoperationen ausschließlich Pressvorrichtungen der Firma Promess. Jede Fügevorrichtung verfügt wiederum über mindestens eine Spindel, die je nach Art der Fügevorrichtung ein einzelner Schrauber oder ein einzelner Pressstempel ist. Jeder Spindel ist eine Spindelnummer zugewiesen, dazu werden die Press- und Schraubspindeln einer Montage-Station jeweils von bis durchnummeriert. Eine eindeutige Spindelnummernzuordnung, über alle Press- und Schraubspindeln einer Montage-Station betrachtet, existiert nicht. Abgesehen von ein paar Ausnahmen bei den Pressspindeln, bei denen Verpressungen in zwei Schritten durchgeführt werden, wird jedes Teil genau einmal von ein und derselben Spindel bearbeitet. Erfolgt eine Verpressung in zwei Schritten, so kann jeder Schritt als eine eigene Pressoperation aufgefasst werden. Jede Spindel ist mit einem Steuergerät verbunden, welches für die Steuerung der entsprechenden Spindel und zum Empfangen der an dieser Spindel anfallenden Prozessdaten verantwortlich ist. Des Weiteren ist jede Station mit einem gewöhnlichen Rechner (Microsoft WindowsNT 4.0) ausgestattet, der über ein lokales 10MBit-Netzwerk mit dem zentralen Server verbunden ist. In jedem Rechner ist eine speicher-programmierbare Steuereinheit (SPS) eingebaut, die wiederum mit den an der Montage-Station befindlichen Steuergeräten verbunden ist. Eine SPS ist ein Automatisierungsgerät, welches die autarke Steuerung des gesamten Montageprozesses an der MontageStation übernimmt. Über eine Steuerungssoftware auf dem Rechner der Montage-Station können jeder Spindel die Sollwerte sowie die Toleranzbereiche für Weg (Drehwinkel/Einpresstiefe) und Kraft (Drehmoment/Einpresskraft) zugewiesen werden. 2.5 Aufbau eines Operationsstands Operationsstände dienen insbesondere der Durchführung kleinerer Reparaturen an Werkstücken. Beispielsweise kann am Operationsstand OP050 eine Verschraubung von einem Arbeiter korrigiert werden, wenn diese zuvor an der Station ST040 aus irgendwelchen Gründen nicht zufriedenstel- KAPITEL 2. BESTANDSAUFNAHME Feldname ID OPEL ID SAAB ID FIAT TIMESTAMP V ID1 V ID2 V ID3 V ID4 V ID5 V ID6 Felddatentyp Text Text Text Datum/Uhrzeit Text Text Text Text Text Text 12 Beschreibung Getriebe-Seriennummer Kunden-Seriennummer (SAAB) Kunden-Seriennummer (FIAT) Zeitpunkt der Erfassung Virtuelle Kennung: Stirnrad/Differential (ST040) Virtuelle Kennung: Untere Hauptwelle (ST060) Virtuelle Kennung: Obere Hauptwelle (ST070) Virtuelle Kennung: Antriebswelle (ST080) Virtuelle Kennung: Getriebegehäuse (ST110) Virtuelle Kennung: Kupplungsgehäuse (ST120) Tabelle 2.1: Aufbau der Kombinationstabelle lend durchgeführt wurde. Die Verschraubung erfolgt in diesem Fall mit einem Handschrauber. Am Operationsstand OP090 besteht die Möglichkeit, auf einer Palette eine fehlerhafte Getriebekomponente aus der Wellenvormontage auszutauschen. Das Austauschen einer Welle ist beispielsweise dann notwendig, wenn bei der besagten Welle das Aufpressen eines Zahnrades in einer der zuvor durchlaufenen Stationen fehlgeschlagen ist. Eine Reparatur von fehlerhaften Verpressungen erfolgt grundsätzlich nicht, stattdessen werden die betroffenen Teile ausgetauscht und verschrottet. 2.6 Erfassung von Prozessdaten Jeweils zu Beginn der Montage eines Stirnrades (Station ST040) und der Vormontage einer Welle (Stationen ST060, ST070 und ST080) sowie der Vormontage einer Gehäusekomponente (Stationen ST110 und ST120) weist die jeweilige Montage-Station der entstehenden Komponente eine achtstellige Seriennummer zu, die als virtuelle Kennung bezeichnet wird. Jede Montage-Station verwendet dabei ein eigenes Nummernband. Die erzeugte Kennung wird auf einen elektronischen Datenträger unterhalb der Palette geschrieben, auf der die Komponente abgelegt wird. Der Datenträger ist in der Lage, die Seriennummern sämtlicher auf der Palette befindlichen Teile zu speichern. Sobald an der Station ST140 die für ein Getriebe notwendigen Komponenten aus der Vormontage kombiniert werden, wird dem in diesem Moment entstehenden Getriebe eine Getriebe-Seriennummer zugewiesen. Ist das Getriebe für die Kunden Saab oder Fiat vorgesehen, so erhält das Getriebe zusätzlich zur Getriebe-Seriennummer eine Kunden-Seriennummer. Die virtuellen Kennungen auf den Datenträgern der drei Paletten aus der Vormontage werden ausgelesen und zusammen mit der zugewiesenen Getriebe-Seriennummer und ggf. der Kunden-Seriennummer in eine Tabelle einer Microsoft Access-Datenbank geschrieben, deren Aufbau in Tabelle 2.1 dargestellt ist. Damit lässt sich für jedes Getriebe nachvollziehen, aus welchen Komponenten es zusammengesetzt wurde. Mit Ausnahme der Palette, die nach Einbringung des Wellensatzes in das Kupplungsgehäuse aus- KAPITEL 2. BESTANDSAUFNAHME 13 geschleust wird, werden die virtuellen Kennungen auf den Datenträgern der Paletten durch die zugewiesene Getriebe-Seriennummer ersetzt. Von diesem Zeitpunkt an hat nur noch die GetriebeSeriennummer Gültigkeit. Während der Bearbeitung einer Komponente bzw. eines Getriebes durch eine Montage-Station sendet die SPS über einen Datenbus Steuerbefehle an die Steuergeräte der einzelnen Spindeln, dabei wird auch die Seriennummer des zu bearbeitenden Teils übermittelt. Wie bereits erwähnt, wird in der Vormontage die Seriennummer an der jeweiligen Montage-Station selbst erzeugt, in der Endmontage wird die Seriennummer des bearbeiteten Getriebes aus dem Datenträger unterhalb der Palette ausgelesen. Die an den Steuergeräten anfallenden Prozessdaten werden samt der Seriennummer des bearbeiteten Teils direkt von dem jeweiligen Steuergerät an den Rechner der Montage-Station gesendet. Prozessdaten einer fehlgeschlagenen Operation werden dabei mit einem entsprechenden Fehlercode versehen. Die auf dem Rechner installierte Steuerungssoftware speichert die von den Steuergeräten empfangenen Prozessdaten im lokalen Dateisystem. Handelt es sich bei den Prozessdaten um Daten einer Schrauboperation, so werden die Werte in dem von der Firma Aton GmbH entwickelten Datenbankformat Nexum gespeichert. Prozessdaten einer Pressoperation werden dagegen in eine Microsoft Access-Datenbank geschrieben. Die eben genannten Datenhaltungssysteme für die Prozessdaten von Schraub- und Pressoperationen werden an dieser Stelle nicht weiter beschrieben, da sie im Rahmen dieser Arbeit nicht weiter verwendet werden sollen (vgl. Abschnitt 4.1). 2.7 Abweichungen vom normalen Montageprozess Aufgrund von Ausfällen von Fügevorrichtungen oder aufgrund von fehlgeschlagenen Operationen kann es zu Abweichungen vom normalen Montageprozess kommen. Da diese Umstände Einfluss auf die Datenerfassung haben, werden diese kurz beschrieben: • Kommt es zu einem Ausfall einer Schraubvorrichtung, führen die Arbeiter die Verschraubungen mithilfe eines Handschraubers durch. Wie bei der Durchführung einer Verschraubung an einem Operationsstand, erfolgt in diesem Fall keine Erfassung der zugehörigen Prozessdaten. • Wie in Abschnitt 2.5 erwähnt, kann am Operationsstand OP090 ein Austausch einer Getriebekomponente erfolgen. In diesem Fall wird die virtuelle Kennung der ausgetauschten Komponente auf dem Datenträger der Palette nicht durch die Kennung der neuen Komponente ersetzt. Stattdessen erhält das Datenfeld auf dem Datenträger lediglich den Wert 99999999“ ” um den Austausch der Komponente als Solchen zu erfassen. Eine Rückverfolgung von Prozessdaten für die Ersatzkomponente ist demnach nicht mehr möglich. KAPITEL 2. BESTANDSAUFNAHME 14 • Falls innerhalb des Verkettungsabschnittes 2 eine Pressoperation fehlschlägt, wird das betroffene Getriebe ausgeschleust und wahlweise repariert oder verschrottet. Im Falle einer Reparatur wird das defekte Teil durch ein intaktes Teil ersetzt und das Getriebe anschließend wieder eingeschleust. Der Austausch des defekten Teils wird DV-technisch nicht erfasst. Im Falle einer Verschrottung wird das Getriebe komplett auseinander gebaut. Während die defekten Teile verschrottet werden, dienen die intakten Teile zukünftig als Ersatzteile. Kapitel 3 Anforderungen Die Aufgabenstellung in der vorliegenden Arbeit ist in Kapitel 1 erläutert. Es sollen qualitätsrelevante Merkmale der in der Montagelinie anfallenden Prozessdaten erfasst, über das Netzwerk auf einen zentralen Server übertragen und in konsolidierter Form in einer Datenbank gespeichert werden. Die genauen Anforderungen seitens der Opel Powertrain GmbH an das zu entwickelnde System werden in diesem Kapitel beschrieben. 3.1 Relevante Daten Es existieren drei verschiedene Arten von Daten, die im Rahmen der Qualitätssicherung relevant sind und als Qualitätsdaten bezeichnet werden. Es handelt sich dabei um Schraub- und Presskraftdaten sowie Shim-Daten. 3.1.1 Schraubkraftdaten Zu einer Schrauboperation sollen folgende Merkmale erfasst werden: • Getriebe-Seriennummer und Kunden-Seriennummer • Stationsnummer und Spindelnummer • Endstand des Drehwinkels • Endstand des Anziehdrehmoments • Aktuell geltender unterer und oberer Grenzwert für den Endstand des Drehwinkels • Aktuell geltender unterer und oberer Grenzwert für den Endstand des Anziehdrehmoments • Zeitpunkt der Operation 15 KAPITEL 3. ANFORDERUNGEN 16 3.1.2 Presskraftdaten Zu einer Pressoperation sollen folgende Attribute erfasst werden: • Getriebe-Seriennummer und Kunden-Seriennummer • Stationsnummer, Spindelnummer und Schrittnummer1 • Endstand der Einpresstiefe • Endstand der Einpresskraft • Aktuell geltender unterer und oberer Grenzwert für den Endstand der Einpresstiefe • Aktuell geltender unterer und oberer Grenzwert für den Endstand der Einpresskraft • Zeitpunkt der Operation 3.1.3 Shim-Daten An der Station ST150 werden die für ein Getriebe zu verwendenden Shim-Größen ermittelt. Dabei sollen folgende Attribute erfasst werden: • Getriebe-Seriennummer und Kunden-Seriennummer • Shim-Klasse • Getriebekomponente, für die das Shim verwendet werden soll • Zeitpunkt der Erfassung 3.1.4 Ausschleusungsdaten Ergänzend zu den bisher genannten Qualitätsdaten soll der Zeitpunkt erfasst werden, zu dem ein Getriebe aus der letzten Station (ST300) ausgeschleust wird und damit die Montagelinie ordnungsgemäß verlässt. 3.2 Relevante Stationen Obwohl an allen Stationen in den Verkettungsabschnitten 1 und 2 Press- und/oder Schrauboperationen durchgeführt werden, sind im Rahmen der Qualitätssicherung nur die Schraub- und Presskraftdaten relevant, die an den in Tabelle 3.1 aufgelisteten Stationen erfasst werden. Zusätzlich zeigt die Tabelle, über wie viele Schraub- und Pressspindeln die einzelnen Stationen verfügen. 1 Falls eine Verpressung in zwei Schritten durchgeführt wird, dient die Schrittnummer zur Unterscheidung der beiden Pressoperationen. KAPITEL 3. ANFORDERUNGEN Station ST040 ST110 ST120 ST140 ST150 ST160 ST300 Anzahl Schraubspindeln 2 2 1 1 - Anzahl Pressspindeln 1 5 9 4 4 - 17 Montageschritt Montage des Stirnrades Vormontage des Getriebegehäuses Vormontage des Kupplungsgehäuses Einpressen der Innenringe Ermitteln der zu verwendenden Shim-Größen Einstellen der Lager sowie Einbau der Shims Erfassen des Ausschleusungszeitpunktes Tabelle 3.1: Übersicht der qualitätsrelevanten Stationen 3.3 Datenkonsolidierung Bei der Datenkonsolidierung sollen folgende Anforderungen berücksichtigt werden: • Bei allen Messwerten ist eine Genauigkeit von zwei Stellen nach dem Komma ausreichend. • Qualitätsdaten, die aufgrund einer fehlgeschlagenen Operation bereits vom Messsystem mit einem entsprechenden Fehlercode versehen wurden, sollen nicht gespeichert werden. In einem solchen Fall kann man davon ausgehen, dass die betroffene Operation wiederholt wird oder das Getriebe ausgeschleust und verschrottet wird. • Falls eine Operation wiederholt wird, sollen nur jene Daten erfasst werden, die mit der wiederholten Durchführung im Zusammenhang stehen. Die Daten des ersten Versuchs sollen in diesem Fall verworfen werden. Obwohl mehrere Messungen, die das gleiche Getriebe und die gleiche Operation betreffen, verschiedene Entitäten der Realität sind, werden die entsprechenden Datensätze als Duplikate bezeichnet. • Qualitätsdaten, die aufgrund fehlerhafter Werte nicht gespeichert werden können, sollen in einen Fehler-Report geschrieben werden. Eine Korrektur von falschen oder fehlenden Werten soll in keinem Fall erfolgen. • Falls für ein Getriebe nicht zu allen Operationen ein entsprechender Datensatz vorhanden ist, so wird dies toleriert. 3.4 Frontend Es soll ein Frontend zur Verfügung gestellt werden, mit dem der Anwender nach Getrieben suchen und sich Qualitätsdaten anzeigen lassen kann. Das Frontend soll mit der JSP/Servlet-Technologie KAPITEL 3. ANFORDERUNGEN 18 realisiert werden. Im Folgenden werden zwei Anwendungsfälle beschrieben, um die Anforderungen an das Frontend zu verdeutlichen. Anwendungsfall 1 Der Anwender gibt entweder eine vollständige Seriennummer (Getriebe-Seriennummer oder Kunden-Seriennummer) oder die ersten Zeichen der Seriennummer ein und startet die Suche. Anschließend wird dem Anwender eine Auswahlliste der zur Sucheingabe passenden Seriennummern angezeigt. Nach Auswahl einer Seriennummer wird dem Anwender eine Liste derjenigen Stationen angezeigt, zu denen Qualitätsdaten bezüglich des ausgewählten Getriebes verfügbar sind. Nach Auswahl einer Station wird dem Anwender die Gesamtheit aller an der Station angefallenen Qualitätsdaten bezüglich des ausgewählten Getriebes angezeigt. Anwendungsfall 2 Der Anwender spezifiziert einen Getriebetyp und/oder einen Zeitraum für den Ausschleusungszeitpunkt und startet die Suche. Anschließend werden dem Anwender die Seriennummern derjenigen Getriebe angezeigt, die alle spezifizierten Suchkriterien erfüllen. 3.5 Aufbewahrung der Daten Die erfassten Qualitätsdaten müssen für einen Zeitraum von mindestens zwei Jahren aufbewahrt werden. Diese Anforderung ergibt sich aus den Richtlinien in [8], die eine Grundlage zur ISOZertifizierung darstellen. Angesichts der geplanten Data Mining-Analysen wird jedoch von einem Aufbewahrungszeitraum von mindestens zehn Jahren ausgegangen. 3.6 Systemumgebung Die konsolidierten Daten sollen in einer Oracle -Datenbank unter Sun Solaris gespeichert werden. Als Programmiersprache soll Java J2SE 1.4 oder höher verwendet werden. Bei der Implementierung soll berücksichtigt werden, dass die gesamte Konsolidierung möglichst in einer eigenständigen Applikation erfolgt, um eine schwache Kopplung mit anderen Applikationen auf dem Server sicherzustellen. Kapitel 4 Datenerfassung und Datenübertragung In diesem Kapitel wird zunächst auf die Datenerfassung an den Montage-Stationen (Abschnitt 4.1) sowie auf die Verfahrensweise bei der Übertragung der Daten von den Montage-Stationen zum Server (Abschnitt 4.2) eingegangen. In den darauf folgenden Abschnitten werden die bei der Datenübertragung verwendeten Dateiformate detailliert beschrieben. 4.1 Datenerfassung Das Auslesen der Schraub- und Presskraftdaten aus den Steuergeräten an den einzelnen MontageStationen erfolgt durch die Steuerungssoftware, die von dem Lieferanten der jeweiligen Fügevorrichtung entwickelt und betrieben wird. Die bisher verwendeten Datenhaltungssysteme an den Montage-Stationen für die Schraub- und Presskraftdaten (vgl. Abschnitt 2.6) werden jedoch im Rahmen dieser Arbeit nicht verwendet. Stattdessen kommt eine Textdateibasierte Datenhaltung im so genannten Q-DAS ASCII-Transferformat, welches in Abschnitt 4.3.1 näher beschrieben wird, zur Anwendung. Auf diese Weise wird die Möglichkeit geschaffen, bei Bedarf die Schraubund Presskraftdaten der Quellsysteme mit anderweitiger Statistik-Software (z. B. QS-STAT), die das Q-DAS-Dateiformat als Eingabeformat unterstützt, zu verarbeiten. Aus technischen Gründen existiert für jedes Steuergerät ein Datei-erzeugendes System, so dass die an den einzelnen Steuergeräten einer Montage-Station anfallenden Schraub- und Presskraftdaten jeweils in separaten Dateien gespeichert werden. Für die Erfassung der Kombinationsdaten, der Shim-Daten sowie der Ausschleusungsdaten sind ebenfalls die Lieferanten der jeweiligen Vorrichtung verantwortlich. Zur Erfassung der Kombinationsdaten wird das bestehende Datenhaltungssystem (vgl. Abschnitt 2.6) dahingehend modifiziert, dass das in Abschnitt 4.4 beschriebene Dateiformat erzeugt wird. Für Shim-Daten und Ausschleusungsdaten bestehen zum Bearbeitungszeitpunkt der Arbeit noch keine Datenhaltungssysteme. Für diese Datenarten wird jeweils ein Datei-erzeugendes System eingerichtet. Die Dateiformate, die dabei zur Anwendung kommen, werden in den Abschnitten 4.5 und 4.6 beschrieben. 19 KAPITEL 4. DATENERFASSUNG UND DATEN ÜBERTRAGUNG Station Anzahl Dateierzeugende Systeme ST040 ST110 ST120 ST140 ST150 ST160 ST300 5 6 10 5 1 4 1 Anzahl Dateien (periodisch, Periodendauer: acht Stunden) 5 6 10 5 1 4 1 Anzahl (sofort) 20 Dateien 1750 2100 3500 1750 350 1400 350 Tabelle 4.1: Anzahl erzeugter Dateien in einem Zeitraum von acht Stunden bei einer Durchsatzrate von 350 Getrieben in acht Stunden) 4.2 Periodische versus sofortige Datenübertragung Die Übertragung der an den Montage-Stationen anfallenden Daten zum Server erfolgt automatisiert in Form von Textdateien mittels des File-Transfer-Protocols (FTP). Zu Beginn dieser Arbeit ist ungeklärt, ob die Datenübertragung sofort oder periodisch erfolgen soll. Andere Verfahrensweisen sind aus technischen und unternehmenspolitischen Gründen von vornherein ausgeschlossen. Unter der sofortigen Datenübertragung wird in dieser Arbeit eine Verfahrensweise verstanden, bei der eine Datenübertragung zum Server ausgelöst wird, sobald in einem Steuergerät alle Daten bezüglich eines bearbeiteten Teils eingetroffen sind. Dies bedeutet, dass für jedes bearbeitete Teil eine separate Quelldatei erzeugt wird, die sofort nach Speicherung der entsprechenden Daten abgeschlossen und zum Server übertragen wird. Unter der periodischen Datenübertragung wird in dieser Arbeit eine Verfahrensweise verstanden, bei der die Datenübertragung zum Server in periodischen Zeitabständen erfolgt. Dazu werden alle Daten, die während einer definierten Zeitperiode in einem Steuergerät eintreffen, in einer Datei gespeichert. Nach Ablauf einer Zeitperiode wird diese Datei abgeschlossen und zum Server übertragen. Vorteile der sofortigen Datenübertragung sind die geringere Verlustrate der Daten sowie die gleichmäßigere Auslastung des Netzwerkes. Nachteilig wirkt sich jedoch das hohe Dateiaufkommen aus, da als Konsequenz einer sofortigen Datenübertragung pro Steuergerät und bearbeitetem Teil eine Datei erzeugt wird. Tabelle 4.1 zeigt die Anzahl der innerhalb einer achtstündigen Zeitperiode erzeugten Dateien bei einer periodischen Datenübertragung im Vergleich zur Anzahl der im selben Zeitraum erzeugten Dateien bei einer sofortigen Datenübertragung. Im Falle eines Server- oder KAPITEL 4. DATENERFASSUNG UND DATEN ÜBERTRAGUNG 21 Netzwerkausfalls müssen die im Zeitraum des Ausfalls erzeugten Dateien im lokalen Dateisystem des Rechners an der Montage-Station gepuffert werden. Bei der sofortigen Datenübertragung würden je nach Dauer des Ausfalls einige hundert oder gar tausend Dateien anfallen, die nach Behebung des Ausfalls zum Server übertragen werden müssten. Die Praxis hat gezeigt, dass eine Montage-Station dazu nicht in der Lage ist. Erfahrungsgemäß kommt es zu einem Rechnerabsturz an der betroffenen Montage-Station, was wiederum den Ausfall der Montage-Station und zuletzt den Ausfall der gesamten Montagelinie zur Folge hätte. Die Instabilität der Rechner an den Montage-Stationen wird durch die Steuerungssoftware der Lieferanten verursacht. Aufgrund der beschriebenen Nachteile, die sich aus einer sofortigen Datenübertragung ergeben, wird die periodische Datenübertragung gewählt. Dazu werden sämtliche in einem Steuergerät eintreffenden Daten in eine Datei geschrieben, die nach Ablauf einer Schicht abgeschlossen und zum Server übertragen wird. Als Periodendauer wird die Dauer einer Schicht (acht Stunden) gewählt, weil dadurch die Datenübertragung zwischen zwei Schichten erfolgen kann und damit eine Beeinträchtigung des Montageprozesses an der Montage-Station als Folge der Datenübertragung ausgeschlossen werden kann. Die Lieferanten sind damit beauftragt, unter Berücksichtigung der in den folgenden Abschnitten beschriebenen Anforderungen an die Dateiformate entsprechende Prozesse zur Datenerfassung und Datenübertragung einzurichten. Die Verantwortung für alle Prozesse von der Erfassung bis zur Ablieferung der Daten auf dem Server verbleibt bei der Abteilung Getriebefertigung. 4.3 Übertragung der Schraub- und Presskraftdaten Wie bereits erwähnt, erfolgt die Übertragung der Schraub- und Presskraftdaten im Q-DAS ASCIITransferformat, welches im folgenden Abschnitt näher beschrieben wird. Da das Dateiformat komplex ist, werden dabei lediglich die für diese Arbeit relevanten Strukturen des Dateiformats beschrieben. Das Dateiformat ermöglicht es außerdem, denselben Sachverhalt auf verschiedene Arten im Bezug auf Struktur und Datenrepräsentation darzustellen. Die in den folgenden Abschnitten beschriebene Darstellungsweise ist jene, die mit den Lieferanten vereinbart wurde. 4.3.1 Das Q-DAS ASCII-Transferformat Das Q-DAS ASCII-Transferformat wurde von der Q-DAS GmbH in Zusammenarbeit mit dem Automobilhersteller Ford entwickelt und in [6] definiert. Motivation für die Definition des Transferformates war, ein einheitliches Dateiformat zum Austausch von Qualitätsdaten zwischen verschiedenen Systemen zu bieten. Dabei sollte sich das Dateiformat insbesondere durch folgende Eigenschaften auszeichnen [6]: Transparenz Es sollte einen einfachen und transparenten Aufbau haben, welches für den Anwen- KAPITEL 4. DATENERFASSUNG UND DATEN ÜBERTRAGUNG 22 Abbildung 4.1: Grundstruktur des Q-DAS ASCII-Transferformats (Zeichnung angelehnt an [6]) der leserlich und editierbar ist. Flexibilität Es sollte so flexibel sein, dass man beliebig viele Inhalte und somit beliebig viele Qualitätsmerkmale von verschiedenen Teilen erfassen kann. Komprimierbarkeit Der Inhalt einer Q-DAS-Datei sollte sich gut komprimieren lassen. Mittlerweile hat sich das Dateiformat zum weltweiten Standard insbesondere in der Automobilindustrie etabliert. Neben dem Q-DAS ASCII-Transferformat wurde neuerdings auch ein XMLbasiertes Format QML zur Darstellung von Qualitätsdaten definiert. Wie aus Abbildung 4.1 ersichtlich, besteht das Q-DAS ASCII-Transferformat aus einem Beschreibungs- und einem Werteteil. Die beiden Teile können entweder in zwei getrennte Dateien oder in eine gemeinsame Datei geschrieben werden. Während eine Datei, die beide Teile beinhaltet, mit der Endung DFQ gekennzeichnet wird, tragen eine Wertedatei die Endung DFX und eine Beschreibungsdatei die Endung DFD. Um ein zusammengehöriges DFD/DFX-Datei-Paar zuordenbar zu machen, werden die zusammengehörigen Dateien abgesehen von ihrer Dateiendung gleichnamig benannt. Sowohl der Beschreibungsteil als auch der Werteteil basieren auf Schlüsselfeldern, deren jeweilige Bedeutung in [6] eindeutig definiert wurde. Beschreibungsteil Im Beschreibungsteil werden Informationen abgelegt, die zur Interpretation und Auswertung der im Werteteil gespeicherten Daten notwendig sind. Dies sind u. a. Informationen über die Qualitätsmerkmale, zu denen Messwerte im Werteteil der Datei gespeichert sind. Ein Qualitätsmerkmal KAPITEL 4. DATENERFASSUNG UND DATEN ÜBERTRAGUNG 23 ist eine qualitätsrelevante Größe wie etwa das aufgewendete Drehmoment bei einer Schrauboperation. Jedes Schlüsselfeld im Beschreibungsteil steht in einer eigenen Zeile und besteht aus einer Schlüsselnummer, gefolgt von einem Leerzeichen und dem eigentlichen Feldinhalt. Am Anfang des Beschreibungsteils, im so genannten Kopf, befindet sich das Schlüsselfeld K0100, in dem die Gesamtanzahl der im Beschreibungsteil beschriebenen Qualitätsmerkmale hinterlegt ist. Es folgen jeweils in einem Block die Teiledaten (K1000 - K1999), die Merkmalsdaten (K2000 - K2999), die Prüfplandaten (K3000 - K3999), die Verwaltungsdaten (K4000 - K4999) sowie die Sonstigen Daten (K5000 - K5999). Im Folgenden wird lediglich auf die Merkmalsdaten eingegangen, da die übrigen Daten des Beschreibungsteils für die Datenauswertung im Rahmen dieser Arbeit nicht relevant sind. Wie bereits erwähnt, können in einer Q-DAS-Datei Messwerte zu beliebig vielen Qualitätsmerkmalen gespeichert werden. Mithilfe der Merkmalsdaten werden die Eigenschaften aller Qualitätsmerkmale, zu denen Messwerte bei der Bearbeitung eines Teils erfasst und im Werteteil gespeichert wurden, beschrieben. Dies sind z. B. Eigenschaften wie Art der Messgröße, verwendete Messeinheit oder die Grenzwerte, die für dieses Qualitätsmerkmal zum Zeitpunkt der Operation an der Montage-Station eingestellt waren. Zur Beschreibung eines Qualitätsmerkmals dienen die Schlüsselfelder K2000 - K2999 (z. B. Schlüsselfeld K2142 für die verwendete Messeinheit). Werden in einer Q-DAS-Datei mehrere Qualitätsmerkmale beschrieben, so werden folglich einige der Schlüsselfelder mehrfach verwendet. Um die verwendeten Schlüsselfelder einzelnen Qualitätsmerkmalen zuordnen zu können, werden die beschriebenen Qualitätsmerkmale von bis durchnummeriert, so dass jedes Qualitätsmerkmal eine eindeutige Merkmalsnum- mer erhält. Zur Zuordnung eines Schlüsselfeldes zu einem Qualitätsmerkmal wird schließlich die Schlüsselnummer des Schlüsselfeldes um die jeweilige Merkmalsnummer ergänzt (z. B. K2001/1). Soll der angegebene Wert eines Schlüsselfeldes für alle Merkmale gelten, kann als Merkmalsnummer der Wert “ angegeben werden (z. B. K2001/0). ” Werteteil Bei der Bearbeitung eines Teils wird zu jedem im Beschreibungsteil beschriebenen Qualitätsmerkmal ein Messwert erfasst. Für jeden Messwert wird im Werteteil ein Werteeintrag angelegt, der neben dem eigentlichen Messwert noch weitere Schlüsselfelder beinhaltet. Tabelle 4.2 zeigt eine Übersicht aller Schlüsselfelder eines Werteeintrags. Die Feldinhalte der Schlüsselfelder eines Werteeintrags werden in aufsteigender Reihenfolge der Schlüsselnummern ohne Angabe dieser hintereinander geschrieben und durch das Zeichen ¶“ voneinander getrennt. Keines dieser ” Schlüsselfelder darf dabei weggelassen werden, wobei jedoch einige von ihnen je nach Anforderung leer sein dürfen. Die Werteeinträge der einzelnen Messwerte bezüglich eines bearbeiteten Teils werden wiederum in aufsteigender Reihenfolge der Merkmalsnummern in eine Zeile hintereinander geschrieben und durch das Zeichen ¤“ voneinander getrennt. Seriennummern im ” Schlüsselfeld K0006 wird grundsätzlich das Zeichen #“ vorangestellt. Der -te Werteeintrag ei” KAPITEL 4. DATENERFASSUNG UND DATEN ÜBERTRAGUNG Schlüsselfeld Messwert Attribut Schlüssel K0001 K0002 Datum/Zeit K0004 Ereignis Seriennummer Spindelnummer K0005 K0006 K0007 Station K0008 Maschine Prüfmittel K0010 K0012 24 Bedeutung der erfasste Messwert ein Fehlercode (ein Wert ungleich 0“ bedeutet, dass die ” Operation fehlgeschlagen ist) ein Zeitstempel, der den genauen Zeitpunkt der Operation bzw. der Messung angibt (nicht relevant) die Seriennummer des bearbeiteten Teils die Nummer der Spindel, an der die Operation durchgeführt wurde die Nummer der Montage-Station, an der die Operation durchgeführt wurde (nicht relevant) (nicht relevant) Tabelle 4.2: Schlüsselfelder eines Werteeintrags ner Zeile ist mit denjenigen Merkmalsdaten in Verbindung zu bringen, die im Beschreibungsteil mit der Merkmalsnummer versehen sind. Jede Zeile beinhaltet also so viele Werteeinträge, wie Qualitätsmerkmale definiert wurden, womit jede Zeile sämtliche Qualitätsdaten beinhaltet, die bei der Bearbeitung genau eines Teils gespeichert wurden. 4.3.2 DFD/DFX versus DFQ Es wird die Variante mit einer gemeinsamen DFQ-Datei gewählt, da dadurch die Zahl der zu verarbeitenden Dateien nicht unnötig verdoppelt wird und zum anderen das einander Zuordnen der DFD/DFX-Paare entfällt. Die gewählte Variante ist demnach effizienter und weniger fehleranfällig. 4.3.3 Anforderungen an die zu erzeugenden DFQ-Dateien Wie in Abschnitt 4.1 erwähnt, sind für die Datei-erzeugenden Systeme die Lieferanten der jeweiligen Fügevorrichtung verantwortlich. Da die Lieferanten weder die gleichen Steuergeräte noch die gleiche Steuerungssoftware verwenden und damit unterschiedliche technische Grundvoraussetzungen haben, ergeben sich zwischen den DFQ-Dateien für Schraub- und Presskraftdaten Unterschiede bezüglich ihrer Merkmalsstruktur. Die Schlüsselfelder, die bei der Speicherung eines Qualitätsmerkmals von einer in der Montagelinie erzeugten DFQ-Datei unterstützt werden müssen, wurden in einem für alle Lieferanten verbindlichen Pflichtenheft (vgl. [5]) definiert. Für die Datenauswertungen im Rahmen dieser Arbeit ist jedoch nur ein Teil der definierten Schlüsselfelder erforderlich. Die erforderlichen Schlüsselfelder sind im Anhang in Tabelle A.2 aufgeführt. Im Folgenden soll auf die Merkmalsstrukturen eingegangen und der Aufbau der DFQ-Dateien an KAPITEL 4. DATENERFASSUNG UND DATEN ÜBERTRAGUNG 25 konkreten Beispielen erläutert werden. Merkmalsstruktur einer DFQ-Datei mit Schraubkraftdaten (Lieferant Bosch) Werden an einer Montage-Station Schrauboperationen durchgeführt, so verfügt diese MontageStation über genau ein Steuergerät für alle an der Station befindlichen Schraubspindeln. Demnach existiert an einer solchen Montage-Station genau ein Datei-erzeugendes System für alle an der Montage-Station anfallenden Schraubkraftdaten. Vor dem Hintergrund, dass die Datenübertragung schichtweise erfolgt, wird an der Montage-Station pro Schicht genau eine Datei erzeugt, in der die Messungen aller Schraubspindeln der gesamten Schicht gespeichert sind. Da bei jeder Schrauboperation zwei Qualitätsmerkmale (Drehwinkel/Drehmoment) erfasst werden, beinhaltet eine DFQDatei einer Montage-Station mit Schraubspindeln Messwerte zu Qualitätsmerkmalen. Die Qualitätsmerkmale Drehwinkel“ und Drehmoment“ einer Spindel mit der Spindelnummer er” ” und . halten dabei die Merkmalsnummern Fallbeispiel: Eine DFQ-Datei mit Schraubkraftdaten Im Folgenden wird der Aufbau einer DFQ-Datei mit Schraubkraftdaten an einem konkreten Beispiel, welches in Abbildung 4.2 dargestellt ist, beschrieben. Der kursiv dargestellte Text ist nicht Bestandteil der Datei, er soll lediglich zur Erklärung der einzelnen Zeilen beitragen. Die Schlüsselfelder K0100 bis K2142/4 stellen den Beschreibungsteil der DFQ-Datei dar. Das Schlüsselfeld K0100 bildet den Kopf und gibt die Anzahl der beschriebenen Qualitätsmerkmale und damit die Anzahl der Messwerte an, die bei der Bearbeitung eines Teils erfasst und im Werteteil gespeichert wurden. Der Wert 4“ impliziert, dass die Montage-Station, an der die Datei ” erzeugt wurde, über zwei Schraubspindeln verfügt. Die Schlüsselfelder K2001/1 bis K2142/1 beschreiben die Eigenschaften des ersten Qualitätsmerkmals. Aus dem Schlüsselfeld K2001/1 mit dem Wert 0017DW“ lässt sich entnehmen, dass es sich bei diesem Qualitätsmerkmal um ” das Merkmal Drehwinkel“ handelt. Die verschiedenen Codes zur Identifizierung eines Qua” litätsmerkmals wurden in [1] definiert und sind im Anhang in Tabelle A.1 aufgelistet. Die Schlüsselfelder K2110/1 und K2111/1 geben den unteren und den oberen Grenzwert an, der für den Drehwinkel zum Zeitpunkt der Operation an der Montage-Station eingestellt war. In gleicher Weise wird mittels der Schlüsselfelder K2001/2 bis K2142/2 das zweite Qualitätsmerkmal beschrieben. Bei diesem Qualitätsmerkmal handelt es sich um das Merkmal Drehmoment“. Die ” Schlüsselfelder K2001/3 bis K2142/3 und K2001/4 bis K2142/4 beschreiben wiederum das dritte und vierte Qualitätsmerkmal, bei denen es sich um die Merkmale Drehwinkel“ und Drehmo” ” ment“ handelt. Laut Vereinbarung mit den Lieferanten sind die ersten beiden Qualitätsmerkmale der ersten Spindel und das dritte und vierte Qualitätsmerkmal der zweiten Spindel zuzuordnen. Die Information, welcher Spindel ein Qualitätsmerkmal zuzuordnen ist, lässt sich im Übrigen auch aus einem der dem Qualitätsmerkmal zugehörigen Werteeinträge im Werteteil ermitteln, da KAPITEL 4. DATENERFASSUNG UND DATEN ÜBERTRAGUNG 26 jeder Werteeintrag über ein Schlüsselfeld K0007 zur Angabe der Spindel verfügt. Der Werteteil der DFQ-Datei beginnt nach dem Schlüsselfeld K2142/4. Im abgebildeten Beispiel sind die Messwerte zweier bearbeiteter Getriebe gespeichert. Die zu einem Getriebe erfassten Messwerte sind in den Werteeinträgen der vier Qualitätsmerkmale, die durch das Zeichen ¤“ ” voneinander getrennt sind, gespeichert. Der -te Werteeintrag einer Zeile im Werteteil ist dem -ten Qualitätsmerkmal aus dem Beschreibungsteil zuzuordnen. Aus den ersten beiden Werteein- trägen der ersten Zeile im Werteteil geht also hervor, dass das Getriebe mit der Seriennummer R–0435467HH“ am 12.01.2004 um 12:33 Uhr von der Spindel mit der Spindelnummer 1“ be” ” arbeitet wurde, der Drehwinkel und das Drehmoment betrugen dabei 70.260796° und 10.978796 Nm. Der Drehwinkel und das Drehmoment bei der Bearbeitung desselben Getriebes an der Spindel mit der Spindelnummer 2“ betrugen dagegen 95.045683° und 12.900307 Nm. ” Merkmalsstruktur einer DFQ-Datei mit Presskraftdaten (Lieferant Promess) Werden an einer Montage-Station Pressoperationen durchgeführt, so ist jede Pressspindel mit einem eigenen Steuergerät verbunden. Die Anzahl der Datei-erzeugenden Systeme ist daher identisch mit der Anzahl der an der Montage-Station befindlichen Pressspindeln, so dass an der Montage-Station für jede Spindel pro Schicht eine eigene Datei erzeugt wird. Bei jeder Pressoperation werden zwei Qualitätsmerkmale (Einpresstiefe/Einpresskraft) erfasst. Wird eine Verpressung in zwei Schritten durchgeführt, werden für die zweite Pressoperation zwei weitere Qualitätsmerkmale in der DFQ-Datei gespeichert. Die Qualitätsmerkmale Einpresstiefe“ und Ein” ” presswinkel“ einer Pressoperation mit der Schrittnummer erhalten die Merkmalsnummern und . Fallbeispiel: Eine DFQ-Datei mit Presskraftdaten Abbildung 4.3 zeigt ein Beispiel für eine DFQ-Datei mit Presskraftdaten. Die Schlüsselfelder K0100 bis K2142/4 stellen den Beschreibungsteil der Datei dar. Der Wert 4“ des Schlüsselfeldes ” K0100 impliziert, dass die Pressoperation an der ersten Spindel in zwei Schritten erfolgt. Die Spindelnummer ist aus dem Schlüsselfeld K0007 eines der im Werteteil gespeicherten Werteeinträge zu ermitteln. Die Schlüsselfelder K2001/1 bis K2142/1 beschreiben die Eigenschaften des ersten Qualitätsmerkmals. Aus dem Schlüsselfeld K2001/1 mit dem Wert 1503ET“ lässt sich ent” nehmen, dass es sich bei diesem Qualitätsmerkmal um das Merkmal Einpresstiefe“ handelt. Die ” Schlüsselfelder K2110/1 und K2111/1 geben den unteren und den oberen Grenzwert an, der für die Einpresstiefe zum Zeitpunkt der Operation an der Montage-Station eingestellt war. In gleicher Weise wird mittels der Schlüsselfelder K2001/2 bis K2142/2 das zweite Qualitätsmerkmal beschrieben. Bei diesem Qualitätsmerkmal handelt es sich um das Merkmal Einpresskraft“. Laut ” Vereinbarung mit den Lieferanten sind die ersten beiden Qualitätsmerkmale der ersten Pressoperation (Schrittnummer 1“) zuzuordnen. Die Schlüsselfelder K2001/3 bis K2142/3 und K2001/4 ” KAPITEL 4. DATENERFASSUNG UND DATEN ÜBERTRAGUNG 27 K0100 4 Anzahl Merkmale in der Datei K2001/1 0017DW Merkmalscode für erstes Merkmal K2110/1 45.0 Unterer Grenzwert für Drehwinkel von Spindel 1 K2111/1 105.0 Oberer Grenzwert für Drehwinkel von Spindel 1 K2142/1 ˚ Messeinheit für Drehwinkel von Spindel 1 K2001/2 1916DM Merkmalscode für zweites Merkmal K2110/2 2.0 Unterer Grenzwert für Drehmoment von Spindel 1 K2111/2 12.0 Oberer Grenzwert für Drehmoment von Spindel 1 K2142/2 Nm Messeinheit für Drehmoment von Spindel 1 K2001/3 0017DW Merkmalscode für drittes Merkmal K2110/3 75.0 Unterer Grenzwert für Drehwinkel von Spindel 2 K2111/3 180.0 Oberer Grenzwert für Drehwinkel von Spindel 2 K2142/3 ˚ Messeinheit für Drehwinkel von Spindel 2 K2001/4 1916DM Merkmalscode für viertes Merkmal K2110/4 10.0 Unterer Grenzwert für Drehmoment von Spindel 2 K2111/4 14.0 Oberer Grenzwert für Drehmoment von Spindel 2 K2142/4 Nm Messeinheit für Drehmoment von Spindel 2 70.260796¶0¶12.01.2004/12:33:56¶¶#R--0435467HH¶1¶140¶¶¤ 10.978796¶0¶12.01.2004/12:33:56¶¶#R--0435467HH¶1¶140¶¶¤ 95.045683¶0¶12.01.2004/12:33:56¶¶#R--0435467HH¶2¶140¶¶¤ 12.900307¶0¶12.01.2004/12:33:56¶¶#R--0435467HH¶2¶140¶¶ 89.862006¶0¶12.01.2004/12:35:07¶¶#R--0435468HH¶1¶140¶¶¤ 11.007295¶0¶12.01.2004/12:35:07¶¶#R--0435468HH¶1¶140¶¶¤ 99.003619¶0¶12.01.2004/12:35:07¶¶#R--0435468HH¶2¶140¶¶¤ 13.170942¶0¶12.01.2004/12:35:07¶¶#R--0435468HH¶2¶140¶¶ Abbildung 4.2: Beispiel für eine DFQ-Datei mit Schraubkraftdaten bis K2142/4 beschreiben wiederum das dritte und das vierte Qualitätsmerkmal, bei denen es sich um die Merkmale Einpresstiefe“ und Einpresskraft“ der zweiten Pressoperation (Schrittnummer ” ” 2“) handelt. ” Der Werteteil der DFQ-Datei beginnt nach dem Schlüsselfeld K2142/4. Im abgebildeten Beispiel sind die Messwerte zweier bearbeiteter Getriebe gespeichert. Die zu dem Getriebe erfassten Messwerte sind in den Werteeinträgen der vier Qualitätsmerkmale, die durch das Zeichen ¤“ ” voneinander getrennt sind, gespeichert. Auch hier ist der -te Werteeintrag einer Zeile im Werte- teil dem -ten Qualitätsmerkmal aus dem Beschreibungsteil zuzuordnen. Aus den ersten beiden Werteeinträgen der ersten Zeile im Werteteil geht also hervor, dass das Getriebe mit der Seri- ennummer R–0435467HH“ am 12.01.2004 um 12:33 Uhr zum ersten Mal von der Spindel mit ” der Spindelnummer 1“ bearbeitet wurde, die Einpresstiefe und die Einpresskraft betrugen da” bei 23.265796 mm und 10.278796 kN. Bei der zweiten Bearbeitung desselben Getriebes von der Spindel mit der Spindelnummer 1“ betrugen die Einpresstiefe und die Einpresskraft 27.145603 ” mm und 12.800347 kN. KAPITEL 4. DATENERFASSUNG UND DATEN ÜBERTRAGUNG 28 K0100 4 Anzahl Merkmale in der Datei K2001/1 1503ET Merkmalscode für erstes Merkmal K2110/1 20.0 Unterer Grenzwert für Einpresstiefe von Schritt 1 K2111/1 130.0 Oberer Grenzwert für Einpresstiefe von Schritt 1 K2142/1 mm Messeinheit für Einpresstiefe von Schritt 1 K2001/2 1505EK Merkmalscode für zweites Merkmal K2110/2 10 Unterer Grenzwert für Einpresskraft von Schritt 1 K2111/2 14 Oberer Grenzwert für Einpresskraft von Schritt 1 K2142/2 kN Messeinheit für Einpresskraft von Schritt 1 K2001/3 1503ET Merkmalscode für drittes Merkmal K2110/3 20.0 Unterer Grenzwert für Einpresstiefe von Schritt 2 K2111/3 130.0 Oberer Grenzwert für Einpresstiefe von Schritt 2 K2142/3 mm Messeinheit für Einpresstiefe von Schritt 2 K2001/4 1505EK Merkmalscode für viertes Merkmal K2110/4 10 Unterer Grenzwert für Einpresskraft von Schritt 2 K2111/4 14 Oberer Grenzwert für Einpresskraft von Schritt 2 K2142/4 kN Messeinheit für Einpresskraft von Schritt 2 23.265796¶0¶12.01.2004/12:33:56¶¶#R--0435467HH¶1¶140¶¶¤ 10.278796¶0¶12.01.2004/12:33:56¶¶#R--0435467HH¶1¶140¶¶¤ 27.145663¶0¶12.01.2004/12:34:16¶¶#R--0435467HH¶1¶140¶¶¤ 12.800347¶0¶12.01.2004/12:34:16¶¶#R--0435467HH¶1¶140¶¶ 27.462006¶0¶12.01.2004/12:34:49¶¶#R--0435468HH¶1¶140¶¶¤ 12.557295¶0¶12.01.2004/12:34:49¶¶#R--0435468HH¶1¶140¶¶¤ 29.993619¶0¶12.01.2004/12:35:12¶¶#R--0435468HH¶1¶140¶¶¤ 13.370342¶0¶12.01.2004/12:35:12¶¶#R--0435468HH¶1¶140¶¶ Abbildung 4.3: Beispiel für eine DFQ-Datei mit Presskraftdaten Benamung der DFQ-Dateien Um zu vermeiden, dass mehrere DFQ-Dateien den gleichen Namen erhalten, was beim Übertragen an den zentralen Server zum möglichen Überschreiben einer Datei auf dem Server führen könnte, erfolgt die Namensgebung nach einer Namenskonvention, die in [1] festgelegt wurde und für alle Lieferanten verbindlich ist. Die Namenskonvention stellt sicher, dass jede in der Montagelinie erzeugte DFQ-Datei einen eindeutigen Namen erhält. Da der Aufbau des Dateinamens für die Datenauswertung im Rahmen dieser Arbeit nicht relevant ist, wird auf die Namenskonvention nicht weiter eingegangen. 4.4 Übertragung der Kombinationsdaten Die Kombinationsdaten werden ebenfalls schichtweise von der Station ST140 zum Server übertragen. Dazu wird nach Abschluss einer Schicht die Gesamtheit aller Kombinationsdaten aus der in Abschnitt 2.6 beschriebenen Tabelle (vgl. Tabelle 2.1) einer Microsoft Access-Datenbank im CSV-Format exportiert (Full-Dump). Im Gegensatz zu allen anderen Datenarten werden also bei der Übertragung der Kombinationsdaten nicht nur die während der vorangegangenen Schicht erfassten Daten, sondern alle jemals in der Access-Datenbank erfassten Daten übertragen. Abbildung 4.4 zeigt einen beispielhaften Auszug aus der CSV-Datei. KAPITEL 4. DATENERFASSUNG UND DATEN ÜBERTRAGUNG 29 R--04165473ML;;;13.01.2004 10:12:23;3C29lgN7;5C29WBnD; 5C29nqfD;5C28rC63;4C2CRp93;5C27Rc47;6C22AbiE;6C22TbTC; R--90000100CE;;12140000001008;13.01.2004 10:18:01;443GRsj1; 443GXvEF;443Go9Q2;443HXIDG;443Hp0OJ;443HI7kE; R--04165475HH;M68102P0010;;13.01.2004 10:37:59;443GVhP0; 443GrQh7;443Gr3bE;443HdMZ1;443Hw056;443HuOZG; Abbildung 4.4: Auszug aus einer Datei mit Kombinationsdaten 4.5 Übertragung der Shim-Daten Die Shim-Daten werden an der Station ST150 in eine CSV-Datei geschrieben, die nach Abschluss einer Schicht abgeschlossen und an den Server übertragen wird. Wie die DFQ-Dateien erhalten auch die erzeugten Shim-Dateien einen eindeutigen Dateinamen. Abbildung 4.5 zeigt einen exemplarischen Auszug aus einer Shim-Datei. Während die Werte in der zweiten Spalte die ermittelten Shim-Klassen darstellen, geben die Werte in der dritten Spalte die Getriebekomponente an, für die das entsprechende Shim verwendet werden soll. R--04165473HH;10;HWU;13.01.2004 10:12:23 R--04165473HH;11;HWO;13.01.2004 10:12:23 R--04165473HH;1;AWE;13.01.2004 10:12:23 R--04165473HH;8;DIF;13.01.2004 10:12:23 R--04165474HH;12;HWU;13.01.2004 10:37:59 Abbildung 4.5: Auszug aus einer Datei mit Shim-Daten 4.6 Übertragung der Ausschleusungsdaten Die Ausschleusungszeitpunkte der einzelnen Getriebe werden an der Station ST300 in eine CSVDatei geschrieben, die nach Abschluss einer Schicht an den Server übertragen wird. Abbildung 4.6 zeigt einen exemplarischen Auszug aus der Datei. R--04165473HH;13.01.2004 R--04165474HH;13.01.2004 R--04165475HH;13.01.2004 R--04165476HH;13.01.2004 10:12:23 10:18:01 10:37:59 10:45:11 Abbildung 4.6: Auszug aus einer Datei mit Ausschleusungsdaten Kapitel 5 Grundlagen zur Datenkonsolidierung Die Datenkonsolidierung dient der Integration der Daten der unterschiedlichen Quellsysteme in ein einheitliches Zielschema. Da Datenmängel in den Quelldaten die Datenqualität und dadurch auch den effektiven Nutzen der Daten verringern können, müssen die Quelldaten während des Integrationsprozesses von Datenmängeln befreit werden. Schließlich soll eine ganzheitliche Sicht auf möglichst fehlerfreie und in sich schlüssige Daten der Quellsysteme zur Verfügung stehen. Um dieses Ziel zu erreichen, müssen nach Erzeugen der Zieltabellen die in unterschiedlicher Form vorliegenden Quelldaten transformiert werden, um sie an die Zieltabellen anzupassen. Außerdem bedarf es zur Erkennung und Beseitigung der Datenmängel einer Datenbereinigung. In diesem Kapitel wird zunächst der Begriff der Datenqualität genauer definiert (Abschnitt 5.1) sowie auf die verschiedenen Arten von Datenmängeln eingegangen (Abschnitt 5.2), die für die Verringerung der Datenqualität verantwortlich sein können. Im Anschluss daran wird auf den Prozess der Datentransformation (Abschnitt 5.3) sowie der Datenbereinigung (Abschnitt 5.4) näher eingegangen. Im Abschluss dieses Kapitels (Abschnitt 5.5) wird eine allgemeingültige Vorgehensweise zur Datenkonsolidierung beschrieben. 5.1 Datenqualität Daten dienen der Repräsentation von Tatsachen oder Entitäten aus einem Ausschnitt der Realität [4]. In dieser Arbeit liegen die Daten einem relationalen Datenmodell zugrunde, in dem Entitäten der Realität durch -Tupel repräsentiert werden und die Attributwerte der Tupel die Eigenschaften der repräsentierten Entitäten beschreiben. Die Attributwerte werden dabei durch Zeichenketten codiert. Gleichartige Tupel werden zu jeweils einer Relation zusammengefasst. Die Tupel einer Relation müssen dem Schema der Relation, dem so genannten Relationen-Schema, entsprechen. Dies bedeutet, dass die Struktur der Tupel einer Relation durch das zugehörige Relationen-Schema bestimmt wird. Das Relationen-Schema definiert eine Liste von Attributen und für jedes dieser Attribute eine Grammatik, die wiederum die Menge der Zeichenketten de- 30 KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 31 Abbildung 5.1: Hierarchie von Qualitätskriterien nach [4] finiert, die das jeweilige Attribut als Wert annehmen darf. Die Daten unterliegen damit strengen Regeln, der so genannten Syntaktik. Die Semantik dagegen beschäftigt sich mit der Bedeutung dieser Zeichenketten, also mit dem Wissen, welches durch die Daten repräsentiert wird. Ein effektiver Nutzen der Daten erfordert eine möglichst hohe Datenqualität. In [10] wird Datenqualität bezeichnet als die Gesamtheit aller Eigenschaften von Daten hinsichtlich der Adäquatheit, die Anforderungen einer Anwendungssituation zu erfüllen. Da die Definition von Datenqualität als fitness-for-use in der Praxis nicht Ziel führend ist, bedarf es der Identifizierung von allgemeingültigen Kriterien von Datenqualität. In der Literatur finden sich verschiedene Ansätze zur Definition von Datenqualitätskriterien, die sich in der Methodik zur Bestimmung von Kriterien unterscheiden. In Abbildung 5.1 ist eine Hierarchie von Qualitätskriterien dargestellt, die aus dem klassischen Ansatz zur Definition von Datenqualität hervorgeht. Dieser Ansatz bezieht sowohl die syntaktischen Eigenschaften (z. B. Einheitlichkeit der Repräsentation) als auch die semantischen Eigenschaften (z. B. Korrektheit) von Daten ein. Die vorgestellte Hierarchie resultiert aus verschiedenen Qualitätskriterien, die sich wiederum in weitere Kriterien unterteilen lassen. Sie ist aus [4] übernommen und verdient keineswegs den Anspruch auf Vollständigkeit. Beispielsweise lassen sich einzelne Qualitätskriterien in weitere noch spezifischere Qualitätskriterien aufteilen. Die folgenden Definitionen zu den einzelnen Qualitätskriterien sind ebenfalls aus [4] übernommen. • Vollständigkeit ist die Eigenschaft, dass in einem Tupel alle Attributwerte vorhanden sind. Darüber hinaus kann unter Vollständigkeit auch die Eigenschaft verstanden werden, dass alle in der abgebildeten Realität vorkommenden Entitäten im Datenbestand repräsentiert sind. • Gültigkeit ist die Eigenschaft, dass jedes Tupel im Datenbestand eine Entität repräsentiert, die auch tatsächlich in der abgebildeten Realität existiert. • Integrität ist die Eigenschaft, dass alle und nur diejenigen Entitäten, die in der Realität KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 32 existieren, von einem Tupel im Datenbestand repräsentiert werden. • Einheitlichkeit ist die Eigenschaft, dass alle Werte innerhalb eines Attributs einheitlich verwendet werden und daher gleichartig interpretiert werden können. • Schema-Konformität ist die Eigenschaft, dass jedes Tupel zum Schema seiner Relation konform ist. Dies bedeutet, dass jedes Tupel im Bezug auf seine Struktur und seine Werte syntaktisch korrekt ist. • Konsistenz ist die Eigenschaft, dass die Tupel im Datenbestand syntaktisch korrekt sind und keine Unregelmäßigkeiten aufweisen. • Korrektheit ist die Eigenschaft, dass eine genaue, einheitliche und vollständige Repräsentation der abgebildeten Realität vorliegt. In diesem Fall sind alle der bisher genannten Kriterien erfüllt. • Eindeutigkeit ist die Eigenschaft, dass im Datenbestand keine Duplikate existieren. Als Duplikate werden Tupel verstanden, die dieselbe Entität der abgebildeten Realität repräsentieren, aber nicht notwendigerweise in allen Attributen übereinstimmen. Daten, die korrekt und eindeutig sind und dabei die einzelnen Kriterien zu 100% erfüllen, stellen ein präzises Abbild der Realität dar und sind daher Daten von höchster Qualität. Unter Praxisbedingungen variiert gewöhnlich der Erfüllungsgrad einzelner Kriterien und der Erfüllungsgrad von 100% kann oft nicht erreicht werden. Metriken, auf deren Basis Erfüllungsgrade von Kriterien bestimmt werden können und damit letztlich die Qualität von Daten gemessen werden kann, werden nicht eingeführt. 5.2 Datenqualitätsprobleme Ein Datenqualitätsproblem besteht, wenn Daten aufgrund ihrer Eigenschaften den in Abschnitt 5.1 beschriebenen Qualitätskriterien nicht genügen und infolge dessen die Datenqualität verringert ist. Das Erkennen von Daten, die den Qualitätskriterien nicht genügen, und das Identifizieren der Ursachen bzw. der Verursacher stellt eine wesentliche Grundlage für Maßnahmen zur Verbesserung der Qualität von Daten dar. In [2] wird bei Datenqualitätsproblemen zwischen Single Source- und Multi Source-Problemen unterschieden. Single Source-Probleme resultieren aus Datenmängeln, die bereits bei der Integration von Daten einer Datenquelle auftreten können. Multi Source-Probleme resultieren dagegen aus Datenmängeln, die im direkten Zusammenhang mit der Integration von Daten mehrerer Datenquellen stehen. Innerhalb beider Problembereiche wird wiederum zwischen schema- und instanzbezogenen Problemen unterschieden. Die Klassifizierung nach [2] ist in Abbildung 5.2 dargestellt. KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 33 Abbildung 5.2: Klassifizierung von Qualitätsproblemen nach [2] 5.2.1 Single Source-Probleme Single Source-Probleme werden häufig durch eine fehlerhafte Datenerfassung verursacht. Eine Vielzahl möglicher Fehlerarten steht im Zusammenhang mit einer manuellen Dateneingabe. Auf diese Fehlerarten wird nicht weiter eingegangen, da die Datenerfassung im Rahmen dieser Arbeit ausschließlich automatisch erfolgt. Bei der automatischen Datenerfassung können durch Fehlfunktionen der Erfassungssysteme (z. B. Messsysteme) falsche Werte zurückgeliefert werden. Darüber hinaus können auch der Erfassung nachgeschaltete Datenverarbeitungsprozesse für Datenmängel verantwortlich sein. Eine unzureichende Eingabe bzw. Integritätskontrolle (vgl. Abschnitt 5.4.2) kann die unterschiedlichen Datenmängel begünstigen, da in diesem Fall ungültige Dateneingaben von der Applikation oder von dem Datenhaltungssystem nicht zurückgewiesen werden. Single Source-Probleme, die durch ein verbessertes Schemadesign oder eine verbesserte Integritätskontrolle vermieden werden können, werden als schemabezogene Single Source-Probleme bezeichnet. Diese Probleme treten insbesondere in Quellsystemen mit einer Textdateibasierten Datenhaltung auf, da in diesem Fall ein Schema im eigentlichen Sinne nicht existiert, sondern lediglich Restriktionen zu Format und Struktur der Daten bestehen, deren Einhaltung jedoch nicht überprüft wird. Erfolgt die Datenhaltung in einem Datenbanksystem, sind die Qualitätsprobleme häufig auf ein mangelhaftes Schemadesign oder auf die ungenügende Verwendung von IntegritätsConstraints zurückzuführen [2]. Letzteres geschieht in der Regel, um den mit der Verwendung von Integritäts-Constraints verbundenen Overhead klein zuhalten. Schemabezogene Qualitätsprobleme KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 34 sind grundsätzlich auch auf Instanzebene sichtbar. Im Folgenden werden einige schemabezogene Single Source-Probleme erläutert, die im Rahmen dieser Arbeit relevant sind. Wert außerhalb des zulässigen Wertebereichs Werte, die außerhalb des Wertebereichs des entsprechenden Attributs liegen, sind unzulässige Werte und verletzen das Kriterium der SchemaKonformität. Beispiel: timestamp = 30.13.2004 Ungültige Kombination von Attributwerten In diesem Fall ist aufgrund der Kombination der Attributwerte eine Integritätsbedingung verletzt. Dies ist beispielsweise der Fall, wenn eine funktionale Abhängigkeit zwischen zwei oder mehreren Attributen durch die Attributwerte nicht erfüllt und somit ein Widerspruch erzeugt wird. Eine funktionale Abhängigkeit besteht, wenn ein Attributwert von einem Wert eines anderen Attributs bestimmt wird. In diesem Fall ist das Kriterium der Gültigkeit verletzt. Beispiel: age = 22, birth date = 10.02.1977, current date = 14.08.2004 Fehlender Wert Wenn zu einem Attribut kein Wert angegeben ist, obwohl die Angabe eines Wertes für das betroffene Attribut verpflichtend ist, wird das Kriterium der Vollständigkeit verletzt. Nichteindeutigkeit von Schlüsseln Das Kriterium der (Schlüssel-)Eindeutigkeit wird verletzt durch das doppelte Vorkommen eines Wertes in einem Attribut, welches den Primärschlüssel darstellt. Beispiel: emp1 = (id = 1, name = smith) emp2 = (id = 1, name = miller) Verletzung der referentiellen Integrität Die referentielle Integegrität wird verletzt, wenn ein durch den Fremdschlüssel referenziertes Tupel nicht existiert. Beispiel: emp1 = (id = 1, name = smith) id = 1 existiert in der Master-Relation nicht Instanzbezogene Single Source-Probleme resultieren aus Datenmängeln, die auch durch eine umfassende Eingabe- bzw. Integritätskontrolle nicht vermieden werden können. Im Folgenden sind einige instanzbezogene Single Source-Probleme aufgeführt. KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 35 Falscher Wert Falsche Werte sind Werte, die zwar keine Integritätsbedingungen verletzen, aber dennoch falsch sind, weil sie die Realität nicht korrekt abbilden. Falsche Werte sind in erster Linie auf eine falsche Erfassung (z. B. Tipp- oder Messfehler) zurückzuführen und verletzen das Kriterium der Gültigkeit. Fehlender Wert Bei Attributen, für die die Angabe eines Wertes nicht verpflichtend ist, erweist sich die unterschiedliche Semantik von nicht vorhandenen Angaben als problematisch, da das Fehlen eines Wertes auf drei verschiedene Arten interpretiert werden kann: 1. Es gibt in der Realität keinen Wert für das betroffene Attribut. 2. Es gibt in der Realität einen Wert für das betroffene Attribut, jedoch war der Wert bei Erfassung des Datensatzes nicht bekannt. 3. Es ist nicht bekannt, ob es in der Realität ein Wert für das betroffene Attribut existiert. In den beiden letzteren Fällen ist das Kriterium der Vollständigkeit verletzt. Fehlendes Tupel Aufgrund des Fehlens eines ganzen Tupel ist das Kriterium der Vollständigkeit verletzt. Duplikate Duplikate treten auf, wenn die gleiche Entität aus der Realität durch zwei Tupel repräsentiert wird, deren Attributwerte nicht notwendigerweise identisch sind. In diesem Fall wird das Kriterium der Eindeutigkeit verletzt. Beispiel: emp1 = (id = 1, name = john smith) emp2 = (id = 2, name = j. smith) Aus den genannten Beispielen ist ersichtlich, dass Single Source-Probleme eine unterschiedliche Tragweite haben können. Die verschiedenen Probleme können sich über einzelne Attribute, über mehrere Attribute eines Tupels oder über den gesamten Datenbestand der Quelle erstrecken. Demnach können Datenmängel eine unterschiedliche Komplexität aufweisen. Wie bereits erwähnt, werden die Datenmängel in erster Linie durch eine fehlerhafte Erfassung erzeugt. Werden die Quelldaten über ein Netzwerk übertragen, können Übertragungsfehler Datenmängel verursachen (z. B. fehlerhafte Werte in Textdateien infolge einer fehlerhaften FTPÜbertragung). Fehlerhafte Datenverarbeitungsprozesse zur Vor- bzw. Nachbereitung der Datenübertragung (z. B. Export aus einer Datenbank) können wiederum Mängel an den Daten zur Folge haben. In [4] wird unter den Datenmängeln zwischen syntaktischen und semantischen Fehlern unterschieden. Ein syntaktischer Fehler bezieht sich immer auf die Struktur der Tupel oder auf das Format der Werte, die zur Repräsentation von Entitäteneigenschaften verwendet werden. Ein syntaktischer KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 36 Fehler liegt beispielsweise vor, wenn ein Tupel nicht die erwartete Anzahl von Attributen besitzt oder ein verwendeter Attributwert nicht im Wertebereich des entsprechenden Attributs liegt. Semantisch falsche Daten dagegen sind zwar syntaktisch korrekt, bilden jedoch die Realität nicht korrekt ab. Semantisch falsche Daten liegen beispielsweise dann vor, wenn Integritätsbedingungen verletzt werden, Duplikate existieren oder Tupel falsche Werte aufweisen. 5.2.2 Multi Source-Probleme Wenn Daten aus verschiedenen Quellen in ein einheitliches Zielschema integriert werden, können zusätzlich zu den Single Source-Problemen weitere Probleme entstehen, die als Multi SourceProbleme bezeichnet werden. Multi Source-Probleme können durch eine starke Heterogenität der Quellen im Bezug auf die verwendeten Datenhaltungssysteme und Schemata verursacht werden. Heterogene Systemlandschaften existieren häufig, wenn die Systemlandschaft historisch gewachsen ist und die einzelnen Quellsysteme unabhängig voneinander von verschiedenen Organisationseinheiten entwickelt wurden und dabei jedes Quellsystem speziell an die Bedürfnisse der jeweiligen Organisationseinheit angepasst wurde. Auf der Schemaebene kann eine heterogene Systemlandschaft zu strukturellen Konflikten führen. Strukturelle Konflikte resultieren aus unterschiedlichen Modellierungen eines Sachverhaltes (z. B. unterschiedliche Datentypen, Speichern von mehreren Werten in einem Attribut, statt in getrennten Attributen). Auf Instanzebene können Attribute unterschiedlicher Quellen trotz gleichen Datentyps unterschiedlich repräsentiert sein. Dies tritt beispielsweise auf, wenn in den verschiedenen Quellen ein unterschiedliches Datumsformat verwendet wird. Beispiel: Quelle 1: timestamp = 11.12.1977 Quelle 2: timestamp = 1977-12-11 Außerdem kann es vorkommen, dass Werte unterschiedlich interpretiert werden müssen, wenn etwa bei Messwerten eine nicht einheitliche Messeinheit verwendet wird. Beim Zusammenführen von Daten aus verschiedenen Quellen können Duplikate auftreten, wenn Tupel aus verschiedenen Quellen die gleiche Entität in der Realität repräsentieren. Häufig tritt jedoch in diesem Fall nur eine teilweise Überlappung der Tupel auf, da sie je nach Aufgabe der jeweiligen Datenquelle verschiedene Informationen beinhalten. Nicht zuletzt können Werte aus verschiedenen Quellen einen logischen Widerspruch erzeugen, wenn etwa die Datenerfasser der verschiedenen Quellsysteme über einen unterschiedlichen Wissensstand bezüglich eines Sachverhaltes verfügen oder infolge einer mangelnden Zeitsynchronisation der Quellsysteme logisch widersprüchliche Datums- und Zeitangaben gespeichert werden. KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 37 5.3 Datentransformation Ein Bestandteil der Datenintegration ist die Transformation der Quelldaten, um die Daten der einzelnen Quellsysteme hinsichtlich ihrer Repräsentation aneinander anzugleichen und an das einheitliche Zielschema anzupassen. Mithilfe von Datentransformationen werden demnach Multi Source-Probleme beseitigt, die durch eine uneinheitliche Repräsentation oder auch durch strukturelle Konflikte verursacht werden. Der gesamte Vorgang geschieht in der Regel anhand fest definierter Transformationsregeln. Im Folgenden werden einige Beispiele für Datentransformationen aufgeführt. Dabei geht es ausschließlich um die Transformation von Daten, nicht um die Transformation von Datenstrukturen bzw. Schemata. Ein definiertes Zielschema, ggf. als Resultat einer abgeschlossenen Schemaintegration, ist dafür eine unverzichtbare Vorraussetzung (vgl. Abschnitt 5.5.2). Anpassung des Datentyps Falls der Datentyp eines Quellattributs nicht mit dem des entsprechenden Zielattributs übereinstimmt, ist eine Konvertierung der Attributwerte erforderlich. z. B.: Zeichenkette Zeichenkette Datum Zahl Anpassung der Datenrepräsentation Manchmal wird ein bestimmtes Merkmal im Quellsystem anders repräsentiert als im Zielsystem z. B.: Quellsystem Zielsystem M (Männlich) F (Weiblich) M (Männlich) W (Weiblich) Hier muss die Repräsentation der Quelldaten an die des Zielsystems angepasst werden. Angleichung der Messeinheit Numerische Merkmalsausprägungen besitzen in der Regel eine Messeinheit. Dabei kann die in einem Quellattribut verwendete Messeinheit von der im Zielattribut benötigten abweichen. In diesem Fall ist eine Umrechnung zur Angleichung erforderlich. z. B.: cm m KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 38 Separierung und Kombination von Attributwerten Manchmal kann es vorkommen, dass in den Quellsystemen zusammengefasste Attributwerte im Zielsystem in einzelne Attribute aufgespaltet werden müssen. Diesen Vorgang nennt man Separierung, während der umgekehrte Fall, das Zusammenfügen von einzelnen Attributen aus den Quellen als Kombination von Attributwerten bezeichnet wird. Die Zerlegung beziehungsweise Kombination von Attributen kann nach einer vorher festgelegten Regel oder Berechnungsvorschrift geschehen. 5.4 Datenbereinigung Ein weiterer Bestandteil der Datenintegration ist die Bereinigung der Quelldaten. Der Prozess der Datenbereinigung ist in der Literatur nicht einheitlich definiert. Allgemein versteht man unter einer Datenbereinigung die Durchführung verschiedener Maßnahmen mit dem Zweck sämtliche Fehler und Ungereimtheiten zu erkennen und zu beseitigen, um ein korrektes und eindeutiges Abbild der Realität zu erhalten [4]. Ursprünglich zielte die Datenbereinigung auf die Eliminierung von Duplikaten ab (z. B. Sorted-Neighbourhood-Methode), die insbesondere bei der Integration von Daten aus verschiedenen Quellen auftreten können. Infolge dessen ist die Datenbereinigung zu einem elementaren Bestandteil der Datenintegration geworden. Eine universelle Methode für eine umfassende und vollständige Datenbereinigung existiert nicht. Stattdessen existiert zur Datenbereinigung eine Vielzahl verschiedener Methoden, die jeweils auf die Behebung eines bestimmten Qualitätsproblems abzielen. Darunter existieren Methoden sowohl zur Erkennung von Datenfehlern als auch zur Korrektur von falschen oder fehlenden Werten. Weist ein Datenbestand mehrere unterschiedliche Qualitätsprobleme auf, so müssen zur vollständigen Datenbereinigung verschiedene Methoden in angemessener Weise miteinander kombiniert werden. Die Bereinigung von Daten erfordert grundsätzlich ein gutes Wissen über die Daten bzw. den abzubildenden Sachverhalt, deshalb hängt der Erfolg der Datenbereinigung vor allem vom verfügbaren Wissen ab. Insbesondere wenn statistische Verfahren (vgl. Abschnitt 5.4.3) zur Anwendung kommen, kann die Datenbereinigung nur mit einer gewissen Fehlerwahrscheinlichkeit erfolgen. Aus diesem Grund ist häufig eine händische Nachbearbeitung der als fehlerhaft identifizierten Daten notwendig, weshalb der Prozess der Datenbereinigung auch als semi-automatisch bezeichnet wird. In den folgenden Abschnitten werden Methoden vorgestellt, die bei der Datenbereinigung zur Anwendung kommen. Dabei werden nur jene Methoden vorgestellt, die zur weiteren Argumentation in dieser Arbeit relevant sind. Methoden zur Korrektur von Daten werden nicht erläutert, da falsche oder fehlende Werte laut Anforderungen nicht korrigiert werden sollen. Stattdessen sollen die betroffenen Tupel ignoriert bzw. in einen Fehler-Report geschrieben werden. KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 39 5.4.1 Parsen Zum wirksamen Erkennen von syntaktischen Fehlern eignen sich Parser [4]. Ein Parser für eine ist ein Programm, das entscheidet, ob ein gegebenes Wort ein Element der durch die Grammatik definierten Sprache ist. Im Kontext der Datenbereinigung werden Parser zum Grammatik Einlesen von Quelldateien und zur Überprüfung ihrer Dateistruktur eingesetzt. Darüber hinaus kann mithilfe von Parsern entschieden werden, ob die Struktur eines Tupels der erwarteten Struktur entspricht und die einzelnen Attributwerte in den entsprechenden Wertemengen enthalten sind. Auf diese Weise können mit einer hohen Zuverlässigkeit Daten erkannt werden, die das Kriterium der Schema-Konformität verletzen. 5.4.2 Integritätskontrolle Eine Möglichkeit, fehlerhafte Daten zu erkennen, besteht in der Überprüfung der Daten im Hinblick auf das Erfüllen der geltenden Integritätsbedingungen. Daten besitzen zu jeder Zeit eine bestimmte Konfiguration von Attributwerten mit dem Zweck einen Sachverhalt aus der Realität abzubilden. Da die Realität bestimmten Einschränkungen und Regeln unterliegt (z. B. kann die aufgewendete Kraft bei einem Einpressvorgang immer nur positiv sein), stellen nicht alle möglichen Konfigurationen von Attributwerten ein korrektes Abbild der Realität dar. Daher werden über die Definition des Datenmodells hinaus statische Integritätsbedingungen definiert, die in ihrer Gesamtheit die Menge aller zulässigen Attributwertkombinationen definieren. Attributwertkombinationen, die nicht die definierten Integritätsbedingungen erfüllen, sind folglich als fehlerhaft zu bezeichnen. Integritätsbedingungen werden insbesondere aus funktionalen Abhängigkeiten oder aus applikationsspezifischen Geschäftsregeln (BusinessRules) abgeleitet. Beispiele für Geschäftsregeln sind: • Regeln zur Prüfung der Einhaltung von Wertebereichen • Regeln zur Prüfung gültiger Attributwertkombinationen • Regeln zur Prüfung der Einhaltung von Berechnungsvorschriften • IF ... THEN ... -Regeln Wie aus den Beispielen ersichtlich, können Integritätsbedingungen eine unterschiedliche Tragweite haben. Die Bedingungen können sich auf einzelne Attribute, mehrere Attribute eines Tupels oder auch auf Attribute verschiedener Tupel beziehen. Relationale Datenbanksysteme wie z. B. Oracle bieten mittels der Abfragesprache SQL die Möglichkeit eines deklarativen Weges Integritätsbedingungen (Integritäts-Constraints) zu definieren. In einem solchen Fall wird die Integritätskontrolle durch das Datenbanksystem selbst durchgeführt. KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 40 Dabei werden schreibende Datenbankzugriffe, die deklarierte Integritätsbedingungen verletzen, vom Datenbanksystem zurückgewiesen. Der Vorteil besteht darin, dass es zur Überprüfung der definierten Integritätsbedingungen keiner applikationsseitigen Implementierung bedarf, was die Entwicklung der Applikation erheblich vereinfacht. Im relationalen Datenmodell, dem eine relationale Datenbank zu Grunde liegt, existieren insgesamt vier verschiedene Arten von Integritätsbedingungen, die im Folgenden kurz beschrieben werden: Entitäts-Integrität Die Entitäts-Integrität sichert über den Primärschlüssel die Schlüsseleindeutigkeit einer Tabelle. Ein Primärschlüssel einer Tabelle besteht aus einer Teilmenge ihrer Attribute, so dass niemals zwei Tupel den gleichen Wert für besitzen und keine Teilmen- ge von existiert, die die Eindeutigkeitseigenschaft besitzt. Alternative Schlüssel können zusätzlich als ein UNIQUE-Schlüssel deklariert werden. Damit kann gewährleistet werden, dass die Werte in bestimmten Spalten oder Spaltenkombinationen eindeutig sind. Referentielle Integrität Die referentielle Integrität sichert die Gültigkeit eines Verweises zwischen zwei Tabellen über einen Fremdschlüssel. Ein Fremdschlüssel bezüglich einer Relation ist eine Teilmenge von Attributen einer Relation , so dass zu jedem Zeitpunkt für gilt: Zu jedem Wert von existiert ein gleicher Wert im Schlüsselattribut irgendeines Tupels von Relation . Domänenbedingungen Bedingungen dieser Art beziehen sich auf die Werte, die ein Attribut annehmen darf. Der Datentyp des Attributs wird bereits durch die Spaltendefinition impliziert. Darüber hinaus kann die Menge der möglichen Werte eines Attributs mithilfe einer CHECK-Klausel (z. B. CHECK (FORCE > 0)) weiter eingeschränkt werden. Durch ein NOT NULL-Constraint wird verhindert, dass in den entsprechenden Spalten fehlende Werte vorkommen können. Unternehmensbedingungen Unternehmensbedingungen umfassen alle Integritätsbedingungen, die nicht durch die bisher genannten Bedingungen abgedeckt werden. Unternehmensbedingungen können mithilfe einer CHECK-Klausel definiert werden, sofern sich diese nur auf Attribute innerhalb eines Tupels beziehen. Komplexere Unternehmensbedingungen, die sich nicht nur auf Attribute eines Tupels beziehen, lassen sich dagegen mit Triggern realisieren. Ein Trigger in einer Oracle-Datenbank ist im Wesentlichen eine PL/SQL-Prozedur, die mit einer Tabelle assoziiert ist und automatisch aufgerufen wird, wenn auf der Tabelle eine beliebige Schreiboperation ausgeführt wird. PL/SQL ist eine prozedurale Erweiterung von Oracle-SQL, die Sprachkonstrukte zur Verfügung stellt, die ähnlich sind mit Konstrukten einer imperativen Programmiersprache. Damit wird es dem Entwickler ermöglicht, komplexere Anwendungen zu entwickeln, die den Gebrauch von Kontrollstrukturen und prozedurale Strukturen wie Prozeduren, Funktionen und Module erfordern. KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 41 Abbildung 5.3: Ausreißererkennung Mithilfe der Integritätskontrolle lassen sich alle Fehler erkennen, die in Abschnitt 5.2 im Zusammenhang mit schemabezogenen Single Source-Problemen genannt werden. Der Erfolg der Integritätskontrolle hängt dabei im hohen Maß von der Gründlichkeit der Analyse der geltenden Integritätsbedingungen (Integritätsanalyse) ab. 5.4.3 Ausreißererkennung Ein weiterer Ansatz ungültige Daten zu erkennen, besteht in der Ausreißererkennung. Bei der Ausreißererkennung werden die zu bereinigenden Daten auf Muster oder Trends hin untersucht, denen der Großteil dieser Daten entspricht. Daten, die von diesen Mustern oder Trends abweichen, werden als Ausreißer bezeichnet und als potentielle Fehlerkandidaten betrachtet. Auf diese Weise können auch ungültige Daten erkannt werden, die mithilfe des alleinigen Wissens aus der Integritätsanalyse nicht erkannt werden würden. Zur Ausreißererkennung existiert eine Vielzahl von verschiedenen Verfahren, von denen ein Großteil auf Methoden des Data Mining basiert (z. B. Clustering- oder Assoziationsregel-Algorithmen). Diese Methoden eignen sich gut zur multivariaten Ausreißererkennung, also zur Erkennung von komplexen Fehlern. Voraussetzung für die Anwendung dieser Methoden ist jedoch, dass sehr große Datenbestände zur Verfügung stehen [3]. Wie in Abbildung 5.3 schematisch dargestellt, kann bei einfacheren statistischen Verfahren auf Basis korrekter Beispieldaten ein statistisches Modell erstellt werden, mit dem später neu eintreffende und zu bereinigende Datensätze verglichen werden. Datensätze, die von diesem Modell abweichen, werden dann als potentielle Ausreißer betrachtet. Zur kontinuierlichen Verbesserung des Modells empfiehlt es sich, das Modell in regelmäßigen Abständen zu aktualisieren. KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 42 Als Beispiel sei ein statistisches Verfahren zur univariaten Ausreißererkennung erwähnt, welches sich gut zur Erkennung von Ausreißern unter eindimensionalen Messwerten eignet. Das im Folgenden beschriebene Verfahren macht sich die Tschebyscheff-Ungleichung zunutze. Die Tschebyscheff-Ungleichung lautet wobei eine Zufallsvariable ist und die Variablen und den Durchschnitt und die Standardab- weichung der Zufallsvariablen darstellen. Für gilt dann was beispielsweise bedeutet, dass bei einer Zufallsvariablen für für für mindestens 75% der Werte im In- tervall liegen (bei speziellen Verteilungen kann dieser Wert bedeutend größer sein). Demnach weichen Werte, die außerhalb des Intervalls liegen, von einem sehr großen Teil (mindestens 75%) der Daten ab. durch Ermitteln des Durchschnitts und der Standardabweichung ein statistisches Modell erzeugen. Ein Wert eines Attributs kann dann als Ausreißer in Betracht gezogen werden, wenn für den Wert gilt: oder . Der Wert für muss an den jeweiligen Anwendungsfall und an die Werteverteilung des Attributs angepasst werden [3]. Im Kontext der Datenbereinigung lässt sich für ein Attribut 5.5 Die Vorgehensweise Die in diesem Abschnitt beschriebene Vorgehensweise zur Datenkonsolidierung ist im Wesentlichen an die in [4] beschriebene Vorgehensweise angelehnt. Danach stellt die Datenkonsolidierung einen Prozess dar, der folgende Phasen durchläuft: 1. Datenanalyse 2. Definition des gemeinsamen Zielschemas 3. Definition der Datenbereinigungsprozesse 4. Implementierung der Datenbereinigungsprozesse KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 43 5. Einlesen der Quelldaten und Ausführen der Datenbereinigungsprozesse Die Datenanalyse dient zur Ermittlung des zur Datenintegration erforderlichen Wissens über die Dateneigenschaften sowie die auftretenden Datenqualitätsprobleme. Daraufhin wird das Schema der Zieldatenbank definiert, welches sämtliche Daten aus den Quellsystemen aufnehmen kann. In der anschließenden Phase zur Definition der Datenbereinigungsprozesse werden Regeln für notwendige Datentransformationen definiert, die später bei der eigentlichen Datenintegration zur Anpassung der Quelldaten an das Zielschema angewendet werden sowie geeignete Methoden zur Datenbereinigung gewählt. Schließlich werden Prozesse definiert, die die zeitliche Abfolge zur Durchführung der notwendigen Transformationen und Bereinigungsschritte festlegen. Nach erfolgter Implementierung können die Daten durch Ausführung der Datenbereinigungsprozesse eingelesen, konsolidiert und in die Datenbank geladen werden. Im Regelfall sollen die ersten vier Phasen einmalig und die fünfte Phase in regelmäßigen Abständen wiederholt durchlaufen werden. Bei Bedarf können selbstverständlich vorangegangene Phasen wiederholt werden, wenn beispielsweise neue Qualitätsmängel in Erscheinung treten oder es einer Korrektur bzw. Änderung eines Datenbereinigungsprozesses bedarf. In den folgenden Abschnitten werden die ersten drei Phasen detaillierter beschrieben. 5.5.1 Datenanalyse Aufgrund der Verteilung der Daten auf verschiedene Systeme ist es im ersten Schritt erforderlich, die im Zielsystem abzubildenden Daten zu identifizieren und zu analysieren. Ziel der Analyse ist es, möglichst gutes Wissen über die Inhalte und die Struktur der zu integrierenden Daten zu gewinnen und dabei mögliche Qualitätsprobleme (vgl. Abschnitt 5.2) aufzudecken. Grundlage für die Datenanalyse sind Dokumentationen zu den Quellsystemen sowie bereits vorhandene Beispieldaten. Darüber hinaus können auch Interviews mit Sachverständigen weitere notwendige Informationen liefern. Der Grad der Analyse der Daten ist je nach Anwendungsfall verschieden und hängt mitunter davon ab, welche Methoden zur Datenbereinigung angewendet werden. In [2] werden zwei Ansätze zur Datenanalyse genannt. Beim ersten Ansatz, der als Data Profiling bezeichnet wird, werden im Sinne eines Meta-Reengineering durch Sichten der Daten sowie durch Anwenden von einfachen statistischen Methoden Metadaten über die einzelnen Attribute ermittelt. In der Regel werden dabei für jedes im Rahmen der Datenintegration relevante Attribut folgende Eigenschaften ermittelt: • Datentyp • Wertebereich • typische Muster von Werten bei Zeichenketten KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 44 • Minimale und maximale Länge von Werten • Minimaler und maximaler Wert bei numerischen Werten • Vorkommen von Nullwerten • Eindeutigkeit • Häufigkeitsverteilung von Werten • Ermittlung des Durchschnittswertes, des Medians sowie der Standardabweichung bei numerischen Werten Das Ermitteln der oben genannten Metadaten ist in verschiedener Hinsicht von Bedeutung. Zum einen stellen die Ergebnisse des Data Profiling eine Grundlage für die Definition des Zielschemas sowie von Integritätsbedingungen dar und zum anderen kann das Data Profiling zur Identifizierung von Datenqualitätsproblemen beitragen. Mithilfe der aufgestellten Häufigkeitsverteilungen und der ermittelten statistischen Kenngrößen wie der Standardabweichung und des Durchschnittswertes können später innerhalb des Datenbereinigungsprozesses falsche Werte (univariate Ausreißer) entdeckt werden (vgl. Abschnitt 5.4.3). Statistische Kenngrößen wie Durchschnittswert, Median und häufigster Wert können zur Korrektur von fehlenden oder falschen Werten herangezogen werden. Wie der Vorgang des Data Profiling zur Identifizierung von möglichen Qualitätsproblemen führt, wird im Folgenden anhand einiger Beispiele erläutert. Beispiel 1 Tabelle 5.1 zeigt die Statistik eines Attributs, für welches die Eindeutigkeitseigen- schaft gilt. Das Abweichen der beiden Werte voneinander zeigt, dass Attributwerte mehrmals vorkommen und demnach die Eindeutigkeitseigenschaft verletzt ist. Anzahl Zeilen Anzahl verschiedener Werte 32 056 32 039 Tabelle 5.1: Statistik zu Beispiel 1 Beispiel 2 In Tabelle 5.2 sind alle in einem Attribut GESCHLECHT vorkommenden Werte so- wie deren Häufigkeiten aufgeführt. Das dreifache Vorkommen des Wertes S“ lässt auf ungültige ” Werte schließen. Handelt es sich bei dem Attribut um ein Pflichtfeld, deuten die Vorkommen des Wertes NULL auf fehlende Werte in diesem Attribut hin. KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG Attribut GESCHLECHT GESCHLECHT GESCHLECHT GESCHLECHT Inhalt M W S NULL 45 Anzahl Vorkommen 4 657 4 456 3 10 Tabelle 5.2: Statistik zu Beispiel 2 Attribut GESCHLECHT GESCHLECHT Inhalt der Quelle 1 Inhalt der Quelle 2 M M W F Tabelle 5.3: Statistik zu Beispiel 3 Beispiel 3 In Tabelle 5.3 sind zu zwei verschiedenen Quellen jeweils alle in einem Attribut GE- SCHLECHT vorkommenden Werte aufgeführt. Die unterschiedlichen Werte in den beiden Quellen, deuten auf eine uneinheitliche Repräsentation der Daten hin. Bei den bisher erläuterten Analysen werden die einzelnen Attribute immer isoliert voneinander betrachtet. Aufgrund von applikationsspezifischen Geschäftsregeln existieren häufig aber auch Abhängigkeiten zwischen Attributen, die sich sowohl auf mehrere Attribute eines Tupels als auch auf Attribute mehrerer inhaltlich zusammenhängender Tupel erstrecken können. Aus diesem Grund werden auf Basis der geltenden Geschäftsregeln Integritätsbedingungen definiert, anhand derer fehlerhafte Daten erkannt werden können (vgl. Abschnitt 5.4.2). Ein zweiter Ansatz im Rahmen der Datenanalyse ist die Anwendung von Data Mining-Methoden, mit deren Hilfe auch Dateneigenschaften (z. B. Trends, Muster, etc.) aufgedeckt werden können, die nicht ohne weiteres aus Geschäftsregeln abgeleitet werden können. Die dabei gewonnenen Informationen über die Daten können zur Erkennung und Korrektur von fehlerhaften Daten verwendet werden. Datenqualitätsprobleme, die aus Schema- oder Datenkonflikten resultieren, geben Aufschluss über die zur Datenintegration notwendigen Datentransformationen. In diesem Zusammenhang müssen die Quelldaten auch auf redundante Informationen hin untersucht werden. Dabei werden Attribute in den Quelldaten ermittelt, die möglicherweise gleiche Informationen beinhalten und somit bei der Zusammenführung der Quelldaten entfernt werden können. 5.5.2 Definition des Zielschemas Unter Berücksichtigung der in der Datenanalyse gewonnenen Informationen über die Daten der Quellsysteme und der dokumentierten Anforderungen wird ein normalisiertes Datenmodell erstellt, welches in der Lage ist alle zu integrierenden Daten aufzunehmen. Eine aufwändige Sche- KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 46 maintegration, bei der die lokalen Schemata aus den Quellsystemen in ein einheitliches Schema überführt werden und etwaige strukturelle Konflikte beseitigt werden, erübrigt sich in diesem Anwendungsfall, da die Datenhaltungssysteme der Quellsysteme auf Textdateien basieren und daher keine komplexen Schemata besitzen. Auf die Probleme, die mit einer Schemaintegration verbunden sein können, sowie deren Lösungsansätze wird daher nicht weiter eingegangen. Die Anforderungen, die bei einer Schemaintegration an das Zielschema gestellt werden, lassen sich allerdings auf den vorliegenden Anwendungsfall übertragen und entsprechend anpassen. Die Anforderungen sind im Folgenden aufgeführt: • Die in den ursprünglichen Quelldateien enthaltenen Informationen sollen vollständig übernommen werden (Vollständigkeit) • Im Zielschema sollen keine redundanten Strukturen vorkommen (Minimalität) • Das Zielschema soll verständlich sein (Verständlichkeit) • Die im Zielschema enthaltenen Informationen müssen äquivalent zu den Informationen in den Quelldateien sein (Korrektheit) 5.5.3 Definition der Datenbereinigungsprozesse Basierend auf den Ergebnissen der Datenanalyse wird ein so genannter ETL-Prozess (Extraction, Transformation, Loading) definiert. In der Extraktionsphase werden die Quelldaten aus den Quellsystemen extrahiert, an den Server übertragen und in die Importtabellen eines vom Zielschema abgegrenzten Datenbeschaffungsbereichs importiert. Die Attribute der Importtabellen ergeben sich aus der Analyse der Quellsysteme und nehmen die Daten auf, die für die Integration der Daten in das Zielschema benötigt werden. Beim Importvorgang werden die Daten in der Regel unverändert übernommen und gegebenenfalls archiviert, um über die Möglichkeit einer Wiederherstellung der Originaldaten zu verfügen. In der anschließenden Transformationsphase werden die notwendigen Transformationen und Bereinigungsschritte durchgeführt. Hierzu müssen Regeln für die notwendigen Datentransformationen bezüglich Struktur und Repräsentation definiert und geeignete Methoden zur Datenbereinigung gewählt werden. Außerdem muss ein Prozess definiert werden, der die zeitliche Abfolge zur Durchführung der notwendigen Transformationen und Bereinigungsschritte festlegt. Eine Vorgabe, in welcher Reihenfolge bestimmte Transformations- und Bereinigungsschritte durchgeführt werden sollten, existiert nicht. Sinnvollerweise erfolgt anfangs eine Überprüfung der Daten im Hinblick auf die syntaktische Korrektheit, da das Erfüllen dieses Kriteriums unumgänglich für die weitergehende Datenbereinigung ist. Die anschließende Behandlung der einzelnen semantischen Fehler sollte möglichst in Reihenfolge zunehmender Komplexität erfolgen. Die Transformation und Bereinigung der Daten erfolgt gewöhnlich in einem ebenfalls vom Zielschema abgegrenzten Transformationsbereich (Staging Area), der aus verschiedenen Zwischentabellen besteht. Auf KAPITEL 5. GRUNDLAGEN ZUR DATENKONSOLIDIERUNG 47 diese Weise kann die Aufbereitung der Daten durchgeführt werden, ohne dass die Zieltabellen davon beeinträchtigt werden. Somit ist gewährleistet, dass in den Zieltabellen immer nur vollständig konsolidierte Daten vorliegen. Nach Durchlaufen der Transformationsphase liegen im Transformationsbereich die Quelldaten in einer Form vor, wie sie in das Zielschema übernommen werden können. In der Ladephase werden die bereinigten Daten schließlich in das Zielsystem übertragen. Kapitel 6 Datenkonsolidierung In diesem Kapitel wird die in Kapitel 5 beschriebene Vorgehensweise zur Datenkonsolidierung auf den vorliegenden Anwendungsfall angewendet. Im folgenden Abschnitt wird zunächst eine Analyse der einzelnen Quellsysteme durchgeführt (Abschnitt 6.1). Basierend auf den dabei gewonnenen Informationen werden im Anschluss ein einheitliches Zielschema erstellt (Abschnitt 6.2) und die notwendigen Datenbereinigungsprozesse definiert (Abschnitt 6.3). Auf die Implementierung der Datenbereinigungsprozesse wird in Kapitel 7 eingegangen. 6.1 Datenanalyse Zur Durchführung der Datenanalyse wurden vorhandene Prozessdaten aus den bestehenden Datenhaltungssystemen in Tabellen einer Oracle-Datenbank importiert. Damit war es möglich, mittels der Abfragesprache SQL einzelne Datenabfragen effizient durchzuführen, um sich ein Bild über die vorhandenen Daten und Qualitätsprobleme zu machen. In den folgenden Abschnitten werden die Metadaten sowie weitere Integritätsbedingungen der einzelnen Quellsysteme aufgeführt, außerdem werden die Single Source-Probleme der Quellsysteme beschrieben. Syntaktisch falsche oder fehlende Werte können in fast allen Quellsystemen vorkommen. Erfolgt am Operationsstand OP090 ein Austausch einer Komponente aus der Wellenvormontage, können der Ersatzkomponente keine Schraub- und Presskraftdatensätze zugeordnet werden, da beim Austausch die virtuelle Kennung der Ersatzkomponente nicht erfasst wird. Dieser Fall führt demnach zum Verlust von Schraub- und Presskraftdatensätzen. Die eben genannten Qualitätsprobleme werden in den folgenden Abschnitten nicht jedes Mal explizit genannt. Auf Multi Source-Probleme wird in einem separaten Abschnitt eingegangen. 6.1.1 Kombinationsdaten Die Metadaten der Kombinationsdaten ergeben sich im Wesentlichen aus [7] und sind in Tabelle 6.1 dargestellt. Die Getriebe-Seriennumner besteht aus 13 ASCII-Zeichen und hat folgenden 48 KAPITEL 6. DATENKONSOLIDIERUNG 49 Aufbau: Stelle Bedeutung 1-3 Kürzel für das Werk (R-- = Rüsselsheim) 4+5 Produktionsjahr (verfügt das Getriebe über eine SAAB-Kunden-Seriennummer, wird 6-11 die Angabe für das Produktionsjahr auf 00“ gesetzt) ” fortlaufende Nummer 12+13 zweistelliger Alpha-Code, der den Getriebetyp angibt Da die Zusammensetzungen der Kunden-Seriennummern für diese Arbeit nicht relevant sind, wird auf diese nicht weiter eingegangen. Feldname Datentyp Wertebereich (Getriebe- Text ID FIAT (FIAT-KundenSeriennummer) Text ID SAAB (SAAB-KundenSeriennummer) Text TIMESTAMP (Zeitpunkt der Erfassung) V ID1 bis V ID6 (Virtuelle Kennungen der Stationen ST040, ST060, ST070, ST080, ST110, ST120) Datum wird durch den regulären Ausdruck R–[0-9]8[A-Z]2 beschrieben wird durch den regulären Ausdruck [0-9]2-[0-9]1-[09]3-[0-9]7 beschrieben wird durch den regulären Ausdruck FM6[09]1[4,5,B]1[A-Z]5[09]3 beschrieben Format: dd.MM.yyyy hh:mm:ss Text achtstellige Zeichenkette ID OPEL Seriennummer) Min./Max. Länge 13 / 13 16 / 16 13 / 13 8/8 Tabelle 6.1: Metadaten der Kombinationsdaten Weitere Integritätsbedingungen • Alle Felder sind eindeutig. • Abgesehen von den Feldern ID FIAT und ID SAAB sind alle Felder Pflichtfelder. • Einem Getriebe kann nur eine Kunden-Seriennummer zugewiesen sein ID FIAT != NULL XOR ID SAAB != NULL KAPITEL 6. DATENKONSOLIDIERUNG 50 Single Source-Probleme Aufgrund von Erfassungsfehlern durch die Software an der Station ST140 weisen die Kombinationsdaten relativ viele fehlende oder abgeschnittene Werte in allen Feldern mit Ausnahme des Feldes TIMESTAMP auf. In einigen Zeiträumen sind 10% der Datensätze fehlerhaft. Das Fehlen eines Wertes im Feld ID OPEL tritt offensichtlich auf, wenn ein Getriebe wiederholt in die Station ST140 eingeschleust wird, da das Einfügen eines Datensatzes mit einer bereits existenten Getriebe-Seriennummer dazu führt, dass der Datensatz zwar eingefügt wird, aber das Feld ID OPEL leer bleibt. Darüber hinaus führt das wiederholte Einschleusen eines Getriebes an der Station ST140 und das damit verbundene erneute Erfassen der Kombinationsdaten zur Verletzung der Eindeutigkeitseigenschaft in den Feldern V ID1, V ID2, V ID3, V ID4, V ID5 und V ID6. Wird bei einer erneuten Einschleusung ein anderer Wellensatz als bei der vorangegangen Einschleusung verwendet, weisen die Datensätze der beiden Einschleusungen in den Feldern V ID1, V ID2, V ID3, V ID4, V ID5 und V ID6 unterschiedliche Werte auf. 6.1.2 Presskraftdaten Obwohl sich die DFQ-Dateien der einzelnen Quellsysteme in ihrer Merkmalsstruktur unterscheiden, sind die zu einer einzelnen Pressoperation erfassten Datenfelder in allen Quellsystemen identisch. Aus diesem Grund werden in diesem Abschnitt die Presskraftdaten aller Quellsysteme gemeinsam behandelt. In Tabelle 6.2 sind die Metadaten der Presskraftdaten aufgeführt. Da die Felder in den DFQ-Dateien lediglich über ihre Schlüssel identifiziert werden, sind zur besseren Lesbarkeit zusätzlich frei vergebene Feldnamen angegeben, die später teilweise auch bei der Definition des Zielschemas verwendet werden. Das Feld PART NUMBER beinhaltet die Seriennummer des bearbeiteten Teils. Stammt der Datensatz von einer Montage-Station aus der Vormontage, so ist die Seriennummer die achtstellige virtuelle Kennung, ansonsten die 13-stellige Getriebe-Seriennummer. Das Feld ATTRIBUTE speichert einen Fehlercode zwischen 0 und 255. Der Wert 0“ bedeutet, dass die Operation sowie die ” Messung erfolgreich waren. Die gültigen Werte für die Felder STATION und SPINDLE sowie deren gültige Wertekombination ergeben sich aus den gestellten Anforderungen (vgl. Abschnitt 3.2). An der fünften Pressspindel der Station ST110 sowie an allen Pressspindeln der Station ST140 wird jedes Teil zweimal bearbeitet. Hieraus ergeben sich der Wertebereich für das Feld STEP sowie die gültigen Wertekombinationen der Felder STATION, SPINDLE und STEP. Die Werte der Felder MEASUREMENT VALUE DIM1 (Einpresstiefe) und MEASUREMENT VALUE DIM2 (Einpresskraft) hängen von den Grenzwerteinstellungen an den Montage-Stationen ab, die in den Feldern LOWER LIMIT DIM1 (Unterer Grenzwert für Einpresstiefe), UPPER LIMIT DIM1 (Oberer Grenzwert für die Einpresstiefe), LOWER LIMIT DIM2 (Unterer Grenzwert für die Einpresskraft) und UPPER LIMIT DIM2 (Oberer Grenzwert für Einpresskraft) übertragen werden. KAPITEL 6. DATENKONSOLIDIERUNG 51 Feldname Datentyp Wertebereich K0006 - PART NUMBER (Teile-Seriennummer) Text K0002 - ATTRIBUTE (Fehlercode) K0008 - STATION (Station) K0007 - SPINDLE (Spindel) ganze Zahl Text ganze Zahl ganze Zahl Datum wird durch den regulären Ausdruck R–[0-9]8[A-Z]2 beschrieben; bei Daten, die an den Stationen ST040, ST110, ST120 erzeugt werden: achtstellige Zeichenkette [0;255] STEP (Schritt) K0004 - TSTAMP (Erfassungsdatum) K2110 - LOWER LIMIT DIM1 (Untere Grenze für Einpresstiefe) K2111 - UPPER LIMIT DIM1 (Obere Grenze für Einpresstiefe) K2110 - LOWER LIMIT DIM2 (Untere Grenze für Einpresskraft) K2111 - UPPER LIMIT DIM2 (Obere Grenze für Einpresskraft) K0001 MEASUREMENT VALUE DIM1 (Messwert für Einpresstiefe) K0001 MEASUREMENT VALUE DIM2 (Messwert für Einpresskraft) 040, 110, 120, 140, 160 [1;9] [1;2] Format: dd.MM.yyyy/hh:mm:ss Zahl 0 Zahl 0 Zahl Zahl Zahl 0 Zahl Tabelle 6.2: Metadaten der Presskraftdaten Min./Max. Länge 13 / 13 bzw. 8 / 8 3/3 KAPITEL 6. DATENKONSOLIDIERUNG 52 Datensätze erfolgreicher Pressoperationen dürfen selbstverständlich nur Messwerte beinhalten, die innerhalb der jeweiligen Grenzwerteinstellungen liegen. Im Laufe der Zeit ändern sich die Grenzwerteinstellungen an den Montage-Stationen, so dass sich auch die Werteverteilungen in den Feldern für die Einpresstiefe und die Einpresskraft ändern. Inwiefern sich die Grenzwerteinstellungen zukünftig ändern werden, lässt sich aufgrund der in der Montagelinie herrschenden Unwägbarkeiten nicht vorhersagen. Im Allgemeinen definiert die Abteilung Fertigungsplanung Vorgaben für die an den MontageStationen einzustellenden Grenzwerte für die Einpresskraft. Diese Vorgaben werden jedoch von der Abteilung Getriebefertigung nicht immer eingehalten. Hierfür ist in erster Linie ein gewisser Interessenskonflikt zwischen den beiden Abteilungen verantwortlich. Die Abteilung Fertigungsplanung hat ein Interesse an mechanisch einwandfrei funktionierenden Getrieben in hoher Fertigungsqualität und gibt der Abteilung Getriebefertigung Grenzwerte für die einzelnen Pressoperationen vor, die unverbindliche Richtwerte darstellen. Bei der Vorgabe der Grenzwerte werden Aspekte der Schaltbarkeit, der Öldichtigkeit und der mechanischen Dauerbelastbarkeit berücksichtigt. Dies kann bedeuten, dass eine niedrigere Produktionszahl angestrebt wird, wenn dabei gleichzeitig die Qualität des einzelnen Getriebes steigt. Vorteile dieses Vorgehens sind weniger Garantierücknahmen und geringere Ausschusskosten. Die Abteilung Getriebefertigung dagegen hat ein Interesse an einer störungsfrei gefertigten hohen Produktionszahl. Zur Erreichung dieses Ziels wird mit einer geringeren Präzision, also mit breiteren Toleranzbereichen produziert, was nicht im Sinne einer hohen Fertigungsqualität ist, aber dennoch zu akzeptablen Ergebnissen führen kann. Aufgrund von Informationen seitens der Planungsabteilung kann jedoch die Aussage getroffen werden, dass sich voraussichtlich die eingestellten Grenzwerte für die Einpresskraft, unabhängig von der angestrebten Fertigungspräzision, innerhalb der in Tabelle 6.3 aufgeführten Toleranzbereiche bewegen werden. Werte, die nicht innerhalb der aufgeführten Toleranzbereiche liegen, können also als falsche Werte (z. B. durch Erfassungs- oder Übertragungsfehler verursacht) betrachtet werden. Analysen von Beispieldaten haben allerdings ergeben, dass bei vereinzelten Spindeln der Wert für den unteren Grenzwert für die Einpresskraft beabsichtigt im negativen Bereich liegt. Grenzwerteinstellungen im negativen Bereich sind physikalisch unsinnig und werden lediglich aus betriebstechnischen Gründen vorgenommen. Aus diesem Grund wird der Wertebereich für das Feld LOWER LIMIT DIM2 (Unterer Grenzwert für die Einpresskraft) in den negativen Bereich ausgedehnt. In welchen Bereichen sich die an den Montage-Stationen eingestellten Grenzwerte für die Einpresstiefe und damit auch die Messwerte für die Einpresstiefe bewegen werden, lässt sich aus heutiger Sicht nicht beurteilen. Die an den Montage-Stationen eingestellten Grenzwerte für die Einpresstiefe werden von der Abteilung Getriebefertigung bestimmt und können sich ebenfalls im Laufe der Zeit aufgrund verschiedener betriebsbedingter Faktoren ändern. Für die Grenzwerte der Einpresstiefe existieren auch keine Vorgaben seitens der Abteilung Fertigungsplanung, da die KAPITEL 6. DATENKONSOLIDIERUNG Station Spindel ST040 ST110 ST110 ST110 ST110 ST110 ST120 ST120 ST120 ST120 ST120 ST120 1 1 2 3 4 5 1 2 3 4 5 6 Toleranzbereich Anpresskraft(kN) ]0;15] ]0;8] ]0;8] ]0;8] ]0;8] ]0;8] ]0;8] ]0;8] ]0;8] ]0;8] ]0;10] ]0;10] 53 Station Spindel ST120 ST120 ST120 ST140 ST140 ST140 ST140 ST160 ST160 ST160 ST160 7 8 9 1 2 3 4 1 2 3 4 Toleranzbereich Anpresskraft(kN) ]0;10] ]0;10] ]0;8] ]0;10] ]0;10] ]0;10] ]0;10] ]0;15] ]0;10] ]0;10] ]0;10] Tabelle 6.3: Toleranzbereiche für Pressoperationen Werte für die Einpresstiefe keine hohe Relevanz haben. Entscheidend ist, dass bei einer Operation die angestrebte Einpresskraft erreicht wird, um die ausreichende Festigkeit der Pressverbindung zu gewährleisten. Aufgrund der genannten Unwägbarkeiten in der Montagelinie lassen sich also anhand von Beispieldaten keine Aussagen über die Werteverteilung in den genannten Feldern sowie über die Beziehung zwischen den Feldern für die Einpresstiefe und die Einpresskraft treffen. Aus diesem Grund soll auf weitere statistische Analysen der Presskraftdaten verzichtet werden. Weitere Integritätsbedingungen 1. Alle Felder sind Pflichtfelder. 2. Für die Kombination der Felder (PART NUMBER, STATION, SPINDLE, STEP) gilt die Eindeutigkeitseigenschaft. 3. Der Messwert für die Einpresstiefe liegt zwischen dem unteren und dem oberen Grenzwert für die Einpresstiefe LOWER LIMIT DIM1 MEASURING VALUE DIM1 UPPER LIMIT DIM1 4. Der Messwert für die Einpresskraft liegt zwischen dem unteren und dem oberen Grenzwert für die Einpresskraft LOWER LIMIT DIM2 MEASURING VALUE DIM2 UPPER LIMIT DIM2 Single Source-Probleme Wird bei einem Getriebe eine Pressoperation wiederholt, so wird die Eindeutigkeitseigenschaft der Feldkombination (PART NUMBER, STATION, SPINDLE, STEP) verletzt. KAPITEL 6. DATENKONSOLIDIERUNG 54 Station Spindel Toleranzbereich Drehwinkel (°) Sollwert Drehmoment (Nm) ST040 ST040 ST110 ST110 ST120 ST140 1 2 1 2 1 1 [45;105] [45;60] - 60 30 20 10 10 45 Toleranzbereich Drehmoment (Nm) [30;150] [20;75] [18;22] [8;12] [8;12] [38;52] Tabelle 6.4: Sollwerte und Toleranzbereiche für Schrauboperationen Semantisch falsche Messwerte in Form von Ausreißern, die durch Fehlmessungen verursacht werden, werden in der Regel direkt von dem jeweiligen Messsystem erkannt. In diesem Fall wird der entsprechende Datensatz mit einem Fehlercode versehen. Semantisch falsche Werte, verursacht durch nachgeschaltete Datenebereinigungsprozesse (z. B. Datenspeicherung, Datenübertragung oder Datenimport), sind jedoch nicht auszuschließen. 6.1.3 Schraubkraftdaten Wie bei den Pressoperationen sind die bei einer Schrauboperation erfassten Datenfelder in allen Quellsystemen identisch. Aus diesem Grund werden auch die Schraubkraftdaten aller Quellsysteme in einem gemeinsamen Abschnitt behandelt. In Tabelle 6.5 sind die Metadaten der Schraubkraftdaten aufgeführt. Auch hier sind zur besseren Lesbarkeit zusätzlich frei vergebene Feldnamen angegeben. Die Wertebereiche der Felder PART NUMBER und ATTRIBUTE sind identisch mit denen der gleichnamigen Felder der Presskraftdaten. Die gültigen Werte für die Felder SPINDLE und STATION sowie deren gültige Wertekombinationen ergeben sich bei den Schraubkraftdaten ebenfalls aus den gestellten Anforderungen (vgl. Abschnitt 3.2). Wie bei den Pressvorrichtungen können sich im Laufe der Zeit die Grenzwerteinstellungen an den Schraubvorrichtungen und damit auch die Wertebereiche der Felder für den Drehwinkel und das Drehmoment ändern. Präzisere Aussagen über die Eigenschaften der Felder MEASUREMENT VALUE DIM2 (Drehmoment), LOWER LIMIT DIM2 (Unterer Grenzwert für das Drehmoment) und UPPER LIMIT DIM2 (Oberer Grenzwert für das Drehmoment) lassen sich aus den Vorgaben für die Sollwerte seitens der Abteilung Fertigungsplanung, die in Tabelle 6.4 aufgeführt sind, ableiten. Die eingesetzten Schrauber sind sehr präzise und erreichen in der Regel den Sollwert für das Drehmoment mit einer Abweichung von +/- 0,5 Nm. Stärker abweichende Drehmomente, die jedoch innerhalb der aufgeführten Toleranzbereiche liegen, können trotzdem zu akzeptablen Ergebnissen führen. Die Grenzwerteinstellungen an den Montage-Stationen werden von der Abteilung Getriebefertigung vorgenom- KAPITEL 6. DATENKONSOLIDIERUNG 55 men und können sich im Lauf der Zeit ändern. Bei der Bemessung der Grenzwerte steht in erster Linie ein reibungsloser Montageprozess im Vordergrund, dabei werden unter Umständen auch Faktoren wie z. B. der aktuell verwendete Schraubentyp oder der aktuell montierte Getriebetyp berücksichtigt. Voraussichtlich werden sich die eingestellten Grenzwerte jedoch innerhalb der in Tabelle 6.4 aufgeführten Toleranzbereiche bewegen. Wie bei den Presskraftdaten können also Werte, die nicht innerhalb der angegebenen Toleranzbereiche liegen, als falsche Werte betrachtet werden. In welchen Bereichen sich die an den Montage-Stationen eingestellten Grenzwerte und damit auch die Messwerte für den Drehwinkel bewegen werden, lässt sich aus heutiger Sicht nur für die Schraubspindeln der Station ST040 beurteilen (vgl. Tabelle 6.4). Für die Spindeln der übrigen Stationen existieren auch keine Vorgaben für den Drehwinkel seitens der Abteilung Fertigungsplanung, da bei diesen Spindeln die Zahl der ausgeführten Umdrehungen keine Relevanz hat. Entscheidend ist lediglich, dass das geforderte Drehmoment erreicht wird, um die notwendige Festigkeit der Schraubenverbindung zu gewährleisten. Wie bei den Presskraftdaten soll auf weitere statistische Analysen der Schraubkraftdaten verzichtet werden. Weitere Integritätsbedingungen 1. Alle Felder sind Pflichtfelder. 2. Für die Kombination der Felder (PART NUMBER, STATION, SPINDLE) gilt die Eindeutigkeitseigenschaft. 3. Der Messwert für Drehwinkel liegt zwischen dem unteren und dem oberen Grenzwert für den Drehwinkel LOWER LIMIT DIM1 MEASURING VALUE DIM1 UPPER LIMIT DIM1 4. Der Messwert für Drehmoment liegt zwischen dem unteren und dem oberen Grenzwert für das Drehmoment LOWER LIMIT DIM2 MEASURING VALUE DIM2 UPPER LIMIT DIM2 Single Source-Probleme Wird bei einem Getriebe eine Schrauboperation wiederholt, so wird die Eindeutigkeitseigenschaft der Feldkombination (PART NUMBER, STATION, SPINDLE) verletzt. Es können ganze Schraubkraftdatensätze fehlen, wenn aufgrund eines Ausfalls einer Schraubspindel die entsprechenden Verschraubungen mithilfe eines Handschraubers durchgeführt werden. Auch bei Schrauboperationen werden semantisch falsche Messwerte in Form von Ausreißern von dem jeweiligen Messsystem erkannt. KAPITEL 6. DATENKONSOLIDIERUNG 56 Feldname Datentyp Wertebereich K0006 - PART NUMBER (Teile-Seriennummer) Text K0002 - ATTRIBUTE (Fehlercode) K0008 - STATION (Station) K0007 - SPINDLE (Spindel) ganze Zahl Text ganze Zahl Datum wird durch den regulären Ausdruck R–[0-9]8[A-Z]2 beschrieben; bei Daten, die an den Stationen ST040, ST110, ST120 erzeugt werden: achtstellige Zeichenkette [0;255] K0004 - TSTAMP (Erfassungsdatum) K2110 - LOWER LIMIT DIM1 (Untere Grenze für Drehwinkel) K2111 - UPPER LIMIT DIM1 (Obere Grenze für Drehwinkel) K2110 - LOWER LIMIT DIM2 (Untere Grenze für Drehmoment) K2111 - UPPER LIMIT DIM2 (Obere Grenze für Drehmoment) K0001 MEASUREMENT VALUE DIM1 (Messwert für Drehwinkel) K0001 MEASUREMENT VALUE DIM2 (Messwert für Drehmoment) 040, 110, 120, 140 [1;2] Format: dd.MM.yyyy/hh:mm:ss Zahl Zahl Zahl Zahl Zahl Zahl Tabelle 6.5: Metadaten der Schraubkraftdaten Min./Max. Länge 13 / 13 bzw. 8 / 8 3/3 KAPITEL 6. DATENKONSOLIDIERUNG Feldname OPEL ID Seriennummer) (Getriebe- SHIM CLASS (Shim-Klasse) SHAFT (Art der Komponente) TSTAMP (Zeitpunkt der Erfassung) 57 Datentyp Wertebereich Text wird durch den regulären Ausdruck R–[0-9]8[A-Z]2 beschrieben [1,25] ganze Zahl Text Datum HWO, HWU, AWE, DIF, (HWO = Hauptwelle oben, HWU = Hauptwelle unten, AWE = Antriebswelle, DIF = Differentialgehäuse) Format: dd.MM.yyyy hh:mm:ss Min./Max. Länge 13 / 13 3/3 Tabelle 6.6: Metadaten der Shim-Daten 6.1.4 Shim-Daten Die Metadaten der Shim-Daten sind in Tabelle 6.6 aufgeführt. Das Feld OPEL ID beinhaltet die 13-stellige Getriebe-Seriennummer. Das Feld SHIM CLASS beinhaltet nicht die absolute Angabe für die Shim-Größe, sondern einen Wert zwischen 1 und 25. Jeder Wert repräsentiert dabei eine Shim-Größe (Shim-Klasse). Der Wertebereich des Feldes SHAFT setzt sich aus vier dreistelligen Kürzeln zusammen, die jeweils eine Komponentenart repräsentieren. Weitere Integritätsbedingungen • Für die Kombination der Felder (OPEL ID, SHAFT) gilt die Eindeutigkeitseigenschaft. • Alle Felder sind Pflichtfelder. • Das Feld OPEL ID ist ein Fremdschlüssel, der die Kombinationsdaten referenziert. Single Source-Probleme Die Eindeutigkeitseigenschaft der Feldkombination (OPEL ID, SHAFT) wird verletzt, wenn ein Getriebe die Station ST150 wiederholt durchläuft. 6.1.5 Ausschleusungsdaten Die Metadaten der Ausschleusungsdaten sind in Tabelle 6.7 aufgeführt. KAPITEL 6. DATENKONSOLIDIERUNG Feldname OPEL ID Seriennummer) (Getriebe- TSTAMP (Zeitpunkt der Ausschleusung) 58 Datentyp Wertebereich Text wird durch den regulären Ausdruck R–[0-9]8[A-Z]2 beschrieben Format: dd.MM.yyyy hh:mm:ss Datum Min./Max. Länge 13 / 13 Tabelle 6.7: Metadaten der Ausschleusungsdaten Weitere Integritätsbedingungen • Für das Feld OPEL ID gilt die Eindeutigkeitseigenschaft. • Beide Felder sind Pflichtfelder. • Das Feld OPEL ID ist ein Fremdschlüssel, der die Kombinationsdaten referenziert. Single Source-Probleme Die Eindeutigkeitseigenschaft des Feldes OPEL ID wird verletzt, wenn ein Getriebe die Station ST300 wiederholt durchläuft. 6.1.6 Beziehungen zwischen den Quellen und Multi Source-Probleme Fremdschlüsselbeziehungen zwischen den Daten der einzelnen Quellsysteme wurden bereits beschrieben. Der Ablauf des Montageprozesses, also die Reihenfolge der durchgeführten Operationen, ist statisch. Aus diesem Grund müssen die Zeitstempel der einzelnen Datensätze bezüglich eines Getriebes zeitchronologisch in der Reihenfolge liegen, wie die entsprechenden Operationen in der Montagelinie durchgeführt werden. Aufgrund einer nicht funktionierenden Synchronisierung der Zeiteinstellungen an den Montage-Stationen kann es allerdings zu widersprüchlichen Zeitangaben kommen. Infolge von Aus- und Einschleusungen können sich die Reihenfolgen der Paletten in der Montagelinie ändern. Eine Operation kann nur durchgeführt werden, wenn alle ihre vorangegangenen Operationen erfolgreich durchgeführt wurden. Wird eine Operation wiederholt, müssen zwangsweise auch alle nachfolgenden Operationen wiederholt werden, was zur Folge hat, dass die bereits erfassten Messwerte der nachfolgenden Operationen ungültig werden. Dieser Fall tritt ein, wenn ein Getriebe ausgeschleust, auseinandergebaut und nicht wieder in dieselbe Station, sondern einige Stationen vorher eingeschleust wird. Aus Interviews mit Fertigungsplanern geht hervor, dass keine wechselseitigen Einflüsse zwischen Operationen, die dasselbe Getriebe bearbeiten, bekannt sind. Demnach existieren, abgesehen von KAPITEL 6. DATENKONSOLIDIERUNG 59 den Beziehungen bezüglich der Fremdschlüssel und der Zeitstempel, keinerlei Abhängigkeiten zwischen den einzelnen Datensätzen, aus denen weitere Integritätsbedingungen abgeleitet werden können. Aufgrund der standardisierten Speicherung der Schraub- und Presskraftdaten existieren keine wesentlichen Multi Source-Probleme. Die erfassten Merkmale bei einer Operation sowie die zu deren Speicherung verwendete Datenrepräsentation, sind bei allen Quellsystemen identisch. In allen DFQ-Dateien werden dieselben Datumsformate sowie bei Messwerten und Grenzwerteinstellungen dieselben Messeinheiten verwendet. Es wird lediglich in den DFQ-Dateien ein anderes Datumsformat verwendet als in den Dateien der übrigen Quellsysteme. Außerdem ist die Präzision in den Feldern für die Grenzwerte und die tatsächlich gemessenen Werte bei den Schraub- und Presskraftdaten deutlich höher als jene, die in den Anforderungen definiert wurde. Des Weiteren existieren keine Datenüberlappungen. Wenn man von den Daten aus der Wellen- und Gehäusevormontage absieht, ist das einander Zuordnen aller Datensätze einer Getriebe-Entität problemlos möglich, da die Getriebe-Seriennummer als globaler Schlüssel fungiert. 6.2 Definition des Zielschemas In diesem Abschnitt wird das logische Datenbankmodell des Zielsystems vorgestellt, dabei werden die einzelnen Tabellen in ihrem Aufbau und deren Beziehungen zueinander beschrieben. Abbildung 6.1 zeigt eine Gesamtübersicht der Tabellen ohne die Fehlertabellen. Die Tabelle TRANSMISSION Jedes montierte Getriebe wird mit seiner Getriebe-Seriennummer in der Tabelle TRANSMISSION (vgl. Tabelle 6.8) erfasst. Die Spalte OPEL ID speichert die Getriebe-Seriennummer und dient als Primärschlüssel. Wird das Getriebe für die Kunden Fiat oder Saab montiert, so wird die entsprechende Kunden-Seriennummer in die Spalte CUSTOMER ID geschrieben. Die Spalte DATE EXIT speichert den Zeitpunkt, zu dem das Getriebe die letzte Montage-Station (ST300) und somit die Montagelinie verlassen hat. Die Spalte DATE INSERT speichert den Einfügezeitpunkt des Datensatzes. Die Tabelle STATION Diese Tabelle (vgl. Tabelle 6.9) speichert alle qualitätsrelevanten Montage-Stationen. Die Spalte STATION ID stellt den Primärschlüssel der Tabelle dar. Die Spalten STATION NAME, INVENTORY NO und MANUFACTURER dienen zur Erfassung weiterer optionaler Angaben wie Beschreibung, Inventarnummer und Hersteller der Montage-Station zur Anzeige im Frontend. KAPITEL 6. DATENKONSOLIDIERUNG 60 Zieltabellen SCREWING_OPERATION PRESSING_OPERATION PK FK1 PK STATION OP_ID SPINDLE STEP LOWER_FORCE_TEST UPPER_FORCE_TEST STATION_ID PK STATION_ID STATION_NAME INVENTORY_NO MANUFACTURER FK1 OP_ID SPINDLE LOWER_TORQUE_TEST UPPER_TORQUE_TEST STATION_ID LOWER_ANGLE_TEST UPPER_ANGLE_TEST PRESSING PK,FK1 PK,FK2 OP_ID OPEL_ID FK3 LIMIT_ID FORCE DISTANCE TSTAMP SCREWING TRANSMISSION PK OPEL_ID OP_ID FK1 LIMIT_ID ANGLE TORQUE TSTAMP OPEL_ID CUSTOMER_ID DATE_EXIT DATE_INSERT LIMIT_PRESSING PK PK,FK3 PK,FK2 LIMIT_SCREWING SHIM LIMIT_ID PK PK,FK1 PK LOWER_LIMIT_DISTANCE UPPER_LIMIT_DISTANCE LOWER_LIMIT_FORCE UPPER_LIMIT_FORCE OPEL_ID SHAFT SHIM_CLASS TSTAMP LIMIT_ID LOWER_LIMIT_ANGLE UPPER_LIMIT_ANGLE LOWER_LIMIT_TORQUE UPPER_LIMIT_TORQUE Importtabellen IMPORT_MEASUREMENT IMPORT_COMBINATION PK DATE_ST140 OPEL_ID FIAT_ID SAAB_ID VID_ST040 VID_ST110 VID_ST120 COMBINATION PK PK OPEL_ID STATION_ID PK PK PK PK PK PART_NUMBER SPINDLE STATION STEP TYPE SYSTEM_PARAM PK ATTRIBUTE VALUE ATTRIBUTE LOWER_LIMIT_DIM1 LOWER_LIMIT_DIM2 MEASURING_VALUE_DIM1 MEASURING_VALUE_DIM2 TSTAMP UPPER_LIMIT_DIM1 UPPER_LIMIT_DIM2 DATE_INSERT VIRTUAL_ID DATE_ST140 DATE_INSERT Abbildung 6.1: Logisches Datenbankmodell (ohne Fehlertabellen) KAPITEL 6. DATENKONSOLIDIERUNG Feldname OPEL ID Datentyp CHAR(13) CUSTOMER ID VARCHAR2(16) DATE INSERT DATE EXIT DATE DATE 61 Beschreibung GetriebeSeriennummer KundenSeriennummer Einfügedatum Zeitpunkt der Ausschleusung Beispiel R--04123456MH M68102P0010 07.01.04 12:13:46 06.01.04 19:17:56 Tabelle 6.8: Die Tabelle TRANSMISSION Feldname STATION ID STATION NAME INVENTORY NO MANUFACTURER Datentyp CHAR(3) VARCHAR2(20) VARCHAR2(6) VARCHAR2(20) Beschreibung Stationsnummer Stationsname Inventarnummer Herstellername Beispiel 140 Station 140 745552 LSW Tabelle 6.9: Die Tabelle STATION Die Tabelle SCREWING OPERATION Jeder Eintrag in der Tabelle SCREWING OPERATION (vgl. Tabelle 6.10) repräsentiert eine qualitätsrelevante Schrauboperation in der Montagelinie. Die Spalte STATION ID stellt einen Fremdschlüssel dar und referenziert auf die gleichnamige Spalte der Tabelle STATION, so dass jeder Schrauboperation die Station zugeordnet wird, an der die Operation durchgeführt wird. Die Spalte SPINDLE speichert die Spindelnummer. Die Spalte OP ID stellt einen künstlich erzeugten Primärschlüssel dar und speichert Werte, die durch die Kombination der Werte in den Spalten STATION ID und SPINDLE erzeugt werden. In den Spalten LOWER ANGLE TEST, UPPER ANGLE TEST, LOWER TORQUE TEST und UPPER TORQUE TEST werden die in Tabelle 6.4 aufgeführten Toleranzbereiche für den Drehwinkel sowie das Drehmoment erfasst. Die Toleranzbereiche werden zur Datenbereinigung neu eintreffender Schraubkraftdaten verwendet (vgl. Abschnitte 6.1.3 und 6.3.2). Die Tabelle PRESSING OPERATION Jeder Eintrag in der Tabelle PRESSING OPERATION (vgl. Tabelle 6.11) repräsentiert eine qualitätsrelevante Pressoperation in der Montagelinie. Auch in dieser Tabelle stellt die Spalte STATION ID einen Fremdschlüssel dar. Die Spalten SPINDLE und STEP speichern die Spindel- und Schrittnummer. Die Spalte OP ID stellt einen künstlich erzeugten Primärschlüssel dar und speichert Werte, die durch die Kombination der Werte in den Spalten STATION ID, SPINDLE und STEP erzeugt werden. In den Spalten LOWER FORCE TEST und UPPER FORCE TEST wer- KAPITEL 6. DATENKONSOLIDIERUNG Feldname OP ID Datentyp CHAR(5) STATION ID SPINDLE LOWER ANGLE TEST UPPER ANGLE TEST LOWER TORQUE TEST UPPER TORQUE TEST CHAR(3) NUMBER(2) NUMBER(6,2) NUMBER(6,2) NUMBER(6,2) NUMBER(6,2) 62 Beschreibung Künstlich erzeugter Primärschlüssel Stationsnummer Spindelnummer Unterer Prüfwinkel Oberer Prüfwinkel Unteres Prüfmoment Oberes Prüfmoment Beispiel 14002 140 2 40.00 120.00 2.00 14.00 Tabelle 6.10: Die Tabelle SCREWING OPERATION Feldname OP ID Datentyp CHAR(7) STATION ID SPINDLE STEP LOWER FORCE TEST UPPER FORCE TEST CHAR(3) NUMBER(2) NUMBER(2) NUMBER(4,2) NUMBER(4,2) Beschreibung Künstlich erzeugter Primärschlüssel Stationsnummer Spindelnummer Schrittnummer Untere Prüfkraft Obere Prüfkraft Beispiel 1400201 140 2 1 0.1 4.5 Tabelle 6.11: Die Tabelle PRESSING OPERATION den die in Tabelle 6.3 aufgeführten Toleranzbereiche für die Einpresskraft gespeichert. Sie werden zur Datenbereinigung neu eintreffender Presskraftdaten verwendet wird (vgl. Abschnitte 6.1.2 und 6.3.2). Die Tabelle LIMIT SCREWING Die Tabelle LIMIT SCREWING (vgl. Tabelle 6.12) speichert alle in der gesamten Montagelinie vorkommenden Grenzwerteinstellungen für Schrauboperationen. Dabei handelt es sich um die Grenzwerteinstellungen, die an den Montage-Stationen eingestellt werden und mit den Messwerten zusammen übertragen werden. Die Spalten LOWER LIMIT TORQUE und LOWER LIMIT ANGLE repräsentieren die unteren Grenzwerte für Drehmoment und Drehwinkel und die Spalten UPPER LIMIT TORQUE und UPPER LIMIT ANGLE die oberen Grenzwerte für Drehmoment und Drehwinkel. Die Spalte LIMIT ID stellt einen künstlich generierten Primärschlüssel dar. Diese Tabelle ist durch eine Normalisierung der Tabelle SCREWING entstanden, der ursprünglich die Spalten für die Grenzwerteinstellungen angehörten. Die Normalisierung wurde durchgeführt, um eine große Redundanz in der Tabelle SCREWING zu vermeiden. Grenzwerteinstellungen an den Montage-Stationen können über Wochen hinweg unverändert bleiben, so dass bei einer nichtnormalisierten Tabelle SCREWING einige tausend Datensätze exakt die selbe Wertebelegung für die Grenzwerteinstellungen besitzen würden. KAPITEL 6. DATENKONSOLIDIERUNG Feldname LIMIT ID Datentyp NUMBER LOWER LIMIT ANGLE NUMBER(6,2) UPPER LIMIT ANGLE NUMBER(6,2) LOWER LIMIT TORQUE NUMBER(6,2) UPPER LIMIT TORQUE NUMBER(6,2) 63 Beschreibung Künstlich generierter Primärschlüssel Unterer Grenzwert für Drehwinkel Oberer Grenzwert für Drehwinkel Unterer Grenzwert für Drehmoment Oberer Grenzwert für Drehmoment Beispiel 12 40.0 150.0 8.23 12.23 Tabelle 6.12: Die Tabelle LIMIT SCREWING Feldname OP ID OPEL ID LIMIT ID Datentyp CHAR(5) CHAR(13) NUMBER ANGLE TORQUE TSTAMP NUMBER(6,2) NUMBER(6,2) DATE Beschreibung Schlüssel für Operation Getriebe-Seriennummer Schlüssel für Grenzwerteinstellung Gemessener Drehwinkel Gemessenes Drehmoment Zeitpunkt der Operation Beispiel 14002 R--04123450MH 80 10 12.12.1995 12:34:34 Tabelle 6.13: Die Tabelle SCREWING Die Tabelle SCREWING Die Tabelle SCREWING (vgl. Tabelle 6.13) dient zur Speicherung der bei Durchführung einer Schrauboperation erfassten Messwerte für den Drehwinkel und das Drehmoment. Die erfassten Messwerte werden in den Spalten ANGLE und TORQUE gespeichert. Die Spalte TSTAMP speichert den Zeitpunkt der Durchführung der Operation. Die Spalten OPEL ID, LIMIT ID und OP ID stellen Fremdschlüssel dar und referenzieren auf die gleichnamigen Spalten der Tabellen TRANSMISSION, LIMIT SCREWING und SCREWING OPERATION. Sie ordnen den Messwerten das bearbeitete Getriebe, die bei Durchführung der Operation eingestellten Grenzwerte sowie die jeweilige Schrauboperation in der Tabelle SCREWING OPERATION zu. Die Tabelle LIMIT PRESSING Die Tabelle LIMIT PRESSING (vgl. Tabelle 6.14) ist analog zur Tabelle LIMIT SCREWING aufgebaut und speichert alle in der gesamten Montagelinie vorkommenden Grenzwerteinstellungen für Pressoperationen. KAPITEL 6. DATENKONSOLIDIERUNG Feldname LIMIT ID Datentyp NUMBER LOWER LIMIT DISTANCE NUMBER(6,2) UPPER LIMIT DISTANCE NUMBER(6,2) LOWER LIMIT FORCE NUMBER(4,2) UPPER LIMIT FORCE NUMBER(4,2) 64 Beschreibung Künstlich generierter Primärschlüssel Unterer Grenzwert für Einpresstiefe Oberer Grenzwert für Einpresstiefe Unterer Grenzwert für Einpresskraft Oberer Grenzwert für Einpresskraft Beispiel 12 220.0 270.0 10.0 14.0 Tabelle 6.14: Die Tabelle LIMIT PRESSING Feldname OP ID OPEL ID LIMIT ID Datentyp CHAR(7) CHAR(13) NUMBER DISTANCE FORCE TSTAMP NUMBER(6,2) NUMBER(4,2) DATE Beschreibung Schlüssel für Operation Getriebe-Seriennummer Schlüssel für Grenzwerteinstellung Gemessene Einpresstiefe Gemessene Einpresskraft Zeitpunkt der Operation Beispiel 1400201 R--04123450MH 237.27 12.23 12.12.1995 12:34:34 Tabelle 6.15: Die Tabelle PRESSING Die Tabelle PRESSING Die Tabelle PRESSING (vgl. Tabelle 6.15) ist analog zur Tabelle SCREWING aufgebaut und dient zur Speicherung der bei Durchführung einer Pressoperation erfassten Messwerte für die Einpresstiefe und die Einpresskraft. Die Tabelle SHIM Die Tabelle SHIM (vgl. Tabelle 6.16) speichert die für ein Getriebe ermittelten Shim-Klassen. Die Spalte OPEL ID dient als Fremdschlüssel und referenziert auf die gleichnamige Spalte der Tabelle TRANSMISSION. Die Spalten SHIM CLASS und SHAFT dienen zur Speicherung der ShimKlasse sowie eines Kürzels für die Getriebekomponente, für die das Shim verwendet werden soll. Die Spalte TSTAMP speichert den Zeitpunkt der Erfassung des Datensatzes an der Station ST150. Die Spalten OPEL ID und SHIM CLASS bilden einen zusammengesetzten Primärschlüssel der Tabelle SHIM. KAPITEL 6. DATENKONSOLIDIERUNG Feldname OPEL ID SHIM CLASS SHAFT TSTAMP Datentyp CHAR(13) NUMBER(2,0) CHAR(3) DATE Beschreibung Getriebe-Seriennummer Shim-Klasse Kürzel für Komponente Zeitpunkt der Erfassung 65 Beispiel R--04123456MH 12 HWO 12.01.2004 12.12.12 Tabelle 6.16: Die Tabelle SHIM Die Tabelle ERROR MEASUREMENT In dieser Tabelle (vgl. Tabelle 6.17) werden alle Schraub- und Presskraftdaten gespeichert, die aufgrund fehlerhafter Werte nicht in die Zieltabellen übernommen werden konnten. Alle Spaltenwerte werden als Text gespeichert, um auch Datensätze erfassen zu können, die Formatfehler in numerischen Spalten aufweisen. Die Spalte MSG dient zur Speicherung eines Hinweistextes, weshalb der Datensatz nicht in die Zieltabellen übernommen wurde. Die Spalte DATE INSERT speichert das Einfügedatum des Datensatzes. Die Spalten LOWER LIMIT DIM1, UPPER LIMIT DIM1 und MEASUREMENT VALUE DIM1 speichern den unteren und den oberen Grenzwert sowie den Messwert für den Weg (Einpresstiefe/Drehwinkel). Die Spalten LOWER LIMIT DIM2, UPPER LIMIT DIM2 und MEASUREMENT VALUE DIM2 speichern den unteren und den oberen Grenzwert sowie den Messwert für die aufgewendete Kraft (Einpresskraft/Drehmoment). In der Spalte TYPE wird erfasst, ob es sich bei dem Datensatz um einen Presskraftdatensatz oder um einen Schraubkraftdatensatz handelt. Die Tabelle ERROR SHIM In dieser Tabelle (vgl. Tabelle 6.18) werden alle Shim-Daten gespeichert, die aufgrund fehlerhafter Werte nicht in die Zieltabellen übernommen werden konnten. Auch in dieser Tabelle werden alle Werte als Text gespeichert, außerdem verfügt diese Tabelle ebenfalls über die Spalten MSG und DATE INSERT zum Erfassen eines Hinweistextes und des Einfügedatums. Die Tabelle ERROR COMBINATION In dieser Tabelle (vgl. Tabelle 6.19) werden alle Kombinationsdaten gespeichert, die aufgrund fehlerhafter Daten nicht in die Zieltabellen übernommen werden konnten. Die Tabelle SYSTEM PARAM Diese Tabelle (vgl. Tabelle 6.20) stellt eine Hilfstabelle dar, in der Parameter abgelegt werden, die über verschiedene Instanzen der Datenbereinigungsprozesse hinweg gesichert werden müssen. In KAPITEL 6. DATENKONSOLIDIERUNG Feldname PART NUMBER ATTRIBUTE STATION SPINDLE STEP MEASURING VALUE DIM1 Datentyp VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) MEASURING VALUE DIM2 VARCHAR2(20) LOWER LIMIT DIM1 VARCHAR2(20) UPPER LIMIT DIM1 VARCHAR2(20) LOWER LIMIT DIM2 VARCHAR2(20) UPPER LIMIT DIM2 VARCHAR2(20) TSTAMP TYPE VARCHAR2(20) CHAR(1) MSG DATE INSERT VARCHAR2(255) DATE 66 Beschreibung Seriennummer Fehlercode Stationsnummer Spindelnummer Schrittnummer Messwert für Einpresstiefe/Drehwinkel Messwert für Einpresskraft/Drehmoment Unterer Grenzwert für Einpresstiefe/Drehwinkel Oberer Grenzwert für Einpresstiefe/Drehwinkel Unterer Grenzwert für Einpresskraft/Drehmoment Oberer Grenzwert für Einpresskraft/Drehmoment Zeitpunkt der Operation Art des Datensatzes (0=Schraubkraftdatensatz/1=Presskraftdatensatz) Hinweistext Einfügedatum Tabelle 6.17: Die Tabelle ERROR MEASUREMENT der Spalte ATTRIBUTE wird der Parametername und in der Spalte VALUE der zugehörige Wert erfasst. 6.3 Definition der Datenbereinigungsprozesse Die Datenbereinigungsprozesse dienen dazu, die von den Montage-Stationen empfangenen Daten einzulesen und zu transformieren, um sie damit hinsichtlich ihrer Struktur und Repräsentation an das gemeinsame Zielschema anzupassen. Dabei sollen Daten, die offensichtlich fehlerhaft sind bzw. die in Abschnitt 5.1 genannten Qualitätskriterien nicht erfüllen, aussortiert werden. Bei der Überprüfung der Quelldaten auf die Erfüllung der einzelnen Qualitätskriterien ist es sinnvoll, die Daten anfangs unter syntaktischen Gesichtspunkten zu überprüfen. Dazu können die während der Datenanalyse ermittelten Informationen über die jeweiligen Datentypen sowie die typischen Muster der Werte verwendet werden. Während dessen erfolgt auch ein Vollständigkeitstest, um zu prüfen, ob zu allen Feldern entsprechende Werte vorhanden sind. Der Test auf Vollständigkeit ist einfach durchzuführen, da bis auf die Kunden-Seriennummer alle Felder Pflichtfel- KAPITEL 6. DATENKONSOLIDIERUNG Feldname OPEL ID SHIM CLASS SHAFT TSTAMP MSG DATE INSERT Datentyp VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(255) DATE 67 Beschreibung Getriebe-Seriennummer Shim-Klasse Komponente Zeitpunkt der Erfassung Fehlermeldung Einfügedatum Tabelle 6.18: Die Tabelle ERROR SHIM Feldname OPEL ID FIAT ID SAAB ID DATE ST140 VID ST040 VID ST110 VID ST120 MSG DATE INSERT Datentyp VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(255) DATE Beschreibung Getriebe-Seriennummer Kunden-Seriennummer (FIAT) Kunden-Seriennummer (SAAB) Zeitpunkt der Erfassung an der Station ST140 Virtuelle Kennung ST040 Virtuelle Kennung ST110 Virtuelle Kennung ST120 Hinweistext Einfügedatum Tabelle 6.19: Die Tabelle ERROR COMBINATION der sind. Das Fehlen einer Kunden-Seriennummer wird als nicht kritisch beurteilt und toleriert. Aufgrund dessen tritt in diesem Fall die Problematik, die aus den unterschiedlichen Interpretationsmöglichkeiten eines nicht vorhandenen Wertes resultieren kann (vgl. Abschnitt 5.1), nicht auf. Anhand der beiden genannten Überprüfungen können alle Datensätze, die die Kriterien der Vollständigkeit und der Schema-Konformität verletzen, erkannt werden. Die Erfüllung der beiden Kriterien ist Voraussetzung für die Überprüfung der semantischen Korrektheit. Nach erfolgter Überprüfung der syntaktischen Korrektheit sollten die Quelldaten auf semantische Korrektheit hin überprüft werden. Die Überprüfung der Werte erfolgt mithilfe des Wissens über die Wertebereiche und die Integritätsbedingungen, welches während der Datenanalyse erworben wurde. Die Eindeutigkeit der Qualitätsdaten ist einfach sicherzustellen, da alle Datensätze über eine bestimmte Feldkombination eindeutig identifizierbar sind (z. B. bei Schraubkraftdatensätze anhand der Seriennummer des bearbeiteten Teils und der Angaben für die Station und die Spindel). Eine aufwändige Duplikateliminierung, wie sie beispielsweise bei Adressdaten erforderlich ist, entfällt in diesem Anwendungsfall. Duplikate infolge einer mehrfachen Datenübertragung können problemlos vermieden werden. Bei Duplikaten, die durch eine wiederholte Durchführung einer Ope- KAPITEL 6. DATENKONSOLIDIERUNG Feldname ATTRIBUTE VALUE Datentyp VARCHAR2(50) VARCHAR2(50) Beschreibung Parametername Wert 68 Beispiel LAST COMBINATION DATE 12.12.1995 12:34:34 Tabelle 6.20: Die Tabelle SYSTEM PARAM ration verursacht werden, soll grundsätzlich der Datensatz mit dem größeren Zeitstempel gespeichert werden. Eine Plausibilitätsüberprüfung der Zeitstempel soll nicht erfolgen, da die Zeitsynchronisierung der Montage-Stationen nicht einwandfrei funktioniert. Im Übrigen wird der Korrektheit der Zeitstempel keine hohe Priorität beigemessen, da keine Datenanalysen geplant sind, die die Plausibilität der Zeitstempel voraussetzen würden. Wie bereits in Abschnitt 5.1 beschrieben, kann unter dem Kriterium der Vollständigkeit auch die Eigenschaft verstanden werden, dass alle Entitäten der Realität im Datenbestand repräsentiert sind. Obwohl der Vollständigkeitstest, ob für ein Getriebe zu allen Operationen ein entsprechender Datensatz vorhanden ist, aufgrund des bekannten Aufbaus der Montagelinie und der damit bekannten Anzahl der zu erwartenden Datensätze einfach zu realisieren wäre, wird auf ihn verzichtet, da dieses Kriterium laut Anforderungen nicht erfüllt werden muss. Das Kriterium Einheitlichkeit ist durch die standardisierte Repräsentation der Schraub- und Presskraftdaten weitgehend gegeben. Es müssen lediglich Transformationen der Quelldaten bezüglich ihrer Struktur durchgeführt werden, um sie in die normalisierte Zieldatenbank schreiben zu können. Die Bereinigung der Datensätze beschränkt sich damit auf die Überprüfung der Eindeutigkeit, der Vollständigkeit und der Gültigkeit der Werte mithilfe der in Abschnitt 6.1 ermittelten Integritätsbedingungen. Alle durchzuführenden Überprüfungen können mithilfe entsprechender Integritäts-Constraints in den Zieltabellen durchgeführt werden. Bei der Definition der Datenbereinigungsprozesse wurde von dem in Abschnitt 5.5.3 beschriebenen Schema eines ETL-Prozesses abgewichen. Es existieren demnach keine strikt getrennten Phasen für Extraktion, Transformation und Laden der Daten, da die temporäre Speicherung sämtlicher Daten in einem Transformationsbereich in diesem Anwendungsfall nicht unbedingt als notwendig erscheint und daher unnötigen Overhead verursachen würde. Eine Speicherung von Datensätzen im Transformationsbereich ist erforderlich, wenn komplexere Abhängigkeiten zwischen Datensätzen existieren, so dass die Bereinigung eines Datensatzes das Vorhandensein anderer Datensätze voraussetzt. Dies ist beispielsweise der Fall, wenn mehrere Datensätze zur Erkennung von logischen Widersprüchen einander abgeglichen werden müssen. Da die Zeitstempelbeziehungen außer Acht gelassen werden sollen, bestehen keine Abhängigkeiten, die es vor dem Ladevorgang KAPITEL 6. DATENKONSOLIDIERUNG Feldname OPEL ID FIAT ID SAAB ID DATE ST140 VID ST040 Datentyp VARCHAR2(25) VARCHAR2(25) VARCHAR2(25) DATE VARCHAR2(15) VID ST110 VID ST120 VARCHAR2(15) VARCHAR2(15) 69 Beschreibung Getriebe-Seriennummer Kunden-Seriennummer (FIAT) Kunden-Seriennummer (SAAB) Zeitpunkt der Erfassung an der Station ST140 Virtuelle Kennung: Stirnrad/Differential (ST040) Virtuelle Kennung: Getriebegehäuse (ST110) Virtuelle Kennung: Kupplungsgehäuse (ST120) Tabelle 6.21: Die Tabelle IMPORT COMBINATION zu überprüfen gilt. Ein Teil der Quelldaten kann demnach im Arbeitsspeicher transformiert werden und direkt in die Zieltabellen geladen werden. Das temporäre Speichern der Quelldaten in Hilfstabellen wird daher auf die Schraub- und Presskraftdaten aus der Vormontage beschränkt. Bei diesen Quelldaten ist das temporäre Speichern unvermeidlich, da sie vor dem Ladevorgang in die Zieltabellen aufgrund der nicht existenten Getriebe-Seriennummer mit den Kombinationsdaten kombiniert werden müssen. Darüber hinaus sollen an den Quelldaten keine Korrekturen von falschen Werten vorgenommen werden, so dass bereits während des Einlesevorgangs der Quelldateien als fehlerhaft identifizierte Datensätze gar nicht erst in den Transformationsbereich geladen werden müssen, sondern direkt in einen Fehler-Report geschrieben werden können. Zur Bereinigung der eintreffenden Quelldaten sind insgesamt fünf verschiedene Prozesse definiert: 1. Einlesen und Bereinigen der Kombinationsdaten 2. Einlesen und Bereinigen der Schraub- und Presskraftdaten 3. Einlesen und Bereinigen der Shim-Daten 4. Einlesen und Bereinigen der Ausschleusungsdaten 5. Bereinigen der Import- und Fehlertabellen Der fünfte Prozess dient nicht der eigentlichen Datenbereinigung, sondern lediglich zum Löschen nicht mehr benötigter Datensätze in den Import- und Fehlertabellen. In den folgenden Abschnitten werden die genannten Prozesse in ihrem Ablauf beschrieben. 6.3.1 Einlesen und Bereinigen der Kombinationsdaten Dieser Prozess dient der Speicherung der Kombinationsdaten in einer Form, wie sie im nachfolgenden Prozess zur Zuordnung der Schraub- und Presskraftdaten aus der Vormontage zu den KAPITEL 6. DATENKONSOLIDIERUNG 70 einzelnen Getrieben verwendet werden können. Der Aufbau der Kombinationsdatei ist in Tabelle 2.1 und ein exemplarischer Auszug aus dieser in Abbildung 4.4 dargestellt. Der Inhalt der Kombinationsdatei wird unverändert in die Tabelle IMPORT COMBINATION (vgl. Tabelle 6.21) geladen. Lediglich die Spalten V ID2, V ID3 und V ID4 werden entfernt, da die Erfassung der mit diesen virtuellen Kennungen verbundenen Messwerte nicht im Anforderungsbereich liegen und die Spalten TIMESTAMP, V ID1, V ID5 und V ID6 werden auf die Spalten DATE ST140, VID ST040, VID ST110 und VID ST120 der Tabelle IMPORT COMBINATION abgebildet. Darüber hinaus erfolgt bereits beim Parsen der Datei eine syntaktische Überprüfung der Werte in der Spalte TIMESTAMP, weil die syntaktische Korrektheit für die weitere Verarbeitung der Daten erforderlich ist. Da die Quelldatei nicht nur die Kombinationsdaten der vorangegangenen Schicht, sondern alle jemals erfassten Kombinationsdaten beinhaltet (Full-Dump), wird vor Beendigung dieses Prozesses der Zeitstempel des jüngsten Eintrages der Tabelle IMPORT COMBINATION in die Tabelle SYSTEM PARAM (vgl. Tabelle 6.20) geschrieben. Damit wird ein Zeiger auf den zuletzt integrierten Datensatz über die aktuelle Prozessinstanz hinweg bis zu einer erneuten Prozessausführung festgehalten. Bei einem erneuten Start dieses Prozesses werden dann nur die Dateieinträge in die Tabelle IMPORT COMBINATION geschrieben, deren Zeitstempel größer sind als der Zeitstempel des in der vorangegangen Prozessinstanz zuletzt integrierten Datensatzes. Auf diese Weise wird vermieden, dass bei jeder Ausführung dieses Prozesses der gesamte Inhalt der Quelldatei importiert werden muss. Nach dem Einlesen der Quelldatei besteht der gesamte Datenbestand der Kombinationsdaten in der Tabelle IMPORT COMBINATION zur Verfügung, ohne dass nochmals auf die Quelldatei zugegriffen werden muss, sofern ein Zugriff auf ältere Daten notwendig werden sollte. Im weiteren Verlauf werden alle Datensätze aus der Tabelle IMPORT COMBINATION, die seit der letzten Prozessausführung hinzugekommen sind und demnach bis dahin nicht integriert wurden, selektiert und wie folgt transformiert: (OPEL ID, FIAT ID, SAAB ID, DATE ST140, (OPEL ID, CUSTOMER ID, DATE ST140), (OPEL ID, VID ST040, ’ST040’, DATE ST140), VID ST040, VID ST110, (OPEL ID, VID ST110, ’ST110’, DATE ST140), VID ST120) (OPEL ID, VID ST120, ’ST120’, DATE ST140) Die Felder SAAB ID und FIAT ID verschmelzen dabei zu einem Feld CUSTOMER ID, da jedes Getriebe maximal nur eine Kunden-Seriennummer besitzen kann. Tritt ein Datensatz mit fehlender Getriebe-Seriennummer und vorhandener Kunden-Seriennummer auf, so wird in der Tabelle IMPORT COMBINATION nach einem Eintrag gesucht, der die gleiche Kunden-Seriennummer und einen kleineren Zeitstempel trägt. Besitzt der gefundene Ein- KAPITEL 6. DATENKONSOLIDIERUNG 71 trag eine gültige Getriebe-Seriennummer, so wird diese für die weitere Verarbeitung herangezogen. Datensätze mit nicht vorhandener Getriebe-Seriennummer und nicht vorhandener KundenSeriennummer werden verworfen und in die Tabelle ERROR COMBINATION geschrieben. Hintergrund dieser Vorgehensweise ist, dass bei einer fehlenden Getriebe-Seriennummer möglicherwiese eine erneute Einschleusung des Getriebes stattgefunden hat und bei der erneuten Erfassung der Kombinationsdaten der Wert für die Getriebe-Seriennummer verloren gegangen ist. Verfügt der Datensatz über eine Kunden-Seriennummer, kann über diese der Datensatz der vorangegangenen Einschleusung gefunden und anhand dieses Datensatzes die zugehörige GetriebeSeriennummer ermittelt werden. Der Datensatz (OPEL ID, CUSTOMER ID, DATE ST140) wird in die Tabelle TRANSMISSION geschrieben, wobei die ersten beiden Attribute des Datensatzes auf die gleichnamigen Spalten der Tabelle abgebildet werden. Das Attribut DATE ST140 wird dagegen auf die Spalte DATE EXIT der Tabelle abgebildet, um die genannte Spalte mit dem Erfassungsdatum der Station ST140 vorzubelegen. Auf diese Weise steht der ungefähre Montagezeitpunkt zur Verfügung, falls in der Montagelinie aus irgendwelchen Gründen kein Ausschleusungszeitpunkt erfasst werden sollte (vgl. auch Abschnitt 6.3.2). Existiert bereits ein entsprechender Datensatz in der Tabelle TRANSMISSION, so wird die Spalte CUSTOMER ID des vorhandenen Datensatzes aktualisiert. Ist der in der Spalte DATE EXIT gespeicherte Zeitstempel des vorhandenen Datensatzes kleiner als der des einzufügenden Datensatzes, wird auch die Spalte DATE EXIT entsprechend aktualisiert. Die Vollständigkeit wird sichergestellt, indem alle Spalten der Tabelle TRANSMISSION mit Ausnahme der Spalte CUSTOMER ID als NOT NULL deklariert sind. Eine Plausibilitätskontrolle der Getriebe-Seriennummer erfolgt mithilfe einer CHECK-Klausel. Die Datensätze (OPEL ID, VID ST040, ’ST040’, DATE ST140), (OPEL ID, VID ST110, ’ST110’, DATE ST140) und (OPEL ID, VID ST120, ’ST120’, DATE ST140) werden in die Tabelle COMBINATION geschrieben. Die Attribute OPEL ID und DATE ST140 werden dabei auf die gleichnamigen Spalten der Tabelle abgebildet. Die Attribute VID ST040, VID ST010 und VID ST120 werden dagegen in die Spalte VIRTUAL ID und die Zeichenketten ’ST040’, ’ST110’ und ’ST120’ in die Spalte STATION ID geschrieben. Alle Spalten der Tabelle COMBINATION sind als NOT NULL deklariert. Die Eindeutigkeit in der Tabelle COMBINATION wird durch den Primärschlüssel, der sich aus den Spalten OPEL ID und STATION ID zusammensetzt, sichergestellt. Ein bereits vorhandener Datensatz mit gleichem Schlüsselwert wie der neu zu speichernde Datensatz, wird überschrieben, sofern der neu zu speichernde Datensatz den größeren Zeitstempel der beiden Datensätze besitzt. Wird ein Fehler in einem der durch die Transformation entstandenen Datensätze gefunden, wird der ursprüngliche Datensatz, aus dem der betroffene Datensatz bei der Transformation hervorgegangen ist, in die Tabelle ERROR COMBINATION geschrieben. KAPITEL 6. DATENKONSOLIDIERUNG Feldname OPEL ID VIRTUAL ID STATION ID DATE ST140 DATE INSERT Datentyp CHAR(13) CHAR(8) CHAR(3) DATE DATE 72 Beschreibung Getriebe-Seriennummer Virtuelle Kennung Stationsnummer Zeitpunkt der Erfassung an der Station ST140 Einfügedatum Tabelle 6.22: Die Tabelle COMBINATION Nach Beendigung dieses Prozesses stehen alle Kombinationsdaten der vorangegangenen Schicht in der Tabelle COMBINATION zur Verfügung, um später die Schraub- und Presskraftdaten aus der Vormontage den jeweiligen Getrieben zuordnen zu können. Dabei ist sichergestellt, dass die Daten syntaktisch korrekt und vollständig sind. Außerdem beinhalten die Daten zu jedem Getriebe, welches mehrmalig durch die Station ST140 geschleust wurde, die jeweils zuletzt erfassten Kombinationen. 6.3.2 Einlesen und Bereinigen der Schraub- und Presskraftdaten Da die Schraub- und Presskraftdaten aufgrund ihrer gleichartigen Struktur auf gleiche Weise verarbeitet werden können und sich lediglich die Zieltabellen der beiden Datenarten unterscheiden, werden die Schraub- und Presskraftdaten von demselben Prozess verarbeitet. Das Dateiformat der Schraub- und Presskraftdateien ist in Abschnitt 4.3.1 beschrieben. Der gesamte Prozess zur Verarbeitung der Schraub- und Presskraftdaten gliedert sich in zwei Phasen: 1. Phase Aus den Inhalten des Beschreibungsteils sowie den einzelnen Werteeinträgen im Werte- teil einer DFQ-Datei werden die Datensätze (PART NUMBER, ATTRIBUTE, STATION, SPINDLE, STEP, MEASURING VALUE DIM1, MEASURING VALUE DIM2, LOWER LIMIT DIM1, UPPER LIMIT DIM1, LOWER LIMIT DIM2, UPPER LIMIT DIM2, TSTAMP, TYPE) erzeugt. Das Attribut TYPE dient zur Unterscheidung zwischen Schraub- und Presskraftdaten und anhand dessen Wert werden die Zieltabellen für den zu speichernden Datensatz gewählt. Ein Datensatz, der im Attribut ATTRIBUTE einen Wert ungleich 0“ aufweist, wird direkt in die Tabelle ER” ROR MEASUREMENT geschrieben, da ein solcher Datensatz von einer fehlgeschlagenen Operation stammt und laut Anforderungen nicht gespeichert werden soll. Weist der Wert des Attributs ATTRIBUTE den Wert 0“ auf, so werden die einzelnen Attributwerte des Datensatzes in die ” für das Zielsystem erforderlichen Datentypen konvertiert. Im weiteren Verlauf wird zwischen Datensätzen unterschieden, die aufgrund ihrer Herkunft (Vormontage oder Endmontage) über eine virtuelle Kennung oder eine Getriebe-Seriennummer verfügen. Ein Datensatz, der aus der Vormontage stammt und daher im Attribut PART NUMBER über ei- KAPITEL 6. DATENKONSOLIDIERUNG Feldname PART NUMBER ATTRIBUTE STATION SPINDLE STEP MEASURING VALUE DIM1 Datentyp VARCHAR2(8) NUMBER(3) CHAR(3) NUMBER(2) NUMBER(1) NUMBER(6,2) MEASURING VALUE DIM2 NUMBER(5,2) LOWER LIMIT DIM1 NUMBER(6,2) UPPER LIMIT DIM1 NUMBER(6,2) LOWER LIMIT DIM2 NUMBER(5,2) UPPER LIMIT DIM2 NUMBER(5,2) TSTAMP TYPE VARCHAR2(20) CHAR(1) DATE INSERT DATE 73 Beschreibung Seriennummer Fehlercode Stationsnummer Spindelnummer Schrittnummer Messwert für Einpresstiefe/Drehwinkel Messwert für Einpresskraft/Drehmoment Unterer Grenzwert für Einpresstiefe/Drehwinkel Oberer Grenzwert für Einpresstiefe/Drehwinkel Unterer Grenzwert für Einpresskraft/Drehmoment Oberer Grenzwert für Einpresskraft/Drehmoment Zeitpunkt der Operation Art des Datensatzes (0=Schraubkraftdatensatz/1=Presskraftdatensatz) Einfügedatum Tabelle 6.23: Die Tabelle IMPORT MEASUREMENT ne virtuelle Kennung verfügt, wird unverändert in die Tabelle IMPORT MEASUREMENT (vgl. Tabelle 6.23) geschrieben. Der Primärschlüssel dieser Tabelle setzt sich zusammen aus den Spalten PART NUMBER, STATION, SPINDLE, STEP und TYPE. Ein bereits vorhandener Datensatz mit gleichem Schlüsselwert wie der neu zu speichernde Datensatz, wird überschrieben, sofern der neu zu speichernde Datensatz den größeren Zeitstempel der beiden Datensätze besitzt. Eine Überprüfung auf Einhaltung der definierten Wertebereiche sowie weiterer Integritätsbedingungen erfolgt an dieser Stelle nicht. Ein Datensatz, die aus der Endmontage stammt und daher im Attribut PART NUMBER bereits über eine Getriebe-Seriennummer verfügt, wird direkt in die Zieltabellen geschrieben. Dazu wird ein zu speichernder Datensatz zunächst wie folgt transformiert: KAPITEL 6. DATENKONSOLIDIERUNG 74 (PART NUMBER, ATTRIBUTE, (MEASURING VALUE DIM1, STATION, SPINDLE, STEP, MEASURING VALUE DIM2, MEASURING VALUE DIM1, PART NUMBER, TSTAMP), MEASURING VALUE DIM2, LOWER LIMIT DIM1, (LOWER LIMIT DIM1, UPPER LIMIT DIM1, UPPER LIMIT DIM1, LOWER LIMIT DIM2, LOWER LIMIT DIM2, UPPER LIMIT DIM2, UPPER LIMIT DIM2) TSTAMP, TYPE) Je nach Datenart wird der Datensatz (LOWER LIMIT DIM1, UPPER LIMIT DIM1, LOWER LIMIT DIM2, UPPER LIMIT DIM2) in die Tabelle LIMIT PRESSING oder LIMIT SCREWING geschrieben, sofern ein entsprechender Datensatz in der jeweiligen Zieltabelle noch nicht existiert. Die Attribute LOWER LIMIT DIM1 und UPPER LIMIT DIM1 werden dabei je nach Zieltabelle auf die Spalten LOWER LIMIT ANGLE und UPPER LIMIT ANGLE oder LOWER LIMIT DISTANCE und UPPER LIMIT DISTANCE abgebildet. Die Attribute LOWER LIMIT DIM2 und UPPER LIMIT DIM2 werden dagegen auf die Spalten LOWER LIMIT TORQUE und UPPER LIMIT TORQUE oder LOWER LIMIT FORCE und UPPER LIMIT FORCE abgebildet. Alle Spalten der beiden Zieltabellen sind als NOT NULL deklariert. Der Datensatz (MEASURING VALUE DIM1, MEASURING VALUE DIM2, PART NUMBER, TSTAMP) wird zusammen mit den Attributen OP ID und LIMIT ID je nach Datenart in die Tabelle SCREWING oder PRESSING geschrieben. Der Wert für das Attribut OP ID wird aus der Wertekombination der Attribute STATION ID, SPINDLE und ggf. STEP des ursprünglichen Datensatzes ermittelt. Der Wert für das Attribut LIMIT ID entspricht dem Schlüsselwert der entsprechenden Grenzwerteinstellung in der Tabelle LIMIT PRESSING bzw. LIMIT SCREWING. Die Attribute OP ID, TSTAMP und LIMIT ID werden beim Einfügen auf die gleichnamigen Spalten der Zieltabelle abgebildet und das Attribut PART NUMBER wird in die Spalte OPEL ID der Zieltabelle geschrieben. Die Attribute MEASUREMENT VALUE DIM1 und MEASUREMENT VALUE DIM2 werden je nach Zieltabelle auf die Spalten DISTANCE und FORCE oder ANGLE und TORQUE abgebildet. Alle Spalten der beiden Zieltabellen SCREWING und PRESSING sind als NOT NULL deklariert. Die Eindeutigkeit in den beiden Tabellen wird jeweils durch den Primärschlüssel, der sich aus den Spalten OPEL ID und OP ID zusammensetzt, sichergestellt. Ein bereits vorhandener Datensatz mit gleichem Schlüsselwert wie der neu zu speichernde Datensatz, wird überschrieben, sofern der neu zu speichernde Datensatz den größeren Zeitstempel der beiden Datensätze besitzt. Die Überprüfung der ermittelten Integritätsbedingungen bezüglich der Wertebereiche und der Einhaltung der Toleranzbereiche, die in den Tabellen SCREWING OPERATION und PRESSING KAPITEL 6. DATENKONSOLIDIERUNG 75 OPERATION erfasst sind (vgl. Abschnitt 6.2), erfolgen mithilfe von CHECK-Klauseln und Triggern. Bei Verletzung einer Integritätsbedingung wird der ursprüngliche Datensatz in die Tabelle ERROR MEASUREMENT geschrieben. Sollte in der Tabelle TRANSMISSION kein Datensatz mit entsprechender Getriebe-Seriennummer existieren, wird der Datensatz von diesem Prozess vor Einfügen des Press- bzw. Schraubkraftdatensatzes angelegt. Diese Vorgehensweise ermöglicht es auch Datensätze zu speichern, deren Getriebe-Seriennummer nicht in der Kombinationstabelle auftaucht. Diese Vorgehensweise ist ausdrücklich erwünscht. Da es ungewiss ist, ob die Station ST300 jemals Ausschleusungsdaten senden wird, wird nach jedem Speichern eines Press- oder Schraubkraftdatensatzes der Wert des Attributs TSTAMP in die Spalte DATE EXIT des entsprechenden Getriebe-Datensatzes in der Tabelle TRANSMISSION eingetragen, sofern der neue Zeitstempel größer als der vorhandene ist. Nach Abarbeitung aller Datensätze eines Getriebes beinhaltet die Spalte DATE EXIT schließlich einen Zeitpunkt, der dem tatsächlichen Ausschleusungszeitpunkt zeitlich gesehen am nächsten liegt. Diese Vorgehensweise bleibt auch dann bestehen, wenn die Station ST300 Daten sendet. Auf diese Weise können Ausfälle bei der Datenerfassung an der Station ST300 kompensiert werden. 2. Phase Nachdem alle neu eingetroffenen DFQ-Dateien verarbeitet wurden, werden die Schraub- und Presskraftdatensätze aus der Vormontage mit den Kombinationsdaten kombiniert, um die einzelnen Datensätze den einzelnen Getrieben zuzuordnen. Dazu werden die Datensätze in der Tabelle COMBINATION mit denen in der Tabelle IMPORT MEASUREMENT kombiniert. Abbildung 6.2 zeigt den dabei verwendeten EQUI-Join. Die Datensätze aus der Vormontage, die nach der Kombination über eine Getriebe-Seriennummer verfügen, werden schließlich auf die gleiche Weise in die Zieltabellen geladen wie die Daten aus der Endmontage in der ersten Phase. 6.3.3 Einlesen und Bereinigen der Shim-Daten Das Dateiformat einer Shim-Datei ist in Abschnitt 4.5 beschrieben. Die Shim-Datei wird zeilenweise eingelesen, dabei wird jeder Datensatz nach erfolgter Datentypkonvertierung der Felder SHIM CLASS und TSTAMP in die Tabelle SHIM geschrieben. Alle Spalten in der Tabelle SHIM sind als NOT NULL deklariert. Zur Definition der gültigen Wertebereiche der Spalten SHIM CLASS und SHAFT sind entsprechende CHECK-Klauseln deklariert. Die Eindeutigkeit in der Tabelle SHIM wird durch den Primärschlüssel, der sich aus den Spalten OPEL ID und SHAFT zusammensetzt, sichergestellt. Ein bereits vorhandener Datensatz mit gleichem Schlüsselwert wie der neu zu speichernde Datensatz, wird überschrieben, sofern der neu zu speichernde Datensatz den größeren Zeitstempel der beiden Datensätze besitzt. Sollte in der Tabelle TRANSMISSION kein Datensatz mit entsprechender Getriebe-Seriennummer existieren, so wird der Datensatz von KAPITEL 6. DATENKONSOLIDIERUNG 76 SELECT OPEL_ID, I.PART_NUMBER, ATTRIBUTE, SPINDLE, STATION, STEP, TYPE, TSTAMP, MEASURING_VALUE_DIM1, MEASURING_VALUE_DIM2, LOWER_LIMIT_DIM1, LOWER_LIMIT_DIM2, UPPER_LIMIT_DIM1, UPPER_LIMIT_DIM2 FROM COMBINATION C, IMPORT_MEASUREMENT I WHERE C.VIRTUAL_ID = I.PART_NUMBER AND STATION_ID = STATION Abbildung 6.2: EQUI-Join zur Zuordnung der Schraub- und Presskraftdaten aus der Vormontage zu den einzelnen Getrieben diesem Prozess vor Einfügen des Shim-Datensatzes angelegt. Fehlerhafte Shim-Datensätze werden in die Tabelle ERROR SHIM geschrieben. 6.3.4 Einlesen und Bereinigen der Ausschleusungsdaten Das Eingabeformat einer Datei mit Ausschleusungsdaten ist in Abschnitt 4.6 beschrieben. Jedes in der Quelldatei erfasste Ausschleusungsdatum wird nach erfolgter Datentypkonvertierung in die Spalte DATE EXIT des entsprechenden Getriebe-Datensatzes in der Tabelle TRANSMISSION eingetragen. Ein in der Spalte DATE EXIT bereits eingetragener Zeitstempel wird dabei überschrieben, sofern der neu einzutragende Zeitstempel größer als der bestehende ist. Sollte in der Tabelle TRANSMISSION kein Datensatz mit entsprechender Getriebe-Seriennummer existieren, so wird der Datensatz von diesem Prozess angelegt. 6.3.5 Bereinigen der Import- und Fehlertabellen Um ein zu starkes Anwachsen der Datenmengen in den Fehler- sowie Importtabellen zu verhindern, werden die einzelnen Tabellen regelmäßig bereinigt. Dazu werden Datensätze, deren Einfügezeitpunkte länger als eine bestimmte Zeitspanne zurückliegen und daher mit hoher Wahrscheinlichkeit nicht mehr benötigt werden, aus den Tabellen gelöscht. Der Einfügezeitpunkt eines Datensatzes wird der Spalte DATE INSERT entnommen. Für jede Tabelle wird ein eigener Wert für die Verfallszeitspanne“ definiert. ” Kapitel 7 Implementierung In diesem Kapitel wird auf die Implementierung der in Abschnitt 6.3 definierten Datenbereinigungsprozesse (Abschnitt 7.1) sowie des Frontends (Abschnitt 7.2) eingegangen. 7.1 Die Applikation QSF40 Die einzelnen Datenbereinigungsprozesse sind unter Verwendung der Programmiersprache Java (J2SE 1.4.1) innerhalb einer Standalone-Applikation mit dem Namen QSF40“ implementiert. Es ” werden also keine externen Tools zum Einlesen der CSV-Dateien verwendet oder sonstige Programme/Skripte auf Betriebsystemebene aufgerufen. Demnach existiert abgesehen von der Datenbank keine Kopplung mit anderen Applikationen, so dass die Applikation plattformunabhängig ist und einfach installiert werden kann. Der Aufbau der Applikation in ihren wesentlichen Komponenten ist in Abbildung 7.1 schematisch dargestellt. Die einzelnen Datenbereinigungsprozesse sind dabei in grauer Farbe dargestellt. Die durchgezogenen Pfeile skizzieren die verschiedenen Datenflüsse und die gestrichelten Pfeile deuten Prozessaufrufe an. Der Timer startet in konstanten Zeitabständen den Thread ConsolidationTask“. Dieser Thread ” ruft schließlich nacheinander die einzelnen Datenbereinigungsprozesse auf, die für das Einlesen der Quelldateien und das Abspeichern der Quelldaten in der Datenbank verantwortlich sind. Zugriffe auf die Datenbank durch die Datenbereinigungsprozesse erfolgen ausschließlich über eine Datenbankabstraktionssschicht. Der Logger unterstützt das Application-Logging und der SessionBuffer ermöglicht allen anderen Komponenten einen Zugriff auf verschiedene Konfigurationseinstellungen der Applikation, die über eine Konfigurationsdatei vorgenommen werden können. Die ausführbare Klasse der Applikation ist die Klasse qsf40.QSF40. Der Timer Bei dem Timer handelt es sich um eine Instanz der Klasse java.util.Timer, die in der Methode main der Klasse qsf40.QSF40 und damit kurz nach dem Starten der Applikation erzeugt 77 KAPITEL 7. IMPLEMENTIERUNG 78 CombinationFileReader CombinationData LoadingTask DFQFileReader MeasurementLoadingTask ShimFileReader ShimDataLoadingTask ExitDataFileReader ExitDataLoadingTask CleaningTask Logger Combination Task SessionBuffer ConsolidationTask Datenbankabstraktionsschicht Tim er Applikation QSF40 Datenbank Abbildung 7.1: Aufbau der Applikation QSF40 wird. Der Thread ConsolidationTask“, der von dem Timer gestartet wird, wird durch die von der ” Klasse java.util.TimerTask abgeleiteten Klasse qsf40.tasks.ConsolidationTask implementiert. Zur Registrierung des ConsolidationTask“ -Threads beim Timer wird die Methode ” scheduleAtFixedRate() des Timer-Objektes verwendet. Diese Methode stellt sicher, dass der Thread ConsolidationTask“ und damit die Datenbereinigung in konstanten Zeitabständen, ” unabhängig davon wie lange die einzelnen Ausführungen der Datenbereinigung dauern, gestartet wird. Der Zeitabstand zwischen zwei Ausführungen der Datenkonsolidierung sowie der Zeitpunkt der ersten Ausführung nach dem Start der Applikation können über die bereits erwähnte Konfigurationsdatei definiert werden. Die Datenbankabstraktionsschicht Die Datenabstraktionsschicht wird durch die Klasse qsf40.DBConnection implementiert. Sie kapselt ein java.sql.Connection-Objekt und sämtliche SQL-Statements, die im Rahmen der Datenkonsolidierung zur Anwendung kommen, in entsprechenden Methoden. Darüber hinaus ist die Klasse für das Öffnen und Schließen der Datenbankverbindung verantwortlich. Zugriffe auf die Datenbank durch die Datenbereinigungsprozesse erfolgen ausschließlich über entsprechende Methodenaufrufe der Datenbankabstraktionsschicht. Der Logger Mithilfe des Loggers können Fehlermeldungen und sonstige Meldungen seitens der Applikation protokolliert werden, um das Überwachen und Debuggen der Applikation zu erleichtern. Der KAPITEL 7. IMPLEMENTIERUNG 79 Logger ist mithilfe der Java Logging API (Paket java.util.logging) realisiert. Das LogLevel sowie das Verzeichnis, in dem die Log-Datei gespeichert wird, können ebenfalls über die Konfigurationsdatei definiert werden. Die Datei-Parser Zum Einlesen der Quelldateien steht für jeden Quelldatei-Typ ein eigener Datei-Parser zur Verfügung. Die verschiedenen Datei-Parser sind in den folgenden Klassen implementiert: • qsf40.reader.CombinationFileReader (Kombinationsdaten) • qsf40.reader.ShimFileReader (Shim-Daten) • qsf40.reader.ExitDataFileReader (Ausschleusungsdaten) • qsf40.reader.DFQFileReader (Schraub- und Presskraftdaten) Der Parser für DFQ-Dateien ist dabei in der Lage, alle in der Montagelinie erzeugten DFQ-Dateien einzulesen. Alle Parser-Klassen implementieren eine Methode readLine(), die je nach ParserKlasse ein Objekt der Klasse qsf40.Combination, qsf40.Shim, qsf40.ExitData oder ein Array mit Objekten der Klasse qsf40.Measurement zurückliefert. Die ersten drei genannten Klassen kapseln jeweils alle Werte einer Zeile der entsprechenden CSV-Datei. Die Klasse Measurement kapselt alle relevanten Werte, die zu einer Schraub- bzw. Pressoperation gespeichert werden sollen. Jedes Measurement-Objekt besitzt damit sowohl Werte der zuletzt gelesenen Zeile aus dem Werteteil als auch Werte aus dem Beschreibungsteil, der unmittelbar nach Öffnen der DFQ-Datei komplett ausgewertet wird. Werte weiterer nicht relevanter Schlüsselfelder, die ggf. in einer DFQ-Datei gespeichert sind, werden beim Einlesen ignoriert. Die Anzahl der Measurement-Objekte im zurückgelieferten Array ist abhängig von der Anzahl der Qualitätsmerkmale, die bei der Bearbeitung eines Teils erfasst wurden (Anzahl Spindeln bei Schraubkraftdateien, Anzahl Schritte bei Presskraftdateien). Der SessionBuffer Die Klasse qsf40.SessionBuffer dient der Speicherung verschiedener Konfigurationseinstellungen der Applikation sowie einer Referenz auf das Logger-Objekt über die gesamte Laufzeit der Applikation. Bei der Implementierung der Klasse wurde das Singleton-Muster realisiert, so dass über einen Aufruf der Methode getInstance() aus allen Komponenten der Applikation auf das Singleton-Objekt und damit auf die Konfigurationseinstellungen und den Logger zugegriffen werden kann. Beim ersten Aufruf der Methode getInstance(), der in der Methode main der Klasse qsf40.QSF40 vor Erzeugung der Timer-Instanz erfolgt, werden die in der Datei qsf40.properties gespeicherten Konfigurationseinstellungen eingelesen. Die KAPITEL 7. IMPLEMENTIERUNG 80 Konfigurationsdatei beinhaltet im Wesentlichen die Verbindungsdaten zur Datenbank, die Namen der Eingangsverzeichnisse, das Log-Level, die Zeitspanne zwischen zwei Ausführungszeitpunkten der Datenbereinigung sowie die Zeitspannen, nach denen Datensätze aus den jeweiligen Fehlerund Hilfstabellen gelöscht werden sollen (vgl. Abschnitt 6.3.5). Über entsprechende Methodenaufrufe können die Einstellungen abgefragt werden. Nach Einlesen der Konfigurationsdatei wird das Logger-Objekt erzeugt und ein Verbindungstest zur Datenbank durchgeführt. Tritt dabei ein Fehler auf, wird die Applikation vorzeitig beendet. Die Datenbereinigungsprozesse Für jeden der in Abschnitt 6.3 definierten Datenbereinigungsprozesse existiert eine eigene Klasse. Dabei handelt es sich um folgende Klassen: • qsf40.tasks.CombinationDataLoadingTask (Laden und Bereinigen der Kombinationsdaten) • qsf40.tasks.MeasurementLoadingTask (Laden und Bereinigen der Schraub- und Presskraftdaten - 1. Phase) • qsf40.tasks.CombinationTask (Laden und Bereinigen der Schraub- und Presskraftdaten - 2. Phase) • qsf40.tasks.ShimDataLoadingTask (Laden und Bereinigen der Shim-Daten) • qsf40.tasks.ExitDataLoadingTask (Laden und Bereinigen der Ausschleusungsdaten) • qsf40.tasks.CleaningTask (Bereinigen der Fehler- und Hilfstabellen) Jede dieser Klassen verfügt über eine Methode run(), die den entsprechenden Datenbereinigungsprozess implementiert und von dem Thread ConsolidationTask“ aufgerufen wird. Jeder ” Bereinigungsprozess, der Quelldateien einliest, überprüft anfangs das Eingangsverzeichnis auf neu eingetroffene Quelldateien. Jeder Datenbereinigungsprozess verfügt dabei über ein eigenes Eingangsverzeichnis, welches in der Konfigurationsdatei spezifiziert werden kann. Beinhaltet das Eingangsverzeichnis keine Quelldateien, so wird der Prozess beendet. Anderenfalls werden alle Quelldateien im Eingangsverzeichnis nacheinander mithilfe des passenden Datei-Parsers eingelesen. Die in den Quelldateien gespeicherten Daten werden gemäß den in Abschnitt 6.3 beschriebenen Definitionen der Datenbereinigungsprozesse verarbeitet. Nach erfolgreichem Abarbeiten einer Quelldatei wird diese aus dem Eingangsverzeichnis gelöscht. Sobald alle Dateien erfolgreich abgearbeitet und gelöscht wurden, wird der Datenbereinigungsprozess beendet. Zur Speicherung der Schraub- und Presskraftdaten greifen die beiden Prozesse MeasurementLoadingTask“ (Laden ” und Bereinigen der Schraub- und Presskraftdaten - 1. Phase) und CombinationTask“ (Laden und ” KAPITEL 7. IMPLEMENTIERUNG 81 Bereinigen der Schraub- und Presskraftdaten - 2. Phase) auf dieselbe Routine zu. Bei der Implementierung der Datenbereinigungsprozesse wurde ein großes Augenmerk auf die Ausnahmebehandlung gelegt, um eine hohe Stabilität der Applikation zu erreichen sowie Datenverluste zu vermeiden. Es wird sichergestellt, dass eine Quelldatei nur dann gelöscht wird, wenn sie auch fehlerfrei abgearbeitet werden konnte. Bei schwerwiegenden Fehlern (z. B. NichtErreichbarkeit der Datenbank) wird ein Datenbereinigungsprozess direkt mit einer entsprechenden Fehlermeldung beendet. 7.2 Das Frontend Das Frontend wurde mithilfe von JavaServerPages (JSP) realisiert. Aufgrund der wenig komplexen Business-Logik wurde auf ein Präsentationsframework (z. B. Struts) zur Trennung von BusinessLogik und Layout oder auf einen Application-Server verzichtet. Bei der Implementierung wurde u. a. für die Datenbankanbindung die Java Standard Tag Library verwendet. Als Servlet-Container, in dessen Umgebung die Seiten implementiert und getestet wurden, wurde der Tomcat 4.1 verwendet. Insgesamt besteht das Frontend aus den folgenden JSP-Dateien: • search.jsp. Diese Seite ist die Startseite des Frontends, sie zeigt eine Eingabemaske zur Spezifizierung der Suchkriterien an, führt die Suche durch und zeigt nach einer erfolgreichen Suche die Trefferliste an (vgl. Anwendungsfälle 1 und 2 in Abschnitt 3.4). • station overview.jsp. Diese Seite zeigt, nachdem in der Trefferliste ein Getriebe ausgewählt wurde, alle Stationen an, zu denen Qualitätsdaten des ausgewählten Getriebes in der Datenbank vorhanden sind (vgl. Anwendungsfall 1 in Abschnitt 3.4). • pressing screwing data.jsp. Diese Seite zeigt, nachdem in der Liste der Stationen eine Station ausgewählt wurde, alle Schraub- und Presskraftdaten bezüglich des ausgewählten Getriebes und der ausgewählten Station an (vgl. Anwendungsfall 1 in Abschnitt 3.4). • shim data.jsp. Diese Seite zeigt die Shim-Daten eines Getriebes an. Sie wird aufgerufen, wenn auf der Seite station overview.jsp die Station ST150 ausgewählt wurde (vgl. Anwendungsfall 1 in Abschnitt 3.4). Kapitel 8 Tests der Applikation QSF40 In diesem Kapitel wird die Vorgehensweise bei den durchgeführten Tests der Applikation QSF40 erläutert. Da ein Test der Applikation unter Realbedingungen, also bei laufendem Montagebetrieb nicht durchgeführt werden konnte, weil die Prozesse zur Übertragung der Daten von den MontageStationen zum Server bis zuletzt nicht eingerichtet waren, wurde eine GUI-gestütze Applikation mit dem Namen QSF40Sim“ implementiert, die das Verhalten der Montagelinie aus Sicht der ” Applikation QSF40 simuliert. In Abschnitt 8.1 wird diese Applikation in ihrem Aufbau und ihrer Funktionsweise grob beschrieben. In Abschnitt 8.2 werden schließlich die durchgeführten Tests erläutert. 8.1 Die Applikation QSF40Sim Die Applikation QSF40Sim simuliert das Verhalten der Montagelinie, indem sie Quelldateien in die Eingangsverzeichnisse der Applikation QSF40 überträgt, was unter Realbedingungen durch die Datenübertragungsprozesse geschieht. Die abgelegten Quelldateien beinhalten dabei Prozessdaten, die von der Applikation QSF40Sim selbst erzeugt werden. Die verwendeten Dateiformate sind äquivalent zu den Original-Dateiformaten aus der Montagelinie. Die Applikation QSF40Sim stellt ein komplettes Modell der Montagelinie dar. Der Aufbau der Montagelinie wird im Wesentlichen durch Instanzen folgender Klassen abgebildet: • qsf40sim.Palette • qsf40sim.Spindle • qsf40sim.ControlUnit • qsf40sim.Station Objekte der Klasse Palette repräsentieren Paletten, auf denen Teile transportiert werden, und speichern daher Seriennummern von Komponenten bzw. Getrieben. Spindle-Objekte repräsen82 KAPITEL 8. TESTS DER APPLIKATION QSF40 83 tieren Spindeln und sind für das Erzeugen von Prozessdaten zuständig. ControlUnit-Objekte stellen die Datei-generierenden Systeme dar. Sie übertragen nach Abschluss einer Schicht die in den Spindle-Objekten erzeugten Daten in Form von Textdateien in die Eingangsverzeichnisse der Applikation QSF40. Die Station-Objekte repräsentieren die Stationen der Montagelinie. Über Referenzen ist jedes Station-Objekt sowohl mit dem Objekt der vorgeschalteten Station als auch mit dem Objekt der nachgeschalteten Station verknüpft. Ein Station-Objekt ist für die Annahme und Weitergabe von Palette-Objekten zuständig. Nach Annahme eines PaletteObjektes liest das Station-Objekt die Seriennummer aus und veranlasst die Erzeugung von Prozessdaten zu der eingelesenen Seriennummer. Da die Ausgangsstationen, die Endstation sowie die Station ST140 ein anderes Verhalten als die sonstigen Stationen aufweisen, existieren für diese Stationen entsprechende Unterklassen der Klasse Station. Zur Abbildung des Montageprozesses wurde das Erzeuger/Verbraucher-Muster implementiert. Jedes Station-Objekt läuft innerhalb eines eigenen Threads und verhält sich gleichzeitig aus Sicht seines Vorgänger-Objektes als Verbraucher“ und aus Sicht seines Nachfolger-Objektes als ” Erzeuger“ von Palette-Objekten, indem es kontinuierlich bei seinem Vorgänger-Objekt ein ” Palette-Objekt anfordert und es nach einer definierten Durchlaufzeit an sein Nachfolger-Objekt freigibt. Produziert ein Station-Objekt wesentlich langsamer als sein Nachfolger-Objekt, so muss das Nachfolger-Objekt solange warten, bis ihm ein neues Palette-Objekt übergeben wird. Gleichermaßen können sich Palette-Objekte aufstauen, wenn ein Station-Objekt wesentlich langsamer als sein Vorgänger-Objekt arbeitet. Überschreitet die Zahl der aufgestauten PaletteObjekte einen bestimmten Wert, kommt es zu einem Produktionsstillstand“ bei dem Vorgänger” Objekt. Die Spindle-Objekte erzeugen mithilfe von Zufallsgeneratoren (Klasse java.util.Random) Prozessdaten, worunter sich auch Daten mit syntaktischen Fehlern und fehlenden Werten befinden. Darüber hinaus können auch Änderungen der Grenzwerteinstellungen sowie Wiederholungen von Operationen simuliert werden. Die Dauer einer Schicht sowie die Durchlaufzeiten der einzelnen Stationen können spezifiziert werden. Indirekt lässt sich mithilfe dieser Parameter die Stückzahl der in einer Schicht montierten Getriebe definieren. 8.2 Durchführung der Tests Die Basisklassen der Applikation QSF40 wurden fortlaufend während der Implementierungsphase getestet. Zweck der Tests war es mithilfe von Testfallklassen die korrekte Funktionsweise der einzelnen Klassen zu testen, wie etwas das korrekte Einlesen von Quelldateien durch die entsprechenden Datei-Parser oder das korrekte Ausführen der SQL-Statements in der Datenbankabstraktionsschicht. Zum Testen der Parser-Klassen wurden sowohl selbst erzeugte Dateien aller Quelldatei-Typen als auch DFQ-Dateien, die von dem Lieferanten Promess zur Verfügung gestellt wurden, verwendet. In einem nächsten Schritt wurden mithilfe der Basisklassen die Datenberei- KAPITEL 8. TESTS DER APPLIKATION QSF40 84 nigungsprozesse implementiert und hinsichtlich ihrer korrekten Funktionsweise isoliert voneinander getestet. In einem letzten Schritt wurden die Implementierungen der einzelnen Bereinigungsprozesse zu einer ganzen Applikation zusammengefügt. Bei den anschließenden Tests der Applikation standen im Gegensatz zu den vorangegangenen Tests Aspekte wie Speicherverbrauch, CPU-Auslastung und Stabilität unter möglichst realistischen Bedingungen im Vordergrund. Ein Vorteil bei der Zuhilfenahme der Applikation QSF40Sim bestand in der Möglichkeit, die Schichtdauer, die in der Realität acht Stunden beträgt, deutlich zu verkürzen ohne dabei die Menge der erzeugten Daten zu reduzieren. Damit war es möglich die Applikation QSF40 über einen längeren Zeitraum mit realistischen Datenmengen zu testen, wobei lediglich die Zeiträume zwischen zwei Ausführungszeitpunkten der Datenbereinigungsprozesse verkürzt waren. Während der Testdurchführungen liefen die Applikation QSF40 sowie die Oracle-Datenbank (Oracle 9.1, Standardinstallation) auf einer Sun UltraSPARC 60 Workstation mit einem 450MHz Prozessor und 2GB Arbeitspeicher unter Sun Solaris 8.0. Die Applikation QSF40Sim lief während dessen auf einem separaten Personal Computer. Die von der Applikation QSF40Sim erzeugten Quelldateien wurden fortlaufend über das Netzwerk in die auf der Sun Workstation befindlichen Eingangsverzeichnisse kopiert. Bei allen Testdurchführungen betrug die Schichtdauer 45 Minuten und die Durchsatzrate ca. 350 Getriebe/Schicht. Theoretisch hätte die Schichtdauer auch auf wenige Minuten verkürzt werden können, doch benötigt die Applikation QSF40 einen Zeitraum von bis zu 40 Minuten, die Daten einer Schicht (350 Getriebe, 12.250 Datensätze) in die normalisierte Datenbank zu schreiben. Um zu gewährleisten, dass die Applikation QSF40 bis Abschluss einer Schicht alle Daten der vorangegangen Schicht abgearbeitet hat, wurde die genannte Schichtdauer gewählt. Die Gesamtdauer jeweils einer Testdurchführung war unterschiedlich lang und lag zwischen einer Schichtdauer und drei Tagen. Bei allen Tests lag die CPU-Auslastung während der Ausführung der Datenbereinigungsprozesse in einem unkritischen Bereich, der Speicherverbrauch lag ebenfalls nach anfänglichem Ansteigen konstant bei einem unkritischen Wert. Mithilfe der durchgeführten Tests konnten Unzulänglichkeiten bei der Ausnahmebehandlung aufgedeckt werden. Nach einigen Verbesserungen bei der Ausnahmebehandlung lief die Applikation schließlich stabil. Kapitel 9 Fazit Die Heterogenität der Quellsysteme ist nicht sehr stark ausgeprägt, da nur wenige Hersteller an der Entwicklung der Quellsysteme beteiligt sind und die Formate für die Schraub- und Presskraftdaten standardisiert sind. Außerdem existieren zwischen den einzelnen Datensätzen keine komplexen Abhängigkeiten. Die Bereinigung der Quelldaten kann mithilfe der in der Zieldatenbank definierten Integritäts-Constraints durchgeführt werden, wobei allerdings auf eine Plausibilitätskontrolle der Zeitstempel verzichtet wird. Infolge der eben genannten Punkte ist die Integration der Quelldaten unproblematisch. Die Implementierung der Datenbereinigungsprozesse als Standalone-Applikation in Java ohne Zuhilfenahme externer Tools stellt eine schwache Kopplung zu anderen Applikationen sicher. Es ist ohne großen Aufwand möglich, Qualitätsdaten weiterer Spindeln, die ursprünglich nicht im Anforderungsbereich lagen, von der Applikation erfassen zu lassen. Hierzu muss lediglich in einer bestimmten Tabelle der Zieldatenbank ein Datensatz angelegt werden. Trotz nicht abgeschlossener Einrichtung der Datenübertragungsprozesse in der Montagelinie konnte die Applikation mithilfe der Applikation QSF40Sim unter annähernd realistischen Bedingungen getestet werden. Unter Testbedingungen funktionierte die implementierte Lösung im Bezug auf Performance und Stabilität gut, so dass die Testergebnisse als positiv zu bewerten sind. Mit der Applikation QSF40 zur Datenkonsolidierung sowie dem realisierten Frontend zur Erzeugung aller geforderten Reports, sind alle gestellten Anforderungen der Opel Powertrain GmbH erfüllt. Unabhängig davon sei jedoch erwähnt, dass die Datenqualität stark von der Disziplin der Arbeiter und deren strikter Einhaltung des Fertigungsprozesses abhängt. Gelegentlich werden Getriebe auf Paletten ausgetauscht, ohne dass die Getriebe-Seriennummer auf dem Datenträger der betroffenen Palette entsprechend aktualisiert wird. Dies gilt auch für den Austausch von Komponenten und deren virtuelle Kennungen bei Reparaturen. Es ist vorgekommen, dass ein fertig montiertes Getriebe auseinandergebaut, die auf dem Gehäuse eingelaserte Getriebe-Seriennummer ausgefeilt wurde und das Getriebe anschließend unter einer anderen Getriebe-Seriennummer in die Monta- 85 KAPITEL 9. FAZIT 86 gelinie eingeschleust wurde. In solchen Fällen können selbstverständlich trotz Durchführung einer Datenbereinigung keine korrekten Daten zur Verfügung gestellt werden. Literaturverzeichnis [1] Fiat-GM-Powertrain Manufacturing Engineering. General specification for measuring valuegenerating systems at SPC applications, Version 2.0, 2003 [2] Rahm, Erhard; Do, Hong-Hai. Data Cleaning: Problems and Current Approaches, IEEE Bulletin of the Technical Committee on Data Engineering, Vol 23 No. 4, December 2000 [3] Maletic, Jonathan; Marcus, Andrian. Data Cleaning: Beyond Integrity Analysis, in Proceedings of The Conference on Information Quality (IQ2000), Massachusetts Institute of Technology, October 20-22, 2000, pp. 200-209 [4] Müller, Heiko; Freytag, Johann-Christoph. Problems, Methods, and Challenges in Comprehensive Data Cleansing, Technical Report HUB-IB-164, Humboldt University Berlin, 2003 [5] Opel Powertrain Manufacturing Engineering. Pflichtenheft SPC-Netzwerk, 2001 [6] Q-DAS GmbH. Q-DAS ASCII Transferformat, 2003 [7] BAB Automationstechnik GmbH. Programmbeschreibung Opel F40 - Station 140, 2002 [8] General Motors Engineering. GME Liste der Aufbewahrungszeiten für Qualitätsdokumente und -aufzeichnungen, D10A1D4 Revision 5, 2000 [9] Grote, K.-H.; Beitz, W. Taschenbuch für den Maschinenbau, Springer, 19. Auflage, 1997 [10] Witten, I.H.; Frank, E. Data Mining - Praktische Werkzeuge und Techniken für das maschinelle Lernen, Hanser, 2001 87 Anhang A Tabellen 88 ANHANG A. TABELLEN Code 0017DW 0017AR 1916DM 1916TQ 1503ET 1503PD 1505EK 1505PF 89 Merkmal Drehwinkel Drehwinkel Drehmoment Drehmoment Einpresstiefe Einpresstiefe Einpresskraft Einpresskraft Tabelle A.1: Codes zur Identifizierung der Qualitätsmerkmale Schlüsselfeld K0001 K0002 K0004 K0006 K0007 K0008 K2001 K2110 K2111 Bedeutung Messwert Fehlercode Zeitstempel Seriennummer Spindelnummer Stationsnummer Merkmalscode Unterer Grenzwert Oberer Grenzwert Tabelle A.2: Von einer DFQ-Datei zu untersützende Schlüsselfelder eines Qualitätsmerkmals