Dialog-geführtes Dreiecksverfahren nach SCHMIGALLA

Schmigalla Methode

In jedem Fabrikplanungsprojekt wird man irgendwann damit konfrontiert, eine optimale Anordnung der Arbeitsplätze oder Fertigungseinrichtungen zu finden. Eine gute Ausgangsbasis ist die Methode nach SCHWERDTFEGER. Sie ist aber sehr grob. Im Detail hilft sie nicht weiter. Interessanter ist das Dreiecksverfahren nach SCHMIGALLA. Das wiederum ist detaillierter, aber grafisch aufwändig zu erstellen. Mit ein wenig Coding lässt sich das aber so ändern, dass die Methode richtig Spaß macht. Aber sehen Sie selber.

In der Fabrikplanung spricht man bei der Anordnungsplanung von Objekt-Platz-Zuordnungsoptimierung. Gemeint sind damit hauptsächlich die Anordnung von Fertigungseinrichtungen in einem Fabrikhallenbereich. Aber genauso die Anordnung von Hallenbereichen in einem Fabriksystem oder der Fabriksysteme in einer Gesamtfabrik. Es wird auch in Detailbereichen, beispielsweise im Lager eingesetzt, um Lagergütern verschiedene Lagerfächer zuzuordnen.

Dreiecksverfahren nach SCHMIGALLA

Um diese Anordnung nach Kriterien zu optimieren, gibt es verschiedene Verfahren. Ein Optimierungsprinzip ist das genannte Dreiecksverfahren nach SCHMIGALLA. Es ist wie SCHWERDTFEGER ein grafisches Verfahren, basiert auf dem Ablauf einer linearen Optimierung. Die Methode gibt es seit 1970 in mehreren Verbesserungsstufen.

In der Ursprungsausführung müssen neben den Objekten auch die Plätze – die möglichen Standorte – bekannt sein. Als Minimierungskriterium wird die Transporthäufigkeit benutzt. Eine detaillierte Erklärung der Methode stellt Kurt W. Helbing in seinem Handbuch Fabrikprojektierung vor.

Das modifizierte Dreiecksverfahren nutzt die Transporthäufigkeit zwischen den Objekten und nimmt keinen Bezug mehr zu den Plätzen. Zur Betrachtung dazu kommen die Systemein- und ausgänge. Die Plätze ergeben sich durch die Anordnung auf dem Dreiecksraster.

Grundlage bildet die Von-Nach-Matrix über die Transporthäufigkeit. Das Optimierungsziel bleibt bei der Gesamtreduzierung der notwendigen Bauteilbewegungen.

Schmigalla Berechnungsmatrix
Reihenfolgeberechnung nach Schmigalla an einem Beispiel

SCHMIGALLA geht in Schritten vor:

  1. Berechnung der Von-Nach-Matrix mit der Transporthäufigkeit
  2. Auswahl des maximalen Transportwertes in der Matrix und Anordnung der abhängigen beiden Arbeitsplätze auf dem Dreiecksraster
  3. Erweiterung der Von-Nach-Matrix mit einer Summenzeile, gefüllt mit den Transporthäufigkeiten alle verbundenen Objekte mit den ausgewählten
  4. Auswahl des Objekts mit dem höchsten Summenwert
  5. Einfügen des Objekts auf das Dreiecksraster mit Auswahl der geeigneten Position auf dem Raster
  6. Wiederholung ab Schritt 3 bis alle Objekte geplant sind

Die Wahl des optimalen Layoutplatzes wird durch den Planer entschieden. Er kann auch noch nach dem Einfügen des nächstens Objekts optimiert werden.

Objektplatz im Schmigalla Dreiecksraster
Abbildung 2: Nächsten Objektplatz im Dreicksraster finden

Hoher manueller Aufwand

Mit der Methode lässt sich zuverlässig eine transportoptimierte Objekt-Zuordnung entwickeln. Es ist aber ein langwieriger Prozess, das jeweils nächste Objekt zu bestimmen und auf einem Dreiecksraster einzuzeichnen. Erfolgt das mit Standardsoftware wie Microsoft Word, Excel, Powerpoint oder Viso kommt dazu, dass erst Shapes eingefügt, benannt, formatiert und mit Linien verbunden werden müssen. Am besten dazu noch mit der auf das Transportvolumen angepassten Liniendicke. 

