Eine Spezifikationssprache für die Fertigungslenkung Dissertation zur Erlangung der Würde eines DOKTORS DER WIRTSCHAFTSWISSENSCHAFTEN (Dr. rer. pol.) der Universität-GH Paderborn vorgelegt von Dipl-Wirt. Inform. Achim Schmidtmann 33102 Paderborn Paderborn, Oktober 1999 Dekan: Referent: Korreferent: Prof. Dr. B. Rahmann Prof. Dr.-Ing. habil. W. Dangelmaier Prof. Dr. O. Rosenberg Inhaltsverzeichnis i Inhaltsverzeichnis Abbildungsverzeichnis ................................................................................ v Tabellenverzeichnis ..................................................................................... ix Definitionsverzeichnis .................................................................................. xi Abkürzungsverzeichnis ................................................................................ xiii Symbolverzeichnis ........................................................................................ xv 1 Einleitung ................................................................................................... 1 2 Das Problem einer Spezifikationssprache für die Fertigungslenkung . 5 2.1 Begriffserklärungen ............................................................................................... 2.1.1 Fertigungslenkung ............................................................................................ 2.1.2 Fertigungslenkungsverfahren............................................................................ 2.1.3 Klassifikation .................................................................................................... 2.1.4 Spezifikationssprache ....................................................................................... 2.2 Klassifikation für die Fertigungslenkung............................................................. 2.2.1 Anforderungen an eine Klassifikation für die Fertigungslenkung.................... 2.2.2 Klassifikationsmerkmale der Fertigungslenkung ............................................. 2.2.2.1 Klassifikationsmerkmal Fertigungslenkungsstruktur ............................... 2.2.2.2 Klassifikationsmerkmal Fertigungslenkungsabläufe ................................ 2.2.2.3 Klassifikationsmerkmal Fertigungslenkungsfunktionen........................... 2.2.3 Klassifikationsschema für die Fertigungslenkung............................................ 2.3 Anforderungen an eine Spezifikationssprache für die Fertigungslenkung....... 2.3.1 Problembereichsunabhängige Anforderungen an die Spezifikationssprache... 2.3.2 Problembereichsabhängige Anforderungen an die Spezifikationssprache....... 6 6 11 12 14 17 17 19 21 25 28 31 32 34 37 3 Stand der Technik ..................................................................................... 43 3.1 Klassifikationen für die Fertigungslenkung......................................................... 3.1.1 Klassifikationen für Fertigungslenkungsstrukturen.......................................... 3.1.2 Klassifikationen für Fertigungslenkungsabläufe .............................................. 3.1.3 Klassifikationen für Fertigungslenkungsfunktionen......................................... 3.1.4 Klassifikationsschemata für die Fertigungslenkung ......................................... 3.2 Spezifikationssprachen für die Fertigungslenkung ............................................. 3.2.1 Syntax existierender Spezifikationssprachen.................................................... 3.2.2 Semantik existierender Spezifikationssprachen................................................ 3.2.2.1 Spezifikationssprachen für Fertigungslenkungsstrukturen ....................... 3.2.2.2 Spezifikationssprachen für Fertigungslenkungsabläufe............................ 3.2.2.3 Spezifikationssprachen für Fertigungslenkungsfunktionen ...................... 43 57 59 63 70 71 73 79 91 92 94 4 Zu leistende Arbeiten zur Entwicklung einer Spezifikationssprache für die Fertigungslenkung...................................................................................... 97 ii 5 Entwicklung einer Spezifikationssprache für die Fertigungslenkung.. 101 5.1 Syntax der Spezifikationssprache ......................................................................... 5.2 Semantik der Spezifikationssprache..................................................................... 5.2.1 Funktionalität an Modellelementen .................................................................. 5.2.1.1 Funktionalität an Fertigungselementknoten.............................................. 5.2.1.1.1 Attribute an Fertigungselementknoten .............................................. 5.2.1.1.2 Eintritts-/Austrittsfunktionen an Fertigungselementknoten .............. 5.2.1.1.3 Zustandsfunktionen an Fertigungselementknoten............................. 5.2.1.2 Funktionalität an Fertigungsvorgangsknoten............................................ 5.2.1.2.1 Attribute an Fertigungsvorgangsknoten ............................................ 5.2.1.2.2 Eintritts-/Austrittsfunktionen an Fertigungsvorgangsknoten ............ 5.2.1.2.3 Zustandsfunktionen an Fertigungsvorgangsknoten........................... 5.2.2 Ablaufstrukturen ............................................................................................... 5.2.2.1 Zeitorientierte Vorgehensweise ................................................................ 5.2.2.2 Ereignisorientierte Vorgehensweise ......................................................... 5.2.2.3 Knotenorientierte Vorgehensweise ........................................................... 5.2.2.3.1 Vorgangsorientierte Vorgehensweise................................................ 5.2.2.3.2 Materialorientierte Vorgehensweise.................................................. 5.2.2.3.3 Fertigungsmittelorientierte Vorgehensweise..................................... 5.2.2.4 Produktionsstrukturorientierte Vorgehensweise ....................................... 5.2.2.5 Auftragsorientierte Vorgehensweise......................................................... 5.2.2.6 Kombinierte Ablaufstrukturen .................................................................. 5.3 Implementierung der Spezifikationssprache ....................................................... 5.3.1 Algorithmen für Funktionen ............................................................................. 5.3.1.1 Algorithmen für Funktionen an Fertigungselementknoten....................... 5.3.1.2 Algorithmen für Funktionen an Fertigungsvorgangsknoten ..................... 5.3.1.3 Algorithmen für allgemeine Funktionen................................................... 5.3.2 Algorithmen für Abläufe .................................................................................. 5.3.2.1 Algorithmus für zeitorientierte Abläufe.................................................... 5.3.2.2 Algorithmus für ereignisorientierte Abläufe............................................. 5.3.2.3 Algorithmen für knotenorientierte Abläufe .............................................. 5.3.2.4 Algorithmus für produktionsstrukturorientierte Abläufe .......................... 5.3.2.5 Algorithmus für auftragsorientierte Abläufe............................................. 5.3.2.6 Algorithmus für kombinierte Abläufe....................................................... 5.4 Anwendungsbeispiele für die Spezifikationssprache .......................................... 5.4.1 Mengenplanung ................................................................................................ 5.4.2 Terminplanung.................................................................................................. 5.4.2.1 Durchlaufterminierung.............................................................................. 5.4.2.1.1 Vorwärtsrechnung bei bekanntem Rang ........................................... 5.4.2.1.2 Rückwärtsrechnung bei bekanntem Rang ......................................... 5.4.3 Termin- und Mengenplanung ........................................................................... 5.4.4 Kapazitätsplanung............................................................................................. 5.4.4.1 Zeitorientierte Auftragsfreigabe................................................................ 5.4.4.1.1 Einmaschinenproblem ....................................................................... 5.4.4.1.2 Problem identischer Maschinen ........................................................ 5.4.4.1.3 N-Maschinen-Problem ...................................................................... 5.4.4.2 Ereignisorientierte Auftragsfreigabe......................................................... 102 113 114 125 125 128 130 132 132 135 140 142 144 145 147 147 148 149 150 151 152 153 161 163 166 168 175 176 176 177 178 178 178 179 180 181 181 182 184 184 186 186 189 191 192 192 Inhaltsverzeichnis 5.4.5 Komplexe Fertigungslenkungsverfahren.......................................................... 5.4.5.1 Materialbedarfsplanung (MRP) ................................................................ 5.4.5.2 Arbeitsgangterminierung des Fertigungssystems CAPOSS-E ................. 5.4.5.3 Engpaßorientiertes Fertigungssteuerungsverfahren (OPT)....................... 5.4.5.4 Kanban ...................................................................................................... 5.4.5.5 Fortschrittszahlenkonzept ......................................................................... 5.4.5.6 Belastungsorientierte Auftragsfreigabe (BOA) ........................................ 5.4.5.7 Netzplantechnik ........................................................................................ iii 193 194 197 198 200 201 202 204 6 Zusammenfassung und Ausblick ............................................................. 207 7 Literaturverzeichnis .................................................................................. 211 8 Anhang........................................................................................................ 221 8.1 Nutzung der Spezifikationssprache zur Simulation der Fertigungslenkung .... 221 8.2 Einbindung der Fertigungslenkung in den Unternehmensworkflow ................ 222 iv Abbildungsverzeichnis Abbildungsverzeichnis Abbildung 2-1: Modell eines Flexiblen Fertigungssystems............................................ 9 Abbildung 2-2: Klassifikation der Fertigungslenkung .................................................... 21 Abbildung 2-3: Strukturprototypen ................................................................................. 23 Abbildung 2-4: Verknüpfung von Prototypen.................................................................. 25 Abbildung 2-5: Klassifikationsschema............................................................................ 31 Abbildung 2-6: Beispiel eines Klassifikationsschemas................................................... 32 Abbildung 2-7: Spezifikationssprache der Fertigungslenkung ....................................... 34 Abbildung 2-8: Elemente der Spezifikationssprache ....................................................... 40 Abbildung 3-1: Orientierungen der Klassifikationsansätze ............................................. 44 Abbildung 3-2: Modellvorstellungen in der Strukturierten Programmierung.................. 56 Abbildung 3-3: Materialdisposition nach dem Dispositionsstufenverfahren................... 87 Abbildung 5-1: Anwendung der Klassifikation und Spezifikationssprache .................... 101 Abbildung 5-2: Architektur der Sprache .......................................................................... 102 Abbildung 5-3: Konstrukt Teilgraph ................................................................................ 104 Abbildung 5-4: Konstrukt Ablauf .................................................................................... 105 Abbildung 5-5: Konstrukt Funktionen ............................................................................. 106 Abbildung 5-6: Darstellung While-Schleife und Repeat-Schleife ................................... 111 Abbildung 5-7: Darstellung von Parallelität und Serialität in Teilgraphen...................... 111 Abbildung 5-8: Beispielprogramm................................................................................... 113 Abbildung 5-9: Metastrukturprototyp .............................................................................. 114 Abbildung 5-10: Ein- und ausgehende Kanten .................................................................. 116 Abbildung 5-11: Beziehungen zwischen Kanten ............................................................... 117 Abbildung 5-12: Funktionalität am Knoten ....................................................................... 119 Abbildung 5-13: Übermittlung von Änderungen ............................................................... 120 Abbildung 5-14: Zusammenfassungsfunktion ................................................................... 122 Abbildung 5-15: Aufteilungsfunktion ................................................................................ 123 Abbildung 5-16: Funktionalität an Fertigungselementknoten............................................ 125 Abbildung 5-17: Dispositionsprinzipien/Auslösungsarten................................................. 126 v vi Abbildung 5-18: Brutto-/Netto-Angebote/Bedarfe ............................................................ 128 Abbildung 5-19: Ein- und Austrittsbegrenzung an Materialknoten ................................... 129 Abbildung 5-20: Funktionalität an Fertigungsvorgangsknoten.......................................... 132 Abbildung 5-21: Komplementäre Kanten .......................................................................... 137 Abbildung 5-22: Alternative Kanten .................................................................................. 138 Abbildung 5-23: Konkurrierende Kanten........................................................................... 138 Abbildung 5-24: Kombination verschiedener Kanten........................................................ 139 Abbildung 5-25: Vorgangsterminierung ............................................................................ 140 Abbildung 5-26: Ablaufstrukturen ..................................................................................... 144 Abbildung 5-27: Zeitorientierung....................................................................................... 144 Abbildung 5-28: Zeitorientierte Vorgehensweise .............................................................. 145 Abbildung 5-29: Darstellung Bestellrhythmusverfahren ................................................... 145 Abbildung 5-30: Ereignisorientierung................................................................................ 146 Abbildung 5-31: Ereignisorientierte Vorgehensweise ....................................................... 146 Abbildung 5-32: Darstellung Bestellpunkt-Verfahren ....................................................... 147 Abbildung 5-33: Vorgangsorientierte Vorgehensweise ..................................................... 148 Abbildung 5-34: Materialorientierte Vorgehensweise ....................................................... 149 Abbildung 5-35: Fertigungsmittelorientierte Vorgehensweise .......................................... 149 Abbildung 5-36: Nachfolgestruktur ................................................................................... 150 Abbildung 5-37: Darstellung produktionsstrukturorientierter Ablauf ............................... 151 Abbildung 5-38: Auftragsorientierte Vorgehensweise....................................................... 151 Abbildung 5-39: Darstellung auftragsorientierter Ablauf .................................................. 151 Abbildung 5-40: Kombinierte Ablaufstruktur.................................................................... 152 Abbildung 5-41: Darstellung kombinierte Ablaufstrukturen ............................................. 152 Abbildung 5-42: Spezifikationsbeispiel ............................................................................. 153 Abbildung 5-43: Funktionen an Fertigungsknoten............................................................. 163 Abbildung 5-44: Netzplan mit Fertigungsvorgängen nach Rängen sortiert....................... 182 Abbildung 5-45: Struktogramm Terminplanung vorwärts................................................. 182 Abbildung 5-46: Fertigungsgraph mit Bedarfsmengen > 1................................................ 183 Abbildung 5-47: Struktogramm Terminplanung rückwärts ............................................... 184 Abbildungsverzeichnis vii Abbildung 5-48: Struktogramm Mengen- und Terminplanung rückwärts......................... 185 Abbildung 5-49: Fertigungsgraph mit Kapazitäten............................................................ 186 Abbildung 5-50: Struktogramm Summarisches Verfahren................................................ 187 Abbildung 5-51: Struktogramm Reihenfolge-Verfahren ................................................... 188 Abbildung 5-52: Einmaschinenproblem............................................................................. 189 Abbildung 5-53: Struktogramm Einmaschinenproblem vorwärts ..................................... 190 Abbildung 5-54: Struktogramm Einmaschinenproblem rückwärts.................................... 190 Abbildung 5-55: Struktogramm Problem identischer Maschinen...................................... 191 Abbildung 5-56: Struktogramm Problem identischer Maschinen...................................... 192 Abbildung 5-57: Klassifikationsschema MRP ohne Losgrößengruppierung..................... 195 Abbildung 5-58: Struktogramm MRP ohne Losgrößengruppierung.................................. 195 Abbildung 5-59: Klassifikationsschema MRP mit Losgrößengruppierung ....................... 196 Abbildung 5-60: Struktogramm MRP mit Losgrößengruppierung .................................... 196 Abbildung 5-61: Klassifikationsschema Arbeitsgangterminierung ................................... 197 Abbildung 5-62: Struktogramm Arbeitsgangterminierung ................................................ 198 Abbildung 5-63: Klassifikationsschema OPT (Vorgehensweise nach Engpaßermittlung)199 Abbildung 5-64: Struktogramm OPT (Vorgehensweise nach Engpaßermittlung) ............ 200 Abbildung 5-65: Klassifikationsschema Kanban ............................................................... 201 Abbildung 5-66: Klassifikationsschema Belastungsorientierte Auftragsfreigabe ............. 203 Abbildung 5-67: Struktogramm Belastungsorientierte Auftragsfreigabe .......................... 203 Abbildung 5-68: Klassifikationsschema Netzplantechnik ................................................. 204 Abbildung 7-1: Simulation der Fertigungslenkung.......................................................... 222 Abbildung 7-2: Workflow vom Auftrag zur Lieferung.................................................... 223 Abbildung 7-3: Sukzessive Mengen- und Terminplanung............................................... 224 viii Tabellenverzeichnis ix Tabellenverzeichnis Tabelle 5-1: Restriktionen an Fertigungselementknoten............................................. 127 Tabelle 5-2: Transformationsprinzipien an Fertigungsvorgangstypen ....................... 133 Tabelle 5-3: Restriktionen an Fertigungsvorgangsknoten........................................... 134 Tabelle 5-4: Kantenarten an Fertigungsvorgangsknoten............................................. 136 Tabelle 5-5: Terminierung bei unterschiedlichen Transformationsprinzipien............ 142 x Definitionsverzeichnis Definitionsverzeichnis Definition 1: Fertigungslenkung................................................................................... 6 Definition 2: Fertigungssystem .................................................................................... 7 Definition 3: Fertigungsmodell .................................................................................... 7 Definition 4: Verfahren ................................................................................................ 11 Definition 5: Fertigungslenkungsverfahren.................................................................. 11 Definition 6: Klasse...................................................................................................... 12 Definition 7: Klassifikation .......................................................................................... 12 Definition 8: Funktion .................................................................................................. 13 Definition 9: Fertigungslenkungsfunktion ................................................................... 13 Definition 10: Ablaufstruktur ......................................................................................... 13 Definition 11: Fertigungslenkungsstruktur..................................................................... 13 Definition 12: Spezifikationssprache ............................................................................. 15 Definition 13: Teilgraph ................................................................................................. 21 Definition 14: Strukturprototyp...................................................................................... 22 Definition 15: Metastrukturprototyp .............................................................................. 23 xi xii Abkürzungsverzeichnis Abkürzungsverzeichnis ARIS Architektur integrierter Informationssysteme BOA Belastungsorientierte Auftragsfreigabe CAPOSS-E Capacity Planning and Operation Sequencing System-Extended CIM Computer Integrated Manufacturing CIM-OSA Open System Architecture for CIM DIN Deutsches Institut für Normung DV Datenverarbeitung EBNF Erweiterte Backus-Naur-Form EDV Elektronische Datenverarbeitung ERM Entity-Relationship-Model ESPRIT European Strategic Planning for Research in Information Technology FIFO First-In-First-Out FST Fertigungssteuerung GERT Graphical Evaluation and Review Technique HERA Heuristiken zur Repräsentation von Ablaufplanungswissen HIPO Hierarchie plus Input-Process-Output ICAM Integrated Computer Aided Manufacture-Program IDEF ICAM Definition KOZ Kürzeste-Operationszeit MFERT Modell der Fertigung xiii xiv MFST Modell der Fertigungssteuerung MRP Material Requirements Planning MSP Metastrukturprototyp OPT Optimized Production Technology ORVAN Objekte, Relationen, Vererbung, Attribute und Nachrichten PPS Produktionsplanung und -steuerung PSL Process Specification Language SADT Structured Analysis and Design Technique SOM Semantisches Objektmodell SQL Sequential Query Language STEP Standard for the Exchange of Product Model Data UML Unified Modeling Language Symbolverzeichnis xv Symbolverzeichnis a Auftrag B (Perioden-)Bedarf/Bestand ei Ereignis e*T wichtigstes mögliches Ereignis in Zeitabschnitt ET Menge der Ereignisse im Planungshorizont T i (Arbeits-)Vorgang j Vorgängervorgang k Folgevorgang m Maschine (Fertigungsmittel) p Material Q Bestellmenge r Rangstufe s Bestellpunkt (Meldebestand) S Sollbestand (Maximalbestand) ti Durchlaufzeit des Vorgangs i tt Taktzeit Tia Anfangszeitpunkt des Vorgangs i Tja Anfangszeitpunkt des Vorgangs j Tka Anfangszeitpunkt des Vorgangs k Tie Endzeitpunkt des Vorgangs i Tje Endzeitpunkt des Vorgangs j Tke Endzeitpunkt des Vorgangs k T Planungshorizont Tn n-ter Zeitpunkt im Planungshorizont xvi Symbolverzeichnis TH letzter zu betrachtender Zeitpunkt im Planungshorizont T Bestellzyklus (konstantes Zeitintervall) Einleitung 1 1 Einleitung Der Bereich der Fertigungslenkung1 ist bereits seit vielen Jahren ein von unterschiedlichen Wissenschaftsdisziplinen, wie z.B. den Ingenieurwissenschaften, der Produktionswissenschaft, der Informatik u.a., bearbeitetes Feld. Die Ergebnisse dieser Forschungen sind eine große Zahl von Planungs- und Steuerungsverfahren mit diversen Vorgaben und Zielrichtungen. Diese Verfahren werden größtenteils nur in der Theorie verwendet, jedoch finden einige auch ihre praktische Anwendung in der Industrie, wo heutzutage bereits eine Vielzahl unterschiedlichster Verfahren der Fertigungslenkung genutzt werden. Die ständigen Veränderungen der Märkte und die vom Kunden nachgefragten immer individuelleren Produktlösungen erfordern eine Fertigungslenkung mit hoher Flexibilität und Anpassungsfähigkeit. Gleichzeitig zeigen sie auch deutliche Auswirkungen auf die verwendeten Planungs- und Steuerungsverfahren. So gehen aufgrund der stark anwachsenden Variantenvielfalt und der hohen Flexibilität von Fertigungsanlagen die zu fertigenden Losgrößen in vielen Bereichen gegen eins, dafür erlangen die Reihenfolgeplanung der Aufträge respektive Werkstücke an den Ressourcen und die Vielzahl der Varianten, in denen die Produkte gefertigt werden müssen, ein immer größeres Gewicht. Bis vor einigen Jahren wurde versucht, mathematische und operationale Entscheidungsmodelle für die Fertigungslenkung zu entwickeln, die mittels linearer Programmierung zu einer Gewinnmaximierung führen sollten.2 Allerdings sind diese Modelle nie allgemein, sondern immer auf spezielle Fertigungen und meistens außerdem auf die Bestellmengen- bzw. Losgrößen- oder Reihenfolgeproblematik begrenzt. Ihr Schwerpunkt liegt demnach auf den Problemen der Ablaufplanung, die jedoch nur einen Teilbereich der Fertigungslenkung ausmachen. Weiterhin führt die gleichzeitige Betrachtung der verschiedenen Entscheidungsvariablen in diesen Modellen dazu, daß die rechentechnischen Grenzen schnell erreicht werden. Aus diesem Grund haben die Modelle trotz der stark gestiegenen Rechnerleistungen meistens nur reinen Beschreibungswert. Ihre Aufgabe ist dementsprechend eine theoretisch elegante Abbildung und Strukturierung des erfaßten Problems sowie das Sichtbarmachen der vorhandenen Wechselwirkungen3, nicht aber die optimale Lösung. 1. Für diesen Bereich werden häufig auch die Begriffe Fertigungs- oder Produktionsplanung und -steuerung genutzt (vgl. [Swi89], [Zäp82], [Sche91], [DaWa97], u.a.). Unter Fertigung versteht man einen industriellen oder handwerklichen Produktions- bzw. Herstellungsprozeß (vgl. [Du96]). 2. Vgl. [Oßw79], [MüMe73], u.a. 3. Vgl. [Swi89], S. 10 ff. 2 Kapitel 1 Wegen geringfügiger Unterschiede in den Anwendungsgebieten der verschiedenen Fertigungslenkungsverfahren werden immer neue, sehr spezifische Verfahren bzw. Methoden entwickelt, die von den bereits bestehenden klar abgegrenzt werden.4 Die Mehrzahl dieser Verfahren beruhen darüber hinaus auf einem bestimmten, meistens recht eingegrenzten Verständnis des Produktionsprozesses.5 Eine Lösung für dieses Problem besteht darin, die Verfahren über eine vollständig durchgängige und problembereichsorientierte Spezifikationssprache, ein Metasystem, allgemein nutzbar zu machen. Auf diese Weise werden sie von einem speziellen Anwendungsgebiet und Verständnis losgelöst, wodurch eine umfassende Nutzung der Verfahren und ihre Integration ermöglicht und auch entscheidend vereinfacht wird. Vergleichbares fordert auch Weigelt: „Statt nach immer komplizierteren Planungsalgorithmen zu suchen, sollte man eher benutzerfreundliche Simulations- und Meta-Planungsansätze vorantreiben“.6 Und Scheer hebt hervor, daß bei der Architektur von Anwendungssystemen in Zukunft nicht mehr die „harte Programmierung“ im Vordergrund steht, sondern die logische Modellierung von Anwendungssystemen durch Vorgangs- und Datenmodelle.7 Als Ausgangspunkt eines derartigen Metasystems ist eine einheitliche Modellierungssystematik und eine umfassende Klassifikation des Problembereichs unbedingt erforderlich. Die große Zahl an Fertigungslenkungssystemen und die ständig neu und für spezielle Fälle entwickelten Fertigungslenkungsverfahren machen es unmöglich, alle Verfahren einer eingehenden Analyse zu unterziehen. Da allerdings in vielen Bereichen häufig dieselben oder ähnliche Funktionen bzw. Verfahren8 und Ablaufstrukturen9 der Lenkung genutzt werden10, kann der Problematik der Vollständigkeit mit der Entwicklung einer möglichst umfassenden Klassifikation sowie einer darauf basierenden einheitlichen und vollständigen Spezifikationssprache für die Fertigungslenkung begegnet werden. Auf diese Weise können zwar nicht alle, aber der überwiegende Teil der auftretenden Fertigungslenkungsprobleme abgebildet werden. Die Beschreibung mit der Spezifikationssprache erleichtert die Vergleichbarkeit und Anwendbarkeit von Fertigungslenkungssystemen und erhöht ihre Flexibilität und Anpassungsfähigkeit. 4. 5. 6. 7. 8. 9. 10. Vgl. [DaWa97], Vorwort Vgl. [Pap90], S. 41 Vgl. [Wei94], S. 24 - auf die Problematik der Simulation wird im Anhang näher eingegangen. Vgl. [Sche91], S. 19 Dabei wird z.B. eine Unterscheidung in exakte und heuristische Verfahren vorgenommen. Ablaufstrukturen lassen sich z.B. in ereignis- und zeitorientierte Vorgehensweisen untergliedern. Die Unterschiede in der Fertigungslenkung bestehen in erster Linie im betrachteten Zeithorizont (Bestellzyklus, geplanter Zeitabschnitt), im Verhältnis zur Bearbeitungszeit der Vorgänge bzw. Aufträge (dabei gibt es Unterschiede von wenigen Sekunden bis mehreren Monaten zu bedenken) und der geforderten und aufgrund der zugrunde liegenden Daten möglichen Genauigkeit der Planung (Fein- bzw. Grobplanung oder auch bezüglich der Verfahren: exakte oder heuristische Verfahren). Einleitung 3 Ein entsprechender Gedanke bezogen auf die hierarchische Produktionsplanung, welche die Fertigungslenkung miteinschließt, findet sich auch bei Switalski: „Aufgrund der Vielfalt realer Fertigungsstrukturen wird es nie möglich sein, das Konzept der hierarchischen Produktionsplanung soweit zu formalisieren, daß ihre Anwendungen in Form von Standard-Software verwirklicht werden können. Daher wird die praktische Umsetzung auch weiterhin in Fallstudien erfolgen, wobei für typische Problemstellungen auf den einzelnen Planungsebenen, z.B. aggregierte Planung, Losgrößenplanung und Maschinenbelegungsplanung, durchaus auf Standardmodule zurückgegriffen werden kann“.11 Dieser Gedanke wird hier insoweit fortgeführt, daß die Klassifikation und die Spezifikationssprache eine einheitliche und allgemeine Darstellung derartiger Fallstudien ermöglichen und auf diese Weise die Umsetzung in eine Standard-Software entscheidend vereinfachen. Darüber hinaus kann die Spezifikationssprache auch zur Simulation der Fertigungslenkung bzw. von Teilbereichen der Fertigungslenkung genutzt werden.12 Außerdem erleichtert sie die Einbindung der mit ihr beschriebenen Problemfelder in den Unternehmensworkflow.13 Es ist der Ansatz dieser Arbeit, in einem ersten Schritt eine vollständige Klassifikation der Fertigungslenkung vorzunehmen. Diese gründet auf einer systematischen Analyse der Problematik und soll strukturelle, auf den Aufbau und den Ablauf bezogene, wie auch funktionale, auf den Ablauf und die Funktionen bezogene, Elemente in sich vereinen. Auf diese Weise bildet die Klassifikation die zugrunde liegenden allgemeinen Konzepte der Fertigungslenkung umfassend ab. Basierend auf dieser Systematik wird dann eine Spezifikationssprache entwikkelt, die es ermöglichen soll, die Fertigungslenkung und die von ihr genutzten Verfahren umfassend, auf uniforme Weise und problembereichsorientiert zu beschreiben. Diese Sprache soll sich durch ihre Anwendernähe und leichte Verständlichkeit auszeichnen und mit Hilfe einer Methodenbibliothek, in der Funktionen und Abläufe der Fertigungslenkung in einer höheren Programmiersprache standardmäßig hinterlegt sind, direkt in ein ablauffähiges Programm umgesetzt werden. Die Struktur der Arbeit gliedert sich folgendermaßen: In Kapitel 2 erfolgt zuerst eine Begriffserklärung der im folgenden verwendeten Fachtermini. Daran schließt eine Darstellung der Anforderung an die Klassifikation an. Um diese Klassifikation mit bereits bestehenden Ansätzen besser vergleichbar zu machen, werden ihre Merkmale und ihr Schema ebenfalls bereits an 11. Vgl. [Swi89], S. 144 Vgl. Abschnitt 8.1 Nutzung der Spezifikationssprache zur Simulation der Fertigungslenkung 13. Vgl. Abschnitt 8.2 Einbindung der Fertigungslenkung in den Unternehmensworkflow 12. 4 Kapitel 1 dieser Stelle definiert. Anschließend erfolgt eine Beschreibung der Anforderungen an die Spezifikationssprache. Kapitel 3 beinhaltet die Darstellung und Evaluierung des Standes der Technik bezüglich der herausgearbeiteten Anforderungen für die Klassifikation und die Spezifikationssprache. In Kapitel 4 erfolgt dann eine kurze Zusammenfassung der noch zu lösenden Probleme. Kapitel 5 enthält eine ausführliche Beschreibung der Syntax und Semantik der Spezifikationssprache und gibt einige Anwendungsbeispiele der Klassifikation und Spezifikationssprache für Standardverfahren der Fertigungslenkung mit unterschiedlicher Komplexität. Eine Zusammenfassung der erarbeiteten Ergebnisse und ein Ausblick auf noch zu bearbeitende Probleme bzw. Erweiterungen dieser Arbeit erfolgt in Kapitel 6. Im Anhang werden abschließend ein möglicher Einsatz der Spezifikationssprache zur Simulation der Fertigungslenkung sowie die Einbindung der Fertigungslenkung in den Unternehmensworkflow behandelt. Das Problem einer Spezifikationssprache für die Fertigungslenkung 2 5 Das Problem einer Spezifikationssprache für die Fertigungslenkung Gegenstand dieser Arbeit ist die Fertigungslenkung, ihre möglichst vollständige Klassifikation und ihre umfassende, anschauliche und verständliche Beschreibung mittels einer einheitlichen und robusten Spezifikationssprache.1 Die Basis dieser Klassifikation sowie der Sprache bilden ein Modell2 der Fertigung sowie die speziellen Abläufe und die Funktionen der Fertigungslenkung. Das Modell ist aus einer systemtheoretischen Betrachtung entstanden und bildet die Struktur sowie die Daten der Fertigung über der Zeit ab.3 Die Spezifikationssprache, die auf der Klassifikation aufbaut, soll neben der einheitlichen und problembereichsorientierten Darstellung der Fertigungslenkung eine direkte Umsetzung dieser Problematik in Algorithmen4, realisiert in einer ablauffähigen Programmiersprache, ermöglichen. Diese Spezifikationssprache ist notwendig, da es bisher keine standardisierte und vor allem allgemeine Sprache zur Beschreibung der Fertigungslenkung gibt5. Existierende Spezifikationssprachen umfassen zumeist nur Teilaspekte der Fertigungslenkung oder basieren auf bestimmten Planungs- bzw. Steuerungsstrategien, in denen sich in der überwiegenden Zahl der Fälle die fachliche Ausrichtung der Entwickler wiederspiegelt. Aus diesem Grund erzwingen sie häufig eine Modifikation und Anpassung der Fertigungslenkung bezüglich ihrer Vorgaben bzw. Philosophien. Nach einigen Begriffserklärungen werden im folgenden zuerst die Anforderungen an die Klassifikation für die Fertigungslenkung dargestellt und aufbauend auf ihnen die Klassifikationsmerkmale und ein Schema hergeleitet. Das Kapitel schließt mit der Darlegung der problembereichsunabhängigen und -abhängigen Anforderungen an die Spezifikationssprache für die Fertigungslenkung. 1. Vgl. Kapitel 1 Ein Modell ist ein bewußt konstruiertes Abbild der Wirklichkeit, welches auf der Grundlage einer Struktur-, Funktions- oder Verhaltensanalogie zu dem entsprechenden Original eingesetzt bzw. genutzt wird, um eine bestimmte Aufgabe zu lösen, deren Durchführung mittels direkter Operation am Original nicht oder zunächst nicht möglich oder zweckmäßig ist (vgl. [KlBu75]). 3. Vgl. die Darstellung von MFERT in Abschnitt 2.1.1 Fertigungslenkung 4. Algorithmen sind Verfahren zur Lösung von Problemen und zwar im Gegensatz zu Programmen allgemeine Lösungsverfahren. Sie bestehen aus einer eindeutig bestimmten Folge von Grundoperationen und Verfahrensschritten, die entweder von Anfang an festliegt oder jeweils von Ergebnissen vorangegangener Operationen abhängt (vgl. [Kur78], S. 23). 5. Vgl. [ScDa99] 2. 6 Kapitel 2 2.1 Begriffserklärungen Da die angesprochenen Begriffe in der Literatur unterschiedlich verwendet werden, erfolgt in diesem Abschnitt nun ihre Definition und Einordnung. 2.1.1 Fertigungslenkung In der Literatur wird häufig die Unterscheidung in Fertigungsplanung und -steuerung vorgenommen, wobei unter Fertigungsplanung auftragsunabhängige Maßnahmen, wie z.B. Arbeitsplanerstellung und Betriebsmittelplanung, und unter Fertigungssteuerung die auftragsbezogenen Maßnahmen, wie z.B. Auftragsfolgeplanung und Losgrößenbestimmung, die zur Durchführung eines Auftrags erforderlich sind, verstanden werden.6 Fertigungssteuerung umfaßt insoweit zwar die Teilaufgaben Planen, Überwachen und Steuern, jedoch nur, wenn diese auftragsabhängig sind.7 In dieser Arbeit werden alle Planungs-, Überwachungs- und Steuerungsaufgaben in der Fertigung unter der allgemeinen Aufgabe des Inkonsistenzausgleichs mit dem Begriff Fertigungslenkung zusammengefaßt. Hierbei dreht es sich aber nur um die Planung, Überwachung und Steuerung von Abläufen und Funktionen, fabrikplanerische Aspekte, wie z.B. Layoutplanung8 oder die Dimensionierung von Kapazitäten9, werden nicht mit berücksichtigt. Außerdem werden neben geplanten, also zukünftigen, auch reale Zustände10 mit in die Definition einbezogen. Die Inkonsistenzen können sich demnach sowohl auf zukünftige als auch auf reale, jetzige Zustände beziehen. Definition 1: Fertigungslenkung Die Fertigungslenkung ist die Aufgabe, für ein gegebenes Fertigungssystem - ausgehend von gegebenen Daten - Solldaten, die in sich und mit den Ausgangsdaten konsistent sind, für einen definierten, zielgerichteten Ablauf des Fertigungsprozesses11 festzulegen, dem Fertigungsprozeß vorzugeben und diesen auf Inkonsistenzen abzuprüfen. Die Fertigungs6. 7. 8. 9. 10. 11. Vgl. [Swi89] Vgl. [Röt91], S. 106 ff. Vgl. [Dan99], S. 245 ff. Vgl. [Kla99] Ein Zustand ist ein in der Zeit andauerndes Phänomen und kann jeweils zu einem Zeitpunkt festgestellt werden (vgl. [Gun85]). Außerdem ist ein Zustand eine Kennzeichnung von Elementen durch die augenblickliche Ausprägung ihrer Merkmale ([DaWa97], S. 19). Ein Prozeß ist ein sich über eine gewisse Zeit erstreckender Vorgang, also die Durchführung einer Aufgabe, bei dem etwas entsteht bzw. erzeugt wird (vgl. [Du96]). Das Problem einer Spezifikationssprache für die Fertigungslenkung 7 lenkung basiert auf Modellen der Fertigung12, die Informationen über augenblickliche Zustände, basierend auf Istdaten, und zukünftige Zustände, basierend auf Planungs- bzw. Prognosedaten, in der Fertigung enthalten. Ihr Funktionsumfang besteht darin, existierende und entstehende Inkonsistenzen zwischen diesen Zuständen der Fertigung unter Beachtung der durch die Fertigungsmodelle gegebenen Restriktionen13 und orientiert in Richtung definierter Ziele zu beseitigen.14 Der Leitgedanke der Fertigungslenkung ist somit der ungestörte Ablauf des Fertigungsprozesses. Die benötigten Materialien, Betriebs- und Hilfsmittel (Ressourcen) sollen zum richtigen Zeitpunkt in der richtigen Menge zur Verfügung stehen. Der Begriff Fertigungssystem, für das die Notwendigkeit der Lenkung15 besteht, ist in diesem Zusammenhang folgendermaßen zu verstehen: Definition 2: Fertigungssystem Ein Fertigungssystem ist die in eine Struktur gebrachte Gesamtheit der Abläufe, Funktionen und Informationen (Daten) einer Fertigung. Zur Modellierung der Organisations- bzw. Datenstruktur der Fertigungslenkung in einem Fertigungssystem werden Fertigungsmodelle genutzt, die einerseits die Informationen über augenblickliche und zukünftige Zustände der Fertigung und andererseits über gegebene Restriktionen enthalten, für die Lenkungsnotwendigkeit besteht. Definition 3: Fertigungsmodell Ein Fertigungsmodell ist eine Beschreibung eines Fertigungssystems, bestehend aus einer Beschreibung der Struktur, der Daten (Stamm- und Bewegungsdaten) sowie der augenblicklichen und zukünftigen Ereignisse16 der Fertigung. 12. 13. 14. 15. 16. Nicht zu verwechseln mit dem Begriff des „Produktionsmodells“, unter dem im Operations Research die Abbildung der Beziehungen zwischen Produktionsfaktoreinsatz, -verfahren und -ausbringung in physikalischen Größen verstanden wird. Restriktionen sind Vorschriften, welche die Unterscheidung legaler von illegalen Belegungen eines Modells mit Ereignissen ermöglichen. Nach [Schn96] unterteilen sie sich in aufgabenspezifische und modellinhärente (lokale, topologische, globale) Restriktionen. Vgl. [DaWa97], S. 3 Lenkungsnotwendigkeit liegt immer dann vor, wenn für gewisse Elemente des Produktionssystems nach Abschluß eines Teilschritts des Produktionsprozesses nicht genau feststeht, wann und wofür sie weiterverwendet werden, oder wenn es nicht gelingt, einen mit einheitlicher Taktzeit fortschreitenden Materialfluß aufzubauen und durch Bedarfsanmeldung aus nachfolgenden Fertigungsstufen eine temporäre Nichtverfügbarkeit entstehen kann (vgl. [DaWa97], S. 4). Ein Ereignis ist die Änderung eines Zustandes bezogen auf einen Zeitpunkt (vgl. [Gun85]). 8 Kapitel 2 Mit dem MFERT17, dem Modell der Fertigung, ist ein derartiges Modell bzw. ein derartiger Modellierungsansatz für die Beschreibung und Lenkung jeglicher Fertigungen mit beliebiger Detaillierung und wahlweisem Umfang entwickelt worden. Im folgenden soll davon ausgegangen werden, daß der zu entwickelnden Klassifikation und Spezifikationssprache ein zuvor erarbeitetes bzw. mit einem speziellen Editor erstelltes Modell der Fertigung in „MFERT-Format“ zugrunde liegt. Dieses wird von der Spezifikationssprache sowohl als Strukturbasis als auch als Datenbank genutzt. Der Modellierungsansatz MFERT erlaubt eine einheitliche Darstellung aller relevanten Informationen über den Produktionsprozeß, indem er die Produktionsstruktur und -dimensionen18 aufzeigt, das Prozeßverhalten anhand von Ereignissen, Material-19, Ressourcen-20 und Informationsflüssen exakt wiedergibt und alle, zum jeweiligen Zeitpunkt verfügbaren, Merkmale bzw. Zustände der Fertigung für Entscheidungen bereitstellt. MFERT ist somit ein generischer Ansatz, denn aus dem Modell sind beliebige Fertigungslenkungen, die Lösungsmenge des Problems Fertigungslenkung, ableitbar. Die graphische Repräsentation des Produktionsprozesses erfolgt im MFERT mit Hilfe eines zusammenhängenden, gerichteten Graphen21 entsprechend der Darstellung in Petri-Netzen.22 Dieser Graph stellt die prinzipiell möglichen Abläufe der Fertigung aus Sicht der Fertigungslenkung dar und strukturiert auf diese Weise den Produktionsprozeß gemäß der sogenannten Lenkungsnotwendigkeit. Er enthält zwei Sorten von Knoten und zwar Fertigungselementknoten23, die Material, Ressourcen (Fertigungsmittel) oder Fertigungsinformationen abbilden, und Fertigungsvorgangsknoten24, durch die mögliche Teilschritte des Produktionsprozesses, wie z.B. Veränderung der Geometrie, des Ortes, Objektzuordnungen usw., die unter Zeitverbrauch 17. 18. 19. 20. 21. 22. 23. 24. Vgl. [DaWi93a], [DaGe95], [Schn96] und [Hol98] - in früheren Publikationen wird dieses Modell MFST (Modell der Fertigungssteuerung) genannt. Als Dimensionen werden im MFERT die Zeitachse und der Produktionsprozeß bzw. die Richtung des Arbeitsfortschritts verstanden (vgl. [Schn96], S. 87). Unter Material werden hier sowohl Produkte in allen Fertigungsstufen (von Rohstoffen über Vorprodukte zu Fertigprodukten) als auch Aufträge verstanden. Die Ressourcen bzw. Betriebsmittel umfassen Menschen, Maschinen und Hilfs- bzw. Betriebsstoffe (z.B. geringwertige Zusatzstoffe oder Energie und Schmiermittel). Ein zusammenhängender, gerichteter Graph ist eine (endliche oder unendliche) Menge von Knoten, die durch eine (endliche oder unendliche) Menge von Kanten, die mit einer Richtung versehen sind, einander zugeordnet sind. Außerdem sind alle Knoten direkt oder indirekt durch Kanten miteinander verbunden (vgl. [MüMe73] oder [Run90]). Vgl. [MAS86] Ein Fertigungselement repräsentiert ein Element des Fertigungssystems in einem steuerungsrelevanten Zustand (vgl. [Hol98]). Ein Fertigungsvorgang repräsentiert einen konkreten Teilschritt des Produktionsprozesses und ist eindeutig identifizierbar (vgl. [Hol98]). Das Problem einer Spezifikationssprache für die Fertigungslenkung 9 vollzogen werden, dargestellt werden. Die Fertigungselementknoten stellen insoweit Zustände der Elemente des Produktionssystems zwischen zwei Fertigungsteilschritten dar. Kanten verlaufen im Modellgraphen nur zwischen zwei Knoten verschiedener Arten. Zur Hervorhebung der Unterschiede werden Fertigungselementknoten graphisch durch Dreiecke und Fertigungsvorgangsknoten durch Vierecke repräsentiert. Die Knoten können weiterhin unterschiedliche Detaillierungsstufen der jeweiligen Fertigungselemente oder -vorgänge beschreiben, deswegen sind sie Repräsentanten für Fertigungselement- und -vorgangsklassen.25 So kann ein Fertigungselement z.B. eine bestimmte Maschine oder auch eine Klasse bzw. Gruppe von gleichen Maschinen repräsentieren. Jede Knotenklasse besitzt spezielle Attribute, die zur Beschreibung der Basisstrukturen aber auch zur Angabe von Zeit-, Zustands- oder Mengenrestriktionen dienen. Außerdem können verschiedene Knotenklassen auf differierenden individuellen Zeitmodellen basieren, was zu unterschiedlich strukturierten Ereignisleisten26 führt. Auf diese Weise ist eine Betrachtung mehrerer Produktionsprozesse über der Zeit möglich. Abbildung 2-1 stellt ein solches, jedoch aus Gründen der Verständlichkeit und Anschaulichkeit etwas reduziertes MFERT-Modell für ein Flexibles Fertigungssystem dar. Ebenfalls zur Vermeidung von Unübersichtlichkeit ist in dieser Abbildung nur beispielhaft eine Ereignisleiste für einen Fertigungsvorgangsknoten wiedergegeben. Die Ereignisleiste repräsentiert das Zeitmodell und die zu bestimmten Zeitpunkten an diesem Knoten stattfindenden Ereignisse. In diesem Fall sind es zum Beispiel die Start- und Endereignisse der Bearbeitungsvorgänge an diesem Vorgangsknoten. Das Modell läßt sich in drei Bereiche unterteilen. Im oberen Teil der Abbildung wird der Transport des Materials aus dem Lager zu den Bearbeitungsstationen mittels eines Transportsystems dargestellt. In der Mitte befinden sich diese vier Bearbeitungsstationen, die vom Material linear durchlaufen werden, und im unteren Bereich ist der Kreislauf der an den Bearbeitungsmaschinen genutzten Werkzeuge abgebildet, der von diesen zum Werkzeugzentralspeicher und zurück führt. Die Fertigungslenkung erfolgt auf verschiedenen zeitlichen Ebenen, die abhängig von der Fristigkeit27 der jeweiligen Planung sind. Eine langfristige Planung findet im Rahmen der Ferti25. Diese Klassen setzen sich aus Fertigungselementen oder -vorgängen mit gleichen Merkmalen, Restriktionen und einer gemeinsamen Steuerungsproblematik zusammen. In [Hol98] werden diese Klassen als Kategorien bezeichnet. 26. In Ereignisleisten werden Ereignisse des geplanten oder bereits realisierten Produktionsprozesses eingetragen. Ereignisse können den Ein- und Austritt von Elementen in den Knoten, den Beginn und das Ende von Teilschritten sowie den Fluß von Elementen in Teilschritte und aus Teilschritten darstellen (vgl. [Schn96], S. 55). 27. Unter der Fristigkeit der Planung versteht man die Länge des Zeitraums, über den sich die Pläne erstrecken. 10 Kapitel 2 Vorgang Transport Ereignisleiste mit Modellereignissen Material Ressource Abbildung 2-1: Modell eines Flexiblen Fertigungssystems (vgl. [DaWa97], S. 570 ff.) gungslenkung nicht statt. Unter der mittelfristigen Fertigungslenkung versteht man eine Festlegung von Mengen- und Zeitdaten auf Basis einer Mengen- und Terminplanung in einem groben Zeitraster. Die kurzfristige Fertigungslenkung hingegen legt mit Hilfe von detaillierten Losgrößenrechnungen (-bestimmungen) und Reihenfolgeplanungen (Maschinenbelegungsplanungen28) Mengen- und Zeitdaten für ein detaillierteres Zeitraster fest.29 Weiterhin findet die Fertigungslenkung auf unterschiedlichen strukturellen bzw. hierarchischen Ebenen des Modells statt. In diesen Teilbereichen des Gesamtsystems werden verschiedene Lenkungsstrategien auf Basis unterschiedlicher Zeitmodelle verfolgt. Ein Beispiel für diese Strukturierung ist die Unterteilung der Fertigung in einen verbrauchsorientierten Teil, in dem die Produkte bzw. Vorprodukte mit einem größeren und längerfristig gesicherten Bedarfsverlauf gefertigt werden, und einen bedarfsorientierten Teil, in dem die Fertigung durch Kundenaufträge ausgelöst wird und nur für einen ganz bestimmten Bedarf produziert.30 Ebenso kann sich die Fertigungslenkung auch nur auf einen Teil des Gesamtmodells beziehen, wenn z.B. aufgrund einer kurzfristigen Änderung oder Störung das Net-change-Prinzip31 Anwendung findet, mit dem nur dieses Teilmodell neu geplant bzw. gesteuert wird. 28. Eine Maschinenbelegungsplanung hat die Aufgabe, n Aufträge oder Jobs auf m Maschinen einzuplanen. Dabei müssen die Auftrags- und Maschinencharakteristika sowie die Zielsetzung der Planung beachtet werden. 29. Vgl. [Mer95] Man spricht hierbei auch von Feinplanung. 30. Vgl. [DaWa97], S. 260 ff. 31. Vgl. [DaWa97], S. 321 Das Problem einer Spezifikationssprache für die Fertigungslenkung 11 2.1.2 Fertigungslenkungsverfahren Auf den beschriebenen zeitlichen und strukturellen Ebenen des Modells sind demnach unterschiedliche Strategien und daraus resultierend auch verschiedene Verfahren zur Fertigungslenkung anzutreffen. Bevor auf diese spezielle Form der Verfahren eingegangen wird, soll die allgemeine Bedeutung des Begriffs geklärt werden. Definition 4: Verfahren Ein Verfahren ist die Art und Weise der Durch- bzw. Ausführung von etwas. Äquivalent dazu kann auch vom Vorgehen bzw. Handeln nach einer bestimmten Methode gesprochen werden.32 Was unter dem Begriff Fertigungslenkungsverfahren in diesem Zusammenhang zu verstehen ist, verdeutlicht die folgende Definition. Definition 5: Fertigungslenkungsverfahren Ein Verfahren zur Fertigungslenkung ist eine festgelegte oder erzeugte Folge von Transformationen der Solldaten eines Fertigungsmodells, mit der Inkonsistenzen zwischen den Zuständen und den Zielen der Fertigung unter Beachtung der Restriktionen des Fertigungsmodells vermieden werden.33 Die Verfahren zur Fertigungslenkung operieren demzufolge auf den augenblicklichen und zukünftigen Zuständen des Fertigungsmodells und transformieren diese, so daß sie den durch die Fertigungsaufgabe gestellten Anforderungen, nämlich der Konsistenz, den Fertigungsrestriktionen und den Zielen, genügen.34 Ihre Operationen gliedern sich in zwei Teilaufgaben: Einerseits bestimmen sie den Ablauf des Verfahrens respektive der Verfahren oder die Reihenfolge, in der die Knoten des Fertigungsgraphen und die Zeitpunkte des Planungshorizonts zur Aufhebung der Inkonsistenzen abgearbeitet werden, und andererseits führen sie die Funktionen an den einzelnen Knoten bzw. Knotengruppen unter Beachtung der dort vorhandenen Prinzipien und Restriktionen durch.35 32. Vgl. [Du96] Vgl. [Schn96], S. 9 f. 34. Vgl. [DaWa97], S. 3 35. Nach [DaWi93a] ist der Ablauf Aufgabe des globalen Managers, wohingegen die Funktionen lokal an den Knoten durchgeführt werden (vgl. Abschnitt 3.1.3 Klassifikationen für Fertigungslenkungsfunktionen). 33. 12 Kapitel 2 2.1.3 Klassifikation Grundlage einer Spezifikation der Fertigungslenkung bildet eine Klassifikation dieses Problembereichs. Bevor indessen der Begriff Klassifikation erklärt werden kann, ist es nötig, seinen Hauptbestandteil „Klasse“ zu definieren. Definition 6: Klasse Eine Klasse ist eine Gesamtheit von Individuen mit gemeinsamen, sich von anderen unterscheidenden Merkmalen.36 Insoweit sind in der vorliegenden Arbeit die Problemklassen der Fertigungslenkung, wie z.B. Ablaufplanungs- oder Bedarfsermittlungsprobleme, relevant. Hieraus ergibt sich nun für eine Klassifikation die folgende Definition: Definition 7: Klassifikation Eine Klassifikation ist eine eindeutige Abbildung (Einteilung) einer Menge von Objekten (Gesamtheit von Individuen) aufgrund eines oder mehrerer gemeinsamer Merkmale in Klassen (Gruppen). Eine Klassifikation teilt folglich eine Gesamtheit von Individuen in Gruppen auf, wobei in dieser Arbeit davon ausgegangen wird, daß jedes Individuum unter Beachtung aller Klassifikationskriterien nur genau einer Gruppe zugeordnet werden kann37, die Gruppen also disjunkt sind. In der Literatur wird der Begriff „Klassifikation“ hingegen auch für den Prozeß der Suche nach einer derartigen Klasseneinteilung38, ebenso wie für eine Einteilung in nicht disjunkte Gruppen verwendet. Jede Klassifikation ist auf ein bestimmtes Ziel ausgerichtet, d.h. sie genügt gewissen Anforderungen, von denen auch die jeweils gewählten Merkmalsausprägungen abhängen.39 Da die hier definierte Klassifikation darauf ausgerichtet ist, die grundlegenden Konzepte der Fertigungslenkung herauszustellen und zu systematisieren, müssen noch die Begriffe Fertigungslenkungsfunktion und -ablaufstruktur bzw. -abläufe für diesen speziellen Zusammenhang erläutert werden. Eine Funktion wird allgemein wie folgt definiert: 36. Vgl. [KlBu75] und [Du96] Da die Klassifikationskriterien hierarchisch sind, resultiert eine Klassifikation, die nicht alle Kriterien nutzt, in teilweise nicht disjunkten Gruppen. 38. Vgl. [Sod74], S. 10 f. 39. Vgl. [Heb89], S. 32 ff. 37. Das Problem einer Spezifikationssprache für die Fertigungslenkung 13 Definition 8: Funktion Eine Funktion ist die Transformation von Material, Information oder Energie aus irgendeinem zeitlichen, stofflichen, strukturellen oder örtlichen Anfangszustand in einen anderen Endzustand.40 Prozesse stellen die zeitliche Ausführung von Funktionen dar. Funktionen werden an bestimmte Funktionsträger gebunden, welche die Elemente der Modellwelt darstellen. Darauf aufbauend ist eine Fertigungslenkungsfunktion folgendermaßen definiert: Definition 9: Fertigungslenkungsfunktion Eine Fertigungslenkungsfunktion ist eine Zustandstransformation in einem Fertigungsmodell, mit der Inkonsistenzen unter Beachtung der Restriktionen des Fertigungsmodells und der Ziele der Fertigungslenkung beseitigt oder vermieden werden.41 Demzufolge läßt sich ein Fertigungslenkungsverfahren, wie es bereits oben definiert wurde, aus Fertigungslenkungsfunktionen zusammensetzen, wobei jedoch die Ablaufstruktur dieser Funktionen eine entscheidende Rolle spielt. Die genaue Bedeutung des Begriffs Ablaufstruktur in diesem Zusammenhang zeigt die folgende Definition. Definition 10: Ablaufstruktur Eine Ablaufstruktur stellt die räumliche, zeitliche oder sachliche Strukturierung von Funktionen dar. Somit repräsentiert die Ablaufstruktur das potentielle Verhalten eines betrachteten Fertigungssystems.42 Gegenstand der Organisation der Ablaufstruktur ist mithin die Untersuchung und Gestaltung von Raum-, Zeit- und Gruppierungsbeziehungen in der Fertigung und Fertigungslenkung. Hieraus ergibt sich für den Begriff der Fertigungslenkungsstruktur: 40. Vgl. [Pap90], S. 63 - Allgemeiner gilt: eine Funktion ist eine eindeutige Abbildung eines Definitionsbereichs in einen Wertebereich (vgl. [FeSi98]). 41. Vgl. [Fel96], S. 6 oder eine inhaltlich gleichwertige Definition bei [Schn96], S. 120 f. 42. Vgl. [DaWa97], S. 60 ff. 14 Kapitel 2 Definition 11: Fertigungslenkungsstruktur Die Fertigungslenkungsstruktur ist die Ablaufstruktur der Fertigungslenkung, d.h. sie beschreibt die räumliche, zeitliche und sachliche Strukturierung der Fertigungslenkungsfunktionen. Unter Abläufen werden in dieser Arbeit Vorgehensweisen auf Basis einer Ablaufstruktur verstanden. Diese Ablaufstruktur respektive Fertigungslenkungsstruktur basiert auf dem vorgegebenen Zeitmodell und weiteren Festlegungen bezüglich der Fertigungslenkung, wie z.B. der Lenkungsstrategie. Mögliche Ablaufstrukturen in der Fertigung, die sich gleichzeitig auch auf die Fertigungslenkung auswirken, sind z.B. Erzeugnisgliederungen nach verschiedenen Gesichtspunkten, Stücklisten/Teileverwendungsnachweise43, Arbeitspläne44, Netzpläne45 u.a. Da die Auflösung von Inkonsistenzen an einer Stelle eines Produktionsnetzwerkes meistens Inkonsistenzen an einer anderen Stelle hervorruft, gehen viele Fertigungslenkungsverfahren, wie z.B. die Materialbedarfsplanung (MRP)46, entlang dieser Inkonsistenzen vor und beseitigen sie. 2.1.4 Spezifikationssprache Formale Spezifikationen47 respektive Beschreibungsformen sind gerade im Bereich der Softwareentwicklung von besonderer Wichtigkeit, da bei der Durchführung von umfangreichen Softwareprojekten die eindeutige Festlegung der zu lösenden Aufgabenstellung unabhängig von irgendwelchen Lösungsansätzen ein großes Problem darstellt. Allerdings hat der Begriff „Spezifikation“ in der Softwaretechnik keine derart präzise Bedeutung wie in den Ingenieurwissenschaften, denn er wird in verschiedenen Zusammenhängen geringfügig unterschiedlich 43. 44. 45. 46. 47. Eine Stückliste ist eine listenförmige Darstellung einer Erzeugnisstruktur in analytischer Sortierfolge. Sie gibt an, welche Gruppen und Einzelteile mit welcher Anzahl in einem Erzeugnis oder einer Baugruppe enthalten sind. Der Teileverwendungsnachweis hat dagegen eine synthetische Sortierfolge. Es gibt unterschiedliche Formen der Stückliste bzw. des Teileverwendungsnachweises (vgl. [DaWa97], S. 225 ff., [Kur93], [Swi89], u.a.). Arbeitspläne beinhalten die genauen Vorschriften (Arbeitsanweisungen), nach denen ein Produkt hergestellt wird. Demzufolge geben sie die Zuordnung zu den einzelnen Fertigungsmitteln an (vgl. [Kur93], S. 95). Ein Netzplan ist eine Darstellung von Vorgängen in ihren zeitlichen Abhängigkeiten, wobei beachtet werden muß, daß Netzpläne für eine einmalige Ausführung der abgebildeten Vorgänge konzipiert sind. Die Beschreibung erfolgt mit Knoten und Pfeilen, wobei die Knoten sowohl einen Vorgang als auch ein Ereignis abbilden können. Im Vordergrund steht der Aspekt der (Projekt-)Steuerung (vgl. [Fah95], S. 19, [DoDr95], S. 86 ff., [Zäp82], S. 223 ff., [Cor98], S. 459 ff., u.a.). Material Requirements Planning (vgl. [Orl75]) Der Begriff Spezifikation kommt von dem lateinischen Begriff specificatio, was Auflistung oder Verzeichnis bedeutet (vgl. [Du96]). Das Problem einer Spezifikationssprache für die Fertigungslenkung 15 verwendet.48 In vielen Fällen wird das Wort „Spezifikation“ in der Softwareentwicklung nämlich auch gebraucht, um einen Entwurf bzw. eine Planung auf aggregierter Ebene zu bezeichnen; der Unterschied soll indessen der sein, daß eine Spezifikation beschreibt, was genau getan werden muß, wohingegen ein Entwurf definiert, wie etwas getan werden muß.49 Der Entwurf gibt somit genauere Vorgaben, während die Spezifikation nur einen neutralen Rahmen vorgibt, der unterschiedliche Implementierungen erlaubt. Spezifikationen können auf ganz unterschiedliche Weisen repräsentiert werden, wie z.B. mit natürlicher Sprache, graphischem oder strukturiertem Text. Insoweit stellen auch Modelle, die mit Modellierungswerkzeugen erstellt worden sind, wie z.B. hierarchischen Netzplänen oder Petri-Boxen, Spezifikationen dar. Zum Teil wird der Begriff Spezifikation auch für den Entstehungsprozeß der Anforderungsbeschreibung, d.h. als Rahmen für die Erarbeitung und Festlegung der Anforderungen verwendet50, wie z.B. bei der Erstellung eines Softwaresystems. Abhängig von ihrer jeweiligen Beschaffenheit bzw. der Aufgabe die sie erfüllen soll, ist eine Spezifikation in vielen Fällen auf eine ganz bestimmte Benutzergruppe zugeschnitten. Natürliche Sprachen neigen im allgemeinen zu Mehrdeutigkeiten. Da es jedoch zu einer Problemstellung mehrere Lösungen geben kann, ist es wichtig, eine Möglichkeit zu haben, Probleme unabhängig von Lösungsalgorithmen eindeutig und präzise zu formulieren.51 Dieses ist häufig der Grund für die Nutzung bzw. Entwicklung von Spezifikationssprachen, die den Vorteil eines genauen Zuschnitts auf die problembereichsspezifischen Anforderungen bieten. Als Voraussetzung für den Aufbau einer derart formalisierten Sprache für ein bestimmtes Wissenschaftsgebiet bedarf es allerdings der genauen Kenntnis und Formulierung ihrer logischen Struktur.52 Hieraus ergibt sich die nun folgende Definition für Spezifikationssprachen. Definition 12: Spezifikationssprache Eine Spezifikationssprache ist ein Darstellungsmittel zur graphischen und/oder sprachlichen Festlegung (Spezifikation) von Systemen.53 48. 49. 50. 51. 52. 53. Vgl. [GJM91], S. 151 - dort wird zwischen Requirements, Design und Module Specification unterschieden. Vgl. [LaSc85], S. 271 Vgl. [HeBu87], S. 132 Vgl. [Zei91], S. 145 Vgl. [KiBu75] Vgl. [DuIn89] 16 Kapitel 2 Spezifikationssprachen beschreiben detailliert die Funktionen der einzelnen Moduln54 von Systemen und ihre Beziehungen untereinander. Bisher dienen Spezifikationssprachen vorwiegend der Ausformulierung und Darstellung von erwünschten oder geforderten Eigenschaften von Systemen. Aufgrund der fortschreitenden Programmiertechnik können allerdings immer mehr Sprachelemente interpretiert, simuliert oder sogar direkt in imperative Programmiersprachen55 übersetzt werden. Darüber hinaus bildet die Spezifikation den Bezugspunkt für die Korrektheit des dokumentierten Programms bzw. der Implementierung und kann damit als Grundlage der Verifikation und Validierung genutzt werden. Dabei soll sie jedoch unabhängig von den Denkweisen einer Implementierung sein, um flexibel in verschiedensten Problemsituationen eingesetzt werden zu können. Da die Funktionalität der Systeme mit einer Programmiersprache auf einer detaillierteren Ebene beschrieben werden kann, ist die Spezifikationssprache ihrerseits auch als Metasprache56 zu verstehen. Sie bildet die Basis bzw. den Rahmen einer Implementierung der Systemfunktionalität und an ihr respektive den in ihr beschriebenen Anforderungen kann das entwikkelte Programm evaluiert werden.57Die Architektur einer Spezifikationssprache beschreibt die notwendigen Komponenten dieser Sprache und ihre Verknüpfung. Ihre Terminologie umfaßt folgende Teilbereiche: • Semantik • Syntax - Lexikon - Grammatik - Präsentation Die Semantik legt die inhaltliche Bedeutung der verschiedenen Sprachkomponenten fest und stellt somit die Beziehung zwischen dem darzustellenden Sachverhalt - der Information - und 54. Moduln sind Einzelbausteine eines Gesamtsystems, die unabhängig voneinander realisierbar und in ihrem Zusammenwirken überschaubar sind sowie eine klar definierte Funktionalität besitzen (vgl. [DuIn89]). 55. Programme in imperativen Sprachen bestehen aus einer Folge von Befehlen. Wesentlich ist darüber hinaus das Variablenkonzept. In ihnen spiegelt sich deutlich die Architektur des Von-Neumann-Rechners wieder. Programmiersprachen sind Sprachen zur Formulierung von Rechenvorschriften, d.h. von Datenstrukturen und Algorithmen, die von einem Computer ausgeführt werden können (vgl. [DuIn89]). 56. Eine Metasprache ist eine Sprache, in der über eine andere Sprache gesprochen wird (Unterscheidung zwischen Objekt- und Metasprache - Theorie der semantischen Stufen). [KlLi76] 57. Insoweit ist eine Spezifikationssprache vergleichbar mit dem Meta-Modell von Ferstl und Sinz, welches das zur Spezifikation von Modellsystemen verfügbare Begriffsystem festschreibt (vgl. [FeSi98], S. 120). Das Problem einer Spezifikationssprache für die Fertigungslenkung 17 der gewählten sprachlichen Repräsentationsform her. Ihre Darstellung erfolgt in einer Syntax, die sich aus mindestens einem Lexikon, einer Grammatik und einer Präsentation zusammensetzt. Im Lexikon wird eine formale Definition der Sprachsymbole bzw. -konstrukte mit ihrer Deutung bezüglich der Semantik gegeben. Die Grammatik beinhaltet die Regeln zur Kombination der Sprachkonstrukte des Lexikons (Verknüpfungsregeln) und die Präsentation stellt dar, wie die Konstrukte abgebildet werden. In den Sprachwissenschaften wird einer Sprache noch eine weitere Dimension zugeordnet und zwar die Pragmatik. Diese umfaßt Kriterien und Anforderungen, anhand derer die Eignung einer Sprache für einen bestimmten Verwendungszweck gemessen werden kann.58 In Bezug auf die Aufgabe einer Spezifikationssprache hat demnach die Pragmatik eine besondere Bedeutung. 2.2 Klassifikation für die Fertigungslenkung Als Basis der zu entwickelnden Spezifikationssprache dient eine Klassifikation der Fertigungslenkung, welche die allgemeinen zugrunde liegenden Konzepte der Fertigungslenkung darstellen und auf diese Weise die Abbildung in der Spezifikationssprache erleichtern und beschleunigen soll. Die Klassifikationsmerkmale leiten dabei hin auf die Konstrukte der Spezifikationssprache, deren Entwicklung Hauptaufgabe dieser Arbeit ist. Allerdings müssen die Klassifikationsmerkmale einen anderen und zwar einen geringeren Detaillierungsgrad als ihre Pendants in der Spezifikationssprache besitzen, da es bei ihnen um eine nicht ins Einzelne gehende Einteilung in Klassen zur Vereinfachung der Spezifikation und kein individuelles und detailliertes Herausarbeiten der jeweiligen Fertigungslenkungsproblematik geht. Die Klassifikation ist aus diesem Grund auch nicht dazu bestimmt, Fertigungslenkungsverfahren genauestens zu spezifizieren, sondern sie bietet eine Einordnung zu lösender Entscheidungsprobleme sowie der zugrunde liegenden Daten- und Ablaufstrukturen. Im folgenden werden nun zuerst die Anforderungen an diese Klassifikation dargestellt und anschließend wird bereits in diesem Kapitel eine Systematik hergeleitet, die im Kapitel 3 bestehenden Klassifikationsansätzen der Fertigungslenkung gegenübergestellt wird. 2.2.1 Anforderungen an eine Klassifikation für die Fertigungslenkung Die Klassifikation der Fertigungslenkung hat die Aufgabe, die spezifischen Kriterien der Fertigungslenkung, d.h. entsprechend Definition 1 die Merkmale des Fertigungssystems und der 58. Vgl. [LeMa94] 18 Kapitel 2 darauf ablaufenden Fertigungsprozesse, für die Lenkungsbedarf besteht, umfassend abzubilden. Insoweit stellt sie eine Verknüpfung zwischen Klassifikationen von Fertigungslenkungsstrukturen, -abläufen und -verfahren bzw. -funktionen dar, bildet eine Basis für die zu entwikkelnde Spezifikationssprache und vereinfacht deren Anwendung. Die Kriterien der Klassifikation beruhen demzufolge sowohl auf faktor-, prozeß- und produktbezogenen Eigenschaften59 der Fertigung, den gegebenen Daten des Fertigungssystems,60 als auch den unterschiedlichen Fertigungslenkungsabläufen. Hinzu kommen noch die Eigenschaften und Vorbedingungen der Fertigungslenkungsfunktionen, den Vorgaben für den Fertigungsprozeß. Allerdings dürfen die Klassifikationsmerkmale nicht zu detailliert sein, um nicht auf diese Weise eine Gruppen- bzw. Klassenbildung, was ja der eigentliche Zweck der Klassifikation ist, zu verhindern und nur zur Bildung von einelementigen Mengen zu führen. Genau aus diesem Grund beziehen sich die Klassifikationskriterien auch nicht auf spezielle Fertigungslenkungsverfahren bzw. -methoden61, sondern auf die zugrunde liegende Fertigungsstruktur, die Abläufe und die Funktionalität. Die beiden Bereiche Struktur und Funktionalität der Fertigungslenkung bedingen sich dabei durch vielfältige Einflußnahmen gegenseitig. Jedoch soll die hier zu entwickelnde Systematik auf jeden Fall eine natürliche Klassifikation sein, d.h. die Implementierungsdetails oder die Realisierung der Kriterien werden nicht mitbetrachtet. Es wird weiterhin davon ausgegangen, daß die Fertigungslenkung zur Reduktion der Komplexität in einzelne Teilaufgaben (hierarchisch) zerlegt werden kann62, die wiederum anhand der oben benannten Merkmale klassifiziert werden können. Vorrangige Aufgabe der Klassifikation sollen leichte Verständlichkeit und Anwendbarkeit sein, die durch gute Übersichtlichkeit und eine begrenzte aber trotzdem umfassende Mächtigkeit (Umfang) der Systematik gewährleistet werden können. Auf diese Weise soll es dem Anwender ermöglicht werden, seine spezielle Fertigungslenkungsproblematik zu klassifizieren und anschließend in der Spezifikationssprache beschreiben zu können. Es gilt dabei einen Merkmalsraum zu definieren, der sämtliche Klassifikationsmerkmale eindeutig bestimmt, um auf 59. Faktorbezogene Eigenschaften sind z.B. die Qualifikation der Arbeitskräfte oder die Flexibilität des Einsatzes von Produktionsfaktoren. Prozeßbezogene Eigenschaften sind z.B. die Anzahl der zu durchlaufenden Produktionsstufen oder die vorherrschende Produktionstechnologie. Produktbezogene Eigenschaften sind z.B. die Auslösung der Produktion oder der Grad der Spezifizierung der Produkte (vgl. [KiSt93], S. 21 ff.). 60. siehe Definition 1 61. Methoden sind Funktionen auf den Basisstrukturen, die Zustandsänderungen bewirken (Zustandübergänge). Allgemein wird unter einer Methode ein System von Vorschriften bzw. ein auf einem Regelsystem aufbauendes Verfahren zur Erfüllung von Informations- bzw. Verarbeitungsaufgaben (Erlangung von Erkenntnissen oder praktischen Ergebnissen) verstanden (vgl. [Du96]). 62. Vgl. [Sche91], S. 14 ff. Das Problem einer Spezifikationssprache für die Fertigungslenkung 19 diese Weise Zugehörigkeits- und damit Einordnungsprobleme zu vermeiden.63 Hieraus ergibt sich direkt, daß die einzelnen Klassen homogen und disjunkt sein müssen, um Überschneidungen zu vermeiden. Elemente einer Klasse sollen einander möglichst ähnlich (interne Homogenität), Elemente unterschiedlicher Klassen dagegen möglichst unähnlich (externe Isolierung) sein.64 So kann eine Fertigungslenkungsproblematik schnell und eindeutig zugeordnet werden. Wichtige weitere Eigenschaften der Klassifikation sollen eine exhaustive Abbildung der Inhalte (Vollständigkeit), denn es sollen keine möglichen Fertigungslenkungsprobleme ausgelassen werden, sowie eine hierarchische Struktur zur Erleichterung der Einteilung und im folgenden dann auch der Umsetzung in die Spezifikationssprache sein. Letzteres Merkmal vereinfacht die Einordnung einer speziellen Fertigungslenkungsproblematik in der Klassifikation, da die Relevanz der Kriterien auf der obersten Hierarchieebene am höchsten ist und somit die Entscheidung bezüglich der Einordnung erleichtert. Außerdem hebt die Hierarchie die Zusammenhänge zwischen den Klassen hervor. Insgesamt soll es für den Anwender anhand einer diesen Anforderungen entsprechenden Klassifikation möglich sein, seine Fertigungslenkungsproblematik mit anderen zu vergleichen65 und Gemeinsamkeiten sowie Unterschiede herauszustellen. Außerdem soll die Klassifikation die Entscheidungsbasis dafür bilden, wie die Fertigungslenkung in einem bestimmten Fall zu erfolgen hat und welches bzw. welche Verfahren66 angewendet werden können. Damit unterstützt sie die Entwicklung67 und Bewertung von alternativen Fertigungslenkungen.68 All dieses findet jedoch auf einer abstrakteren Ebene statt. Zur Durchführung dieses Entscheidungsprozesses bedarf es darüber hinaus noch einer genauen Systematisierung und gleichzeitigen Bewertung der Fertigungslenkungsverfahren bezüglich der jeweiligen Situation, wie sie in [Schn96] zu finden ist. Weiterhin ist eine Methode zur Erstellung dieser Verfahren aus Methodenbausteinen, wie sie bei [Fel96] dargestellt wird, ein nützliches Hilfsmittel. Zugleich, und das ist in diesem Zusammenhang auch ihre Hauptfunktion, soll die Klassifikation einen ide63. 64. 65. 66. 67. 68. Vgl. [Sod74], S. 12 Ebenda S. 119 ff. Der Anwender könnte auch auf Grundlage der Klassifikation ein sogenanntes Benchmarking vornehmen, um seine Fertigungslenkung zu vergleichen und zu bewerten. Allerdings ist dafür eine Bewertung der verschiedenen Klassifikationsmerkmale nötig. Mit Verfahren sind hier spezielle Verfahren zur Lösung von Entscheidungsproblemen und zwar kombinatorische Optimierungsprobleme, wie z.B. Zuordnungs- oder Reihenfolgeprobleme, gemeint (vgl. [DoDr95], S. 6). Indem die Klassifikation die entscheidenden Merkmale systematisiert und somit einen Überblick schafft, ermöglicht sie auch neue Kombinationen dieser Ausprägungen. Vgl. Abschnitt 8.1 Nutzung der Spezifikationssprache zur Simulation der Fertigungslenkung 20 Kapitel 2 alen Ausgangspunkt für die Darstellung der Sachverhalte in der Spezifikationssprache und damit eine Vereinfachung der Anwendung dieses Beschreibungsmittels bieten. 2.2.2 Klassifikationsmerkmale der Fertigungslenkung Eine Klassifikation ist demnach immer eine Einteilung von Elementen bezüglich bestimmter Kriterien, von denen der Wert der Klassifikation, d.h. ihr Nutzen für das behandelte Problem, entscheidend abhängt. Dementsprechend gilt es nun zuerst, diese Kriterien festzulegen und zu beschreiben. Dabei soll der Forderung nach einem begrenzten Umfang der Systematik und homogenen Klassen besondere Beachtung geschenkt werden. Angelehnt an die Klassifikation von Fertigungssteuerungsaufgaben von Schneider69 soll hier ebenfalls anstelle einer Liste von Merkmalen und deren Ausprägungen das komplexere Konstrukt eines Repräsentanten zur Beschreibung einer Klasse genutzt werden, um so die Bildung von vielen und sehr unterschiedlich großen Klassen zu vermeiden. Die Darstellung in Form von Repräsentanten trägt außerdem auch entscheidend zur Verständlichkeit und Übersichtlichkeit der Klassifikation bei und erleichtert somit die Anwendbarkeit. Zur Gliederung des Repräsentanten bietet sich die Strukturierung des in Abschnitt 2.1.1 Fertigungslenkung dargestellten Modells der Fertigung an. Eine Aufteilung der Fertigungslenkung, die sich an Knoten oder Knotengruppen orientiert, kann eine teilweise Unabhängigkeit der einzelnen Abläufe und Funktionalitäten gewährleisten. Eine vollständige Unabhängigkeit kann und soll jedoch nicht erreicht werden, da wichtige Abhängigkeiten und Einflußnahmen zwischen den einzelnen Teilbereichen bestehen. Die Fertigungslenkung läßt sich so knoten- oder knotengruppenbezogen beschreiben, was eine intuitive Darstellung erlaubt. Daher wird im folgenden von einer fertigungsstrukturbezogenen Verteilung ausgegangen und es werden Abläufe und Funktionen, wie sie an Knoten oder Knotengruppen auftreten, untersucht. Somit liegt hier keine funktional orientierte oder dem Objektprinzip folgende Zerlegung der Fertigungslenkung, wie sie in Zusammenhang mit der Dezentralisierung der Fertigung und der Einführung von Fertigungsinseln diskutiert wurde70, sondern eine an der Fertigungslenkungsstruktur orientierte Gliederung vor. Sie vermeidet einen hohen Koordinationsaufwand zwischen den Produkten aber auch zwischen den jeweiligen Funktionen über die Produktgrenzen hinweg. Auf Basis des Modells der Fertigung läßt sich die Struktur der Fertigungslenkung anhand eines Graphen darstellen, der diese indessen ohne die im Modell enthaltenen Fertigungsdaten, die 69. 70. Vgl. [Schn96], S. 194 ff. Vgl. [Schee91], S. 16 ff. Das Problem einer Spezifikationssprache für die Fertigungslenkung 21 Attribute der Knoten (und Kanten), abbildet. Dieser Graph kann hierarchisch in Teilgraphen zerlegt werden.71 Die zugrunde liegenden Dimensionen dieses Modells sind der Produktionsprozeß bzw. Fertigungsfortschritt, die Zeit(-achse) und die Produkte bzw. Aufträge.72 Zur umfassenden Beschreibung der Fertigungslenkung bedarf es außerdem noch einer Darstellung der Abläufe und der Funktionalität in dieser speziellen Fertigung bzw. auf diesen Teilgraphen. Die Klassifikation der Fertigungslenkung beruht deswegen auf einer Einteilung in die Merkmale Fertigungslenkungsstruktur, -abläufe und -funktionen, wie sie in Abbildung 2-2 verdeutlicht wird, wobei der Forderung nach einer hierarchischen Vorgehensweise folgend, zuerst eine Systematisierung nach dem Merkmal Fertigungslenkungsstruktur vorgenommen wird. Darauf basierend werden anschließend die Abläufe und Funktionen klassifiziert. Die verschiedenen Ausprägungen dieser Klassifikationsmerkmale werden im folgenden näher beschrieben. Fertigungslenkung Produkte Zeit Fertigungsfortschritt Struktur Abläufe Funktionen Abbildung 2-2: Klassifikation der Fertigungslenkung 71. Eine Definition des Begriffs Teilgraphen erfolgt im nachfolgenden Abschnitt; vgl. außerdem die Definition der Mikro- und Makrostrukturen in [Schn96], S. 194 ff. 72. Vgl. [Schn96], S. 87 f., [Fel96], S. 162 f. 22 Kapitel 2 2.2.2.1 Klassifikationsmerkmal Fertigungslenkungsstruktur Der auf Basis des Modells der Fertigung erstellte bzw. in diesem Modell enthaltene Fertigungsgraph läßt sich, wie oben bereits angesprochen, in Teilgraphen weiter untergliedern. Diese sind folgendermaßen definiert: Definition 13: Teilgraph Ein Teilgraph73 entsteht durch die Einschränkung des Fertigungsgraphen auf eine Teilmenge seiner Knoten und der sie verbindenden Kanten. Für diese Teilmenge muß weiterhin gelten, daß sie mindestens aus einem Knoten besteht, der eine bestimmte Funktionalität besitzt. Die Aufgliederung des Fertigungsgraphen in Teilgraphen kann demnach genau so lange fortgeführt werden, bis die einzelnen Teilgraphen nur noch aus einem Knoten bestehen, der allerdings eine spezifische Funktionalität besitzen muß. Für die hier entwickelte Klassifikation soll indessen als kleinste Teilmenge des Graphen, bis zu dem dieser zerlegt werden soll, der Strukturprototyp gewählt werden. Dieser ist in Anlehnung an [Fel96]74 wie folgt definiert: Definition 14: Strukturprototyp Ein Strukturprototyp beschreibt das Grundmuster der Fertigungslenkungsstruktur unter Vernachlässigung möglicher mehrfacher Wiederholungen und stellt damit eine redundanzfreie75 Repräsentation wichtiger Struktur- und Funktionseigenschaften dar. Er setzt sich zusammen aus einem Fertigungsvorgangsknoten und einer beliebigen Menge an Fertigungselementknoten, die mit diesem Knoten verbunden sind und im Falle von Materialknoten seine Vorgänger- oder Nachfolgerknoten bilden. Der Sinn der Zerlegung von Fertigungsmodellen in Strukturprototypen liegt darin begründet, daß sich diese Modelle zwar unterscheiden, untereinander und innerhalb eines Modells aber immer wieder ähnliche Strukturen anzutreffen sind, die gleiche oder vergleichbare Abläufe und Funktionen aufweisen. Somit können durch die Aufteilung in Strukturprototypen76 Redundanzen vermieden werden. Außerdem vereinfacht die Nutzung von Strukturprototypen die 73. Vgl. Definition Teilmodell [Schn96], S. 196 Vgl. auch [DaHo95], [Hol98] und [Schn96] 75. Vgl. die Darstellung der Reduzierbarkeit von Makrostrukturen in [Schn96], S. 211 ff. und die Reduktion auf Prototypen (Mikrostrukturen) in [Fel96], S. 85 ff. Allerdings ist eine derartige Reduktion hier nur möglich, wenn die Strukturprototypen gleiche Abläufe und Funktionen besitzen. 76. Zur Aufteilung eines Netzwerkes in Strukturprototypen vgl. [Fel96], S. 106 ff. 74. Das Problem einer Spezifikationssprache für die Fertigungslenkung 23 Modellierung entscheidend und steigert die Verständlichkeit sowie vor allem die Übersichtlichkeit des Modells. In Abbildung 2-3 sind beispielhaft eine Auswahl dieser Strukturprototypen, wie sie in vielen Standardfertigungslenkungsverfahren zu finden sind, und der Metastrukturprototyp, auf den im folgenden noch näher eingegangen wird, im „MFERT-Format“ dargestellt. lineare Struktur Sortierstruktur Montagestruktur lineare Struktur mit Ressource Metastruktur Abbildung 2-3: Strukturprototypen Lineare Strukturen finden sich z.B. in der Netzplantechnik aber auch in einfachen Fließfertigungen. In derartigen Fertigungsstrukturen wird ein Fertigungselement in einem Fertigungsvorgang bearbeitet, und es entsteht dabei wieder genau ein Fertigungselement. Kapazitäten werden im Rahmen dieser Lenkungsprozesse nicht berücksichtigt bzw. nicht verplant. Montage- und Sortier- bzw. Demontagestrukturen werden in der Materialbedarfsplanung genutzt. In ihnen werden entweder mehrere Fertigungselemente in einem Fertigungsvorgang zu einem anderen Fertigungselement montiert oder ein Fertigungselement wird in mehrere andere Fertigungselemente demontiert. Lineare Strukturen mit einer Ressource sind z.B. bei der Belastungsorientierten Auftragsfreigabe77 anzutreffen, dabei ist jedem Fertigungsvorgang genau 24 Kapitel 2 eine Ressource (-klasse) zugeordnet. Der Metastrukturprototyp vereint die Funktionalität aller möglichen Strukturprototypen in sich und bietet somit eine Abbildung jeglicher alternativen Strukturen eines Teilgraphen. Er stellt auf diese Weise eine allgemeine Struktur der Fertigungslenkung dar. Es sei in Anlehnung an [Schn96] der Metastrukturprototyp wie folgt formal definiert: Definition 15: Metastrukturprototyp Ein Metastrukturprototyp MSP ist ein 2-Tupel der Art MSP = (Kn, Ka), mit der Knotenmenge Kn = (FVK FEK) und der Kantenmenge Ka FVK FEK) FEK FVK)), wobei FEK die Menge der Fertigungselementknoten und FVK die Menge der Fertigungsvorgangsknoten ist. Außerdem gilt: |FVK| = 1, und es gibt v, n FEK für die gilt: v n und v ist Vorgänger von FVK und n ist Nachfolger von FVK. Die Minimalanforderungen des Metastrukturprototypen besagen demnach, daß zwar keine Fertigungsmittelknoten vorhanden sein müssen, der Fertigungsvorgangsknoten aber mindestens einen eingehenden und einen ausgehenden Materialknoten besitzen muß. Diese Knoten sind nötig, da sie, wie es in Abbildung 2-4 zu sehen ist, die Schnittstellen zwischen verschiedenen Strukturprototypen darstellen. Falls Fertigungsmittel vorhanden sind, so können sie sowohl nur für den Vorgang eines Strukturprototypen als auch für beliebig viele Vorgänger-, Nachfolger- oder parallel ablaufende Vorgänge genutzt werden. Arbeitspläne78 zeigen für die Erstellung eines Fertigungselements die Zuordnung zu den einzelnen Fertigungsmitteln (Vorgängen) sowie deren Reihenfolge und bestehen im wesentlichen nur aus Fertigungsvorgangsknoten bzw. -klassen.79 Demnach bilden sie nur einen Teilbereich der Fertigungslenkung und zwar die Ablaufstrukturen der Vorgänge sowie die ihnen zugewiesenen Fertigungsmittel ab. Weiterhin vernachlässigen sie das Abhängigkeitsverhältnis der Ressourcenbelegung durch unterschiedliche Produkte sowie den Erzeugnisstrukturzusammenhang. Der Metastrukturprototyp bildet Arbeitspläne aus dem oben beschriebenen Grund erweitert um Fertigungselementknoten ab.80 77. Vgl. Abschnitt 5.4.5.6 Belastungsorientierte Auftragsfreigabe (BOA) Vgl. [DaWa97], S. 238 ff. 79. Fertigungselemente/-klassen sind nur das Ausgangsmaterial und das Fertigteil des gesamten Arbeitsplans (vgl. [DaWa97], S. 239). 80. jeweils ein ein- und ein ausgehender Materialknoten 78. Das Problem einer Spezifikationssprache für die Fertigungslenkung 25 Im folgenden wird die betrachtete Fertigungslenkungsstruktur, reduziert auf diese Strukturprototypen, klassifiziert. Die so definierten Strukturprototypen beinhalten jedoch keine Modelldaten bzw. Attribute. Steuerungs- und planungsrelevante Informationen bezüglich der Strukturprototypen bzw. ihrer Knoten und Kanten werden durch die Klassifikationskriterien Fertigungslenkungsabläufe und -funktionen näher beschrieben. Deswegen können einige Fertigungslenkungsverfahren auch gleichartige Strukturprototypen aufweisen, obwohl ihre Funktionalität und die zugrunde liegende Ablaufstruktur verschieden sind.81 Abbildung 2-4:Verknüpfung von Prototypen Die nachfolgend dargestellten Fertigungslenkungsabläufe verknüpfen die verschiedenen Strukturprototypen zum Gesamtnetzwerk der Fertigung. Ein weiteres Verbindungsglied zwischen den Prototypen stellt die gemeinsame Modelldatenbasis dar, welche die Stamm- und Bewegungsdaten der Knoten enthält. Die Ablauf-Verknüpfung einzelner Prototypen erfolgt über die gemeinsamen Material- und Fertigungsmittelknoten, wie es in Abbildung 2-4 anhand der Materialknoten beispielhaft dargestellt ist. Die Funktionalität dieser Knoten, auf die anschließend noch genauer eingegangen wird, teilt sich dabei auf die unterschiedlichen Prototypen auf, in denen sie genutzt werden. 2.2.2.2 Klassifikationsmerkmal Fertigungslenkungsabläufe Abläufe82 sind Vorgehensweisen bzw. Abarbeitungsstrategien, an denen orientiert das Gesamtmodell der Fertigung und bzw. oder Teilmodelle (Substrukturen) durchlaufen werden sowie die Funktionen an den einzelnen Elementen des Modells, den Knoten83, ausgeführt werden. Sie basieren entweder auf einer Strukturierung innerhalb des Fertigungsmodells in Teilmodelle, Knotenklassen, Knoteneigenschaften, Fertigungselemente, wie z.B. spezielle Produkte 81. Vgl. [Fel96], S. 85 Unter Ablaufplanung wird in der Literatur meistens Reihenfolgeplanung, die zeitliche Zuordnung von gegebenen Aufträgen zur Verrichtung von Tätigkeiten auf vorhandenen Ressourcen unter bestimmten Bedingungen (Termin- und Kapazitätsrestriktionen) verstanden (vgl. [Sau93]). 83. Die Kanten besitzen keine Funktionalität (vgl. Abschnitt 5.2.1 Funktionalität an Modellelementen). 82. 26 Kapitel 2 oder Aufträge, oder Fertigungsereignisse. Anderenfalls bildet eine Strukturierung innerhalb des Zeitmodells in unterschiedliche Zeitmodelle, Zeitpunktklassen oder Zeitpunkte individuell ihre Grundlage. In Zusammenhang mit den Modellfakten und den vordefinierten Algorithmen kann man dieses Ablaufplanungswissen auch als statisch bezeichnen, wohingegen das dynamische Wissen die sich erst im Ablauf entwickelnden oder verändernden Modellfakten umfaßt. Im Gegensatz zum potentiellen Verhalten stellen der Fluß von Fertigungselementen durch die Ablaufstruktur und das Zeitmodell das aktuelle tatsächliche Verhalten dar. Eine Ablaufstrukturierung kann dementsprechend nach den Dimensionen des Modells der Fertigung vorgenommen werden, d.h. nach Prozessen (Arbeitsfortschritt), Produkten und Zeit.84 Der Fertigungsgraph gibt mit der Anordnung der Knoten eine Ablaufstruktur vor, die allerdings auf Relationen zwischen den Knoten, nämlich Vorgänger-Nachfolger-Beziehungen, begrenzt ist. Daneben sind aber auch Ablaufstrukturen denkbar, die nicht direkt auf der vom Graphen vorgegebenen Struktur aufsetzen, sondern Ereignisse und Zeitpunkte einander entgegen der Folgestruktur des Graphen zuordnen und zwar mit zeit-, ereignis- oder knotenorientierter Ablaufreihenfolge, die bestimmten Prioritätsregeln folgt.85 Eine derartige Strukturierung kann auch nach Kunden respektive Aufträgen oder Produkten vorgenommen werden. Insgesamt muß betont werden, daß jede beliebige Reihenfolge möglich ist, die letztlich zu einem zulässigen Plan führt.86 Demzufolge gibt es für einen Fertigungsgraphen unterschiedliche Ablaufstrukturen, die jeweils dem Gesamtgraphen oder einem speziellen Teilgraphen, der auch aus genau einem Knoten bestehen kann, und somit einer bestimmten Gruppe von Funktionen zugeordnet werden können. Im wesentlichen lassen sich die einzelnen Abläufe jedoch unterscheiden bezüglich der drei Kriterien Ablaufrichtung, -priorisierung und -reihenfolge. 84. Vgl. Abbildung 2-2 Nach [Hac84] unterteilen sich Prioritätsregeln in lokale (ortsbezogene) und kausale Regeln. Häufig verwendete elementare Prioritätsregeln sind z.B. die Verspätungsregel, die KOZ (Kürzeste Operationszeit) Regel, die Fertigungsrestzeitregel, die Rüstzeitregel und die FIFO (First In, First Out) Regel (vgl. auch [Cor98], S. 487 ff.). Diese Regeln können auch auf verschiedene Art und Weise kombiniert werden. 86. Vgl. [DaWa97], S. 34 85. Das Problem einer Spezifikationssprache für die Fertigungslenkung 27 Die Ablaufrichtung teilt sich auf in zwei grundsätzliche Betrachtungsrichtungen87 des Fertigungsgraphens, deren Auswahl von der jeweiligen Sichtweise und Zielsetzung bzw. Orientierung der Terminierung bzw. der gesamten Fertigungslenkung88 abhängt: • rückwärts • vorwärts Diese beiden Vorgehensweisen können auch in Kombination und zwar entweder jeweils auf Teilgraphen89 oder nacheinander auf den Gesamtgraphen angewendet werden. Bei der Rückwärtsbetrachtung wird von Aufträgen bezüglich bestimmter Fertig- oder Zwischenprodukte ausgegangen, während die Vorwärtsbetrachtung als Ausgangspunkt vorrätige bzw. zu bestellende Rohstoffe und Vorprodukte hat. Ablaufpriorisierungen bzw. -orientierungen sind entweder auf den Gesamtgraphen oder auf Teilgraphen bezogen und können untereinander beliebig verschachtelt sein. Sie unterteilen sich in: • ereignisorientiert • zeitorientiert • knotenorientiert (material-, fertigungsmittel-, vorgangsorientiert) • produktionsstrukturorientiert (knotengruppenorientiert) • auftragsorientiert Das der zeitorientierten Vorgehensweise zugrunde liegende Zeitmodell, wie z.B. der betrachtete Zeithorizont und seine Unterteilung in Zeitabschnitte, ebenso wie die Ereignisse, auf denen die Ereignisorientierung basiert, werden in der Klassifikation nicht näher bestimmt. Die knotenorientierte Vorgehensweise basiert auf der Priorisierung einer bestimmten Knotenart. Ein Beispiel für eine Orientierung nach Knotengruppen ist der dispositionsebenenweise Ablauf der Materialbedarfsplanung, allerdings ist diese Vorgehensweise auch über eine Aufteilung des Gesamtgraphen in Teilgraphen und eine entsprechende Ablaufpriorisierung auf diesen durchzuführen. Der Auftragsorientierung liegt eine bestimmte Reihenfolge oder Regel 87. Eine Mittelpunktsorientierung eines Fertigungsgraphen wird hier nicht gesondert betrachtet, da diese sich aus einer Kombination aus Rückwärts- und Vorwärtsorientierung von Teilgraphen des Gesamtgraphen zusammensetzt. 88. Mit der Orientierung der gesamten Fertigungslenkung ist das Push- und Pull-Prinzip (Anstoßlogik) bzw. eine verbrauchs- oder bedarfsorientierte Ausrichtung (Ablauflogik) der Prozesse gemeint (vgl. [Wie96], S. 14-83 f. und [Wie98]). 89. Der Fertigungsgraph wird dabei unterteilt in Bereiche, in denen unterschiedliche Ablauflogiken vorherrschen (vgl. Fußnote 87). 28 Kapitel 2 bezüglich der Auftragssortierung bzw. -auswahl zugrunde, die im Rahmen der Klassifikation ebenfalls nicht näher beschrieben wird. Ablaufreihenfolgen (Abarbeitungsfolgen90) beziehen sich auf die Abarbeitung von Teilgraphen untereinander oder Funktionen an diesen Teilgraphen. Sie haben die folgenden Ausprägungen: • seriell91 • parallel92 • nebenläufig93 Bei der seriellen Ablaufreihenfolge kann ein Teilgraph erst dann abgearbeitet werden, wenn die Bearbeitung des vorhergehenden vollendet ist. Die Reihenfolge kann durch einen beliebigen Algorithmus definiert werden. Im Gegensatz dazu müssen bei der parallelen Ablauffolge mehrere Teilgraphen gleichzeitig bearbeitet werden. Im dritten Fall, der nebenläufigen Abarbeitung, können die Teilgraphen sowohl parallel als auch seriell abgearbeitet werden, sie sind völlig unabhängig voneinander. Abläufe beinhalten zum Teil auch Ordnungsrelationen, welche die Reihenfolge der Abarbeitung von Ereignissen und Knoten bzw. Knotengruppen weiter spezifizieren. Bei der Vorgehensweise nach Fertigungsmittelknoten sind diese z.B. nach einem bestimmten Kriterium sortiert, so daß der Ablauf mit dem bezüglich dieses Kriteriums wichtigsten Materialknoten beginnt. So wird z.B. die teuerste Maschine, die unbedingt voll ausgelastet sein muß, zuerst eingeplant. Diese genaue Spezifizierung der Abläufe kann allerdings in der Klassifikation nicht vorgenommen werden, da dort, um der Anforderung des begrenzten Umfangs zu genügen, keine Modelldaten bzw. -attribute betrachtet werden. 2.2.2.3 Klassifikationsmerkmal Fertigungslenkungsfunktionen Das Klassifikationsmerkmal Fertigungslenkungsfunktion hat die Aufgabe, die den Fertigungslenkungsprozeß charakterisierenden Funktionen zu systematisieren. Funktionen können sich sowohl auf das Gesamtmodell, auf Teilmodelle oder auf einzelne Elemente (Knoten) des Ferti90. „Die Methoden zur Abarbeitungsfolge geben eine Abarbeitungsvorschrift für die Substrukturen einer Struktur an und führen diese aus.“ [DaWi93], S. 214 91. Arbeitsabläufe bzw. deren Einzelschritte heißen seriell, wenn sie nicht gleichzeitig, sondern zeitlich aufeinanderfolgend durchgeführt werden (vgl. [DuIn89]). 92. Arbeitsabläufe bzw. deren Einzelschritte heißen parallel, wenn sie gleichzeitig und voneinander unabhängig durchgeführt werden können (vgl. [DuIn89]). 93. Zwei Vorgänge oder Prozesse heißen nebenläufig, wenn sie voneinander unabhängig bearbeitet werden können [DuIn89], d.h. sie können sowohl seriell als auch parallel ausgeführt werden. Das Problem einer Spezifikationssprache für die Fertigungslenkung 29 gungsmodells beziehen, wobei außerdem eine Abhängigkeit vom jeweiligen Zeitmodell und der Ablaufstruktur besteht. In der Klassifikation werden allerdings alle Funktionen auf die jeweiligen Strukturprototypen, auf deren Basis sie ablaufen, bezogen. Außerdem beinhalten die hier betrachteten Funktionen keine Aussagen über die Ablaufstruktur, da diese bereits durch das Klassifikationsmerkmal Fertigungslenkungsabläufe festgelegt ist. Auf dem Modell der Fertigung basierende Funktionen können sowohl Elementarfunktionen94, wie z.B. Ändern, Löschen und Erzeugen von Modellelementen, als auch Zuordnungen von Modellelementen zueinander, wie z.B. Montieren, Aufladen und deren Negationen, Zeitverschiebungen, Zusammenfassungen und Gruppierungen sowie Splittungen des Materialflusses und logische Vergleiche sein. Außerdem kann eine Funktion auch ein Makro95, d.h. eine Kombination von Elementarfunktionen oder auch anderen Funktionen, sein. All diese Funktionsarten werden zur Fertigungslenkung eingesetzt, allerdings befinden sie sich auf einer sehr niedrigen Detaillierungsstufe, die im Rahmen der Klassifikation nicht betrachtet werden soll. Die Klassifikation systematisiert die Fertigungslenkungsfunktionen aufgrund ihrer Anforderungen nicht bezüglich ihrer Primitiven, den einfachsten vorstellbaren Teilaufgaben, sondern unterteilt sie bezüglich der den Funktionen zugrunde liegenden Planungs- respektive Entscheidungsproblemen in Anlehnung an die kombinatorische Optimierung.96 Die auf diese Weise systematisierten Funktionen sind bestimmten Strukturprototypen zugeordnet. Da es bei der Fertigungslenkung um die Planung, Überwachung und Steuerung von Abläufen ohne Berücksichtigung von fabrikplanerischen Aspekten geht, werden spezielle Transportprobleme und Probleme der Standortplanung nicht betrachtet.97 Außerdem finden Probleme der Projektplanung, die in der Regel bei der Vorbereitung und Durchführung von großen Einzelaufträgen auftreten, nur bezüglich ihrer Struktur-, Zeit- und Kapazitätsplanung Beachtung; die Kostenplanung ist nicht Gegenstand dieser Systematik der Fertigungslenkung. Die Klassifikation unterteilt die Fertigungslenkungsfunktionen somit in Funktionen zur Lösung ablauf-98 94. 95. 96. 97. 98. Elementarfunktionen lösen die einfachsten vorstellbaren Teilaufgaben der Fertigungslenkung, somit sind sie die algorithmischen Grundbausteine der Lenkung (vgl. [Schn96], S. 164 ff.). Ein Makro in Programmiersprachen ist eine häufig genutzte Befehls- bzw. Funktionsfolge; sie kann in Makrobibliotheken gespeichert werden und dient der effektiveren Gestaltung der Programmierung (vgl. [DuIn89]). Entscheidungsprobleme und deren Lösung sind typischerweise die Ansatzpunkte des Operations Research bzw. die Vorbereitung einer Entscheidung im Rahmen eines Planungsprozesses (vgl. [DoDr95]). Vgl. [Hac84], S. 3 ff. Unter Ablauforganisation wird hier die Produktionsprozeßplanung und -steuerung verstanden (vgl. [DVS93]). 30 Kapitel 2 und zustandsorientierter (-organisatorischer) Entscheidungsprobleme, wobei deren Lösungsprinzipien nicht in die Kategorisierung miteinbezogen werden, da in der vorliegenden Arbeit die Spezifikation und nicht die Lösung der Probleme im Vordergrund steht. Unter ablauforganisatorischen Entscheidungsproblemen werden hier die folgenden verstanden: • Aufteilungsprobleme (Verteilungsprobleme, mengenmäßige Zuordnung), • Gruppierungsprobleme (Zusammenfassungsprobleme) • Reihenfolgeprobleme (zeitliche Zuordnung, Eingangs- und Ausgangsreihenfolge) Zustandsorganisatorische Entscheidungsprobleme sind: • Bestand-/Bedarfsermittlungsprobleme (Netto-, Bruttobedarfe) • Gruppierungsprobleme (Losgrößenbestimmung) • Terminierungsprobleme Zur Lösung all dieser Entscheidungsprobleme gibt es spezifische Funktionen. Diese werden durch bestimmte, im Fertigungsmodell hinterlegte Daten und Regeln, wie z.B. Zeitmodelle, vorgegebene Zielsetzungen und Restriktionen, beeinflußt und gelenkt. Außerdem ist zu beachten, daß es Interdependenzen zwischen den verschiedenen Problembereichen gibt, wie z.B. zwischen Arbeitsverteilungs- und Reihenfolgeproblemen. Die Aufteilungsprobleme beschäftigen sich mit der Festlegung von Arbeits(vor-)gängen, ihrer zeitlichen und mengenmäßigen Synchronisation99 und der Aufteilung sowie mengenmäßigen Zuordnung von Fertigungselementen auf Fertigungsvorgangsknoten bzw. Fertigungsvorgängen auf Fertigungselementknoten (bei Ressourcen). Der Aufteilung liegen Regeln zugrunde, die z.B. bestimmte Verhältnisse zur Verteilung angeben. Gruppierungsprobleme behandeln die Zusammenfassung von Fertigungselementen (Materialien, Aufträgen).100 Diese Gruppierungen erfolgen ebenfalls nach gewissen Regeln, welche die Art der Zusammenfassung z.B. ebenfalls nach bestimmten Verhältniszahlen bestimmen. In der Reihenfolgeplanung geht es um die zeitliche Zuordnung von Aufträgen zu Fertigungsmitteln aber auch um die Reihenfolge bei Gruppierungs- oder Verteilungsproblemen von Elementen. Dabei wird die Reihenfolge durch unterschiedliche Prioritätsregeln festgelegt. 99. Diese Synchronisation von Arbeitsgängen (Vorgängen), wie sie z.B. in seriellen oder parallelen Transformationsprozessen nötig ist (z.B. Fließ-/Montageband), wird auch unter dem Begriff Leistungsabstimmungsprobleme gefaßt. 100. In diesem Zusammenhang geht es nicht um die Festlegung des Anordnungstyps der Fertigung. Das Problem einer Spezifikationssprache für die Fertigungslenkung 31 Die Bestandsermittlung hat zur Aufgabe, aus den eingehenden Angeboten/Bedarfen und den ausgehenden Angeboten/Bedarfen den Bestand an einem Knoten zu ermitteln. Mit der Bedarfsermittlung wird im Falle einer Unterschreitung des Mindest- bzw. Sicherheitsbestandes oder dem Erreichen eines bestimmten Termins ein neuer Nettobedarf ermittelt oder eine Bedarfsmeldung an vorgelagerte Stufen weitergegeben. Gruppierungsprobleme sind im Rahmen der zustandsorganisatorischen Entscheidungsprobleme die Bestimmung von optimalen Fertigungs- oder Bestellosgrößen. Die Ausgangs- bzw. Eingangstermine der Fertigungselemente bezogen auf bestimmte Fertigungsvorgänge werden durch die Zustandsfunktion Terminierung bestimmt. Nachdem nun die einzelnen Funktionen beschrieben sind, ist noch die Frage zu klären, wie diese Funktionen den verschiedenen Knoten eines Strukturprototypen zugeordnet werden. Terminierungsprobleme lassen sich eindeutig dem Fertigungsvorgangsknoten eines Strukturprototypen zuordnen. Die Bestands- und Bedarfsermittlungsprobleme sowie die ablauforganisatorischen Entscheidungsprobleme dagegen können sich auf verschiedene Knoten beziehen. Ihre Zuordnung muß durch die Reihenfolge der Darstellung im Klassifikationsschema und die Ablauforientierung des Teilgraphen festgelegt werden. 2.2.3 Klassifikationsschema für die Fertigungslenkung Zur Darstellung eines Repräsentanten der Fertigungslenkung dient das in Abbildung 2-5 wiedergegebene Klassifikationsschema, welches eine beliebige Kombination und eine sehr anschauliche und leicht verständliche Illustration der in den vorherigen Abschnitten beschriebenen Klassifikationsmerkmale ermöglicht. Im oberen Abschnitt des Schemas werden die Strukturprototypen dargestellt, aus denen sich die Fertigungslenkungsstruktur zusammensetzt bzw. auf die sie reduziert werden kann. Als allgemeine Beschreibungsform wurden hier Metastrukturprototypen gewählt. Die Strukturprototypen sind entsprechend der Betrachtungsrichtung des Graphen, bei Mittelpunktsorientierung auch Teilgraphen, von links nach rechts angeordnet. Prototypen auf einer Fertigungsstufe werden ebenfalls nebeneinander dargestellt. Ihre Verknüpfung ist jedoch nicht direkt aus dem Klassifikationsschema sondern aus dem zugrundeliegenden Fertigungsgraphen (Modell der Fertigung) zu entnehmen. In der Mitte des Schemas werden die Funktionen an den Strukturprototypen spezifiziert. Deren Anordnung von oben nach unten entspricht einer Gruppierung von links nach rechts im Graphen. Fertigungselement- oder Fertigungsvorgangsknoten, die keine Funktionalität besitzen werden gestrichelt dargestellt.101 Der untere Abschnitt zeigt 32 Kapitel 2 Funktionen Funktionen Ablauf Teilgraph Ablauf Teilgraph Ablauf Gesamtgraph Abbildung 2-5: Klassifikationsschema einerseits die Ablaufstrukturen der Strukturprototypen bzw. Teilgraphen sowie die Ablaufstruktur des gesamten Fertigungslenkungsgraphen. Insgesamt ergibt sich somit ein übersichtliches sowie leicht verständliches und anwendbares Klassifikationsschema. Abbildung 2-6 stellt beispielhaft das Klassifikationsschema einer speziellen Fertigungslenkungsproblematik dar. Die dieser Klassifikation zugrunde liegende Fertigungsstruktur läßt sich auf zwei Strukturprototypen, „Montagestruktur“ und „lineare Struktur mit Ressource“, reduzieren. Auf diesen Teilgraphen, die miteinander an den Fertigungselementknoten verknüpft sind, sind jeweils unterschiedliche Funktionen und Abläufe definiert. Der Ablauf der gesamten Fertigungslenkung erfolgt zeitorientiert und vorwärts. Die Ablaufreihenfolgen wie auch die einzelnen Funktionen auf den Teilgraphen unterscheiden sich. Die beschreibenden Begriffe links neben dem Klassifikationsschema dienen zur Verdeutlichung der einzelnen Klassifikationskriterien und ihrer Untergliederung. 2.3 Anforderungen an eine Spezifikationssprache für die Fertigungslenkung Die Spezifikationssprache hat die Aufgabe, beliebige Fertigungslenkungsproblematiken formal102 zu beschreiben und damit zur Vereinheitlichung, Normierung und Wiederverwendbar- 101. 102. Vgl. Abbildung 2-6 In der Informatik werden unter formalen Sprachen solche verstanden, die aus einer Teilmenge, der Menge aller Wörter, die sich durch die Hintereinanderreihung endlich vieler, nicht notwendig verschiedener Zeichen aus einem vorgegebenen Alphabet, zusammen mit einer Definitionsvorschrift bestehen. Letztere ist im allgemeinen konstruktiv (vgl. [DuIn89]). Das Problem einer Spezifikationssprache für die Fertigungslenkung 33 Strukturen Funktionen Teilgraph Abläufe Gesamtgraph Gruppierungsfunktion Bedarfsfunktion Reihenfolgefunktion Terminierungsfunktion seriell nebenläufig zeitorientiert, vorwärts Abbildung 2-6: Beispiel eines Klassifikationsschemas keit der Lenkungsstrukturen, -abläufe und -funktionen (Verfahren) beizutragen. Sie soll eine reine Beschreibungssprache und nicht direkt ausführbar sein. Die Vereinheitlichung der Darstellung und die Vollständigkeit der Abbildung sollen eine bessere Vergleichbarkeit von Fertigungslenkungsproblematiken ermöglichen.103 Auf diese Weise können Ähnlichkeiten oder Übereinstimmungen in unterschiedlichen Fertigungslenkungsverfahren bzw. -systemen, die aufgrund verschiedener Begrifflichkeiten oder Beschreibungen nicht direkt erkennbar sind, herauskristallisiert werden.104 Allerdings erlaubt nur eine formale oder wenigstens halbformale105 Darstellung dabei eine hinreichend präzise und eindeutige Spezifikation. Weiterhin muß die Sprache offen sein in Bezug auf Form und System respektive unterschiedlichen Sichtweisen und unabhängig von bestimmten Betriebs- oder Branchenspezifika.106 Diese vom Anwender vorgenommene Beschreibung soll dann eine konsistente und automatische Übersetzung in ein ausführbares Fertigungslenkungsprogramm (-system) in einer höheren Programmiersprache107 ermöglichen, wie es in Abbildung 2-7 symbolhaft dargestellt ist. Somit stellt die Spezifikationssprache den Übergang zwischen der betrieblichen Problemstellung und der 103. Die Spezifikationssprache beschreibt die Fertigungslenkung somit auf einer detaillierteren Ebene als die Klassifikation. 104. Als Beispiel hierfür können die Verfahren MRP und OPT dienen, die in einigen Teilbereichen Ähnlichkeiten und Übereinstimmungen aufweisen (vgl. [Bus89]). Siehe auch Abschnitt 5.4 Anwendungsbeispiele für die Spezifikationssprache. 105. Halbformale bzw. semiformale Spezifikationen werden dann genutzt, wenn nicht die Notwendigkeit einer völlig präzisen Semantik besteht. Diese Spezifikationen beinhalten dann neben formalen auch informale Elemente (vgl. [GJM91]). 106. Vgl. [MSJ94], S. 18 ff. 34 Kapitel 2 Lösung des Problems mit Informationstechnik dar, wobei sie gegenüber der Informationstechnik Neutralität bzw. Implementierungsunabhängigkeit aufweisen soll. Für diese Übersetzung ist es jedoch nötig, daß die Sprache sich aus generischen Konstrukten eines universellen Modells der Fertigung ableitet108, denn nur so ist eine vollständige und einheitliche Beschreibung möglich. Die Implementierungen dieser Konstrukte sollen im weiteren in einem Methodenbaukasten entsprechend ihrer Ausprägungen bezüglich der Klassifikationsmerkmale Ablaufstruktur (Abläufe) und Funktion zusammengefaßt werden. Die Ausweitung auf beliebige Fertigungslenkungsaufgaben bedeutet für die Spezifikationssprache, daß die in der Zukunft neu entwickelten Fertigungslenkungsfunktionen mit ihr dargestellt und auf diese Weise ohne großen Aufwand in ein ablauffähiges Programm umgesetzt werden können.109 Dieses erfordert ein hohes Maß an Flexibilität und Anpassungsfähigkeit der Spezifikation. Zur genaueren Beschreibung dieser allgemeinen Anforderungen wird im folgenden zwischen problembereichsspezifischen und unabhängig vom Problembereich definierten Erfordernissen unterschieden. Fertigungslenkung Spezifikationssprache Fertigungslenkungssystem Gesamtgraph, zeitorientiert Teilgraph, alphabetisch Teilgraph, Eingangsfunktion, Zustandsfunktion Teilgraph, Zustandsfunktion Abbildung 2-7: Spezifikationssprache der Fertigungslenkung 2.3.1 Problembereichsunabhängige Anforderungen an die Spezifikationssprache Problembereichsunabhängige Anforderungen beziehen sich vorwiegend auf die Syntax einer Sprache, allerdings haben sie auf diese Weise auch direkte Auswirkungen auf deren Semantik. Die meisten allgemeinen Softwareanforderungen bzw. Anforderungen an Programmiersprachen110 tragen ebenfalls zur Entwicklung einer guten Spezifikationssprache bei. Aus diesem 107. Eine höhere oder auch problemorientierte Programmiersprache ist von der Hardware unabhängig und an den zu bearbeitenden Problemfeldern orientiert (vgl. [DuIn89]). Es sollen in erster Linie 4GL-Sprachen, also Programmiersprachen der vierten Generation, genutzt werden, die aufgrund ihrer besonderen Eigenschaften bezüglich Programmentwicklung, Anpassungsfähigkeit und Wartungsfreundlichkeit gegenüber anderen Sprachen klare Vorteile bieten. 108. Vgl. [DaWi93a] 109. In den letzten Jahren wurden vor allem Fertigungslenkungsfunktionen für die Flexible Fertigung neu entwickelt (vgl. [FFG97] und [Scho98]). 110. Vgl. [Seb92], S. 7 ff. Das Problem einer Spezifikationssprache für die Fertigungslenkung 35 Grund müssen sie in diese Betrachtung miteinbezogen werden. Dabei ist jedoch zu beachten, daß Spezifikationssprachen im allgemeinen ein anderes Ziel verfolgen als Programmiersprachen111, weswegen sie abstrakter und in den meisten Fällen nicht direkt implementierbar sind. Außerdem muß berücksichtigt werden, daß die unterschiedlichen Softwareanforderungen teilweise miteinander in Konkurrenz stehen, so daß in jedem einzelnen Fall aufgrund ihrer spezifischen Wertigkeit entschieden werden muß.112 Die folgende Aufzählung gibt sowohl häufig gestellte Softwareanforderungen als auch geforderte Eigenschaften von Spezifikationen wieder:113 • Benutzerfreundlichkeit (Anwenderunterstützung) • Vollständigkeit (Universalität) • Zuverlässigkeit • Konsistenz • Wiederverwendbarkeit • Wartbarkeit (Wartungsfreundlichkeit) Besondere Relevanz für die Spezifikationssprache besitzen aber die im Anschluß nun genauer ausgeführten Anforderungen. In erster Linie muß die Sprache klar, unzweideutig und verständlich (anschaulich) sein, andernfalls besteht die Gefahr, daß sie aufgrund von Mehrdeutigkeiten oder Verständnisproblemen nicht zu dem gewünschten Nutzen führt. Diese Anforderung ist eng mit den Qualitätszielen Benutzerfreundlichkeit und Konsistenz verknüpft. Zur Erleichterung des Umgangs mit der Sprache soll sie ohne spezielle Kenntnisse anwendbar sein und sich an der Denk- und Arbeitsweise des potentiellen Benutzers orientieren, indem sie z.B. die Fachsprache bzw. das Fachvokabular des Anwenders miteinbezieht.114 Das bedeutet auch, daß die Sprache sich einer Symbolik bedienen soll, die intuitiv vom Betrachtenden erfaßt werden kann (Praktikabilität). Eine streng formale Darstellung unterstützt zwar einerseits die Erfüllung dieser Anforderung, andererseits erleichtert sie aber nicht unbedingt die Verständlichkeit und Anwendbarkeit für den Benutzer, da es ihr an Realitätsnähe fehlt. Gleichzeitig bedingt die Anforderung der Einfachheit der Sprache eine Begrenzung der Anzahl ihrer Konstrukte auf eine gut überschaubare Menge. 111. Vgl. Abschnitt 2.1.4 Spezifikationssprache Vgl. [Kur83], S. 124 ff. 113. Vgl. [GJM91], S. 154 ff., [Hol98], S. 18 ff. 114. Vgl. [Reg96], S. 84 112. 36 Kapitel 2 Spezifikationssprachen sind in vielen Fällen formale Sprachen, was den Vorteil hat, daß die Menge der Sprachkonstrukte endlich ist. Allerdings ist das Festlegen von einigen komplexeren Eigenschaften der Konstrukte einer Spezifikationssprache, wie z.B. Makrofunktionen, unumgänglich, um eben gerade ihre Verständlichkeit und Anwendbarkeit zu gewährleisten. Die Verwendung von Elementarkonstrukten, also Konstrukten auf niedrigster Detaillierungsstufe, würde die Nutzung der Sprache sehr viel unübersichtlicher und komplizierter gestalten. Sie wäre dann nicht mehr aufgabenangemessen und würde die Erledigung der Arbeitsaufgabe zwar unterstützen, aber den Benutzer durch ihre besonderen Eigenschaften unnötig belasten. Eine weitere wichtige Anforderung bei der Entwicklung der Konstrukte ist die der Einheitlichkeit (Homogenität) der Spezifikationssprache ganz im Gegensatz zu der bisherigen Fülle an unterschiedlichen Beschreibungs- respektive Darstellungsarten für die verschiedenen Teilbereiche der Fertigungslenkung. Als Beschreibungsform soll also eine allgemeinverständliche (lesbare) aber präzise Syntax gewählt werden. Auf diese Weise wird das Erlernen und Benutzen der Sprache nicht nur denen erleichtert, die bereits Kenntnisse über den Gebrauch von Programmiersprachen bzw. formalen Sprachen besitzen, sondern auch den Nutzern, die keinerlei Wissen in diesem Bereich vorweisen können. Deswegen ist es wichtig, mnemonische Sprachkonstrukte115 zu verwenden, um die Sprache möglichst problembereichs- bzw. anwendernah116 zu gestalten und damit ihre Effizienz zu steigern. Die Sprachkonstrukte befinden sich allerdings durch ihre Orientierung am Anwendungsbereich und den Anwendern auf einem höheren semantischen Niveau als die einer herkömmlichen Programmiersprache, was ihre allgemeine Anwendbarkeit einschränkt. Neben den mnemonischen Sprachkonstrukten soll auch eine gewisse Erwartungskonformität117 bestehen, so daß der Benutzer auf bereits bekannten Vorstellungen und Denkmustern, also Vertrautem und Gewohntem, aufsetzen kann. Auf diese Weise wird es ermöglicht, mit der Sprache individuelle Problemstellungen flexibel zu spezifizieren.118 Für die Repräsentation der Konstrukte soll eine Kombination aus sprachlichen und graphischen Elementen in Erwägung gezogen werden. Eine teilweise graphische Repräsentation ermöglicht eine einfache, klare und übersichtliche Struktur der Fertigung und der in ihr genutz115. Unter mnemonischen Sprachkonstrukten versteht man Konstrukte, die leicht im Gedächtnis des Anwenders haften bleiben, da sie einen speziellen Bezug zum beschriebenen Sachverhalt haben. 116. Eine Software wird als anwendernah (hier synonym zu benutzerfreundlich gebraucht) bezeichnet, wenn sie den Anforderungen der jeweiligen Benutzerkategorie gerecht wird (vgl. [Kur83], S. 116). 117. Vgl. [Reg96], S. 86 118. Vgl. ebenda S. 179 Das Problem einer Spezifikationssprache für die Fertigungslenkung 37 ten Abläufe. Dadurch trägt sie zur leichten Anwendbarkeit und konzeptionellen Klarheit bei. Sprachliche Elemente dagegen sind für die Anwender gerade dann leichter bzw. direkter verständlich, wenn sie ihrem eigenen Vokabular entnommen sind. Außerdem sind sie der Implementierung in einer Programmiersprache näher und erleichtern somit die Umsetzung in eine solche. Durch die Verknüpfung beider Darstellungsformen, also die Kombination von sprachlichen und graphischen Elementen, kann demnach eine hohe Verständlichkeit und gute Anwendbarkeit der Spezifikationssprache erreicht werden. Das Kriterium Vollständigkeit besagt in Bezug auf die Spezifikationssprache, daß diese den betrachteten Problembereich unter Berücksichtigung aller möglichen Zustände umfassend abbilden soll. Nur eine vollständige Darstellung erlaubt einen korrekten Vergleich unterschiedlicher Fertigungslenkungsaspekte. Die Konstrukte der Sprache müssen demzufolge alle Daten des Problembereichs sowie ihre potentiellen Transformationen repräsentieren können, wobei zukünftige Entwicklungen mit zu berücksichtigen sind. Deswegen ist eine weitere Anforderung an die Spezifikationssprache, daß sie flexibel sein soll bezüglich sich verändernder Randbedingungen; sie soll Erweiterungen und Anpassungen bedingt durch Änderungen des Problembereichs oder der verwendeten Vorgehensstrategien zulassen, also veränderbar sein. Dieses bedingt eine Offenheit der Sprache bezüglich Form und System. Da sich Fertigungslenkungsverfahren in einem dauernden Fluß befinden, soll die Spezifikationssprache soviel Flexibilität besitzen, daß sie auch die Einbeziehung neu entwikkelter Verfahren bzw. Funktionen erlaubt. Dieses wird dadurch erleichtert, daß die Spezifikationssprache sich auf einer aggregierteren Ebene befindet und erst durch die Umsetzung in eine Programmiersprache die genauen Details, wie z.B. die genaue Implementierung des logischen Programmablaufs, festgelegt werden. Auf diese Weise wird die Unabhängigkeit der Sprache von implementierungs- und verarbeitungsspezifischen Aspekten gesichert. Die Beschreibung in der Spezifikationssprache soll auf diese Weise von Neuerungen oder Änderungen des Problembereichs in den meisten Fällen unberührt bleiben. Eine weitere Gewährleistung der Flexibilität soll durch eine klar definierte Schnittstelle zwischen der Spezifikationssprache und der Datenbank bzw. der Methodenbibliothek gegeben sein. Abschließend muß noch einmal betont werden, daß die verschiedenen Anforderungen an die Spezifikationssprache teilweise miteinander in Konkurrenz stehen, wie z.B. auf der einen Seite die Forderung nach Formalität zur Vereinfachung der Umsetzung in eine Programmiersprache und auf der anderen Seite die Forderung nach einer anwendernahen, verständlichen und benutzerfreundlichen Syntax mit mnemonischen Sprachkonstrukten. Hier muß ein Mittelweg gefun- 38 Kapitel 2 den werden, der keine dieser unterschiedlichen Forderungen vollständig vernachlässigt. Insgesamt soll für die Spezifikationssprache der Grundsatz gelten: Die Sprache muß „so einfach wie möglich und so flexibel wie nötig“ sein.119 2.3.2 Problembereichsabhängige Anforderungen an die Spezifikationssprache Die Spezifikationssprache soll die Fertigungslenkung einheitlich, umfassend und problemorientiert beschreiben, um somit eine Loslösung von speziellen Sichtweisen und Vorgehensstrategien zu erwirken und eine integrierte Darstellungsform zu erlangen. Auf diese Weise soll sie die Verknüpfung und den Vergleich unterschiedlicher Methoden und Verfahren der Fertigungslenkung ermöglichen. Weiterhin soll auf Basis der Spezifikationssprache und den spezifischen Anforderungen der Anwender ein individuelles Fertigungslenkungssystem erstellt werden können, indem die Beschreibung mit Hilfe einer Methodenbibliothek in ein ausführbares Programm bzw. System umgesetzt wird. Die Verwendung von vorgegebenen Funktions- und Ablaufbausteinen aus der genannten Methodenbibliothek bei der Übersetzung der Spezifikationssprache in eine problembereichsunabhängige, gebräuchliche Programmiersprache erleichtert die Benutzbarkeit und Wiederverwendbarkeit, wie man es am Beispiel von bausteinorientierten Simulationssprachen120 oder Methodendatenbanken aus der Arbeits- und Investitionsplanung121 nachweisen kann. Außerdem tragen sie dazu bei, daß das Programm bzw. System flexibel modifiziert und erweitert werden kann. Die geforderte Vollständigkeit der Spezifikationssprache bedingt die Entwicklung von Konstrukten zur Definition bzw. Spezifikation der zugrunde liegenden Daten- bzw. Graphstruktur sowie aller Abläufe und Funktionen der Fertigungslenkung. „Ein Fertigungslenkungssystem kann nur dann eine korrekte - und damit ausführbare - Aussage machen, wenn alle Potentialfaktoren in ihrer begrenzten Verfügbarkeit beschrieben werden.“122 Es muß also ein Beschreibungsmittel für die Daten- bzw. Graphstruktur der Fertigungslenkung zur Verfügung gestellt werden, das alle möglichen, jetzige sowie zukünftige Zustände abbilden kann. Dieses ist möglich durch eine Darstellung aller Knoten und ihrer Attribute, die sowohl Stammdaten, wie z.B. zeitliche, zustands- und mengenbezogene Restriktionen123, als auch Bewegungsdaten sein 119. Vgl. [Reg96], S. 179 Vgl. das Simulationssystem SIMPLE++ der Firma AESOP [SIM93]. 121. Vgl. [Spu92] 122. Vgl. [DaWa97], S. 17 123. Vgl. [DKS97] und [DaWi93a], S. 23 ff; in [Schn96] wird unterschieden in modellinhärente und aufgabenspezifische und zwar technologische, organisatorische sowie ökonomische Restriktionen. Restriktionen sind über einem gewissen Zeitraum konstant. 120. Das Problem einer Spezifikationssprache für die Fertigungslenkung 39 können, sowie der Kanten des Fertigungsgraphen unter Beachtung bzw. in Verbindung mit einer Einordnung in die Zeit. Abläufe sind Ablaufbeziehungen zwischen Funktionen und auf sowie über verschiedenen Teilgraphen, Knoten oder Knotengruppen. Sie bestimmen, wie in Bezug auf die Abarbeitung der Funktionen und der Teilgraphen, die ihrerseits wiederum Funktionen beinhalten, vorgegangen wird. Dabei müssen Ablaufrestriktionen und weitere Knotenattribute, wie z.B. Ordnungsrelationen, die in der Daten- bzw. Graphstruktur festgelegt sind, berücksichtigt werden. Neben seriellen Abläufen ist es nötig, in der Spezifikationssprache auch parallele und nebenläufige Abläufe von Funktionen darzustellen. Die genaue Detaillierung der Abläufe soll jedoch erst anhand von Methoden (Algorithmen) auf der Programmebene vorgenommen werden. Konstrukte für Funktionen haben die Aufgabe, die bereits in der Klassifikation herausgestellten Entscheidungsprobleme zu spezifizieren. Hierbei müssen wiederum in der zugrunde liegenden Daten- bzw. Graphstruktur festgelegte, sich aber möglicherweise über die Zeit ändernde, Restriktionen sowie weitere Attribute der Knoten Berücksichtigung finden. Aus diesem Grund werden Elementarfunktionen zur Verwaltung der Datenbasis, wie z.B. Lesen, Schreiben, Erzeugen und Löschen, benötigt. Diese Funktionen wie auch die regulären bzw. grundlegenden Strukturen einer Programmiersprache, und zwar Ablaufstrukturen, Kontrollstrukturen, elementare Funktionen, arithmetische und Vergleichsoperationen, Variablen124 und die Kommunikationsstrukturen, finden sich indessen nicht auf der hier betrachteten Abstraktionsebene. Sie werden deswegen auch nicht explizit in Form von Funktionskonstrukten in der Spezifikationssprache behandelt, denn die detailgenaue Darstellung dieser Funktionen und ihre Aufgliederung in Elementarfunktionen sowie auch die grundlegenden Sprachstrukturen sollen erst auf der Programmebene in den in einer Standardprogrammiersprache implementierten Methoden bzw. im Methodenbaukasten vorgenommen werden. Als Daten- und Strukturbasis dieser auf Grundlage der Spezifikationssprache implementierten Methoden soll das Modell der Fertigung125 genutzt werden. Die Spezifikationssprache beschreibt demnach auf einer aggregierten Ebene die Abläufe und Funktionen auf dem Gesamt- bzw. den Teilgraphen der Fertigungslenkung. Erst durch die Kombination aus Funktionen und Teilgraphen mit der jeweiligen Ablaufstruktur werden erstere genauer spezifiziert, und die Umsetzung der beschriebenen Fertigungslenkungsproblematik in ein ausführbares Programm wird möglich. 124. 125. Vgl. [Wat90], [LMW86] Vgl. die Ausführungen zum Modell der Fertigung in Abschnitt 2.1.1 Fertigungslenkung 40 Kapitel 2 Die Forderung nach Klarheit und Verständlichkeit führt dazu, daß für die beschriebenen Konstrukte graphische und sprachliche Repräsentanten genutzt werden sollen, wobei die sprachlichen Repräsentanten mnemonische Namen besitzen sollen. Zur Steigerung der Verständlichkeit und Übersichtlichkeit der Fertigungsstruktur soll diese darüber hinaus graphisch repräsentiert werden. Auf diese Weise werden auch zwei- oder dreidimensionale Darstellungen ermöglicht, die komplexe Strukturen besonders gut visualisieren. Außerdem erleichtert diese Form der Abbildung eine Evaluierung und Verifizierung der Fertigungslenkung. Die Abläufe auf den verschiedenen Ebenen des Fertigungsgraphen sollen ebenfalls graphisch, zur besonderen Verdeutlichung aber unterstützt durch sprachliche Elemente beschrieben werden. Auch aus Gründen der eindeutigen Repräsentation der Fertigungslenkungsfunktionen sollen mnemonischen Namen für diese verwendet werden, um den Anwendern ihre Nutzung zu erleichtern. Die Spezifikationssprache soll insgesamt betrachtet die Möglichkeit zur Simultanplanung126 bieten. Eine sukzessive Planung127 mit getrennt voneinander und sequentiell ablaufenden Planungsschritten soll nur in dem Fall vorgenommen werden, wenn diese sich in sehr geringem Maße oder gar nicht gegenseitig beeinflussen. Eine sukzessive Planung ist z.B. auch bei einer hierarchischen Fertigungslenkung zu bedenken, indessen müssen dabei die Planungen auf den einzelnen Hierarchiestufen miteinander verknüpft werden.128 Im Vordergrund der Entwicklung dieser Spezifikationssprache soll aber die Forderung nach einem umfassenden und flexiblen Beschreibungsmittel stehen, das gänzlich unabhängig von den verschiedenen Lenkungsstrategien in der Fertigung und damit umfassend einsetzbar ist. Mit Hilfe des Methodenbaukastens soll die Spezifikationssprache direkt in Programme umgesetzt werden können. Die Bausteine sollen dabei in einer problembereichsunabhängigen höheren Programmiersprache implementiert werden, damit sie universell einsetzbar und wiederverwendbar sind. Diese Wiederverwendbarkeit und die Möglichkeit, den Baukasten um neue Methoden zu erweitern, tragen nachhaltig zur Flexibilität der Spezifikationssprache bei. Die einzelnen Methodenbausteine sind Algorithmen zur Lösung von Teilaufgaben des Fertigungslenkungsproblems. Zum Teil sind sie miteinander vergleichbare Algorithmen, d.h. sie verfolgen verschiedene Strategien und bewirken damit eine unterschiedliche Güte der Problemlö126. Unter Simultanplanung wird ein Ansatz verstanden, der die Handlungsalternativen sämtlicher Teilbereiche in einem Totalmodell erfaßt und eine gleichzeitige Bestimmung der optimalen Werte dieser Alternativen in gegenseitiger Abstimmung vornimmt (vgl. [Cor98], S. 492). 127. Bei einer sukzessiven Planung werden die zu planenden Teilbereiche in einer festzulegenden Reihenfolge nacheinander bearbeitet. Auf diese Weise bleiben Interdependenzen weitestgehend unbeachtet (vgl. [Cor98], S. 492). 128. Vgl. [KiSt93] Das Problem einer Spezifikationssprache für die Fertigungslenkung 41 Ablaufstrukturen MFERT Modellgraph Datenbasis Richtung, Priorisierung Reihenfolge Spezifikationssprache Lenkung von Strukturprototypen Lenkung von Teilmodellen Funktionen Entscheidungsprobleme Lenkung des Gesamtmodells Abbildung 2-8:Elemente der Spezifikationssprache sung, aber sie können gegeneinander ausgetauscht werden.129 Dabei sollen sie einerseits Abläufe und andererseits Funktionen der Fertigungslenkung darstellen. Die Spezifikationssprache soll eine unkomplizierte Abbildung und Auswahl dieser Algorithmen ermöglichen, indem sie die Ablauf- und Funktionsregeln respektive -restriktionen anhand der Daten- bzw. Graphstruktur vorgibt, nicht jedoch die genaue Implementierung dieser Algorithmen. Somit müssen diese Vorgaben nicht unbedingt nur auf genau einen Algorithmus zutreffen, so daß auch unterhalb der Spezifikationssprache, d.h. auf einer detaillierteren Ebene, noch in einigen Fällen eine Entscheidung bezüglich der Anwendung eines bestimmten Algorithmus getroffen werden muß. Diese Entscheidung soll allerdings möglichst auf Basis einer simulativen Erprobung der Auswahlmöglichkeiten oder Erfahrungen aus der Vergangenheit vorgenommen werden.130 Zusammenfassend muß in Bezug auf die problembereichsabhängigen Anforderungen an die Spezifikationssprache hervorgehoben werden, daß sie die Kernforderungen an die Sprache darstellen. Im Gegensatz zu den problembereichsunabhängigen Anforderungen, die von einer großen Zahl an unterschiedlichen aber nur teilweise thematisch verwandten Beschreibungssprachen erfüllt werden, macht erst die Berücksichtigung der speziellen Probleme des Bereichs Fertigungslenkung die hier geforderte Spezifikationssprache aus. Insoweit muß bei der Ent129. 130. Vgl. [DaWi93b] Vgl. Anhang 8.1 Nutzung der Spezifikationssprache zur Simulation der Fertigungslenkung 42 Kapitel 2 wicklung dieser Sprache vorrangig darauf geachtet werden, daß sie die Daten- und Graphstruktur, die Abläufe und nicht zuletzt die Funktionen der Fertigungslenkung in geeigneter, und zwar in problembereichsorientierter und anwendungsnaher, Weise repräsentiert. Stand der Technik 3 43 Stand der Technik Dieses Kapitel stellt bestehende Ansätze zur Klassifikation und existierende Spezifikationssprachen für die Fertigungslenkung bzw. für Teilbereiche der Fertigungslenkung dar und evaluiert ihre Eignung bezüglich der im vorhergehenden Kapitel dargestellten Forderungen an die Lösung der dort beschriebenen Problematik. Der Bewertung der Klassifikationsansätze liegen dabei nicht nur die genannten Anforderungen sondern auch die in Kapitel 2 bereits entwickelte Klassifikation für die Fertigungslenkung zugrunde. Weiterhin muß bei der Validierung dieser Ansätze besonders beachtet werden, daß das entscheidende Ziel der Klassifikation die Erleichterung der Beschreibung in bzw. der Nutzung der Spezifikationssprache, also eine mächtige aber gut verständliche und damit leicht anwendbare Systematik ist. Die Zielvorstellung für die Sprache ist eine einheitliche, umfassende und problembereichsorientierte Darstellung der Fertigungslenkung, die es erlaubt, die so beschriebene Problematik direkt in ablauffähige Algorithmen in einer problembereichsunabhängigen Programmiersprache umzusetzen. Sowohl in Bezug auf die Klassifikation als auch auf die Spezifikationssprache werden im folgenden einerseits existierende Konzepte aus dem Themenbereich der Fertigungslenkung1, die bezüglich ihrer Inhalte bzw. Semantik, der inhaltlichen Strukturierung und ihrer formalen Beschreibung zu bewerten sind, und andererseits Konzepte aus verwandten Themengebieten, deren formale Struktur bzw. Syntax den dargestellten Anforderungen entsprechen, einer Evaluation unterworfen. Ein weiteres Unterscheidungsmerkmal der untersuchten Ansätze ist ihr Abstraktions- respektive ihr Detaillierungsgrad. Aufgrund der Verschiedenartigkeit der zu betrachtenden Konzepte werden in den folgenden Analysen jeweils zuerst allgemeinere und themenübergreifende Ansätze in ihrer Gesamtheit betrachtet. Anschließend wird auf die Eignung einiger spezieller Aspekte dieser Konzepte sowie spezifischere Konzepte, die sich nur auf Teilbereiche der Fertigungslenkung beziehen, zur Klassifikation bzw. als Spezifikationssprache für die Fertigungslenkung eingegangen. 3.1 Klassifikationen für die Fertigungslenkung Zur Klassifikation der Fertigungslenkung sind in der Literatur eine große Zahl sehr unterschiedlicher Ansätze zu finden. Wie oben bereits angedeutet, betrachten viele von ihnen jedoch entweder nur Teilbereiche bzw. -probleme der Fertigungslenkung (PPS), wie z.B. 1. Da der Begriff Fertigungslenkung in der Literatur nicht einheitlich verwendet wird, werden hier Ansätze aus dem gesamten Bereich der Produktionsplanung und -steuerung (PPS) untersucht. 44 Kapitel 3 bestimmte Fertigungslenkungsverfahren oder -aufgaben, oder auch nur spezielle Betriebstypen2. Ihnen liegt demnach entweder eine Orientierung nach Aufgaben oder nach Strukturen zugrunde. Mögliche Ausprägungen der verschiedenen Ausrichtungen dieser Ansätze sind Abbildung 3-1 zu entnehmen. Sie stellen entweder eine umfassende Systematik der Fertigungslenkung oder spezieller Fertigungssysteme, Fertigungssteuerungsaufgaben oder Fertigungslenkungsverfahren bzw. -methoden, also von Teilaspekten der Fertigungslenkung, dar.3 aufgabenorientiert strukturorientiert problemorientiert zeitorientiert auftragsorientiert prozeßorientiert produktorientiert Abbildung 3-1:Orientierungen der Klassifikationsansätze Andere Klassifikationsansätze basieren vorrangig auf bestimmten Planungskonzepten respektive Vorgehensstrategien4, wie z.B. dem Sukzessivplanungskonzept, das der Fertigungslenkung eine starre Gliederung (Struktur), ein Blockkonzept5, vorschreibt, oder bestands- bzw. engpaßorientierten Steuerungskonzepten. Auf diese Weise werden von den Ansätzen nur spezielle Sichten auf die Fertigungslenkung bzw. deren Teilbereiche dargestellt. In einigen Fällen umfassen diese Klassifikationen aber auch die gesamte Produktionsplanung und -steuerung und gehen somit, was den von ihnen betrachteten Problembereich angeht, über den der Fertigungslenkung, wie er in dieser Arbeit definiert wurde6, hinaus. Ihre Einteilung in Klassifikationskriterien beruht auf struktur- und prozeßorientierten Fragestellungen der Planung.7 In der vorliegenden Arbeit werden jedoch Planungsprobleme, die sich mit der Struktur des Unternehmens bzw. der Produktion befassen, ausgeklammert, da sie nicht Teil der Fertigungslenkung 2. 3. 4. 5. 6. 7. „Betriebstypen unterscheiden sich in ihren Sichtweisen auf das in der realen Welt existierende System der Unternehmung.“ [MSJ94], S. 25. Nach [DaWa97], S. 9 ff. sind Betriebstypen Kombinationen von verschiedenen Betriebsmerkmalen, wie z.B. Erzeugnisspektrum, -struktur, Fertigungsart u.a. So beziehen sich die bisherigen Ansätze zur hierarchischen Produktionsplanung sämtlich auf eine ganz bestimmte Produktionssituation, andere Probleme werden ausgespart (vgl. [Swi89], S. 50). Vgl. [Wie98], S. 86 ff. Vgl. die Unterteilung der Produktionsplanung in die Planung des Produktionsprogramms, der Bereitstellung der benötigten Produktionsfaktoren und die Planung des Produktionsprozesses in [Gut79] und die hierarchische Planung und Unterscheidung in strategische, taktische und operative Planung in [Schn94], [DSV93] und [Swi89], S. 7 ff. Vgl. Definition 1, S. 6 Vgl. [Brü95], S. 2 ff. Stand der Technik 45 sind, die von einem gegebenen Fertigungssystem ausgeht und sich nur mit prozeßorientierten Fragestellungen und zwar der Lenkungsstruktur der Prozesse befaßt. Die in Kapitel 2 entwickelte Klassifikation bildet im Gegensatz zu den meisten bisherigen Ansätzen durch eine kombinierte Betrachtung der Teilbereiche Fertigungslenkungsstrukturen, -abläufe und -funktionen die gesamte Fertigungslenkung ab. Sie geht dabei lenkungsstrukturorientiert vor, indem sie von einer Gliederung der Fertigung in Strukturprototypen ausgeht8 und diese Prototypen durch Angabe der auf ihnen durchzuführenden Abläufe und Funktionen näher spezifiziert. Als Grundlage dient ihr das Modell der Fertigungssteuerung9, welches das gegebene Fertigungssystem und die ihm zugrunde liegenden Daten abbildet. Zwar kann diese Klassifikation aufgrund der Forderung nach einer umfassenden Abbildung der Fertigungslenkung bei gleichzeitig angestrebter Verständlichkeit und Anwendbarkeit nicht so detailliert sein, wie einige der im folgenden noch ausführlicher dargestellten Ansätze, und bezieht deswegen z.B. die Aufgaben und Ziele von Fertigungslenkungsverfahren nicht mit ein. Sie erlaubt aber durch ihre Systematisierung nach Fertigungslenkungsstruktur, -abläufen und -funktionen einen vollständigen Überblick über die verschiedenen Ausprägungen der Fertigungslenkung. Es ist im weiteren nun herauszustellen, inwiefern die bisherigen Klassifikationen einerseits als Vorlagen der hier entwickelten Systematik dienen können, andererseits aber auch die gestellten Anforderungen nicht erfüllen bzw. ihnen sogar widersprechen. Dabei wird zuerst auf umfassende Klassifikationen der Fertigungslenkung bzw. Produktionsplanung und -steuerung aus verschiedenen verwandten wissenschaftlichen Forschungsfeldern eingegangen, um die Sinnhaftigkeit der Unterteilung der Klassifikation der Fertigungslenkung in die Kategorien Strukturen, Abläufe und Funktionen herauszustellen. Anschließend werden existierende Systematisierungsansätze zu diesen drei Teilbereichen eingehend untersucht. Die Analyse der Klassifikationsansätze beginnt mit der, dem weit verbreiteten Sukzessivplanungskonzept folgenden Gliederung nach Zeitbezug und Funktion, die bei verschiedenen Autoren zu finden ist.10 Im Anschluß daran wird die detaillierte Systematisierung von (diskreten) Produktionsprozessen durch Schomburg11 näher betrachtet. Als weitere umfassende Klassifikationsansätze aus dem Bereich der Produktionswirtschaft und Wirtschaftsinformatik 8. Vgl. Abschnitt 2.2.2.1 Klassifikationsmerkmal Fertigungslenkungsstruktur Vgl. Beschreibung des Modells der Fertigung in Abschnitt 2.1.1 Fertigungslenkung 10. Vgl. [Kur93], [Hac84], [Swi89] u.a. 11. Vgl. [Scho80] - ähnliche Typologien wurden auch in [Hoi93] in Anlehnung an [Hah72] und [Hac89] entwickelt. 9. 46 Kapitel 3 (Unternehmensmodellierung) werden dann CIM-OSA12, das Aachener PPS-Modell13, das ARIS-Konzept von Scheer14, die Dimensionierung von Wiendahl und Balve15 sowie das Modell und die Klassifikation für die Fertigungssteuerung von Schneider16 untersucht. Diese Konzepte erlauben eine breitere, d.h. über den Themenbereich Fertigungslenkung hinausgehende, Nutzung und sind somit vielfältig einsetzbar. Gleichzeitig bilden Sie aber auch die Fertigungslenkung detailliert und umfassend ab. Auf spezielle Teilbereiche dieser Ansätze wird darüber hinaus in der anschließenden Betrachtung der drei Klassifikationskriterien noch näher eingegangen. Vorher werden jedoch einige Klassifikationsansätze aus dem Operations Research bezüglich der hier spezifizierten Anforderungen analysiert. Das Sukzessivplanungskonzept, das darauf beruht, die verschiedenen Teilbereiche der Fertigungslenkung getrennt und nacheinander zu bearbeiten, hat zur Differenzierung in die zeitorientierten Kategorien, strategische, taktische und operative Planung, geführt.17 Die Funktionen dieser Bereiche lassen sich noch weiter untergliedern. So umfaßt die operative Planung, die in etwa der hier betrachteten Fertigungslenkung entspricht, die Teilbereiche:18 • Produktionsprogrammplanung • Bedarfsplanung • Terminplanung • Maschinenbelegungsplanung Die Problematik dieser Gliederung liegt in der nicht vorhandenen eindeutigen Festlegung der Zeitbezüge und damit der fehlenden Trennung zwischen den unterschiedlichen Funktionsbereichen. Teilweise werden diese Bereiche von Autoren auch verschieden genutzt, so daß es zu Überschneidungen bezüglich ihrer Funktionen kommt.19 Außerdem ist die beschriebene Klassifikation im Konzept des sukzessiven Planens verankert und erlaubt nur bedingt eine Loslösung hin zur flexiblen Simultanplanung. Diese ermöglicht es erst, Einflüsse zwischen Mengen-, Zeit- und Kapazitätsplanung abzubilden. Somit ist die Sicht bzw. Abbildungsmöglichkeit 12. 13. 14. 15. 16. 17. 18. 19. Vgl. [AMI89] und [MSJ94], S. 59 Vgl. [Scho98], S. 10 f. Vgl. [Schee98], S. 10 ff. Vgl. [WiBa98] Vgl. [Schn96] Klassifikation für Fertigungssteuerungsaufgaben und -verfahren Vgl. [DSV93], S. 2, [Brü95], S. 3 f., [Kur83], S. 15 f., [Zäp82], S. 34 ff. Vgl. [Kur83], S. 16 f. Vgl. [Schn96], S. 39 ff. Stand der Technik 47 durch diese Gliederung sehr eingeschränkt und erlaubt keine vollständige Klassifikation der Fertigungslenkung. Eine etwas anders geartete Klassifikation, die ebenfalls die Fertigungslenkung abbildet, stellt die Kategorisierung nach Betriebstypen von Schomburg20 dar. Seine Systematik beruht auf dem Standpunkt, daß Produktionsunternehmen sich neben den hergestellten Produkten und ihrer Größe hauptsächlich darin unterscheiden, welche Organisationsform in der Fertigung vorherrschend ist. Er typisiert demzufolge Produktionsunternehmen nach den folgenden Produktionsmerkmalen: • Erzeugnisstruktur • Auftragsauflösungsart • Dispositionsart • Beschaffungsart • Fertigungsart • Fertigungsablauf • Fertigungsstruktur21 Seine Systematisierung beinhaltet neben Kriterien zur Klassifikation der Eigenschaften und Struktur der Fertigung auch solche zur Klassifikation der Struktur und des Ablaufs der Fertigungslenkungsverfahren. Allerdings geht er dabei nicht näher auf die einzelnen Funktionen und Abläufe dieser Verfahren ein. Darüber hinaus sind seine Merkmale aufgrund ihrer rein verbalen Beschreibung teilweise etwas ungenau. Insofern kann dieser Klassifikationsansatz zwar zur Ermittlung betrieblicher Anforderungen von Fertigungslenkungssystemen genutzt werden, jedoch verwendet Schomburg auch einige Kriterien, wie z.B. die Auftragsauslösungs22 und die Beschaffungsart23, die für die hier geforderte Klassifikation der Fertigungslenkung nur indirekt und in begrenztem Maße Relevanz besitzen und zwar indem sie Abläufe und Funktionen beeinflussen. Andererseits bleiben einige wichtige steuerungs- und planungsrelevante Aspekte, wie z.B. Restriktionen oder Zeitbezüge, in seiner Klassifikation unbeachtet.24 20. Vgl. [Scho80] Fertigungsstruktur bezeichnet bei Schomburg die Tiefe des Fertigungsprozesses bei der Herstellung der Erzeugnisse. Dieses steht nicht ganz im Einklang mit dem Begriffsverständnis in dieser Arbeit (vgl. Abschnitt 2.1 Begriffserklärungen). 22. Die Auftragsauslösungsart beschreibt die Bindung der Fertigung an den Absatzmarkt. 23. Die Beschaffungsart stellt den Umfang des Einsatzes von fremdbezogenen Materialien und Halbfabrikaten im Rahmen der Fertigung dar. 24. Vgl. [Fel96], S. 53 21. 48 Kapitel 3 Die im europäischen ESPRIT-Projekt entwickelte „Open System Architecture for CIM“ (CIM-OSA) stellt einerseits ein Rahmenwerk der Systemintegration dar, das die Grundlage der Unternehmensmodellierung bildet, und andererseits eine informationstechnische Umgebung, die das implementierte rechnergestützte Modell mit den steuernden Informationssystemen verknüpft. Allgemeine Konstrukte ermöglichen Einheitlichkeit im Vorgehen und in der Beschreibung der Modelle. CIM-OSA ist untergliedert in vier Sichtweisen: • Organisationssicht • Ressourcensicht • Informationssicht • Funktionssicht Bezüglich jeder dieser Sichten gibt es als weitere Strukturierungen auf der einen Seite die Modellierungsebenen Anforderungen, Design und Implementierung sowie auf der anderen Seite die Architekturebenen generische Bausteine, partielle Modelle und spezifische Modelle. Der Modellierungsansatz von CIM-OSA ist ereignisorientiert und basiert auf Prozessen (Geschäftsprozessen). Nach Aussage seiner Entwickler ist er geeignet für die Analyse, das Design und die Spezifikation von Unternehmen und deckt dabei den Material-, Informationsund Steuerungsfluß in einheitlicher Weise ab.25 Somit ist der durch dieses Rahmenwerk klassifizierte Bereich weitaus umfassender als der in dieser Arbeit geforderte und nicht speziell auf die Problematik der Fertigungslenkung ausgerichtet. Dieses weite Spektrum erschwert die Anschaulichkeit und Anwendbarkeit der Strukturierung. Außerdem fehlt eine Verknüpfung zwischen den Sichten, so daß Zusammenhänge und gegenseitige Einflußnahme der Bereiche unbeachtet bleiben. Vorteilhaft an diesem Ansatz ist dagegen die Verwendung von generischen Bausteinen, die universell einsetzbar sind und als Vorbild der hier zu entwickelnden Methodenbausteine für die Spezifikationssprache dienen können. Das Aachener PPS-Modell wurde entwickelt, um das Erarbeiten von PPS-Konzepten, die Erstellung von PPS-Systemen oder auch die Reorganisation der PPS zu unterstützen. Innerhalb dieser Projekte sollen verschiedene Teilaspekte der PPS aus unterschiedlichen Blickwinkeln beschrieben und damit die Ermittlung von PPS-Zielausprägungen sowie die Anwendung von Gestaltungs- bzw. Optimierungsmethoden unterstützt werden. Insoweit lassen sich eindeutige Parallelen zur Aufgabenstellung der hier entwickelten Klassifikation ziehen. Zur Hervorhebung der verschiedenen Teilaspekte des Fertigungsmodells nimmt das Aachener PPS-Modell 25. Vgl. [Ver93], S. 66 f. Stand der Technik 49 ebenso wie auch CIM-OSA eine Unterteilung in vier Referenzsichten vor, die für bestimmte Verwendungszwecke prädestiniert sind: • Aufgabensicht • Prozeßsicht • Funktionssicht • Datensicht Jedoch umfassen die Kern- und Querschnittsaufgaben des Modells auch Aufgabenbereiche, die entsprechend der in Kapitel 2 angeführten Definition nicht zur Fertigungslenkung gehören. Somit wird durch dieses Modell ebenfalls ein größerer Problembereich klassifiziert, als aufgrund der Aufgabenstellung gefordert ist, worunter einerseits die Übersichtlichkeit und andererseits der Bezug zur speziellen Problematik der Fertigungslenkung leidet. Außerdem sind die verschiedenen Sichten des PPS-Modells durch unterschiedliche Darstellungsarten und Formulierungen stark voneinander abgegrenzt, was ihre Integration und damit eine einheitliche und umfassende Abbildung erschwert. Die Systematisierung nach Auftragsabwicklungsprozessen, Funktionen und Daten ermöglicht jedoch eine eindeutige und vollständige Darstellung der Fertigungslenkung und wird deswegen in etwas abgewandelter Form in der vorliegenden Arbeit verwendet. Die Abwandlung bezieht sich dabei in erster Linie auf die Prozeßreferenzsicht, die im Aachener PPS-Modell auf Aufträge bzw. Auftragsprogramme bezogen ist, während in der hier entwickelten Klassifikation Prozesse der Fertigungslenkung mit ihrer Ablaufstruktur und Funktionalität in Strukturprototypen im Vordergrund stehen. Die auftragsorientierte Ausrichtung des Aachener PPS-Modells aber beschränkt die Allgemeingültigkeit und Anwendbarkeit dieses Ansatzes, da sie eine spezielle Sichtweise auf die Fertigungslenkung vorschreibt. Der Ansatz dieser Arbeit dagegen läßt verschiedene Orientierungen zu und erleichtert damit dem Nutzer die Anwendung, da dieser seine eigene Sichtweise, insofern sie mit der geforderten nicht konform ist, nicht erst konvertieren muß. Daneben folgt das Aachener PPS-Modell einer sukzessiven Planung nach dem MRP-Konzept26, wodurch eine weitere klare Einschränkung des betrachteten Problembereichs erfolgt und die Anforderung einer exhaustiven Abbildung nicht mehr erfüllt ist. Eine weitere Klassifikation für die Fertigungslenkung bietet Scheer mit seinem Konzept „Architektur integrierter Informationssysteme“ (ARIS). Dieses hat zur Aufgabe, betriebswirt26. Bei der Materialbedarfsplanung (MRP - Material Requirements Planning) werden ausgehend von prognostizierten Primärbedarfsmengen der Endprodukte Sekundärbedarfsmengen an Zwischenprodukten und Rohstoffen als Grundlage für die Losbildung auf allen Dispositionsstufen bestimmt (vgl. [KiSt93], S. 43 ff.). 50 Kapitel 3 schaftliche Tatbestände, welche die Basis von Informationssystemen, wie z.B. auch Fertigungslenkungsystemen, bilden, zu beschreiben. ARIS beinhaltet ein Modell für Unternehmensprozesse, welches aufgrund seiner hohen Komplexität ebenfalls in verschiedene Sichten unterteilt ist und darüber hinaus ein Konzept verschiedener Beschreibungsebenen mit unterschiedlicher Nähe zur Informationstechnik besitzt. Die Zerlegungssystematik des Modells basiert auf den Charakteristika Daten, Funktionen und Organisation. Um die Zusammenhänge zwischen diesen drei Sichten nicht zu verlieren, wird mit der Steuerungssicht die Verbindung zwischen den anderen Komponenten hergestellt, und alle Sichten werden auf diese Weise zu einem erweiterten Vorgangskettenmodell zusammengefaßt. Die Beschreibungsebenen besitzen jeweils spezifische Beschreibungssprachen, die im Abschnitt 3.2 Spezifikationssprachen für die Fertigungslenkung näher betrachtet werden. Das ARIS-Konzept nimmt eine, dem Aachener PPS-Modell ähnliche, Systematisierung relevanter Modellaspekte vor, indem es den Organisationsaspekt miteinbezieht. Dabei geht es zwar von einer prozeßorientierten Sichtweise der Fertigung aus, was jedoch ebenfalls eine Einschränkung darstellt, da sie Orientierungen nach den Dimensionen Zeit, Produkt oder Aufgabe nicht miteinschließt. Hinzu kommt auch hier, daß der klassifizierte Bereich über den Problembereich Fertigungslenkung hinausreicht. Allerdings bildet die Aufteilung in Daten-, Funktionen- und Steuerungssicht eine geeignete Grundlage zur Klassifikation der Fertigungslenkung und stellt eine exhaustive Abbildung der Inhalte dar.27 Trotzdem entspricht diese Gliederung im ARIS-Konzept aufgrund ihrer Detailliertheit einerseits und der vielfältigen und nicht einheitlichen Darstellungsformen in den einzelnen Sichten andererseits nicht den Anforderungen an die Klassifikation bezüglich einer leichten Anwendbarkeit und guten Übersichtlichkeit. Ebenso wie im Aachener PPS-Modell untergliedern Wiendahl und Balve28 die PPS in vier Dimensionen. Allerdings gehen sie dabei nicht von verschiedenen Sichtweisen sondern den unterschiedlichen Elementen dieses Problembereichs aus. Abgeleitet von den vier entscheidenden Fragen im Rahmen der Produktionsplanung und -steuerung: „Was?“, „Wieviel?“, „Wann?“ und „Wo?“ bzw. „Durch wen?“, nehmen sie eine Strukturierung in die folgenden Dimensionen vor: • Produkt • Auftrag 27. Zu beachten ist hier weiterhin, daß auch Scheer in seinem Y-Modell ([Schee98], S. 91 ff.) von einer Sukzessivplanung ausgeht. 28. Vgl. [WiBa98] Stand der Technik 51 • Ressource • Prozeß Jede dieser Dimensionen ist durch eine große Zahl verschiedener Beschreibungsgrößen mit jeweils speziellen Ausprägungen charakterisiert, wodurch die Klassifikation ein sehr weites Spektrum umfaßt. Allerdings sind die möglichen Ausprägungen dieser Größen nur beispielhaft und nicht vollständig vorgegeben, so daß kein detailliertes Schema zur genauen Systematisierung der PPS gegeben und außerdem die Vergleichbarkeit von Ausprägungen klar eingeschränkt ist. Obendrein entspricht diese Klassifikation somit nicht den Forderungen nach Übersichtlichkeit und begrenzter Mächtigkeit. Das Ableiten von Gestaltungsempfehlungen für die Auswahl bzw. Neugestaltung von PPS-Konzepten auf Basis dieser nicht vollständigen Abbildung ist nur schwer möglich, da nicht alle Kriterien des jeweiligen Problems beschrieben werden. Indessen ist die Klassifikation und Konzeption der PPS-Prozesse abgeleitet aus den Strukturvorgaben der Dimensionen und entsprechender Methoden ein probates Mittel, bei dem es nur an der fehlenden Einbeziehung der Abläufe mangelt. Die von Wiendahl und Balve angestrebte gleichzeitige Berücksichtigung von Aspekten der Produktions- und Produktstrukturierung zur Vereinfachung der Planungs- und Steuerungsabläufe ist in der hier entwickelten Klassifikation durch das zugrunde liegende Modell der Fertigung und die Nutzung von Strukturprototypen, von denen beide Strukturarten abgebildet werden, gegeben. Schneider29 führt ihre Klassifikation von Fertigungssteuerungsaufgaben und -verfahren30 nach gemeinsamen Problem- oder Lösungseigenschaften und speziellen Modelleigenschaften des Modells der Fertigungssteuerung31 durch. Sie gründet ihren Ansatz auf Arbeiten zur Klassifikation von Ferstl und Sinz32, die in ihrem Semantischen Objektmodell (SOM) eine explizite Modellierung von Aufgaben vornehmen. Im Gegensatz zu bisherigen Klassifikationen aus der Produktionswirtschaft und anderen Wissenschaftsgebieten, die in erster Linie problemrelevante Eigenschaften des Produktionsprozesses, wie z.B. die Produktionsart, den Produktionstyp u.a., oder der Produktionsplanung und -steuerung sowie den Zeitbezug und die Funktionalität durch Merkmale systematisieren, stellt Schneider Ziele und Fragestellungen der Fertigungssteuerungsaufgaben in den Vordergrund. Dieses entspricht nur begrenzt den hier 29. Vgl. [Schn96], S. 194 ff. Auf die von Schneider vorgenommene Klassifikation von Fertigungssteuerungsverfahren wird im Abschnitt 3.1.3 Klassifikationen für Fertigungslenkungsfunktionen noch näher eingegangen. 31. Zur Beschreibung des Modells der Fertigung(-steuerung) siehe Abschnitt 2.1.1 Fertigungslenkung. Schneider hat einerseits ein Modell für Fertigungssteuerungsaufgaben und andererseits ein Modell für Fertigungssteuerungsverfahren entwickelt. 32. Vgl. [FeSi98], S. 172 ff. 30. 52 Kapitel 3 gestellten Anforderungen, nach denen die Klassifikation eine Einordnung der zu lösenden Entscheidungsprobleme und ihrer zugrunde liegenden Fertigungslenkungstruktur und -abläufe als Grundlage der Spezifikationssprache vornehmen soll. Die Ziele bzw. Lösungen dieser Entscheidungsprobleme stellen kein Klassifikationskriterium dar. Schneider nimmt im Rahmen der Klassifikation also eine klare Trennung zwischen Fertigungssteuerungsaufgaben und -verfahren vor, sieht jedoch andererseits auch eine enge Verknüpfung dieser beiden Bereiche, was sie durch die gemeinsame Basis, das Modell der Fertigungssteuerung, verdeutlicht. Anstelle einer Merkmalsliste als Beschreibung der von ihr definierten Klassen entwickelt Schneider Repräsentanten33, in denen mehr Information über die Problemstruktur erhalten bleibt und die gleichzeitig einen hohen Grad an Verständlichkeit und Anwendbarkeit besitzen. Dabei geht sie davon aus, daß Fertigungssteuerungsaufgaben hierarchisch in unabhängige Fertigungssteuerungsteilaufgaben zerlegt werden können und nimmt deswegen eine Untergliederung in Mikro- und Makrostrukturen34 vor, auf die im folgenden noch näher eingegangen wird. Im hier entwickelten Klassifikationsansatz wird dagegen die gesamte Fertigungslenkung strukturbezogen und nicht in Aufgaben und Verfahren aufgesplittet systematisiert. Aus diesem Grund enthält diese Klassifikation neben dem Kriterium Fertigungslenkungsstruktur, das, abgesehen von dem höheren Aggregationsgrad, weitestgehend den Merkmalen Graph des Produktionsablaufs aus den Mikro- und Makrostrukturen entspricht, noch die Kriterien Fertigungslenkungsabläufe und -funktionen zur Systematisierung der Verfahren bzw. Methoden der Fertigungslenkung. Zwischen diesen einzelnen Teilstrukturen bestehen aber ebenfalls enge Verbindungen. Ausgangspunkt der Klassifikation von Schneider, wie auch der hier entwickelten Systematisierung, ist das Modell der Fertigung (-steuerung), das die Eigenschaften dieses Problembereichs umfassend abbildet. Die Nachteile der Klassifikation von Schneider sind einerseits die Trennung von Fertigungssteuerungsaufgaben und -verfahren, die eine einheitliche und umfassende Klassifikation der gesamten Fertigungslenkung erschwert, und andererseits die aufgrund ihrer Detailliertheit sehr komplizierte und arbeitsaufwendige Anwendung der Repräsentantenschemata. Die hier entwickelte Klassifikation nimmt keine derart detaillierte Strukturierung respektive Beschreibung vor, wie sie durch die Untergliederung in Mikro- und Makrostrukturen entsteht, da sie als Grundlage der Spezifikationssprache die Aufgabe einer Vorstrukturierung erfüllt.35 Vielmehr 33. Zur Definition von Repräsentanten siehe Abschnitt 2.2.2 Klassifikationsmerkmale der Fertigungslenkung 34. Zur Definition von Mikro- und Makrostrukturen siehe [Schn96], S. 196 ff. 35. Sie ist sozusagen der Wegbereiter der Spezifikationssprache. Stand der Technik 53 verwendet sie aggregiertere Modellstrukturen und zwar Strukturprototypen, die jedoch ebenfalls aufgrund der dargestellten Vorteile dieser Abbildungsart mit Repräsentanten beschrieben werden. Die Nutzung dieser Prototypen ist für die Anwender in der Fertigung, die bei der in dieser Arbeit entwickelten Klassifikation im Vordergrund stehen, weitaus unkomplizierter und damit effizienter durchführbar. Die zu lösenden Entscheidungsprobleme und die ihnen zugrunde liegenden Vorgehensweisen werden darüber hinaus durch die verwendeten Klassifikationsmerkmale Abläufe und Funktionen genauer spezifiziert als in der Klassifikation von Schneider. Auf diese Problematik wird im Rahmen der Untersuchung der Klassifikationen für Fertigungslenkungsfunktionen noch näher eingegangen. Dagegen werden das Formalziel der Fertigungssteuerungsaufgabe und spezielle Ereignistypen nicht in die Systematik miteinbezogen, da die Funktionen und Abläufe einer Fertigungslenkungsproblematik, nicht aber die Lösung bzw. das Ziel, klassifiziert werden sollen. Neben diesen Klassifikationen aus der Produktionswirtschaft und Wirtschaftsinformatik, welche die Fertigungslenkung entweder in verschiedene Sichten unterteilen oder sie nach ihren Elementen strukturieren, werden im weiteren auch Ansätze aus dem Bereich Operations Research untersucht. Bei diesen geht es im allgemeinen um die Lösung spezieller Entscheidungsprobleme der Fertigungslenkung mit Hilfe von Algorithmen (Verfahren) auf Basis eines mathematischen Modells. Außerdem behandeln sie die Analyse und Bewertung der Lösungen dieser Probleme. Brucker36 nimmt in seiner auf Schedulingprobleme37 zugeschnittenen Klassifikation eine Strukturierung dieses Problemfeldes nach drei Hauptkriterien vor: den Job- oder Auftragscharakteristika, den Maschinencharakteristika (Nachfolgestruktur) und der Zielfunktion bzw. -setzung.38 Sein Klassifikationsschema geht auf die Arbeiten von Conway, Maxwell und Miller39 zurück und hat folgende Form: 1. Job- oder Auftragscharakteristika • Anzahl der Jobs (Tätigkeit bestimmter Dauer) • Kapazitätsrestriktionen (Anzahl der Maschinen) • Unterbrechbarkeit • Bereitstellungstermine (Auftragsfreigabetermine) 36. Vgl. [Bru81] Schedulingprobleme sind Probleme der Maschinenbelegung, in denen es um die Ausführungsreihenfolge von Aufträge auf Maschinen geht. 38. Vgl. [DSV93], S. 253 ff. 39. Vgl. [CMM67] 37. 54 Kapitel 3 • Einschränkungen der Durchführungsdauern (Bearbeitungszeiten) • Reihenfolgebeziehungen: • Montagestruktur • Sortierstruktur • Baumstruktur 2. Maschinencharakteristika (Nachfolgestruktur): • voneinander unabhängige Jobs • Open-shop • Flow-shop • Job-shop 3. Zielfunktion Die einzelnen Jobs lassen sich in verschiedene Arbeitsgänge unterteilen, zwischen denen häufig spezielle Beziehungen bestehen. Allerdings ist dieser Klassifikationsansatz von Brucker auf die Kapazitätsplanung (Maschinenbelegungsplanung) beschränkt. Mengenplanungsprobleme sowie Mengenrestriktionen, die wichtige Kriterien für die Fertigungslenkung darstellen, werden nicht beachtet. Außerdem ist die betrachtete Fertigungslenkungsstruktur sehr begrenzt, und einige der Maschinencharakteristika werden nur in speziellen Ausprägungen betrachtet. Aus diesem Grund ist die Systematik zwar für die Darstellung bestimmter Schedulingprobleme geeignet, sie erlaubt aber keine umfassende Abbildung der Problematik der Fertigungslenkung. Brucker klassifiziert dementsprechend nur reduzierte Problemstellungen, so daß sich insbesondere wichtige Aspekte der Ablaufplanungsprobleme aufgrund der vielen einschränkenden Annahmen nicht adäquat darstellen lassen.40 Weiterhin ist die mathematische Modellierung einerseits praxisfremd bzw. -fern und andererseits starr und unflexibel bezüglich zukünftiger Änderungen und Entwicklungen. Indessen sind die betrachteten Job- und Maschinencharakteristika auch entscheidende Inhalte des Klassifikationskriteriums Fertigungsstruktur in der hier entwickelten Klassifikation, das durch den Modellierungsansatz MFERT abgebildet wird. Das Modell bzw. der Modellgraph stellt sowohl Nachfolgebeziehungen zwischen Jobs respektive Produktbeziehungen, wie z.B. Montage- oder Sortierstrukturen, als auch die Relationen zwischen den Maschinen bezüglich der einzelnen Jobs dar. Weitere Charakteristika, wie z.B. Auftragszahl, Unterbrechbarkeit, usw. werden durch die Attribute und Restriktionen im Modell bzw. in der Modelldatenbank abgebildet. In den folgenden Abschnitten, die sich speziell auf die drei entwickelten Klassifi40. Vgl. [Sau93], S. 23 Stand der Technik 55 kationskriterien beziehen, werden einige Besonderheiten der Klassifikation von Brucker noch eingehender behandelt. Ein weiterer beachtenswerter Ansatz ist die Modell- und Algorithmenbank von Stanek.41 Diese ist deswegen von Interesse, da sie Modelle und Algorithmen zur Homogenisierung, Dimensionierung und Verifikation von Fertigungssteuerungstrategien bereitstellt. Somit bietet sie auch eine Abbildung der Fertigungslenkung. Als zentrales Problem der Fertigungslenkung sieht Stanek die Lösung des reihenfolgeabhängigen Prozesses der Maschinenbelegung und in Abhängigkeit davon die Lösung anderer Teilprozesse der Fertigungssteuerung an. Seine Modelle und Algorithmen basieren auf der Graphentheorie. Er systematisiert sie durch eine aus drei Ebenen bestehende Hierarchie des Fertigungsprozesses, die mit der Gliederung im Rahmen des Sukzessivplanungskonzepts vergleichbar ist, da die einzelnen Ebenen unterschiedliche Zeitbezüge besitzen. Allerdings umfassen die zweite und dritte Ebene dieser Hierarchie Aufgaben, die nicht zur Fertigungslenkung, wie sie hier definiert ist, gehören. Auf der ersten Ebene, auch Fertigungsplanung genannt, definiert Stanek neun Grundfunktionen: • Aufbau der Simulationsreihenfolge für Neuvorgaben • Ermittlung der Systemeinschleustermine und der Systemeinschleusreihenfolge • Ressourcenoptimierung • simultane Durchlaufplanung • Arbeitsplatzgruppenbelegung • Planung der Prozeßvoraussetzungen • Arbeitsplatzbelegungssimulation • Vorabforderung von Prozeßvoraussetzungen • dialoggestützte Arbeitsplatzzuordnung Diese Aufzählung der Funktionen bzw. Algorithmen kann jedoch nicht als Klassifikation verstanden werden, dazu fehlt eine erkennbare Systematik. Stanek beschreibt die Struktur der Fertigung als Vorgangsknotengraphen, verknüpft diesen allerdings nicht mit den herausgearbeiteten Grundfunktionen. Außerdem bieten seine Graphen zwar die Möglichkeit Reihenfolgeprobleme, wie z.B. durch den Einsatz von Prioritätsregeln, zu lösen, sie sind jedoch nicht geeignet für die Bestands- und Bedarfsermittlung, die ebenfalls sehr wichtige Aspekte der Fertigungslenkung darstellen. Demzufolge beschränkt sich dieser Ansatz wie 41. Vgl [Sta88] 56 Kapitel 3 auch schon der von Brucker nur auf Teilbereiche der Fertigungslenkung und kann keine vollständige Klassifikation bieten. Insgesamt läßt sich bezüglich der Klassifikationen aus dem Operations Research feststellen, daß sie fast immer zu abstrakt und zur reinen Erklärung nicht aber zur Anwendung gedacht sind. Außerdem betrachten sie nur spezielle Teilbereiche der Fertigungslenkung und diese wiederum unter einschränkenden Annahmen, so daß eine derartige Klassifikation niemals, wie gefordert, exhaustiv sein kann. Schließlich erfordern sie auch stets eine mathematische Modellierung, die den Anforderungen nach leichter Verständlichkeit und Anwendbarkeit widerspricht. Die in Kapitel 2 zur Klassifikation vorgenommene Aufteilung in Strukturen, Abläufe und Funktionen der Fertigungslenkung, insbesondere die Trennung von Abläufen und Funktionen, findet sich in Ansätzen bereits bei Hartmann. Er definiert seine Methoden zur Definition von Funktionshierarchien und Abläufen, die er zusammensetzt zu Methoden zur Definition von hierarchischen Abläufen, auf der Basis des Modells der Fertigungssteuerung, welches die zugrunde liegende Struktur abbildet.42 Allerdings geht es bei Hartmann um die Klassifikation von Methoden zur Definition hierarchischer Abläufe, also nur um einen Teilbereich der Fertigungslenkung. Sein Ansatz wird deswegen im Rahmen der Analyse von Klassifikationen für Fertigungslenkungsabläufe in Abschnitt 3.1.2 im Detail behandelt. Die Gliederung in Strukturen, Abläufe und Funktionen wird auch in der Strukturierten Programmierung, einer Entwurfsmethodik aus der Softwaretechnik, genutzt, die im Rahmen der Spezifikationssprache in Abschnitt 3.2 ebenfalls einer näheren Betrachtung unterzogen wird. Die Strukturierte Programmierung bzw. der Strukturierte Programmentwurf ist eine Topdown-Vorgehensweise, deren Entwurfsphase bei der Analyse der zu lösenden Aufgabe zu beginnen hat und von ihrer Implementierung und damit dem Arbeitsmittel, das die Aufgabe später einmal übernimmt, abstrahiert.43 Insoweit ist sie auch im Rahmen der Klassifikation der Fertigungslenkung einsetzbar. Der Strukturierte Programmentwurf sieht eine schrittweise Verfeinerung der Problemstellung und eine Abbildung der Aufgaben nach dem Blockkonzept bzw. -diagramm vor. Dabei erfolgt eine Aufteilung in die Teilbereiche Strukturierung der Funktionen, des Ablaufs und der Daten. Diese drei Aspekte sind voneinander abhängig, beeinflussen sich gegenseitig und dürfen demnach nicht isoliert betrachtet werden. 42. 43. Vgl. [Hart95], S. 14 ff. Vgl. [Schu82] Stand der Technik 57 Strukturierte Programmierung Strukturierung der Funktionen Strukturierung des Ablaufs Strukturierung der Daten Abbildung 3-2:Modellvorstellungen in der Strukturierten Programmierung Mit dieser Vorgehensweise gemein hat die hier entwickelte Klassifikation als ganz entscheidenden Faktor die Nähe zur Umsetzung der systematisierten Sachverhalte. Außerdem bestehen in beiden Ansätzen enge Verknüpfungen zwischen den drei Segmenten, die eine isolierte Betrachtung der Teilbereiche verbieten. Eine weiterführende Detaillierung der Problemstellung wird in dem in dieser Arbeit verfolgten Ansatz durch die Spezifikationssprache, deren Grundlage die Klassifikation ist, verwirklicht. Nachdem die Aufteilung in die Klassifikationskriterien Fertigungslenkungsstrukturen, -abläufe und -funktionen auf der Basis bestehender Ansätze analysiert und insbesondere auf die Ansätze von Schneider, Hartmann und der Strukturierten Programmierung zurückgeführt wurde, werden nun einige Arbeiten bezüglich Ihrer Güte zur Klassifikation dieser drei Teilaspekte untersucht. 3.1.1 Klassifikationen für Fertigungslenkungsstrukturen Unter Fertigungslenkungsstruktur ist nach Definition 10 die Ablaufstruktur der Fertigungslenkungsvorgänge, die räumliche, zeitliche und sachliche Strukturierung dieser Vorgänge, zu verstehen. Somit müssen die Ausprägungen des Klassifikationskriteriums Fertigungslenkungsstruktur diese drei Dimensionen repräsentierten. Systematisierungen in Teilstrukturen der Fertigung sind in der Literatur in vielfältiger Form zu finden. In erster Linie wird dabei nach Produkten, Material oder Betriebsmitteln, Prozessen, Fertigungs- bzw. Dispositionsstufen oder auch nach Planungsstufen gegliedert.44 Die Problematik all dieser Klassifikationen liegt jedoch einerseits darin, daß sie die Fertigungslenkung im speziellen nur bedingt abbilden, und andererseits in ihrer nur auf bestimmte Aspekte der Fertigung beschränkten Sicht, die keine vollständige Abbildung der Fertigungslenkungsstrukturen erlaubt. Vor allem die zeitliche Strukturierung wird in fast allen dieser Ansätze, wie z.B. im integrierten Produktionsprozeß44. Vgl. [Ada69], S. 25 ff., [Cor98], S. 31 ff., [Zäp82], S. 15. ff., [DaWa97], S. 222 ff. u.a. 58 Kapitel 3 modell45 oder dem funktionalen Modell des rechnerintegrierten Produktionsprozesses46, nicht oder nur teilweise berücksichtigt.47 Um auch das zeitliche Verhalten eines Fertigungsablaufs abzubilden, verwendet Hartmann als Grundlage seiner Klassifikation von Methoden zur Definition hierarchischer Abläufe das Modell der Fertigungssteuerung.48 Allerdings bezieht sich seine Klassifikation nicht direkt auf die Fertigungslenkung sondern auf spezielle Methoden, die zu ihrer Definition verwendet werden. Auch seine Klassifikation der Methoden zur Strukturierung, die er nach den Dimensionen der Strukturierungsmethode und dem Detaillierungsgrad der Strukturierung vornimmt, beschäftigt sich mit der Struktur der Abarbeitungsmethoden und nicht der gesamten Fertigungslenkung. Aus diesem Grund kann seine Klassifikation nicht als Grundlage für das hier betrachtete Kriterium Fertigungslenkungsstrukturen dienen. Schneider49 klassifiziert in ihrer Arbeit, wie oben bereits dargestellt, die Fertigungslenkungsstruktur in Mikro- und Makrostrukturen. Klassifikationsmerkmale der Mikrostrukturen sind der Graph des Produktionsablaufs, die Ereignistypen, die Restriktionen und die Aufgabenstellung. Die Makrostruktur wird durch die Repräsentanten Graph des Produktionsablaufs, Restriktionen, Aufgabenstellung und Formalziel dargestellt. Diese sehr detaillierte Beschreibung der Struktur widerspricht der hier geforderten begrenzten Mächtigkeit und guten Übersichtlichkeit. Nur durch eine Abstraktion der Mikro- und Makrostrukturen kann die Klassifikation den Anforderungen nach Anwendbarkeit und leichter Verständlichkeit genügen. Allerdings bietet das Modell der Fertigung(-steuerung), auf dem die Klassifikationen von Schneider und Hartmann basieren, obwohl es nicht als Klassifikationsansatz entwickelt wurde, auch eine ideale Ausgangsbasis zur hier geforderten abstrakteren aber immer noch genauen Darstellung der Fertigungslenkungsstrukturen. Sein besonderer Vorteil liegt darin begründet, daß es nicht auf bestimmten Vorgaben oder einer speziellen Sichtweise beruht und auf diese Weise die Strukturen vollständig abbilden kann. Basierend auf dem formalen Fertigungssteuerungsmodell von Schneider hat Kuhn50 konkrete Bausteine der generischen Modellierungsmethode für Produktionsaufgaben entwickelt. Diese bringen Merkmale und Ausprägungen von Produktions- und PPS-Aufgaben in die Modellie45. 46. 47. 48. 49. 50. Vgl. [WaAu96] Vgl. [Harr84] Vgl. [Kuh98], S. 47 ff. Vgl. [Hart95], S. 28 f. Vgl. [Schn96], S 196 ff. Vgl. [Kuh98], S. 79 ff. Stand der Technik 59 rung mit ein und ermöglichen somit die Anwendung im individuellen Einzelfall. Auf diese Weise erfolgt eine Darstellung in allen Einzelheiten, die nicht nur die Struktur sondern teilweise auch die Abläufe und Funktionen der Fertigungslenkung (insbesondere die Restriktionen) mit einschließt. Allerdings widerspricht dieses, sich auf den individuellen Einzelfall beziehende und sehr detaillierte Vorgehen den hier gestellten Anforderungen an eine allgemeine und umfassende Klassifikation von begrenzter Mächtigkeit. Die geforderte Abstraktion der Klassifikation wird durch die Nutzung von Strukturprototypen erreicht, die Felser51 in seiner Arbeit einführt. Diese Prototypen stellen eine redundanzfreie Repräsentation der Struktureigenschaften des Modells bzw. eines Partialmodells dar, indem sie dessen Grundmuster beschreiben und Wiederholungen dieses Musters nicht berücksichtigen. Auf diese Weise können Strukturen über herkömmliche Charakterisierungen, wie sie oben erwähnt wurden, hinausgehend durch beliebige Strukturmuster beschrieben werden und der Graph des Modells kann auf seine entscheidenden Strukturen reduziert werden. Zusammenfassend läßt sich feststellen, daß alle in Kapitel 2 formulierten Anforderungen bezüglich der Klassifikation der Fertigungslenkungsstrukturen durch die Abbildung mit Teilgraphen respektive Strukturprototypen auf Basis des Modells der Fertigung erfüllt werden. 3.1.2 Klassifikationen für Fertigungslenkungsabläufe Abläufe und speziell Fertigungslenkungsabläufe organisieren und strukturieren Arbeitsprozesse und tragen somit zur Ordnung von diesen bei. Zu ihrer Darstellung gibt es verschiedene Ansätze, wie z.B. aus den Bereichen der Unternehmensmodellierung, der Modellierung von Arbeitsabläufen (Ablaufplanung) oder der Strukturierten Programmierung. Allerdings enthalten die meisten dieser Ansätze zwar Modelle aber keine Klassifikationen der Abläufe respektive keine Klassifikationskriterien für Fertigungslenkungsabläufe. Ein Beispiel für einen derartigen Ansatz ist Bruckers Klassifikation von Schedulingproblemen. Er unterscheidet dabei jedoch keine Arten von Abläufen52 zur Lösung dieser Probleme. Da die Struktur seiner Schedulingprobleme durch eine Anzahl von Jobs, Nachfolgebeziehungen zwischen den Jobs und Kapazitätsrestriktionen festgelegt ist, wählt er in allen Fällen eine vorgangsorientierte53 Vorgehensweise. Bei einem zeitorientierten Ablauf wäre ein Belegungsvorgang für einen betrachteten Zeitabschnitt genau dann beendet, wenn ein Einlastungserfolg 51. Vgl. [Fel96], S. 84 ff. - siehe auch [DaHo95] und [Schn96] Vgl. [Bru81], S. 20 ff. 53. Ein Vorgang entspricht bei Brucker der Bearbeitung eines Jobs bzw. Auftrags an einer Maschine. 52. 60 Kapitel 3 vorläge und es gäbe kein Belegungsproblem zu lösen. Dieses Vorgehen würde aber bei unterschiedlichen Arbeitsvorgangsdauern zu Ineffizienz führen.54 In vielen Klassifikationen werden die Abläufe der Fertigungslenkung nur nebensächlich bzw. in andere Charakteristika miteingeschlossen behandelt, sie sind jedoch bei der Umsetzung in ein ausführbares Programm von entscheidender Bedeutung und deswegen ein wichtiges Klassifikationsmerkmal in der hier entwickelten Systematik. Durch die in dieser Arbeit vorgenommene Trennung von Fertigungslenkungsabläufen und -funktionen erschließt sich einerseits eine erweiterte Abbildungs- bzw. Beschreibungsmöglichkeit und andererseits wird die Flexibilität der Klassifikation entscheidend vergrößert, so daß sie leichter an veränderte Problemstellungen und Umwelten angepaßt werden kann. Sauer55 nimmt ebenfalls eine Klassifikation von Ablaufplanungsproblemen vor, wobei der von ihm verwendete Begriff der Ablaufplanung einem Teilbereich der Fertigungslenkung und zwar der kapazitäts- und termingerechten Zuordnung von Produktionsaufträgen auf die zur Verfügung stehenden Ressourcen entspricht. Diesen Teilbereich untergliedert er in die Aufgabenkomplexe Planerstellung und -korrektur. Seine Beschreibung der Ablaufplanungsprobleme basiert auf einem 5-Tupel. Dabei orientiert er sich sowohl an Aspekten der mathematischen Modellierung als auch an Modellierungen auf Basis von Constraints56 (Constraint Satisfaction Probleme). Er klassifiziert die betrachteten Probleme nach folgenden Kriterien: • Aufträge • Produkte mit Varianten und Operationen • Ressourcen • Hard Constraints für einzuhaltende Bedingungen • Soft Constraints für verletzbare Bedingungen Die seiner Repräsentation zugrunde liegenden Und/Oder-Bäume bzw. die Stufen dieser Bäume57 werden auf verschiedene Arten durchlaufen. Von der jeweiligen Durchlaufart wird ein Planskelett58 für ein Ablaufplanungsverfahren definiert. Diese können auftrags-, ressourcen- oder operationsbasiert sein. Durch die Verknüpfung der Durchlaufarten mit den, auf den 54. Vgl. [DaWa97], S. 473 ff. Vgl. [Sau93] 56. Unter dem Begriff Constraints sind explizite Abhängigkeiten zwischen Objekten bzw. deren Eigenschaften zu verstehen. Bei ihrer Anwendung erfolgt eine Restriktion des Wertebereichs dieser Objekte (vgl. [Schr92], S. 21). 57. Vgl. Abschnitt 3.2.2.2 Spezifikationssprachen für Fertigungslenkungsabläufe 58. Vgl. [Sau93], S. 75 f. 55. Stand der Technik 61 einzelnen Stufen des Baumes verwendeten Auswahlregeln, Prioritäts- oder Benutzerregeln, können verschiedene Ablaufplanungsverfahren charakterisiert werden. Nachteilig an dieser Klassifikation von Sauer ist, daß sie nicht auf Abläufe begrenzt ist, sondern auch die als Grundlage dienende Struktur und durch die Verknüpfung mit den Auswahlregeln ebenso die Fertigungslenkungsfunktionen miteinschließt. Auf diese Weise werden spezielle Abläufe nicht detailliert genug beschrieben. Außerdem fehlt dieser Klassifikation durch die Darstellung mit Planskeletten die Beachtung der Zeitkomponente. In [DaWa97] findet sich eine Einteilung der Abläufe zur Abarbeitung von Inkonsistenzen in Ablaufstruktur59 und Zeitmodell in: • ereignisorientierte Vorgehensweise, • element-/klassen-/knotenorientierte Vorgehensweise und • zeit(punkt)orientierte Vorgehensweise. Diese Abläufe orientieren sich an dem zugrunde liegenden Modell der Fertigung. Neben der Abarbeitung des gesamten Modells ist auch eine Bearbeitung von Partialmodellen möglich, wobei jeweils unterschiedlich vorgegangen werden kann. Die Aufteilung in Teilstrukturen kann darüberhinaus ebenfalls nach verschiedenen Prinzipien vorgenommen werden, die entweder auf der Ablaufstruktur oder dem Zeitmodell beruhen. Zur Strukturierung der Ablauforientierung bzw. -priorisierung der Fertigungslenkungsabläufe sind die dargestellten Vorgehensweisen wesentliche Kriterien. Eine vergleichbare Systematik nimmt Hartmann im Rahmen der Klassifikationen der Methoden zur Strukturierung der Abarbeitungsstrategie seines Modells der Fertigungssteuerung vor60, wobei er nach den folgenden beiden Kriterien klassifiziert: • Dimension der Strukturierungsmethode • Detaillierungsgrad der Strukturierung Die Dimension der Strukturierungsmethode ist dabei entweder zeit-, kunden-, produkt-, struktur- oder zeit-strukturorientiert. Durch das zweite Kriterium, den Detaillierungsgrad der Strukturierung, wird festgelegt, ob die Strukturierung auf Basis von Knoten oder Ereignissen durchgeführt wird. Im weiteren führt Hartmann auch eine Klassifikation der Methoden zur 59. Der Begriff Ablaufstruktur entspricht im Rahmen der Fertigungslenkung dem in dieser Arbeit verwendeten Begriff Fertigungslenkungsstruktur. 60. Vgl. [DaWi93a], S. 211 ff. 62 Kapitel 3 Abarbeitungsfolge des Modells der Fertigungssteuerung an und unterscheidet dabei folgende Klassen:61 • serielle Methode • parallele Methode • nebenläufige Methode Diese Ablaufreihenfolgen sind ein entscheidendes Kriterium zur Darstellung der Fertigungsabläufe. Daneben klassifiziert Hartmann Methoden zur Definition von Abläufen nach Input- und Outputdaten sowie nach vergleichbaren In- und Outputdaten.62 Die Klassifikation der Inputdaten entspricht der Klassifikation der Methoden zur Definition von Funktionen bezüglich Inputdaten. Dabei wird klassifiziert nach der Beschreibung • der Menge der verwendeten Funktionen, • der verwendeten vorgegebenen Ordnungsrelationen zwischen Fertigungssteuerungsfunktionen, • der verwendeten Menge von Zuständen und • der verwendeten Abläufe. Die Outputdaten besitzen die Klassifikationskritierien: • Netzstruktur • Zeitbewertung • Flexibilität Für den Vergleich der Input- und Outputdaten (Vergleich Ordnungsrelation-Ablauf, Vergleich Ablauf-Ablauf) werden folgende Kategorien definiert: • vorwärtsorientiert • rückwärtsorientiert • mittelpunktsorientiert Diese Systematik bezieht sich demnach auf die problembereichsspezifische Beschreibung der Methoden. Die Problematik dieser Klassifikation liegt jedoch darin begründet, daß es sich um keine direkte Klassifikation der Abläufe sondern um eine Klassifikation der Methoden zur Definition der Abläufe handelt, wodurch eine weitere Abstraktionsebene zwischengeschaltet wird. Diese Vorgehensweise trägt nicht zur Verständlichkeit bei und erlaubt bezüglich der In61. 62. Vgl. ebenda, S. 214 f. Vgl. [Hart95], S. 109 ff. Stand der Technik 63 und Outputdaten auch keine Übertragung dieser Klassifikation auf die Gliederung der Abläufe. Allein die Facetten des Vergleichs der In- und Outputdaten können als Klassifikationskriterien der Fertigungslenkungsabläufe gelten, da sie die Ablaufrichtung, ein entscheidendes Kriterium der Fertigungslenkungsabläufe, exakt und vollständig wiedergeben. Diese Kriterien finden sich auch bei Braune und Ullmann zur Beschreibung der Prozeßsteuerung63 sowie bei Schneider zur Strukturierung des Arbeitsfortschritts und der Zeit im Rahmen des Klassifikationsmerkmals Aufgabenstellung.64 Somit ergibt sich zusammenfassend, daß die Ausprägungen der Ablaufpriorisierungen bzw. -orientierungen aus [DaWa97], der Ablaufreihenfolgen aus [DaWi93a] und der Ablaufrichtungen aus [Hart95] als Klassifikationskriterien die Fertigungslenkungsabläufe eindeutig, anschaulich und umfassend abbilden. 3.1.3 Klassifikationen für Fertigungslenkungsfunktionen Systematiken für Fertigungslenkungsfunktionen sind in der Literatur mehrfach zu finden, dabei wird jedoch der Begriff der Funktion oft unterschiedlich gebraucht. So wird Funktion z.B. häufig mit Methode oder Verfahren gleichgesetzt.65 Nach Mertins66 sind Funktionen einer Methode zur Planung rechnerintegrierter Produktionsprozesse für die Abbildung der Teilaufgaben und ihre Verknüpfung zum Produktionsprozeß erforderlich. Dieses entspricht jedoch nicht gänzlich dem dieser Arbeit zugrunde liegenden Verständnis von Funktionen im Rahmen der Fertigungslenkung. Das hier gewählte Klassifikationskriterium Fertigungslenkungsfunktionen soll den Fertigungslenkungsprozeß charakterisieren, indem es nicht Fertigungslenkungsmethoden oder -verfahren sondern deren Grundlage, die ablauf- und zustandsorganisatorischen Entscheidungsprobleme darstellt. Außerdem bedingt die in dieser Arbeit vorgenommene Gliederung in die Klassifikationskriterien Abläufe und Funktionen, daß Verknüpfungen verschiedener Funktionen bzw. Vorgehensweisen (Ablaufstrategien), wie sie in Methoden oder Verfahren enthalten sind, vom Kriterium Ablauf beschrieben werden. Wie im vorherigen Kapitel im Rahmen der Klassifikation der Methoden zur Definition von Abläufen bereits erläutert, nutzt Hartmann67 zur Klassifikation der Methoden zur Definition 63. Vgl. [DaWi93a], S. 166 ff. Vgl. [Schn96], S. 202 ff. 65. Typologien für Fertigungs- bzw. Fertigungslenkungsverfahren finden sich bereits in älteren Publikationen der Industriebetriebslehre (vgl. [KiKu92], S. 308). 66. Vgl. [MSJ94], S. 21 67. Vgl. [Hart95], S. 94 ff. 64. 64 Kapitel 3 der Funktionshierarchien ebenfalls die verwendeten Input- und Outputdaten sowie den Vergleich der Input- und Outputdaten. Aber auch hier gilt, daß sich die Klassifikation auf einer höheren Abstraktionsebene befindet und sich damit nicht direkt auf die Fertigungslenkungsfunktionen bezieht. Vielmehr werden die Methoden durch ihre Umwelt, die Struktur und Abläufe sowie andere Funktionen beschrieben, was den hier gestellten Anforderungen nach disjunkten Klassen widerspricht. In seiner Modell- und Algorithmenbank definiert Stanek auf der Ebene Fertigungsplanung neben Funktionen zur Simulation der Fertigungsplanung auch Funktionen zur Fertigungslenkung. Die einzelnen Funktionen68 klassifiziert er nach Zeitraum, Eingangsgröße, Ergebnisgröße, mathematischer Methode, Zielkriterium und Verwendungszweck, wodurch eine sehr detaillierte Beschreibung möglich ist. Eine derartig spezifische Darstellung der Funktionen ist hingegen im Falle der hier entwickelten Klassifikation nicht gefordert und widerspricht außerdem den Anforderungen nach leichter Verständlichkeit und Anwendbarkeit. Außerdem mangelt es der Zusammenstellung der Funktionen an einer erkennbaren Systematik, weswegen diese nicht als Klassifikation genutzt werden kann. Zum Vergleich und zur Bewertung der einzelnen Funktionen ist die von Stanek gewählte Darstellung sicherlich vorteilhaft, in dieser Arbeit geht es jedoch um eine weniger feine Einteilung als Basis der Spezifikationssprache. Die Purdue Enterprise Reference Architecture69 basiert auf einer Zusammenstellung von generischen Aufgaben und Funktionen für die Problembereiche Belegungs- und Steuerungsprozesse, Produktionsprozesse und (allein) von Menschen durchgeführte Aufgaben. Dabei wird der Transformationsprozeß der Belegungs- und Steuerungsaufgaben sowie der Steuerungsfunktionen als rechenbezogener Block gesehen. Die in diesem Block verwendeten Algorithmen70 wie auch ihre Parameter sind auswechselbar und können auf ganz verschiedene Weisen, wie z.B. logisch, algebraisch, als Expertensystem o.ä., repräsentiert werden. Daneben wird eine Unterscheidung der Algorithmen in deterministische oder stochastische Ausprägungen vorgenommen. Wie auch schon bei Stanek werden in diesem Ansatz die Eigenschaften spezieller Algorithmen und ihrer Implementierungen klassifiziert, nicht aber die Entscheidungsprobleme, die den Fertigungslenkungsfunktionen zugrunde liegen. Die Purdue Enterprise Reference Architecture soll deswegen nicht an dieser Stelle, sondern im Rahmen der Entwicklung 68. Vgl. Abschnitt 3.1 Klassifikationen für die Fertigungslenkung Vgl. [Wil93], S. 45 70. Unter Algorithmus wird hier sowohl ein mathematischer Ausdruck als auch ein in einer Programmiersprache formuliertes Verfahren verstanden. 69. Stand der Technik 65 der Spezifikationssprache und der Umsetzung von mit dieser beschriebenen Fertigungslenkungsproblemen in ein ablauffähiges Programm bedacht werden. Im Gegensatz zu den beiden vorher diskutierten Ansätzen untersucht Wiendahl71 die Methoden der Fertigungslenkung vom Standpunkt der Planung und Steuerung aus und unterscheidet folgende Systematisierungsansätze bzw. Klassifikationskriterien: • Zieh- und Schiebeprinzip72 • Aufgabenverteilung und Bestandsregelung • Auftragsreihenfolge, Auftragsgröße und Veranlassungslogik Die Unterscheidung nach den Prinzipien der Anstoß- oder Steuerungslogik (Zieh- und Schiebeprinzip) ist ein sehr verbreiteter Ansatz zur Systematisierung von Fertigungssteuerungsansätzen. Nachteilig an ihm ist die sehr grobe und damit ungenaue Gliederung73, die eigentlich nur eine Aufteilung in Extremtypen erlaubt. Außerdem bezieht sich diese Unterscheidung auf Planungs- und Steuerungsmethoden und dabei mehr auf die Abläufe der Funktionen als die Funktionen selbst und ist somit keine angemessene Klassifikation für Fertigungslenkungsfunktionen. Die Anstoßlogik ist allerdings ein wichtiges Beschreibungsmerkmal der Fertigungslenkung und muß deswegen von der Spezifikationssprache bzw. im Modell der Fertigung abgebildet werden. Aufgabenverteilung und Bestandsregelung sind die Kriterien, nach denen Zäpfel74 Planungsund Steuerungsmethoden klassifiziert. Dabei unterteilt er die Aufgabenverteilung in rein zentrale, bereichsweise zentrale und dezentrale Konzepte und differenziert die Bestandsregelungsansätze in bestandsregelnde Verfahren und Verfahren ohne explizite Regelung der Bestandsgrößen. Auch Zäpfel erstellt damit eine Systematik von Planungs- und Steuerungsmethoden, die keine Entscheidungsprobleme an den Fertigungslenkungsfunktionen als Kriterium enthält. Vielmehr klassifiziert er die Methoden nach der zugrunde liegenden Fertigungslenkungsstruktur und nach speziellen Mengenplanungsproblemen. Letztere Kategorie hat jedoch wiederum den Nachteil, daß sie nur ungenau und damit wenig detailliert durchgeführt werden kann, so daß auch in diesem Fall unterschiedliche Zuordnungen möglich sind. Außerdem legt sie den 71. Vgl. [Wie98], S. 86 ff. Vgl. [Sai85] und [Eid95] 73. In der Literatur werden einige Verfahren bzw. Methoden, wie z.B. die Belastungsorientierte Auftragsfreigabe, unterschiedlichen Prinzipien zugeordnet (vgl. [Scho98] und [WNS96]). 74. Vgl. [ZäMi87] 72. 66 Kapitel 3 Betrachtungsschwerpunkt auf die Bestandsregelung, die nur einen Teilbereich der Fertigungslenkung darstellt. Die dritte Klassifikation geht auf Zülch75 zurück, der Fertigungssteuerungsstrategien76 nach funktionalen Unterschieden systematisiert. Dabei legt die Veranlassungslogik den groben Ablauf der Fertigungssteuerungsfunktionalität, die Auftragsgröße die Veränderung der Planungs- und Steuerungsereignisse, wie z.B. durch Zusammenfassen oder Splitten, und die Reihenfolgebildung die Bearbeitung konkurrierender Aufträge fest. Obwohl diese Systematik bezüglich ihres Detaillierungsgrades beide anderen Ansätze übertrifft, ist die fehlende exakt konzeptionelle Spezifikation der einzelnen Merkmale, die nicht zuletzt auf die recht unspezifischen Merkmalsnamen zurückzuführen ist, zu kritisieren. Weiterhin ist zu beanstanden, daß die von Zülch gewählten Parameter nicht umfassend genug sind, die Skalierung also nicht die nötige Trennschärfe besitzt. Aus diesem Grund können Fertigungslenkungsfunktionen nicht ausreichend erklärt werden, so daß unterschiedliche Verfahren anhand der Klassifikation nicht zu unterscheiden sind. Zülchs Klassifikationsmerkmale stellen eine Mischung aus den Merkmalen Ablauf und Funktionen dar, betrachten aber nicht alle Ausprägungen dieser Merkmale. Die Funktionsreferenzsicht77 von Schotten zielt auf die Unterstützung der Produktionsplanung und -steuerung durch EDV-Systeme ab.78 Ausgehend von den Aufgabensichten des AachenerPPS-Modells sind die Funktionen den Teilaufgaben der PPS zugeordnet: • Unterstützung der PPS-Kernaufgaben • Unterstützung der PPS-Querschnittsaufgaben • Verwaltung von Produkt- und Prozeßdaten Die Funktionen zur Unterstützung der PPS-Kernaufgaben werden weiter unterteilt in die Produktionsprogrammplanung, die Produktionsbedarfsplanung, die Eigenfertigungsplanung und -steuerung und die Fremdbezugsplanung und -steuerung. Diese Kernaufgaben werden überdies noch in Teilfunktionen untergliedert. Zur Strukturierung der Funktionen werden die Charakteristika Methoden und Verfahren, Umstände oder Besonderheiten und Möglichkeiten der Verwaltung der Daten verwendet. Wie auch in der in dieser Arbeit entwickelten Klassifikation 75. Vgl. [Zül89] Er definiert eine Steuerungsstrategie als die Festlegung einer bestimmten Veranlassungslogik zur Einsteuerung von Fertigungsaufträgen und eine Vorgehensweise zur Bestimmung der Auftragsgrößen und -reihenfolgen. Ein Steuerungsverfahren ist ein Instrument zur Realisierung einer oder mehrerer Strategien für einen bestimmten oder auch für mehrere Fertigungstypen. 77. Vgl. Abschnitt 3.1 Klassifikationen für die Fertigungslenkung 78. [Scho98], S. 144 ff. 76. Stand der Technik 67 werden Funktionen also nicht mit Methoden und Verfahren gleichgesetzt, sondern eine Funktion kann von verschiedenen Methoden und Verfahren erfüllt werden. Allerdings ist die Systematik von Schotten durch die Vielzahl der Charakteristika zwar äußerst genau, gleichzeitig aber auch sehr umfangreich und aufgrund ihres hohen Detaillierungsgrades unflexibel. Dieses widerspricht den in Kapitel 2 gestellten Anforderungen an die Klassifikation, die einerseits eine begrenzte Mächtigkeit vorschreiben, um eine leichte und schnelle Einteilung zu ermöglichen, und andererseits Wert auf die Flexibilität und Anpaßbarkeit legen. Die von Schotten dargestellte Strukturierung der Funktionen gestaltet sich dagegen als ein recht komplizierter Vorgang und entspricht somit eher einer detaillierten Spezifikation der Funktionen. In [DaWi93a] wird im Rahmen des Modells der Fertigungssteuerung eine Unterteilung in lokale79 und globale Funktionen vorgenommen. Auf diesen werden dementsprechend entweder von lokalen oder globalen Managern Regeln abgearbeitet. Lokale Funktionen sind genau einem Modellelement zugeordnet und realisieren dort die algorithmisierbare Funktionalität. Ihre generelle Aufgabe besteht in der Berechnung von Zustands- und Merkmalsänderungen der Fertigungssteuerungsobjekte. Somit kann der lokale Manager nur folgende Elemente im Modell betreffen:80 • lokale Teilfunktionen (z.B. Terminierung, Bestandsermittlung u.a.) • Kommunikationsoperationen • Regeln • Attribute • Knoten/Klassen • Kanten • Partialmodelle • Hierarchieebenen Globale Funktionen beziehen sich auf die Ablaufstruktur und die Regeln des Gesamtmodells. Sie werden vom globalen Manager durchgeführt. Im Gegensatz zur Unterscheidung in die Dimensionen lokal und global wird das Modell der Fertigung (der Fertigungsgraph) im hier entwickelten Ansatz in Partialmodelle oder Strukturprototypen aufgelöst, auf die sich die jeweiligen Funktionen und Abläufe beziehen. Die lokalen Funktionen werden in [DaWi93a] weiterhin klassifiziert in: 79. „Lokal heißt in diesem Zusammenhang, daß die benötigten Informationen/Daten verfügbar bzw. beschaffbar sind.“ (vgl. [DaWi93a], S. 154) 80. Vgl. [DaWi93a], S. 118 f. 68 Kapitel 3 • lokale Funktionen der Knotensteuerung • lokale Funktionen der Prozeßsteuerung • lokale Funktionen in der Inputobjektsteuerung • lokale Funktionen der Transformationssteuerung • lokale Funktionen in der Outputobjektsteuerung Eine derartige Strukturierung der lokalen Funktionen nach den Steuerungsbereichen, an denen oder auch in denen sie durchgeführt werden, ist für die in dieser Arbeit geforderte Klassifikation als Basis für die Spezifikationssprache jedoch zu detailliert und unübersichtlich. In der hier entwickelten Systematik wird durch das Kriterium Fertigungslenkungsstruktur bzw. die Bindung einer Funktion an einen Teilgraphen eine Einteilung auf einer abstrakteren Ebene vorgenommen. Die lokalen Funktionen der Transformationssteuerung werden darüber hinaus in [DaWi93a] noch weiter unterteilt in Vorgangsdauerermittlung, Terminierung und Bestandsführung. So finden auch die zugrunde liegenden zustandsorganisatorischen Entscheidungsprobleme Eingang in die Klassifikation, wohingegen ablauforganisatorische Entscheidungsprobleme in diesem Ansatz keine Merkmale darstellen, weswegen die Klassifikation Fertigungslenkungsfunktionen nicht vollständig abbildet. Aufbauend auf diesem Ansatz lokaler und globaler Funktionen führt Schneider eine Klassifikation von Fertigungssteuerungsverfahren durch. Wiederum werden Verfahren und nicht Funktionen, wie in Kapitel 2 gefordert, strukturiert. Ihr erstes Klassifikationskriterium unterteilt die Verfahren nach verschiedenen Aufgabenklassen:81 • Konstruktionsaufgaben • Planänderungsaufgaben • Plandetaillierungsaufgaben Diese Aufgaben untergliedert sie weiter in die Bereiche Mengen- und Terminbestimmung. Insoweit geht Schneider ebenfalls auf die zustandsorganisatorischen Entscheidungsprobleme ein, die den Fertigungslenkungsfunktionen als Grundlage dienen und ein entscheidendes Kriterium dieser Funktionen sind, und integriert sie in ihr Klassifikationsschema. Ihre Gliederung in die drei Aufgabenklassen basiert auf dem zugrunde liegenden Zeitmodell und strukturiert die Verfahren nach ihrer zeitlichen Positionierung im Rahmen der Fertigungs- 81. Vgl. [Schn96], S. 227 ff. Diese drei Aufgabenklassen werden von Schneider im Rahmen der Klassifikation von Fertigungssteuerungsaufgaben als Klassifikationsmerkmal Aufgabenstellung charakterisiert. Stand der Technik 69 lenkung. In der hier entwickelten Klassifikation geht es allerdings nicht darum, einzelne Verfahren bezüglich Zeit und Arbeitsforschritt einzuordnen, sondern um eine umfassende Darstellung der Fertigungslenkung. Weitere Klassifikationsmerkmale bei Schneider sind das Wirkprinzip, welches das bei der Lösung einer Fertigungssteuerungsaufgabe verwendete Wissen darstellt, die Struktur der Zwischenzustände (konstruktive, verbessernde und simultane Verfahren) und die Zielerreichungseigenschaften (endlich und unendlich), die sich weiter unterteilen in Schrittanzahl, Wissen über Zielerreichung und Konvergenz. Diese Systematisierung ist für einen genauen Vergleich der einzelnen Funktionen bzw. Verfahren sehr hilfreich, für eine nicht ins Einzelne gehende Klassifikation der Fertigungslenkung und speziell für Anwender aus der Praxis ist sie aber zu detailliert und kompliziert. Wie bereits zu Beginn dieses Abschnitts erläutert, sind die genauen Wirkprinzipien und Zielerreichungseigenschaften der Verfahren keine geforderten Merkmale der hier entwickelten Klassifikation, in der es um eine Problemspezifikation und nicht um eine Lösungsbeschreibung bzw. Darstellung der Lösungsmöglichkeiten geht. Da es beim Operations Research insbesondere um die Lösung von Entscheidungsproblemen geht, müssen auch Klassifikationen aus diesem Wissenschaftsgebiet bezüglich ihrer Eignung zur Systematisierung von Fertigungslenkungsfunktionen untersucht werden. Rittgen82 unterscheidet in seiner Prozeßtheorie der Ablaufplanung83, deren Gegenstand Prozesse, Ressourcen und Zeit sind, Ablaufplanungsprobleme, welche die Grundlage der von ihm dargestellten Verfahren bilden, in vier Klassen: • Ablaufplanung mit varianten Teilabläufen • Projektplanung • Maschinenbelegungsplanung • Reihenfertigungsplanung Demzufolge nimmt Rittgen eine Klassifizierung allein nach der Art bzw. dem Anwendungsbereich der Ablaufplanungsprobleme ohne Beachtung ihnen gemeinsamer Entscheidungsprobleme vor. Auf diese Weise werden mögliche Parallelen zwischen den verschiedenen Problemklassen, die den Vergleich unterschiedlicher Ausprägungen erleichtern würden, nicht herausgestellt. Außerdem geht Rittgen bei seiner Strukturierung von vereinfachenden Annahmen aus, wodurch sich seine Betrachtungen von der Realität entfernen. Sein Ziel, eine algebra82. 83. Vgl. [Rit98], S. 18 ff. Damit ist die Ablaufplanung im weiteren Sinne gemeint, da unter der Ablaufplanung im engeren Sinne oftmals lediglich die Maschinenbelegungsplanung verstanden wird. 70 Kapitel 3 ische Prozeßtheorie der Ablaufplanung zu entwickeln, die nur noch die wesentlichen Merkmale dieser Planung enthält, indem sie sich auf wenige, fundamentale und allen Problemen der Ablaufplanung gemeinsame Wesensmerkmale beschränkt, führt ihn zu einer Spezifikation, die zwar nicht den Anforderungen an die Klassifikation entspricht, auf die in Abschnitt 3.2.2.2 Spezifikationssprachen für Fertigungslenkungsabläufe aber noch näher eingegangen wird. Wie auch Rittgen teilt Domschke84 die Entscheidungsprobleme der Ablaufplanung, unter der er die Planung der räumlichen und zeitlichen Abläufe von Produktionsprozessen versteht, in Probleme der Produktionsprozeß- und Produktionsdurchführungsplanung auf. Allerdings sind seine Problemklassen insgesamt allgemeiner gefaßt und damit auch umfassender nutzbar als die von Rittgen: • Probleme der Arbeitsverteilung (Zuordnungs-/Auswahlprobleme) • Gruppierungsprobleme • Reihenfolgeprobleme • Probleme der Leistungsabstimmung • Transportprobleme Die beiden letzten Problemklassen fallen indessen ein wenig aus der Reihe, da sie auch als Kombination der ersten drei Problemklassen dargestellt werden können. So sind z.B. Probleme der Leistungsabstimmung Verknüpfungen von Gruppierungs- und Reihenfolgeproblemen. Mit den Klassen Verteilungs-, Gruppierungs- und Reihenfolgeprobleme kann jedoch eine umfassende Klassifikation der ablauforganisatorischen Entscheidungsprobleme von Fertigungslenkungsfunktionen vorgenommen werden. In [DoDr95] führt Domschke weitergehende Klassifikationen zur Lagerhaltung und Losgrößenplanung, Fließbandabstimmung sowie zur Maschinenbelegungsplanung an, die sehr detailliert und problemspezifisch sind, was jedoch im Widerspruch zu den hier formulierten Anforderungen steht. Die in dieser Arbeit entwikkelte Klassifikation vereint diese Systematiken auf einer abstrakteren und damit auch flexibleren Ebene. In seiner auf Schedulingprobleme begrenzten Klassifikation betrachtet Brucker85 ebenfalls ablauforganisatorische Entscheidungsprobleme und zwar teilt er sie auf in Montage-, Sortierund Reihenfolgeprobleme. Montageprobleme stellen die Problematik des Gruppierens und Sortierprobleme des Aufteilens bzw. Verteilens von Fertigungselementen dar. Mit Reihenfol84. 85. Vgl. [DSV93], S. 26 ff. Vgl. [Bru81], S. 14 ff. Stand der Technik 71 geproblemen wird die zeitliche Zuordnung von Fertigungselementen zu Ressourcen und zwar bei ihm speziell Maschinen beschrieben. Diese Systematik der Entscheidungsprobleme besticht einerseits durch ihre Einfachheit und andererseits durch ihre Mächtigkeit respektive Vollständigkeit. Insgesamt zeigt sich, daß die Klassifikationskategorien ablauf- und zustandsorganisatorische Entscheidungsprobleme und ihre Ausprägungen Fertigungslenkungsfunktionen auf einer abstrakten sowie leicht verständlichen und anwendbaren Ebene umfassend abbilden und somit den gestellten Anforderungen genügen. 3.1.4 Klassifikationsschemata für die Fertigungslenkung Die Typbildung in Klassifikationen basiert in der Literatur häufig auf Merkmalskombinationen, d.h. eine Klasse wird mittels einer Merkmalsliste beschrieben. Diese Art der Schematisierung führt in vielen Fällen zu sehr unübersichtlichen und damit wenig anschaulichen Darstellungen, die einen Vergleich verschiedener Ausprägungen erschweren.86 Schneider verwendet in ihrer Klassifikation von Fertigungssteuerungsaufgaben das komplexere Konstrukt eines Repräsentanten, weil dieses die Problemstruktur besser widerspiegelt und von Wiederholungen abstrahiert.87 Auf diese Weise ist das Klassifikationsschema für den Nutzer leichter anzuwenden und zu verstehen. Da diese Vorzüge der Darstellungsform eines Repräsentanten auch den hier gestellten Anforderungen entsprechen, wurde sie in Form von Strukturprototypen auch in der vorliegenden Arbeit zur Illustration der Klassifikation der Fertigungslenkung verwendet. Allerdings werden Abläufe und Funktionen der Fertigungslenkung von diesen Repräsentanten nicht abgebildet. Die Beschreibung ihrer Merkmale muß deswegen neben den graphischen Darstellungen der Strukturprototypen noch zusätzlich in sprachlicher Form in das Klassifikationsschema mitaufgenommen werden. Insofern bildet das Klassifikationsschema eine anschauliche und umfassende Systematik der Fertigungslenkungsproblematik. 3.2 Spezifikationssprachen für die Fertigungslenkung Spezifikationssprachen speziell für die Fertigungslenkung, die diese außerdem vollständig beschreiben, existieren bisher noch nicht. Es gibt zwar Beschreibungssprachen für Teilbereiche der Fertigungslenkung, wie z.B. bestimmte Verfahren, Strukturen oder Abläufe, aber eine 86. 87. Vgl. z.B. die Klassifikation von Fertigungstypen in [Gro74] Vgl. [Schn96], S. 194 f. 72 Kapitel 3 Sprache, die all diese Bereiche umfassend abbildet und sich gleichzeitig auf die Fertigungslenkung beschränkt, ist bisher noch nicht entwickelt worden. Allerdings existieren verschiedene Modelle bzw. Konzepte, in deren Spezifikation die Fertigungslenkung mit eingeschlossen ist. Die wichtigsten dieser Ansätze wurden bereits in Abschnitt 3.1 Klassifikationen für die Fertigungslenkung bezüglich ihrer Eignung als Klassifikation untersucht. Sie behandeln jedoch meistens nicht nur den Problembereich Fertigungslenkung, sondern beinhalten auch weitere Aspekte, die keinen Bezug zur Fertigungslenkung aufweisen. Heutige PPS-Systeme stellen zwar eine Implementierung der Fertigungslenkung oder in vielen Fällen auch nur von Teilen der Fertigungslenkung in höheren Programmiersprachen dar, sie bieten jedoch in keinem Fall eine Spezifikationssprache zur strukturierten und einheitlichen Beschreibung der Fertigungslenkung auf einer abstrakteren Ebene. Außerdem sind sie häufig auf ganz spezielle Betriebstypen, wie z.B. Serien- oder Einzelfertigung, oder auch Lenkungsstrategien zugeschnitten und erlauben keine Übertragung in andere Bereiche. Pape88 vermerkt dazu außerdem: “PPS-Systeme der neuen und alten Generation erlauben in der Regel nur die Anwendung einer einzigen Steuerungsphilosophie, sie wird dem gesamten Produktionsprozeß gleichsam übergestülpt“. Gängige PPS-Systeme bieten also nicht die wichtige Möglichkeit, strukturmäßig unterschiedliche Bereiche bzw. Bereiche mit unterschiedlichen Organisationsformen, wie z.B. Fließfertigung und Werkstattfertigung89, nach verschiedenen Prinzipien zu steuern, so daß zumindest die Steuerung einiger Teile der Fertigung unzweckmäßig ist und erheblich größeren Aufwand erfordert. Somit kann in dieser Arbeit nicht auf in der Praxis bereits erprobte PPS-Systeme zurückgegriffen werden. Sinn und Zweck der zu entwickelnden Spezifikationssprache ist neben der einheitlichen Beschreibung der Fertigungslenkung auch die Möglichkeit der direkten Umsetzung in ausführbare Algorithmen einer problembereichsunabhängigen Programmiersprache. Als Hilfsmittel zur Übersetzung einer Spezifikationssprache in ausführbaren Code kann eine Methoden- bzw. Bausteinbibliothek genutzt werden. Derartige Methodenbanksysteme werden heute bereits häufig im Bereich der Arbeits- und Investitionsplanung angewendet. Sie bieten neben einer flexiblen Speicherung, Verwaltung und Wiedergewinnung von Informationen mit Hilfe einer Datenbank auch die Möglichkeit, die Verarbeitung dieser Informationen durch Methoden unter einem einheitlichen Systemkonzept durchzuführen. Auf diese Weise können Systementwicklungen mit geringem Aufwand an neue Einsatzgebiete oder Unternehmensanforderungen 88. 89. Vgl. [Pap90], S. 14 Vgl. Fertigungsablaufarten in [DaWa97], S. 8 Stand der Technik 73 angepaßt werden. Die Methodenbanksysteme setzen sich meistens aus den Bereichen Datenpflegesystem, Ablaufsteuerung und Auskunftssystem zusammen. Die Datenpflege beinhaltet die Standardfunktionalität einer Datenbank, wie z.B. Datensatz Anlegen, Löschen usw. Mit der Ablaufsteuerung werden die Methoden ausgeführt und das Auskunftssystem schließlich gibt Beschreibungen der einzelnen Methoden.90 Die Struktur dieser Bibliothek wird durch die Klassifikation der Fertigungslenkung vorgegeben, weswegen eine Einteilung in Algorithmen für Fertigungsabläufe und -funktionen vorgenommen werden sollte. Da im Rahmen der Entwicklung einer Sprache sowohl die Semantik als auch die Syntax dieser Sprache zu konzipieren ist, muß bei der Auswahl einer geeigneten Syntax auch auf weitere Spezifikationssprachen aus verwandten Wissenschaftsdisziplinen, insbesondere der Softwaretechnik, eingegangen werden, denn dieser Bereich ist eng mit der Fertigungslenkung und speziell der „programmgesteuerten“ Fertigungslenkung verknüpft. Zwar sind Syntax und Semantik einer Sprache nicht wirklich zu trennen, da vielfältige Verflechtungen zwischen ihnen bestehen. In dieser Arbeit geht es jedoch darum, bei der Untersuchung von nicht problembereichsspezifischen Sprachen nützliche und den Anforderungen entsprechende Aspekte der Syntax zu entdecken und diese in die hier zu entwickelnde Sprache zu übernehmen. Außerdem spielen einige der untersuchten Beschreibungssprachen auch eine unterstützende Rolle in den nachfolgend dargestellten Spezifikationssprachen. Diese beziehen sich entweder auf Teilbereiche der Fertigungslenkung oder sind umfassendere Darstellungen der Produktionsplanung und -steuerung und ihre Analyse umfaßt sowohl die Syntax als auch die Semantik der Sprache. Dabei stellt die in Kapitel 2 entwickelte Klassifikation die Basis der Untersuchungen dar. Den Anfang der folgenden Analyse bilden einige Modelle bzw. Konzepte, die auch der Klassifikation zugrunde liegen, und zur Spezifikation ihrer Sichten respektive Teilstrukturen Beschreibungssprachen anbieten. 3.2.1 Syntax existierender Spezifikationssprachen In der Informatik bzw. Wirtschaftsinformatik werden zur Spezifikation von Softwareabläufen bzw. Programmen unterschiedliche Entwurfstechniken bzw. -hilfsmittel verwendet, wovon die gebräuchlichsten und bekanntesten Methoden91 im folgenden kurz aufgeführt werden:92 90. Vgl. [Spu92] Man beachte, daß die Menge dieser Methoden nicht disjunkt ist; es sind unterschiedlich umfassende Modellierungswerkzeuge. 92. Vgl. [Feh88] und [MSJ94], S. 104 ff. 91. 74 Kapitel 3 • SADT (Structured Analysis and Design Technique) • M. A. Jackson Methode • HIPO (Hierarchie plus Input-Process-Output) • Funktionale Dekomposition93 • Struktogramme • Datenfluß- und Programmablaufpläne • Pseudocode All diese Entwurfs- bzw. Spezifikationstechniken wurden entwickelt, um die Qualität von Softwareabläufen zu steigern, indem sie z.B. ihre Verständlichkeit, Lesbarkeit, Überprüfbarkeit und bzw. oder Einheitlichkeit verbessern. Sie unterscheiden sich in erster Linie darin, daß einige von ihnen sich auf den Programmentwurfsprozeß beziehen, andere dagegen nur die Darstellung der Ergebnisse des strukturierten Entwurfs umfassen. Außerdem basieren einige auf dem Prinzip der funktionalen Zerlegung und andere auf dem Datenflußansatz.94 Die SADT, die M.A. Jackson Methode und HIPO sind Entwurfstechniken des strukturierten Programmentwurfs, der auf Dijkstra und Wirth95 zurückgeht. Hauptbestandteile in SADT96 sind die prozeduralen und funktionalen Aspekte eines Informationssystems, in die dieses zum besseren Verständnis dekomponiert wird.97 Mittels einer grafischen Repräsentation aus Kästen und verbindenden Pfeilen werden Prozesse, Funktionen und Aktivitäten beschrieben. Einzelne Aktivitäten werden durch die Konstrukte Steuerung, Input, Output und Mechanismus näher bestimmt. Somit ermöglicht SADT die Spezifikation von Zusammenhängen und dem Einsatz von Material- und Fertigungsmitteln, allerdings fehlt eine Beschreibung dynamischer und zeitlicher Aspekte. Durch die Anordnung der Kästen auf einer Diagonalen können zwar Verbindungen zwischen ihnen und damit Ablaufstrukturen dargestellt werden, aber eine weitergehende Spezifikation dieser Abläufe ist nicht möglich. Da SADT-Modelle nicht oder nur beschränkt erweiterbar sind, erfordern Änderungen einen hohen Zeitaufwand. Darüber hinaus können Beziehungen in den Datenmodellen nur über Funktionen abgebildet werden.98 93. 94. 95. 96. 97. 98. Die Funktionale Dekomposition stellt eine stufenweise Zerlegung von Superanweisungen bis zu Anweisungen, die in einer Programmiersprache formuliert werden können, dar. Vgl. [FeSi98], S. 122 f. Vgl. [Dij69] und [Wir75] Ebenso verhält es sich auch in der auf der SADT-Methode basierenden IDEF-Modellierungssprache (vgl. [MSJ94], S. 104 ff.). Vgl. [Han92], S. 560 Vgl. [SMJ93], S. 32 ff. Stand der Technik 75 Die M.A. Jackson Methode beschäftigt sich mit der Beschreibung der Datenstruktur, welche die Grundstruktur eines Softwaresystems und damit die Transformation der Input-Daten in Output-Daten bestimmt. Auf diese Weise sind Programmabläufe gut darstellbar, andere Eigenschaften des Softwaresystems werden jedoch nicht abgebildet. Ebenso wie bei SADT können mit der M.A. Jackson Methode keine dynamischen Vorgänge beschrieben werden, wodurch auch sie für eine Unternehmensspezifikation nicht geeignet ist.99 Ein Baumdiagramm, das die Gliederung der Funktionen in Unterfunktionen darstellt, und ein Ebenendiagramm, das für jede Funktion die Eingabedaten, die algorithmische Funktionsbeschreibung und die Ausgabedaten abbildet, sind die Grundelemente von HIPO.100 Diese Technik beschreibt die Hauptfunktionen eines Systems und ermöglicht es außerdem, Abhängigkeiten zwischen Ein- und Ausgabedaten sowie die funktionale Zergliederung des Systems zu spezifizieren. Nachteilig ist bei der HIPO-Technik das Fehlen von Sprachelementen zur Datenspezifikation sowie zur Darstellung dynamischer Vorgänge, weswegen wiederum nur statische Modelle entstehen.101 Zusammenfassend läßt sich zu diesen drei Entwurfsmethoden feststellen, daß sie sich bezüglich der Wertigkeit unterscheiden, nach der sie sich mit den verschiedenen Systemstrukturen befassen: Die SADT-Methode geht aufgabenorientiert102, die M.A. Jackson Methode datenorientiert103 und die HIPO-Technik aufgaben- und datenorientiert vor, wodurch sie die umfassendste Abbildung dieser Methoden ermöglicht. Es ist jedoch ein gemeinsames Defizit der beschriebenen drei Techniken, daß sie keine Dynamik und damit auch keine zeitlichen Aspekte in ihre Spezifikationen miteinbeziehen. Außerdem sind ihre Konstrukte aus der Sicht der Unternehmensmodellierung nicht ausreichend problembereichs- bzw. anwendungsorientiert. Die Strukturierte Programmierung bzw. der Strukturierte Programmentwurf nimmt, wie schon in Abschnitt 3.1 Klassifikationen für die Fertigungslenkung dargestellt, eine Gliederung in die Strukturierung der Funktionen, des Ablaufs und der Daten vor. Im Gegensatz zu den vorher diskutierten Techniken beinhaltet dieser Ansatz demnach neben der Spezifikation der Funktionen und Daten auch eine Beschreibung bzw. Strukturierung des Ablaufs. Die Aufteilung und 99. Vgl. [MSJ94], S. 147 f. Vgl. [HeBu87], S. 110 f. 101. Vgl. [MSJ94], S. 153 f. 102. Die Programmodularisierung ist ein direktes Abbild der Aufgabenmodularisierung, so daß jeder Teilaufgabe ein Programmodul zugeordnet werden kann (funktionale Dekomposition). 103. Der Entwurf erfolgt ausgehend von den Datenstrukturen, die einer Programmieraufgabe zugrunde liegen. 100. 76 Kapitel 3 gleichwertige Behandlung der drei Bereiche soll auch als Vorbild der hier zu entwickelnden Spezifikationssprache dienen. Dieses ist darüber hinaus auch dadurch bedingt, daß die Grundlage der hier zu entwickelnden Sprache die vorher erarbeitete Klassifikation darstellt, welche in die genannten drei Hauptkriterien untergliedert ist. Die Funktionale Dekomposition beschreibt eine einfache Top-down-Strategie ausgerichtet auf Funktionen bzw. Prozesse eines Programms. Datenflußdiagramme und Programmablaufpläne sowie Struktogramme sind unterschiedliche Darstellungsmöglichkeiten der Ergebnisse und Dokumentation eines strukturierten Entwurfs. Sie gehören nach DIN 66001 zu der Gruppe der Blockdiagramme. Datenflußdiagramme104 setzen sich aus Kästen, in denen Prozesse beschrieben werden, Pfeilen, die den Datenfluß zwischen Prozessen darstellen, und Symbolen für Datenspeicher sowie für externe Datenquellen und -senken zusammen. Somit besitzen einige Elemente dieser Diagramme nicht nur einen direkten Bezug zum Programmablauf, sondern auch zum zugrunde liegenden Informationssystem. Herkömmliche Programmablaufpläne105 bergen die Schwierigkeiten, daß sie für komplexe Programme zu unübersichtlich sind und keinen funktionellen Zusammenhang von Programmbausteinen im Sinne eines Organisationsschaubildes darstellen. Sie bilden nur den Steuerfluß und nicht den Datenfluß ab. Hinzu kommt, daß der Steuerfluß nur sequentielle Folgen von Arbeitsschritten beschreiben kann; zeitliche Abhängigkeiten werden ebenfalls lediglich unzureichend dargestellt. Häufig ist eine Reihenfolge zwischen den Arbeitsschritten bzw. Vorgängen nicht ersichtlich und vorgesehen. Im Gegensatz zu den vorher diskutierten teilweise recht unübersichtlichen und schwer verständlichen Darstellungsarten der Programmabläufe, die außerdem zur undisziplinierten Verwendung von Programmsprüngen verführen, bietet das Struktogramm oder nach seinen Entwicklern auch Nassi-Shneiderman-Diagramm genannte Beschreibungsmittel durch die Verwendung unterschiedlicher Strukturblöcke106 eine weitaus anschaulichere und leichter verständliche Spezifikation des Programmablaufs und seiner Teilschritte. Es ermöglicht dadurch eine gut strukturierte und einfache Handhabung. Jedoch ist auch diese Darstellungsart bei komplexen Problemen nicht mehr leicht durchschaubar und es fehlen ergänzende sprachliche 104. Vgl. Datenflußplan in [DuIn89], S. 145 f. Vgl. Programmablaufplan, Ablaufdiagramm, Flußdiagramm [DuIn89], S. 458 106. Es gibt unterschiedliche Strukturblöcke (Ablaufkonstrukte) für einfache Aktionen (Sequenz), bedingte Anweisungen (Auswahl), Fallunterscheidungen (Mehrfach-Auswahl), Schleifen (Unterscheidung: while - repeat). Diese lassen sich beliebig ineinander verschachteln (vgl. [NaSh 73], [DIN 66 261] und [DuIn89], S. 582 f.). 105. Stand der Technik 77 Elemente, die das abbildbare Spektrum sinnvoll erweitern könnten.107 Der Nachteil der Unhandlichkeit dieser Diagramme bei längeren Verfahrensbeschreibungen kann durch eine Aggregation bzw. Reduktion der Daten vermieden werden. Eine Problematik all dieser bisher beschriebenen Entwurfs- und Darstellungsmethoden ist aber die fehlende Beachtung von simultan ablaufenden Programmteilen. Im Falle derartiger Prozesse, wie sie in der Fertigung bzw. Fertigungslenkung unbedingt anzutreffen sind, können bei den beschriebenen Methoden Probleme in der Darstellung auftreten, wenn zwei unterschiedliche Prozesse gleichzeitig auf dieselben Daten zugreifen wollen. Ein weiterer Nachteil besteht darin, daß die bisher diskutierten Methoden ihre Ergebnisse allein auf graphischem Wege darstellen. Dieses Vorgehen ist zwar anschaulich, aber bei komplexen Systemen sehr platzaufwendig. Außerdem wird eine umfangreiche Graphik schnell unübersichtlich und ist dann nicht mehr leicht zu durchschauen. Darüber hinaus fehlen aufgrund des beschränkten Sprachumfangs der Methoden108 weitere Konstrukte, die einerseits zur Darstellung des den Abläufen zugrunde liegenden Daten- bzw. Fertigungsmodells und andererseits zur genaueren Spezifikation der verschiedenen Funktionen und Abläufe dienen. Im Rahmen der Strukturierten Analyse109, dem bekanntesten datenflußorientierten Ansatz zur Analyse und Definition der Aufgaben betrieblicher Informationssysteme, werden Datenflußdiagramme durch detaillierte Prozeßbeschreibungen in strukturierter Umgangssprache (MiniSpezifikation) und durch Entscheidungstabellen zur Prozeßsteuerung (Data Dictionary) ergänzt.110 Diese Erweiterung der rein graphischen Beschreibung durch sprachliche Elemente ermöglicht eine umfassendere Beschreibung der Prozesse und ihrer Entscheidungssituationen. Gleichzeitig verhindert eine Nutzung dieser Elemente im Gegensatz zu einer Gesamtdarstellung als Graphik, daß die Spezifikation aufgrund ihres Umfangs zu kompliziert und unklar wird. Die Strukturierte Analyse ist somit sehr empfehlenswert und kann als Vorbild der hier zu entwickelnden Spezifikationssprache dienen. Allerdings ist ihre Anwendung auf datenflußorientierte Probleme beschränkt und die Kopplung von Daten- und Funktionssicht wie auch die zwischen Lenkungs- und Leistungssystem sind unzureichend.111 107. Vgl. [MSJ94], S. 169 ff. Diese Beschränkung ist natürlich auch darauf zurückzuführen, daß diese Methoden allgemeingültig sein sollen und deswegen keine bereichsspezifischen Konstrukte enthalten. 109. Vgl. [DeM79], [GJM91], S. 395 ff. und [FeSi98], S. 170 ff. 110. Vgl. Structured (System) Analysis [MSJ94], S. 138 ff. und [SMJ93], S. 30 ff. 111. Vgl. [FeSi98], S. 174 f. 108. 78 Kapitel 3 Eine weitere Möglichkeit zur Beschreibung von Softwareabläufen, die auch im Rahmen der Strukturierten Analyse genutzt wird, ist die Verwendung von Pseudocode. Unter diesem versteht man eine Programmentwurfssprache, die mit umgangsprachlichen Ausdrücken Programmstrukturen, vorwiegend sequentielle Abläufe, beschreibt.112 Im Gegensatz zum Struktogramm werden beim Pseudocode die einzelnen Strukturblöcke nicht gezeichnet, sondern beschrieben. Die Syntax dieser Sprache besteht größtenteils aus Sprachelementen höherer Programmiersprachen. Sie ist allerdings nicht formalisiert und damit nicht kompilierbar, was dann ein Defizit darstellt, wenn die im Pseudocode erarbeiteten Ergebnisse auf ihre Korrektheit (Verifikation) getestet werden sollen. Dieser Nachteil kann jedoch mit einer stärkeren Formalisierung, wie z.B. durch Nutzung einer speziellen Syntaxbeschreibung, vermieden werden. Der klare Vorteil der Verwendung von Pseudocode liegt jedoch in seiner Problemnähe und der damit verbundenen leichten Verständlichkeit für die jeweiligen Anwender. Außerdem bietet Pseudocode ein größeres Maß an Variabilität und Flexibilität. Allerdings gilt für diese Darstellungsform noch in größerem Maße als für die graphischen Beschreibungssprachen, daß sie ab einem gewissen Umfang unübersichtlich wird und damit ihre Anschaulichkeit und Transparenz verliert. Aus diesem Grund sollte Pseudocode nicht als alleiniges Darstellungselement genutzt werden, sondern immer nur in Verbindung mit graphischen Elementen Anwendung finden. Petri-Netze sind Modelle zur Beschreibung und Analyse von Abläufen mit nebenläufigen Prozessen und nicht-deterministischen Vorgängen.113 Sie sind geeignet für die formale Spezifikation dynamischer Systeme mit fester Grundstruktur (Vorgangsnetze) und somit vielfältig einsetzbar, von der Beschreibung von Geschäftsprozessen bis zur Abbildung von Betriebssystemen. Dargestellt werden Petri-Netze mit gerichteten Graphen, die sich aus zwei Arten von Knoten, Stellen und Transitionen, zusammensetzen. Zur Beschreibung dynamischer Vorgänge werden die Stellen mit Objekten belegt, die durch die Transitionen weitergegeben werden. Mögliche Petri-Netz Formen sind Bedingungs-Ereignis-Netze, Stellen-TransitionenNetze und Netze höherer Ordnung mit Individuen als Marken, wie z.B. Prädikat-EreignisNetze und Prädikat-Transitionen-Netze mit individuellen Marken sowie Kanal-Instanz-Netze zur Darstellung einer hierarchischen Systemstruktur.114 Da die so definierten Petri-Netze keine Aussagen über das zeitliche Prozeßverhalten beinhalten, wurden spezielle zeitbeschriftete 112. Vgl. [GJM91], S. 402 und [MSJ94], S. 173 f. Vgl. [DuIn89], S. 441 114. Vgl. [Rit98], S. 85 ff., [SMJ93], S. 34 ff., [MSJ94], S. 162 ff. u.a. 113. Stand der Technik 79 Petri-Netze entwickelt.115 Petri-Netze können diverse andere Techniken des Software Engineering, wie z.B. Datenfluß-Diagramme, Kontrollfluß-Diagramme oder Endliche Automaten, ersetzen. Die Vorteile dieser Netze liegen in ihrer guten mathematischen Analysierbarkeit und der Darstellbarkeit von Nebenläufigkeit bzw. Parallelität. Nachteilig an der Spezifikation mit Petri-Netzen ist hingegen die sehr abstrakte bzw. neutrale und für den ungeübten Anwender nur schwer verständliche Darstellung von Systemen, wobei meistens nur die zugrunde liegenden Algorithmen beschrieben werden. Somit bilden Petri-Netze immer eine ablaufbezogene, dynamische Teilansicht der Realität ab. Eine Strukturierung der zugrunde liegenden Daten ist mit ihnen nur schwerlich möglich.116 Für die Syntax der Spezifikationssprache ergibt sich zusammenfassend aus dieser Betrachtung verschiedener Ansätze von verwandten Wissenschaftsgebieten, daß eine rein graphische Beschreibung nicht empfehlenswert ist, da sie leicht unübersichtlich und dadurch unverständlich wird. Außerdem fehlt dieser Art der Darstellung aufgrund ihrer Abstraktheit die geforderte Nähe zum jeweiligen Anwender bzw. Problemfeld. Durch eine Ergänzung der graphischen mit sprachlichen Elementen, wie z.B. in der Strukturierten Analyse, können diese Nachteile jedoch aufgehoben werden und die Spezifikation wird benutzerfreundlicher und präziser. Als vorteilhafte Spezifikationssprache für die der Fertigungslenkung zugrunde liegende Vorgangsstruktur haben sich Petri-Netze, erweitert durch die oben bereits teilweise beschriebenen Ergänzungen, herausgestellt. 3.2.2 Semantik existierender Spezifikationssprachen Im folgenden werden nun die Beschreibungssprachen einiger umfassender Konzepte und Modelle der Produktionsplanung und -steuerung, die bereits im Rahmen der Klassifikation betrachtet wurden, bezüglich ihrer Eignung als Spezifikationssprache für die Fertigungslenkung untersucht. Dabei wird in der Hauptsache auf die Semantik dieser Darstellungsarten eingegangen. Das Rahmenwerk CIM-OSA117 beinhaltet auf seinen Modellierungsebenen, Anforderungen, Design und Implementierung, verschiedene Spezifikationssprachen. Auf der Anforderungsebene werden die Prozesse und Aktivitäten und die sie auslösenden Ereignisse bzw. Bedingungen dargestellt. Außerdem werden die In- und Outputs der Aktivitäten und Objektsichten mit 115. Vgl. [GJM91], S. 185 ff. Vgl. [SMJ93], S. 37 117. Vgl. Abschnitt 3.1 Klassifikationen für die Fertigungslenkung 116. 80 Kapitel 3 ihren jeweiligen Eigenschaften beschrieben. Die Darstellung erfolgt einerseits in Form pseudosprachlicher Definitionen und Regeln sowie andererseits mit graphischen Darstellungen in einer der IDEF-Modellierungssprache118 ähnlichen, also auf der SADT-Methode119 basierenden, Notation. Die Design Spezifikation legt das Prozeßverhalten sowie das Aktivitätenverhalten mit den erforderlichen Funktionen bzw. funktionalen Operationen und Ressourcen fest. Auch diese Spezifikation wird mit Pseudocode beschrieben. Auf der Implementierungsebene schließlich wird das Modell der Design Spezifikation vervollständigt und in relationalen Strukturen unter Benutzung von SQL120 abgebildet.121 Problematisch an CIM-OSA ist, daß die bisherigen Konstrukte sich vor allem auf die Darstellung von Prozessen, Aktivitäten und Funktionen beschränken, wohingegen es für die zugrunde liegende Struktur fast keine Beschreibungsmittel gibt. Die Abbildung der Spezifikationen in Pseudocode und graphischen Darstellungen, wie sie auf der Anforderungsebene vorgenommen wird, bedeutet eine klare Erleichterung für das Verständnis. Es fehlt allerdings an einer Verbindung zwischen den pseudosprachlichen und graphischen Darstellungen, die zur einfachen Anwendbarkeit dieser Spezifikationen beitragen würde. Eine weitere Schwachstelle ist der etwas unklare Übergang von der Anforderungs- zur Designspezifikation. Eine Kombination beider Beschreibungen würde die Nutzung vereinfachen und beschleunigen. Außerdem könnten so Fehler beim Übergang zwischen den Ebenen bzw. den verschiedenen Spezifikationen vermieden werden. Wie auch im Rahmenwerk CIM-OSA besitzen die unterschiedlichen Beschreibungsebenen im ARIS Konzept von Scheer122 jeweils spezifische Darstellungsarten. Auf höchster Ebene, der betriebswirtschaftlichen Problemstellung, werden nur halbformale Beschreibungsmethoden eingesetzt, um grobe Tatbestände, die sehr nahe an den fachlichen Zielsetzungen und der fachlichen Sprachwelt orientiert sind, darzustellen. Das Fachkonzept bietet dagegen bereits eine soweit formalisierte Sprache, daß es Ausgangspunkt einer konsistenten Umsetzung in die Informationstechnik sein kann. Es ist jedoch immer noch eng mit der betriebswirtschaftlichen Problemstellung verbunden. Die Ebene des DV-Konzepts ermöglicht die Übertragung der Begriffswelt des Fachkonzeptes in die Kategorien der DV-Umsetzung. In ihr werden die aus118. Vgl. [MSJ94], S. 104 ff. Vgl. [DaWa97], S. 246 ff. 120. SQL (Structured-Query-Language) ist die verbreitetste Datenbanksystem-Sprache und dient zur Definition des konzeptionellen Modells sowie zur Manipulation von Daten. Seit 1989 ist sie international normiert und stellt den Marktstandard dar (vgl. [Han92], S. 574 ff.). 121. Vgl. [Ver93], S. 72 ff. 122. Vgl. [Schee98], S. 14 ff. 119. Stand der Technik 81 führenden Module oder Benutzertransaktionen definiert. Zwischen Fachkonzept und DV-Konzept besteht nur eine lose Kopplung. Auf unterster Ebene wird das DV-Konzept auf konkrete hardware- und softwaretechnische Komponenten übertragen und somit die physische Verbindung zur Informationstechnik hergestellt. Demzufolge ähneln die an das Fachkonzept gestellten Anforderungen denen, die der hier zu entwickelnden Spezifikationssprache zugrunde liegen. Bezüglich der verschiedenen Beschreibungssichten besitzt das Fachkonzept von ARIS jedoch unterschiedliche Darstellungsarten. So sind die Beschreibungsmethoden der Funktionssicht Hierarchiediagramme und Funktionsbäume zur statischen Darstellung der Funktionsstruktur, ein Netzwerk von Anordnungsbeziehungen zur Beschreibung der Ablauffolgen mit Zeitbezug und Nassi-Shneiderman Diagramme zur Abbildung der Funktionsausführung, womit die Transformationsregeln von Eingabe- zu Ausgabedaten gemeint sind. Letztere werden auch bei der Erarbeitung des DV-Konzepts eingesetzt. In der Organisationssicht wird die Organisationsstruktur bzw. -gliederung mittels Organigrammen verknüpft durch Weisungsbefugnisse dargestellt. Die Beschreibung des Fachkonzepts der Datensicht erfolgt durch ein erweitertes Entity-Relationship-Model (ERM)123. Die Steuerungssicht schließlich, welche die Verknüpfung von Funktionen, Organisation und Daten behandelt, bildet diese mit ereignisgesteuerten Prozeßketten, einer Verbindung von Bedingungs-Ereignisnetzen der Petri-Netz-Theorie mit Verknüpfungselementen, wie sie z.B. von dem stochastischen Netzplan-Verfahren GERT124 verwendet werden, ab. Die Vielzahl unterschiedlicher Beschreibungsmethoden des ARIS-Konzepts ist für die einzelnen Sichten sehr nützlich und anwenderfreundlich, da die Methoden direkt auf die speziellen Problematiken zugeschnitten sind. So beschreibt das ERM z.B. Datenzusammenhänge; die Spezifikation von Funktionen und die Abbildung von Funktionsabläufen mit dieser Beschreibungsmethode ist jedoch nicht möglich.125 Dem Konzept fehlt indessen eine gemeinsame Basis dieser Methoden, so daß die verschiedenen Darstellungen keine Verbindungen besitzen und nicht direkt miteinander zu verknüpfen sind. Dieser Umstand erschwert oder verhindert in den meisten Fällen sogar eine umfassende und einheitliche Beschreibung der Fertigungslenkung, wie sie für die in der vorliegenden Arbeit zu entwickelnde Spezifikationssprache gefordert ist. Darüber hinaus fehlen dem ARIS-Konzept aufgrund des großen Problembereichs, den es abgedeckt, bzw. wegen seiner Allgemeingültigkeit die Nähe zur Fertigungslenkung und 123. ERM ist ein spezielles Datenmodell zur Darstellung eines konzeptionellen Schemas (vgl. [Han92], S. 563 ff. und [Sche98], S. 31 ff.). 124. Vgl. [Rit98], S. 57 ff. 125. Vgl. [SMJ93], S. 37 f. 82 Kapitel 3 außerdem mnemonische Konstrukte in den einzelnen Beschreibungsmethoden. Da der hier zu spezifizierende Bereich auf die Fertigungslenkung beschränkt ist, sind die Methoden bzw. die Darstellungsarten der Funktionssicht des ARIS-Konzepts von besonderem Interesse. Auf sie wird deswegen im Rahmen der Spezifikation von Fertigungslenkungsfunktionen noch näher eingegangen. Im Aachener PPS-Modell besitzt ebenfalls jede Referenzsicht ihre eigenen Darstellungsmethoden, die speziell auf den von ihr dargestellten Problembereich ausgerichtet sind.126 So erfolgt z.B. die Dokumentation der Referenzprozesse auf Basis von DIN 66001, während die Funktionen rein semantisch über eine verbale Beschreibung des Funktionsmerkmals und seiner Ausprägungen beschrieben werden.127 Eine Besonderheit dieses Modells ist die objektorientierte Referenzsicht, die der Unterstützung von Projekten zur objektorientierten Entwicklung von PPS-Systemen dient. Diese bietet den Vorteil einer leichten Umsetzung in eine Programmiersprache und eignet sich somit als Vorbild der hier zu entwickelnden Spezifikationssprache. Die objektorientierte Referenzsicht wird in der Notation der Unified Modeling Language (UML) angegeben. Ebenso wie beim ARIS-Konzept fehlt es den Beschreibungsmethoden des Aachener PPS-Modells aber an einer gemeinsamen Grundlage. Die Referenzsichten dienen jeweils bestimmten Zwecken und sind für den Einsatz in unterschiedlichen PPS-Projekten vorgesehen; zwischen ihnen bestehen jedoch nur lose Zusammenhänge. So liefert die Aufgabensicht z.B. die Grobstruktur für die Funktionen und die Objektklassen der PPS. Außerdem gibt sie Prozeßschritte vor. Insgesamt mangelt es diesem Konzept ebenfalls an der geforderten Einheitlichkeit und damit der Anwendbarkeit als Gesamtspezifikation. Ein weiteres Defizit ist wiederum die fehlende Orientierung am Problembereich. Die objektorientierte Sprache ORVAN128 wurde für die Darstellung und Modellierung von Produktionsprozessen und Planungsstrategien entwickelt, wobei insbesondere die Implementierung von Leitständen im Vordergrund stand. Sie basiert auf einer Synthese der Konzepte der objektorientierten Programmierung und der objektorientierten Wissensrepräsentation. Ihre Zielsetzung ist es, entsprechend der Wiederverwendung von Programmcode in objektorientierten Programmiersprachen, Modellfragmente von Produktionsprozessen erneut einzusetzen. Dieses ist ein Ansatz, der als Vorbild der hier zu entwickelnden Spezifikationssprache und insbesondere ihrer Implementierung dienen kann. Als Bausteine von ORVAN werden nur ele126. Vgl. [Scho98], S. 14 ff. Vgl. Abschnitt 3.2.2.3 Spezifikationssprachen für Fertigungslenkungsfunktionen 128. Vgl. [Pla93] 127. Stand der Technik 83 mentare Datentypen, wie z.B. Real, Integer, String, usw., genutzt. Zusätzlich gibt es fertigungslenkungsspezifische, einfache Erweiterungen, wie z.B. Zeit, Relationen und Entscheidungstabellen. Allerdings bietet ORVAN damit eine Spezifikation, die der von herkömmlichen Programmiersprachen weitestgehend entspricht und sich auf einer sehr detaillierten Darstellungsebene befindet. Dieses widerspricht jedoch den hier an die Spezifikationssprache gestellten Anforderungen. Außerdem fehlt in der Grundphilosophie von ORVAN ein spezielles (problembereichsorientiertes) Konzept für die Behandlung der Fertigungslenkungfunktionalität.129 EXPRESS130 wurde im Rahmen des US Air Force ICAM Product Definition Data Interface Programms131 entwickelt. Zunächst war es eine einfache Data Definition Language, wurde jedoch später zu einer Data Specification Language weiterentwickelt. EXPRESS ist eine formale Beschreibungssprache zur Modellierung von Produktinformationen und ermöglicht die Entkopplung von Dateninhalten und physikalischen Speicherformaten. Weiterhin besitzt es allgemeine Konstrukte zur Strukturierung von Daten durch Datenobjekte, Datenbeziehungen und Attribute sowie deren Dekomposition. Eine Besonderheit von EXPRESS ist die Möglichkeit der Darstellung von Kommunikation zwischen einzelnen Systemen. Die folgenden Elemente werden von dieser Sprache zur Verfügung gestellt:132 • Types (Variablen, Parameter) • Entities (Objekte) • Algorithms: Rules, Functions (Sequenz von Operationen), Procedures (Zusammenfassung von Functions und Rules) • Schema (Vorgang - Zusammenfassung von Types, Entities, Functions und Rules) Die Struktur und Syntax von EXPRESS ist der Programmiersprache Pascal ähnlich, allerdings sind Grundzüge einer Objektorientierung enthalten. Dennoch werden nur Daten- bzw. Informationsobjekte und deren Beziehungen betrachtet, weswegen die Spezifikationssprache EXPRESS auf statische Informationen beschränkt ist. Ein weiterer Nachteil von EXPRESS ist die komplizierte und nicht problembereichsspezifische, konkret auf die Fertigungslenkung bezogene Notation. Der rein sprachlichen Darstellung fehlt es trotz der teilweisen Objektorien129. Vgl. [Fel96], S. 32 EXPRESS ist Teil der Entwicklung von STEP (STandard for the Exchange of Product model data), einem internationalen Standard zur Beschreibung von Produkten (vgl. [MSJ94], S. 89 ff. und [ScWi94]). 131. Integrated Computer Aided Manufacture-Program (ICAM) 132. Vgl. [ISO94] 130. 84 Kapitel 3 tierung ab einem gewissen Datenumfang an Anschaulichkeit und Übersichtlichkeit. Dieses liegt nicht zuletzt am hohen Detaillierungsgrad von EXPRESS und führt dazu, daß eine Anwendung der Sprache deutlich erschwert wird. Einzelprobleme der Fertigungslenkung, vor allem Ablauf- oder Reihenfolge- und Los- oder Bestellgrößenplanungen, werden immer noch häufig mit optimierenden Verfahren133 bearbeitet. Die Grundlage dieser Verfahren bilden rein mathematische Beschreibungen. Meistens handelt es sich dabei um isolierte Planungen, die von speziellen und vielfach stark einschränkenden Prämissen, z.B. bezüglich des Produktionsprogramms oder der Fertigungsart, ausgehen. Diese große Zahl an Annahmen erlauben zwar die beschränkte Untersuchung interessanter Größen, aber keine umfassende Betrachtung der Fertigungslenkung.134 Daneben werden lineare oder gemischt-ganzzahlige Programme zur Spezifikation der Probleme immer umfassenderer Simultanmodelle entwickelt. Sie spezifizieren den Problembereich mit Variablen, Nebenbedingungen und Zielfunktionen und beziehen sachliche und zeitliche Interdependenzen der einzelnen Teilbereiche der Fertigungslenkung mit ein. Allerdings stoßen diese Programme bezüglich ihrer Operationalisierbarkeit auf Probleme.135 Ein Spezialfall dieser mathematischen Spezifikationen findet sich bei Rittgen.136 Er hat einen eigenen Kalkül für die Ablaufplanung entwickelt, der ihre wesentlichen Charakteristika einfach und in theoretischer Form beschreibt. Dieser Kalkül ist gleichzeitig auch die Basis für eine effiziente Heuristik zur Optimierung. Als Kern der Ablaufplanung sieht Rittgen den (Produktions-)Prozeß und wählt deswegen die Prozeßtheorie als Basis seines Kalküls. Der von Rittgen gewählte Ansatz der Spezifikation, auf der seine Implementierung basiert, kann als Vorbild der hier entwickelten Spezifikation dienen. Für den Kalkül von Rittgen wie auch die anderen derartigen Spezifikationen ist allerdings nachteilig, daß sie meistens auf einer rein mathematischen Beschreibung der Fertigungslenkungsprobleme basieren. Diese Darstellung besitzt zwar einen hohen Abstraktionsgrad, kann den Anforderungen bei realistischen Problemstellungen jedoch nicht entsprechen. Außerdem ist diese Form der Beschreibung weder leicht verständlich noch besonders benutzerfreundlich. Darüber hinaus mangelt es den Modellen auch an mnemonischen Konstrukten sowie an der 133. Optimierende Verfahren sind Verfahren, die ausgehend von einer zulässigen Basislösung, die oder eine optimale Lösung eines Problems liefern (vgl. [DoDr95], S. 74). 134. Vgl. [Sau93] 135. Vgl. zur Kritik [Swi89] oder zur Darstellung und zum Vergleich von ganzzahligen Programmen in der Ablaufplanung [See75] 136. Vgl. [Rit98] Stand der Technik 85 Vollständigkeit ihrer Abbildung in Bezug auf die Fertigungslenkung. Letzteres liegt vor allem darin begründet, daß eine derartige Spezifikation auf einem sehr niedrigen Aggregationsniveau ansetzt. Die Beschreibung ist genauestens auf ein spezifisches Problem zugeschnitten. Bereits bei kleinsten Abweichungen oder einer geringfügigen Variation der Formulierung von Variablen und Restriktionen ändert sich der Modellumfang137 und der erforderliche Rechenaufwand. Diese als gemischt-ganzzahlige Optimierungsmodelle formulierten monolithischen Modelle stellen demnach keine anwendbaren Lösungsansätze dar, sondern bieten in erster Linie eine Beschreibung der Probleme. Außerdem machen sie die Wechselwirkungen zwischen den Teilbereichen der Fertigungslenkung sichtbar.138 Ansätze zur Entwicklung einer Spezifikationssprache für die Fertigungslenkung finden sich auch bei Felser.139 Er hat in seiner Arbeit einen Problemdeskriptor zur Beschreibung der steuerungs- und planungsrelevanten Eigenschaften eines Fertigungssteuerungssystems entwickelt. Im einzelnen untergliedert der Deskriptor die Steuerungs- und Planungsprobleme in die Teilkomponenten Prozeß, Ziel und Umsysteme. Dabei beinhaltet die Komponente Prozeß die Struktur und die lokalen Eigenschaften der Probleme. Die Komponente Umsysteme besteht aus der Kopplung mit diesen und der Ereignismenge. Weiterhin setzt sich die Struktur aus den Komponenten Makrostruktur, welche die Ablaufstruktur spezifiziert, und Mikrostruktur, die den bzw. die Prototypen abbildet, zusammen.140 Lokale Eigenschaften sind entweder Knotenoder Kanteneigenschaften. Die Darstellung im Problemdeskriptor teilt sich in graphische und sprachliche Beschreibungselemente auf. Insgesamt bietet Felser eine sehr gut verständliche und präzise Spezifikation für die Fertigungslenkung, die ein großes Spektrum der dort anzutreffenden Probleme umfaßt. Ein Nachteil des Problemdeskriptors ist es jedoch, daß er von einem simplifizierten Zeitmodell, und zwar einem einheitlichen und kontinuierlichen, sowie weiteren Vereinfachungen bezüglich der Dimensionierung der Betriebsmittel und der Unterbrechbarkeit von Vorgängen ausgeht. Darüber hinaus ist diese Beschreibungsform einerseits bezüglich der Darstellung der Fertigungslenkungsabläufe und -funktionen nicht ausführlich genug, und auf der anderen Seite in Bezug auf die Knoten- und Kanteneigenschaften bereits zu detailliert, um sinnvoll auf die gesamte Fertigungslenkung angewendet zu werden. Die Spezifikation eines umfangreichen Problems 137. Mit Modellumfang ist hier die Zahl der Variablen und Nebenbedingungen gemeint. Vgl. [Zäp82], S. 303 139. Vgl. [Fel96], S. 84 ff. 140. Vgl. Abschnitt 3.1.1 Klassifikationen für Fertigungslenkungsstrukturen 138. 86 Kapitel 3 mit dieser Spezifikationssprache bzw. diesem Problemdeskriptor bietet nicht die geforderte Transparenz, Anschaulichkeit und Übersichtlichkeit. Daneben ist auch die Entfernung der Beschreibung von der Implementierung zu bemängeln, welche die Umsetzung der Spezifikation in ein lauffähiges Programm erschwert. Hartmann141 hat in seiner Arbeit eine Spezifikationssprache für Methoden zur Definition hierarchischer Abläufe entwickelt. Mittels dieser Methoden soll ein hierarchischer Ablauf der Gesamtheit vordefinierter Fertigungssteuerungsfunktionen definiert und damit der Ablauf des Fertigungssteuerungssystems festgelegt werden. Das Ablaufnetz, das, wie bereits in Abschnitt 3.1.1 Klassifikationen für Fertigungslenkungsstrukturen dargestellt, auf dem Modell der Fertigungssteuerung basiert, setzt sich aus den Konstrukten Objektknoten, Vorgangsknoten, Schnittstelle und Kante zusammen, die eine flexible Abbildung erlauben. Auf diesem Ablaufnetz basiert die Spezifikationssprache, durch die eine einheitliche und problembereichsspezifische Formulierung der Methoden zur Definition hierarchischer Abläufe ermöglicht werden soll. Sie dient sowohl zur Beschreibung der In- und Outputdaten als auch der Funktionalität dieser Methoden. Dabei verwendet sie mnemonische Sprachkonstrukte, die sich an der Syntax natürlicher Sprachen orientieren. Diese enge Verknüpfung von einer graphischen (Ablaufnetz) mit einer sprachlichen (Spezifikationssprache) Notation zeigt viele Vorteile und soll deswegen als Vorbild der hier zu entwickelnden Spezifikation genutzt werden. Als definierte Syntax nutzt Hartmann eine der Programmiersprache Modula-2 ähnliche Notation, um eine möglichst einheitliche Darstellung der problembereichsunabhängigen und -abhängigen Datentypen zu erreichen. Allerdings ist ein entscheidendes Problem dieser Spezifikationssprache ihre Komplexität und schwierige Lesbarkeit. Trotz der Verwendung von mnemonischen Sprachkonstrukten sind die Programme aufgrund ihrer wenig anschaulichen Notation nur schwer verständlich. Weiterhin geht Hartmann vereinfachend davon aus, daß Fertigungssteuerungsfunktionen vorgegeben sind und geht deswegen auf diese nicht im Detail sondern nur als „schwarzer Kasten“ ein. Dieses bedeutet gleichzeitig, daß er keine umfassende Darstellung der Funktionen in der Spezifikationssprache ermöglicht. Auf seine Beschreibung der Strukturen und Abläufe wird in den folgenden Abschnitten noch näher eingegangen. Auch Brucker142, dessen Klassifikation von Schedulingproblemen bereits in Abschnitt 3.1 Klassifikationen für die Fertigungslenkung betrachtet wurde, nutzt eine Spezifikationssprache zur algorithmischen Darstellung der Belegungsverfahren. Diese Sprache ist eine Mischung aus 141. 142. Vgl. [Hart95] Vgl. [Bru81] Stand der Technik 87 Pseudocode und Elementen höherer Programmiersprachen, wie z.B. Bedingungen, Schleifen, Zuweisungen usw. Bruckers Ziel ist jedoch in erster Linie eine Darstellung der Unterschiedlichkeit der einzelnen Schedulingverfahren bezüglich Effizienz und Zielerreichung und nicht eine einheitliche und vollständige Beschreibung der Fertigungslenkung. Aus diesem Grund ist seine Spezifikationssprache auf einer sehr niedrigen programmiertechnischen Ebene angesiedelt. Die Programme sind sehr detailliert und entsprechen in weiten Teilen der Implementierung in einer höheren Programmiersprache. Somit widerspricht die Zielsetzung dieser Spezifikationssprache den für die hier zu entwickelnde Sprache gestellten Anforderungen. Sie ist vielmehr ein Hilfsmittel für den Programmierer, der Verfahren optimal implementieren will, und nicht für den Anwender, für den eine anschauliche und verständliche Beschreibung seiner Fertigungslenkungsproblematik im Vordergrund steht. Aus diesem Grund sollte im Rahmen der Implementierung der Spezifikationssprache wieder auf diesen Ansatz zurückgekommen werden. Kritisch ist an Bruckers Ansatz weiterhin zu sehen, daß die jeweils zugrunde liegende Lenkungsstruktur und die Lenkungsabläufe des Schedulingproblems einerseits nur unvollständig und andererseits ausschließlich in Pseudocode beschrieben werden, was gegenüber einer Darstellung mittels einer graphischen Notation klare Nachteile bezüglich Verständlichkeit, Übersichtlichkeit und Anwendbarkeit in sich birgt. Zur Realisierung inhaltlicher Verbesserungen gegenüber den bisher verwendeten Modellen und Methoden der Produktionsplanung untersucht Kurbel143 Entwurfsprinzipien für die Entwicklung von Softwaresystemen für diesen Problembereich. Er geht dabei von in der Praxis eingesetzten Produktionsplanungskonzepten und Planungsmodellen aus dem OperationsResearch mit komplizierten Lösungsalgorithmen, wie z.B. heuristischen, simultanen Planungsverfahren sowie Optimierungsverfahren, aus und erstellt Konzeptionen für die Gestaltung von Softwaresystemen für diese Problembereiche. Dabei strukturiert er, basierend auf dem Softwareentwurfskonzept Modularisierung, die Softwaresysteme nach Teilgebieten der Produktionsplanung sowie nach Abstraktionsebenen.144 Letztere unterteilen ein System in vier Bereiche: Steuermodule, prozedurale Abstraktionen, abstrakte Datenstrukturen und die elementare Datenverwaltung. Die höchste Abstraktionsebene kontrolliert den algorithmischen Ablauf der einzelnen Aufgabenkomplexe. Diese Steuermodule spezifiziert Kurbel anhand von Nassi-Shneiderman-Diagrammen, wodurch ihre Struktur sehr anschaulich und übersichtlich dargestellt wird. Ein Beispiel der Beschreibung eines Steuermoduls ist der in Abbildung 3-3 143. 144. Vgl. [Kur83] Vgl. Abschnitt 3.1 Klassifikationen für die Fertigungslenkung 88 Kapitel 3 dargestellte Algorithmus der bedarfsgesteuerten Materialdisposition nach dem Dispositionsstufenverfahren145. Wiederholen für jede Dispositionsstufe i = 1 ... n Wiederholen für jedes Teil j der Stufe i Bruttobedarfsermittlung Nettobedarfsermittlung Losgrößenplanung Sekundärbedarfsermittlung Vorlaufverschiebung Abbildung 3-3:Materialdisposition nach dem Dispositionsstufenverfahren (vgl. [Kur83], S. 216) Kurbel hat mit seinen Abstraktionsebenen eine hierarchische Systemstruktur entwickelt, der eine Gliederung der Produktionsplanung nach Teilgebieten, die sich unter anderem in ihrem zeitlichen Horizont unterscheiden (Sukzessivplanungskonzept), zugrunde liegt. Aufbauend auf seinem schrittweisen Planungsablauf nimmt er weiterhin eine Modularisierung der Systemkomponenten vor. Während Kurbel also vom starren Sukzessivplanungskonzept ausgeht und damit feste Module umfangreicher Funktionalität erhält, wurde in dieser Arbeit bereits im Rahmen der Klassifikation größere Flexibilität gefordert, so daß sukzessive wie auch simultane Planung ermöglicht wird. Außerdem wird durch die Trennung von Abläufen und Funktionen eine größere Variabilität der Fertigungslenkung geboten. Die Spezifikationssprache, die Kurbel zur Beschreibung seiner Steuermodule nutzt, setzt sich aus Iterations-, Schleifenanweisungen und Funktionsaufrufen (Modulen)146 zusammen. Problematisch dabei ist die Definition des betrachteten Bereichs, die rein sprachlich und nicht auf einer graphischen Notation, wie z.B. einem Vorgangsnetz, basierend vorgenommen wird. Als abstrakte Datenstrukturen dieser Steuermodule nutzt Kurbel Strukturdarstellungen aus der Softwaretechnik, wie z.B. Bäume, Netzpläne, Balkendiagramme, Ketten u.a., die zwar in einem einzigen Datenbestand abgelegt, jedoch nicht durch ein zugrunde liegendes Gesamtmo145. Das Dispositionsstufenverfahren organisiert die Erzeugnisstrukturen im Gegensatz zum Fertigungsstufenverfahren nach den jeweils tiefsten Fertigungsstufen, auf denen das betrachtete Teil in irgendeiner Erzeugnisstruktur vorkommt, den sogenannten Dispositionsstufen (vgl. [Kur93]). 146. Bedingte Anweisungen finden sich erst in den Algorithmen eine Ebene tiefer. Stand der Technik 89 dell verknüpft sind. Mit ihnen stellt er z.B. Erzeugnisstruktur-, Teilefertigungs- oder Dispositionsstufenketten dar. Diese Datenstrukturen werden genau so abgebildet, wie sie auch in einer höheren Programmiersprache implementiert würden, was jedoch für den Anwender der Sprache zu detailliert und außerdem zum Teil wenig anschaulich und übersichtlich ist. Dieses widerspricht darüber hinaus den in Kapitel 2 formulierten Anforderungen, die eine Beschreibung der Fertigungslenkung auf einer anwendernahen Ebene fordern, um so eine leicht verständliche und nutzbare Spezifikationssprache zu erlangen. Eine direkte Abbildung der Fertigungslenkungsproblematik in einer höheren Programmiersprache kann diese Anforderungen nicht erfüllen. Insoweit ist die von Kurbel entwickelte Spezifikationssprache und seine Vorgehensweise zur Entwicklung eines Softwaresystems für die Produktionsplanung für Softwareentwickler nicht jedoch für die Anwender aus der Fertigungslenkung geeignet. Das Ziel der Arbeit von Sauer147 ist die Entwicklung einer einheitlichen Repräsentation von Ablaufplanungsverfahren auf Basis von Heuristiken. Zur Lösung dieser Aufgabe erstellt er die Heuristik-Sprache HERA, die eine einheitliche und transparente Beschreibung von Ablaufplanungsproblemen und des zur Lösung geeigneten Wissens darstellt. Letzteres spezifiziert er weiter in Form von statischem und dynamischem Ablaufplanungswissen sowie von Kontrollwissen. Zur Darstellung des Ablaufplanungswissens werden Planskelette148 und Auswahlregeln genutzt. Weiterhin ist HERA kontextfrei und beruht auf der Programmiersprache Prolog149, d.h. Basis für die Sprache sind die syntaktischen Grundbereiche und weitere Eigenschaften von Prolog, die noch durch problemangepaßte Erweiterungen Ergänzung finden. Die Repräsentation verwendet daneben zur Darstellung von Wissen Aspekte objektorientierter und regelorientierter Konzepte. Dieser wissensbasierte Ansatz einer Spezifikationssprache für die Fertigungslenkung zeigt bezüglich der aufgestellten Anforderungen verschiedene Mängel. Zuerst einmal ist er auf Ablaufplanungsprobleme begrenzt und bietet damit keine vollständige Beschreibung der Fertigungslenkung. Daneben entspricht die Syntax nicht den gestellten Anforderungen, denn sie ist zwar gut strukturiert und in kleinerem Umfang auch recht anschaulich, dieser Vorteil schwindet allerdings bei komplexeren Systemen. Aufgrund der Nähe zu Prolog fehlt es HERA darüber hinaus an der geforderten Abstraktion, die Sprache 147. Vgl. [Sau93] Bei der Aktionsplanung: Darstellung eines Plans zur Durchführung von Aktionen durch abstrakte Operatoren, die situationsspezifisch verfeinert werden. Für die Heuristik-Sprache: Schema eines Algorithmus, der den Durchlauf durch einen Und/Oder-Baum beschreibt; abstrakte Operatoren stehen u.a. für Auswahlregeln für Knoten (vgl. [Sau93], S. 185). 149. Prolog ist eine prädikative bzw. logische Programmiersprache. In einem Prolog-Programm wird versucht, die Richtigkeit einer Eingabe anhand vorhandener Regeln zu überprüfen (vgl. [Han92], S. 367). 148. 90 Kapitel 3 ist zu detailliert. Außerdem ist die logische Programmierung keine besonders benutzerfreundliche und direkt verständliche Form der Darstellung. Das Process Specification Language (PSL) Project150 der Manufacturing Systems Integration Division des National Institute of Standards and Technology hat sich zur Aufgabe gesetzt, eine allgemeine, robuste und generische Sprache, eine Standard-Spezifikationssprache, zur Repräsentation von Prozessen und ihren Ablaufstrukturen zu erarbeiten. Diese Sprache soll eine Darstellung des allen Prozessen zugrunde liegenden Konzepts und damit eine gemeinsame Basis für alle die Funktionen sein, die Prozeßdaten benötigen bzw. mit Prozessen arbeiten. Dabei soll ihre Sichtweise von Prozessen nicht auf eine bestimmte Strategie oder einen speziellen Problembereich beschränkt sein. Weiterhin baut PSL auf verschiedenen existierenden Methodiken auf. Die Entwicklung einer derartigen übergreifenden Sprache ist möglich, da eine Vielzahl ihrer Grundvoraussetzungen allen bisherigen Ansätzen gemeinsam ist. Die dabei zu integrierenden Funktionen reichen quer durch den Lebenszyklus eines Produktes, von den ersten Produktionsprozessen über die Prozeßplanung (Workflow), Validierung, Maschinenbelegungsplanung (Production Scheduling) bis zur Produktionsregelung (Control) und umfassen somit Geschäftsprozesse wie auch technische (Produktions-) Prozesse. Derzeit haben alle diese Funktionen typischerweise ihre eigenen Beschreibungsansätze, die sich sowohl syntaktisch als auch semantisch unterscheiden. PSL setzt sich zusammen aus einem Schema, einer Grammatik und einer Syntax sowie mehreren Darstellungsarten. Letztere sind deswegen nötig, da die Sprache einerseits eine Notation besitzen soll, die direkt in ein Programm umgesetzt werden kann, und andererseits verschiedene graphische Notationen, die den Anwendern die Abbildung in der Spezifikationssprache und ihre Nutzung erleichtern und eine umfassende Sicht auf die Prozesse ermöglichen sollen. Das diesen Darstellungsarten zugrunde liegende Schema der Sprache muß aufgrund von deren Unterschiedlichkeit formal und darstellungsunabhängig sein. Die zur Prozeßbeschreibung erforderlichen Daten und Strukturen werden größtenteils aus externen Modellen entnommen. In PSL selbst werden nur die dargestellt, die nirgendwo sonst abgebildet sind. Die Analyse existierender Beschreibungssprachen bzw. -ansätze im Rahmen der Entwicklung von PSL ergab, daß fast alle derzeitigen Darstellungsarten ihren Schwerpunkt eher auf die Syntax als die Semantik der Prozeßspezifikation legen. Demzufolge werden in diesen Ansätzen unterschiedliche Begriffe mit gleicher bzw. gleiche Begriffe mit unterschiedlicher Bedeu150. Vgl. [SKR96] Stand der Technik 91 tung verwendet. Da die PSL allerdings für eine übergreifende Nutzung in verschiedenen Bereichen entwickelt wird, benötigt sie einen Satz von eindeutigen semantischen Ausdrücken.151 Der nächste Schritt in der Entwicklung der PSL ist somit das Erarbeiten von Methoden, die eine exakte Abbildung der Semantik existierender Prozeßbeschreibungen auf den detaillierten und wohl definierten semantischen Konzepten der PSL ermöglichen.152 Anschließend sollen Pilotprojekte gestartet werden, um die Sprache bezüglich ihrer Robustheit und Vollständigkeit zu validieren. Das PSL Projekt zeigt insgesamt viele Parallelen zu der in dieser Arbeit zu entwickelnden Spezifikationssprache. In beiden Fällen ist der Ausgangspunkt eine Vielzahl unterschiedlicher Darstellungs- bzw. Modellierungsarten für einen gewissen Problembereich, denen es an einer gemeinsamen Basis mangelt und die neben einer unterschiedlichen Syntax auch verschiedenartige Semantiken verwenden, so daß ein Datenaustausch zwischen ihnen kaum möglich ist. Die Ziele beider Ansätze entsprechen sich ebenfalls weitestgehend, und zwar soll jeweils eine allgemeine und einheitliche Spezifikationssprache entwickelt werden, die dem Anwender einerseits die Beschreibung und andererseits auch die Umsetzung in die Realität bzw. in ein Informationssystem entscheidend vereinfachen soll. Insoweit kann das PSL-Projekt eindeutig als Vorbild dieser Arbeit dienen. Ein wichtiger Unterschied ist jedoch der Anwendungsbereich der jeweiligen Sprache, der sich in der vorliegenden Arbeit auf die Fertigungslenkung beschränkt, während die PSL bereichsübergreifend ist und sowohl Fertigungsprozesse als auch Geschäftsprozesse mit einschließt. Diese Verknüpfung unterschiedlicher Bereiche resultiert in einigen speziellen Anforderungen, wie z.B. der umfassenden Vereinheitlichung der Semantik. Weitere Unterschiede bestehen bezüglich der angestrebten Darstellungsarten. PSL soll verschiedene sprachliche und graphische Notationen beinhalten, was aufgrund des abzudeckenden breiten Spektrums sicherlich vorteilhaft ist. Außerdem soll sie so weit wie möglich auf bestehenden Beschreibungsmethodiken aufbauen. Bei der hier zu entwickelnden Spezifikationssprache für die Fertigungslenkung wird hingegen ein anderer Ansatz verfolgt. Zwar sollen auch hier bestehende Ansätze mit einbezogen werden, aber es geht in erster Linie um die Einheitlichkeit und Benutzerfreundlichkeit der Beschreibungssprache. Um diesen Anforderungen zu entsprechen und die Sprache möglichst einfach und verständlich zu gestalten, soll es nur eine umfassende Notation geben, die sich allerdings aus sprachlichen und graphischen Elementen zusammensetzen kann. 151. 152. Vgl. [Knu98], S. 36 Vgl. [SIK98] 92 Kapitel 3 Zusammenfassend läßt sich bezüglich der untersuchten Spezifikationssprachen feststellen, daß sie jeweils bestimmte Eigenschaften der Fertigungslenkung effizient beschreiben. Dabei stehen bei allen Spezifikationen Kombinationen aus der Beschreibung von Funktionen, von Abläufen und/oder von Daten bzw. Struktur im Vordergrund. Weitere Aspekte können teilweise ergänzend abgebildet werden, jedoch werden in allen untersuchten Fällen bestimmte Teilbereiche, die zu einer vollständigen Abbildung der Fertigungslenkung unerläßlich sind, vernachlässigt. Außerdem variiert der beschriebene Problembereich von sehr weitgefaßten Ansätzen der Unternehmensmodellierung bis zu Spezifikationssprachen für ganz besondere und sehr detaillierte Ablaufplanungsprobleme. Demzufolge bietet keiner der untersuchten Ansätze eine umfassende und einheitliche Darstellung aller drei Aspekte der Fertigungslenkung und erfüllt die hier gestellten Anforderungen. Darüber hinaus genügt auch die Darstellungsart und die daraus resultierende Anschaulichkeit und Verständlichkeit der meisten analysierten Spezifikationssprachen nicht den Forderungen aus Kapitel 2. Die Beschreibungssprachen von Felser, Hartmann und Kurbel erwiesen sich allerdings als geeignet zur Abbildung von speziellen Teilbereichen. Im folgenden werden nun noch einige Spezifikationssprachen für die in der Klassifikation herausgearbeiteten Teilkriterien der Fertigungslenkung, Fertigungslenkungsstrukturen, -abläufe und -funktionen, untersucht. 3.2.2.1 Spezifikationssprachen für Fertigungslenkungsstrukturen Spezifikationssprachen, die auch die Fertigungslenkungsstrukturen konkretisieren, wurden bereits im vorhergehenden Abschnitt im Rahmen umfassenderer Ansätze untersucht. Dabei stellte sich heraus, daß eine graphische Darstellung der Struktur aufgrund ihrer Transparenz und Verständlichkeit eindeutig von Vorteil ist. Diese Vorzüge, wie z.B. bei Petri-Netzen, gehen indessen ab einem gewissen Umfang des Problembereichs verloren. In den meisten Fällen kombinieren diese Beschreibungssprachen jedoch in ihrer Darstellung Fertigungslenkungsstrukturen mit -abläufen und erlauben keine entkoppelte Spezifikation der beiden Bereiche, wodurch ihre Flexibilität klar eingeschränkt wird. Das bereits in Abschnitt 2.1.1 Fertigungslenkung eingeführte und im Rahmen der Klassifikation verwendete Modell der Fertigung (MFERT) kann auch zur detaillierteren Spezifikation der Fertigungslenkungsstrukturen genutzt werden. MFERT ermöglicht die Darstellung aller relevanten Informationen über die Struktur aber auch der Daten des Fertigungsprozesses bzw. der Elemente der Fertigung.153 Der Prozeß wird ähnlich wie bei Petri-Netzen durch ein Vor153. Vgl. [Fel96], S. 9 Stand der Technik 93 gangsnetzwerk modelliert. Allerdings bietet MFERT darüber hinaus das Konstrukt des Strukturprototypen154, der das Grundmuster der Fertigungslenkungsstruktur unter Vernachlässigung möglicher mehrfacher Wiederholungen abbildet. Der Vorteil dieses Konstrukts liegt darin begründet, daß durch die Reduktion auf das jeweilige Grundmuster auch bei einer umfangreichen Struktur eine übersichtliche und anschauliche Darstellung möglich ist. Weiterhin erlaubt MFERT eine problembereichsspezifische und somit anwendernahe Abbildung der Fertigungslenkungsstruktur, was nicht zuletzt darauf beruht, daß es speziell für diesen Problembereich entwickelt wurde. Demzufolge stellen die Strukturprototypen von MFERT (in Kombination) eine ideale Spezifikationssprache zur Beschreibung von Fertigungslenkungsstrukturen dar. 3.2.2.2 Spezifikationssprachen für Fertigungslenkungsabläufe Fertigungsabläufe (Materialflüsse) werden von vielen Spezifikationssprachen beschrieben. Allerdings bilden diese nur teilweise auch die Abläufe der Fertigungslenkung ab und wenn, dann unterscheiden sie nicht, wie oben bereits erwähnt, zwischen Fertigungslenkungsstrukturen und -abläufen, sondern stellen eine Kombination der beiden Bereiche dar. Um jedoch die Sprache flexibel zu gestalten, ist eine derartige Verknüpfung nicht vorteilhaft. Die im folgenden untersuchten Beschreibungen von Fertigungsabläufen schließen alle eine Abbildung der Abläufe der Fertigungslenkung mit ein. Die Netzplantechnik155, die sowohl zur Darstellung des Ablaufs von Projekten wie auch zur Darstellung von Arbeitsabläufen in Arbeitsplänen eingesetzt wird, verwendet deterministische Netzpläne. Diese Netzpläne sind Vorgangsnetze, die Abhängigkeiten zwischen verschiedenen Vorgängen abbilden. Dabei können nicht nur Vorgänger- und Nachfolgerbeziehungen, sondern auch zeitliche Abstände oder Überlappungen dargestellt werden. In einer speziellen Ausprägung der Netzpläne, den Entscheidungsnetzplänen, ist es außerdem möglich, alternative und parallele Abläufe zu beschreiben. Der Nachteil dieser Darstellungsart liegt jedoch einerseits darin, daß mit Netzplänen keine problembereichsspezifische Ausprägung möglich ist, und sie andererseits keine Konstrukte zur Abbildung von Zuständen bereitstellen. Insgesamt ist die Netzplantechnik vorrangig für die Terminierung von Vorgängen zu gebrauchen, Material- und Fertigungsmitteleinsatz sind nicht darstellbar. Imperative Programmiersprachen, wie z.B. Pascal oder C, bilden Abläufe (Ablaufbeziehungen) mittels spezieller Ablaufstrukturen, wie z.B. Sequenz, Alternativen, Wiederholung, 154. 155. Vgl. Abschnitt 2.2.2.1 Klassifikationsmerkmal Fertigungslenkungsstruktur Vgl. [DaWa97], S. 243 und [Har95], S. 25 ff. 94 Kapitel 3 Rekursion, usw. ab. Parallelität kann mit ihnen nicht dargestellt werden.156 Die Ablaufstrukturen umrahmen in diesen Sprachen die Funktionen157, deren Vorgehensweise sie auch bestimmen. Allerdings mangelt es der Darstellung der Abläufe in diesen Programmiersprachen an Übersichtlichkeit und Transparenz vor allem dann, wenn das Programm einen gewissen Umfang übersteigt. Hartmann158 verwendet für seine Spezifikation von Methoden zur Definition hierarchischer Abläufe Konstrukte der ebenfalls imperativen Programmiersprache Modula-2. Auch bei ihm ist die Darstellung der Ablaufreihenfolgen wenig anschaulich und nur schwer verständlich. Rittgens Prozeßalgebra159 ermöglicht es, vom Benutzer mit einem Modellierungswerkzeug beschriebene und dann in einen prozeßalgebraischen Term übersetzte Abläufe eines geplanten Systems zu simulieren und zu optimieren. Allerdings ist die Menge der möglichen Modellierungswerkzeuge beschränkt und diese, wie z.B. Petri-Boxen, sind für den Anwender aus der Fertigung nicht direkt verständlich und anwendbar. Um den hier formulierten Anforderungen zu genügen, ist es deswegen sinnvoller, ein Beschreibungsmittel zu wählen, das aufgrund seiner Nähe zum betrachteten Problembereich benutzerfreundlicher ist und mit weniger Aufwand verwendet werden kann. Die bereits im vorherigen Abschnitt dargestellte Ablaufspezifikation mittels Struktogrammen160 zeigt bezüglich ihrer Anschaulichkeit und einfachen Handhabung klare Vorteile gegenüber den hier untersuchten Ansätzen. Die Strukturblöcke des Struktogramms sind geeignet, die Ablaufreihenfolge der Fertigungslenkungsfunktionen gut strukturiert und verständlich darzustellen.161 Außerdem ermöglichen sie eine Unterscheidung nach verschiedenen Schleifenarten. Die weiteren Kategorien, Ablaufpriorisierung und Ablaufrichtung, können jedoch mit Hilfe eines Struktogramms nicht zweckmäßig spezifiziert werden, da sie sich in erster Linie nicht auf einzelne Funktionen sondern auf Strukturprototypen oder auch umfangreichere Teilgraphen beziehen. Für sie erscheint eine sprachliche Spezifikation mit mnemonischen Konstrukten sinnvoller. 156. Vgl. [FeSi98], S. 311 ff. Sie umrahmen aber auch einfache Zuweisungen, Bedingungen, usw. 158. Vgl. [Har95] 159. Vgl. [Rit98], S. 226 ff. 160. Vgl. [HeBu87], S. 93 ff. 161. Auch in [DaWi93a], S. 177 ff. werden Struktogramme zur Darstellung der lokalen Funktionen bzw. -typen verwendet. 157. Stand der Technik 95 3.2.2.3 Spezifikationssprachen für Fertigungslenkungsfunktionen Fertigungslenkungsfunktionen werden in bestehenden Ansätzen meistens mit Hilfe von höheren Programmiersprachen beschrieben, um so die direkte Nutzung in einem ausführbaren Programm zu ermöglichen. Dazu werden in erster Linie imperative und deklarative Programmiersprachen genutzt. In imperativen Programmiersprachen werden Funktionen als Algorithmen dargestellt, d.h. Funktionen werden in Teilfunktionen zerlegt und diese werden mit den zwischen ihnen bestehenden Ablaufbeziehungen abgebildet. Insoweit spezifizieren diese Algorithmen sowohl die Funktionen als auch die Abläufe im jeweiligen Problembereich. Die Teilfunktionen dieser Funktionen dagegen entsprechen dem, was in dieser Arbeit unter Funktion verstanden wird. Prozedurdeklarationsschemata beschreiben die Funktionen. Sie bestehen aus einem Funktionskopf, der den Bezeichner und eine Liste formaler Attribute enthält, sowie einem Funktionsrumpf mit Deklarationen und Anweisungen.162 Deklarative Programmiersprachen sind für die Beschreibung von Relationen konzipiert. Dieses schließt den Spezialfall der Funktion, die eine rechtseindeutige Relation ist, mit ein.163 Die Nachteile dieser Spezifikationen sind neben dem zu hohen Detaillierungsgrad, der die Beschreibungen verkompliziert und teilweise auch unübersichtlich macht, die fehlende Nähe zum Problembereich und den Anwendern, da die Darstellung in höheren Programmiersprachen zum Zwecke der Allgemeingültigkeit neutral und problembereichsunabhängig ist. Diese Sprachen sind demnach ideal zur Implementierung von Funktionen in ausführbaren Programmen, nicht so sehr jedoch zur ihrer anschaulichen und verständlichen Spezifikation. Im Aachener PPS-Modell werden PPS-Funktionen durch Merkmale beschrieben, die sich aus folgenden Elementen zusammensetzen: • Funktionsmerkmal • verbale Beschreibung des Merkmals und seiner Ausprägungen • Ausprägungen Diese Art der Darstellung ermöglicht zwar eine umfassende Beschreibung der PPS-Funktionen, aber die Einbindung dieser Funktionen in den Ablauf der Fertigungslenkung und ihre Position in der Fertigung wird auf diese Weise nicht spezifiziert. Obendrein setzen sich diese PPS-Funktionen bereits, entsprechend dem hier zugrunde liegenden Verständnis von Fertigungslenkungsfunktionen, aus einer Kombination von Funktionen mit konkretisiertem Ablauf 162. 163. Vgl. [Har95], S. 17 f. Vgl. [FeSi98], S. 268 96 Kapitel 3 zusammen. Hinzu kommt, daß die verbale Spezifikation auf einer aggregierten Ebene erfolgt, so daß gewisse Funktionsunterschiede nicht erkennbar werden und somit die Fertigungslenkungsfunktionen nicht eindeutig beschrieben werden können. Nach [DaWi93a] stellen lokale Funktionen die algorithmischen Grundbausteine der Fertigungssteuerungen dar. Jedes dieser Funktionskonstrukte setzt sich aus den folgenden elementaren Funktionsprinzipien zusammen: • Eingangsgrößen bereitstellen • Berechnungen durchführen • Entscheidungen treffen • Funktionswiederholung • Ergebnisse ausgeben Die Funktionsprinzipien „Berechnung durchführen“ und „Entscheidungen treffen“ können dabei in beliebiger Reihenfolge zu einem Ausführungsblock zusammengesetzt werden. Zwar sind diese Prinzipien einerseits sehr gut verständlich und nutzbar, andererseits jedoch zu elementar und allgemein, um die geforderte Übersichtlichkeit und leichte Anwendbarkeit im Problembereich der Fertigungslenkung zu gewährleisten. Außerdem beinhaltet das Prinzip Funktionswiederholung eine Ablaufspezifikation, die entsprechend den Anforderungen im Rahmen der Funktionsbeschreibung nicht vorgenommen werden soll. Hartmann164 greift zur Spezifikation von Fertigungssteuerungsfunktionen auf die bereits beschriebenen Konstrukte problembereichsunabhängiger Programmiersprachen zurück. Als Beschreibungsmittel nutzt er einen Bezeichner, eine Input- und Outputspezifikation und eine Spezifikation der Fertigungssteuerungsfunktion in ihrer Gesamtheit, die z.B. festlegt, welchem Knoten die Funktion zugeordnet ist oder für welche Zeitpunkte sie gilt. Darüber hinaus kann die Superfunktion, in der diese Funktion verwendet wird, ebenfalls mitangeführt werden. In dieser Darstellung fehlen jedoch die Funktionsdetails. Außerdem schließt sie teilweise auch eine Beschreibung der Abläufe mit ein (Superfunktion) und es fehlt der Notation an Transparenz und Verständlichkeit. Einen ebenfalls sehr elementaren Ansatz zur Beschreibung der Fertigungslenkungsfunktionen verfolgt Schneider165 mit ihren elementaren Aktionen, aus denen sich unter Anwendung einer Beschreibung für die Aktionensteuerung beliebige Fertigungssteuerungsverfahren erstellen 164. 165. Vgl. [Har95], S. 40 ff. Vgl. [Schn96], S. 164 ff. Stand der Technik 97 lassen. Die elementaren Aktionen repräsentieren die einfachsten vorstellbaren Teilaufgaben von Fertigungssteuerungsaufgaben und basieren auf einem festen Satz von Operationen. Die Operatoren werden syntaktisch mittels der Angabe des Namens der Operation, der Menge der Inputdaten und der Menge der Outputdaten beschrieben. Die Spezifikation der Semantik erfolgt entweder prozedural in einer geeigneten ausführbaren Sprache oder deklarativ in Form von Axiomen der mathematischen Logik. Aufgrund ihrer Neutralität und Allgemeingültigkeit wurde von Schneider die deklarative Darstellung vorgezogen, was jedoch den hier festgelegten Anforderungen klar widerspricht. Wie auch schon bei den vorher untersuchten Spezifikationssprachen fehlt es auch dieser sehr elementaren Darstellung an Transparenz, Verständlichkeit und vor allem an Anwendernähe. Insgesamt läßt sich feststellen, daß die untersuchten Spezifikationssprachen für Fertigungslenkungsfunktionen keine anforderungsgerechten Beschreibungsformen sowie teilweise auch keinen genügenden Sprachumfang zur Verfügung stellen. Die meisten dieser Ansätze sind zu allgemein, d.h. nicht konkret auf die Fertigungslenkung bezogen, und gleichzeitig zu elementar. Im Gegensatz zu den bestehenden Spezifikationssprachen für Fertigungsstrukturen und -abläufe, die sich in der Mehrzahl der Fälle als zu abstrakt und nicht problemorientiert herausstellten, gilt für die Fertigungslenkungsfunktionen, daß die Darstellungen fast immer zu detailliert und zu nahe an der Implementierung sind. Somit offenbart sich ein klarer Schnitt zwischen den existierenden Beschreibungssprachen der drei Kategorien. Die Aufgabe dieser Arbeit ist es nun, mit einer einheitlichen und umfassenden Spezifikationssprache eine Verbindung dieser Teilaspekte der Fertigungslenkung herzustellen. 98 Kapitel 3 Zu leistende Arbeiten zur Entwicklung einer Spezifikationssprache für die Fertigungslenkung 4 97 Zu leistende Arbeiten zur Entwicklung einer Spezifikationssprache für die Fertigungslenkung Ziel dieser Arbeit ist die Entwicklung einer umfassenden, einheitlichen und problembereichsorientierten Spezifikationssprache als Metasystem für die Fertigungslenkung. Daneben sollen die Abläufe und Funktionen der Fertigungslenkung in einer anwendungsunabhängigen höheren Programmiersprache implementiert werden, um somit eine direkte Umsetzung der Spezifikationssprache in ein ausführbares Programm zu ermöglichen. Als Basis dieser Beschreibungssprache wurde bereits in Kapitel 2 eine Klassifikation der Fertigungslenkung hergeleitet, welche die allgemeinen zugrunde liegenden Konzepte dieses Problembereichs umfassend systematisiert. Diese Klassifikation baut auf dem Modellierungsansatz MFERT1 auf und nimmt eine Strukturierung in die Merkmale Fertigungslenkungsstruktur, -abläufe und -funktionen vor. Als Klassifikationsschema wurde das von Schneider2 verwendete komplexe Konstrukt eines Repräsentanten (Strukturprototyp) gewählt, da es einerseits eine anschauliche Darstellung der Problemstruktur bietet und andererseits von Wiederholungen abstrahiert. Die Untersuchung bestehender Systematiken im Abschnitt 3.1 Klassifikationen für die Fertigungslenkung führte zu der Feststellung, daß derzeit zwar eine Vielzahl von diesbezüglichen Ansätzen existiert, diese allerdings stets aufgrund ihrer Ausrichtung auf bestimmte Lenkungs- bzw. Vorgehensweisen oder wegen ihrer Spezialisierung auf gewisse Fragestellungen nur Teilaspekte der Fertigungslenkung abbilden. Die Analyse des Standes der Technik bezüglich der im Kapitel 2 formulierten Anforderungen für eine Spezifikationssprache für die Fertigungslenkung verdeutlichte, daß es momentan keinen Ansatz gibt, der eine einheitliche, umfassende und problembereichsorientierte Lösung dieses Problems darstellt und damit den aufgestellten Forderungen gänzlich genügt. Aus den einzelnen Ergebnissen dieser Untersuchung werden im folgenden nun die verbleibenden Aufgaben zur Erreichung der in dieser Arbeit angestrebten Ziele abgeleitet. Ebenso wie die existierenden Ansätze zur Klassifikation beschreiben bestehende Spezifikationssprachen für die Fertigungslenkung entweder nur Teilaspekte des Problembereichs, wie z.B. Ablauf- oder Reihenfolgeplanungsprobleme, oder basieren auf einer bestimmten Sichtweise bzw. einer starren Vorgehensstrategie, wie z.B. dem Sukzessivplanungskonzept. Es fehlt jedoch eine Darstellungsform, welche die Fertigungslenkung vollständig und ohne eine spezielle Ausrichtung abbildet, so daß die Flexibilität der Sprache nicht eingeschränkt wird. Dane1. 2. Vgl. [DaWi93a], [DaGe95], [Schn96] und [Hol98] Vgl. [Schn96], S. 194 f. 98 Kapitel 4 ben lassen sich die existierenden Beschreibungssprachen unterscheiden in einerseits sehr abstrakte und problemübergreifende Ansätze, z.B. aus dem Bereich der Unternehmensmodellierung, und andererseits ausgesprochen detaillierte respektive elementare Ansätze, z.B. aus dem Forschungsfeld des Operations Research, die allerdings häufig auf realitätsfremden Annahmen basieren. Der ersten Gruppe fehlt es aufgrund ihres Aggregationsgrades an der geforderten Problemorientierung und Anwendungsnähe. Außerdem bieten diese Ansätze meistens keine Möglichkeit zur direkten Umsetzung der Spezifikation in ein ausführbares Programm. Im Gegensatz dazu ermöglicht die zweite Gruppe zwar eine einfache Implementierung, da diese Ansätze größtenteils direkt auf einer Programmiersprache (-notation) aufbauen, gleichzeitig erfüllen sie damit aber nicht die Anforderungen nach leichter Verständlichkeit, guter Anschaulichkeit und einfacher Benutzbarkeit. Hier gilt es einen Mittelweg zu finden und eine Beschreibungssprache zu entwickeln, die einerseits nicht zu abstrakt (neutral) und zu weit vom Problembereich entfernt sowie andererseits unkompliziert und anwenderfreundlich ist. Dieses Ziel ist durch teilweise Modifikation bzw. Adaption und Kombination existierender Lösungsansätze an die spezielle Aufgabenstellung zu erreichen. Die Untersuchung der Syntax existierender Spezifikationssprachen aus verwandten Bereichen, insbesondere der Softwaretechnik, verdeutlichte, daß eine Kombination aus graphischer und sprachlicher Darstellung klare Vorteile gegenüber Beschreibungssprachen aus einer der beiden Domänen besitzt. Als eine vielversprechende Darstellungsform für die der Fertigungslenkung zugrunde liegende Vorgangsstruktur haben sich Petri-Netze, erweitert durch einige Ergänzungen, herausgestellt.3 Für die Spezifikation von Abläufen und Funktionen erwies sich eine Verknüpfung von Struktogrammen und Pseudocode, wie sie z.B. in der Strukturierten Analyse4 und auch bei Kurbel5 verwendet wird, als günstig. Infolgedessen verbleibt in dieser Arbeit die Aufgabe, eine geeignete Kombination der als vorteilhaft bewerteten Ansätze zu entwickeln, von der alle gestellten Anforderungen erfüllt werden. Da die Spezifikationssprache direkt in eine höhere Programmiersprache umgesetzt werden soll, bedarf es außerdem zur Vereinfachung dieses Vorgehens einer gewissen Formalisierung der Syntax. Darüber hinaus muß der Spezifikationssprache neben dieser neutralen Syntax mittels einer problembereichsorientierten Semantik die nötige Anwendungsnähe bereitgestellt werden. Da die Spezifikationssprache auf der Klassifikation der Fertigungslenkung basiert, liegt auch ihr der Modellierungsansatz MFERT6 zugrunde. Er ermöglicht mit Ablaufstrukturen und 3. Vgl. [Ghe91], [SMJ93] Vgl. [DeM79], [Ghe91], [FeSi98] 5. Vgl. [Kur83] 4. Zu leistende Arbeiten zur Entwicklung einer Spezifikationssprache für die Fertigungslenkung 99 Modelldaten, wie z.B. Attributen und Restriktionen, eine vollständige und transparente Beschreibung des Fertigungsgraphen. Zur Verringerung der Komplexität dieser Darstellung soll wiederum das Konstrukt des Strukturprototypen7 genutzt werden. Dieses bildet das Grundmuster der Fertigungslenkungsstruktur unter Vernachlässigung möglicher mehrfacher Wiederholungen ab. Als Basis für die Beschreibung der Fertigungslenkungsabläufe können die Ansätze in [Har95] und [DaWa97] dienen. Allerdings muß die Anschaulichkeit, Verständlichkeit und Anwendernähe dieser Darstellungen erhöht und das von ihnen abbildbare Spektrum erweitert werden, um der Aufgabenstellung zu genügen. Da derzeit keine anforderungsgerechten Beschreibungsformen zur Spezifikation der Funktionen der Fertigungslenkung zur Verfügung stehen, gilt es, aufbauend auf der entwickelten Klassifikation bzw. den Klassifikationsmerkmalen der Fertigungslenkungsfunktionen eigene Konstrukte zur einheitlichen, vollständigen und vor allem anwendungsorientierten Darstellung zu entwickeln. Die Verknüpfung der drei Teilbereiche Struktur, Abläufe und Funktionen erfolgt auf Basis der Syntax, der wiederum das Modell der Fertigung zugrunde liegt. Im Anschluß an die Entwicklung der Syntax und Semantik der Spezifikationssprache müssen entsprechend den angestrebten Zielen Implementierungen der Fertigungslenkungsfunktionen und -abläufe in einer problembereichsunabhängigen, höheren Programmiersprache gegeben werden. Als Darstellungsart empfiehlt es sich dabei, auf einer Standard-Programmiersprache, wie z.B. C, C++ oder Pascal, aufzubauen und gebräuchliche Konstrukte dieser Sprache zu benutzen. In dieser Arbeit soll eine der objektorientierten Programmiersprache C++ ähnliche Notation verwendet werden, da diese Sprache bereits zur Erstellung des Rahmenwerks der Fertigungslenkung respektive für das Daten- und das Funktionenmetamodell von Fertigungslenkungssystemen verwendet wurde.8 Somit bietet sie ideale Voraussetzungen zur Umsetzung der beschriebenen Fertigungslenkungsproblematik in ein ablauffähiges Programm. Zur Verdeutlichung der Nutzbarkeit und Vorteilhaftigkeit der Klassifikation sowie der Spezifikationssprache sind weiterhin Anwendungsbeispiele für die gebräuchlichsten Fertigungslenkungsverfahren anzuführen. Hierbei gilt es, die Fertigungslenkungsverfahren zu klassifizieren, in der Spezifikationssprache zu beschreiben und das Ergebnis anhand der definierten Anforderungen zu prüfen. 6. Vgl. Abschnitt Vgl. [Fel96] 8. Vgl. [Hol99] 7. 2.1.1 Fertigungslenkung 100 Kapitel 4 Entwicklung einer Spezifikationssprache für die Fertigungslenkung 5 101 Entwicklung einer Spezifikationssprache für die Fertigungslenkung Die Notwendigkeit einer Spezifikationssprache für die Fertigungslenkung ist vor allem darin zu sehen, daß aufgrund einer fehlenden Metasprache in diesem Problembereich immer wieder Unternehmen ihre eigene Fertigungslenkung bzw. Verfahren für diese neu entwickeln und somit „das Rad erneut erfinden“. Wie in Kapitel 3 herausgestellt wurde, gibt es derzeit allerdings noch keine Spezifikationssprache, die entsprechend den in dieser Arbeit gestellten Anforderungen eine ideale Kombination aus Einheitlichkeit, Anschaulichkeit, Anwendungsorientierung, damit ist insbesondere gute Verständlichkeit und unkomplizierte Nutzbarkeit für die Anwender gemeint, sowie Implementierungsnähe, d.h. leichte und effiziente Umsetzbarkeit in ein ausführbares Programm, besitzt. Die hier zu definierende Spezifikationssprache stellt durch ihre allgemeinen, auf einem einheitlichen Modellierungsansatz basierenden Strukturen und aufgrund ihrer unkomplizierten Anwendbarkeit und Erweiterbarkeit eine vorteilhafte Lösung für die beschriebenen Probleme dar. Sie paßt sich dabei der jeweiligen Situation flexibel an und erhöht auf diese Weise die Effizienz der Entwicklung eines Fertigungslenkungssystems. Abbildung 5-1 zeigt detailliert, wie mit der Klassifikation und der Spezifikationssprache eine bestimmte Fertigungslenkungsproblematik systematisiert, beschrieben und in ein Fertigungslenkungssystem umgesetzt werden kann. Fertigungslenkungsproblematik Modelleditor Klassifikation Charakteristika Modell der Fertigung Algorithmen Spezifikationssprache Abläufe Funktionen Fertigungslenkungssystem Abbildung 5-1: Anwendung der Klassifikation und Spezifikationssprache 102 Kapitel 5 Als Grundlage der Spezifikationssprache wurde in Kapitel 2 eine Klassifikation entwickelt, welche die verschiedenen Merkmalsausprägungen von Fertigungslenkungen charakterisiert. Auf ihrer Basis kann eine Auswahl geeigneter Fertigungslenkungsverfahren bzw. Ablaufstrukturen und Funktionen für die jeweilige Problematik vorgenommen werden.1 In einem zweiten Schritt wird nun die Syntax und Semantik der Spezifikationssprache, mit der die Fertigungslenkung beschrieben werden soll, dargestellt. Im Anschluß daran folgt die Entwicklung einer Methoden-Bibliothek, die sich aus Implementierungen der vorher beschriebenen Fertigungslenkungsfunktionen und -abläufe in einer an die höhere Programmiersprache C++2 angelehnten Notation zusammensetzt. Schließlich werden Anwendungsbeispiele der Klassifikation und Spezifikationssprache anhand von allgemein genutzten Fertigungslenkungsverfahren gegeben, welche die Flexibilität und Praktikabilität dieser Beschreibungsmittel hervorheben. 5.1 Syntax der Spezifikationssprache Die zu entwickelnde Spezifikationssprache ist eine reine Beschreibungssprache, die sich aus problembereichsspezifischen, mnemonischen Konstrukten3 zusammensetzt. Sie ist nur im Zusammenhang mit dem Modell der Fertigung, das bereits vorher im OOPUS-Modelleditor4 erstellt wurde, einsetzbar. In diesem Modell sind alle Attribute der Fertigungslenkungsobjekte hinterlegt, so daß es die Daten- und Strukturbasis der Fertigungslenkung bildet. Die Syntax der Spezifikationssprache gliedert sich dementsprechend auf in die Bereiche Modell und Sprach- 1. Vgl. für diesen Auswahlprozeß [Fel96], S. 112 ff. C++ ist eine Obermenge der Programmiersprache C, die um objektorientierte Merkmale, wie z.B. das Klassenkonzept mit Vererbungsmöglichkeiten, die Mechanismen zur Überladung, virtuelle Funktionen, das dynamische Binden, u.a., erweitert wurde. Von besonderem Vorteil sind die Knappheit, Vielseitigkeit und Maschinennähe dieser Sprache (vgl. [Schr92] S. 76). Außerdem zeichnet sich die Programmiersprache C++ durch eine weite Verbreitung und vielfältige Einsatzgebiete aus, weswegen sie in dieser Arbeit exemplarisch ausgewählt wurde. 3. Vgl. Abschnitt 2.2.2 Klassifikationsmerkmale der Fertigungslenkung 4. Vgl. [Hol97] und [DFH95] 2. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 103 konstrukte, wobei ersteres durch eine eindeutige Darstellung5 und letztere durch eine eindeutige Grammatik näher bestimmt werden. Modell Semantik Syntax Sprachkonstrukte Abbildung 5-2: Architektur der Sprache Die Konstrukte der Spezifikationssprache, Fertigungslenkungsstrukturen, -abläufe und -funktionen, repräsentieren bestimmte Teilgraphen6 des Gesamtmodells der jeweiligen Fertigung sowie Programmmodule für den Ablauf und die Funktionen in diesem Teilmodell. Obwohl sich die Sprache nur aus diesen drei Konstrukten zusammensetzt und eine eindeutige Konstruktionsvorschrift gegeben ist, stellt sie im Sinne der Informatik keine formale Sprache7 dar. Einerseits nämlich bietet sie zur leichteren Nutzbarkeit am Anwendungsbereich orientierte Konstrukte auf höherem semantischen Niveau als eine herkömmliche Programmiersprache, wodurch sie nicht äquivalent zu einer Turingmaschine (Turingvollständigkeit)8 ist. Andererseits steht die Menge der Ausprägungen der Sprachkonstrukte aufgrund der geforderten Flexibilität bzw. Anpaßbarkeit an die sich ständig wandelnde Fertigungslenkung nicht vollständig fest. Trotzdem erlaubt die Spezifikationssprache durch eine deutlich abgegrenzte Menge der wesentlichen Ausprägungen ihrer Konstrukte eine präzise und eindeutige Spezifikation der Fertigungslenkung. Ihre klare und übersichtliche Struktur und die Kombination aus graphischen und sprachlichen Elementen machen sie außerdem leicht lesbar, verständlich und anwendbar. Hinzu kommt, daß eine mögliche automatische Übersetzung der Spezifikationssprache in die objektorientierte Programmiersprache C++ oder eine andere problembereichsunabhängige höhere Programmiersprache durch diese Vorgaben erleichtert wird, da eine derartige Transformation ein eindeutiges Format und eine präzise Syntax der Sprache erfordert. In der Syntax muß klar definiert sein, wie die Konstrukte der Sprache zusammengesetzt werden können. 5. Mit Darstellung sind hier sowohl der Modellgraph als auch die Klassendefinitionen der Modellelemente gemeint. 6. Siehe Definition 13, S. 22 7. „Unter einer formalen Sprache versteht man in der Informatik eine Sprache L, wobei L eine Teilmenge der Menge aller Wörter, die sich durch die Hintereinanderreihung endlich vieler, nicht notwendig verschiedener Zeichen aus einem vorgegebenen Alphabet A ergeben, ist, zusammen mit einer Definitionsvorschrift, die im allgemeinen konstruktiv ist.“ [DuIn89] 8. Vgl. [Hol98], S. 154 - Die Turingvollständigkeit ist Bedingung für eine formale Sprache. 104 Kapitel 5 Das erste Konstrukt der Spezifikationssprache repräsentiert die Fertigungslenkungsstruktur. Dieses erfolgt über die Angabe des Teilgraphen, auf dem die Fertigungslenkungsabläufe und -funktionen durchgeführt werden, und zwar anhand eines sprachlichen Repräsentanten, der gleichzeitig einen Verweis auf den speziellen Ausschnitt des jeweiligen Modells der Fertigung beinhaltet. Beispielsweise kann auf diese Weise die Unterteilung des Gesamtmodells in Dispositionsstufen, nach denen z.B. bei der Materialbedarfsplanung9 vorgegangen wird, abgebildet werden. Die folgenden Abbildungen zur Verdeutlichung der einzelnen Konstrukte beziehen sich alle auf das Verfahren der Materialbedarfsplanung. Die dargestellten Teilgraphen entsprechen Strukturprototypen, wie sie auch in der Klassifikation verwendet werden. Allerdings umfaßt die Spezifikationssprache durch die Verknüpfung mit dem Modell der Fertigung auch Daten bzw. Attribute der Modellelemente bzw. -klassen. Zur Verdeutlichung und Präzisierung der sprachlichen Beschreibung wird die graphische Darstellung auf Basis des Modells der Fertigung oder eines Teilmodells von diesem genutzt. Über den sprachlichen Repräsentanten als Verweis läßt sich der jeweilige Ausschnitt des Modells (farblich) markieren, wie es beispielhaft in Abbildung 5-3 und den folgenden Abbildungen dargestellt ist. Auf diese Weise werden Mehrdeutigkeiten, die bei einer rein sprachlichen Beschreibung entstehen könnten, vermieden. Im Rahmen der Klassifikation kann der hier gewählte Graph allerdings noch weiter in Strukturprototypen reduziert werden, was vor allem bei einem sehr komplexen Graphen zur Wahrung der Übersichtlichkeit und Verständlichkeit geboten wäre. In diesem Beispiel wurde jedoch zur Verdeutlichung der Verknüpfung von Sprache und Modell ein nicht-reduziertes Modell (Graph) bzw. Modellausschnitt (Teilgraph) gewählt. Dispositionsstufe r3 Abbildung 5-3: Konstrukt Teilgraph Abläufe werden durch das zweite Konstrukt dargestellt. Sie repräsentieren die unterschiedlichen Ablaufrichtungen, -reihenfolgen und -priorisierungen10, werden in einer oder mehreren 9. 10. Vgl. Abschnitt 5.4.5.1 Materialbedarfsplanung (MRP). Vgl. Abschnitt 2.2.2.2 Klassifikationsmerkmal Fertigungslenkungsabläufe Entwicklung einer Spezifikationssprache für die Fertigungslenkung 105 hierarchisch angeordneten Ablaufregeln spezifiziert und beziehen sich auf den Gesamtgraphen oder auf Teilgraphen. Somit stellen diese Konstrukte auch die Verknüpfung der Prototypen (Teilgraphen) untereinander auf einer gemeinsamen Datenbasis dar. Die Regeln weisen die Priorisierungen zeit-, ereignis-, knoten-, produktionsstruktur- und auftragsorientiert sowie die Reihenfolgen seriell, parallel und nebenläufig auf. Dabei ist eine weitere Unterteilung der Knotenorientierung in die Arten Material-, Fertigungsmittel- und Vorgangsorientierung möglich. Bei diesen Vorgehensweisen kann die Ablaufregel zusätzlich noch eine Aussage über das Reihenfolgekriterium enthalten, so daß, wie z.B. bei der materialorientierten Vorgehensweise, das wichtigste Material zuerst bearbeitet wird. Darüber hinaus geben die Regeln an, ob der Ablauf vorwärts- oder rückwärtsgerichtet erfolgt. Letztendlich besteht noch die Möglichkeit in einem Zusatz eine Bedingung für den Ablauf festzulegen. In dem in Abbildung 5-4 wiedergegebenen Beispiel wird im markierten Teilgraphen zeitorientiert, vorwärts und seriell vorgegangen, d.h. der Teilgraph wird über mehrere Zeitabschnitte respektive Zeitpunkte betrachtet und in diesen wird er seriell (z.B. alphabetisch) abgearbeitet. zeitorientiert, vorwärts seriell (z.B. alphabetisch) Abbildung 5-4: Konstrukt Ablauf Das dritte Konstrukt der Spezifikationssprache stellt jene Funktionen dar, die für einen spezifischen Teilgraphen zu einem bestimmten Zeitpunkt, abhängig vom gewählten Zeitmodell11 und den Attributen des Teilgraphen, oder ausgelöst durch ein bestimmtes Ereignis, durchgeführt werden. Die Menge der Funktionen an den einzelnen Fertigungsknoten untergliedert sich in Eintritts-/ Austritts- und Zustandsfunktionen, die jedoch aufgrund der gemeinsamen Struktur- und Datenbasis eng miteinander verknüpft sind. Diese Funktionen sind Makrofunktionen12 und setzen sich aus verschiedenen Teilfunktionen zusammen. Die Eintritts- und Austrittsfunktionen bestehen aus den Teilfunktionen Zusammenfassungs- und Aufteilungsfunktionen. Die Zustands11. Die Wahl des Zeitmodells hängt von der Zielsetzung des Modells und vom Zeitverhalten der zu modellierenden Objekte und Prozesse ab. Letzteres kann im Extremfall von Prototyp zu Prototyp variieren (vgl. [DaWi93a]). 12. Vgl. Abschnitt 2.2.2.3 Klassifikationsmerkmal Fertigungslenkungsfunktionen 106 Kapitel 5 funktionen wiederum beinhalten die unterschiedlichen Funktionen zur Bestands- und Bedarfsrechnung, zur Terminierung und zur Losgrößenberechnung. Mit Hilfe dieser Funktionen werden die in der Klassifikation dargestellten Entscheidungsprobleme13 gelöst. Entsprechend des jeweiligen Zeitmodells, der Lenkungsstrategie und der vorliegenden Knotenattribute, wie z.B. den Restriktionen sowie Dispositions-14 und Transformationsprinzipien15, werden diese Teilfunktionen noch weiter spezifiziert. In Abbildung 5-5 sind für den markierten Teilgraphen und speziell die beiden Materialknoten einmal beispielhaft Funktionskonstrukte mit der Darstellung möglicher Teilfunktionen in Klammern eingetragen. Eintrittsfunktion (Bruttobedarfe zusammenfassen) Zustandsfunktion (Bestandsrechnung - Nettobedarfe bestimmen) Austrittsfunktion (Nettobedarfe aufteilen) Abbildung 5-5: Konstrukt Funktionen Anhand dieser allgemeinen Funktionskonstrukte wird nun allerdings noch nicht deutlich, an welchem Knoten des jeweiligen Prototypen die einzelnen Funktionen angesiedelt sind. Um diesen Bezug herzustellen, erhalten die Konstrukte entweder den Zusatz, „fe“ oder „fv“, der verdeutlicht, zu welcher Knotenart sie gehören. Auf diese Weise sind die Funktionen des Fertigungsvorgangsknotens bereits eindeutig zugeordnet, da nach Definition jeder Strukturprototyp nur genau einen derartigen Knoten beinhaltet. Jedoch ist damit noch nicht die Verteilung der anderen Funktionen klargestellt, da es in einem Strukturprototypen mehrere Fertigungselementknoten geben kann. Außerdem ist bei diesen auch die Unterscheidung in Material- und Fertigungsmittelknoten zu beachten. Die Zuordnung zu den jeweiligen Fertigungselementknoten wird deswegen durch die Reihenfolge der Angabe der Funktionskonstrukte geklärt, die wiederum von der Ablauforientierung des Strukturprototypen abhängt. Darüber hinaus werden alle Knoten im Graphen, die keine Funktionalität besitzen, zur Hervorhebung gestrichelt dar13. Vgl. ebenda Unter Dispositionsprinzipien versteht man das Auffüllen des Bestandes eines Materialknotens nach bestimmten Auslösungsarten. Im wesentlichen unterscheidet man dabei in Bestellrhythmus- und Bestellpunkt-Verfahren. Diese Prinzipien werden auch Bestell- oder Lagerhaltungspolitiken genannt (vgl. z.B. [DaWa97], [Kur93], [Hac84], u.a.). Somit sind die Dispositionsprinzipien abhängig von dem jeweils zugrunde liegenden Zeitmodell und der vorherrschenden Lenkungsstrategie. 15. Transformationsprinzipien beschreiben die nach unterschiedlichen Prinzipien vorgehende Bearbeitung an Fertigungsmitteln, wie z.B. Einzelplatz, serielle Fertigungsvorgänge, usw. Sie sind nur möglich, da es aggregierte Fertigungsknoten gibt. Somit sind sie eine Frage der zweckmäßigen Modellierung (vgl. [DaWa97], S. 192 ff.). Darüber hinaus finden Transformationsprinzipien in erster Linie in der Serienfertigung Anwendung. 14. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 107 gestellt. Die Teilfunktionen der einzelnen Funktionskonstrukte sowie erklärende Kommentare werden den Konstrukten als zusätzliche Information in Klammern beigefügt. Trotz der mnemonischen Konstrukte der Spezifikationssprache und der weiteren Informationen in Klammern kann eine zusätzliche Kommentierung nötig und zweckmäßig sein. Aus diesem Grund ist es möglich, an jeder beliebigen Stelle des Programms, d.h. in jeder Programmzeile, jeweils eingeleitet durch ein Doppelpaar Querstriche („//“)16, Kommentare beliebiger Länge anzugeben. Falls diese Kommentare sich über mehrere Zeilen erstrecken, ist ein Doppelpaar Querstriche zu Beginn des Kommentarblocks und ein weiteres am Ende von diesem ausreichend. Zur Syntaxbeschreibung der Spezifikationssprache wird im folgenden eine der Erweiterten Backus-Naur-Form (EBNF) angelehnte17 Beschreibungsform verwendet. Die Backus-NaurForm (BNF) ist eine Beschreibungsform kontextfreier Grammatiken und damit der Syntax vieler Programmiersprachen.18 Die EBNF wurde aufgrund verschiedener Mängel der BNF entwickelt und besitzt einige zusätzliche Fähigkeiten, wie z.B. optionale Teile in eckigen Klammern. Die folgende Grammatik stellt nun die Beschreibung der Spezifikationssprache in dieser Darstellungsart dar:19 <program> <stmt_list> -> <stmt_list> -> <stmt> | <stmt_list> <stmt> -> [Teilgraphspezifikation]; [Menge_der_Ablaufspezifikationen]; [Menge_der_Funktionsspezifikationen]; // Kommentar // Die Sprachkonstrukte stellen Nicht-Terminale (-Symbole) der Sprache da, d.h. sie sind Zeichen oder Zeichenfolgen, die bezüglich der Spezifikationssprache grammatikalische Konstrukte repräsentieren, sich aber in andere Konstrukte (Elementarkonstrukte) und Terminal (-symbole) weiter zerlegen lassen. Zur Verdeutlichung werden sie in eckigen Klammern eingeschlossen dargestellt. 16. Dieses Vorgehen ist vergleichbar mit der Definition von Kommentaren bzw. Kommentarblocks in C++, die in die Zeichenpaare „/*“ und „*/“ eingeschlossen sind. 17. Eine formale Syntaxbeschreibung der Spezifikationssprache mit EBNF kann nicht erfolgen, da sie, wie bereits vorher erläutert, keine formale Sprache ist. 18. Vgl. [Seb92] und [InDu89] 19. Sonst übliche Anfangs- und Endbezeichner („begin“, „end“) werden in der Spezifikationssprache graphisch dargestellt (Strukturblöcke im Nassi-Shneiderman-Diagramm). 108 Kapitel 5 Die Ausprägungen des Konstruktes Teilgraphspezifikation sind:20 Teilgraphspezifikation Gesamtgraph = (Knges, Kges)21. Teilgraph = (Kni,Ki) mit Kn i Kn ges und K i K ges . Knoten = (Kni,Ki) mit Kn i = 1 und K i = 1 . (Zusatz: Beschreibung). Allerdings berücksichtigt die Spezifikationssprache als minimale Teilgraphen keine einzelnen Knoten, sondern Strukturprototypen22 bzw. Kombinationen von diesen. Es ist jedoch möglich, daß nur ein Knoten eines Strukturprototypen Relevanz besitzt, d.h. er allein ist aktiv und verfügt über Funktionalität. Verdeutlicht wird dieses im Graphen durch die gestrichelte Darstellung der übrigen, nicht-aktiven Knoten. Die Teilgraphspezifikation kann zum Zwecke der Anschaulichkeit und leichteren Verständlichkeit der Beschreibung durch einen Zusatz in Klammern näher erläutert werden. Die Angabe dieses Zusatzes ist indessen optional, da bereits durch den Verweis auf das Modell der Fertigung bzw. das jeweilige Teilmodell genauere Informationen über dieses vorliegen. Eine Ablaufspezifikation wird abhängig vom Zeitmodell, der Lenkungsstrategie und den Attributen der Modellelemente, insbesondere den lokalen Regeln bzw. Restriktionen der Fertigungslenkung, folgendermaßen dargestellt: Ablaufspezifikation Ablaufpriorisierung = zeitorientiert | ereignisorientiert | knotenorientiert = vorgangsorientiert | materialorientiert | fertigungsmittelorientiert | produktionsstrukturorientiert | auftragsorientiert. Ablaufrichtung = vorwärtsorientiert | rückwärtsorientiert. Ablaufreihenfolge = seriell | parallel | nebenläufig. (Zusatz: Bedingung; Beschreibung). Diese Ausprägungen entsprechen den in der Klassifikation für Fertigungslenkungsabläufe herausgestellten Merkmalen. Allerdings muß die Ablaufspezifikation nicht jedes einzelne dieser Ablaufkriterien (Priorisierung, Richtung und Reihenfolge) besitzen. Darüber hinaus kann in der Spezifikationssprache mit einem Zusatz in Klammern festgelegt werden, ob dem Ablauf eine bestimmte Bedingung (Ablauf- bzw. Abbruchbedingung) zugrunde liegt23, aber auch eine 20. Zur Erklärung der Notation siehe Definition 15, S. 24 Wobei Kn die Knotenmenge und K die Kantenmenge ist. 22. Vgl. Definition 14, S. 22 21. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 109 Beschreibung kann beigefügt werden. Die Ablaufspezifikation und zwar insbesondere die Unterscheidung zwischen verschiedenen Schleifenarten wird ferner durch die Diagrammdarstellung der Spezifikationssprache näher bestimmt, die im folgenden noch genauer beschrieben wird. Für Funktionsspezifikationen gilt: Menge_der_Funktionsspezifikationen = SET OF24 Funktionsspezifikationen Das Konstrukt Funktionsspezifikation ist insbesondere ebenfalls abhängig vom Zeitmodell, der Lenkungsstrategie und den Attributen der Modellelemente, dabei vornehmlich wiederum von den lokalen Regeln bzw. Restriktionen. Es stellt die Makrofunktionen an den einzelnen Knoten, ihre Teilfunktionen und gegebenenfalls eine zusätzliche Beschreibung dar. Demnach hat die Funktionsspezifikation die folgende Notation: Funktionsspezifikation Knotentyp = fe | fv - Makrofunktion = Eintritt | Austritt | Zustand. (Teilfunktion = Zusammenfassen | Aufteilen | Bestandsrechnung | Bedarfsrechnung | Terminierung | Losgrößenbestimmung; Zusatz: Beschreibung). In einem Prototypen besitzt jedoch nicht jeder Knoten alle hier angeführten Funktionen oder überhaupt Funktionalität. Nur Knoten oder Teile von Knoten, die aktiv25 sind, können mit Funktionalität behaftet sein. Demzufolge beinhaltet das Konstrukt Funktionsspezifikation eine bestimmte Zusammenstellung der möglichen Funktionen des jeweiligen Teilgraphen. Diese Funktionen haben die Aufgabe, die in der Klassifikation am Teilgraphen aufgeführten Entscheidungsprobleme zu lösen. Durch die Angabe der Teilfunktion/-en und möglicherweise weiterer Kommentare in Klammern werden die Funktionen näher erläutert, was die Verständlichkeit der Beschreibung deutlich steigert. Im Gegensatz zu den zusätzlichen Informationen bei der Teilgraphspezifikation ist hier die Angabe der Teilfunktion/-en zwingend erforderlich, da durch sie die Funktionen am Knoten erst näher bestimmt werden. Beispielsweise wird eine Eintrittsfunktion als Zusammenfassungsfunktion mit einer bestimmten Verknüpfungsregel als zusätzlicher Kommentar spezifiziert. Auf diese Weise enthält das Programm in der Spezifikati- 23. Vgl. Bedingungsschleifen (While und Repeat bzw. Repeat-Until) in höheren Programmiersprachen (vgl. [DuIn89]). 24. Die Schlüsselwörter „SET OF“ kennzeichnen die Datenstruktur einer reinen Mengenspezifikation. 25. Auf die Aktivität bzw. auf das, was an einem Knoten aktiv ist, wird im Abschnitt 5.2.1 Funktionalität an Modellelementen näher eingegangen. 110 Kapitel 5 onssprache nicht nur strukturelle sondern auch inhaltliche Vorgaben und ist anschaulicher sowie leichter umsetzbar. Die speziellen Funktionsbeschreibungen sind aber gleichzeitig auch den Attributen des Modells der Fertigung bzw. des jeweiligen Teilgraphen des Modells zu entnehmen, wofür jedoch eine Datenmodell- bzw. Datenbankabfrage nötig wäre. Eine genauere Beschreibung der verschiedenen Ausprägungen der Ablauf- und Funktionsspezifikationen sowie der möglichen Zusatzinformationen folgt in Abschnitt 5.2 Semantik der Spezifikationssprache. Implementierungen dieser Abläufe und Funktionen in einzelnen Programmodulen werden anschließend in Abschnitt 5.3 Implementierung der Spezifikationssprache in einer an die höhere Programmiersprache C++ angelehnten Notation dargestellt. Im folgenden wird nun noch detaillierter auf die äußere Form der Darstellung in der Spezifikationssprache eingegangen, die insbesondere zur Ablaufspezifikation beiträgt. Die Programme in der Spezifikationssprache setzen sich bezogen auf die jeweils betrachteten Teilgraphen aus hierarchisch strukturierten Befehlsszeilen zusammen. Jede nachfolgende Zeile im Programm bezieht sich demnach entweder wiederum auf denselben Graphen oder auf einen Teilgraphen von diesem. Jede Zeile besteht mindestens aus zwei Konstrukten und zwar der Teilgraph- und der Ablauf- oder der Funktionsspezifikation. Nur Teilgraphen, die eine eigene und von anderen Teilgraphen unterschiedliche Ablaufstruktur und/oder Funktionalität besitzen, müssen einzeln spezifiziert werden. Alle anderen können als redundante Teilgraphen durch einen Strukturprototypen dargestellt werden. Dabei ist zu berücksichtigen, daß die Funktionalität von den Attributen der Elemente des Teilgraphen und speziell den Restriktionen sowie den Lenkungsprinzipien (Dispositions- oder Transformationsprinzipien) abhängt. Außerdem beinhalten die Befehlszeilen keine elementaren Aktionen bzw. Elementarfunktionen26, wie sie z.B. von [Schn96] definiert wurden, sondern bestehen aus den gerade dargestellten reinen Beschreibungskonstrukten. Das Konstrukt Fertigungslenkungsfunktion ist jedoch nicht unbedingter Bestandteil jeder Programmzeile, denn in den meisten Fällen wird Funktionalität nur bezogen auf Strukturprototypen und nicht auf höheren Modellebenen bzw. umfassenderen Teilgraphen betrachtet. Diese Möglichkeit soll in der vorliegenden Arbeit indessen nicht ausgeschlossen werden. Eine bestimmte Funktionalität ist darüber hinaus aber immer mit einer speziellen Ablaufstruktur verknüpft, die allerdings bereits auf einer höheren Ebene in der Programmstruktur, d.h. in einer früheren Programmzeile, angegeben sein kann, da sie für einen Teilgraphen und nicht nur 26. Vgl. Abschnitt 2.2.2.3 Klassifikationsmerkmal Fertigungslenkungsfunktionen Entwicklung einer Spezifikationssprache für die Fertigungslenkung 111 einen bestimmten Strukturprototypen aus diesem relevant ist. Die Programme haben demnach eine vertikale Struktur, die entweder streng hierarchisch (linear) oder baumartig, falls es parallele oder nebenläufige Prozesse gibt, aufgebaut sein kann. Zur Verdeutlichung der Ablaufstruktur werden die Programme in der Spezifikationssprache mit an Nassi-Shneiderman-Diagrammen angelehnten Struktogrammen dargestellt. Jeder Programmzeile wird dabei ein Strukturblock zugeordnet. Die Abwandlung der Diagramme besteht darin, daß nur einfache Strukturblöcke und Wiederholungs-Strukturblöcke von Nassi-Shneiderman-Diagrammen verwendet werden. Wiederholungs-Strukturblöcke haben die Ausprägungen While-Schleife und Repeat-Schleife, die beide in der Spezifikationssprache Verwendung finden. Dabei werden durch die While-Schleife sowohl einfache Zählschleifen (ForNext) als auch Bedingungsschleifen (While-Do) dargestellt. Eine Besonderheit dieser Schleifen ist die, daß bei der While-Schleife zu Beginn und bei der Repeat-Schleife zum Ende der Durchführung Funktionen ausgeführt werden können. Abbildung 5-1 stellt die beiden Ausprägungen graphisch dar. Teilgraph A, Ablauf, Funktionen While-Schleife Teilgraph A1, Ablauf, Funktionen Teilgraph A1, Ablauf, Funktionen Teilgraph A1, Ablauf, Funktionen Repeat-Schleife Teilgraph A1, Ablauf, Funktionen Teilgraph A, Ablauf, Funktionen Abbildung 5-6: Darstellung While-Schleife und Repeat-Schleife Mit Wiederholungs-Strukturblöcken, wie sie in Abbildung 5-7 als Beispiel in der Ausprägung While-Schleife zu sehen sind, wird Parallelität wie auch Serialität beschrieben. Die Unterscheidung dieser beiden Vorgehensweisen wird dabei in der Ablaufspezifikation vorgenommen. Auswahl-Strukturblöcke sowie Mehrfachverzweigungen werden auf dieser aggregierten Programmierebene nicht genutzt, es ist indessen denkbar, die Syntax der Sprache mit diesen Strukturen zu erweitern, um dem Nutzer noch detailliertere Beschreibungsmöglichkeiten zu bieten. Allerdings würde die Anwendung der Sprache dadurch wieder komplizierter und die Programmierung unübersichtlicher, was im Widerspruch zu den in Kapitel 2 formulierten Anforderungen stände. Einfache Strukturblöcke sind auf der untersten Hierarchiestufe der Pro- 112 Kapitel 5 Teilgraph A, parallel Teilgraph A1, Ablauf, Funktionen Teilgraph A1, Ablauf, Funktionen Teilgraph A, seriell Teilgraph A1, Ablauf, Funktionen Teilgraph A1, Ablauf, Funktionen Abbildung 5-7: Darstellung von Parallelität und Serialität in Teilgraphen gramme zu finden, d.h. ihre Ablaufregel bezieht sich nicht auf weitere Teilgraphen, sondern nur auf die Funktionen auf einem speziellen Teilgraphen (Prototypen). Ein Beispiel für einen derartigen einfachen Strukturblock ist ein Prototyp, in dem nur am Fertigungsvorgangsknoten Funktionalität vorliegt. An diesem werden verschiedene Zustandsfunktionen für gleichzeitig stattfindende Prozesse (Vorgänge) simultan durchgeführt. Das MinimalProgramm in der Spezifikationssprache für diesen Prototyp besteht aus folgender Zeile: Teilgraph (Fertigungsvorgangsknoten), parallel, fv-Zustand (Terminierung) In diesem sehr eingeschränkten Fall wird allerdings auf die Darstellung in einem Nassi-Shneiderman-Diagramm verzichtet, da die Programmstruktur dieses Minimalprogramms auch ohne dieses Beschreibungsmittel eindeutig abgebildet werden kann. Zur Darstellung der Parallelität von Funktionen in einem Strukturprototypen bedarf es keiner Wiederholungs-Strukturblöcke, sondern nur einer Angabe in der Ablaufspezifikation. Wiederholungs-Strukturblöcke dagegen finden auf höheren Hierarchiestufen Verwendung. Ihre Ablaufstrukturen spezifizieren die Vorgehensweisen auf den ihnen untergeordneten Ebenen, den Teilgraphen (Prototypen). Eine höhere Hierarchiestufe stellt z.B. der Gesamtgraph dar, der produktionsstrukturorientiert, nach Dispositionsebenen, abgearbeitet wird. Dieses wird in der Spezifikationssprache folgendermaßen dargestellt: Gesamtgraph, produktionsstrukturorientiert Funktionen gibt es auf dieser Ebene nicht. Die untergeordneten Ebenen sind im beschriebenen Fall eines produktionsstrukturorientierten Ablaufs z.B. die Dispositionsebenen der Fertigung. Jede Programmzeile beschreibt mit den in ihr enthaltenen Konstrukten und dem Verweis auf das Modell genau einen speziellen Teilgraphen (Strukturprototypen) des Fertigungsmodells. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 113 Außerdem enthält sie entweder eine Ablaufanweisung bezüglich dieses Graphen und/oder ein bis mehrerer Funktionsanweisungen, die auf diesem Teilgraphen durchgeführt werden. Abbildung 5-8 stellt ein etwas umfassenderes Beispielprogramm in der Spezifikationssprache dar. Gesamtgraph, Ablauf Teilgraph A, Ablauf Teilgraph A1, Ablauf, Eintritts-, Zustands- und Austrittsfunktionen Teilgraph A2, Ablauf, Eintritts-, Zustands- und Austrittsfunktionen Teilgraph B, Ablauf, Eintritts-, Zustands- und Austrittsfunktionen Abbildung 5-8: Beispielprogramm In diesem Beispiel sind A und B Teilgraphen vom Gesamtgraphen und A1 und A2 wiederum Teilgraphen von A. Die weitere Unterteilung von A in A1 und A2 liegt in der Verschiedenartigkeit des Ablaufs und der Funktionalität an diesen Teilgraphen begründet. Ebenso besitzt auch B einen von A unterschiedlichen Ablauf. Die Vorgehensweise auf dem Teilgraphen A wird durch eine While-Schleife bestimmt. 5.2 Semantik der Spezifikationssprache Die Semantik27 beschäftigt sich mit der inhaltlichen Bedeutung einer Sprache bzw. eines Programms. Infolgedessen werden in diesem Abschnitt die Funktionalität der Fertigungslenkung, die Funktionen am Gesamtgraphen wie auch an den Teilgraphen, und die Ablaufstrukturen betrachtet. Letztere setzen sich zusammen aus den unterschiedlichen Abläufen auf dem Fertigungsgraphen, dem Gesamtgraphen oder den Teilgraphen, welche demnach die Funktionen zur Lösung der Fertigungslenkungsaufgabe miteinander verknüpfen. Eine genauere Darstellung des Modells der Fertigung, das die Struktur- und Datenbasis der Spezifikationssprache bildet, erfolgte bereits in Abschnitt 2.1.1 Fertigungslenkung. Da es ebenfalls möglich ist, mit der Spezifikationssprache die Lenkung von Ausschnitten des Fertigungsmodells (Teilmodellen) vorzunehmen, kann sie auch als Hilfsmittel zur Änderungsrechnung (Net Change) genutzt werden.28 27. In den meisten Praxisbeispielen wird die Semantik nicht formal definiert, sondern implizit durch die jeweilige Implementierung (vgl. [GJM91], S. 480). 114 Kapitel 5 Im folgenden werden allgemeine Darstellungen der verschiedenen Teilfunktionalitäten der Fertigungslenkung gegeben. Diese Teilfunktionalitäten spannen zusammen mit den Ablaufstrukturen und dem Modell der Fertigung einen Baukasten auf, aus dem sich jedes beliebige Fertigungslenkungssystem erstellen bzw. zusammenfügen läßt. Erklärt werden sie am Metastrukturprototypen29 der Fertigung oder Ausschnitten von diesem. Der Metastrukturprototyp beschreibt das Grundmuster des Modells der Fertigung und ist eine allgemeine Form der Strukturprototypen, die bereits in einigen früheren Arbeiten zum Modell der Fertigung Verwendung fanden.30 Mit dem Metastrukturprototyp bzw. Verknüpfungen von Metastrukturprototypen läßt sich jede beliebige Fertigung abbilden. Abbildung 5-9 stellt einen Metastrukturprototypen graphisch dar. Der Pfeil soll dabei die möglichen Ablauf- bzw. Abarbeitungsrichtungen verdeutlichen. 1 Fertigungsvorgangsknoten n Fertigungselementknoten Abbildung 5-9: Metastrukturprototyp Die Kanten des Metastrukturprototypen sind gerichtet, allerdings ist die Richtung im Allgemeinen nicht fest vorgegeben, da das Modell sowohl vorwärts als auch rückwärts durchlaufen werden kann. Die Ablaufrichtung wird im Rahmen der Spezifikationssprache in der Ablaufspezifikation, die sich auf das Gesamtmodell bezieht, festgelegt. Es ist jedoch auch möglich, Teilmodelle mit einer anderen Ablaufrichtung zu belegen, was z.B. bei der Lenkung nach dem OPT-Konzept31 genutzt wird. Die diesbezügliche Entscheidung ist abhängig von der Planungsstrategie, die mit der Fertigungslenkung verfolgt wird. Eine Vorwärtsorientierung führt zur Ermittlung der frühesten Fertigstellungstermine, während eine Rückwärtsorientierung die spätesten Starttermine der Fertigung als Ergebnis hat. Natürlich ist auch eine Kombination beider Vorgehensweisen möglich, um Terminpuffer zu ermitteln. 28. Vgl. [HoDa97] Vgl. Abschnitt 2.2.2.1 Klassifikationsmerkmal Fertigungslenkungsstruktur 30. Vgl. [Fel96], S. 84 ff. und [Schn96], S. 196 ff. 31. Vgl. Abschnitt 5.4.5.3 Engpaßorientiertes Fertigungssteuerungsverfahren (OPT) 29. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 115 5.2.1 Funktionalität an Modellelementen Die Beschreibung der Funktionalität beginnt mit den grundlegenden Elementen des Modells der Fertigung, den Kanten und Knoten (Fertigungselement- und -vorgangsknoten), deren spezifische Eigenschaften steuerungs- und planungsrelevant sind. Diese Eigenschaften werden bestimmt durch die Attribute der Knoten und zwar bilden sie Stamm- und Bewegungsdaten der Knoten ab. Ein wichtiger Bestandteil der Stammdaten sind die Restriktionen, die auf einzelnen Elementen, Elementklassen oder auch dem Gesamtmodell definiert sind. Sie werden aus dem Grund zu den Stammdaten gezählt, da sie über einen gewissen Zeitraum konstant sind. Stammdaten legen darüber hinaus Daten zur Identifikation oder Administration, aber auch zur Bestimmung der Dispositionsprinzipien von Fertigungselementknoten und Transformationsprinzipien von Fertigungsvorgangsknoten fest. Restriktionen können sowohl zustands-, zeit- als auch mengenorientiert sein. Zustandsbezogene Restriktionen beziehen sich auf die Merkmale der Klassenbeschreibung des jeweiligen Modellelements. So kann ein Fertigungselementknoten, insbesondere ein Fertigungsmittelknoten, z.B. im Zustand „frei“ oder „belegt“ sein und dementsprechend den Eintritt eines Fertigungselements bzw. eines Fertigungsvorgangs erlauben oder verbieten. Die zeitbezogenen Restriktionen basieren auf dem für den jeweiligen Teilgraphen genutzten Zeitmodell, das in der Modelldatenbank festgelegt ist. Die Grundlage der mengenbezogenen Restriktionen wird durch die Angaben zur Bestandsführung an den Elementen gelegt. Sie beinhalten die objektspezifischen Rahmenbedingungen. Bewegungsdaten bilden die tatsächlichen Bestandsverläufe über der Zeit ab.32 Diese Daten zum Prozeßablauf sind entweder Solldaten, also Ergebnis eines Planungsprozesses, oder Istdaten, die über ein Betriebsdatenerfassungssystem aus dem realen Prozeß zugeführt wurden. Auch die Lenkungs- bzw. Planungsstrategie der Fertigung muß im Rahmen der Betrachtung der Funktionalität berücksichtigt werden. Eine verbrauchsorientierte Ablauflogik oder eine programmgebundene Anstoßlogik bedingen nämlich gänzlich andere Funktionen oder auch den Wegfall von bestimmten Funktionen an einigen Modellelementen als eine bedarfsorientierte Ablauflogik oder eine kundengebundene Anstoßlogik.33 Ein weiterer wichtiger Einflußfaktor auf die Funktionalität an den Modellelementen ist das zugrunde liegende Zeitmodell des Gesamtgraphen bzw. jeweiligen Teilgraphen. Unterschiedliche Verhältnisse von Zeit- bzw. 32. Die Bewegungsdaten werden im Rahmen des Modells der Fertigung in Zeit-/Mengenleisten dokumentiert (vgl. [DaWi96], S. 22 ff.). 33. Vgl. [Wie98], S. 98 ff. 116 Kapitel 5 Planungsabschnitten und Durchlaufzeiten von Vorgängen oder Bestellzeiten von Materialien bedingen verschiedene Funktionen respektive Ausprägungen von Funktionen, wie z.B. bei der Losgrößenbestimmung. Im folgenden wird nun zuerst auf die Funktionalität an den Modellkanten eingegangen und herausgestellt, weswegen es vorteilhafter ist, diese Funktionen an den Knoten durchzuführen, von denen die Kanten ausgehen oder in die sie eingehen. Im Anschluß daran wird die Funktionalität der Knoten genauer erläutert. Kanten repräsentieren die Austausch- bzw. Zuordnungsbeziehungen zwischen den Knoten des Fertigungsgraphen, den Fertigungselementen und -vorgängen. Sie verbinden immer Fertigungselement- mit Fertigungsvorgangsknoten. Dabei gibt es zwei Betrachtungsweisen für jede Kante, einerseits geht sie von einem Knoten aus und andererseits in einen anderen Knoten ein. Diese unterschiedlichen Sichtarten zeigen sich auch in der Funktionalität, die in den meisten Fällen auf speziellen Regeln basiert.34 Bei ausgehenden Kanten werden Aufteilungsregeln (Splittungsfunktionen) nach gewissen Prioritäten oder Verhältnissen angewendet, um die Angebote (Bedarfe) auf diese zu verteilen. Bei eingehenden Kanten dagegen werden Zusammenfassungsregeln (Gruppierungsfunktionen), ebenfalls basierend auf Prioritäts- oder Verhältnisregeln, genutzt, um die einzelnen Angebote (Bedarfe) zu verknüpfen. Alle diese Regeln sind einerseits immer abhängig von den Restriktionen des bzw. der Knoten, von denen die Kante/-n ausgehen, und andererseits von den Restriktionen des bzw. der Knoten, in welche die Kante/-n eingehen. Somit benötigt jede Kante zur Durchführung ihrer Funktionen Informationen von bzw. über die angrenzenden Knoten. Die Abbildung 5-10 stellt die beiden unterschiedlichen Kantenarten, ein- und ausgehende Kanten an Fertigungselement- und Fertigungsvorgangsknoten, dar. Durch Pfeile wird die Ausrichtung der Kanten verdeutlicht, denn der Fertigungsgraph kann sowohl vorwärts als auch rückwärts durchlaufen werden. Abhängig von der Ablauforientierung handelt es sich dann entweder um Bedarfe oder um Angebote. Abbildung 5-10: Ein- und ausgehende Kanten 34. Nur in Spezialfällen sind weder Aufteilungs- noch Zusammenfassungsregeln zur Bestimmung des Aus- oder Eingangs nötig. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 117 Im einfachsten Fall besitzt ein Knoten genau eine Kante bzw. eine eingehende und eine ausgehende Kante. Trifft dieses für den gesamten Graphen zu, so wird von einem linearen Netzwerk gesprochen. Mehrere Kanten an einem Knoten können unterschiedliche steuerungs- und planungsrelevante Beziehungen besitzen.35 Und zwar können sie: • komplementär, • konkurrierend oder • alternativ sein. Sind die Kanten komplementär, so bedeutet das, daß die einzelnen Vorgänge am Knoten verschiedene Inputs erfordern bzw. verschiedene Outputs erzeugen. Konkurrierende Kanten besagen, daß gleiche Elemente (Objekte) von verschiedenen Fertigungselementknoten bezogen werden können. Bei alternativen Kanten werden dagegen verschiedene Elemente, alternative Inputs/Outputs alternativer Vorgänge, von verschiedenen Fertigungselementknoten geliefert.36 Diese Beziehungen können allerdings auch in Kombination an einem Knoten gleichzeitig auftreten. Zur Verdeutlichung stellt Abbildung 5-11 die verschiedenen Beziehungen noch einmal graphisch dar. Dabei ist zu beachten, daß das logische Oder („v“) immer ein ausschließendes komplementär konkurrierend alternativ Kombination verschiedener Beziehungen Abbildung 5-11: Beziehungen zwischen Kanten Oder (EXOR) darstellt. Zur Vereinfachung wurden hier nur die unterschiedlichen Beziehungen von links ein- bzw. ausgehenden Kanten dargestellt, die Abbildung der anderen Möglichkeiten erübrigt sich, da sie sich spiegelbildlich verhalten. Um die Funktionalität der Kanten nutzen zu können, müssen diese Informationen über die steuerungs- und planungsrelevanten Eigenschaften ihrer Nachbar-/Mitkanten besitzen, um auf 35. 36. Vgl. Abbildung 5-11 Vgl [Fel96], S. 89 ff. 118 Kapitel 5 diese Weise z.B. die Konkurrenz zu erkennen. Es ist jedoch unkomplizierter, den Kanten keine eigene Funktionalität zu geben, sondern die Funktionen auf die Knoten zu übertragen. Dieses ist auch deswegen effizienter, da andernfalls einige Funktionen für jede Kante einzeln durchgeführt werden müßten, während sie am Knoten in gebündelter Form vollzogen werden können. Auf diese Weise muß nur der jeweilige Knoten seine ein- und ausgehenden Kanten kennen. Das Wissen über die Funktionalität der Kanten wird also an Knoten gebündelt. Außerdem sind Kanten keine Träger zusätzlicher Informationen, wie z.B. die Attribute der Knoten, die im folgenden noch näher beschrieben werden.37 Die Funktionalität eines Knotens beruht auf den steuerungs- und planungsrelevanten Eigenschaften bezüglich gegebener Attribute an den Knoten bzw. den Knotenklassen. Die Attribute stellen die Stamm- und Bewegungsdaten dar und sind im Modell der Fertigung hinterlegt. Von den Stammdaten werden neben der Bezeichnung und den administrativen Angaben auch die jeweiligen Dispositions- oder Transformationsprinzipien sowie die Restriktionen eines Knotens festgelegt. Letztere gliedern sich auf in Zeit-, Zustands- und Mengenrestriktionen und können in jeder Kombination vorkommen. Die Bewegungsdaten beinhalten den Bestand bzw. die Bestandsänderungen über der Zeit und den Status des jeweiligen Knotens.38 Die Restriktionen und der Status bestimmen das Input- und Outputverhalten des Knotens. Die Funktionen am Knoten haben allgemein die Aufgabe, auftretende Inkonsistenzen, die durch Zu- oder Abgänge entstehen können, zu beseitigen. Zur Vermeidung dieser Inkonsistenzen besitzt jeder Knoten die oben genannten Restriktionen. Mengenrestriktionen beschränken Zu- oder Abgänge aufgrund von Höchst- oder Mindestgrenzen des Bestands. Durch Zustandsrestriktionen wird die Beachtung des jeweiligen Knotenstatus gewährleistet. Zeitrestriktionen erlauben oder erzwingen39 Zu- und Abgänge nur zu bestimmten Zeitpunkten bzw. in bestimmten Zeitabschnitten. Um diesen Restriktionen gerecht zu werden, ist eine Verwaltung der Zuund Abgänge sowie des Zustandes der einzelnen Knoten notwendig, wofür die Knotentypen folgende Funktionen gemeinsam haben:40 • Ein- und Austrittsfunktionen • Zustandsfunktionen 37. Vgl. [DaGe95] Vgl. [DaWi93a], S. 23 ff. 39. Ein Beispiel für eine Zustandsdauerrestriktion ist im Rahmen des Schweißvorgangs eines Bagger-Unterwagens anzutreffen: erst nach 8-stündigem Vorwärmen kann und muß der Bagger-Unterwagen geschweißt werden. 40. Vgl. Abbildung 5-12 38. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 119 Diese Ein- und Austrittsfunktionen beinhalten als gemeinsame Teilfunktionen: • Zusammenfassungsfunktionen • Aufteilungsfunktionen Die Zustandsfunktionen teilen sich unter besonderer Beachtung der in Klammern stehenden Prinzipien weiter auf in: • Bestands- und Bedarfsrechnungsfunktionen (Dispositionsprinzipien), • Terminierungsfunktionen (Transformationsprinzipien) und • Losgrößenberechnungsfunktionen. Bezogen auf die in Abschnitt 2.2.2.3 Klassifikationsmerkmal Fertigungslenkungsfunktionen angeführten ablauforganisatorische Entscheidungsprobleme werden in den Ein- und Austrittsfunktionen mit Hilfe der oben dargestellten Teilfunktionen Aufteilungs- bzw. Verteilungs-, Gruppierungs- und Reihenfolgeprobleme gelöst. In den Zustandsfunktionen werden Bestands/Bedarfsermittlungs-, Terminierungs- und wiederum Gruppierungsprobleme (Losgrößenbestimmung) behandelt. Die Funktionen an den unterschiedlichen Knoten können einzeln oder in Kombination auftreten. Beinhaltet ein Knoten mehrere Funktionen, so werden diese entweder der Reihe nach entsprechend der Auflistung in der Spezifikationssprache abgearbeitet oder es ist eine Ablaufregel zur Bestimmung der Reihenfolge dieser Teilfunktionen spezifiziert, wie z.B. parallel. Abbildung 5-12 verdeutlicht die Ansatzpunkte der Fertigungslenkungsfunktionen, wobei der Kreis für einen allgemeinen Knotentyp anstelle eines Dreiecks oder Rechtecks steht. Eintritt Zusammenfassen/Aufteilen ohne Regel nach Regel: - Priorität - Verhältnis - losweise - Restriktionen Zustand Austritt Zusammenfassen/Aufteilen ohne Regel Bestandsrechnung Bedarfsrechnung Terminierung Losgrößenrechnung Abbildung 5-12: Funktionalität am Knoten nach Regel: - Priorität - Verhältnis - losweise - Restriktionen 120 Kapitel 5 Ob an einem Knoten oder einer Knotenklasse eine41 oder mehrere dieser Funktionen durchgeführt werden, hängt auch entscheidend davon ab, welcher Knoten/Knotenklasse oder welcher Teil eines Knotens aktiv ist. Aktiv bedeutet hier, daß an diesem Knoten oder diesem Teil des Knotens aktiv der Fertigungselementefluß verändert bzw. gesteuert und die Änderung an andere Knoten übermittelt wird. Dieses Verhalten wird Dominanz eines Knotens genannt, d.h. dieser Knoten bestimmt den Fertigungselementefluß. Passive Knoten oder Teilknoten haben keine Reaktionsmöglichkeit und können keine Vorschläge an andere Knoten absetzen. Sie besitzen darüber hinaus auch nicht die vollständige Kanteninformation und ihr Funktionsumfang ist auf die jeweilige Zustandsverwaltung begrenzt.42 Sind z.B. alle Fertigungsvorgangsknoten eines Modells aktiv sowie alle Fertigungselementknoten passiv und liegt außerdem eine Rückwärtsbetrachtung vor, so tragen die Fertigungsvorgangsknoten ihre Bedarfe aktiv bei den Fertigungselementknoten ein. Letztere wissen nicht, woher diese Bedarfseinträge kommen. Der Funktionsumfang der Fertigungselementknoten beschränkt sich auf die Zustandsverwaltung. Im entgegengesetzten Fall erhalten die Fertigungselementknoten keine Bedarfsanforderungen von den Fertigungsvorgangsknoten, sondern müssen alle angekoppelten Fertigungsvorgangsknoten je Zeitabschnitt auf Änderungen abfragen. Dabei ist der Funktionsumfang der Fertigungsvorgangsknoten auf die Zustandsverwaltung beschränkt. Weiterhin gibt es die Möglichkeit, daß Knoten links passiv und rechts aktiv sind, wie z.B. bei einer rückwärtsorientierten, synthetischen Vorgehensweise. Falls beide Knotenarten aktiv sind, können Informationen in beide Richtungen zu beliebigen Zeitpunkten übermittelt werden. In der Spezifikationssprache erfolgt die Unterscheidung in aktive und passive Knoten bzw. Knotenteile durch die Angabe oder das Weglassen von Funktionen43 in den jeweiligen Funktionskonstrukten der Teilgraphen. Eine Änderung von Bedarf oder Angebot kann demnach also vom Fertigungsvorgangs- und/oder Fertigungselementknoten ausgehen. Auf diese Weise wird festgelegt, welche Teilaufgaben von welchem Knoten angestoßen werden, d.h. welche Funktionen an welchem Knoten durchgeführt werden. Gleichzeitig muß wiederum bedacht werden, welche Knoten bzw. Knotenteile aktiv sind. Abbildung 5-13 zeigt beispielhaft die Informationsübertragung bzw. Übermittlung von Änderungen zwischen angrenzenden Knoten. Wie bereits in Abschnitt 2.2.2.1 Klassifikationsmerkmal Fertigungslenkungsstruktur dargestellt, sind die kleinsten für die Spezifikationssprache relevanten Teilgraphen Strukturprototy41. Die Zustandsfunktionen sind Bestandteil jedes Knotens. Vgl. [DaWa97], S. 91 ff. 43. Natürlich werden nur an aktiven Knoten/-teilen Funktionen durchgeführt. Knoten ohne Funktionalität werden, wie vorher bereits erläutert, gestrichelt dargestellt. 42. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 121 Bedarfseintrag Abfrage auf Änderung Abbildung 5-13: Übermittlung von Änderungen pen. Aneinander grenzende Prototypen eines Fertigungsmodells überlappen sich an ihren Materialknoten. Fertigungsmittelknoten können sowohl nur an einen Fertigungsvorgangsknoten gebunden sein, dann befinden sie sich genau in einem Strukturprototypen, oder sie werden von mehreren Vorgangsknoten genutzt und sind in mehreren Prototypen zu finden. Aus diesem Grund muß in der Spezifikationssprache festgelegt werden, welche Funktionen an diesen Knoten in welchen Prototypen Anwendung finden. Die Reihenfolge der Funktionenanwendung wird durch die auf den Gesamtgraphen und auf Teilgraphen (Strukturprototypen) bezogenen Ablaufkonstrukte bestimmt. Die Eintritts- und Austrittsfunktionen an Knoten bestimmen bei möglicherweise mehreren Kanten, die auf den Knoten zielen, welche Fertigungselemente in einen Knoten hinein oder aus ihm heraus gehen dürfen. Dabei müssen sie den Attributen und speziell den Restriktionen des Knotens sowie auch denen der Vorgänger- und Nachfolgerknoten gerecht werden. Es ist also entweder ein Zugang oder ein Abgang zu bestimmen, der mit allen Restriktionen der beteiligten Knoten konsistent ist. Dieser Abgleich mit den Restriktionen kann sowohl vor als auch nach dem Zusammenfassen oder Aufteilen der ein- bzw. ausgehenden Fertigungselemente erfolgen. Wann er stattfindet, ist abhängig davon, welche Knoten aktiv sind und welche Restriktionen sie besitzen. Außerdem muß jeder Ausgang bzw. Eingang mit den Restriktionen des jeweiligen Knotens, aus dem ausgetreten oder in den eingetreten wird, abgestimmt werden. Diese Problematik wird im folgenden noch genauer ausgeführt. Mit der Zusammenfassungsfunktion werden in den Knoten eingehende Bedarfe oder Angebote entsprechend bestimmter Regeln44, die auf den angesprochenen Restriktionen basieren, kombiniert. Bei einem Abgleich vor dem Zusammenfassen werden die Angebote bzw. Bedarfe45 bereits auf den Kanten bzw. in den Vorgängerknoten in einer bestimmten Reihenfolge bzw. in einem speziellen Verhältnis zusammengefaßt.46 Diese Art des Zusammenfassens wird z. B. 44. Gibt es keine spezifischen Reihenfolge- bzw. Kombinationsregeln, so wird z.B. alphabetisch vorgegangen. 45. Dieses ist abhängig von der Ablauforientierung: vorwärts - Angebote und rückwärts - Bedarfe 46. Vgl. [Hol99], S. 161 ff. 122 Kapitel 5 dann genutzt, wenn ein Ein- oder Austritt bzw. ein Bedarf oder Angebot aufgrund einer ereignisorientierten Vorgehensweise jederzeit auftreten kann. In der Spezifikationssprache wird dieses Vorgehen durch die Ausprägung des Ablaufkonstrukts bestimmt. Die aufgrund der Restriktionen „abgewiesenen“ Fertigungselemente müssen in den Vorgängerknoten auf ihre Bearbeitung warten, die abhängig vom nächsten Auftreten eines bestimmten Bedarfs bzw. Angebots ist. Die Restriktionen können sowohl Ausgangsrestriktionen der Vorgängerknoten als auch Eingangsrestriktionen sein. Ausgangsrestriktionen begrenzen die Zahl der ausgehenden Fertigungselemente z.B. anhand von Mindestbestandsmengen oder Prioritäten anderer Nachfolgerknoten. Im Gegensatz dazu beschränken Eingangsrestriktionen die Zahl eingehender Fertigungselemente z.B. ebenfalls durch Mengenbegrenzungen (max. Bestand oder Belegung), zeitliche Begrenzungen basierend auf einem speziellen Schichtenmodell (Stillstandszeiten) oder Prioritäten anderer eingehender Elemente. Im Falle eines Abgleichs nach dem Zusammenfassen werden die Angebote bzw. Bedarfe zu Beginn eines Zeitabschnitts ohne Beachtung von Reihenfolgeregeln oder Prioritäten in einer Warteliste47 zusammengefaßt. Dieser Art des Zusammenfassens liegt demnach eine zeitorientierte Vorgehensweise zugrunde, die in der Spezifikationssprache durch das Ablaufkonstrukt festgelegt wird. Über dem Zeitintervall wird diese Liste dann einer Regel folgend abgearbeitet.48 Die verwendete Regel beruht auf den Prioritäten der Fertigungselemente und den Restriktionen der Knoten, in welche die Elemente eingehen sollen, die im Modell respektive an den jeweiligen Knoten hinterlegt sind. Sie ist nicht von den Vorgängerknoten abhängig. Eine Prioritätsregel ist dann anwendbar, wenn Knoten eine der oben beschriebenen Restriktionen aufweisen, was bedeutet, daß nur eine begrenzte Zahl an Fertigungselementen in den Knoten eintreten kann, obgleich mehrere alternative und/oder konkurrierende Fertigungselemente gleichzeitig eintrittsbereit sind. Diese Elemente werden entsprechend ihrer Priorität und dem gegebenen Zeitmodell49 oder auch einem Bearbeitungstakt, wie z.B. bei einem Montageband, der Warteliste entnommen und abgearbeitet. Zu Beginn des nächsten Zeitintervalls wird wiederum ein Abgleich der Angebote bzw. Bedarfe vorgenommen. Wird die Warteliste im Zeitin47. Eine Warteliste bzw. -schlange ist eine Folge von noch abzuarbeitenden Fertigungselementen bzw. -vorgängen. 48. Im Falle einer ereignisorientierten Abarbeitung erfolgt der Übergang zwischen zwei Knoten oder auch das Abarbeiten der Warteliste abhängig von bestimmten Ereignissen, wie z.B. dem Beenden eines Vorgangs (vgl. [SIM93]). 49. Das Zeitmodell kann z.B. vorschreiben, daß Fertigungselemente nur zu Beginn eines Zeitabschnitts eintreten können, was bedeutet, daß alle Fertigungselemente, die aufgrund ihrer Priorität zu Beginn eines Zeitabschnitts nicht eintreten dürfen, mindestens bis zum Beginn des nächsten Zeitabschnitts warten müssen. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 123 tervall nicht vollständig abgearbeitet, so werden die Angebote bzw. Bedarfe abhängig von der zugrundeliegenden Fertigungslenkungsstrategie entweder ins nächste Zeitintervall übernommen oder nicht. Abbildung 5-14: Zusammenfassungsfunktion Gehen dagegen komplementäre Fertigungselemente in einen Knoten ein, so sind diese nach einer Verhältnisregel, welche die Anteile der einzelnen Elemente bestimmt, zu koordinieren. Ein Zusammenfassen der Fertigungselemente ist also nur möglich, wenn sie in den jeweiligen Anteilen vorhanden sind, andernfalls muß entsprechend dem zugrunde liegenden Zeitmodell eine bestimmte Zeitspanne bis zur erneuten Überprüfung oder bei Ereignisorientierung bis zur Ankunft der noch benötigten Fertigungselemente gewartet werden. Somit ist in diesem Fall ein Zusammenfassen nur nach dem Abgleich, der hier das Anteilsverhältnis bestimmt, möglich. Ein Beispiel für diese Zusammenfassungsregel ist die Montage eines Unterwagens für einen Radbagger. Dieser Unterwagen besteht aus einer Traverse und zwei Längsträgern, so daß der Unterwagen nur montiert werden kann, wenn alle drei Teile vorrätig sind. Sind diese nicht vorhanden, so muß die Montage bis zum Eintreffen der entsprechenden Teile verschoben werden (ereignisorientiert). Wenn mit der Montage immer nur zu bestimmten Zeitpunkten begonnen wird (zeitorientiert), erfolgt sie in diesem speziellen Fall zum nächsten dieser Zeitpunkte, zu dem alle erforderlichen Teile vorrätig sind. Ferner kann die Zusammenfassung auch unter einer Verknüpfung beider Regeln erfolgen, falls z.B. mehrere Kombinationen von Fertigungselementen möglich sind, wie bei einem Montagevorgang, in dem verschiedene Produkte montiert werden können. Die Summe der schließlich eingehenden Fertigungselemente stellt das resultierende Angebot oder den resultierenden Bedarf am jeweiligen Fertigungsknoten dar. Mit der Aufteilungsfunktion werden aus einem Knoten ausgehende Fertigungselemente gesteuert. Die Steuerung erfolgt ebenfalls nach Verhältnis- oder Prioritätsregeln, denn entweder werden die Fertigungselemente nach einem bestimmten Verhältnis oder nach Prioritäten auf die folgenden Knoten verteilt. Weiterhin ist die Aufteilungsfunktion abhängig von den Restriktionen der Knoten. So wird z.B. im Falle einer Bestandsuntergrenze des Knotens fest- 124 Kapitel 5 gelegt, wie viele Fertigungselemente austreten dürfen. Eine Bestandsobergrenze der nachfolgenden Knoten kann das Austreten ebenfalls verhindern (blockieren). Zu berücksichtigen ist hier außerdem, ob der Abgleich mit diesen Restriktionen vor oder nach dem Aufteilen der ausgehenden Fertigungselemente stattfindet. Abbildung 5-15: Aufteilungsfunktion Die Zustandsfunktionen verwalten den aktuellen Zustand eines Knotens. Sie teilen sich auf in die Funktionen Bestands-, Bedarfsrechnung und Losgrößenbestimmung am Fertigungselementknoten sowie Terminierung am Fertigungsvorgangsknoten. Eine Terminierung ist an Fertigungselementknoten nicht nötig, da im Gegensatz zu Fertigungsvorgangsknoten eingetretene Fertigungselemente sofort wieder austreten können. In der Bestands- und Bedarfsrechnung werden an Fertigungselementknoten, basierend auf den eingehenden Bruttoangeboten/-bedarfen und den jeweiligen Beständen, die ausgehenden Nettoangebote/-bedarfe und der resultierende Bestand an diesen Knoten respektive diesen Knotenklassen berechnet. Dabei erfolgt ein Abgleich mit den Sicherheitsbeständen bzw. Untergrenzen der Bestände, den Mindestbeständen. Somit werden an dieser Stelle, falls es sich um eine verbrauchsorientierte Mengenplanung handelt, auch die Reaktionen auf ein Unterschreiten dieser Bestände, die in den Dispositionsprinzipien50 des jeweiligen Knotens oder der Knotenklasse festgelegt sind, ausgelöst. Sie bestimmen, zu welchen Zeitpunkten bzw. aufgrund welcher Ereignisse Bedarf an vorgelagerten Stellen ausgelöst wird. Das Erreichen des Maximalbestands, der z.B. den Zugang oder Abgang eines Fertigungselements verhindern würde, wird bereits bei den Ein- und Austrittsfunktionen berücksichtigt. Die Gruppierung der ausgehenden Nettoangebote/-bedarfe nach Losgrößen bzw. die Ermittlung der optimalen Losgröße erfolgt nach Abschluß der Bestands- und Bedarfsrechnung. Für die Berechnung der Losgrößen gibt es verschiedene Modelle, die auf bestimmte Aspekte der jeweiligen Lenkungs- bzw. Planungssituation ausgerichtet sind.51 Somit bestimmen Struktur 50. Die Dispositionsprinzipien sind Attribute des Knotens oder der Knotenklasse (vgl. Abschnitt 5.2.1.1.1 Attribute an Fertigungselementknoten). 51. Diese Aspekte umfassen z.B. die Stufigkeit der Fertigung, Fehlmengenbehandlung, Bedarfsschwankungen, Auflagehäufigkeiten, u.a. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 125 und Ablauf der Fertigungslenkung in weiten Teilen das einzusetzende Losgrößenmodell. In der Praxis werden in der Regel die analytische Losgrößenberechnung nach der Andlerschen Losgrößenformel (Grundmodell), der Algorithmus für die sogenannte gleitende wirtschaftliche Losgröße oder der Algorithmus für den Stück-Perioden-Ausgleich (Part-Period Verfahren) angewendet.52 Allerdings ist die Gruppierung nach Losen nur dann sinnvoll, wenn der Auflegungs- bzw. Bestellzyklus größer als der gewählte Zeitabschnitt ist und Rüstkosten sowie möglichst auch Lager- und Bestellkosten vorliegen. Andernfalls ist eine Einzelbestellung, bei welcher der Bestellzyklus die Einplanung der Bedarfe bestimmt und die Bestellung erst im Zeitpunkt des Auftretens des Bedarfes erfolgt, vorteilhafter. Schließlich berechnet die Terminierungsfunktion aus einem Anfangs- oder Endtermin auf Basis der Durchlaufzeiten53 einen neuen End- oder Anfangstermin für einen Fertigungsvorgang. Dabei wird jeweils entsprechend der Terminierungsrichtung (vorwärts, rückwärts) und unter Beachtung von Zeitpuffern (z.B. bei Mittelpunktsorientierung) vorgegangen. Außerdem sind das jeweilige Zeitmodell und die Transformationsprinzipien54 des Knotens bzw. der Knotenklasse zu bedenken, die entscheidenden Einfluß auf die Terminierung haben. 5.2.1.1 Funktionalität an Fertigungselementknoten Die beiden Fertigungselementknotentypen, Material- und Fertigungsmittelknoten, unterscheiden sich bezüglich ihrer Funktionalität nur geringfügig. Bei beiden ist der gesamte Umfang der Funktionen am Fertigungselementknoten möglich, allerdings verhält sich ein Fertigungsmittelknoten im Gegensatz zu einem Materialknoten in der Regel passiv. Er meldet weder einen Nettobedarf bei seinem Vorgänger noch ein Nettoangebot bei seinem Nachfolger an. Eine Ausnahme von dieser Regel könnte z.B. dann eintreten, wenn eine Maschine nicht leerlaufen darf und deswegen immer Nachschub benötigt.55 In diesem Fall würde der Fertigungsmittelknoten bei dem ihm vorausgehenden Materialknoten einen bestimmten Nettobedarf anmelden. Im folgenden wird nun zuerst auf die Attribute und insbesondere auf die Restriktionen an Fertigungselementknoten eingegangen, bevor die Funktionen genauer dargestellt werden, da erstere entscheidenden Einfluß auf die Funktionalität haben. 52. Vgl. [Hac84], S. 150 f. und die Nachteile dieser Berechnungsarten auf S. 156 ff. Die vorgangsbezogene Durchlaufzeit setzt sich aus den Elementen Rüstzeit, Bearbeitungszeit, Transportzeit, Kontrollzeit und Liege- bzw. Wartezeit zusammen (vgl. [Zäp82], S. 222). 54. Die Transformationsprinzipien sind Attribute des Knotens oder der Knotenklasse (vgl. Abschnitt 5.2.1.2.1 Attribute an Fertigungsvorgangsknoten). 55. Nachschub kann hier sowohl im Sinne von Nettobedarf als auch von Nettoangebot verstanden werden. 53. 126 Kapitel 5 Eintritt/ Austritt Zustand Austritt/ Eintritt Eintritt/ Austritt Austritt/ Eintritt Attribute Attribute Materialknoten Zustand Fertigungsmittelknoten Abbildung 5-16: Funktionalität an Fertigungselementknoten 5.2.1.1.1 Attribute an Fertigungselementknoten Die Attribute an Fertigungselementknoten/-klassen teilen sich in Stamm- und Bewegungsdaten auf. Für die Funktionalität von Interesse sind einerseits die Stammdaten, von denen die Dispositionsprinzipien und die Restriktionen festgelegt werden, und andererseits die Bewegungsdaten, welche die Bestands- und Zustandsdaten und ihre Änderung über der Zeit beinhalten. Dispositionsprinzipien legen den Ein- bzw. Austritt von Fertigungselementen fest und sind abhängig vom Erreichen vorgegebener Zustände oder Zeitpunkte. Anwendung finden sie z.B. im Rahmen der verbrauchsorientierten Mengenplanung56, aber auch in der bedarfsorientierten Mengenplanung57 werden sie genutzt. In Abbildung 5-17 sind die vorherrschenden Dispositionsprinzipien abgebildet. Sie sind Teil der Funktionalität und bestimmen das spezielle Verhalten einer Fertigungselementklasse. s Bestellpunkt (Meldebestand) S Sollbestand (Maximalbestand) T Bestellzyklus (konstantes Zeitintervall) B (Perioden-)Bedarf/Bestand Q Bestellmenge Entweder wird der Bestand nach einem Bestellzyklus bzw. zu vorgegebenen Zeitpunkten (Bestellrhythmus) ergänzt bzw. verringert: • Anfordern des Bedarfs/Anbieten des Bestands (Periodenzugangs) (T, B) • Auffüllen auf den Maximalbestand/Entleeren auf den Minimalbestand (T, S) • Anfordern/Anbieten einer festen Losgröße (T, Q) 56. „Die verbrauchsorientierte Mengenplanung betrachtet lediglich Verbrauche (tatsächlich erfolgte Bestandabgänge) und davon abgeleitete Bestände ausgewählter isolierter Materialklassen. Die Zeitbetrachtung reduziert sich auf den aktuellen Zeitpunkt bzw. aktuellen Zeitabschnitt“ [DaWa97], S. 260 ff. 57. In der bedarfsorientierten Mengenplanung werden Aufträge zeitlich und mengenmäßig so ausgelöst, wie sie zur Befriedigung eines gegebenen Primärbedarfs erforderlich sind (vgl. [DaWa97], S. 291 ff.). Entwicklung einer Spezifikationssprache für die Fertigungslenkung Auffüllen Bestellrhythmus feste Menge Auffüllen (s, S) 127 ohne Bestellpunkt (T, S) mit Bestellpunkt (T, S, s) ohne Bestellpunkt (T, Q) mit Bestellpunkt (T, Q, s) Bestellpunkt feste Menge (s, Q) Abbildung 5-17: Dispositionsprinzipien/Auslösungsarten (vgl. [DaWa97], S. 162 ff.) • Auffüllen auf den Maximalbestand/Entleeren auf den Minimalbestand, falls Mindestbestand/Maximalbestand erreicht (T, S, s) • Anfordern einer festen Losgröße, falls Mindestbestand/Maximalbestand erreicht (T, Q, s) Oder eine permanente Überwachung des Bestandes reagiert auf ein spezielles Ereignis, wie z.B. das Erreichen des Bestellpunktes58, um ihn aufzufüllen bzw. zu entleeren: • Anfordern des Bedarfs bei Erreichen des Minimalbestandes/Anbieten des Bestands bei Erreichen des Maximalbestandes (s,B) • Auffüllen auf den Maximalbestand/Entleeren auf den Minimalbestand bei Erreichen des Mindesbestandes/Maximalbestandes (s, S) • Anfordern einer festen Losgröße, falls Mindestbestand/Maximalbestand erreicht (s, Q) Desweiteren ist es auch möglich, daß zu einem variablen Zeitpunkt eine variable Menge, abhängig von den jeweils vorliegenden Bedarfen, disponiert wird. Zur Berechnung der Bestellmenge bzw. Losgröße kann dabei z.B. das Part-Period Verfahren59 verwendet werden. Die Vorgabe eines Dispositionsprinzips kann jedoch nicht unabhängig von der Wahl des Zeitmodells gesehen werden60, denn in allen Fällen muß die Auslösung des Auftrags so rechtzeitig erfolgen, daß zwischen Auslösetermin und erwartetem Zugang die Wiederbeschaffung mög58. Die wichtigste Bestimmungsgröße für den Bestellpunkt ist die Wiederbeschaffungszeit des jeweiligen Teils, damit der Bestand ergänzt werden kann, bevor ein gewisser Mindestbestand unterschritten wird (vgl. [Hac84], S. 150 f.). 59. Vgl. Abschnitt 5.4.1 Mengenplanung 60. Vgl. [DaWa97], S. 168 128 Kapitel 5 lich ist. Bei den Dispositionsprinzipien mit fester Losgröße ist ein von Los zu Los (Bestellos) unterschiedlicher Maximalbestand zu erwarten. Eine Gruppierung nach Losen ist jedoch nur dann möglich bzw. sinnvoll, wenn der Bestellzyklus größer als der gewählte Zeitabschnitt ist. Restriktionen an Fertigungselementknoten unterteilen sich in zeitliche und mengenmäßige Beschränkungen sowie Zustandsrestriktionen. Als Attribute des jeweiligen Knotens sind sie in der Modelldatenbank gespeichert. Ferner begrenzen sie den Ein- oder Austritt in einen Fertigungselementknoten folgendermaßen: Eintrittsbegrenzung Austrittsbegrenzung min/max Eintritt (max. Bestand) min/max Austritt (min. Bestand/Sicherheitsbestand) min/max Zugang min/max Abgang Eintritt bis Zeitpunkt oder Eintritt nur zu bestimmten Zeitpunkten Austritt bis Zeitpunkt oder Austritt nur zu bestimmten Zeitpunkten Eintritt vom Zustand (des austretenden und des eintretenden Knotens) abhängig (z.B. Vollbelegung verhindert Eintritt) Austritt vom Zustand (des austretenden und des eintretenden Knotens) abhängig (z.B. Störung verhindert Austritt) Tabelle 5-1: Restriktionen an Fertigungselementknoten 5.2.1.1.2 Eintritts-/Austrittsfunktionen an Fertigungselementknoten Die Ablaufrichtungen Vorwärts- und Rückwärtsorientierung verhalten sich an Material- und Fertigungsmittelknoten spiegelbildlich. Fertigungselemente stellen an Material- wie auch an Fertigungsmittelknoten bei der vorwärtsorientierten Vorgehensweise Angebote und beim rückwärtsorientierten Ablauf Bedarfe dar. Berechnet werden dabei aus den Bruttogrößen durch Abgleich mit den Beständen und Restriktionen der Knoten die Nettogrößen. Abbildung 5-18 verdeutlicht diesen Sachverhalt, wobei zu beachten ist, daß die Dreiecke hier sowohl Materialals auch Fertigungsmittelknoten darstellen können. Bruttoangebot Nettobedarf Nettoangebot Bruttobedarf Abbildung 5-18: Brutto-/Netto-Angebote/Bedarfe Entwicklung einer Spezifikationssprache für die Fertigungslenkung 129 In der Spezifikationssprache werden die Ein- und Austrittsfunktion eines Fertigungselementknotens folgendermaßen dargestellt:61 Teilgraph (Fertigungselementknoten), Ablaufspezifikation, fe-Eintritt (Zusammenfassen; Verknüpfungsregel), fe-Austritt (Aufteilen; Splittungsregel) Ob es sich bei den Eintritts- oder Austrittsfunktionen um Zusammenfassungs- oder Aufteilungsfunktionen handelt, muß als Zusatz der jeweiligen Funktionsspezifikation in Klammern beigefügt werden. Auf die Ausprägungen der Verknüpfungs- oder Splittungsregeln, die ebenfalls mitangegeben werden können, wird in den folgenden Abschnitten näher eingegangen. Materialknoten Ein- und ausgehende Kanten bei Materialknoten können bezüglich der Reihenfolge des Ausoder Eintritts miteinander konkurrieren. Diese Beziehungen gründen auf den möglichen Restriktionen der Materialknoten62, die im vorhergehenden Abschnitt erläutert wurden. Alternative und komplementäre Kanten treten in diesem Zusammenhang nicht auf, da Materialknoten immer genau einem Material zugeordnet sind und der Zu- oder Abgang eines Elements nicht an den Zu- oder Abgang eines anderen Elements gebunden ist. Nur im Falle von Restriktionen aufgrund von Mindest- oder Höchstbeständen kann der Zu- oder Abgang eines Elements mit dem Zu- oder Abgang eines anderen Elements verknüpft sein. Bei eingehenden Kanten wird eine Gruppierungsfunktion zur Zusammenfassung der Bruttoangebote/-bedarfe verwendet. Da der Eintritt in bzw. Austritt aus Materialknoten durch Mengenund Zeitrestriktionen begrenzt sein kann, sind Prioritäts- oder Verhältnisregeln zur Belegung der Materialknoten63 notwendig. Beide Arten von Regeln bestimmen die Reihenfolge der eintretenden Fertigungselemente. Gleichzeitig müssen aber auch die Restriktionen der Vorgängerknoten beachtet werden. 61. Bei allen folgenden Darstellungen in der Spezifikationssprache wird immer dann auf die Verwendung von Nassi-Shneiderman-Diagrammen verzichtet, wenn es sich nur um die Abbildung einzelner Programm- bzw. Befehlszeilen handelt und demzufolge keine weiteren Ablaufstrukturen bestehen. 62. Im Falle des Austritts und passiver Nachfolger des Materialknotens können diese auch Auswirkungen auf die Konkurrenzbeziehungen haben. 63. Beispiel: Ein Produkt wird in mehreren Vorgängen hergestellt, allerdings darf nicht von all diesen Vorgängen (Vorgangsknoten) mit gleicher Priorität bzw. gleichem Verhältnis (diese Nutzung der Verhältnisregel ist eine Ausnahme, sie wird in erster Linie bei Fertigungsvorgangsknoten verwendet) das anschließende Lager (Fertigungsmaterialknoten) belegt werden. 130 Kapitel 5 Eintrittsbegrenzung Austrittsbegrenzung Abbildung 5-19: Ein- und Austrittsbegrenzung an Materialknoten Die in den Zustandsfunktionen ermittelten Nettoangebote/-bedarfe werden beim Austritt mittels einer Aufteilungsfunktion auf die ausgehenden Kanten gesplittet. Diese Aufteilung erfolgt wie auch die Gruppierung der eingehenden Kanten nach Prioritäts- oder Verhältnisregeln, die wiederum abhängig sind von den jeweiligen Restriktionen der Materialknoten, die den Austritt beschränken. Gleichzeitig müssen aber auch hier die Restriktionen der Nachfolgerknoten beachtet werden, die möglicherweise den Zugang zu diesen begrenzen. Fertigungsmittelknoten Fertigungsmittelknoten besitzen ebenfalls nur konkurrierende eingehende Kanten, d.h. die Fertigungsvorgänge der eingehenden Kanten konkurrieren um die Belegung des Fertigungsmittels. Dabei ist zu berücksichtigen, daß ein Fertigungsmittel verschiedene Zustände64 annehmen kann und zwar: „frei“, „belegt“ oder „gestört“. Nur im ersten Fall ist der Eintritt eines Fertigungsvorgangs möglich. Eine Störung kann neben dem Zustand „belegt“ ein weiterer Grund dafür sein, daß eine Belegung nicht möglich ist. Allerdings sagt der Zustand „gestört“ nichts darüber aus, ob das Fertigungsmittel belegt oder frei ist. Ist das Fertigungsmittel belegt, müssen eintrittswillige Fertigungsvorgänge warten. Ferner hat der Zustand des Fertigungsmittels direkte Auswirkungen auf die mit bzw. auf dieser Ressource durchzuführenden Vorgänge und beschränkt somit den Zugang zu den Fertigungsvorgangsknoten, die mit diesem Fertigungsmittelknoten verknüpft sind. 5.2.1.1.3 Zustandsfunktionen an Fertigungselementknoten Zustandsfunktionen an Fertigungselementknoten verwalten den Zustand, der als Menge von Fertigungselementen mit Attributen zu einem bestimmten Zeitpunkt beschrieben wird65, und damit auch den Bestand dieser Knoten. Da jedes eingetretene Fertigungselement an diesen 64. Auch am Materialknoten kann von verschiedenen Zuständen gesprochen werden, allerdings gibt es dort nur die Zustände „frei“, d.h. der maximale Bestand ist noch nicht erreicht und es können weitere Fertigungselemente eintreten, und „belegt“, d.h. der maximale Bestand ist erreicht und es können keine weiteren Fertigungselemente eintreten, bevor nicht ein Fertigungselemente ausgetreten ist. 65. Vgl. [DaWa97], S. 170 Entwicklung einer Spezifikationssprache für die Fertigungslenkung 131 Knoten sofort wieder austreten kann, entspricht der Austrittszustand dem Eintrittszustand. Ausnahmen treten nur bei über der Zeit veränderlichen Attributen auf, wie z.B. bei verderblichen Gütern.66 In der Spezifikationssprache werden Zustandsfunktionen folgendermaßen dargestellt: Teilgraph (Fertigungselementknoten), Ablaufspezifikation, fe-Zustand (Bestands-/Bedarfsrechnung, Losgrößenbestimmung; Part-Period Verfahren) Wiederum wird durch die zusätzliche Angabe von Teilfunktionen und Regeln in Klammern die Funktion weiter spezifiziert. Diese zusätzlichen Informationen erhöhen entscheidend die Anschaulichkeit der Darstellung und erleichtern ihre Nutzung. Materialknoten Mit den gruppierten Bruttoangeboten/-bedarfen wird im Anschluß an die Eingangsfunktionalität die Bestands- und Bedarfsrechnung des Knotens durchgeführt, in der durch Abgleich mit dem Materialbestand die Nettoangebote/-bedarfe ermittelt werden. Der Bestand läßt sich in verschiedene Arten untergliedern, die allerdings nicht disjunkt sind: tatsächlicher Lagerbestand (Ist-Bestand), reservierter Bestand (Vormerkbestand)67, Bestellbestand (Auftragsbestand)68 und Sicherheitsbestand. Der verfügbare Bestand setzt sich demzufolge zusammen aus dem tatsächlichen Lagerbestand unter Abzug des reservierten Bestands und des Sicherheitsbestands.69 Weiterhin kann die Qualität des Bestands die Zustände (Status) „geprüft“, „ungeprüft“, „gesperrt“ und „freigegeben“ annehmen und den Umfang des verfügbaren Bestands beeinflussen. Bei der Nettobedarfsrechnung sind Bestandsuntergrenzen, wie z.B. Mindestoder Sicherheitsbestände, zu beachten und es werden entsprechend der Orientierung der Mengenplanung - verbrauchs- oder bedarfsorientiert - und des jeweiligen Dispositionsprinzips des Knotens, also abhängig vom Erreichen eines bestimmten Zeitpunkts oder Zustandes (Ereignisses), Bedarfe an vorgelagerten Knoten ausgelöst. Diese versetzen den Materialknoten wieder in einen ausgeglichenen Zustand. Eine Terminierung erfolgt am Materialknoten nicht, da hier, 66. Der Sonderfall, daß diese Güter wegen überschrittener Haltbarkeitszeit ganz vernichtet werden, wird hier nicht genauer betrachtet. Er müßte durch spezielle Zustandsfunktionen geregelt werden. 67. Der Reservierte Bestand ist der Teil des Lagerbestands, der für bestimmte Aufträge vorgemerkt ist und zu einem bestimmten Zeitpunkt dem Bestand entnommen werden soll (vgl. [Zäp82], S. 161). 68. Der Bestellbestand ist der Bestand an offenen Bestellungen, die zu einem bestimmten Zeitpunkt dem Bestand hinzugefügt werden (vgl. [Zäp82], S. 161). 69. Vgl. [GGR92], S. 52 132 Kapitel 5 wie bereits vorher erläutert, keine Zeit verbraucht wird. Vielmehr kann jedes eingehende Fertigungselement sofort wieder austreten. Eine weitere Zustandsfunktion am Materialknoten ist die Losgrößenberechnung, in der auf Basis von bestimmten Attributen der Fertigungselemente bzw. Fertigungselementknoten, wie z.B. den Lager-, Bestell- und Rüstkosten, eine optimale Losgröße (Fertigungs- oder Bestellosgröße) ermittelt wird. Diese wird zeit- oder ereignisorientiert disponiert. Die Bestimmung von Losgrößen ist allerdings nur sinnvoll, wenn einerseits der Bestellzyklus größer als die Zeitabschnitte ist, nach denen vorgegangen wird, und andererseits Rüst-, Bestell- oder Lagerungskosten vorhanden und nicht nur marginal sind. Fertigungsmittelknoten Über den Bestand wird bei einem Fertigungsmittelknoten geregelt, ob auf dem bzw. den Fertigungsmitteln noch Kapazitäten verfügbar sind. Ein Fertigungsmittel ist genau dann belegt, wenn alle Bearbeitungsplätze, falls dieses Fertigungsmittel mehrere derartige Plätze hat, besetzt sind. Es ist frei, solange noch ein weiterer Fertigungsvorgang eingelastet werden kann. Insoweit ist der Bestand eines Fertigungsmittelknotens zu einem bestimmten Zeitpunkt gleichzeitig sein Status. Ist das Fertigungsmittel belegt, so müssen eintrittswillige (-fähige) Fertigungsvorgänge in einer Warteliste gesammelt werden, was jedoch durch die Funktionalität am Fertigungsvorgangsknoten, die im folgenden noch genauer dargestellt wird, gesteuert wird. Diese Warteliste wird anschließend entsprechend der Ablaufstruktur und dem zugrunde liegenden Zeitmodell sowie der in den Knotenattributen festgelegten Priorisierung abgearbeitet. 5.2.1.2 Funktionalität an Fertigungsvorgangsknoten Fertigungsvorgangsknoten führen im Gegensatz zu Fertigungselementknoten Ströme verschiedener Fertigungselementklassen zusammen und nehmen Zustandstransformationen an diesen vor. Sie unterscheiden sich außerdem von den Fertigungselementknoten bezüglich einiger Attribute (Transformationsprinzipien) und Funktionen (Terminierung). Gemeinsamkeiten bestehen dagegen bei den Mengen- und Zeitrestriktionen. Im Gegensatz zu Fertigungselementknoten kommen an Fertigungsvorgangsknoten alle in Abschnitt 5.2.1 Funktionalität an Modellelementen beschriebenen Kantenarten vor, denn Vorgänge konsumieren Ressourcen und produzieren Materialien in einer bestimmten mengen- und zeitmäßigen Konfiguration. Entwicklung einer Spezifikationssprache für die Fertigungslenkung Eintritt/ Austritt Zustand 133 Austritt/ Eintritt Attribute Abbildung 5-20: Funktionalität an Fertigungsvorgangsknoten 5.2.1.2.1 Attribute an Fertigungsvorgangsknoten Die Stammdaten an Fertigungsvorgangsknoten/-knotenklassen beinhalten wie auch an Fertigungselementknoten die verschiedenen Restriktionen und zusätzlich insbesondere die Transformationsprinzipien dieser Knoten. Die Bewegungsdaten geben den Bestand bzw. die Bestandsänderungen im Zeitablauf sowie den Status wieder. Verschiedene Fertigungsvorgangstypen besitzen unterschiedliche Transformationsprinzipien, welche die Funktionalität an diesen Knoten entscheidend beeinflussen. Diese Transformationsprinzipien sind abhängig von dem zugrunde liegenden Zeitmodell und dem Verhältnis der Durchlaufzeiten zu den betrachteten Zeitabschnitten. Außerdem sind sie an die Verfügbarkeit der Fertigungsmittel gebunden. Ist nur eine Maschine verfügbar, liegt ein Einzelplatz vor. Sind mehrere Fertigungsmittel gleichermaßen geeignet, einen Vorgang durchzuführen, so handelt es sich um Parallelbearbeitung. Dieses bedeutet gleichzeitig, daß nach Angabe des Transformationsprinzips das bzw. die Fertigungsmittel nicht mehr in allen Einzelheiten modelliert werden müssen.70 Auf diese Weise wird eine klare Vereinfachung der Modellierung erreicht, allerdings sind weitere Modellparameter nötig, die Einfluß auf die Funktionen an den relevanten Knoten nehmen. Serielle Fertigungsvorgänge können im Fertigungsgraphen auch als ein Fertigungsvorgangsknoten mit mehreren Fertigungselementknoten dargestellt werden, wobei die Vorgänge nicht parallel, sondern in einem bestimmten Abstand, der Taktzeit, ablaufen. Die fol- 70. Vgl. [DaWa97], S. 196 ff. 134 Kapitel 5 gende Tabelle stellt die unterschiedlichen Fertigungsvorgangstypen mit ihren Transformationsprinzipien dar.71 Fertigungsvorgangstypen/ Transformationsprinzip Beschreibung Beispiel Einzelplatz genau ein einziger Fertigungsvorgang zu einem Zeitpunkt (Eintrittsabstand (Taktzeit) = Durchlaufzeit = Austrittsabstand - muß bei Zeitabschnitt > Durchlaufzeit nicht eingehalten werden) ein Montageplatz Parallele Fertigungsvorgänge mehrere voneinander unabhängige Fertigungsvorgänge zu einem Zeitpunkt der Outputprozeß mit einer in der Regel anderen Sequenz als der Inputprozeß Maschinengruppe (Unterscheidung: identische Maschinen, unterschiedliche Maschinen) First-in/last-out-Fertigungsvorgänge zu einem Zeitpunkt nur Eintritte, zu einem anderen Zeitpunkt nur Austritte möglich Regelung der Folge von Eintritt/Austritt über eine Prioritätsregel der Austritt kehrt die Eintrittsreihenfolge um Nebenschlußstrecke (Sackgasse) Serielle Fertigungsvorgänge mehrere Fertigungsvorgänge zu einem Zeitpunkt, die in einer durch die Inputsequenz gegebenen Reihenfolge bearbeitet und beendet werden Montageband Tabelle 5-2: Transformationsprinzipien an Fertigungsvorgangstypen Ein weiterer wichtiger Einflußfaktor auf die Funktionalität sind die Restriktionen an Fertigungsvorgangsknoten und zwar sind es wiederum Zustands-, Zeit- und Mengenrestriktionen. Diese Restriktionen sind als Attribute des jeweiligen Knotens in der Modelldatenbank gespeichert. Eintrittsbegrenzung Austrittbegrenzung max/min Eintritt (Bestandsbegrenzung) max/min Austritt (Bestandsbegrenzung, Blockierung durch Unmöglichkeit des Zugangs zum Nachfolgerknoten) max/min Zugang max/min Abgang Taktzeit (z.B. Montageband) Taktzeit (z.B. Montageband) Tabelle 5-3: Restriktionen an Fertigungsvorgangsknoten 71. Vgl. [DaWa97], S. 192 ff. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 135 Eintrittsbegrenzung Austrittbegrenzung Eintritt bis Zeitpunkt oder Eintritt nur zu bestimmten Zeitpunkten Austritt bis Zeitpunkt oder Austritt nur zu bestimmten Zeitpunkten Eintritt vom Zustand (des austretenden und des eintretenden Knotens) abhängig Austritt vom Zustand (des austretenden und des eintretenden Knotens) abhängig Tabelle 5-3: Restriktionen an Fertigungsvorgangsknoten Die Restriktion Taktzeit wird insbesondere dann offenkundig, wenn die Zeit durch eine Veränderung der Prozeßgeschwindigkeit variiert wird. In diesem Fall kommt es zu Kapazitätsschwankungen; dabei können Rückstaus (bei Senkung der Transformationsgeschwindigkeit) oder auch Leerzeiten (bei Erhöhung der Transformationsgeschwindigkeit) entstehen. Der Austritt aus einem Fertigungsvorgangsknoten ist genau dann blockiert, wenn der Zugang zum Nachfolgerknoten unmöglich ist, was z.B. eintritt, wenn der besagte Knoten bereits seinen maximalen Bestand erreicht hat, das Lager voll ist oder eine Störung aufgetreten ist. Dieser Fall tritt jedoch nur auf, wenn beide Knoten aktiv oder der Fertigungsvorgangsknoten aktiv und der bzw. die Nachfolgerknoten passiv sind. Bei der Festlegung der Funktionalität an Fertigungsvorgangsknoten muß besonderes Gewicht auf das jeweils genutzte Zeitmodell gelegt werden. Basiert die Ablaufstruktur z.B. auf Fortschrittszahlen72, handelt es sich demnach um ein kumulatives Modell, so kann nicht verbrauchte Kapazität auch im nächsten Zeitabschnitt noch zur Verfügung stehen. In allen anderen Fällen ist dieses nicht möglich und die Restkapazität geht verloren. Weiterhin ist entscheidend, ob die Vorgangsdauer ganzzahlig ist. Denn in diesem Fall sind der Beginn und das Ende eines Vorgangs, wie z.B. ein Eintritt, nur zu festgelegten Zeitpunkten möglich. Dieses verhindert eine Mehrfachbelegung oder Überlappung im Falle eines Fertigungsloses. Ist dagegen ein Eintritt genau dann möglich, wenn der Vorgängervorgang beendet ist, so ist im weiteren das Verhältnis von Durchlaufzeit zum Zeitabschnitt entscheidend. Ist die Durchlaufzeit eines Vorgangs größer als ein Zeitabschnitt, so ist eine 0/1 Aussage über die Belegung des Fertigungsmittels möglich. Ist sie dagegen kleiner, so können mehrere Fertigungsvorgänge pro Zeitabschnitt abhängig von der jeweiligen Inanspruchnahme des Fertigungsmittels durchgeführt werden. Wird dabei nach Fertigungslosen vorgegangen, so muß eine Aufteilung (Lossplittung) und eine teilweise Ablieferung der Lose möglich sein. In diesem Fall wird von Überlappung gesprochen, denn der nächste Vorgang beginnt bereits, bevor der unmittelbar vorhergehende abgeschlossen ist.73 Ungeduldige Vorgänge werden anderen 72. Vgl. Abschnitt 5.4.5.5 Fortschrittszahlenkonzept 136 Kapitel 5 vorgezogen und zwar findet bei Blockierung ein frühzeitiges Abschließen dieser Vorgänge statt. Das beschriebene Vorgehen ist jedoch im Falle von Fertigungslosen nur möglich, falls die Vorgänge aufgeteilt werden können. Weiterhin ist der Status des Fertigungsvorgangsknotens zu berücksichtigen, der einerseits besagt, ob der Knoten belegt oder frei ist (abhängig von den verbundenen Fertigungsmittelknoten), und andererseits festlegt, welche Inanspruchnahme des Fertigungsmittels der Vorgang benötigt: • vollständig • teilweise Die vollständige Inanspruchnahme des Fertigungsmittels führt bei einer Durchlaufzeit, die kürzer als der betrachtete Zeitabschnitt ist, sehr häufig zu Fehlzeiten. Bei einer teilweisen Inanspruchnahme ist dieses nur in begrenztem Umfang der Fall, da mehrere Vorgänge pro Zeitabschnitt eingeplant werden können. 5.2.1.2.2 Eintritts-/Austrittsfunktionen an Fertigungsvorgangsknoten Bei der Betrachtung der Funktionalität der Fertigungsvorgangsknoten muß sowohl zwischen vorwärts- und rückwärtsorientierten Ablaufstrukturen, unterschiedlichen Zeitmodellen74 als auch verschiedenen Kantenarten unterschieden werden. An Fertigungselementknoten gibt es nur konkurrierende Kanten, wohingegen bei Fertigungsvorgangsknoten alle Kantenarten und diese auch in beliebiger Kombination auftreten können. Weiterhin besitzen die Vorgangsknoten ebenso wie die Elementknoten zeitliche und mengenmäßige Restriktionen, welche in Abschnitt 5.2.1.2.1 Attribute an Fertigungsvorgangsknoten bereits näher ausgeführt wurden. Diese beschränken den Ein- bzw. Austritt. Somit sind auch beim Vorgangsknoten abhängig vom Erreichen bestimmter Zustände, wie z.B. dem Abschluß eines Vorgangs, Folgeereignisse auszulösen. Eintretende Elemente können Material und Fertigungsmittel sein und müssen entweder in eine Reihenfolge oder in ein bestimmtes Verhältnis gebracht werden. Austretende Elemente eines Vorgangs werden nur in speziellen Fällen aufgeteilt, wie z.B., wenn Materialien in verschiedenen Lagern abgelegt werden sollen. 73. Ein Lossplitting läßt sich nur bei Losen mit großen Stückzahlen realisieren, da diese in Teillose aufgespalten werden können (vgl. [Hac84], S. 177). 74. Diese Unterscheidung erfolgt zwar durch die Ablaufstruktur, aber die Funktionalität an den Vorgängen hängt entscheidend von den zugrunde liegenden Zeitmodellen ab. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 137 Die Funktionalität am Fertigungsvorgangsknoten ist von der Ablauforientierung der Fertigungslenkung abhängig. Zur Vereinfachung werden in Tabelle 5-4 allerdings nur die Ausprägungen der Kanten bei Vorwärtsorientierung beschrieben. Ein- und Ausgangsfunktionalität komplementäre Kanten alternative Kanten konkurrierende Kanten eingehende Kanten Inputs nach Verhältnis zusammenfassen (z.B. Montage) Reihenfolge der Inputs nach Regel auswählen Reihenfolge der Inputs nach Regel auswählen ausgehende Kanten Outputs nach Verhältnis aufteilen (z.B. Demontage) Outputs durch Inputs festgelegt (verschiedene Nachfolgerknoten) Outputs durch Inputs festgelegt (ein Nachfolgerknoten) Tabelle 5-4: Kantenarten an Fertigungsvorgangsknoten Allerdings ist die Funktionalität bei einer rückwärtsorientierten Vorgehensweise mit der hier dargestellten fast völlig identisch. Unterschiede bestehen nur insoweit, daß die in der Tabelle angeführten Beispiele für komplementäre Kanten (Montage, Demontage) vertauscht werden müssen. In der Spezifikationssprache werden die Ein- und Austrittsfunktionen folgendermaßen dargestellt: Teilgraph (Fertigungsvorgangsknoten), Ablaufspezifikation, fv-Eintritt (Zusammenfassen; Verknüpfungsregel), fv-Austritt (Aufteilen; Splittungsregel) Auch diese Funktionen müssen durch zusätzliche Erläuterungen in Klammern ergänzt werden. Auf die möglichen Zusatzangaben wird im folgenden Abschnitt am Beispiel der verschiedenen steuerungs- und planungsrelevanten Beziehungen zwischen eingehenden Kanten an Fertigungsvorgangsknoten näher eingegangen. Fertigungsvorgangsknoten mit komplementären Kanten Fertigungsvorgangsknoten, die verschiedene Inputs für einen Vorgang erfordern, besitzen komplementäre eingehende Kanten. Ein Beispiel für einen derartigen Vorgang ist ein Montageprozeß, wie z.B. die Fertigung eines Tisches aus einer Platte und vier Beinen. Dabei werden verschiedene Fertigungselemente zu einem neuen verknüpft. Die eintretenden Fertigungselemente unterliegen dabei einer Regel, die festlegt, in welchem Verhältnis sie in den Vorgang 138 Kapitel 5 eingehen. Im beschriebenen Beispiel wäre dieses Verhältnis 4 : 1, je Tisch vier Beine und eine Platte. Abbildung 5-21: Komplementäre Kanten Dabei bildet bei der Vorwärtsorientierung das geringste spezifische Angebot eines Vorgängerknotens den kritischen Pfad. Der Vorgang bzw. das Gesamtverhältnis ist somit abhängig von der Verfügbarkeit der Fertigungselemente dieses Knotens. Eine rückwärtsorientierte Vorgehensweise entspricht in diesem Fall einer Stücklistenauflösung. In ihr würde bezogen auf dieses Beispiel die Zahl an Beinen und Platten für einen bestimmten Bedarf an Tischen ermittelt. Fertigungsvorgangsknoten mit alternativen Kanten Fertigungsvorgangsknoten75, an denen verschiedene Vorgänge durchgeführt werden, die unterschiedliche Inputs benötigen, besitzen alternative eingehende Kanten. Anhand dieses Falles zeigt sich die Variabilität eines Fertigungsvorgangsknotens, an dem unterschiedliche Vorgänge (Prozesse) mit verschiedenen Inputs ablaufen können. Die Unterschiedlichkeit dieser Vorgänge kann z.B. in ihrer Dauer oder den benötigten Fertigungshilfsmitteln76 liegen. Als Beispiel dafür kann ein Schweißprozeß genannt werden, der zur Bearbeitung verschiedener Fertigungselemente unterschiedlich lange Zeit benötigt. Zur Festlegung der Reihenfolge, nach der die eingehenden Kanten abgearbeitet werden, ist eine Prioritätsregel notwendig, die bestimmt, welche Fertigungselemente (in welcher Reihenfolge) eingehen dürfen und damit auch welche Vorgänge durchgeführt werden. Die verschiedenen Vorgänge erzeugen jedoch auch verschiedene Outputs. Bei einer Rückwärtsorientierung wird demzufolge durch den spezifischen Bedarf an Outputelementen bereits der benötigte Input bzw. die benötigten Inputelemente festgelegt, so daß nur eine in den Vorgangsknoten eingehende Kante weiterverfolgt werden muß. 75. Hierbei ist aber zu beachten, daß sich diese Knoten im Fertigungsgraphen auch in mehrere Knoten, einen Knoten je Vorgang, untergliedern lassen. Die Zahl der Vorgänge je Knoten ist somit eine Frage der Aggregation (siehe auch Transformationsprinzipien). 76. Auch Fertigungshilfsmittel, wie z.B. Energie oder bestimmte Werkzeuge, können, falls sie Steuerungsnotwendigkeit besitzen, im Modell als Fertigungsmittel abgebildet werden. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 139 Abbildung 5-22: Alternative Kanten Fertigungsvorgangsknoten mit konkurrierenden Kanten Fertigungsvorgangsknoten, an denen dieselben Vorgänge mit verschiedenen Inputs durchgeführt werden, haben konkurrierende eingehende Kanten. Verschiedene Inputs kann hier z.B. bedeuten, daß ein Vorgang entweder mit selbst- oder mit fremdgefertigten Materialen durchgeführt werden kann. Auch in diesem Fall muß nach einer Regel vorgegangen werden, die anhand von Prioritäten eine bestimmte Reihenfolge für die eingehenden Fertigungselemente festlegt und somit eine Entscheidung zwischen den konkurrierenden Kanten trifft. Abbildung 5-23: Konkurrierende Kanten Im Falle einer rückwärtsorientierten Vorgehensweise, also bei Anmeldung eines Bedarfes an Outputelementen, wird ebenfalls anhand einer Regel oder auch der Verfügbarkeit der Fertigungselemente festgelegt, welche Inputelemente in den Vorgang eingehen bzw. an welchen Inputelementen Bedarf besteht. Kombination verschiedener Kantentypen an Fertigungsvorgangsknoten Häufig tritt auch eine Kombination aus den beschriebenen Kantentypen auf, nämlich genau dann, wenn an einem Fertigungsvorgangsknoten verschiedene Vorgänge durchgeführt werden können, die unterschiedliche Inputs erfordern. Dabei sind wiederum für bestimmte Vorgänge alternative Inputs (Substitute) möglich. Ein Beispiel für eine derartige Kombination verschiedener Kantentypen ist eine Montagelinie, an der sowohl Tische als auch Stühle montiert werden. Die einzelnen Tische unterscheiden sich dabei durch die verwendeten Materialien, denn 140 Kapitel 5 sie können entweder eine Holz- oder eine Glasplatte besitzen. Die Tischbeine können weiterhin sowohl aus Metall als auch aus Holz gefertigt sein. Somit treten in diesem Fall komplementäre (Tischplatte und -beine), konkurrierende (Holz, Glas oder Metall) und alternative Kanten (Tische oder Stühle) auf. Außerdem ist eine Kombination aus verschiedenen Regeln (Prioritäten, Verhältniszahlen) nötig, um das Nettoangebot (den Nettobedarf) in ein resultierendes Angebot (Bedarf) umzusetzen. Abbildung 5-24: Kombination verschiedener Kanten Ist der Beginn eines Fertigungsvorgangs aufgrund des Status oder spezieller Restriktionen des Knotens nicht möglich77, so müssen die Fertigungselemente entweder in eine Warteliste geschrieben werden oder verbleiben in den Vorgängerknoten. Wie dieser Zustand aufgelöst wird, ist abhängig vom zugrunde liegenden Zeitmodell und der Fertigungslenkungsstrategie. Bei einer zeitorientierten Vorgehensweise kann z.B. zu Beginn des nächsten Zeitzyklus erneut der Versuch unternommen werden, den Fertigungsvorgang zu starten, der jedoch wiederum nicht von Erfolg gekrönt sein muß. Wird ereignisorientiert vorgegangen, so entscheidet ein spezifisches Ereignis, wie z.B. das Ende eines Vorgangs, über den Start eines neuen Vorgangs. Auch der Abschluß eines bzw. Austritt aus einem Fertigungsvorgang kann unmöglich sein. Dieser Zustand wird „blockiert“ genannt. Der Austritt ist damit nicht mehr nur eine ausschließlich vorgangsinterne Angelegenheit, vielmehr schließt er knotenübergreifende Prüfungen mit ein. Auch die Auflösung dieser Inkonsistenz hängt von der spezifizierten Ablaufstruktur ab. Die aus einem Vorgang entstandenen (austretenden) Fertigungselemente werden ebenfalls nach einer Regel, der entweder Prioritäten oder ein bestimmtes Aufteilungsverhältnis zugrunde liegt, auf die ausgehenden Kanten verteilt. Hierbei kann es zu Blockierungen kommen, wenn die Nachfolgerknoten nicht aufnahmebereit sind. Dieses ist z.B. dann der Fall, wenn sie bereits ihren Maximalbestand erreicht haben. Durch die Nachfolger bedingte 77. In diesem Fall wird von aktiven Fertigungsvorgangsknoten und von inaktiven Fertigungsmittelknoten ausgegangen. Die Fertigungsmittel besitzen somit keine eigene Lenkungsfunktionalität, sondern die Lenkung wird von den Vorgangsknoten aus vorgenommen. Sie fragen den Zustand der Fertigungsmittelknoten ab und teilen diesen Fertigungselemente zu. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 141 Zugangsrestriktionen können indessen nur durch eine vorab durchgeführte Rückwärtsbetrachtung ermittelt werden. 5.2.1.2.3 Zustandsfunktionen an Fertigungsvorgangsknoten Entsprechend der Bestandsrechnung am Elementknoten erfolgt am Vorgangsknoten die Terminierung der Fertigungselemente, die aus dem (geänderten) Anfangs-/Endtermin eines Fertigungsvorgangs einen neuen End-/Anfangstermin (vorwärts/rückwärts) ermittelt. Bei einem Vorgangsknoten hat ein Eintrittsereignis in jedem Fall ein Austrittsereignis zur Folge, was von anderen Fertigungsvorgängen nur zeitlich beeinflußt werden kann. Der aktuelle Zustand bestimmt sich demnach aufgrund der Zu- oder Abgänge; somit besitzt ein Vorgangsknoten keinen Bestand im Sinne der Elementknoten.78 Die Terminierung ist abhängig vom zugrunde liegenden Zeitmodell, dem jeweiligen Transformationsprinzip und nicht zuletzt auch der bearbeiteten Materialmenge (z.B. ein Los). Vorgangsdauer Taktzeit Durchlaufzeit Anfangstermin Endtermin Transformationsprinzip Abbildung 5-25: Vorgangsterminierung In der Spezifikationssprache wird die Zustandsfunktionalität am Fertigungsvorgangsknoten folgendermaßen dargestellt: Teilgraph (Fertigungsvorgangsknoten), Ablaufspezifikation, fv-Zustand (Terminieren; Transformationsprinzip) Durch einen Zusatz in Klammern wird die Zustandsfunktion am Fertigungsvorgangsknoten näher beschrieben. Die Ausprägungen dieser Zusatzangabe, die zur Verdeutlichung ebenfalls mitangegeben werden können, werden im Anschluß näher präzisiert. Im einfachsten Fall, dem Transformationsprinzip „Einzelplatz“, befindet sich zu einem Zeitpunkt höchstens ein einziger Fertigungsvorgang in einem Fertigungsvorgangsknoten bzw. einer Fertigungsvorgangsknotenklasse. Demnach entspricht der Eintrittsabstand zwischen den Vorgängen ihrer Durchlaufzeit, und der früheste Eintrittszeitpunkt wird bestimmt durch den 78. Bei einem Montageband könnte ebenfalls von einem Bestand gesprochen werden, allerdings ist ein Montageband kein generischer Fertigungsvorgangsknoten und kann weiter aufgesplittet werden in Fertigungselement- und -vorgangsknoten. 142 Kapitel 5 resultierenden Inputfluß. Der späteste Austrittszeitpunkt dagegen wird festgelegt durch den resultierenden Outputfluß. Ist jedoch die Durchlaufzeit kleiner als der vom zugrunde liegenden Zeitmodell vorgegebene Zeitabschnitt, so werden mehrere Fertigungsvorgänge je Zeitabschnitt betrachtet. Bei parallelen Fertigungsvorgängen kann genau dann ein neuer Fertigungsvorgang beginnen, wenn einer der parallelen Vorgänge beendet ist. Im Gegensatz dazu spielt bei seriellen Fertigungsvorgängen die Taktzeit neben der Durchlaufzeit eine entscheidende Rolle.79 Tabelle 5-5 stellt die Terminierung bei unterschiedlichen Transformationsprinzipien und Betrachtungsrichtungen (Ablauforientierungen) genauer dar. Die darin verwendeten Bezeichner haben folgende Bedeutung: i (Arbeits-)Vorgang i j Vorgängervorgang j k Folgevorgang k Tia Anfangszeitpunkt des Vorgangs i Tja Anfangszeitpunkt des Vorgangs j Tka Anfangszeitpunkt des Vorgangs k Tie Endzeitpunkt des Vorgangs i Tje Endzeitpunkt des Vorgangs j Tke Endzeitpunkt des Vorgangs k ti Durchlaufzeit des Vorgangs i tt Taktzeit Transformationsprinzipiena Vorwärtsterminierung Rückwärtsterminierung Einzelplatz Tie = Tia + ti Tia = Tie - ti parallele Fertigungsvorgänge Tie = Tja + tj frühestmöglicher Tia = min{ j Tja + tj} Tia = Tke - tk spätestmöglicher Tie = max{ k Tke + tk} serielle Fertigungsvorgänge Tie = Tia + ti falls Tia + ti > Tje + tt sonst Tie = Tje + tt Tia = Tie - ti falls Tie - ti > Tja - tt sonst Tie = Tja - tt Tabelle 5-5: Terminierung bei unterschiedlichen Transformationsprinzipien 79. Hierbei handelt es sich um das sogenannte Fließbandabgleichproblem, das bei mehrstufiger Massenfertigung auftritt, bei der die gleichen Arbeitsoperationen an sehr vielen Werkstücken über einen längeren Zeitraum hinweg wiederholt durchgeführt werden. Zur Lösung dieses Problems gibt es verschiedene Verfahren, wie z.B. die Heuristik von Helgeson und Birnie (vgl. [KiSt93]). Entwicklung einer Spezifikationssprache für die Fertigungslenkung 143 a. Das Transformationsprinzip First-in/Last-out-Fertigungsvorgänge (vgl. [DaWa97], S. 197) findet hierbei keine Beachtung, da es sich um einen Spezialfall handelt, der in den meisten Fällen auf einer Störung basiert. Dieser Fall erfordert situationsabhängige Lösungsstrategien, die nicht allgemein dargestellt werden können. Neben der Unterscheidung nach Transformationsprinzipien sind die bereits vorher im Detail dargestellten Attribute des Fertigungsvorgangsknotens (Takt, Vorgangsdauer) und das Zeitmodell (Zeitabschnitt) entscheidend für die jeweilige Ausprägung der Zustandsfunktion bzw. der Terminierung. 5.2.2 Ablaufstrukturen Während das Modell der Fertigung die Grundlage der Funktionalität bildet, beschreiben die Abläufe der Fertigungslenkung das „Durchlaufen“ (Traversieren) und somit die Kopplung der verschiedenen Funktionen dieses Modells. Dabei geht es einerseits um die Abarbeitung der Ablaufstruktur im Sinne einer Graphstruktur (Fertigungsfortschritt) und andererseits um die Abarbeitung der Zeitstruktur (Zeitachse). Daneben gibt es auch noch die Möglichkeit einer produkt- oder auftragsweisen Abarbeitung. Standard Graph-Algorithmen, Vorgehensweisen zur Abarbeitung der Graphstruktur, sind z.B. die topologische Sortierung zyklenfreier Digraphen, die Bestimmung von Vorgänger/Nachfolgerstrukturen mit einer Adjazenzmatrix oder die Bestimmung der Menge der von einem Knoten aus erreichbaren Knoten mit einem Markierungsalgorithmus.80 Die Aufgaben dieser Algorithmen werden in der Spezifikationssprache jedoch bereits durch das zugrunde liegende (Prozeß-)Modell der Fertigung erfüllt, indem es Vorgänger- und Nachfolgerstrukturen sowie Erreichbarkeiten im Rahmen seiner Strukturdaten abbildet.81 Ablaufstrukturen können die Ablauforientierungen zeit-, ereignis-, knoten- (material-, vorgangs- und fertigungsmittelorientiert), produktionsstruktur- oder auftragsorientiert besitzen, wobei Zeit- und Ereignisorientierung den anderen Abläufen „übergeordnet“ sind. Sie bilden die Basisvorgehensweisen, innerhalb derer die Ablaufstruktur nach einer der anderen Vorgehensweisen abgearbeitet wird. Auf ihnen aufbauend kann die Ablaufstruktur sich aus beinahe beliebigen Verknüpfungen der verschiedenen Vorgehensweisen bis hinunter zur Knotenebene zusammensetzen. Ordnungsrelationen innerhalb dieser Ablauforientierungen spezifizieren die Reihenfolge der Abarbeitung noch zusätzlich. Außerdem können zur weiteren Spezifikation Ablauf- bzw. Abbruchbedingungen als Zusatz in Klammern angegeben werden. 80. 81. Vgl. [Gal92] und [DoDr95], S. 57 ff. Vgl. Abschnitt 5.2.2.4 Produktionsstrukturorientierte Vorgehensweise 144 Kapitel 5 Wenn Fertigungselemente nur einem Fertigungsvorgang zugeordnet werden können, wie z.B. bei linearen Strukturen, so können die Ablaufstrukturen durch einfache Algorithmen realisiert werden. Sind sie dagegen mehreren Fertigungsvorgängen zugeordnet, so wird die Ermittlung der Abläufe bzw. der Reihenfolge der Vorgänge schnell zu einem äußerst aufwendigen kombinatorischen Problem.82 Über die Ablaufreihenfolge wird darüber hinaus festgelegt, ob Teilmodelle seriell, parallel oder nebenläufig durchlaufen werden. Die verschiedenen Vorgehensweisen können, wie bereits erwähnt, auch ineinander verschachtelt sein. So kann z.B. innerhalb einer zeitorientierten Ablaufstruktur des gesamten Fertigungsmodells auf einem Teilgraphen vorgangsorientiert - die wichtigsten Vorgänge werden zuerst eingeplant - vorgegangen werden. Weiterhin ist aber auch eine Verschachtelung der „untergeordneten“ Vorgehensweisen möglich. So können z.B. der Gesamtgraph oder Teilgraphen von diesem vorgangsorientiert durchlaufen werden, jedoch an den einzelnen Vorgangsknoten wird fertigungsmittelorientiert - das wichtigste Fertigungsmittel wird zuerst belegt - vorgegangen. Daneben kann das Fertigungsmodell immer, abhängig von der jeweiligen Sichtweise und Zielsetzung der Fertigungslenkung, in den beiden Ablaufrichtungen vorwärts und rückwärts durchlaufen werden. Abbildung 5-26 zeigt ein Beispiel für eine derartige Verschachtelung der Vorgehensweisen. Gesamtgraph, zeitorientiert, rückwärts Teilgraph A, vorgangsorientiert, parallel Teilgraph A1, materialorientiert (Prioritätsregel) Teilgraph A2, fertigungsmittelorientiert (Prioritätsregel) Teilgraph B, produktionsstrukturorientiert Abbildung 5-26: Ablaufstrukturen Im folgenden werden nun die verschiedenen Ablaufstrukturen anhand von graphischen Darstellungen und der Spezifikationssprache beschrieben. Die Abbildung in der Spezifikationssprache ist recht unkompliziert, da einerseits die Parameter zur genauen Bestimmung der Abläufe bereits bei der Modellbildung festgelegt werden und so im Modell der Fertigung vorliegen und andererseits die Nutzung von Nassi-Shneiderman-Diagrammen die Ablaufstruktu- 82. Z.B. die Ermittlung eines Anfangstermins/Startereignisses (vgl. [DaWi93b]) Entwicklung einer Spezifikationssprache für die Fertigungslenkung 145 rierung wesentlich vereinfacht. Die Funktionalität wird in diese Darstellungen nicht miteinbezogen, sie gelten allein zur Verdeutlichung der unterschiedlichen Abläufe. Im daran anschließenden Abschnitt erfolgt eine Darstellung dieser Vorgehensweisen in „algorithmischer“ Form in einer an die Programmiersprache C++ angelehnten Notation. 5.2.2.1 Zeitorientierte Vorgehensweise Bei der zeitorientierten Vorgehensweise werden einzelne Zeitpunkte oder Zeitabschnitte über das gesamte Fertigungsmodell oder über einzelne Teilmodelle in einer durch ein Reihenfolgekriterium bzw. durch das Zeitmodell vorgegebenen Sequenz abgearbeitet. Dieses Kriterium unterteilt den Zeitraum bis zum Planungshorizont in Planungsabschnitte83, von denen jeweils der Anfangs- und Endtermin relevant sind. Ein Fertigungsmodell kann mehrere unterschiedliche Zeitmodelle, die sich auf spezielle Teilmodelle beziehen, beinhalten. Innerhalb eines Zeitmodells kann darüber hinaus eine weitere Gliederung in Zeitpunktklassen erfolgen. Diese Klassen unterscheiden sich dann z.B. durch differierende Reihenfolgebildung. Die Festlegung der Zeitmodelle erfolgt im Rahmen der Erstellung des Modells der Fertigung.84 Abbildung 5-27: Zeitorientierung T Planungshorizont Tn n-ter Zeitpunkt im Planungshorizont TH letzter zu betrachtender Zeitpunkt im Planungshorizont T T1 T TH TH T1 Abbildung 5-28: Zeitorientierte Vorgehensweise In der Spezifikationssprache wird die in Abbildung 5-28 dargestellte zeitorientierte Vorgehensweise bezogen auf einen Teilgraphen folgendermaßen beschrieben: 83. 84. Für Planungsabschnitte werden auch die Begriffe Planungszyklen, -intervalle und -perioden gebraucht. Für weitere Ausführungen zu Zeitmodellen siehe [Schn96], S. 102 ff. 146 Kapitel 5 Teilgraphspezifikation, zeitorientiert Die Informationen über das Reihenfolgekriterium für die Zeitorientierung und zwar hier speziell der Planungshorizont und die zu betrachtenden Zeitpunkte bzw. Zeitabschnitte im Planungshorizont werden aus dem Modell der Fertigung respektive den Attributen an den Teilgraphen entnommen. Ein Teilgraph kann darüber hinaus auf Basis der Zeitorientierung noch nach weiteren Vorgehensweisen abgearbeitet werden. Bestellrhythmusverfahren Das Bestellrhythmusverfahren ist eine spezielle Ausprägung der Zeitorientierung, die vorrangig bei der verbrauchsorientierten Mengenplanung eingesetzt wird.85 Bei diesem Verfahren wird z.B. der Bestand eines Materials zu vorgegebenen Zeitpunkten geprüft und, falls er einen Mindestbestand unterschreitet, um eine bestimmte Menge (z.B. Auffüllen auf den Maximalbestand) ergänzt. Das Zeitmodell des Modells der Fertigung schreibt Bestellzyklen vor, welche die Überprüfungszeitpunkte bestimmen. Die Ausführung des Dispositionsprinzips erfolgt in der Zustandsfunktion des Materialknotens. Gesamtgraph, zeitorientiert (Überprüfungszeitpunkte), rückwärts Teilgraph (Dispositionsebenen), knotenorientiert, fe-Zustand (Bestands-/Bedarfsrechnung; Dispositionsprinzip) // Auffüllen auf den Maximalbestand // Abbildung 5-29: Darstellung Bestellrhythmusverfahren 5.2.2.2 Ereignisorientierte Vorgehensweise Das jeweils nächste (zeitlich) oder wichtigste mögliche Ereignis hinsichtlich eines Reihenfolgekriteriums (Priorität) bestimmt die Abarbeitung des Fertigungsmodells bei der ereignisorientierten Vorgehensweise. In Abbildung 5-30 und dem folgenden Beispiel in der Spezifikationssprachennotation wird nach dem wichtigsten Ereignis über einem speziellen Zeithorizont vorgegangen. Eine auf der Ereignisorientierung basierende knotenorientierte Vorgehensweise kann darüber hinaus eine Spezifizierung der Ereignisse auf einen bestimmten Knotentyp bedingen. 85. Vgl. Abschnitt 5.2.1.1.1 Attribute an Fertigungselementknoten Entwicklung einer Spezifikationssprache für die Fertigungslenkung 147 Abbildung 5-30: Ereignisorientierung ei Ereignis T Planungszyklus (Planungshorizont) ET Menge der Ereignisse im Planungshorizont T e*T wichtigstes mögliches Ereignis in Zeitabschnitt T ET T e4 e2 e7 e*T e6 e1 e0 e5 Abbildung 5-31: Ereignisorientierte Vorgehensweise Darstellung in der Spezifikationssprache: Teilgraphspezifikation, ereignisorientiert Die Informationen über die Prioritätsregeln86 für die Ereignisse sowie den der Ereignisorientierung zugrunde liegenden Zeithorizont werden bei dieser Vorgehensweise ebenfalls aus dem Modell der Fertigung entnommen bzw. sind dort hinterlegt. Bestellpunktverfahren Ein Fertigungslenkungsverfahren, das ereignisorientiert vorgeht, aber ebenfalls vorrangig in der verbrauchsorientierten Mengenplanung Verwendung findet, ist das Bestellpunktverfahren. Bei diesem wird z.B. permanent (über einen Zeithorizont) überwacht, ob der aktuelle Lagerbestand einen festgelegten Bestellpunkt unterschreitet. Tritt dieses Ereignis ein, so wird ein Auftrag mit einer bestimmten Auftragsmenge initiiert. Die Größe dieser Auftragsmenge ist abhängig vom jeweiligen Bestellpunktverfahren. Entweder ist es eine feste Menge (Losgröße) oder der Bestand wird bis zu einer gewissen Grenze (z.B. Maximalbestand) aufgefüllt. Die Bestellmenge wird im Falle der verbrauchsorientierten Mengenplanung einmalig berechnet und im folgenden nicht mehr verändert. Abbildung 5-32 zeigt die Darstellung des Bestellpunktverfah- 86. Die Prioritätsregel kann auch als Zusatz in Klammern der Ablaufspezifikation beigefügt werden. 148 Kapitel 5 rens in der Spezifikationssprache, wobei nach einem Planungszyklus vorgegangen wird. Gesamtgraph, zeitorientiert (Planungszyklus) Teilgraph (Strukturprototyp), ereignisorientiert, fe-Zustand (Bestands-/Bedarfsrechnung; Dispositionsprinzip) // Das Ereignis am Materialknoten ist in diesem Fall die Unterschreitung des Bestellpunktes. // Abbildung 5-32: Darstellung Bestellpunkt-Verfahren 5.2.2.3 Knotenorientierte Vorgehensweise Bei der knotenorientierten Vorgehensweise werden die einzelnen Knoten des Fertigungsgraphen oder eines Teilgraphen entsprechend einer durch ein Reihenfolgekriterium87 vorgegebenen Sequenz über dem gesamten Planungshorizont abgearbeitet. Diese Art des Vorgehens läßt sich weiter untergliedern respektive spezifizieren in vorgangs-, material- und fertigungsmittelorientierte Ablaufstrukturen. Eine knotenorientierte Vorgehensweise kann auch auf einer ereignisorientierten Ablaufstruktur basieren, allerdings ist das nur dann sinnvoll, wenn es je Knoten mehrere Ereignisse gibt. 5.2.2.3.1 Vorgangsorientierte Vorgehensweise Die vorgangsorientierte Ablaufstruktur stellt bestimmte Vorgänge in den Vordergrund und durchläuft von diesen ausgehend den gesamten Fertigungsgraphen oder einen Teilgraphen. Die Reihenfolge ist durch die vorgegebene Graphstruktur und die Ablaufrichtung oder eine spezielle Prioritätsregel (Ablaufbedingung) gegeben. In Abbildung 5-33 wird die Aufeinanderfolge durch die Rangstufe der Vorgänge verdeutlicht. Außerdem muß bezüglich des weiteren Vorgehens im zugrunde liegenden Modell festgelegt sein, ob von den einzelnen Vorgängen aus zuerst Bedarfe/Angebote an die Materialknoten und dann an die Fertigungsmittelknoten oder umgekehrt gemeldet werden. Diese Problematik wird im Rahmen der Funktionalität der Vorgänge bzw. Vorgangsknoten mit Hilfe von Prioritätsregeln gelöst. i (Arbeits-)Vorgang r Rangstufe 87. Dieses Kriterium wird häufig durch den Fertigungsplan bzw. Arbeitsplan festgelegt. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 149 i 1,1 3,1 2,1 1,2 r 1 2 3,2 3 Abbildung 5-33: Vorgangsorientierte Vorgehensweise In der Notation der Spezifikationssprache wird diese Ablaufstruktur mit Ablaufbedingung folgendermaßen dargestellt: Teilgraphspezifikation, vorgangsorientiert (Prioritätsregel) // Diese vorgangsorientierte Vorgehensweise kann z.B. auf einer zeit- oder einer ereignisorientierten Ablaufstruktur basieren. // 5.2.2.3.2 Materialorientierte Vorgehensweise Bei der materialorientierten Vorgehensweise erfolgt die Abarbeitung nach den eingesetzten Materialien im gesamten Fertigungsgraphen oder in Teilgraphen, die nach einem Reihenfolgekriterium (Ablaufbedingung) angeordnet sind. Bezüglich der in einen Vorgang eingehenden Materialien im Rahmen eines Strukturprototypen kann diese Reihenfolge z.B. auf einer Prioritätsregel der konkurrierenden Materialien beruhen. Das in Abbildung 5-34 dargestellte Beispiel zeigt einen Vorgang, der drei Materialien (A, B, C) benötigt, wobei es zu einem Material zwei Alternativen (A1, A2) gibt, die miteinander konkurrieren. In diesem Fall handelt es sich um eine materialorientierte Vorgehensweise auf einem Teilgraphen, der einem Strukturprototypen entspricht, oder um eine Materialorientierung, die auf einer vorgangsorientierten Abarbeitung eines Teilgraphen basiert. In der Spezifikationssprache stellt sich diese Vorgehensweise folgendermaßen dar: Teilgraphspezifikation, materialorientiert (Prioritätsregel) // Diese materialorientierte Vorgehensweise kann z.B. auf einer zeit-, ereignis- oder auch einer vorgangsorientierten Ablaufstruktur basieren. // i (Arbeits-)Vorgang p Material 150 Kapitel 5 p Material A1 i Material A2 Material B Material C Abbildung 5-34: Materialorientierte Vorgehensweise 5.2.2.3.3 Fertigungsmittelorientierte Vorgehensweise Ähnlich verhält es sich mit der fertigungsmittelorientierten Vorgehensweise, bei der hinsichtlich eines Reihenfolgekriteriums (Ablaufbedingung) das wichtigste (verfügbare) Fertigungsmittel im gesamten Fertigungsgraphen, einem Teilgraphen oder bezüglich eines Vorgangs gesucht wird. Eine derartige Ablaufstruktur ist z.B. dann sinnvoll, wenn ein Fertigungsmittel stets hoch ausgelastet sein soll, um so seine Anschaffungs- oder Betriebskosten (Fixkosten) zu amortisieren. Abbildung 5-35 zeigt einen Vorgang, der auf drei verschiedenen Maschinen durchgeführt werden kann. Die fertigungsmittelorientierte Vorgehensweise kann allerdings auch auf einen Teilgraphen oder alle Dispositionsebenen und somit auf den gesamten Fertigungsgraphen ausgeweitet werden. i (Arbeits-)Vorgang m Maschine (Fertigungsmittel) i Maschine 1 m Maschine 2 Maschine 3 Abbildung 5-35: Fertigungsmittelorientierte Vorgehensweise In der Spezifikationssprache ergibt sich folgende Darstellung dieser Vorgehensweise: Teilgraphspezifikation, fertigungsmittelorientiert (Prioritätsregel) // Diese fertigungsmittelorientierte Vorgehensweise kann z.B. auf einer zeit-, ereignis- oder auch einer vorgangsorientierten Ablaufstruktur basieren. // Entwicklung einer Spezifikationssprache für die Fertigungslenkung 151 5.2.2.4 Produktionsstrukturorientierte Vorgehensweise Die produktionsstrukturorientierte Vorgehensweise orientiert sich an Strukturkriterien der Fertigung, wie z.B. Dispositionsstufen, Fertigungsstufen, Auflösungsstufen oder Vorgänger-/ Nachfolgerbeziehungen. Alle diese Strukturkriterien sind direkt oder mit wenig Aufwand aus dem Fertigungsgraphen bzw. dem Prozeßmodell abzulesen. Außerdem kann diese Form der Abarbeitung in bestimmten Fällen einer material-, vorgangs- oder fertigungsmittelorientierten Vorgehensweise entsprechen. Für das Erstellen von Adjazenzmatrizen88 und das Durchlaufen von (zyklenfreien) Digraphen gibt es, wie zu Beginn dieses Abschnitts bereits erläutert, Standardalgorithmen, wie z.B. die topologische Sortierung oder den Markierungsalgorithmus. Abbildung 5-36 zeigt ein Teilmodell eines Fertigungsgraphen, das in seine einzelnen Prototypen untergliedert ist. Die Überlappung der Prototypen beruht auf der Schnittstellenfunktion der Fertigungselementknoten. Eine Nachfolgestruktur ergibt sich in diesem Graphen über die Verknüpfung der Knotengruppen (Prototypen) durch die Kanten. Insoweit entspricht diese Darstellung einem Netzplan89 (z.B. Vorgangsknotennetzplan), wobei jedoch zu bedenken ist, daß Netzpläne in erster Linie zur Struktur- und Zeit- bzw. Terminplanung sowie teilweise auch mit Erweiterungen zur Kostenund Kapazitätsplanung, nicht aber zur Mengenplanung eingesetzt werden können.90 Netzpläne gehen darüber hinaus immer von einer Fertigungselementmenge mit genau einem Element bzw. einem isolierten Auftrag aus. Somit wird jeder Vorgang im Rahmen der Netzplanrechnung nur genau einmal durchgeführt. Abbildung 5-36: Nachfolgestruktur Eine derartige Strukturierung erfolgt dementsprechend im ersten Konstrukt der Spezifikationssprache, das den betrachteten Teilgraphen, wie z.B. Dispositions- oder Fertigungsstufen, oder 88. Eine Adjazenzmatrix stellt die Nachfolgebeziehungen in einem Graphen in Form einer booleschen Matrix dar. 89. Vgl. Abschnitt 2.1.3 Klassifikation 90. Vgl. [DoDr95], S. 86 ff. und [DaWa97], S. 417 ff. 152 Kapitel 5 auch einen bestimmten Strukturprototypen angibt und einen Verweis auf das Modell der Fertigung beinhaltet. Letzterer trägt entscheidend zum Verständnis und zur Übersichtlichkeit der Darstellung bei. Eine produktionsstrukturorientierte Vorgehensweise nach Prototypen für die in Abbildung 5-36 dargestellte Struktur würde in der Spezifikationssprache folgendermaßen dargestellt: Gesamtgraph, produktionsstrukturorientiert Teilgraph (Strukturprototyp), Vorgehensweise beliebig Abbildung 5-37: Darstellung produktionsstrukturorientierter Ablauf 5.2.2.5 Auftragsorientierte Vorgehensweise Bei der auftragsorientierten Vorgehensweise erfolgt die Abarbeitung des Fertigungsgraphen nach Aufträgen, die entweder nach Prioritäten sortiert sind oder eine bestimmte Eigenschaft, wie z.B. bei der Bedarfsorientierten Auftragsfreigabe Dringlichkeit, besitzen. Aufträge, die diese Eigenschaft nicht besitzen bzw. Bedingung nicht erfüllen, werden nicht betrachtet. a Auftrag m Maschine (Fertigungsmittel a m1 m2 Abbildung 5-38: Auftragsorientierte Vorgehensweise Das in Abbildung 5-38 abgebildete Beispiel zeigt zwei Vorgänge in einer linearen Struktur mit jeweils einem Fertigungsmittel. Die Abarbeitung dieser Struktur erfolgt auftragsorientiert, wobei die Aufträge nach Prioritäten sortiert sind, und für jeden einzelnen dieser Aufträge dann fertigungsmittelorientiert. Abbildung 5-39 stellt die beschriebene Vorgehensweise in der Spezifikationssprache dar. Gesamtgraph, auftragsorientiert (Prioritätsregel) Teilgraph (Strukturprototyp), fertigungsmittelorientiert Abbildung 5-39: Darstellung auftragsorientierter Ablauf Entwicklung einer Spezifikationssprache für die Fertigungslenkung 153 5.2.2.6 Kombinierte Ablaufstrukturen Die beschriebenen Ablaufstrukturen können auf vielfältige Art und Weise miteinander kombiniert werden. In Abbildung 5-40 wird eine Kombinationsmöglichkeit aus materialorientierter und fertigungsmittelorientierter Vorgehensweise an einem Strukturprototypen dargestellt, wobei für jeden Vorgang des Fertigungsgraphen91 das Material vor den Fertigungsmitteln eingeplant wird. 1 2 Abbildung 5-40: Kombinierte Ablaufstruktur Ein ähnliches Vorgehen erfolgt bei der Freigabe eines Auftrags, nämlich erst die Überprüfung, ob genug Material vorhanden ist, und anschließend, ob genug Fertigungskapazität zur Verarbeitung des Materials verfügbar ist. Die Ablaufstruktur legt hierbei weiterhin fest, ob erst im gesamten Netz das Material eingeplant werden soll und dann mit der Einplanung der Fertigungsmittel begonnen wird, also ein sukzessives Vorgehen, oder ob diese Planungsreihenfolge sich auf einzelne Strukturprototypen bezieht. Gesamtgraph, produktionsstrukturorientiert, rückwärts Teilgraph (Strukturprototyp), materialorientiert (Prioritätsregel) Teilgraph (Strukturprototyp), fertigungsmittelorientiert (Prioritätsregel) Abbildung 5-41: Darstellung kombinierte Ablaufstrukturen Im in Abbildung 5-41 dargestellten Beispiel erfolgt für jeden Prototypen zuerst die Einplanung des Materials und im Anschluß daran die Einplanung der Fertigungsmittel. Diese Struktur kann aber auch genau in entgegengesetzter Abfolge durchlaufen werden. Im Falle eines sukzessiven, auf den Gesamtgraphen bezogenen Vorgehens ergeben sich in der Spezifikationssprache zwei getrennte Programme, die einzeln durchzuführen sind: Gesamtgraph, materialorientiert (Prioritätsregel), rückwärts Gesamtgraph, fertigungsmittelorientiert (Prioritätsregel), rückwärts 91. Insoweit liegt diesem Ablauf auch eine vorgangsorientierte Vorgehensweise zugrunde. 154 Kapitel 5 Die Ablaufstruktur der einzelnen Funktionen an den Knoten ist durch die zugrunde liegende Lenkungsstrategie, die z.B. auch festlegt, welche Knoten aktiv sind bzw. von welchen Knoten die Lenkung eines Prototypen ausgeht, und das Zeitmodell eindeutig vorgegeben. Auf diese Weise wird auch klargestellt, ob Restriktionen vor oder nach dem Zusammenfassen bzw. Aufteilen von Fertigungselementen beachtet werden müssen. In Abbildung 5-42 ist ein Beispiel für die Spezifikation einer einfachen zweistufigen Fertigung dargestellt. Der Fertigungsgraph läßt sich in zwei unterschiedliche Strukturprototypen (A und B) unterteilen, wobei noch eine weitere Gliederung in die Strukturprototypen A1 und A2 vorgenommen werden muß. Eine Reduktion auf einen Prototypen ist nicht möglich, da A1 und A2, wie im Nassi-ShneidermanDiagramm zu sehen, unterschiedliche Funktionalität besitzen. A1 B Gesamtgraph, zeitorientiert, vorwärts Teilgraph A, produktionsstrukturorientiert Teilgraph A1, FE-Zustand (Bestandsund Bedarfsrechnung), FV-Eintritt (Zusammenfassen; Prioritätsregel) Teilgraph A2, FE-Zustand (Bestandsund Bedarfsrechnung), FV-Eintritt (Zusammenfassen; Verhältnisregel) A2 Teilgraph B, ereignisorientiert, FE-Zustand (Bestandsrechnung), FV-Eintritt (Zusammenfassen; Verhältnisregel) Abbildung 5-42: Spezifikationsbeispiel 5.3 Implementierung der Spezifikationssprache Die in den vorhergehenden Abschnitten beschriebenen Funktionen und Abläufe der Fertigungslenkung werden hier nun in Algorithmen92, in einer an C++ angelehnten Notation implementiert, dargestellt. Diese Implementierungen sollen den Nutzern der Spezifikationssprache die Übertragung in eine ausführbare Programmiersprache erleichtern und gleichzeitig die Anwendbarkeit der Sprache verdeutlichen. Die Algorithmen bilden jedoch die Fertigungslenkung nicht vollständig ab; aufgrund der sich stets wandelnden Fertigungslenkungsstrategien und der Fülle an Spezialfällen kann in der vorliegenden Arbeit nur eine beispielhafte Implementierung gegeben werden. Allerdings beschreiben die dargestellten Beispiele die gebräuchlichsten Funktionen und Abläufe der Fertigungslenkung in algorithmischer Form. 92. Einerseits sind diese Algorithmen bereits vollständige und in sich abgeschlossene Methoden, andererseits aber auch nur Teile von Methoden, wie z.B. Schleifen. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 155 Die genannten Algorithmen können in einer Datenbank bzw. Methoden-Bibliothek hinterlegt werden, die durch ihre Gliederung die Auswahl relevanter Algorithmen unterstützt. Diese Datenbank soll auf ihrer obersten Strukturebene in die Bereiche Funktionen und Abläufe untergliedert sein. Weiterhin können die Algorithmen für Funktionen nach solchen an Fertigungselementknoten, an Fertigungsvorgangsknoten und allgemeine Funktionen strukturiert werden. Die Algorithmen beider Bereiche lassen sich beliebig miteinander kombinieren. Im folgenden werden nun zuerst die Implementierungen für die Funktionalität an den Knotenarten sowie für allgemeine Funktionen und anschließend für die Abläufe über dem Gesamtmodell bzw. den Teilmodellen dargestellt. Vor diesen Implementierungen müssen allerdings noch verschiedene Klassendefinitionen93 für Teilgraphen, Fertigungsobjekte, -elemente und -vorgänge sowie für Fertigungselement- und Fertigungsvorgangsknoten angegeben werden. In diesen werden wichtige Attribute, Stammund Bewegungsdaten des Modells der Fertigung, definiert, die entscheidenden Einfluß auf die Fertigungslenkungsfunktionen und -abläufe haben. Darüber hinaus beinhalten die Klassendefinitionen weitere Parameter zur Festlegung der Fertigungsstruktur sowie der dieser zugrunde liegenden Datenstruktur. Das Zeitmodell der Fertigungslenkung wird ebenfalls in den Klassendefinitionen festgelegt. Die genannten Attribute sind jedoch nur beispielhaft angeführt und sollen zum besseren Verständnis der folgenden Algorithmen dienen. Außerdem sind sie entscheidend abhängig von der im jeweiligen Implementierungsfall zugrunde liegenden Datenbank bzw. dem Datenmodell, welches in dieser Arbeit aus Gründen der Unabhängigkeit der Implementierung nicht näher spezifiziert werden soll. In den folgenden Klassendefinitionen stehen demzufolge die Parameter im Vordergrund, die von den Algorithmen für Funktionen und Abläufe benötigt werden. Deswegen sind die Klassendefinitionen nur als Beispiel und nicht als vollständige Darstellung zu verstehen. So beinhalten sie z.B. keine Methoden zur Erzeugung oder Vernichtung der einzelnen Klassen und ebenfalls keine Untergliederung in public, privat und protected Variablen und Methoden.94 Außerdem ist in den Klassendefinitionen nur eine mögliche aber nicht vollständige Auswahl von Attributen dargestellt, die noch entsprechend der speziellen Anforderungen an das jeweilige Fertigungsmodell erweitert werden kann.95 Daneben werden Basisklassen bzw. Wurzelklassen, wie z.B. Objekt als Wurzel aller verwendeten Klassen, Graph als Superklasse der Fer93. Klassen stellen ein wesentliches Element der Objektorientierung dar und repräsentieren das Konzept eines Objektes (vgl. [Schr92], S. 33). 94. Vgl. [Lip91], S. 39 ff. 156 Kapitel 5 tigungsgraphen oder Liste als Superklasse für Mengen, nicht näher spezifiziert. In der vorliegenden Arbeit geht es nicht darum, eine optimale Klassen- bzw. Datenstruktur für das Modell der Fertigung zu entwickeln, sondern eine möglichst klare und einfache respektive effiziente Implementierung der Funktionen und Abläufe zu finden, die leicht in andere Programmiersprachen übersetzt werden kann. Zur Definition einer optimalen Klassen- und Datenstruktur des Modells der Fertigung sei auf das objektorientierte Daten- und Funktionenmetamodell für die Modellierung von Fertigungslenkungssystemen in [Hol98], wo auch auf vordefinierte Basisklassen eingegangen wird, sowie das in [Schn96] und [DaGe95] definierte Modell der Fertigung, auf dem diese Metamodelle basieren, verwiesen. class Teilgraph : Graph { // Attribute Orientierungstyp Ablauforientierung // zeitorientiert, ereignisorientiert, knotenorientiert, produktionsstrukturorientiert oder auftragsorientiert Richtungstyp Ablaufrichtung // vorwärts oder rückwärts Planungstyp Planung // Ist oder Soll Steuerungstyp Steuerungsregel // auf den Teilgraphen anzuwendende Steuerungsregel, wie z.B. BOA oder Fortschrittszahlen. Dieses Attribut kann durch zusätzliche Teilattribute, wie z.B. Warteliste weiter spezifiziert werden. Zyklustyp Zeithorizont // Zeithorizont im Zeitmodell Zyklustyp Zeitabschnitt // Zeitabschnitt im Zeitmodell - Länge eines Planungszeitraums Zyklustyp Bestellzyklus // Zeitabschnitt im Zeitmodell - Länge eines Bestellzyklus unsigned int Rang // Rangstufe (Dispositionsstufe) des Teilgraphen // Methoden (mögliche Funktionalität des Teilgraphen) } Die Klasse Teilgraph beinhaltet spezielle Beschreibungsattribute, wie z.B. die Ablauforientierung, die Ablaufrichtung oder den Zeithorizont und den Zeitabschnitt, zur Repräsentation des zeitlichen Bezugs, da diese Attribute von Teilgraph zu Teilgraph unterschiedliche Ausprägun- 95. Überdies gibt es noch weitere Klassen, wie z.B. zur Modellierung des zeitlichen Bezugs, der Ereignisse sowie des Graphen, die hier nicht explizit angegeben sind. Diese Klassen liegen jedoch der Modelldatenbank zugrunde (vgl. [Hol98]). Entwicklung einer Spezifikationssprache für die Fertigungslenkung 157 gen besitzen können. Mit Hilfe von Methoden läßt sich außerdem auch auf Teilgraphen Funktionalität definieren. class Fertigungsauftrag : Objekt { // Attribute unsigned int Identifikation (Schlüssel) // Schlüssel char *Bezeichnung // Name time Start // Starttermin des Fertigungsauftrags time Ende // Endtermin des Fertigungsauftrags boolean ausführbar // das Attribut liefert TRUE, wenn der Auftrag auf allen Fertigungsmitteln bearbeitet werden kann (Probebelegung erfolgreich) Plantyp Arbeitsplan // Arbeitsplan des Fertigungsauftrags } Die Klasse Fertigungsauftrag besitzt Attribute für den Start- und den Endtermin, für den Status (ausführbar) und für den Arbeitsplan des Auftrags. Das Attribut Arbeitsplan ist ein komplexer Datentyp. Es beinhaltet die Vorgänge, die im Rahmen des Auftrags durchgeführt werden müssen, ihre Reihenfolge und teilweise auch die für sie benötigten Fertigungsmittel. class Fertigungsobjekt : Objekt { // Attribute unsigned int Identifikation (Schlüssel) // Schlüssel char *Bezeichnung // Name Fertigungsknoten Knoten // Fertigungsknoten, an dem sich das Fertigungsobjekt befindet } Die Klasse Fertigungsobjekt stellt die Oberklasse der im folgenden beschriebenen Klassen Fertigungselement und Fertigungsvorgang dar und vererbt an sie die Beschreibungsattribute Identifikation, Bezeichnung und Knoten. class Fertigungsobjektmenge : Liste // Die Klasse Fertigungsobjektmenge ist abgeleitet von der Wurzelklasse Liste und unterscheidet sich von ihr nur insoweit, daß die betrachteten Objekte Fertigungsobjekte sind. class Fertigungselement : Objekt 158 Kapitel 5 { // Attribute Zyklustyp Bestellzyklus // Art bzw. Häufigkeit der Bestellunga Punkttyp Bestellpunkt // Bestandsgrenze, bei deren Unterschreitung ein Lagerauftrag ausgelöst wird unsigned int Fixkosten/Rüstkosten // fixe Kosten pro Bestellvorgang bzw. Auflage eines Loses unsigned int Variable_Kosten // bestellmengen- (bzw. losgrößen-) abhängige Kosten pro Mengen- und Zeiteinheit, wie z.B. Lagerhaltungskosten unsigned int Gesamtbedarf // Gesamtbedarf im Planungszeitraum a. Die Attribute Bestellzyklus und Bestellpunkt sind zur näheren Beschreibung der Disposition des Fertigungselements gedacht. Wie im jeweiligen Programm vorgegangen wird, bestimmt die Ablauforientierung. } Die Attribute der Klasse Fertigungselement umfassen Objekt- und Zustandsbeschreibungen sowie zeitliche, qualitative und quantitative Eigenschaften des Elements. Neben den hier beispielhaft aufgeführten Attributen könnte das Fertigungselement noch durch weitere Beschreibungsattribute, wie z.B. Ausmaße, Farbe, Gewicht, Haltbarkeit und sonstige Charakteristika, beschrieben werden. Die Attribute Bestellzyklustyp und -punkt sind vorrangig bei einer verbrauchsorientierten Fertigung (Mengenplanung) zur Auswahl des Dispositionsprinzips von Interesse. class Fertigungselementmenge : Liste // Die Klasse Fertigungselementmenge ist ebenfalls abgeleitet von der Wurzelklasse Liste und unterscheidet sich von ihr nur insoweit, daß die betrachteten Objekte Fertigungselemente sind. class Fertigungsvorgang : Objekt { // Attribute } time Bearbeitungszeit // Vorgangsdauer time Anfang // Anfangszeitpunkt des Vorgangs time Ende // Endzeitpunkt des Vorgangs Fertigungselementmenge Material // Material, das für den Vorgang benötigt wird Fertigungselementmenge Ressourcen // Ressourcen, die für den Vorgang benötigt werden Fertigungsauftrag Auftrag // Fertigungsauftrag, in dessen Rahmen der Fertigungsvorgang durchgeführt wird Entwicklung einer Spezifikationssprache für die Fertigungslenkung 159 Die Klasse Fertigungsvorgang beinhaltet ebenso wie die Klasse Fertigungselement Attribute, welche die zeitlichen, qualitativen und quantitativen Eigenschaften der Vorgänge beschreiben. Die hier angeführte Klassenbeschreibung kann wiederum um zusätzliche Attribute, wie z.B. Rüstzeiten oder Vorwärmzeiten, ergänzt werden. class Fertigungsvorgangsmenge : Liste // Die Klasse Fertigungsvorgangsmenge ist ebenfalls abgeleitet von der Wurzelklasse Liste und unterscheidet sich von ihr nur insoweit, daß die betrachteten Objekte Fertigungsvorgänge sind. class Fertigungsknoten : Objekt { // Attribute unsigned int Identifikation (Schlüssel) // Schlüssel char *Bezeichnung // Name Prioritätstyp Prioritätsregel // anzuwendende Prioritätsregel, wie z.B. FIFO Verhältnistyp Verhältnisregel // anzuwendende Verhältnisregel, die das Verhältnis eintretender bzw. austretender Fertigungselemente zueinander bestimmt Fertigungsknotenmenge Vorgänger // für dieses Attribut ist eine Vorausdeklaration nötig Fertigungsknotenmenge Nachfolger // für dieses ebenfalls Teilgraph Graph // Teilgraph, in dem sich der Knoten befindet Fertigungsobjektmenge Eintritt // Eintretende Elemente Fertigungsobjektmenge Austritt // Austretende Elemente Fertigungselementmenge Bruttobedarf // Bruttobedarf am Knoten (vor der Bestandsrechnung) Fertigungselementmenge Nettobedarf // Nettobedarf am Knoten (Ergebnis der Bestandsrechnung) Fertigungsobjektmenge Warteliste // Warteliste im Falle des Eintritts bzw. Austritts zu Beginn bzw. Ende eines Zeitabschnitts boolean Priorität // das Attribut liefert TRUE, wenn eine Prioritätsregel vorhanden ist boolean Verhältnis // das Attribut liefert TRUE, wenn eine Verhältnisregel vorhanden ist } Fertigungsknoten besitzen neben den identifizierenden Attributen Verweise auf Ihre Vorgänger- und Nachfolgerknoten sowie den Teilgraphen, zu dem sie gehören. Daneben beinhalten sie Attribute für die Menge der ein- und austretenden Elemente wie auch den Brutto- und Nettobedarf. Das Attribut Warteliste repräsentiert eine Menge von Fertigungsobjekten, die, falls 160 Kapitel 5 der Fertigungsknoten ein oder mehrere Fertigungsmittel darstellt, vor diesen auf ihre Bearbeitung warten. Ob und welche Prioritäts- oder eine Verhältnisregel auf den Knoten anzuwenden ist, das bestimmen die Attribute Priorität, Prioritätsregel, Verhältnis und Verhältnisregel. class Fertigungsknotenmenge : Liste // Die Klasse Fertigungsknotenmenge ist ebenfalls abgeleitet von der Wurzelklasse Liste und unterscheidet sich nur insoweit von dieser, daß die betrachteten Objekte Fertigungsknoten sind. class Fertigungselementknoten : Fertigungsknoten { // Attribute Dispositionstyp Dispoprinzip // Dispositionsprinzipien Losgrößentyp Losgröße // Verfahren zur Losgrößenbestimmung unsigned int Sicherheitsbestand // Minimalrestriktion (Mindestbestand) unsigned int Maximalbestand // Maximalrestriktion (Höchstbestand) Zustandstyp Zustand // belegt, frei (frei beinhaltet hier auch den Zustand teilweise belegt, falls der Eintritt eines weiteren Fertigungselements möglich ist) Statustyp Status // aktiv, gestört, pausiert (Status des Fertigungsmittels) Fertigungselementmenge Bestand // im Fertigungselementknoten vorhandene Fertigungselemente boolean Los // das Attribut liefert TRUE, wenn die Fertigungselemente losweise verarbeitet werden und eine Bestimmung der optimalen Losgröße durchgeführt werden soll (d.h. implizit, daß der Bestellzyklus größer als der betrachtete Zeitabschnitt ist). // Methoden // Diese Methoden werden in Abschnitt 5.2.1.1 Funktionalität an Fertigungselementknoten näher spezifiziert. void fe-Eintritt // Eintrittsfunktion void fe-Austritt // Austrittsfunktion void fe-Zustand // Zustandsfunktion } Die Klasse Fertigungselementknoten umfaßt die spezifischen Attribute dieser Knotenart. Das Attribut Dispositionstyp ist insbesondere für Fertigungsmaterialknoten von Bedeutung und beinhaltet das in der Bestands- bzw. Bedarfsrechnung anzuwendende Dispositionsprinzip. Falls eine losweise Planung bzw. Verarbeitung vorgenommen wird, so legt der Losgrößentyp das Verfahren zur Losgrößenbestimmung fest. Attribute zur Bestimmung des Prioritäts- und Entwicklung einer Spezifikationssprache für die Fertigungslenkung 161 Verhältnistyps eines Vorgangs werden von der Oberklasse Fertigungsknoten vererbt. Weiterhin enthält die Klassendefinition Attribute vom Zustands- und Statustyp. Dabei bezieht sich der Zustand auf die Belegungssituation eines Fertigungselementknotens. Die Fertigungselemente, mit denen der Knoten derzeitig belegt ist, beinhaltet das Attribut Bestand. Der Status ist vor allem für Fertigungsmittel (-knoten) relevant und repräsentiert deren Gesamtzustand. Als Methoden an Fertigungselementknoten sind Eintritts-, Austritts- und Zustandsfunktionen definiert, die im folgenden genauer spezifiziert werden. class Fertigungsvorgangsknoten : Fertigungsknoten { // Attribute Transformationstyp Transformprinzip // Einzelplatz, parallele Fertigungsvorgänge, serielle Fertigungsvorgänge unsigned int Durchlaufzeit // Durchlaufzeit eines Fertigungsvorgangs unsigned int Taktzeit // Abstandszeit bei serieller Fertigung Fertigungsvorgangsmenge Vorgänge // Fertigungsvorgänge in Bearbeitung am Fertigungsvorgangsknoten Fertigungsknotenmenge Fertigungsmittel // Alle Fertigungsmittelknoten, die mit dem Fertigungsvorgangsknoten verknüpft sind.a // Methoden // Diese Methoden werden in Abschnitt 5.2.1.2 Funktionalität an Fertigungsvorgangsknoten näher spezifiziert. void fv-Eintritt // Eintrittsfunktion void fv-Austritt // Austrittsfunktion void fv-Zustand // Zustandsfunktion a. Auch wenn die Fertigungsmittelknoten schon durch die jeweiligen Vorgänge am Knoten festgelegt werden, werden sie zur Vereinfachung durch dieses Attribut noch einmal repräsentiert. } Die Klasse der Fertigungsvorgangsknoten beinhaltet desgleichen spezifische Attribute und zwar insbesondere vom Transformationstyp zur Festlegung der Transformationsprinzipien sowie das Attribut Taktzeit zur Bestimmung der Abstandszeit bei serieller Fertigung, das hier nur beispielhaft angegeben ist. Attribute zur Bestimmung des Prioritäts- und Verhältnistyps eines Vorgangs werden von der Oberklasse Fertigungsknoten vererbt. Der Status bzw. Zustand eines Vorgangs wird durch die Attribute des oder der mit diesem verknüpften Fertigungsmittel bestimmt. Das Attribut Fertigungsknotenmenge gibt die Fertigungsmittelknoten an, auf denen Vorgänge des Fertigungsvorgangsknotens ablaufen. Wie auch am Fertigungselementknoten sind am Fertigungsvorgangsknoten als Methoden Eintritts-, Austritts- und Zustandsfunktionen definiert, deren Beschreibung im Anschluß erfolgt. 162 Kapitel 5 Die Instanziierung der Klassen und damit die Belegung der Klassenattribute bzw. Parameter, soweit es Stammdaten betrifft, erfolgt im Modelleditor im Rahmen der Erstellung des Fertigungsmodells.96 Änderungen können aber im Nachhinein jederzeit mit Hilfe dieses Editors eingepflegt werden. Die Bewegungsdaten werden ebenfalls im Editor instanziiert. Im weiteren werden sie jedoch durch die verschiedenen Fertigungslenkungsfunktionen modifiziert. 5.3.1 Algorithmen für Funktionen Die Funktionen (Methoden) lassen sich untergliedern in Ein-, Austritts- und Zustandsfunktionen für Fertigungselement- und Fertigungsvorgangsknoten. Die genannten Funktionen sind allerdings, wie in Abschnitt 5.1 Syntax der Spezifikationssprache bereits erläutert, Makrofunktionen. Denn die Ein- und Austrittsfunktionen beinhalten die Teilfunktionen Zugang, Abgang, Zusammenfassen und Aufteilen und die Zustandsfunktionen die Teilfunktionen Disposition und Losgrößenberechnung. Ein-, Austritts- und Zustandsfunktionen besitzen abhängig von der jeweiligen Knotenart und ihren Attributen sowie dem zugrunde liegenden Zeitmodell und der Fertigungslenkungsstrategie verschiedene Ausprägungen. Die Aufgaben der einzelnen Funktionen werden im folgenden noch einmal kurz zusammengefaßt. Ein- und Austrittsfunktionen bestimmen ob der Ein- oder Austritt an einem Fertigungsknoten möglich ist und wie er zu erfolgen hat. Die Möglichkeit des Ein- oder Austritts wird von den Teilfunktionen Zugang und Abgang geprüft. Die Art des Ein- oder Austritts bzw. die Anzahl ein- oder austretender Fertigungsobjekte bestimmen die Teilfunktionen Zusammenfassen und Aufteilen. Der Algorithmus Zusammenfassen kombiniert entweder zeit- oder ereignisgesteuert in einen Fertigungsknoten eingehende Fertigungsobjekte entsprechend bestimmter Regeln.97 Diese Regeln können Prioritäts- oder Verhältnisregeln sein. Sie geben demnach entweder eine bestimmte Reihenfolge an, in der die Fertigungsobjekte zusammengefaßt oder ein vorgegebenes Verhältnis, nach dem die Fertigungsobjekte kombiniert werden müssen. Im Gegensatz dazu splittet der Algorithmus Aufteilen Fertigungsobjekte nach bestimmten Regeln auf Material-, Vorgangs- oder auch Fertigungsmittelknoten98 auf. Auch diese Regeln sind entweder Prioritäts- oder Verhältnisregeln, was in diesem Fall bedeutet, daß entweder nach einer 96. Vgl. Abschnitt 5.1 Syntax der Spezifikationssprache Die jeweilige Ablaufregel wird durch die Implementierung der Ablaufstruktur von den Algorithmen für Abläufe abgebildet. 98. Dieses ist z.B. dann der Fall, wenn ein Vorgang zur Bearbeitung ansteht und mehr als ein Fertigungsmittel unbelegt ist. 97. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 163 bestimmten Reihenfolge auf Fertigungsknoten aufgeteilt oder nach einem vorgegebenen Verhältnis auf diese gesplittet wird. Beim Zusammenfassen wie auch beim Aufteilen müssen die Restriktionen sowohl der Knoten, in welche die Fertigungsobjekte eingehen, als auch derer, von denen die Fertigungsobjekte ausgehen, miteinbezogen werden. Welche Restriktionen zu beachten sind, hängt außerdem davon ab, welche Knoten bzw. Knotenteile aktiv sind.99 Geht nur ein Fertigungsobjekt in einen Knoten ein oder von einem Knoten aus, so ist zwar keine Zusammenfassung- oder Aufteilungsfunktionalität nötig, aber es bedarf auf jeden Fall eines Abgleichs mit den Restriktionen der beteiligten Knoten. Zustandsfunktionen ermitteln an Material- und Fertigungsmittelknoten die Veränderung des Bestandes bzw. den neuen Bestand sowie die Bedarfe respektive Angebote an vor- oder nachgelagerte Stellen. Im Rahmen der Mengenplanung100 wird auf die Bestandsänderungen entsprechend eines vorgegebenen Dispositionsprinzips, wie z.B. einer Disposition basierend auf einem bestimmten Bestellrhythmus, reagiert. Der Bestellrhythmus wird dabei durch die Ablaufstrukturen spezifiziert. Außerdem ermitteln Zustandsfunktionen an Materialknoten unter bestimmten Voraussetzungen101 möglichst optimale Losgrößen für ausgehende Fertigungselemente oder Bestellosgrößen für eingehende Fertigungselemente. An Vorgangsknoten nehmen sie die Terminierung der Vorgänge entsprechend der jeweiligen Transformationsprinzipien102 oder einer einfachen Vorlaufzeitverschiebung basierend auf den vorgegebenen Bearbeitungszeiten vor. Die Attribute der Knoten geben Auskunft über die Stamm- und Bewegungsdaten, wie z.B. die Identifikation und Bezeichnung des Knotens, Restriktionen, Dispositions- und Transformationsprinzipien, den Status und den jeweiligen Zustand des Knotens. Ausmaße, Haltbarkeit und Durchlaufzeiten (Bearbeitungszeiten) von Fertigungsvorgängen an bestimmten Maschinen und weitere Spezifika werden, falls diese von den jeweiligen Elementen und nicht von Knoten bzw. Knotenklassen abhängig sind, in den Attributen dieser Fertigungsobjekte bestimmt. Die jeweilige Ablaufstruktur der Lenkung, wie z.B. Zeit- oder Ereignisorientierung, wird mit der Spezifikationssprache in den Ablaufkonstrukten festgelegt. Eine Detaillierung des Zeitmodells 99. Vgl. Abschnitt 5.2.1 Funktionalität an Modellelementen Vgl. Abschnitt 5.2.1.1.1 Attribute an Fertigungselementknoten 101. Eine Losgrößenberechnung hat, wie bereits vorher erläutert, nur dann Sinn, wenn der Bestellzyklus größer als der gewählte Zeitabschnitt ist und Rüstkosten sowie möglichst auch Lager- und Bestellkosten vorliegen. 102. Vgl. Abschnitt 5.2.1.2.1 Attribute an Fertigungsvorgangsknoten 100. 164 Kapitel 5 durch die Angabe der Zeitabschnittslänge, des Zeithorizonts, usw. erfolgt in den Attributen des Gesamtgraphen oder der einzelnen Teilgraphen. Funktionen fe -eintritt -zustand -austritt Zusammenfassung -eintritt -zustand -austritt fv Zustandsrechnung Aufteilung Abbildung 5-43: Funktionen an Fertigungsknoten Die Aktivität von Knoten oder Teilknoten, d.h. welche Funktionen an einem Knoten durchgeführt werden, so daß z.B. festgelegt wird, ob ein Knoten Bedarfe bei seinen Nachfolgerknoten direkt einträgt bzw. anmeldet oder diese sich bei ihren Vorgängerknoten nach Bedarfen erkundigen, wird durch die Spezifikationssprache nur implizit angegeben.103 Im Einzelfall wird anhand der im Programm verwendeten Funktionskonstrukte sowie der Darstellung im Graphen deutlich, welche Teilbereiche eines Knotens aktiv auf die Lenkung einwirken. Es schließen sich nun die Implementierungen der Funktionen an den Fertigungsknoten an. 5.3.1.1 Algorithmen für Funktionen an Fertigungselementknoten Die Funktionalität an Material- und Fertigungsmittelknoten ist weitestgehend identisch, es bestehen jedoch Unterschiede bezüglich der möglichen Knotenzustände.104 Darüber hinaus verhalten sich Fertigungsmittelknoten in den meisten Fällen passiv. Sie werden von den Funktionen der mit ihnen verknüpften Fertigungsvorgangsknoten gelenkt und besitzen deswegen häufig keine eigene Funktionalität. Zur Vereinfachung der algorithmischen Darstellung werden im folgenden Mengenoperationen als einfache arithmetische Operationen (Addition und Subtraktion) dargestellt. Dieses kann in C++ durch die Nutzung einer Klassenbibliothek mit bestimmten Makros ermöglicht werden. Außerdem wird eine spezielle for-Anweisung für Mengen genutzt, „for all (element in menge)“, die ebenfalls als Makro zur Verfügung gestellt werden muß. Da als Grundlage der Algorithmen nur eine beispielhafte Datenstruktur gewählt wurde, müssen bei Anwendung die- 103. 104. Vgl. Abschnitt 5.2.1 Funktionalität an Modellelementen Vgl. Abschnitt 5.2.1.1 Funktionalität an Fertigungselementknoten Entwicklung einer Spezifikationssprache für die Fertigungslenkung 165 ser Algorithmen, abhängig von der jeweils zugrunde liegenden Struktur bzw. dem als Basis fungierenden Datenmodell, Änderungen und teilweise auch Erweiterungen vorgenommen werden. Algorithmus Fertigungselementknoten-Eintritt void fe-eintritt (fertigungsknoten knoten) { if (knoten.teilgraph.ablaufrichtung == vorwärts) && (zugang(knoten) > 0) // Ablauf vorwärtsorientiert und Zugang möglich { knoten.eintritt = zusammenfassen(knoten, knoten.vorgänger); // Kombination der Nettoangebote der Vorgängerknoten zum resultierenden // Bruttoangebot } else { if (knoten.teilgraph.ablaufrichtung == rückwärts) && (zugang(knoten) > 0) // Ablauf rückwärtsorientiert und Zugang möglich { knoten.eintritt = zusammenfassen(knoten, knoten.nachfolger); / // Kombination der Bruttobedarfe der Nachfolgerknoten zum resultierenden // Bruttobedarf } } } Algorithmus Fertigungselementknoten-Austritt void fe-austritt (fertigungsknoten knoten) { if (knoten.teilgraph.ablaufrichtung == vorwärts) && (zugang(knoten.nachfolger) > 0) // Ablauf vorwärtsorientiert und Abgang möglich { knoten.austritt = aufteilen(knoten, knoten nachfolger); // Splittung der Nettoangebote auf die Nachfolgerknoten } // rückwärts else { if (knoten.teilgraph.ablaufrichtung == rückwärts) && (zugang(knoten.vorgänger) > 0) // Ablauf rückwärtsorientiert und Abgang möglich { knoten.austritt = aufteilen(knoten, knoten.vorgänger); // Splittung der Nettobedarfe auf die Vorgängerknoten 166 Kapitel 5 } } } Algorithmus Fertigungselementknoten-Zustand void fe-zustand (fertigungsknoten knoten) { if (knoten.teilgraph.ablaufrichtung == vorwärts) // Ablauf vorwärtsorientiert { if (knoten.teilgraph.planung == ist) // Ist-Planung (verbrauchsorientiert) { knoten.bestand = knoten.bestand + knoten.eintritt; // Bestimmung des Nettoangebots disposition(knoten); } else {knoten.bestand = knoten.bestand + knoten.eintritt - knoten.austritt} // Soll-Planung (bedarfsorieniert) if (knoten.los) // Bestimmung einer optimalen Losgröße für die Fertigungselemente dieses // Knotens (unabhängig von Ist- oder Soll-Planung) { knoten.austritt = losgröße(knoten); // Bestimmung der optimalen Losgröße } } else { // Ablauf rückwärtsorientiert if (knoten.teilgraph.planung == ist) // Ist-Planung (verbrauchsorientiert) { knoten.bestand = knoten.bestand - knoten.eintritt; // Bestimmung des Nettobedarfs disposition(knoten); // Bestandsrechnung nach Dispositionsprinzip } else {knoten.bestand = knoten.bestand - knoten.eintritt + knoten.austritt} // Soll-Planung (bedarfsorieniert) if (knoten.los) // Bestimmung einer optimalen Bestellosgröße für die Fertigungselemente dieses // Knotens (unabhängig von Ist- oder Soll-Planung) { Entwicklung einer Spezifikationssprache für die Fertigungslenkung 167 knoten.eintritt = losgröße(knoten); } } } 5.3.1.2 Algorithmen für Funktionen an Fertigungsvorgangsknoten Die Implementierung der Funktionen an Fertigungsvorgangsknoten unterscheidet sich von den Funktionen an Fertigungselementknoten durch die Terminierungsfunktionen sowie die zu berücksichtigenden Transformationsprinzipien im Rahmen der Zustandsverwaltung. Die Art der Transformationsprinzipien wird dadurch bestimmt, wie viele Fertigungsmittel für einen Vorgang zur Verfügung stehen. Entscheidend für die Zustandsfunktionen ist außerdem das Verhältnis der Durchlaufzeit eines Vorgangs zur Länge eines Zeitabschnitts. Algorithmus Fertigungsvorgangsknoten-Eintritt void fv-eintritt (fertigungsknoten knoten) { if (knoten.teilgraph.ablaufrichtung == vorwärts) && (zugang(knoten) > 0) // Ablauf vorwärtsorientiert und Zugang möglich (Abprüfung des Transformations// prinzips und des Verhältnisses der Durchlaufzeit zum Zeitabschnitt) { knoten.eintritt = zusammenfassen(knoten, knoten.vorgänger); // Kombination der Nettoangebote der Vorgängerknoten } else { if (knoten.teilgraph.ablaufrichtung == rückwärts) && (zugang(knoten) > 0) // Ablauf rückwärtsorientiert und Zugang möglich (Abprüfung des // Transformationsprinzips und des Verhältnisses der Durchlaufzeit zum // Zeitabschnitt) { knoten.eintritt = zusammenfassen(knoten, knoten.nachfolger); // Kombination der Nettobedarfe der Nachfolgerknoten } } } Algorithmus Fertigungsvorgangsknoten-Austritt void fv-austritt (fertigungsknoten knoten) { if (knoten.teilgraph.ablaufrichtung == vorwärts) && (zugang(knoten.nachfolger) > 0) // Ablauf vorwärtsorientiert und Zugang möglich (Abprüfung des Transformations// prinzips und des Verhältnisses der Durchlaufzeit zum Zeitabschnitt) 168 Kapitel 5 { knoten.austritt = aufteilen(knoten, knoten.nachfolger); // Splittung der Nettoangebote auf die Nachfolgerknoten (Bruttoangebote) } else { if (knoten.teilgraph.ablaufrichtung == rückwärts) && (zugang.vorgänger(knoten) > 0) // Ablauf rückwärtsorientiert und Zugang möglich (Abprüfung des // Transformationsprinzips und des Verhältnisses der Durchlaufzeit zum // Zeitabschnitt) { knoten.austritt = aufteilen(knoten, knoten.vorgänger); // Splittung der Austritte auf die Vorgängerknoten (Bruttobedarfe) } } } Algorithmus Fertigungsvorgangsknoten-Zustand void fv-zustand (fertigungsknoten knoten) { for all (vorgang in knoten.vorgangsmenge) do { if (knoten.transformprinzip == einzelplatz) || (knoten.transformprinzip == parallel) // Transformationsprinzipien „Einzelplatz“ oder „parallele Fertigungsvorgänge“ { if (knoten.teilgraph.ablaufrichtung == vorwärts) // Ablauf vorwärtsorientiert { vorgang.ende = vorgang.anfang + vorgang.bearbeitungszeit; } else { // Ablauf rückwärtsorientiert vorgang.anfang = vorgang.ende - vorgang.bearbeitungszeit; } } else { // Transformationsprinzip „serielle Fertigungsvorgänge“ if (knoten.teilgraph.ablaufrichtung == vorwärts) // Ablauf vorwärtsorientiert { if (vorgang.anfang + vorgang.bearbeitungszeit > vorgang.vorgänger.ende + knoten.taktzeit) { Entwicklung einer Spezifikationssprache für die Fertigungslenkung 169 vorgang.ende = vorgang.anfang + vorgang.bearbeitungszeit; } else { vorgang.ende = vorgang.vorgänger.ende + knoten.taktzeit; } } else { // Ablauf rückwärtsorientiert if (vorgang.ende - vorgang.bearbeitungszeit < vorgang.nachfolger.anfang - knoten.taktzeit) { vorgang.anfang = vorgang.ende - vorgang.bearbeitungszeit; } else { vorgang.anfang = vorgang.nachfolger.anfang - knoten.taktzeit; } } } } } 5.3.1.3 Algorithmen für allgemeine Funktionen In diesem Abschnitt werden Algorithmen für allgemeine Funktionen (Teilfunktionen), die sowohl von den Methoden für Funktionen an Fertigungselement- wie auch an Fertigungsvorgangsknoten genutzt werden, dargestellt. Die Zugangs- und die Abgangsfunktion prüfen, ob ein Zugang oder Abgang trotz der Restriktionen am jeweiligen Knoten möglich ist. Dabei wird unterschieden zwischen Zugängen und Abgängen an Fertigungselementknoten und an Fertigungsvorgangsknoten. Der Rückgabewert der Algorithmen ist die Anzahl der möglichen Zugänge bzw. Abgänge. Algorithmus Zugangsfunktion int zugang (fertigungsknotenmenge knotenmenge) { for all (knoten in knotenmenge) do { if (knoten == Fertigungselementknoten) && (knoten.status == aktiv) && (knoten.zustand == frei) // Status- und Zustandsrestriktionen abprüfen { zugang = knoten.maximalbestand - knoten.bestand; 170 Kapitel 5 } elseif (knoten == Fertigungsvorgangsknoten) { for all (fertigungsmittelknoten in knoten.fertigungsmittel) do // Zugangsrestriktionen an den verknüpften Fertigungsmittelknoten abprüfen (Status und Zustand) { if (zugang(fertigungsmittelknoten) > 0) { zugang = zugang + fertigungsmittelknoten.bestand; } } } } return zugang; } Algorithmus Abgangsfunktion int abgang(fertigungsknotenmenge knotenmenge) { for all (knoten in knotenmenge) do { if (knoten == Fertigungselementknoten) && (knoten.status == aktiv) && (knoten.zustand == belegt) // Status- und Zustandsrestriktionen abprüfen { abgang = knoten.bestand - knoten.minimalbestand; } elseif (knoten == Fertigungsvorgangsknoten) { abgang = 0; for all (fertigungsmittelknoten in knoten.fertigungsmittel) do / Abgangsrestriktionen an den verknüpften Fertigungsmittelknoten abprüfen (Status und Zustand) { if (fertigungsmittelknoten.status == aktiv) && (fertigungsmittelknoten.zustand == belegt) { abgang = 1; } } } return abgang; } Entwicklung einer Spezifikationssprache für die Fertigungslenkung 171 Der Algorithmus Zusammenfassen bestimmt unter Beachtung der Nachbarknoten, damit sind abhängig von der Ablaufreihenfolge Vorgänger oder Nachfolger gemeint, die Menge der Fertigungselemente, die in einen Knoten eintreten können. Im Gegensatz dazu ermittelt der Algorithmus der Aufteilungsfunktion ebenfalls unter Beachtung der Nachbarknoten die Menge der Fertigungselemente, die aus einem Knoten austreten können. Beim Zusammenfassen und Aufteilen ist zu berücksichtigen, daß Regeln zur Bestimmung der Reihenfolge nur dann eingesetzt werden, wenn sie nötig bzw. im Modell hinterlegt sind. Dieses ist z.B. der Fall, wenn mehrere Fertigungselemente gleichzeitig ein- oder austreten wollen. Bei Eintritt nur eines Elements erübrigt sich die Zusammenfassungsfunktionalität mit ihren Reihenfolgeregeln, allerdings müssen auch in diesem Fall die Restriktionen an Ein- und Ausgangsknoten beachtet werden. Im Falle einer zeitorientierten Vorgehensweise, die auf einem im Modell der Fertigung hinterlegten Zeitmodell beruht, bestimmt diese respektive die Zeitrestriktionen an den einzelnen Knoten, welche Fertigungselemente jeweils ein- bzw. austreten können. Bei einem ereignisorientierten Ablauf regeln die Ereignisse die Reihenfolge der einbzw. austretenden Fertigungselemente. Diese Ablauforientierungen werden durch die Algorithmen für Abläufe, die im nachfolgenden Kapitel dargestellt werden, genauer bestimmt. Verhältnisregeln, die allerdings vorrangig bei komplementären Kanten und somit bei Fertigungsvorgangsknoten auftreten, sind dagegen bei jedem Eintritt zu bedenken. Algorithmus Zusammenfassen fertigungselementmenge zusammenfassen(fertigungsknoten knoten, fertigungsknotenmenge nachbarknoten) { if (knoten.teilgraph.steuerungsregel.warteliste) // die Warteliste des vorhergehenden Zyklus soll übernommen werden {knoten.eintritt = knoten.eintritt + knoten.warteliste} if (nachbarknoten.priorität) // die Ausgangsknoten besitzen Prioritäten und Abgangsrestriktionen { for all (nachbar in nachbarknoten, sort nachbarknoten.prioritätsregel) do // for-Anweisung mit Sortierung nach Kriterium (Prioritätsregel) // Die Sortierung kann mit Standardalgorithmen, wie z.B. Bubble- oder Quicksort, // durchgeführt werden. { if (zugang(knoten) > 0) && (abgang(nachbar) > 0) // Eingangs- und Ausgangsrestriktionen 172 Kapitel 5 { knoten.eintritt = knoten.eintritt + nachbar.austritt.element; nachbar.austritt = nachbar.austritt - nachbar.austritt.element; } } elseif (knoten.priorität) // Eingangsknoten besitzt Prioritätsregeln { for all (element aus nachbarknoten.austritt, sort knoten.prioritätsregel) do // for-Anweisung mit Sortierung nach Kriterium (Prioritätsregel) { if (zugang(knoten) > 0) && (abgang(element.knoten) > 0) // Eingangs- und Ausgangsrestriktionen { knoten.eintritt = knoten.eintritt + element; element.knoten.austritt = element.knoten.austritt - element; } elseif (abgang(element.knoten) > 0) && (knoten.teilgraph.steuerungsregel.warteliste) { knoten.warteliste = knoten.warteliste + element; element.knoten.austritt = element.knoten.austritt - element; } } elseif (knoten.verhältnis) // Eingangsknoten besitzt Verhältnisregel { for all (elementmenge in nachbarknoten.austritt, sort knoten.verhältnisregel) do // for-Anweisung mit Sortierung nach Kriterium (Verhältnisregel) { if (zugang(knoten) > 0) && (abgang(elementmenge.knoten) > 0) { knoten.eintritt = knoten.eintritt + elementmenge; elementmenge.knoten.austritt = elementmenge.knoten.austritt - elementmenge; } } } elseif (knoten.teilgraph.steuerungsregel == BOA) { if (zugang(knoten) > 0) {knoten.nachfolger.auftrag.ausführbar = TRUE} Entwicklung einer Spezifikationssprache für die Fertigungslenkung 173 } } return knoten.eintritt; } Algorithmus Aufteilen fertigungselementmenge aufteilen (fertigungsknoten knoten, fertigungsknotenmenge nachbarknoten) { if (knoten.priorität) // Ausgangsknoten besitzt Prioritätsregeln { for all (element in knoten.austritt, sort knoten.prioritätsregel) do // for-Anweisung mit Sortierung nach Kriterium (Prioritätsregel) { if (zugang(nachbar) > 0) && (abgang(knoten) > 0) // Eingangs- und Ausgangsrestriktionen { knoten.austritt = knoten.austritt - element; nachbarknoten.knoten.eintritt = nachbarknotenknoten.eintritt + element; } } } else { if (knoten.verhältnis) // Eingangsknoten besitzt Verhältnisregel { for all (elementmenge in knoten.austritt, sort knoten.verhältnisregel) do // for-Anweisung mit Sortierung nach Kriterium (Verhältnisregel) { if (zugang(nachbarknoten) > 0) && (abgang(knoten) > 0) { nachbarknoten.eintritt = nachbarknoten.eintritt + elementmenge; knoten.austritt = knoten.austritt - elementmenge; } } } else { if (nachbarknoten.priorität) // die Eingangsknoten besitzen Prioritäten und Zugangsrestriktionen { 174 Kapitel 5 for all (nachbar in nachbarknoten, sort nachbarknoten.prioritätsregel) do // for-Anweisung mit Sortierung nach Kriterium (Prioritätsregel) { if (zugang(nachbar) > 0) && (abgang(knoten) > 0) // Eingangs- und Ausgangsrestriktionen { nachbar.eintritt = nachbar.eintritt + knoten.austritt.element; knoten.austritt = knoten.austritt + knoten.austritt.element; } } } return knoten.austritt } Der Algorithmus Disposition ermittelt abhängig von der Ablauforientierung (zeit- oder ereignisorientiert) und dem im Modell am Fertigungselementknoten hinterlegten Dispositionsprinzip den Nettobedarf des jeweiligen Knotens. Dabei unterscheidet er acht Dispositionsprinzipien. Dieser Algorithmus wird jedoch nur im Rahmen der verbrauchsorientierten Mengenplanung angewendet. Die Disposition bei bedarfsorientierter Mengenplanung erfolgt direkt im Algorithmus Fertigungselementknoten-Zustand. Algorithmus Disposition void disposition (fertigungsknoten knoten) // Die Ablauforientierung des jeweiligen Teilgraphen bestimmt das Dispositionsprinzip { if (knoten.teilgraph.ablauforientierung == zeitorientiert) // Ablauforientierung zeitorientiert, Bestellrhythmus { if (dispoprinzip == 1) { // Dispositionsprinzip 1: (T, PB) Anfordern des Bedarfs im Bestellzyklus, Anbieten // des Periodenzugangs zu vorgegebenen Zeitpunkten if (knoten.bestand < Sicherheitsbestand) {knoten.nettobedarf = knoten.bestand} } if (dispoprinzip == 2) { // Dispositionsprinzip 2: (T, S) Auffüllen auf den Maximalbestand/Entleeren auf // den Minimalbestand zu vorgegebenen Zeitpunkten knoten.nettobedarf = knoten.maxbestand - knoten.bestand; Entwicklung einer Spezifikationssprache für die Fertigungslenkung 175 } if (dispoprinzip == 3) { // Dispositionsprinzip 3: (T, q) Anfordern/Anbieten einer festen Losgröße zu // vorgegebenen Zeitpunkten knoten.nettobedarf = los; } if (dispoprinzip == 4) { // Dispositionsprinzip 4: (T, S, s) Auffüllen auf den Maximalbestand/Entleeren auf // den Minimalbestand zu vorgegebenen Zeitpunkten falls Mindestbestand // Maximalbestand erreicht if (knoten.bestand < knoten.mindestbestand) {knoten.nettobedarf = knoten.maxbestand - knoten.bestand} } if (dispoprinzip == 5) { // Dispositionsprinzip 5: (T, Q, s) Anfordern einer festen Losgröße zu // vorgegebenen Zeitpunkten falls Mindestbestand/Maximalbestand erreicht if (knoten.bestand < knoten.mindestbestand) {knoten.nettobedarf = los} } } else { if (knoten.teilgraph.ablauforientierung == ereignisorientiert) // Ablauforientierung ereignisorientiert, Bestellpunkt { if (dispoprinzip == 6) { // Dispositionsprinzip 6: (s,B) Anfordern des Bedarfs/Anbieten des // Bestands eines Zeitpunktes knoten.nettobedarf = knoten.bestand - knoten.bruttobedarf; } if (dispoprinzip == 7) { // Dispositionsprinzip 7: (s,S) Auffüllen auf den Maximalbestand/ // Entleeren auf den Minimalbestand bei Erreichen des // Mindesbestandes/Maximalbestandes (s, S) knoten.nettobedarf = knoten.maxbestand - knoten.bestand; } if (dispoprinzip == 8) { // Dispositionsprinzip 8: (s,Q) Anfordern einer festen Losgröße, falls // Mindestbestand/Maximalbestand erreicht knoten.nettobedarf = los; 176 Kapitel 5 } } } } Abhängig vom jeweiligen Losgrößenmodell/-verfahren können bei der Berechnung der optimalen Losgröße bzw. Bestellosgröße auch Kapazitäten mitberücksichtigt werden. Das Losgrößenmodell wird als Attribut am Fertigungselementknoten hinterlegt. Als Beispiel für ein Losgrößenverfahren wurde hier das Part-Period Verfahren105 gewählt, welches Kapazitäten nicht berücksichtigt. Für diese Berechnung sind weitere Attribute, wie z.B. Fixkosten oder variable Kosten eines Bestellvorgangs, an den jeweiligen Fertigungselementen nötig. Diese wurden in der Klassendefinition in Abschnitt 5.3 Implementierung der Spezifikationssprache bereits mit angeführt. Algorithmus Losgrößenberechnung fertigungselementmenge losgröße (knoten) // Der Algorithmus ist abhängig vom jeweils genutzten Losgrößenverfahren - hier als Beispiel das Part-Period Verfahren { if (knoten.losgrößentyp == Part-Period) // Im Attribut Losgrößentyp ist das jeweils zu nutzende Verfahren festgelegt { losgröße = elementmenge (knoten.elementmenge.fixkosten == knoten.elementmenge.variable_kosten) // Das Optimum ist näherungsweise dort, wo Lagerhaltungs- und Rüstkosten für // eine Losgröße gleich sind return losgröße } elseif (knoten.losgrößentyp == Gleitenden Bestellmengenrechnung) // Möglichkeit weiterer Losgrößenverfahren ... } 5.3.2 Algorithmen für Abläufe Es folgen die Implementierungen für die Ablaufstrukturen, wobei zu beachten ist, daß die Abfrage der jeweiligen Ablaufrichtung, nämlich vorwärts oder rückwärts, in den Algorithmen der Funktionen enthalten ist. Die Ablaufreihenfolgen, parallel und seriell, werden in der Spezifikationssprache durch Wiederholungs-Strukturblöcke im Nassi-Shneiderman-Diagramm 105. Vgl. Abschnitt 5.4.1 Mengenplanung Entwicklung einer Spezifikationssprache für die Fertigungslenkung 177 abgebildet. Die parallele Ausführung von Fertigungslenkungsfunktionen bedarf allerdings spezieller Algorithmen zur Parallelisierung der im vorherigen Abschnitt beschriebenen Funktionen. Eine nähere Beschäftigung mit den genannten Algorithmen geht jedoch über das Ziel der vorliegenden Arbeit hinaus, so daß auf diese Problematik hier nicht näher eingegangen werden kann. Demzufolge wird hier nur die Implementierung der Ablauforientierungen: • zeitorientiert, • ereignisorientiert, • knotenorientiert, • produktionsstrukturorientiert und • auftragsorientiert dargestellt. Diese Abläufe stellen implementiert einfache bedingte Schleifen dar. Ihre Unterschiede liegen in den verschiedenen Bedingungen, die sich an der Zeit, Ereignissen, Materialien, Vorgängen, Fertigungsmitteln oder auch der Produktionsstruktur orientieren. Diese Bedingungen sind im Modell der Fertigung bzw. den Attributen der Modellelemente hinterlegt, wie z.B. eine genauere Bestimmung des zugrunde liegenden Zeitmodells durch die Angabe der Länge der verwendeten Zeitabschnitte (in der Klasse Teilgraph). Die Spezifikationssprache legt fest, welche Vorgehensweise auf welchem Teil des Fertigungsmodells angewendet werden soll. 5.3.2.1 Algorithmus für zeitorientierte Abläufe Die zeitorientierte Ablaufstruktur bedingt eine Vorgehensweise entsprechend der vom Zeitmodell bzw. im Modell der Fertigung vorgegebenen Zeitpunkte oder -abschnitte, die nacheinander abgearbeitet werden. Algorithmus für Ablauf zeitorientiert for all (zeitabschnitt in graph.zeithorizont) do // Ablaufpriorisierung zeitorientiert - zeitabschnittsweise { // Planungen in diesem Zeitabschnitt vornehmen } 5.3.2.2 Algorithmus für ereignisorientierte Abläufe Bei der ereignisorientierten Vorgehensweise wird z.B. nach dem nächsten Ereignis in einem Zeithorizont oder einer Ereignisliste vorgegangen. Ein ereignisorientierter Ablauf kann aber auch nach dem in Bezug auf eine bestimmte Regel (Bedingung) wichtigsten Ereignis innerhalb 178 Kapitel 5 eines Zeitabschnitts, dessen Länge vom Zeitmodell vorgegeben ist, erfolgen. Die folgenden drei Algorithmen geben unterschiedliche Arten der Ereignisorientierung wieder. Algorithmen Ablauf ereignisorientiert for all (ereignis in graph.zeithorizont) do // Ereignisorientierung basierend auf einem Zeithorizont { // Ereignisse einplanen } for all (ereignis in graph.ereignisliste) do // Ereignisorientierung basierend auf einer Ereignisliste { // Ereignisse einplanen } for all (ereignis aus graph.ereignismenge, sort graph.ereignismenge.priorität) do // Ereignisorientierung nach wichtigstem Ereignis in Ereignismenge { // Ereignisse nach Priorität sortiert einplanen } 5.3.2.3 Algorithmen für knotenorientierte Abläufe Die knotenorientierte Ablaufstruktur orientiert sich an einer der drei Knotenarten und arbeitet diese nach einer bestimmten Reihenfolge basierend auf Prioritätsregeln über dem Gesamtgraphen oder einem Teilgraphen ab. Algorithmus Ablauf vorgangsorientiert for all (vorgang in graph.vorgangsmenge, sort graph.vorgangsmenge.priorität) do // Vorgangsorientierung über dem Gesamtgraphen { // Vorgangsplanungen/-steuerungen durchführen } Algorithmus Ablauf materialorientiert for all (material in graph.teilgraph.materialmenge, sort graph.teilgraph.materialmenge.priorität) do // Material nach Prioritätsregel auf Teilgraphen sortieren { // Materialplanungen/-steuerungen durchführen Entwicklung einer Spezifikationssprache für die Fertigungslenkung 179 } Algorithmus Ablauf fertigungsmittelorientiert for all (fertigungsmittel in graph.rang.fertigungsmittelmenge, sort graph.rang.fertigungsmittelmenge.priorität) do // Fertigungsmittel nach Prioritätsregel auf Dispositionsebene/Rang sortiert { // Fertigungsmittelplanungen/-steuerungen durchführen } 5.3.2.4 Algorithmus für produktionsstrukturorientierte Abläufe Im Fall eines produktionsstrukturorientierten Ablaufs gibt der Fertigungsgraph die Struktur vor, nach der vorgegangen wird. Beispielsweise kann ein produktionsstrukturorientierter Ablauf darin bestehen, daß die Vorgangsknoten rangweise eingeplant werden. Algorithmus Ablauf produktionsstrukturorientiert for all (fertigungsvorgangsknoten in graph.fertigungsvorgangsknotenmenge, sort graph.struktur) do // Ablaufpriorisierung produktionsstrukturorientiert - Vorgehen nach Rängen { // Planungen am Vorgangsknoten vornehmen } 5.3.2.5 Algorithmus für auftragsorientierte Abläufe Auftragsorientierte Abläufe orientierten sich an einer bestimmten Reihenfolgeregel in Bezug auf die Gesamtmenge der Aufträge. Eine derartige Regel legt z.B. ein Vorgehen nach der Dringlichkeit der Aufträge, wie es im Rahmen von BOA durchgeführt wird, fest. Algorithmus Ablauf auftragsorientiert for all (fertigungsauftrag in graph.fertigungsauftragsmenge sort fertigungsauftrag.start) do // Ablaufpriorisierung auftragsorientiert - Vorgehen nach dringlichen Aufträgen { // Planung der Aufträge bzw. freigegebener Vorgänge dieser Aufträge vornehmen } 5.3.2.6 Algorithmus für kombinierte Abläufe Im Normalfall liegen in einem Fertigungslenkungssystem kombinierte Ablaufstrukturen vor, wobei in den meisten Fällen auf oberster Ablaufstrukturebene zeit-, ereignis- oder produkti- 180 Kapitel 5 onsstrukturorientiert vorgegangen wird. Darunter ist eine beliebige Verschachtelung bis zu einzelnen Knoten möglich. Algorithmus Ablauf kombiniert for all (zeitabschnitt in graph.zeithorizont) do // Ablaufpriorisierung zeitorientiert { for all (vorgangsknoten in graph.fertigungsvorgangsknotenmenge) do { for all (material in vorgangsknoten.vorgänger.fertigungselementmenge, sort vorgangsknoten.vorgänger.priorität) do { // Materialeinplanungen (z.B. nach Prioritäten oder Verhältnis) } for all (fertigungsmittel in vorgangsknoten.vorgänger.fertigungselementmenge sort vorgangsknoten.vorgänger.priorität) do { // Fertigungsmitteleinplanungen (z.B. nach Prioritäten) } } 5.4 Anwendungsbeispiele für die Spezifikationssprache Die folgenden Anwendungsbeispiele für die Klassifikation und die Spezifikationssprache stellen Standardverfahren der Fertigungslenkung dar. Sie untergliedern sich in einfache und auf einen Planungsbereich, wie z.B. die Mengenplanung oder die Zeitplanung, begrenzte Verfahren sowie komplexere Verfahren, die mehrere Planungsbereiche umfassen. Letztere folgen entweder dem Sukzessivplanungskonzept106 oder gehören zur Gruppe der „neueren Ansätze“107, die den Mängeln des genannten Konzeptes z.B. mit simultanem Vorgehen begegnen. Mit den hier dargestellten Beispielen, speziell den umfassenderen Verfahren, kann die Mehrheit aller Fertigungslenkungsprobleme gelöst werden. Sie sollen an dieser Stelle als exemplarischer Nachweis der Sinnhaftigkeit und Praktikabilität der entwickelten Klassifikation und Spezifikationssprache dienen. Eine Klassifikation wird im folgenden allerdings nur bei den komplexeren Verfahren vorgenommen, da sie in den anderen Fällen aufgrund der unkomplizierten Struktur als Vorbereitung 106. 107. Vgl. Abschnitt 3.1 Klassifikationen für die Fertigungslenkung Vgl. [Cor98], S. 508 und [DSV93], S. 20 Entwicklung einer Spezifikationssprache für die Fertigungslenkung 181 bzw. Basis für die Spezifikationssprache nicht zwingend erforderlich ist. Der Fertigungsgraph wird bei den einfachen Verfahren explizit angegeben. Außerdem wird in einigen Fällen eine Implementierung der Verfahren in an C++ angelehnter Notation gegeben. Bei den komplexeren Verfahren dagegen wird der Fertigungsgraph im Rahmen der Klassifikation und nicht noch einmal speziell für die Spezifikationssprache dargestellt. Zu Beginn der Ausführungen steht jeweils eine kurze informale Beschreibung des betrachteten Verfahrens. Die Beispiele für einfache Verfahren sind entsprechend des in der Praxis in den meisten Fällen noch vorherrschenden Sukzessivplanungskonzeptes in die Teilbereiche bzw. -aufgaben, Mengen-, Zeit- und Kapazitätsplanung, gegliedert. Im Anschluß daran werden beispielhaft die komplexeren Verfahren dargestellt. 5.4.1 Mengenplanung In der Mengenplanung werden Aufträge über Erzeugnisse und davon abgeleitete Materialien an die Fertigung und den Einkauf weitergeleitet. Diese Aufträge enthalten Informationen über die erforderlichen Zeitpunkte und Mengen. Sie tragen damit zur Erfüllung des Fertigungsprogramms bei. Eine Einplanung der Materialien auf den einzelnen Fertigungsmitteln wird dabei nicht vorgenommen.108 Die Grundfunktionalität der Mengenplanung wird durch die in Abschnitt 5.3.1 Algorithmen für Funktionen dargestellten Algorithmen zur Zustandsbestimmung, Disposition und Losgrößenberechnung am Fertigungselementknoten gebildet. Allerdings kann diese Funktionalität noch um weitere Zusatzfunktionen für Spezialfälle erweitert werden. Als Beispiel des Zusammenfassens von Bedarfen zu Losen soll hier näher auf das Part-Period Verfahren (Stück-Perioden-Ausgleich) eingegangen werden. Dieses ist ein spezielles Verfahren der Los- bzw. Bestellosgrößenberechnung. Es geht von der Eigenschaft des klassischen Bestellmengenmodells von Andler aus, die besagt, daß im Optimum die Lagerhaltungskosten und die bestellfixen Kosten gerade gleich sind.109 Diese Eigenschaft wird auf eine diskrete Betrachtungsweise mit einzelnen Periodenbedarfen bezogen. Darauf aufbauend erfolgt die Bestellung der im Fertigungsprozeß benötigten Materialien. Die Vorgehensstruktur wird durch das Modell der Fertigung und das in ihm festgelegte Zeitmodell vorgegeben. Der folgende Algorithmus nutzt den im vorherigen Abschnitt beschriebenen Algorithmus Fertigungselementknoten-Zustand und wendet diesen mit einem zeitabschnittsweisen Vorgehen auf den 108. 109. Vgl. [DaWa97], S. 257 ff. Vgl. [Kur83], S. 69 f. und [DaWa97], S. 353 f. 182 Kapitel 5 gesamten Fertigungsgraphen respektive alle Materialknoten an. Dabei muß im Rahmen der Modellerstellung in den Fertigungselementknoten das Attribut Losgrößentyp mit dem Losgrößenverfahren Part-Period belegt worden sein. Algorithmus Part-Period Verfahren for all (zeitabschnitt in graph.zeithorizont) do // Ablaufpriorisierung zeitorientiert { for all (materialknoten in graph.materialknotenmenge) do // für alle Materialknoten im Fertigungsgraphen { fe-zustand(materialknoten); // Durchführung der Zustandsfunktionen am Materialknoten. Hier speziell: // Berechne optimale Losgröße für diese Knoten (Produktionslosgröße) // mit dem Algorithmus Losgrößenberechnung } } 5.4.2 Terminplanung In der Terminplanung werden die Anfangs- und Endtermine der einzelnen Vorgänge einer Gesamtaufgabe ermittelt. Dieses kann sowohl mit einer Vorwärtsterminierung als auch einer Rückwärtsterminierung erfolgen. Im Rahmen der Rückwärtsterminierung wird über eine Durchlaufterminierung der terminierte Bedarf an Zwischenprodukten (Baugruppen, Teile) und Einsatzmaterialien (Rohstoffe, Zukaufteile) ausgehend von Mengen und Terminen der Endprodukte errechnet. Die Vorwärtsterminierung dagegen geht von den zur Verfügung stehenden Einsatzmaterialien aus und berechnet über eine Durchlaufterminierung den terminierten Bedarf an Zwischenprodukten und letztendlich die Fertigstellungstermine der Endprodukte. Die Flexibilität der Planung ergibt sich durch das Einführen von Terminierungspuffern, die den Vorlaufzeiten überlagert werden. 5.4.2.1 Durchlaufterminierung Die Durchlaufterminierung ist gleichzusetzen mit der Zeitplanung in der Netzplantechnik.110 Dabei ist jedoch zu berücksichtigen, daß in der Netzplantechnik immer von der Produktionsmenge 1 ausgegangen wird. Der Fertigungsgraph wird im Rahmen der Durchlaufterminierung entsprechend seiner Reihenfolge (Rangstufen bzw. Dispositionsstufen) entweder vorwärts oder 110. Vgl. Abschnitt 5.2.2.4 Produktionsstrukturorientierte Vorgehensweise Entwicklung einer Spezifikationssprache für die Fertigungslenkung 183 rückwärts abgearbeitet. Bei vorwärtsorientierter Vorgehensweise werden die frühesten und bei rückwärtsorientierter die spätesten Anfangs- und Endtermine berechnet. Die Rangfolge der Vorgänge (Vorgänger-/Nachfolgerstrukturen) wird vorher mittels eines Algorithmus, wie er in Abschnitt 5.2.2 Ablaufstrukturen beispielhaft dargestellt wurde, ermittelt. 0 1 2 3 Abbildung 5-44: Netzplan mit Fertigungsvorgängen nach Rängen sortiert 5.4.2.1.1 Vorwärtsrechnung bei bekanntem Rang Die vorwärtsorientierte Terminplanung unter der Voraussetzung, daß der Rang der einzelnen Vorgänge bekannt ist, was für die Spezifikationssprache aufgrund des zugrunde liegenden Modells der Fertigung gewährleistet ist, wird im folgenden sowohl mit der Bedarfsmenge 1 als auch der Bedarfsmenge n in der Spezifikationssprache und als Algorithmus in C++ ähnlicher Notation dargestellt. Analytisch verbessernde Terminplanung mit Bedarfsmenge 1 Dieser Sonderfall eines Fertigungsgraphen, bei dem genau ein Vorgang pro Vorgangsknoten durchgeführt wird, entspricht einem Netzplan. Die Vorwärtsterminierung auf diesem Graphen erfolgt, indem die Vorgängervorgänge Endtermine zu ihren Nachfolgervorgängen schreiben. Von diesen Endterminen werden dann jeweils die spätesten als Startzeitpunkte für die Nachfolgervorgänge ausgewählt. Darstellung in der Spezifikationssprache: Gesamtgraph, produktionsstrukturorientiert, vorwärts Teilgraph (Dispositionsebenen), vorgangsorientiert, fv-Zustand (Terminierung) Abbildung 5-45: Struktogramm Terminplanung vorwärts Der Ablauf erfolgt produktionsstrukturorientiert nach Rangstufen, wobei auf den einzelnen Dispositionsebenen vorgangsorientiert ohne spezielle Prioritätsregel (z.B. alphabetisch) vorgegangen wird. Das anzuwendende Transformationsprinzip wird als Attribut der Fertigungsvor- 184 Kapitel 5 gangsknoten im Modell der Fertigung hinterlegt. Vor der Durchführung der Terminberechnung müssen die diesbezüglichen Attribute an den Vorgangsknoten initialisiert werden. Algorithmus Terminplanung vorwärts mit Bedarfsmenge 1 for all (vorgang in graph.vorgangsmenge) do // Initialisierung der Vorgangsattribute { vorgang.anfang = 0; } for (rang = 1; rang <= graph.maxrang; ++rang) do // Ablaufpriorisierung produktionsstrukturorientiert { for all (knoten in graph.fertigungsvorgangsknotenmenge) do { if (knoten.teilgraph.rang == rang) { fv-zustand(knoten); // Durchführung der Zustandsfunktion am Vorgangsknoten - Terminierung // (Die Ablaufrichtung wird in der Zustandsfunktion abgeprüft). } } } Analytisch verbessernde Terminplanung mit Bedarfsmenge n Dieser allgemeinere Fall der Terminplanung, bei dem von n Vorgängen pro Fertigungsvorgangsknoten ausgegangen wird, entspricht der Durchlaufterminierung in MRP. Die Anzahl der Vorgänge pro Vorgangsknoten wird vorher in der Mengenplanung über eine Stücklistenauflösung oder Bedarfsrechnung und die Bestandsrechnung festgelegt. Weiterhin ist zu beachten, daß alle n Vorgänge an einem Knoten in einem bestimmten Zeitabschnitt denselben Anfangsund Endtermin besitzen (Anfang und Ende des Zeitabschnitts). vorwärts rückwärts 1 2 0 4 3 0 1 2 3 Abbildung 5-46: Fertigungsgraph mit Bedarfsmengen > 1 Entwicklung einer Spezifikationssprache für die Fertigungslenkung 185 Die Darstellung dieses Programms in der Spezifikationssprache sowie die Abbildung in der C++ ähnlichen Notation unterscheiden sich nicht von dem vorher dargestellten Fall mit der Bedarfsmenge 1. Die Unterschiede sind im Modell bzw. den Attributen sowie in der Implementierung der Funktionen verankert und werden nicht explizit im Programm angegeben. Die genaue Anzahl der Vorgänge wird in der Zustandsfunktion im Rahmen der Terminberechnung berücksichtigt. 5.4.2.1.2 Rückwärtsrechnung bei bekanntem Rang Dieselben Terminierungsverfahren können auch rückwärtsorientiert durchgeführt werden, wobei vom Fertigstellungstermin des Endproduktes ausgegangen wird. Die Nachfolgervorgänge schreiben in diesem Fall Startzeitpunkte zu den jeweiligen Vorgängervorgängen, wovon der früheste als Endzeitpunkt gewählt wird. Darstellung in der Spezifikationssprache: Gesamtgraph, produktionsstrukturorientiert, rückwärts Teilgraph (Dispositionsebenen), vorgangsorientiert, fv-Zustand (Terminierung) Abbildung 5-47: Struktogramm Terminplanung rückwärts Da die Unterscheidung zwischen Vorwärts- und Rückwärtsorientierung im Algorithmus Fertigungsvorgangsknoten-Zustand vorgenommen wird, ändert sich an der Darstellung in der C++ ähnlichen Notation gegenüber der Vorwärtsrechnung nichts. Bei einer Mittelpunktsterminierung, wie sie z.B. im Fertigungssteuerungsverfahren OPT (Optimized Production Technology) Anwendung findet, erfolgt die Terminrechnung sowohl vorwärts- als auch rückwärtsgerichtet, dabei wird von Engpässen in der Fertigung ausgegangen, die im vorhinein bestimmt werden müssen.111 In diesem Fall müssen die dargestellten Programme jeweils für beide Orientierungen einzeln durchgeführt werden. 5.4.3 Termin- und Mengenplanung Im Sukzessivplanungskonzept bildet die Mengenplanung die Grundlage der Terminplanung und bestimmt über die Menge der herzustellenden Güter die Zahl der durchzuführenden Vor111. Vgl. Abschnitt 5.4.5.3 Engpaßorientiertes Fertigungssteuerungsverfahren (OPT) 186 Kapitel 5 gänge. Für diese findet anschließend im Rahmen der Terminplanung eine Durchlaufterminierung ohne Berücksichtigung der Kapazitäten statt. Analytisch verbessernde Terminplanung mit Bedarfsplanung Dieser zweite rückwärtsorientierte Algorithmus geht von n Vorgängen pro Vorgangsknoten aus. Desweiteren umfaßt er neben der Terminierung auch die Bestandsrechnung bezüglich der jeweils ermittelten Bedarfsmengen. Die Bestandsrechnung kalkuliert aufgrund der Primärbedarfe respektive Bruttobedarfe und der Bestände die Nettobedarfe an den einzelnen Vorgängen. Die Darstellung dieses Programms in der Spezifikationssprache sowie die Abbildung in der C++ ähnlichen Notation differieren von denen im vorherigen Abschnitt beschriebenen nur insoweit, daß neben den Zustandsfunktionen an den Fertigungsvorgängen (Terminierung) auch die Zustandsfunktionen an den Fertigungselementen (Bestands-/Bedarfsrechnung) ausgeführt werden. Darstellung in der Spezifikationssprache: Gesamtgraph, produktionsstrukturorientiert, rückwärts Teilgraph (Dispositionsebenen), vorgangsorientiert, fe-Zustand (Bestands-/Bedarfsrechnung), fv-Zustand (Terminierung) Abbildung 5-48: Struktogramm Mengen- und Terminplanung rückwärts Algorithmus Terminplanung mit Bedarfsplanung for all (vorgang in graph.vorgangsknotenmenge) do // Initialisierung der Vorgangsattribute { vorgang.anfang = 0; } for (rang = grap.maxrang; rang > 1; --rang) do // Ablaufpriorisierung produktionsstrukturorientiert { for all (teilgraph in graph.teilgraph.menge) do { if (teilgraph.rang == rang) { fe-zustand(teilgraph.fertigungselementknoten) // Ermittlung der Nettobedarfe aufgrund der Bruttobedarfe und Bestände fv-zustand(teilgraph.fertigungsvorgangsknoten) Entwicklung einer Spezifikationssprache für die Fertigungslenkung 187 // Rückwärtsterminierung der Vorgänge } } } 1 0 2 3 Abbildung 5-49: Fertigungsgraph mit Kapazitäten 5.4.4 Kapazitätsplanung Die Kapazitätsplanung beinhaltet Anpassungsmaßnahmen an bestimmte Kapazitätsbelastungen bzw. Kapazitätsrestriktionen der Fertigungsmittel und Arbeitsgänge, die als Ergebnis der Durchlaufterminierung auftreten. Kapazitätsabstimmungen bzw. -abgleiche setzen sich aus der Anpassung des Kapazitätsbedarfs und des Kapazitätsangebots zusammen. Dabei erfolgt eine Gegenüberstellung des Kapazitätsbedarfs jeder Anlage mit der voraussichtlichen Istkapazität. Bei Überlast werden korrigierende Maßnahmen ergriffen, wie z.B. Überstunden oder Kurzarbeit, die das Kapazitätsangebots verändern, oder auch zeitliche Verschiebungen und Splittung von Aufträgen, die den Kapazitätsbedarf beeinflussen. Dieses sind die Grundlagen für die Auftragsfreigabe, die neben der Materialverfügbarkeit als wichtiges Kriterium auch auf der Verfügbarkeit der Ressourcen beruht. Daneben werden zur Bestimmung der Freigabereihenfolge noch weitere Kriterien herangezogen, die im Anschluß erläutert werden.112 Die folgenden Anwendungsbeispiele haben als Ausgangspunkt die Freigabe von Aufträgen an Fertigungsmitteln. Um den Graphen fertigungsmittelorientiert abzuarbeiten, müssen die Aufträge vorher in eine Struktur gebracht werden. Dabei wird zwischen zeit- und ereignisorientierter Freigabe unterschieden. Zu beiden Fällen werden hier nun Algorithmen dargestellt. 5.4.4.1 Zeitorientierte Auftragsfreigabe Die zeitorientierte Freigabe erfolgt z.B. immer zu Beginn eines (Produktions-)Zyklus. In ihr wird anhand der Länge des bzw. der betrachteten Zeitabschnitte und der Bearbeitungszeit der 112. Vgl. [Scho98], S. 165 f. 188 Kapitel 5 Aufträge (Vorgänge) zwischen summarischen113 und Reihenfolgeverfahren114 unterschieden. Summarische Verfahren werden dann eingesetzt, wenn die Zeitdauern der Fertigungsvorgänge kleiner als die der Zeitabschnitte sind. Diese Verfahren werden in der Praxis häufig als „Freigabe-Verfahren“ bezeichnet. In ihnen wird der jeweilige Zeitabschnitt bestmöglich mit Fertigungsvorgängen aufgefüllt.115 Somit werden mehrere Vorgänge je Fertigungsmittel und Zeitabschnitt betrachtet, jedoch wird keine vollständige Reihenfolge der Vorgänge ermittelt. Demnach stellen summarische Verfahren eine Grobplanung der Vorgänge dar. Sie kann einerseits als eine Vorabplanung genutzt werden, die später noch durch ein Reihenfolge-Verfahren verfeinert wird, andererseits genügt vielen Unternehmen aber auch ein nicht so detailliertes Verfahren.116 Der Ablaufstruktur liegt dabei eine zeitorientierte Vorgehensweise zugrunde. Darauf basierend werden die Vorgänge dispositionsebenenweise auf den Fertigungsmitteln eingeplant, wobei keine spezielle Reihenfolgeregel genutzt wird. Darstellung in der Spezifikationssprache: Gesamtgraph, zeitorientiert, vorwärts Teilgraph (Dispositionsebenen), fertigungsmittelorientiert, fv-Eintritt (Zusammenfassen; alphabetische Reihenfolge) Abbildung 5-50: Struktogramm Summarisches Verfahren Algorithmus Summarisches Verfahren for all (zeitabschnitt in graph.zeithorizont) do // Ablaufpriorisierung zeitorientiert { for all (rang = 1; rang <= graph.maxrang; ++rang) do // Ablaufpriorisierung produktionsstrukturorientiert - Teilgraphen = // Dispositionsebenen/Ränge { for all (fertigungsmittel in graph.fertigungsmittelmenge with fertigungsmittel.teilgraph.rang = rang) do { 113. Vgl. [DaWa97], S. 466 ff. Vgl. [DaWa97], S. 472 ff. 115. Vgl. Abschnitt 5.4.5.6 Belastungsorientierte Auftragsfreigabe (BOA) 116. In bestimmten Fällen ist ein detaillierteres Verfahren als das Summarische Verfahren aufgrund fehlender Daten bzw. Informationen gar nicht möglich. 114. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 189 for all (knoten in graph.vorgangsknotenmenge with knoten.fertigungsmittel = fertigungsmittel) do { fv-eintritt(knoten) // Vorgänge ohne spezielle Reihenfolge einplanen, bis Kapazität // aufgebraucht bzw. Eingang nicht mehr möglich ist } } } } Die Ablaufstruktur der Belastungsorientierten Auftragsfreigabe, die auch zu den summarischen Verfahren zu zählen ist, unterscheidet sich insoweit von diesem Beispielfall, daß dort eine Probebelegung aller (Arbeits-)vorgänge eines Auftrags vorgenommen wird. In diesem Fall wird statt einer produktionsstrukturorientierten Schleife ein auftragsorientiertes Vorgehen gewählt.117 Eine feinere Planung der Vorgänge erfolgt dagegen in den zeitorientierten Reihenfolge-Verfahren. Diese Verfahren gehen davon aus, daß die Zeitdauer eines Fertigungsvorgangs bzw. die Taktzeit größer oder gleich einem Zeitabschnitt ist. In diesem Fall kann nur höchstens ein Vorgang je Zeitabschnitt bearbeitet werden. Die Einplanung erfolgt anhand einer Reihenfolgeregel. Alle anderen Vorgänge, die nicht in diesem Zeitabschnitt eingeplant werden können, müssen in eine Warteliste geschrieben werden. Die Bestimmung der Reihenfolge sowie die Einplanung der Vorgänge erfolgt im Algorithmus Fertigungsvorgangsknoten-Eintritt bzw. im von diesem aufgerufenen Algorithmus Zusammenfassen. Darstellung in der Spezifikationssprache: Gesamtgraph, zeitorientiert, vorwärts Teilgraph (Dispositionsebenen), fertigungsmittelorientiert, fv-Eintritt (Zusammenfassen; Prioritätsregel KOZ) Abbildung 5-51: Struktogramm Reihenfolge-Verfahren Algorithmus Reihenfolge Verfahren for all (zeitabschnitt in graph.zeithorizont) do // Ablaufpriorisierung zeitorientiert 117. Vgl. Abschnitt 5.4.5.6 Belastungsorientierte Auftragsfreigabe (BOA) 190 Kapitel 5 { for all (rang = 1; rang <= graph.maxrang; ++rang) do // Ablaufpriorisierung produktionsstrukturorientiert - Teilgraphen = // Dispositionsebenen/Ränge { for all (fertigungsmittel in graph.fertigungsmittelmenge with fertigungsmittel.teilgraph.rang = rang) do { for all (knoten in graph.vorgangsknotenmenge with knoten.fertigungsmittel = fertigungsmittel) do { fv-eintritt(knoten) // Reihenfolge der Vorgänge ermitteln und Vorgänge gegebenenfalls in // Warteliste schreiben } } } } Die Freigabe mit Reihenfolge ist besser bekannt unter dem Namen Maschinenbelegungsplanung. Diese Freigabeverfahren werden auch allgemeiner Scheduling-Verfahren genannt. Nur einige wenige der Schedulingprobleme sind polynomial lösbar, so daß eine optimale Lösung berechnet werden kann. Zur Lösung der anderen Probleme gibt es nur die Möglichkeit, mit Hilfe von Heuristiken, wie z.B. Prioritätsregeln, möglichst gute Lösungen zu ermitteln. Im folgenden sollen nun einige der Verfahren für polynomial lösbare Maschinenbelegungsprobleme in der Spezifikationssprache dargestellt werden. 5.4.4.1.1 Einmaschinenproblem Beim Einmaschinenproblem wird von genau einem Fertigungsmittel ausgegangen, auf dem beliebig viele Arbeitsvorgänge durchgeführt werden sollen. Diese Vorgänge gilt es in eine Reihenfolge zu bringen. Aus Gründen der Effizienz wird dabei nicht zeit-, sondern vorgangsorientiert vorgegangen. Allerdings wird nicht die Einplanung isolierter Vorgänge, sondern aller Vorgänge aus der gesamten Ablaufstruktur bzw. Vorgangsstruktur betrachtet. Für die einzelnen Vorgänge sind dabei bestimmte Bereitstellungstermine festgelegt. Die Dauer der Vorgänge ist beliebig. Abbildung 5-52 stellt eine mögliche Darstellung des Einmaschinenproblems dar. In diesem Beispiel wird jeder Vorgang durch einen eigenen Fertigungsvorgangsknoten repräsentiert. Eine andere Darstellungsmöglichkeit wäre es, alle am Fertigungsmittel durchgeführten Arbeitsvor- Entwicklung einer Spezifikationssprache für die Fertigungslenkung 2 191 3 5 1 4 Maschine Abbildung 5-52: Einmaschinenproblem gänge durch einen einzigen Knoten darzustellen. Der Vorteil der hier gewählten Abbildung liegt jedoch darin, daß sie die Ablaufstruktur der Vorgänge verdeutlicht, während diese bei der Darstellung mit einem Knoten nicht direkt ersichtlich wäre. Nachfolgend werden nun zwei mögliche Lösungen des Einmaschinenproblems mit Hilfe der Spezifikationssprache dargestellt. Im ersten Fall seien eine beliebige Anzahl von Vorgängen in beliebiger Ablaufstruktur, Bereitstellungszeitpunkte, minimale Gesamtdurchlaufzeit und beliebige Dauer vorausgesetzt. In der Spezifikationssprache wird das Reihenfolgeverfahren zu diesem Problem folgendermaßen dargestellt: Gesamtgraph, vorgangsorientiert (Vorgängervorgang eingeplant, kleinster Bereitstellungstermin), vorwärts Teilgraph (Vorgang), fv-Zustand (Terminierung) Abbildung 5-53: Struktogramm Einmaschinenproblem vorwärts Da eine Abarbeitung der Vorgänge nach Ebenen (produktionsstrukturorientiert), wie sie auf Basis des Graphen leicht möglich ist, Lücken im Plan ergeben würde, erfolgt die Abarbeitung des Graphen vorgangsorientiert nach der Regel: Es werden nur die Vorgänge eingeplant, deren Vorgänger bereits eingeplant wurden. Liegen mehrere derartige Vorgänge vor, so werden diejenigen mit kleineren Bereitstellungszeitpunkten vorgezogen.118 Im zweiten Fall sind dagegen nicht minimale Gesamtdurchlaufzeit, sondern maximale Verspätung (Fertigstellungszeitpunkte) zugrunde gelegt, was eine umgekehrte Vorgehensweise bedingt. Somit ergibt sich folgende Abbildung in der Spezifikationssprache: 118. Vgl. Algorithmus und Optimalitätsbeweis in [Bru81], S. 65 f. 192 Kapitel 5 Gesamtgraph, vorgangsorientiert (kein Nachfolgervorgang vorhanden, maximaler Fertigstellungstermin) rückwärts Teilgraph (Vorgang), fv-Zustand (Terminierung) Abbildung 5-54: Struktogramm Einmaschinenproblem rückwärts Die Abarbeitung erfolgt wiederum vorgangsorientiert, wobei nur Vorgänge eingeplant werden, die keinen Nachfolgervorgang besitzen. Falls es mehrere dieser Vorgänge gibt, so wird der mit dem maximalen Fertigstellungstermin bevorzugt.119 5.4.4.1.2 Problem identischer Maschinen Im Gegensatz zum Einmaschinenproblem werden die Vorgänge in diesem Problemfall auf mehreren identischen Maschinen, was die Möglichkeit von zwei identischen Maschinen einschließt, eingeplant. Die graphische Darstellung des betrachteten Problems entspricht bei voneinander abhängigen Vorgängen, d.h. Vorgängen in einer Ablaufstruktur, dem Einmaschinenproblem, wobei der Fertigungsmittelknoten eine Fertigungsmittelklasse mit mehreren identischen Fertigungselementen repräsentiert. Ist vorausgesetzt, daß die Vorgangsdauer genau einem Zeitabschnitt entspricht, so beschreibt Abbildung 5-55 das Verfahren zu diesem Problem in der Spezifikationssprache.120 Gesamtgraph, zeitorientiert, vorwärts Gesamtgraph, vorgangsorientiert (Vorgängervorgang eingeplant, maximale Rangstufe) Teilgraph (Vorgang), fv-zustand (Terminierung) Abbildung 5-55: Struktogramm Problem identischer Maschinen Mit diesem Verfahren werden zu jedem Zeitpunkt bzw. Zeitabschnitt alle die Vorgänge eingeplant, deren Vorgänger bereits eingeplant sind und die außerdem eine maximale Rangstufe besitzen. Da es sich um mehrere Maschinen handelt, können auf diesen auch mehrere Vorgänge gleichzeitig eingeplant werden.121 Sind die Vorgänge voneinander unabhängig, so kann 119. Vgl. Algorithmus und Optimalitätsbeweis in [Bru81], S. 67 f. Die Rangstufe des Vorgangs berechnet sich aus seinem Fertigstellungstermin und der Rangstufe seines Nachfolgers (vgl. [DaWa97], S. 480 f.). 121. Vgl. Algorithmus und Optimalitätsbeweis in [Bru81], S. 88 ff. 120. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 193 über alle Vorgänge eine Reihenfolge gemäß der kürzesten Operationsregel122 bestimmt werden, um einen optimalen Plan zu berechnen. 5.4.4.1.3 N-Maschinen-Problem Ein Spezialfall des n-Maschinen-Problems ist das Zwei-Maschinen-Problem mit einer beliebigen Anzahl von Vorgängen in beliebiger Ablaufstruktur. Hierbei geht es darum, die Reihenfolgen der Vorgänge auf zwei unterschiedlichen Maschinen möglichst optimal zu kombinieren. Gibt es einen Plan, der alle Fertigstellungszeitpunkte einhält, d.h. ist das Problem lösbar, so entspricht die Darstellung in der Spezifikationssprache der oben angeführten bei identischen Maschinen. Weiterhin läßt sich das n-Maschinen-Problem unterteilen in Flow-shop-, Openshop- und Job-shop-Probleme, für die es allerdings nur wenige polynomiale Algorithmen gibt. In allen Fällen sind die betrachteten Aufträge völlig isoliert voneinander und es gibt keine Ablaufstruktur zwischen den Aufträgen. Dieses ist möglich, da nur freigegebene Vorgänge, deren Vorgänger bereits eingeplant sind, betrachtet werden. Die Einplanung dieser Vorgänge erfolgt immer zu Beginn eines Zeithorizonts bzw. -abschnitts. Bei einem Flow-shop-Problem sind n Aufträge auf m verschiedenen Maschinen zu verteilen. Es gibt demnach n x m Vorgänge. Alle Aufträge durchlaufen alle Maschinen und zwar in der gleichen Reihenfolge. Im Gegensatz zu Flow-shop-Problemen ist bei Open-shop-Problemen die Reihenfolge, in der die Aufträge die Maschinen durchlaufen, beliebig. Job-shop-Probleme erlauben eine unterschiedliche Reihenfolge der Aufträge auf den Maschinen und außerdem ein mehrmaliges Durchlaufen einer Maschine. In allen Problemfällen mit n Maschinen wird die Reihenfolge durch Regeln (Prioritäten) über der Auftrags- bzw. Vorgangsmenge eines Zeitpunkts oder -abschnitts bestimmt. Insoweit erfolgt die Abbildung in der Spezifikationssprache mit einem Zusatz zur vorgangsorientierten Vorgehensweise, der als Bedingung eine Reihenfol- 122. Vgl. [KiSt90], S. 146 ff. und Abschnitt 2.2.2.2 Klassifikationsmerkmal Fertigungslenkungsabläufe 194 Kapitel 5 geregel angibt. Diese Reihenfolgeregel besteht dabei häufig aus kombinierten Prioritätsregeln. In der Spezifikationssprache werden alle diese Probleme demnach folgendermaßen dargestellt: Gesamtgraph, zeitorientiert, vorwärts Gesamtgraph, vorgangsorientiert (Reihenfolgeregel) Teilgraph (Vorgang), fv-zustand (Terminierung) Abbildung 5-56: Struktogramm Problem identischer Maschinen 5.4.4.2 Ereignisorientierte Auftragsfreigabe Bei dieser Art der Freigabe wird auf einem Zeithorizont, der durch eine in größeren Planungszyklen vorgenommene Durchlaufterminierung bestimmt wird, ereignisweise vorgegangen.123 Die Ereignisse sind entweder die Meldung eines Fertigungsmittels, daß es gerade frei geworden ist und mit einem neuen Vorgang belegt werden kann, oder der Austritt eines Fertigungselements (Material) aus einem Fertigungsmittel. Darstellung in der Spezifikationssprache: Gesamtgraph, ereignisorientiert, fv-Eintritt Dieses Programm ist begrenzt auf die Auslösung des Starts eines Vorgangs aufgrund eines Ereignisses an einem bestimmten Knoten und könnte durch zusätzliche Funktionen erweitert werden. Die Darstellung des Programms in der an C++ angelehnten Notation entspricht dem Algorithmus Ablauf ereignisorientiert. Algorithmus Ereignisorientierte Freigabe for all (ereignis in graph.zeithorizont) do // Ereignisorientierung basierend auf einem Zeithorizont { fv-eintritt(ereignis.knoten) // Einplanen des Vorgangs am jeweiligen Knoten } 123. Vgl. [DaWa97], S. 520 f. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 195 5.4.5 Komplexe Fertigungslenkungsverfahren Im folgenden werden nun komplexere Standardverfahren der Fertigungslenkung klassifiziert und in der Spezifikationssprache beschrieben. Diese Ansätze umfassen mehrere Planungsbereiche und basieren zum Teil nicht auf einer strikt sukzessiven Vorgehensweise. Sie haben dann das primäre Ziel, den geplanten Output mit den vorhandenen Kapazitäten in besserer Weise abzustimmen, als es nach dem Sukzessivplanungskonzept möglich ist. Dabei gehen sie entweder bestands- oder engpaßorientiert vor.124 Anhand der Darstellungen im Klassifikationsschema und der Beschreibungen mit der Spezifikationssprache werden Ähnlichkeiten bzw. Parallelen zwischen diesen unterschiedlichen Verfahren deutlich. Dieses zeigt auf, daß bei ihnen teilweise dieselben Methoden (Algorithmen) genutzt werden können. Außerdem wird die Beschränkung der Verfahren auf bestimmte Teilprobleme bzw. spezielle Vorgehensstrategien der Fertigungslenkung deutlich. 5.4.5.1 Materialbedarfsplanung (MRP) Die Materialbedarfsplanung125 ist das klassische Verfahren zur Definition, Terminierung und Freigabe von Fertigungsaufträgen. Sie beinhaltet eine rückwärtsorientierte Materialdisposition auf Basis einer Stücklistenauflösung mit Durchlaufzeitverschiebung. Kapazitäten werden im Rahmen der Materialbedarfsplanung nicht berücksichtigt, aus diesem Grund wird auch keine Veränderung bzw. Anpassung der ermittelten Termine aufgrund begrenzter Fertigungsmittelkapazitäten vorgenommen. Die Freigabe der Fertigungsaufträge erfolgt auf Grundlage der so berechneten Termine. Das Zeitmodell der Materialbedarfsplanung ist einheitlich für alle Knoten. Die Vorlaufzeit und die Reichweite eines Fertigungsloses bzw. der Bestellzyklus können sowohl größer als auch kleiner als eine Zeiteinheit sein. Dementsprechend kann die Materialbedarfsplanung in vier verschiedene Fälle unterschieden werden, von denen drei zeitorientiert sind und einer ereignisorientiert ist:126 • zeitorientiert (Bedarf in (nahezu) jedem Zeitabschnitt) • Reichweite (Fertigungs-)Los < Zeitabschnitt und Vorlaufzeit < Zeitabschnitt • Reichweite (Fertigungs-)Los > Zeitabschnitt und Vorlaufzeit < Zeitabschnitt • Reichweite (Fertigungs-)Los > Zeitabschnitt und Vorlaufzeit >Zeitabschnitt 124. Vgl. [Cor98], S. 508 und [ZäMi88], S. 127 ff. Vgl. Abschnitt 5.1 Syntax der Spezifikationssprache 126. Vgl. [DaWa97], S. 302 ff. 125. 196 Kapitel 5 • ereignisorientiert (Sporadischer Bedarf) Die folgende Darstellung in der Klassifikation und der Spezifikationssprache beschreibt den einfachsten dieser Fälle, die periodenweise Bedarfsermittlung ohne Losgrößengruppierung. Dabei wird durch den Strukturprototypen „Montagestruktur“ die Struktur repräsentiert. Der Ablauf erfolgt produktionsstrukturorientiert auf dem Gesamtgraphen, knotenorientiert auf den Dispositionsebenen und zeitorientiert auf den einzelnen Strukturprototypen. Das Klassifikationsschema für diese Ausprägung der Materialbedarfsplanung ist in Abbildung 5-57 dargestellt. Gruppierungsfunktion, Bestand-/ Bedarfsfunktion, Terminierungsfunktion zeitorientiert, vorwärts knotenorientiert, alphabetisch produktionsstrukturorientiert, rückwärts Abbildung 5-57: Klassifikationsschema MRP ohne Losgrößengruppierung Die Darstellung in der Spezifikationssprache hat folgende Form: Gesamtgraph, produktionsstrukturorientiert, rückwärts Teilgraph (Dispositionsebene), knotenorientiert, alphabetisch Teilgraph (Strukturprototyp), zeitorientiert (Zeitabschnitt), vorwärts, fe-Eintritt (Zusammenfassung), fe-Zustand (Bestands-/Bedarfsrechnung), fv-Zustand (Terminierung) Abbildung 5-58: Struktogramm MRP ohne Losgrößengruppierung Ist die Bestandsreichweite größer als der gewählte Zeitabschnitt, so wird der Nettobedarf nach Losen gruppiert. Die Darstellung des Falls eines Bestellzyklus in der Klassifikation und der Entwicklung einer Spezifikationssprache für die Fertigungslenkung 197 Spezifikationssprache bedarf einer weiteren zeitorientierten Ablaufstruktur, die auf diesen Bestellzyklen basiert. Außerdem muß die Losgrößenbestimmung in die Klassifikation und die Spezifikationssprache mitaufgenommen werden. Demzufolge zeigt das Klassifikationsschema in Abbildung 5-59 eine weitere zeitorientierte Ablaufstruktur und beinhaltet außerdem eine zusätzliche Gruppierungsfunktion, welche die Losgrößenbestimmung zur Aufgabe hat. Gruppierungsfunktion, Bestand-/Bedarfsfunktion Gruppierungsfunktion, Terminierungsfunktion zeitorientiert zeitorientiert, vorwärts knotenorientiert, alphabetisch produktionsstrukturorientiert, rückwärts Abbildung 5-59: Klassifikationsschema MRP mit Losgrößengruppierung In der Spezifikationssprache wird die weitere zeitorientierte Ablaufstruktur als RepeatSchleife dargestellt. Die Zustandsfunktion am Fertigungsmaterialknoten wird um die Losgrößenbestimmung erweitert. Diese Funktion wird jedoch in die Repeat-Schleife miteinbezogen, da die Bestellung eines Loses zu Beginn des Bestellzyklus erfolgt. Zur Darstellung einer ereignisorientierten Vorgehensweise mit oder ohne Losgrößengruppierung, wenn also nicht mehr in jedem Zeitabschnitt Bedarfe auftreten, ist nur der Wechsel der Ablaufspezifikation von „zeitorientiert (Zeitabschnitt)“ zu „ereignisorientiert“ nötig. Darüber hinaus ist auch eine bestellpunktorientierte Losgrößenbestimmung abbildbar, indem statt der Repeat-Schleife über dem Bestellzyklus eine Repeat-Schleife ereignisorientiert mit Abbruchbedingung „Erreichen bzw. Unterschreiten des Bestellpunktes“ spezifiziert wird. 198 Kapitel 5 Gesamtgraph, produktionsstrukturorientiert, rückwärts Teilgraph (Dispositionsebene), knotenorientiert, alphabetisch Teilgraph (Strukturprototyp), zeitorientiert (Zeitabschnitt), fe-Eintritt (Zusammenfassung), fe-Zustand (Bestands-/ Bedarfsrechnung), Teilgraph (Strukturprototyp), zeitorientiert (Bestellzyklus), vorwärts, fe-Zustand (Losgrößenbestimmung) Teilgraph (Strukturprototyp), zeitorientiert (Zeitabschnitt), fe-Zustand (Bestandsrechnung) Teilgraph (Strukturprototyp), zeitorientiert (Bestellzyklus), vorwärts, fv-Zustand (Terminierung) Abbildung 5-60: Struktogramm MRP mit Losgrößengruppierung 5.4.5.2 Arbeitsgangterminierung des Fertigungssystems CAPOSS-E Die Arbeitsgangterminierung von CAPOSS-E127 berechnet und terminiert eine abarbeitbare Folge von Arbeitsgängen für jeden Arbeitsplatz unter der Berücksichtigung der Kapazitäten und bestehender Belastungen128 der Arbeitsplätze. Dabei werden für jeden Arbeitsplatz in Zyklen, die durch das zugrunde liegende Zeitmodell bestimmt werden (z.B schicht- oder tageweise), Wartelisten gebildet, welche dann nacheinander abgearbeitet werden. Die Arbeitsgangterminierung hat unterschiedliche Zeitmodelle für Material- und Fertigungsmittelknoten. Weiterhin gilt, daß die Vorgangsdauer kleiner als ein Zyklus ist. Die Struktur wird durch den Strukturprototypen „lineare Struktur mit Ressource“ repräsentiert. Die Abarbeitung des Fertigungsgraphen erfolgt insgesamt zeitorientiert, zu den Zyklen auftragsorientiert und für die freigegebenen Vorgänge (Arbeitsgänge)129 dieser Aufträge fertigungsmittelorientiert. Abbildung 5-61 gibt das Klassifikationsschema der Arbeitsgangterminierung wieder. 127. Vgl. [CAPOSS], [BrPi81] und [Har95], S. 130 ff. Die bestehenden Belastungen beruhen auf Arbeitsgängen, die im letzten Zyklus nicht durchgeführt werden konnten. In CAPOSS werden diese Arbeitsgänge (Vorgänge) in den nachfolgenden Zyklus übernommen. 129. Das sind die Vorgänge, deren Vorgängervorgänge bereits eingeplant sind. 128. Entwicklung einer Spezifikationssprache für die Fertigungslenkung Gruppierungsfunktion 199 Terminierungsfunktion ereignisorientiert auftragsorientiert fertigungsmittelorientiert zeitorientiert, vorwärts Abbildung 5-61: Klassifikationsschema Arbeitsgangterminierung In der Spezifikationssprache wird die Arbeitsgangterminierung folgendermaßen dargestellt: Gesamtgraph, zeitorientiert, vorwärts Gesamtgraph, auftragsorientiert (Vorgängervorgänge eingeplant) fe-Eintritt (Zusammenfassen; Warteschlange) Gesamtgraph, fertigungsmittelorientiert Teilgraph, ereignisorientiert, fv-Zustand (Terminierung) Abbildung 5-62: Struktogramm Arbeitsgangterminierung Dabei wird die Bedingung der auftragsorientierten While-Schleife, die besagt, daß die Vorgängervorgänge der einzuplanenden Vorgänge bereits eingeplant sein müssen, explizit angegeben. Die Bildung der Warteschlangen, die sich aus nicht abgearbeiteten Vorgängen des letzten Zyklus sowie den neu einzuplanenden Vorgängen zusammensetzen, wird im Rahmen der Eintrittsfunktion der Fertigungsmittel und zwar speziell in der Teilfunktion Zusammenfassen durchgeführt. Anschließend erfolgt im Rahmen der Zustandsfunktion am Fertigungsvorgangsknoten das Terminieren der Vorgänge. 200 Kapitel 5 5.4.5.3 Engpaßorientiertes Fertigungssteuerungsverfahren (OPT) Das Fertigungssteuerungsverfahren OPT130 ist ein ressourcen- bzw. engpaßorientiertes Lenkungskonzept und kombiniert Mengen- und Kapazitätsplanung. Sein primäres Ziel ist nicht die optimale Auslastung der Kapazitäten, da dieses aufgrund der Problematik der Kapazitätsharmonisierungen nicht grundsätzlich möglich ist, sondern die Optimierung des Fertigungs- bzw. Materialflusses.131 Gruppierungsfunktion Bestand-/Bedarfsfunktion Gruppierungsfunktion produktionsstrukturorientiert vorwärts, rückwärts Terminierungsfunktion ereignisorientiert fertigungsmittelorientiert zeitorientiert, vorwärts Abbildung 5-63: Klassifikationsschema OPT (Vorgehensweise nach Engpaßermittlung) Der erste Schritt des Verfahrens ist die Identifizierung der Engpässe. Dieses erfolgt auf der Grundlage einer retrograden, zeitorientierten Materialbedarfsplanung/Durchlaufterminierung und einer darauf aufbauenden Kapazitätsbedarfsermittlung (die ggf. mit Fortschrittszahlen erfolgen könnte). Das Ergebnis dieser Berechnungen ist die Teilung des Fertigungsnetzes in einen kritischen Teil, nämlich die Engpässe, und einen nichtkritischen Teil. Von den Engpässen ausgehend wird anschließend die Einplanung der Bedarfe vorgenommen. Ein möglicher Erklärungsansatz für die in der Literatur nicht beschriebene weitere Vorgehensweise von OPT könnte folgendes Vorgehensmodell sein: Grundsätzlich wird eine zyklische Vorgehensweise vergleichbar zu der im vorhergehenden Absatz beschriebenen CAPOSS-Vorgehensweise angenommen (Die Zyklen werden identisch mit den Zyklen der Materialbedarfs130. 131. Vgl. [Gol84] und [Cor98], S. 527 ff. Vgl. [Scho98], S. 70 Entwicklung einer Spezifikationssprache für die Fertigungslenkung 201 planung gewählt.). Die bei CAPOSS nur linearen und jeweils mit der Menge 1 behafteten Strukturzusammenhänge sind um Montagestrukturen und Strukturmengen erweitert. Damit ist im Gegensatz zu CAPOSS ein echte Bestands-/Bedarfs- und Losgrößenrechnung möglich. Die Belegung innerhalb eines Zyklus beginnt auf den Engpaßfertigungsmitteln, die vollständig belegt werden. Dieser Belegungsumfang bestimmt - anders als in CAPOSS - den Umfang der Warteschlangen auf den vorgelagerten Fertigungsstufen bzw. Bearbeitungsstellen (selbstverständlich um die Anzahl der den Fertigungsstufen entsprechenden Zyklen nach vorne verschoben). Die Belegung der vorgelagerten Stellen erfolgt dann in einer Rückwärtsrechnung. Die Vorgehensweise bei den nachgelagerten Stellen ist analog. Zur Abbildung der Fertigungsstruktur wird grundsätzlich der Strukturprototyp „Montage- bzw. Sortierstruktur mit Ressourcen“ genutzt. Das Klassifikationsschema ist in Abbildung 5-63 beschrieben. Es folgt die Abbildung von OPT in der Spezifikationssprache: Gesamtgraph, zeitorientiert, vorwärts Gesamtgraph, produktionsstrukturorientiert, vorwärts, rückwärts fe-Eintritt (Zusammenfassen), fe-Zustand (Bestands-/Bedarfsrechnung) fe-Zustand (Losgrößenbestimmung; Warteliste) Gesamtgraph, fertigungsmittelorientiert Teilgraph, ereignisorientiert, fv-Zustand (Terminierung) Abbildung 5-64: Struktogramm OPT (Vorgehensweise nach Engpaßermittlung) 5.4.5.4 Kanban Die Kanban-Steuerung132 unterliegt dem „Just-in-time“ oder Hol-Prinzip. Es wird nur die jeweils verbrauchte Menge eines Materials gefertigt bzw. angefordert. Kanban führt somit eine verbrauchsorientierte Mengenplanung durch. Diese „Steuerung durch Selbstregulierung“ hat das Ziel, die Lagerbestände in der Fertigung auf einem möglichst geringen Niveau zu halten. Insoweit entspricht Kanban einem Bestellpunktverfahren mit dem Dispositionsprinzip (s,B), Anfordern des Bedarfs bei Erreichen des Minimalbestandes.133 Die Kanban-Steuerung läßt sich in verschiedene Arten unterteilen, wie z.B. Ein-Karten-Kanban, Signal-Kanban, usw. 132. 133. Vgl. [Kur93] und [Wil84] Vgl. Abschnitt 5.2.1.1.1 Attribute an Fertigungselementknoten 202 Kapitel 5 Allerdings benötigt Kanban zu seiner erfolgreichen Anwendung neben der Anordnung der Betriebsmittel nach dem Fließprinzip einen gleichförmigen Fertigungsablauf ohne große Bedarfsschwankungen. Weiterhin wird von weitgehend standardisierten Teilen und einem geringen Variantenspektrum, um unter anderem die Rüstzeiten niedrig zu halten, sowie von einem stetigen Bedarf und einer hohen Umschlagshäufigkeit der Teile ausgegangen.134 Als verbrauchsorientierte Mengenplanung reduziert sich die Zeitbetrachtung von Kanban auf die Gegenwart. Das Material wird nur dann angefordert, wenn der tatsächliche Bestand unter der vorgesehenen Bestandshöhe liegt; deswegen ist kein Planungshorizont nötig. Insoweit ist die Ablaufstruktur ereignisorientiert. Eine Fertigungsstruktur (Erzeugnisstruktur) als Basis des Materialflusses liegt bei Kanban nicht vor; die Materialien sind nicht miteinander verbunden.135 Das Klassifikationsschema von Kanban ist in Abbildung 5-65 beschrieben. Bestand-/Bedarfsfunktion ereignisorientiert Abbildung 5-65: Klassifikationsschema Kanban Die Darstellung in der Spezifikationssprache hat folgende Struktur:136 Gesamtgraph, ereignisorientiert fe-Zustand (Bestands-/Bedarfsrechnung; Dispositionsprinzip (s,B)) 134. Vgl. [Cor98], S. 522 ff. Wenn die Bedarfsermittlung statt mit einem Kanban mit einem Rechner stattfinden soll, dann ist dazu ein rechnerinternes Modell notwendig. Dieses entspricht im Prinzip einer Durchlaufterminierung, bei der zwar zeitlich vorwärts aber im Sinne des Materialflusses rückwärts gerechnet wird. Fallweise werden dann lineare oder Montagstrukturen verwendet. 136. Da das Programm aus einer Zeile besteht, ist hier wiederum eine Darstellung ohne ein Nassi-Shneiderman-Diagramm möglich bzw. mit dieser gleichbedeutend. 135. Entwicklung einer Spezifikationssprache für die Fertigungslenkung 203 5.4.5.5 Fortschrittszahlenkonzept Beim Fortschrittszahlenkonzept137 werden bestimmte Unternehmensprozesse, wie z.B. Einund Auslagerungen oder Anlieferungen, mittels Fortschrittszahlen erfaßt bzw. abgebildet, um speziell koordiniert und gesteuert zu werden. Das Konzept stellt eine Kombination aus traditioneller Programm- und Mengenplanung und dem Holprinzip dar.138 Zur Strukturierung wird der betrachtete Unternehmensbereich in Kontrollblöcke gegliedert, die sich abhängig von den jeweiligen Anforderungen auf unterschiedlichen Detaillierungsniveaus befinden können. Die Ein- und Ausgänge dieser Kontrollblöcke werden als Fortschrittszahlen gemessen und dabei die Soll- den Ist-Werten gegenübergestellt. Auf diese Weise können Abweichungen, wie z.B. mengenmäßiger Vorlauf oder Rückstand, direkt erkannt werden. Allerdings ist der Einsatz des Fortschrittszahlenkonzeptes an folgende Voraussetzungen gebunden:139 • Leistungsaustausch zwischen Kontrollblöcken erfolgt nur in eine Richtung (linearer Produktionsprozeß) • harmonisierte Kapazitäten • Produktspektrum setzt sich aus Standarderzeugnissen mit geringer Variantenvielfalt und hoher Produktionsmenge zusammen Anwendung findet das Fortschrittszahlenkonzept vor allem in der Automobilindustrie, da dort eine montageorientierte Großserienfertigung mit dem Organisationstyp der Fließfertigung und mit sehr engen Beziehungen zwischen Zulieferern und Herstellern vorliegt.140 Das Hauptziel dieser Fertigungen sind möglichst geringe Lagerbestände, die z.B. durch ein „Just-in-time“Vorgehen erreicht werden. Insgesamt betrachtet, ist das Fortschrittszahlenkonzept insbesondere eine Frage des Zeitmodells und kann für verschiedene Formen der Mengenplanung eingesetzt werden.141 Insoweit entspricht seine Darstellung in der Klassifikation und der Spezifikationssprache dem jeweils genutzten Mengenplanungsverfahren wie z.B. der Materialbedarfsplanung. Die Unterschiede, die auf der Kumulation der Bedarfe und Verbräuche über dem Zeithorizont und dem Vergleich von Soll- und Ist-Werten beruhen, werden in beiden Darstellungsformen nicht explizit 137. „Eine Fortschrittszahl stellt allgemein eine kumulierte, sich auf ein Teil beziehende Mengengröße dar, die jeweils einem bestimmten Zeitpunkt bzw. Termin zugeordnet ist.“ [GGR92] 138. Vgl. [DaWa97], S. 342 ff., [GGR92], S. 232 ff., u.a. 139. Vgl. [Cor98], S. 511 f. 140. Vgl. [Kur93], S. 190 ff. 141. Vgl. [DaWa97], S. 342 f. 204 Kapitel 5 beschrieben, sondern im zugrunde liegenden Modell der Fertigung bzw. in dessen Zeitmodell festgelegt. 5.4.5.6 Belastungsorientierte Auftragsfreigabe (BOA) BOA ist eine Methode, die den mittleren Bestand vor Fertigungsmitteln respektive Belastungsgruppen möglichst konstant halten soll, um somit die Durchlaufzeiten bzw. die Wartezeiten der Aufträge zu verkürzen und eine bessere Einhaltung der Fertigstellungstermine zu erreichen. Das Zeitmodell von BOA ist eine einzige Zeiteinheit, die größer ist als die Losbearbeitungsdauer. Zur Abbildung der Struktur wird der Strukturprototyp „lineare Struktur mit Ressource“ verwendet. Als Ausgangsdaten stehen die gewünschten Endtermine der Aufträge in Form von Grobterminen sowie die Arbeitspläne und die Losgrößen fest. Die Maschinen- und Personalkapazitäten der zu planenden Periode sind bekannt. Aufträge werden nur dann freigegeben, wenn die Belastung der für sie relevanten Ressourcen kleiner als eine vorgegebene Belastungsschranke ist. Gruppierungsfunktion fertigungsmittelorientiert auftragsorientiert zeitorientiert Abbildung 5-66: Klassifikationsschema Belastungsorientierte Auftragsfreigabe In der betrachteten Periode ist die Vorgehensweise an dringlichen Aufträgen142 orientiert. Diese werden auftragsorientiert Betriebsmitteln zugewiesen, solange das probeweise Belegen der Fertigungsmittel, in der Spezifikationssprache dargestellt durch die Eintrittsfunktion, mög- 142. Dringliche Aufträge sind die Aufträge, für die eine Auftragsfreigabe bzw. -einlastung im Hinblick auf die jeweilige Planperiode überprüft wird (vgl. [GGR92], S. 211). Entwicklung einer Spezifikationssprache für die Fertigungslenkung 205 lich ist. Die vor der Belegung durchzuführende Abwertung der Auftragsstunden wird in beiden Darstellungsformen nicht abgebildet. War der Belegungsvorgang bei allen Fertigungsmitteln erfolgreich, so kann der Auftrag freigegeben werden. Die spezielle Freigaberegel von BOA ist im Attribut Steuerungsregel des Teilgraphen hinterlegt. Ob ein Auftrag freigegeben ist, kann anhand seines Attributs „ausführbar“ festgestellt werden, das im Rahmen der Eintrittsfunktion des Fertigungsmittels gesetzt wird. Das Klassifikationsschema der Belastungsorientierten Auftragsfreigabe zeigt Abbildung 5-66. In der Spezifikationssprache erfolgt die Darstellung von BOA folgendermaßen: Gesamtgraph, zeitorientiert (Periode) Gesamtgraph, auftragsorientiert (Dringlichkeit) Teilgraph (Fertigungsmittel), fe-Eintritt Teilgraph, fertigungsmittelorientiert (Ausführbarkeit) Abbildung 5-67: Struktogramm Belastungsorientierte Auftragsfreigabe Dabei wird die auftragsorientierte Vorgehensweise mit einer While-Schleife dargestellt, die durch die Bedingung „Dringlichkeit“ näher bestimmt wird. Somit wird gewährleistet, daß die Fertigungsmittel nur mit dringlichen Aufträgen probeweise belegt werden. Der anschließende fertigungsmittelorientierte Ablauf wird von einer Repeat-Schleife mit der Abbruchbedingung „Ausführbarkeit“ abgebildet. Auf diese Weise wird die Schleife abgebrochen, sobald die Belegung eines Arbeitsgangs des Auftrags nicht erfolgreich war. 5.4.5.7 Netzplantechnik Mit dieser auf Netzplänen143, der graphischen Darstellung von Abläufen und deren Abhängigkeiten, basierenden Technik ist es möglich, Zeit- und Terminplanungen, aber auch Kosten- und Kapazitätsplanungen durchzuführen. Das zugrunde liegende Zeitmodell ist dabei einheitlich und eine Zeiteinheit ist kleiner als die Vorgangsdauer der einzelnen Aktivitäten. Der Ablauf erfolgt produktionsstrukturorientiert, iterativ oder nach Dispositionsebenen, wobei vorwärts wie auch rückwärts vorgegangen werden kann. Das Klassifikationsschema in Abbildung 5-68 zeigt einen Netzplan zur Terminplanung. 143. Vgl. Abschnitt 2.1.3 Klassifikation 206 Kapitel 5 Terminierungsfunktion produktionsstrukturorientiert, vorwärts/rückwärts Abbildung 5-68: Klassifikationsschema Netzplantechnik Die Funktionalität der Fertigungselementknoten wird in der Netzplantechnik nicht genutzt, da von der Bedarfsmenge 1 ausgegangen und pro Vorgangsknoten nur ein Vorgang durchgeführt wird.144 Aus diesem Grund sind die Fertigungselementknoten im Klassifikationsschema gestrichelt dargestellt. Dieses ist auch der folgenden Darstellung der Netzplantechnik in der Spezifikationssprache zu entnehmen: Gesamtgraph, produktionsstrukturorientiert (Dispositionsebenen), fv-Zustand (Terminierung) Anhand dieser beispielhaften Darstellungen der wichtigsten Fertigungslenkungsverfahren und -methoden konnten die Vorteile des Klassifikationsschemas und der Spezifikationssprache verdeutlicht werden. Sie liegen einerseits in der Erfüllung der in Abschnitt 2.3.1 dargestellten problembereichsunabhängigen Anforderungen, wie z.B. der Benutzerfreundlichkeit durch allgemeinverständliche sowie präzise Syntax und mnemonische Sprachkonstrukte und der Flexibilität der Sprache. Andererseits beruhen die Vorteile auch auf der Berücksichtigung der speziellen Probleme der Fertigungslenkung durch eine geeignete Repräsentation der Datenund Graphstruktur sowie der Abläufe und Funktionen der Fertigungslenkung, die eine unkomplizierte und flexible Umsetzung in eine gängige Programmiersprache erlauben. Infolgedessen sind die hier entwickelte Klassifikation und Spezifikationssprache ein ideales Hilfsmittel zur anschaulichen, anwendernahen und flexiblen Kategorisierung und Beschreibung der Fertigungslenkung. 144. Wird die Netzplantechnik zur Kapazitätsplanung eingesetzt, so erfolgt die Steuerung des Fertigungsmittelknotens bzw. der Kapazitätsbelegung vom Fertigungsvorgangsknoten aus. Zusammenfassung und Ausblick 6 207 Zusammenfassung und Ausblick Für den Bereich der Fertigungslenkung gibt es eine Vielzahl von unterschiedlichen Methoden und Verfahren, von denen die meisten ihre eigene spezifische Darstellungsart besitzen. Außerdem wurde fast jede dieser Methoden für eine ausgewählte Zielgruppe entwickelt und bezieht sich deswegen sowohl auf ganz bestimmte Aspekte und Vorgehensweisen der Fertigungslenkung als auch auf spezielle Ausprägungen von Fertigungen. Zur Lösung dieser Problematik bedarf es einer umfassenden, einheitlichen und problembereichsorientierten Spezifikationssprache als Metasystem für die Fertigungslenkung. Diese Sprache ermöglicht eine integrierte Beschreibung der diversen Methoden und Verfahren, indem sie auf den zugrunde liegenden allgemeinen Konzepten der Fertigungslenkung aufbaut. Auf diese Weise bietet sie die Robustheit und Flexibilität allen Anforderungen derzeitiger wie auch in der Zukunft noch entstehender Fertigungslenkungsprobleme zu genügen. Die Grundlage der Spezifikationssprache bildet eine vollständige und transparente Klassifikation des Problembereichs, in der diese Konzepte herausgearbeitet und strukturiert werden. Um eine Umsetzung der Spezifikationssprache in ein ausführbares Programm zu ermöglichen, müssen außerdem Methoden für die Sprachkonstrukte in einer höheren Programmiersprache implementiert werden. Nach einer Einführung in den Problembereich und die Begriffswelt der Fertigungslenkung wurden in dieser Arbeit die Anforderungen an eine Klassifikation der Fertigungslenkung detailliert dargelegt. Zur besseren Vergleichbarkeit dieser Systematik mit bestehenden Ansätzen erfolgte anschließend die Definition der Klassifikationskriterien. Dabei wurde auf die Strukturierung des Modellierungsansatzes MFERT zurückgegriffen und eine Einteilung in die Merkmale Fertigungslenkungsstruktur, -abläufe und -funktionen vorgenommen, die eine vollständige Klassifikation des Problembereichs ermöglichen. Während das Fertigungsmodell die Fertigungslenkung bezüglich der Dimensionen Zeit und Struktur beschreibt, stellen die Abläufe und Funktionen den Prozeßfortschritt dar. Das Kriterium Fertigungslenkungsstruktur läßt sich weiter in einzelne Teilgraphen bzw. Strukturprototypen untergliedern. Fertigungslenkungsabläufe werden systematisiert durch die Ablaufrichtung, -priorisierung und -reihenfolge. Ablauf- und zustandsorganisatorische Entscheidungsprobleme bilden die weitere Strukturierung der Fertigungslenkungsfunktionen. Die Darstellung der Klassifikation erfolgt aus Gründen der Übersichtlichkeit und Verständlichkeit in Form von Repräsentanten. Im Anschluß an die Festlegung der Klassifikationsmerkmale wurden die problembereichsunabhängigen und -abhängigen Anforderungen an die Spezifikationssprache für die Fertigungslenkung formuliert. 208 Kapitel 6 Die nachfolgend durchgeführte Untersuchung von existierenden Ansätzen zur Klassifikation der Fertigungslenkung ergab, daß es derzeit keine speziell auf diesen Problembereich ausgerichtete Systematik gibt. Die bestehenden Klassifikationen sind entweder nur auf Teilbereiche der Fertigungslenkung begrenzt und damit nicht vollständig oder sie gehen über den Problembereich hinaus, was dazu führt, daß sie zu abstrakt und ungenau sind. Bei der Analyse existierender Spezifikationssprachen zeigte sich ein ähnliches Bild. Zwar gibt es eine Vielzahl von Beschreibungssprachen für Teilbereiche der Fertigungslenkung oder umfassendere Problembereiche, aber sie erfüllen alle nicht die an die Syntax gestellten Anforderungen bezüglich leichter Verständlichkeit und Anwendbarkeit. Außerdem mangelt es ihrer Semantik an Problemorientierung und Klarheit. Hinzu kommt in fast allen Fällen eine Einschränkung auf bestimmte Sichtweisen oder Vorgehensstrategien, die ebenfalls einer vollständigen Beschreibung zuwiderlaufen. Ausgehend von diesem Vergleich der Problemstellung mit bestehenden Ansätzen wurde die noch zu leistende Arbeit zur Entwicklung der Spezifikationssprache festgelegt. Dabei wurde von der durch die Klassifikation vorgegebenen Strukturierung der Fertigungslenkung in Fertigungslenkungsstruktur, - abläufe und -funktionen ausgegangen und somit die Vollständigkeit der Darstellung gewährleistet. Als Syntax der Sprache wurde eine Kombination aus graphischen und sprachlichen Elementen gewählt, wodurch die Vorteile beider Darstellungsarten vereint und die Nachteile größtenteils vermieden werden konnten. Auf diese Weise wurden die Anforderungen bezüglich Transparenz, Verständlichkeit und Anwendbarkeit der Beschreibung erfüllt. Während die Fertigungslenkungsstruktur mit Hilfe des Modells der Fertigung und zwar wiederum in Form von Strukturprototypen beschrieben wird, erfolgt die Spezifikation der Fertigungslenkungsabläufe und -funktionen mit Nassi-Shneiderman-Struktogrammen und Pseudocode. Dabei werden einerseits Ablaufreihenfolgen durch spezielle Konstrukte des Struktogramms und andererseits Ablaufpriorisierungen und -richtung sowie die Funktionen durch Befehlszeilen in Pseudocode konkretisiert. Diese Darstellung mittels Pseudocode bietet den Vorteil von mnemonischen Sprachkonstrukten, die den Vorstellungen und Denkmustern der Anwender entsprechen. Zur Formalisierung dieser Konstrukte wurde eine der Erweiterten Backus-Naur-Form (EBNF) angelehnte Beschreibungsform verwendet. Im Anschluß an die Definition der Syntax folgte die Darstellung der Semantik der Spezifikationssprache anhand der möglichen Ausprägungen der Funktionalität an Modellelementen, Fertigungselement- und Fertigungsvorgangsknoten, sowie der Ablaufstrukturen. Funktionen und Kapitel6 6.9.13 1. Oktober 1999 20.20 Zusammenfassung und Ausblick 209 Abläufe basieren dabei auf dem Modell der Fertigung, das die Daten- und Strukturbasis der Spezifikationssprache bildet. Um die Übersetzung der Beschreibungssprache in ein ablauffähiges Programm zu ermöglichen, wurden Funktionen und Abläufe außerdem in Algorithmen in einer an die Programmiersprache C++ angelehnten Notation implementiert. Diesen Modulen liegt eine Klassendefinition des Modells der Fertigung respektive der einzelnen Objekte des Modells zugrunde. Als Nachweis der Praktikabilität des Klassifikationsschemas und der Spezifikationssprache wurden anschließend Anwendungsbeispiele anhand von allgemein genutzten Fertigungslenkungsverfahren, die sowohl einfacher, d.h. mit begrenztem Problembereich, als auch komplexer Natur, d.h. mit übergreifendem Problembereich, waren, gegeben. Hierbei wurde gezeigt, daß die Klassifikation bei komplexen Verfahren ein wichtiges Hilfsmittel für die Spezifikationssprache darstellt, jedoch zur Beschreibung der Problematik nicht ausreicht, was die identische Strukturierung von zwei recht unterschiedlicher Verfahren verdeutlichte. In diesem Fall wurden erst durch die Spezifikationssprache die Unterschiede herausgestellt. Darüberhinaus wurde demonstriert, daß die Konstrukte der Spezifikationssprache ausreichen, die Mehrheit aller Fertigungslenkungsprobleme, repräsentiert durch die dargestellten Standardverfahren, abzubilden. Gleichzeitig verhindern sie Redundanzen und ermöglichen so eine sehr transparente und gut verständliche Darstellung. Als Fortführung dieser Arbeit sollte ein intelligentes Werkzeug entwickelt werden, mit dem in der Spezifikationssprache beschriebene Programme in einem ersten Schritt automatisch geprüft bzw. verifiziert und anschließend in Programme in einer problembereichsunabhängigen Programmiersprache wie z.B. C++ übersetzt werden könnten. Dieses Werkzeug sollte dabei auf dem bereits bestehenden Modellierungswerkzeug OOPUS1 aufbauen und dessen Funktionalitäten zur Erstellung und Darstellung des Modells der Fertigung nutzen. Außerdem wäre es sinnvoll zur Unterstützung der Übersetzung der Spezifikationssprache aus den hier implementierten Funktionen und Abläufen eine Methodenbibliothek zu erstellen, die ebenfalls mit in dieses Werkzeug integriert werden sollte. Für die Implementierung der Sprache wäre darüber hinaus auch die Entwicklung eines Compilers denkbar, allerdings müßte dafür höchstwahrscheinlich eine weitergehende Formalisierung der Darstellung vorgenommen werden. Durch die Integration der Methodenbibliothek könnte das Modellierungswerkzeug die Beschreibung in der Spezifikationssprache mittels Vorschlägen2 möglicher respektive erlaub1 Objektorientierte Plattform für die Generierung und Integration individueller Fabrikplanungs- und -steuerungssysteme vgl. [Hol97], [DFH95] u.a. 210 Kapitel 6 ter Sprachkonstrukte unterstützen und somit die Anwendung zusätzlich vereinfachen und beschleunigen. Eine weitere Verbesserung der Benutzbarkeit dieses Modellierungswerkzeuges könnte durch eine Optimierung der graphischen Darstellung der Spezifikationssprache erreicht werden. 2 Z.B. könnten alle potentiellen Ablaufspezifikationen für einen Teilgraphen oder die potentiellen Funktionen respektive Teilfunktionen an einem Fertigungsknoten zur Auswahl gestellt werden. Kapitel6 6.9.13 1. Oktober 1999 20.20 Literaturverzeichnis 7 211 Literaturverzeichnis [Ada69] Adam, Dietrich.: Produktionsplanung bei Sortenfertigung. Ein Beitrag zur Theorie der Mehrproduktunternehmung. Gabler, Wiesbaden 1969. [AMI89] ESPRIT Consortium AMICE: Open System Architecture for CIM. In: Research Reports ESPRIT. Project 688 AMICE Volume 1, Springer, Berlin 1989. [BrPi81] Bresser, W. P.; Pitra, L.: Untersuchung von EDV-gestützten Systemen zur Grobplanung der Produktion. In: FIR-Mitteilungen, Aachen 41/1981, S. 1-15. [Bru81] Brucker, P.: Scheduling. Akademische Verlagsgesellschaft, Wiesbaden 1981. [Brü95] Brüggemann, W.: Ausgewählte Probleme der Produktionsplanung: Modellierung, Komplexität und neuere Lösungsmöglichkeiten. Physica, Heidelberg 1995. [Bus89] Busch, U.: Entwicklung eines PPS-Systems : praktische Anleitung für Auswahl und Realisierung von Produktions-Planungs- und -Steuerungssystemen. Erich Schmidt, Berlin 1989. [CAPOSS] IBM-Deutschland: Capacity Planning and Operation Sequencing System-Extended (CAPOSS-E). Programmbeschreibung Band 1: Planungssystem IBM Form SH12-5422. [CMM67] Conway, R.W.; Maxwell, W.L.; Miller, L.W.: Theory of Scheduling, Addison Wesley, Reading, Mass., USA 1967. [Cor98] Corsten, H.: Produktionswirtschaft: Einführung in das industrielle Produktionsmanagement. Oldenbourg, München 1998. [DaGe95] Dangelmaier, W.; Geck-Mügge, K.: Information model for manufacturing process monitoring and control. ISO TC184/SC4/WG8-P3, working draft, Version 0.3, 1995. [DaHo95] Dangelmaier, W.; Holtkamp, R.: Modellorientiertes Generierungssystem für Fertigungssteuerungssysteme. Zwischenbereich, Berichtszeitraum 1. Mai 1994 bis 31. Mai 1995. DFG Schwerpunktprogramm Modellierung der Produktion, Mai 1995. [Dan99] Dangelmaier, W.: Fertigungsplanung: Planung von Aufbau und Ablauf der Fertigung; Grundlagen, Algorithmen und Beispiele. Springer, Berlin 1999. 212 Literaturverzeichnis [DaWa97] Dangelmaier, W.; Warnecke, H.-J.: Fertigungslenkung: Planung und Steuerung des Ablaufs der diskreten Fertigung. Springer, Berlin 1997. [DaWi93a] Dangelmaier, W.; Wiedenmann, H.: Modell der Fertigungssteuerung; In: Entwicklungen zur Normung von CIM. Hrsg.: Warnecke, H.-J.; Schuster, R. und DIN Deutsches Institut für Normung e. V. Beuth, Berlin 1993. [DaWi93b] Dangelmaier, W.; Wiedenmann, H.: Konzepte für zukünftige flexible Fertigungen: Modellierung von Fertigungsund Steuerungsprozessen. In: DIN (Hrsg.): Referatensammlung CIM-Ergebnisse aus Forschung und Praxis. Stuttgart, 31. März/1. April 1993. Beuth, Berlin 1993, S. 7-1 - 7.46. [DeM79] DeMarco, T.: Structured Analysis and System Specification. Prentice Hall, Englewood Cliffs, N.J. 1979. [DFH95] Dangelmaier, W.; Felser, W.; Holtkamp, R.: OOPUS - a distributed system for modelling, simulation and production planning and control. In: ESPRIT Working Group 9245. Improving Manufacturing Performance in Distributed Enterprise: Advanced Systems and Tools. Edinburgh (U.K.), 1995, S. 79-88. [DGW99] Dangelmaier, W.; Grobbel, R.; Wenski, R.: KOMNET- Kommunikationsplattform für kmU-Netzwerke. In: Elektronische Märkte - Ein Schritt in eine andere Welt. Hrsg.: Dangelmaier, W.; Felser, W. ALB-HNI-Verlagsschriftenreihe Innovative Produktion und Logistik. Paderborn 1999, S. 145-163. [Dij69] Dijkstra, E. W.: Structured Programming, 1969. Reprinted in: Yourdon, E.: Classics in Software Engineering. Yourdon Press. New York 1979. [DIN66261] o.V. DIN 66261: Sinnbilder für Struktogramme nach Nassi-Shneiderman. Hrsg.: Deutsches Institut für Normung. Beuth, Berlin, 1985. [DKS97] Dangelmaier, W.; Kuhn, A.; Schekelmann, A.: Modellierung von Fertigungssystemen zur Simulation und Wissensakquisition. In: Tagungsband zum Graduiertenkollegs-Workshop im Rahmen der 27. Jahrestagung der GI. Hrsg.: Spaniol, O. Erschienen in der Reihe Aachener Beiträge zur Informatik, Band 21, 1997, S. 141-155. [DoDr95] Domschke, W. Drexel, A.: Einführung in Operations-Research. Springer, Berlin 1995. [DSV93] Domschke, W.; Scholl, A.; Voß, S.: Produktionsplanung : ablauforganisatorische Aspekte. Springer, Berlin 1993. Literaturverzeichnis 213 [Du96] Duden: Deutsches Universalwörterbuch. Dudenverlag, Mannheim 1996. [DuIn89] Duden Informatik: Ein Sachlexikon für Studium und Praxis. Dudenverlag, Mannheim 1989. [Eid95] Eidenmüller, B.: Die Produktion als Wettbewerbsfaktor: Herausforderungen an das Produktionsmanagement. Industrielle Organisation, Köln 1995. [Fah95] Fahrwinkel, U.: Methode zur Modellierung und Analyse von Geschäftsprozessen zur Unterstützung des Business Process Reengineering. Dissertation, HNI-Verlagsschriftenreihe, Paderborn 1995. [FFG94] Fandel, G.; Francois, P.; Gubitz, K.-M.: PPS-Systeme: Grundlagen, Methoden, Software, Marktanalyse. Springer, Berlin 1994. [FFG97] Fandel, G.; Francois, P.; Gubitz, K.-M.: PPS- und integrierte betriebliche Softwaresysteme: Grundlagen - Methoden Marktanalyse. Springer, Berlin 1997. [Feh88] Fehrmann, J.: Qualität und Transparenz - Zeitgemäßes Engineering bei Softwareprojekten. In Software für die Fertigung: Produkt mit Problemen. AWF-Ausschuß für Wirtschaftliche Fertigung e.V, Eschborn 1988. [Fel96] Felser, W.: Eine Methode zur Erstellung von Fertigungssteuerungsverfahren aus Bausteinen. Dissertation, HNI-Verlagsschriftenreihe, Paderborn 1996. [FeSi98] Ferstl, O.K.; Sinz, E.J.: Grundlagen der Wirtschaftsinformatik. R. Oldenbourg, München 1998. [Gal92] Gal, T: Grundlagen des Operations-Research: Graphen und Netzwerke, Netzplantechnik, Transportprobleme, ganzzahlige Optimierung. Springer, Berlin, 1992. [Gei83] Geitner, U. W.: Betriebsinformatik für Produktionsbetriebe: REFA-Anwendungsmethodik d. Betriebsinformatik. Hanser, München 1983. [GGR92] Glaser, H.; Geiger, W.; Rohde, V.: PPS - Produktionsplanung und -steuerung: Grundlagen - Konzepte -Anwendungen. Gabler, Wiesbaden 1992. [GJM91] Ghezzi, C.; Jazayeri, M.; Mandrioli, D.: Fundamentals of software engineering. Prentice Hall, Inc., New Jersey 1991. 214 Literaturverzeichnis [Gol84] Goldratt, E. M.: The OPT-Way of thinking. GF+M Symposium München 1984. [Gro74] Große-Oetringhaus, W. F.: Fertigungstypologie unter dem Gesichtspunkt der Fertigungsablaufplanung. Duncker und Humblot, Berlin 1974. [Gro96] Groover, M. P.: Fundamentals of modern manufacturing: materials, processes, and systems. Prentice-Hall, Inc., New Jersey 1996. [Gun85] Guntram, U.: Die Allgemeine Systemtheorie. Ein Überblick. ZfB, 55 (1985) 3, S. 296-323. [Gut79] Gutenberg E.: Grundlagen der Betriebswirtschaftslehre, Erster Band, Die Produktion, 23. Auflage, Berlin et al., 1979. [Hac84] Hackstein, R.: Produktionsplanung und -steuerung (PPS): ein Handbuch für die Betriebspraxis. VDI-Verlag, Düsseldorf 1984. [Han92] Hansen, H.R.: Wirtschaftsinformatik I: Einführung in die betriebliche Datenverarbeitung. Gustav Fischer, Stuttgart 1992. [Harr84] Harrington, J.: Unterstanding the Manufacturing Process: key to successful CAD/CAM implementation. Marcel Dekker Inc., New York 1984. [Hart95] Hartmann, T.: Spezifikation und Klassifikation von Methoden zur Definition hierarchischer Abläufe. Dissertation, HNI-Verlagsschriftenreihe, Paderborn 1995. [Heb89] Hebbeler, M. B.: Standardisierung von Ablauf- und Zeitplanung: einzel und Kleinserienfertigung. TÜV Rheinland, Köln 1989. [HeBu87] Heinrich, L.J.; Burgholzer, P.: Systemplanung: die Planung von Informations- und Kommunikationssystemen. R. Oldenbourg, München 1987. [Hoi93] Hoitsch, H.-J.: Produktionswirtschaft: Grundlagen einer industriellen Betriebswirtschaftslehre. Franz Vahlen, München 1993. [HoDa97] Holthöfer, N.; Dangelmaier, W.: Verteilte und parallele Änderungsrechnung für Flow Shop Probleme auf der Basis einer objektorientierten Plattform. Technical Report tr-rsfb-97-041; Universität Paderborn; Mai 1997. Literaturverzeichnis 215 [Hol98] Holtkamp, R.: Ein objektorientiertes Rahmenwerk zur Erstellung individueller, verteilter Fertigungslenkungssysteme. Dissertation, HNI-Verlagsschriftenreihe, Paderborn 1999. [Hol97] Holtkamp, R.: Modellierungswerkzeug OOPUS: Modellausführung OOPUS/X. In: Modellbasiertes Planen und Steuern der Fertigung. Hrsg.: Dangelmaier, W.; Wiedenmann, H. Beuth, Berlin 1997, S. 142-155. [Hub93] Hub, H.: Betriebsorganisation. Gabler Studientexte, Gabler, Wiesbaden 1993. [ISO94] ISO 10303-11: Product Data Representation and Exchange - Part 11. EXPRESS language Reference Manual. International Organization for Standardization 1994. [JKK82] Jaeger, F.; Klein, A.; Kuntze, W.: Betriebliche Fertigungswirtschaft: betriebswirtschaftliche Auspekte moderner industrieller Produktion. expert, Stuttgart 1982. [Kat94] Katsundo, H.: Analysis and Design of Manufacturing Systems; In: Handbook of design, manufacturing and automation; Hrsg.: Dorf, R. C.; Kusiak, A. John Wiley & Sons, Inc., New York 1994, S. 405-433. [KiKu92] Kieser, A.; Kubicek, H.: Organisation. De Gruyter, Berlin 1992. [KiSt93] Kistner, K.-P.; Steven, M.: Produktionsplanung. Physika, Heidelberg 1993. [Kla99] Klahold, R. F.: Dimensionierung komplexer Produktionsnetzwerke. Dissertation, HNI-Verlagsschriftenreihe, Paderborn 1999. [KlBu75] Klaus, G.; Buhr, M.: Philosophisches Wörterbuch. VEB Enzyklopädie, Leipzig 1975. [KlLi76] Klaus, G.; Liebscher: Wörterbuch der Kybernetik. Dietz, Berlin 1976. [Knu98] Knutilla, A.; et al.: Process Specification Language: Analysis of Existing Representations, NISTIR 6133, National Institute of Standards and Technology, Gaithersburg, MD 1998. [Kuh98] Kuhn, A.: Referenzmodell für Produktionsprozesse zur Untersucheung und Gestaltung von PPS-Aufgaben. Dissertation, HNI-Verlagsschriftenreihe, Paderborn 1998. 216 Literaturverzeichnis [Kur78] Kurbel, K.: Simultane Produktionsplanung bei mehrstufiger Serienfertigung: Möglichkeiten u. Grenzen d. Losgrößen-, Reihenfolge- u. Terminplanung. E. Schmidt, Berlin 1978. [Kur83] Kurbel, K.: Software Engineering im Produktionsbereich. Gabler, Wiesbaden 1983. [Kur93] Kurbel, K.: Produktionsplanung und -steuerung. R. Oldenbourg, München 1993. [LaSc85] Lamport, L.; Schneider, F.B.: Formal Foundation for Specification and Verification. Distributed Systems: Methods and Tools for Specification. An Advanced Course. In: Lecture Notes in Computer Science. Hrsg.: Paul, M.; Siegert, H.J. Springer, Berlin 1985. [LeMa94] Lehner, F.; Maier, R.: Daten, Informationen, Wissen - Versuch einer Begriffsdefinition für die Wirtschaftsinformatik. WHU Koblenz, Schriftenreihe des Lehrstuhls für Wirtschaftsinformatik, Forschungsbericht Nr. 11, Mai 1994. [Lip91] Lippman, St. B.: C++ Einführung und Leitfaden. Addison-Wesley, Bonn 1991. [LMW86] Loeckx, J.; Mehlhorn, K.; Wilhelm, R.: Grundlagen der Programmiersprachen. B. G. Teubner, Stuttgart 1986. [MAS86] Martinez, J.; Alla, H.; Silva, M.: Petri Nets for the Specification of FMSs. In: Modelling and Design of Flexible Manufacturing Systems. Hrsg.: Kusiak, A. Elsevier Science Publishers B.V., Amsterdam, 1986. [Mel94] Melzer-Ridinger, R.: PPS: systemgestützte Produktionsplanung: Konzeption und Anwendung. R. Oldenbourg, München, Wien 1994. [Mer95] Mertens, P.: Integrierte Informationsverarbeitung. Gabler, Wiesbaden 1995. [MSJ94] Mertins, K.; Süssenguth, W.; Jochem, R.: Modellierungsmethoden für rechnerintegrierte Produktionsprozesse: Unternehmensmodellierung, Softwareentwurf, Schnittstellendefinition, Simulation. Hanser, München 1994. [MüMe73] Müller-Merbach, H.: Operations Research: Methoden und Modelle der Optimalplanung. Franz Vahlen, München 1973. [NaSh73] Nassi. I.; Shneiderman, B.: Flowchart Techniques for Structured Programming. SIGPLAN Notices, Band 8, Nr. 8, August 1973, S. 12-26. Literaturverzeichnis 217 [Oßw79] Oßwald, J.: Produktionsplanung bei losweiser Fertigung: Operationale Modelle zur simultanen Programm-, Ablauf- und Losgrößenplanung bei ein- und mehrstufiger Produktion. In: Beiträge zur industriellen Unternehmensforschung. Gabler, Wiesbaden 1979. [Pap90] Pape, D. F.: Logistikgerechte PPS-Systeme: Konzeption, Aufbau, Umsetzung. TÜV Rheinland, Köln 1990. [Pla93] Plapp, C.-U.: Eine objektorientierte Sprache für die Modellierung von Produktionsprozessen und die Implementierung von Leitständen zur Produktionsdurchführungsplanung. In: Textilmanagement, Band 3. Hrsg.: Egbers, G.; Fischer, T., Institut für Textil- und Verfahrenstechnik Denkendorf. expert, Stuttgart 1993. [Reg96] Reger, K.: Konzeption und Realisierung der Konfigurierbarkeit universeller Simulationssysteme. In: Advances in Simulation. Hrsg.: Kerckhoffs, E.; Lehmann, A.; Pierreval, H.; Zobel, R., Society for Computer Simulation Int. Erlangen 1996. [Rit98] Rittgen, P.: Prozeßtheorie der Ablaufplanung: algebraische Modellierung von Prozessen, Ressourcen Restriktionen und Zeit. B. G. Teubner, Stuttgart 1998. [Röt91] Rötzel, A.: Rechnerunterstützte Fertigungsplanung und -steuerung. Hüthig, Heidelberg 1991. [Ros80] Roschmann, K.-H.: Fertigungssteuerung: Einführung und Überblick; Hanser, München 1980. [Run90] Runzheimer, B.: Operations-Research. Gabler, Wiesbaden 1990. [Sai85] Sainis, P.: Die neuesten Tendenzen in der Fertigungssteuerung und ihre Anwendung in der Praxis. In: ZwF 80 (1985) 12, S. 561-566. [Sau93] Sauer, J.: Wissensbasiertes Lösen von Ablaufplanungsproblemen durch explizite Heuristiken. Dissertation. In: Berichte aus dem Fachbereich Informatik, Hrsg.: Die Professoren des Fachbereichs Informatik, Universität Oldenburg. März 1993. [See75] Seelbach, H.: Ablaufplanung. Physika, Würzburg 1975. [ScDa99] Schmidtmann, A.; Dangelmaier, W.: A Specification Language for Production Control. In: International Conference on Quality Manufacturing. Hrsg.: Katz, Z.; du Preez, N. Stellenbosch, South Africa, January 13-15, 1999, S. 195-201. 218 Literaturverzeichnis [Sche98] Scheer, A.-W.: Wirtschaftsinformatik: Referenzmodelle für industrielle Geschäftsprozesse. Springer, Berlin 1998. [Sche91] Scheer, A.-W.: Fertigungssteuerung: Expertenwissen für die Praxis. R. Oldenbourg, München 1991. [Schn94] Schneeweiß, C.: Elemente einer Theorie hierarchischer Planung. OR Spektrum, 16/1994, S. 161168. [Schn96] Schneider, U.: Ein formales Modell und eine Klassifikation für die Fertigungssteuerung. Dissertation, HNI-Verlagsschriftenreihe, Paderborn 1996. [Scho80] Schomburg, E.: Entwicklung eines betriebstypologischen Instrumentariums zur systematischen Ermittlung von Anforderungen an EDV-gestützte Produktionsplanungs- und steuerungssysteme im Maschinenbau. Dissertation, Rheinisch-Westfälische Technische Hochschule Aachen 1980. [Scho98] Schotten, M.: Produktionsplanung und -steuerung: Grundlagen, Gestaltung und Konzepte. Springer, Berlin 1998. [Schr92] Schrödel, O.: Flexible Werkstattsteuerung mit objektorientierten Softwarestrukturen. Hanser, München 1992. [Schu82] Schulz, A.: Methoden des Softwareentwurfs und Strukturierte Programmierung. De Gruyter, Berlin 1982. [ScWi94] Schenck, D.; Wilson, P.: Information Modelling: The EXPRESS Way. Oxford University Press, New York 1994. [Seb92] Sebesta, R. W.: Concepts of programming languages. Benjamin/Cummings Publishing Company, Inc., New York 1992. [SIK98] Schlenoff, C., Ivester, R., Knutilla, A.: A Robust Ontology for Manufacturing Systems Integration. In: Proceedings of the 2nd International Conference on Engineering Design and Automation. Maui, August, 1998. [SIM93] SIMPLE++ SIMPLE++ Referenzhandbuch. AESOP GmbH, Stuttgart 1993. Literaturverzeichnis 219 [SKR96] Schlenoff, C.; Knutilla, A.; Ray, S.: Unified Process Specification Language: Requirements for Modeling Process, NISTIR 5910, National Institute of Standards and Technology, Gaithersburg, MD 1996. [SMJ93] Spur, G.; Mertins, K.; Jochem, R.: Integrierte Unternehmensmodellierung. In: Entwicklungen zur Normung von CIM. Hrsg.: Warnecke, H.-J.; Schuster, R. und DIN Deutsches Institut für Normung e.V. Beuth, Berlin 1993. [Sod74] Sodeur, W.: Empirische Verfahren zur Klassifikation. B. G. Teubner, Stuttgart 1974. [Spu92] Spur, G.: Datenbanken für CIM. TÜV Rheinland, Berlin 1992. [Sta88] Stanek, W.: Rechnergestützte Fertigungssteuerung: math. Methoden. VEB Technik, Berlin 1988. [Swi89] Switalski, M.: Hierarchische Produktionsplanung. Physica, Heidelberg 1989. [Ver93] Vernadat, F.: CIMOSA: Enterprise Modelling and Enterprise Integration Using a ProcessBased Approach. In: Information Infrastructure Systems for Manufacturing (B14). Hrsg.: Yoshikawa, H.; Goossenaerts, J. Elsevier Science B.V., North-Holland 1993. [WaAu96] Warnecke, G.; Augustin, H.; u.a.: Aufbau und Anwendungen eines integrierten Prozeßmodells für die Produktion. Industrie Management, Gito, 5/96, S. 21-25. [Wat90] Watt, D. A.: Programming Language Concepts and Paradigms. Prentice Hall, New York, 1990. [Wei94] Weigelt, M.: Dezentrale Produktionssteuerung mit Agenten-Systemen: Entwicklung neuer Verfahren und Vergleich mit zentraler Lenkung. Dissertation, Gabler, Wiesbaden 1994. [Wes98] Westkämper, E.: Neue Lösungswege für das Auftragsmanagement in vernetzten Strukturen. In: 3. Stuttgarter PPS-Seminar F31. Stuttgart, Juni 1998, S. 9-25. [WiBa98] Wiendahl, H.-H.; Balve, P.: Organisation und PPS ohne Widersprüche - Treffsichere Auswahl von Planungsmethoden. PPS Management 3 (1998) 3, S. 10-13. 220 Literaturverzeichnis [Wie98] Wiendahl, H.-H.: Auftrags- und Informationsmanagement in Produktionsnetzwerken - Konzepte und Erfahrungsberichte. In: 3. Stuttgarter PPS-Seminar F31. Stuttgart, Juni 1998. [Wil93] Williams, T. J.: The Purdue Enterprise Reference Architecture. In: Information Infrastructure Systems for Manufacturing (B-14). Hrsg.: Yoshikawa, H.; Goossenaerts, J. Elsevier Science B.V., North-Holland, 1993. [WNS96] Wiendahl, H.-P.; Nyhuis, P.; Scholtissek, P.; Wahlers, T.: Produktionsplanung und -steuerung, Ausgewählte Strategien und Verfahren der Produktionsplanung und -steuerung. In: Betriebshütte. Hrsg.: Akademischer Verein Hütte e.V.; W. Eversheim; G. Schuh. Springer, Berlin 1996, S. 14-83 bis 14-114. [Wil84] Wildemann, H.: Flexible Werkstattsteuerung durch Integration von KanbanPrinzipien, CW-Publikationen, München 1984. [Wir75] Wirth, N.: Algorithmen und Datenstrukturen. B.G. Teuber Studienbücher Informatik, Stuttgart 1975. [Zäp82] Zäpfel, G.: Produktionswirtschaft: operatives Produktions-Management. De Gruyter, Berlin 1982. [Zäp94] Zäpfel, G.: Entwicklungsstand und -tendenzen in PPS-Systemen. In: Handbuch Produktionsmanagement. Hrsg.: Corsten, H. Gabler, Wiesbaden, 1994, S. 719745. [Zei91] Zeis, G.: Methoden zur Steigerung der Wiederverwendbarkeit von Softwarekomponenten in der Fertigungsautomatisierung. Dissertation, Arbeitsberichte des Instituts für mathematische Maschinen und Datenverarbeitung, Erlangen 1991. [ZäMi87] Zäpfel, G.; Missbauer, H.: Produktionsplanung und -steuerung für die Fertigungsindustrie - ein Systemvergleich. In: Zeitschrift für Betriebswirtschaft (ZfB), 9/1987, S. 882-900. [ZäMi88] Zäpfel, G.; Missbauer, H.: Neuere Konzepte der Produktionsplanung und -steuerung in der Fertigungsindustrie. In: WiSt, 17.Jg., 1988, S. 127-131. [ZäPi96] Zäpfel, G.; Piekarz, B.: Supply chain Controlling: interaktive und dynamische Regelung der Materialund Warenflüsse. C. Ueberreuter, Wien 1996. [Zül89] Zülch, G.: Der strategische Steuerungsraum - Ein Ansatz zur Systematisierung von Strategien der Fertigungssteuerung, VDI-Zeitschrift, No. 5, 1989. 8 Anhang 8 221 Anhang Im folgenden soll kurz auf die Nutzung der Spezifikationssprache im Umfeld der Fertigungslenkung eingegangen werden. Aufgrund der begrenzten Möglichkeiten einer exakten Bestimmung von optimalen Abläufen und Verfahren in der Fertigungslenkung werden häufig Simulationen zur Lösung dieser Probleme genutzt. Inwieweit die Spezifikationssprache als Hilfsmittel für derartige Simulationen dienen kann, wird hier dargestellt. Anschließend wird die Einbindung der Fertigungslenkung in den Unternehmensworkflow, von dem sie ein Teilbereich ist, untersucht. Dabei werden die Vorteile der Anwendung der Spezifikationssprache für diesen Problembereich herausgestellt. 8.1 Nutzung der Spezifikationssprache zur Simulation der Fertigungslenkung Ebenso wie die Spezifikationssprache als Grundlage für die Erstellung eines Fertigungslenkungssystems bzw. eines ausführbaren Programms für die Fertigungslenkung dienen kann, ist es auch möglich, auf ihr basierend eine Simulation der Fertigungslenkung vorzunehmen. Mit Hilfe dieser Simulation kann über die Verwendung spezieller Abläufe und Funktionen respektive Verfahren entschieden und ein möglichst optimales Fertigungslenkungssystem entwickelt werden. Simulationen werden heute bereits in vielen PPS-Systemen zur Entscheidungsunterstützung genutzt und zwar vor allem in Fertigungsleitständen zur Bestimmung der Reihenfolge einzulastender Produktionsaufträge auf den Fertigungsmitteln und zur Terminierung dieser Aufträge. Weitere Aufgabengebiete sind die Optimierung von Kapazitätsbelastungen und die Materialverfügbarkeit.1 Im Gegensatz zu einer Simulation mit Hilfe der Spezifikationssprache bieten derzeitige Simulationssysteme nur eine Anpassung der zugrunde liegenden Modelldaten und sind dabei entscheidend von den jeweiligen Modellprämissen abhängig. Auf die Abläufe und Funktionen der Fertigungslenkung üben sie keinen direkten Einfluß aus. Einer Simulation auf Basis der Spezifikationssprache liegt das Modell der Fertigung als Struktur- und Datenbasis zugrunde. Daneben muß ein Zielsystem für die Fertigungslenkung erstellt werden, das sich in Teilziele bezüglich der betrachteten Partialmodelle untergliedern läßt. Auf dem Gesamtmodell oder auch den Teilmodellen erfolgt dann eine Simulation alternativer Fertigungslenkungsabläufe und Funktionen. Die Ergebnisse werden anschließend anhand der festgelegten Zielvorstellungen validiert und es wird eine Entscheidung bezüglich der vorteilhaftesten Alternative gefällt. Auf der Grundlage dieser Auswahl wird anschließend ein 1. Vgl. [FFG97] 222 8 Anhang Fertigungslenkungssystem erstellt, das den Zielvorstellungen genau entspricht. Der Vorteil der Nutzung der Spezifikationssprache im Rahmen dieser Anwendung liegt darin begründet, daß sie die Abläufe und Funktionen der Fertigungslenkung, auf denen die Simulation aufbaut, genau spezifiziert, und somit den Prozeß der Erstellung des Simulationsmodells und der Durchführung der Simulationsläufe bedeutend vereinfacht und beschleunigt. Darüber hinaus ermöglicht sie neben der Anpassung der Daten auch eine effiziente Adaption der Abläufe und Funktionen. Spezifikationssprache Modell Alternativen Alternativen Simulationsläufe Simulation Auswertungen Fertigungslenkungssystem Abbildung 7-1:Simulation der Fertigungslenkung 8.2 Einbindung der Fertigungslenkung in den Unternehmensworkflow Die Fertigungslenkung kann als ein Teilbereich des Workflows2 Auftragsbearbeitung gesehen werden, der wiederum ein Teilaspekt des gesamten Unternehmensworkflows3 ist. Sie ist dabei abgesehen von der Produktion eingebunden in verschiedene andere Unternehmensbereiche, wie z.B. die Beschaffung (Einkauf), den Versand (Vertrieb) u.a. Mit diesen Bereichen bestehen vielfältige Austauschbeziehungen bezüglich Informationen (Daten) und Gütern (Fertigungselementen), die direkte Einwirkungen auf die Abläufe und Funktionen der Fertigungslenkung haben. Diese Beziehungen erfordern klar definierte Schnittstellen zwischen den Unternehmensbereichen und eine gemeinsame Datenbank, auf die alle Workflows gleichermaßen zugreifen können.4 2. Ein Workflow ist eine partielle oder vollständig geordnete Menge von Tasks. Tasks wiederum bilden die Basisbauelemente für Workflows. 3. Dieses gilt allerdings nicht für die Unternehmen, deren einzige Auftragsauslösungsart die Produktion auf Lager ist. 4. Vgl. [DGW99] 8 Anhang 223 Wie die folgende Abbildung zeigt, gibt es normalerweise für die Durchführung eines Fertigungsauftrages drei Vorgehensmöglichkeiten, die abhängig von gewissen äußeren Bedingungen sind. Entweder ist das angeforderte Produkt auf Lager und kann dort direkt entnommen werden oder das Produkt wird fremdgefertigt und muß beim Hersteller bestellt werden oder es wird selbst hergestellt. In diesem letzten Fall wird die Fertigungslenkung benötigt, um die Erstellung des Gutes zu planen und zu steuern. In den beiden anderen Fällen wird die weitere Auftragsbearbeitung von anderen Bereichen, wie z.B. dem Einkauf oder dem Versand, durchgeführt. Die Fertigungslenkung erhält die für den Auftrag nötigen Daten aus der gemeinsamen Datenbank. Einkauf Fremdfertigung Kundenauftrag Fertigung Produkt auf Lager Lieferung Abbildung 7-2:Workflow vom Auftrag zur Lieferung Die Eigenfertigung erfolgt in den meisten Fällen nach den in Bild 7-3 angegebenen Schritten. Diese starre sukzessive Vorgehensstruktur widerspricht jedoch der Flexibilität und dem hierarchischen Aufbau von Workflowsystemen und zeigt auch sonst verschiedene bereits ausführlich diskutierte Schwächen bezüglich Genauigkeit und Effizienz der Fertigungslenkung.5 Durch die Nutzung der Spezifikationssprache kann diese Struktur aufgebrochen werden und die einzelnen Abläufe und Funktionen respektive Verfahren der Fertigungslenkung können auf den verschiedenen Hierarchiestufen des Workflows flexibel eingesetzt und kombiniert werden. Die Fertigungslenkung ist insoweit nicht mehr als monolithischer Block zu verstehen, sondern kann in Partialmodelle zerlegt werden, die einzeln durchgeführt werden können. Die sich aus der partiellen Entkopplung des Fertigungslenkungsproblems ergebende Notwendigkeit der Abstimmung zwischen den Teilbereichen wird ebenfalls durch die Spezifikationssprache und das ihr zugrunde liegende Modell der Fertigung geregelt. Der Workflow muß jedoch nicht auf ein Unternehmen beschränkt sein, sondern kann z.B. Zulieferer und Abnehmer miteinander verbinden. In diesem Fall spricht man von einer „Lieferkette“ oder „Supply Chain“, also einem Wertschöpfungsverbund verschiedener Partner (Lieferanten, Logistische Dienstleister, Endkunden).6 Um diesen Verbund möglichst wirt5. Vgl. [Swi89], [DaWa97], u.a. 6. Vgl. [ZäPi96] 224 8 Anhang Stücklistenauflösung Bedarfsrechnung Bestandsrechnung sukzessive Losgrößenbildung Losgrößenverfahren Durchlaufterminierung vorwärts-/rückwärts Terminierung Mengen- und Terminplanung Freigabe Feinplanung Reihenfolgeverfahren / Belegungsverfahren Durchführung Abbildung 7-3:Sukzessive Mengen- und Terminplanung schaftlich und rentabel zu gestalten, sollte die Fertigungslenkung der Verbundpartner verknüpft und ihre Vorgehensstrategien aufeinander abgestimmt werden. Ein derartiges Vorgehen wird durch die Nutzung der Spezifikationssprache als gemeinsames, umfassendes und einheitliches Beschreibungsmittel entscheidend unterstützt und vereinfacht.