Aber die Methode funktioniert auch mit einer relativ hohen Objektanzahl gut. Mit jedem zusätzlichen Objekt vergrößert sich jedoch die Von-Nach-Matrix und erhöht den manuellen Aufwand weiter.

Teilautomatisierung mit Dialog-Führung

Wie lässt sich der Aufwand reduzieren und der Prozessablauf einfacher in den Griff bekommen? Die Von-Nach-Matrix liegt als Tabelle mit Zeilen und Spalten vor. Für das Finden des nächsten zu platzierenden Objektes sind Berechnungen notwendig. Arbeitsgrundlage sind demnach zwei Dokumente: eine Berechnungstabelle ausgehend von der Von-Nach-Matrix und ein Zeichnungsdokument mit dem Dreiecksraster und den platzierten Objekten.

Das spricht für mich für den Einsatz von Microsoft Excel. In einem Dokument lassen sich die Berechnungstabellen, das Zeichnungsraster und Programmcode in VBA unterbringen.

Im SCHMIGALLA Ablauf beschäftigen sich die meisten Schritte mit dem Ermitteln des nächsten zu platzierenden Objektes. Der Algorithmus dahinter reißt aber den Planer bei jedem Objekt / Arbeitsplatz wieder aus der Konzentrationsphase, um eine optimierte Anordnung zu entwickeln. Deswegen setze ich hier mit VBA an, den Algorithmus automatisch zu berechnen und dem Planer direkt das nächste Objekt zum Platzieren anzubieten. In der Umsetzung eignet sich dafür am besten ein Visual Basic Formular. Der Dialog braucht nicht viele Elemente zu enthalten. Es muss eine Möglichkeit zum Starten des Planungsvorgangs geben und eine weitere zum Einfügen des nächsten Objektes. Mehr ist gar nicht nötig. Damit kann sich der Planer voll auf das Finden der passenden bestmöglichsten Layoutposition konzentrieren.

Visual Basic Form für Dialog-geführtes Dreieckverfahren nach SCHMIGALLA
Abbildung 3: Visual Basic Formular für die Dialog-geführte SCHMIGALLA Methode

Von-Nach-Matrix

Die Basis für die Anwendung ist die Von-Nach-Matrix oder die abgeleitete Transporthäufigkeitsmatrix. Wie sich diese einfach erstellen lässt, habe ich im Artikel Materialflussmatrix aus ERP-Daten beschrieben. Genau diese Daten verwende ich auch hier. Das bedeutet, dass ich nicht eine Matrix verwende, sondern eine Von-Nach-Tabelle. Die Von-Nach-Tabelle ist die datentechnische Vorstufe zur Matrix, die Quelle vor der Durchführung einer Kreuztabellen-Abfrage, welche die Matrix aufbaut. Der Tabellenaufbau besteht nur aus drei Feldern:

  • Von-Objekt
  • Nach-Objekt
  • Quantitative Transportanzahl
Von-Nach-Tabelle Dialog-geführtes Dreieckverfahren nach SCHMIGALLA
Abbildung 4: Von-Nach-Tabelle als Basis für die Dialog-geführte SCHMIGALLA Methode

Für das Finden des nächsten Objektes ist es notwendig Informationen darüber zu haben. Deswegen gibt es eine zweite Tabelle, in der die Objekte abgelegt sind. Dort werden auch die Bewertungen zum nächsten Objekt gespeichert und ausgewertet.

Informationen zu Objekten Dialog-geführtes Dreieckverfahren nach SCHMIGALLA
Abbildung 5: Informationen zu den Objekten / Arbeitsplätzen und Verknüpfung zur Von-Nach-Tabelle

Hier spielt auch der Wechsel von der Von-Nach-Matrix zur Von-Nach-Tabelle seine Stärken aus. Es lassen sich sehr einfach zu jedem Objekt die Eingangs- und Ausgangsverbindungen über einen SVERWEIS anzeigen.

Das Planungsraster aufbauen

Ein weiter Pluspunkt für Microsoft Excel ist, dass sich das typische Dreiecksraster sehr komfortabel mit einer einfachen Rahmenformatierung aufbauen lässt.

Dafür müssen die Spaltenbreite und Zeilenhöhe aufeinander abgestimmt werden. In meinem Raster verwende ich als Spaltenbreite 8,67 und als Zeilenhöhe 65,40.

Dreicksraster mit Excel Formatierung fürDialog-geführtes Dreieckverfahren nach SCHMIGALLA
Abbildung 6: Dreicksraster mit Excel Rahmenformatierung erzeugt

Objekte auf dem Raster

Objekte bzw. Arbeitsplätze werden als Shapes eingefügt. Wie das mit VBA funktioniert, beschreibe ich anhand der SCHWERDTFEGER Methode im Artikel Kreisverfahren mit Excel-Unterstützung. Ich verwende hier die gleichen Routinen, um Shapes einzufügen und Shapes mit Linienelementen zu verbinden. Inspiration, wie das funktioniert, holen Sie sich am besten im Beispiel als Download ab.

Start-Objekte finden

In diesem Artikel möchte ich mich aber mit der Umsetzung der Methode in VBA beschäftigen. Im ersten Schritt müssen die beiden Start-Objekte identifiziert werden. Auch hier ist es wieder von Vorteil, die Von-Nach-Tabelle zu verwenden. Die Start-Objekte sind die Zeile in der Tabelle mit dem höchsten Wert in der Transportspalte.

Wir finden den Wert indem wir durch die Tabelle loopen und bei jedem höheren Wert den Namen des Von- und Nach-Objektes speichern.

i = 1
  JBmax = 0
  Von = ""
  Nach = ""
  Do
    i = i + 1
    JB = StrToDbl(Sheets("FromTo-Matrix").Cells(i, 6))
    If JB > JBmax Then
      JBmax = JB
      Von = Sheets("FromTo-Matrix").Cells(i, 1)
      Nach = Sheets("FromTo-Matrix").Cells(i, 2)
    End If
  Loop Until Sheets("FromTo-Matrix").Cells(i, 1) = ""

Die beiden gefundenen Arbeitsplätze werden dann auf dem Planungsraster eingefügt mit den Methoden des oben angesprochenen Artikels. In diesem Fall ist es aber hilfreich, die Left und Top Position der Shapes so zu berechnen, dass sie schon auf passenden Dreieckspunkten abgelegt werden.

Für die Berechnung kann auf die eingestellten Spaltenbreiten und Zeilenhöhen zugegriffen werden und eine Position ermittelt werden:

z. B. 6 Raster in X, 4 Raster in Y

LeftPos = ActiveSheet.Columns(1).Width * 6 – ObjectShape.Height / 2

TopPos = ActiveSheet.Rows(1).Height + ActiveSheet.Rows(2).Height + ActiveSheet.Rows(3).Height * 4 - ObjectShape.Height / 2)

Nächste Objekte ermitteln

Genau wie beim manuellen Ablauf der Methode ist der höchste Aufwand im bestimmen des nächsten Objektes.

In der Software-Umsetzung nutze ich zur Speicherung der Bewertungssummen eine Spalte in der Tabelle der Objekte (Sheet Workcenters).

Bevor das passiert, werden aber alle Felder auf 0 zurückgesetzt. Bei mir ist es die Spalte 14.

  i = 1
  Do
    i = i + 1
    Sheets("Workcenters").Cells(i, 14) = 0
  Loop Until Sheets("Workcenters").Cells(i, 2) = ""

In der eigentlichen Berechnung wird die Von-Nach-Tabelle durchlaufen und geprüft, ob die Transporthäufigkeit des Von- und Nach-Objektes in der Objekt-Tabelle hinzugefügt werden darf.

Das geschieht im über die boolesche Variable canAdd.

  i = 1
  Do
    i = i + 1
    Von = Sheets("FromTo-Matrix").Cells(i, 1)
    Nach = Sheets("FromTo-Matrix").Cells(i, 2)
    wert = Sheets("FromTo-Matrix").Cells(i, 6)
    
    canAdd = False
    j = 1
    Do
      j = j + 1
      If (Sheets("Workcenters").Cells(j, 2) = Von Or Sheets("Workcenters").Cells(j, 2) = Nach) And Sheets("Workcenters").Cells(j, 12) = "X" Then canAdd = True
    Loop Until Sheets("Workcenters").Cells(j, 2) = ""
    If canAdd = True Then
      Call WorkcenterAddSum(Von, wert)
      Call WorkcenterAddSum(Nach, wert)
    End If
    
  Loop Until Sheets("FromTo-Matrix").Cells(i, 1) = ""

Ein hinzuaddieren zur Berechnungssumme ist nur erlaubt, wenn eines der beiden Objekte bereits auf den Dreiecksraster eingefügt wurde. Deswegen werden auch bereits eingefügte Objekte in der Spalte 12 Geplant mit einem X gekennzeichnet.

Sub WorkcenterAddSum(workcenter As String, value As Double)
Dim i As Integer
Dim s As String
  
  i = 1
  Do
    i = i + 1
    If Sheets("Workcenters").Cells(i, 2) = workcenter And Sheets("Workcenters").Cells(i, 12) = "" Then
      Sheets("Workcenters").Cells(i, 14) = CDbl(Sheets("Workcenters").Cells(i, 14)) + value
    End If
  Loop Until Sheets("Workcenters").Cells(i, 2) = ""
End Sub

Damit ist die Berechnung abgeschlossen. Im letzten Schritt kann der höchste Wert in der Objekt-Tabelle gesucht werden, der noch nicht das Flag Geplant hat. Damit ist das nächste einzufügende Objekt gefunden.

Es wird in der Variablen NextWorkcenter gespeichert.

  i = 1
  wertmax = 0
  Do
    i = i + 1
    If Sheets("Workcenters").Cells(i, 12) <> "X" Then
      wert = StrToDbl(Sheets("Workcenters").Cells(i, 14))
      If wert > wertmax Then
        wertmax = wert
        NextWorkcenter = Sheets("Workcenters").Cells(i, 2)
      End If
    End If
  Loop Until Sheets("Workcenters").Cells(i, 2) = ""

Theoretisch kann es vorkommen, dass kein Objekt auf diese Weise gefunden wird. Passieren könnte das bei unabhängigen Materialflüssen zwischen zwei Produktionslinien. In diesem Fall wird einfach der nächst-höhere Wert aus der Objekt-Tabelle ausgewählt. Es wird dann nicht auf das berechnete Feld zurückgegriffen, sondern auf die Summe des Transportaufkommens.

In meinem Fall ist das nicht mehr die Spalte 13, sondern die Spalte 14.

  If NextWorkcenter = "" Then
    i = 1
    wertmax = 0
    Do
      i = i + 1
      If Sheets("Workcenters").Cells(i, 12) <> "X" Then
        wert = StrToDbl(Sheets("Workcenters").Cells(i, 13))
        If wert > wertmax Then
          wertmax = wert
          NextWorkcenter = Sheets("Workcenters").Cells(i, 2)
        End If
      End If
    Loop Until Sheets("Workcenters").Cells(i, 2) = ""
  End If

Anwendung an „Schneckengetriebeproduktion“

Wie sieht nun das ganze System in der Anwendung aus? Dafür möchte ich Ihnen ein Beispiel zeigen. Vorstellen möchte ich meine Dialog-geführte Methode am Beispiel einer Schneckengetriebeproduktion. Diese Produktion ist ein Fallbeispiel von Prof. Dr.-Ing. Uwe Prêt (HTW Berlin) und schon einige Jahre alt. Das Dokument erklärt aber immer noch hervorragend die Vorgehensweise einer Fabrikplanung und ist eines meiner Lieblingsbeispiele in diesem Bereich. Die Quelldaten können immer noch von der Webseite von Uwe Prêt geladen werden (http://www.uwe-pret.de/getriebe.pdf). Wenn Sie es noch nicht kennen, schauen Sie es sich unbedingt an.

Prof. Dr.-Ing. Prêt stellt hier auf über 80 Seiten alle Tätigkeiten einer Planung vor, darunter auch eine Layoutoptimierung nach SCHMIGALLA.

Das Beispiel seiner Reihenfolgebestimmung finden sie unter Abbildung 1 bereits weiter oben im Artikel.

Aus seiner Berechnung ergibt sich folgende Einfüge-Reihenfolge der Objekte auf das Dreiecksraster:

  1. Entgratplatz
  2. WA
  3. CU72H
  4. DMU50V
  5. WE
  6. ZX1
  7. TNC65
  8. ABS280
  9. PE150C
  10. RISZ
  11. PF150

Nachbildung der Schneckengetriebeproduktion mit dem Dialog-geführten Verfahren

Die Eingangsdaten für die Methode habe ich in die Tabellen der Objekte und der Von-Nach-Tabelle überführt. Die entsprechenden Tabellen sind bereits im oberen Teil des Artikels abgebildet.

Der Start des Dialogs erfolgt auf dem Planungsraster. Dort habe ich einen Button eingefügt der eine SUB aufruft, welche das Formular anzeigt. Das funktioniert nur, wenn die SUB in einem Modul untergebracht wird.

Sub ShowSchmigallaForm()
  Unload SchmigallaForm
  SchmigallaForm.Show
End Sub

Damit Sie ein Gefühl bekommen, wie intuitiv und schnell mit meiner Dialog-geführten SCHMIGALLA Methode eine optimierte Anordnung entsteht, schauen Sie sich am besten dieses Video an.

Es zeigt die vollständige Layoutplanung im Dreiecksraster der Schneckengetriebeproduktion in 2 min.

Die Bilderliste zeigt nochmal die einzelnen Schritte zum Durchklicken. Die Dialog-geführte Schmigalla Methode bietet Ihnen als Planer durch den Summenalgorithmus dieselbe Reihenfolge an, die Prof. Dr.-Ing. Prêt in seiner Ausführung berechnet hat.

  • Dialog-geführte Schmigalla Methode Schritt 1
  • Dialog-geführte Schmigalla Methode Schritt 2
  • Dialog-geführte Schmigalla Methode Schritt 3
  • Dialog-geführte Schmigalla Methode Schritt 4
  • Dialog-geführte Schmigalla Methode Schritt 5
  • Dialog-geführte Schmigalla Methode Schritt 6
  • Dialog-geführte Schmigalla Methode Schritt 7
  • Dialog-geführte Schmigalla Methode Schritt 8
  • Dialog-geführte Schmigalla Methode Schritt 9
  • Dialog-geführte Schmigalla Methode Schritt 10
  • Dialog-geführte Schmigalla Methode Schritt 11
  • Dialog-geführte Schmigalla Methode Schritt 12
  • Dialog-geführte Schmigalla Methode Schritt 13
  • Dialog-geführte Schmigalla Methode Schritt 14
  • Dialog-geführte Schmigalla Methode Schritt 15

Auf diese Weise entwickeln Sie sehr komfortabel und schnell verschiedene Varianten für die weitere Layoutplanung und können Ihren Fokus immer auf die Positionierung der Objekte richten.

Los geht’s mit Coding

Ich hoffe ich konnte Ihnen ein wenig Lust bereiten, sich mit Layoutplanung, der SCHMIGALLA Methode und VBA zu beschäftigen.

Den größten Entwicklungsschritt in Richtung Coding machen Sie, wenn Sie sich die Listings mit Ihrem eigenen Excel Formular verbinden und den Rest der Thematik Shapes und Pfeile selber herausfinden.

Falls es nicht klappt, können Sie mir gerne eine Mail an info@techpluscode.de schreiben und das fertige Tool bekommen.

Viel Spaß beim Optimieren!

Schauen Sie sich auch weitere Artikel zum SCHMIGALLA Dreiecksverfahren an. Alle Artikel finden Sie hier.

Links und Literatur

Kurt W. Helbing, 2020, Handbuch Fabrikprojektierung, ab Seite 1155

Hans Schmigalla, 1970, Methoden zur optimalen Maschinenanordnung

Prof. Dr.-Ing. Prêt, 2018, Fabrikplanung: Teilefertigungs- und Montageprojekt „Schneckengetriebeproduktion“, http://www.uwe-pret.de/getriebe.pdf

Artikel Materialflussmatrix aus ERP-Daten

Artikel Kreisverfahren mit Excel-Unterstützung

Weitere Artikel zum Excel Schmigalla Tool

Download

Excel Schmigalla Tool

Excel-Arbeitsmappe mit Vorlagen zu Dreiecksraster, Beispiel Schneckengetriebeproduktion ohne Makros

Dieser Beitrag hat 8 Kommentare

Kommentar verfassen