Transportintensitäten im Fabrik-Layout selber visualisieren

Transportintensitäten im Fabrik-Layout selber visualisieren

Die Transportintensität zeigt direkt an, wo sich etwas in der Fabrik bewegt und wo nicht. Sie kann Engpässe im Materialfluss aufzeigen oder Bereiche identifizieren wo Überlastung droht. Durch die Untersuchung der Transportintensität können Sie die Auslastung von Arbeitskräften, Maschinen und Transportmitteln optimieren, indem Sie die Transportwege und -zeiten minimieren. Genauso ermöglicht sie die Identifizierung von weiteren Optimierungspotenzialen bei der Lagerung und beim innerbetrieblichen Transport von Materialien, um unnötige Wege zu vermeiden. Deswegen bietet die Analyse der Transportintensität in Fabriken insgesamt wichtige Erkenntnisse als Grundlage für Effizienzsteigerung und Optimierung des Produktionsprozesses.

Gelingt eine Optimierung trägt das zur Verbesserung der Sicherheit am Arbeitsplatz bei, weil Sie ggf. unnötige Kreuzungen und Interaktionen zwischen Mitarbeitern und Transportmitteln minimieren. Zusätzlich hilft das auch die Umweltauswirkungen durch den geringeren Energieverbrauch und die Verringerung von Emissionen zu reduzieren.

Wie lässt sich die Transportintensität ermitteln und darstellen? In diesem Artikel erfahren Sie nicht nur das. Sie bekommen auch das Handwerkszeug, dass Sie eine Visualisierung selber programmieren können.

Die Visualisierung einer Analyse ist komplex

Alleine die Durchführung einer Transportintensitätsanalyse ist schon eine komplexe Aufgabe. Sie braucht sorgfältige Planung, eine korrekte Datenerfassung oder saubere Datenbereitstellung aus dem ERP-System und detaillierte Berechnungen. Ausgangspunkt ist die Transport-Matrix des zu analysierenden Bereichs.


Titelbild

Der Artikel Materialflussmatrix aus ERP-Daten beschreibt die Berechnung einer Transport-Matrix aus ERP-Daten.


Wie Sie aber zu der Transport-Matrix kommen, spielt aber keine Rolle. Sie kann auch auf Beobachtung oder Sensordaten basieren.

Meiner Einschätzung nach, muss sie sogar aus verschiedenen Teilen zusammengesetzt werden, da nie alle Informationen in einem System verfügbar sind. Viele Analysen enthalten nur die Materialtransporte für die Produkte. Dort liegen am häufigsten genaue ERP-Daten vor. Aber auch Hilfstransporte, wie Entsorgungsprozesse, Vorrichtungsbereitstellungen, Werkzeugtransporte oder Personenverkehr beeinflussen unter Umständen die Transportintensität stark und sollten unbedingt mit aufgenommen werden.

Am Ende der Analyse entsteht immer eine Transport-Matrix.

Beispiel einer Transport-Matrix mit Transportvorgängen zwischen Arbeitsplätzen (von Zeile nach Spalte)
Beispiel einer Transport-Matrix mit Transportvorgängen zwischen Arbeitsplätzen (von Zeile nach Spalte)

Und genau hier liegt das Problem. Wie lassen sich aus dieser Matrix Optimierungspotenziale ableiten?

Aus Berechnungstabellen ist das fast nicht machbar. Möglich wird es, wenn Sie es im Fabrik-Layout visualisieren. Nur hier ist eine klare und leicht verständliche Präsentation der komplexen Daten darstellbar. Dann lassen sich Transportmuster, Engpässe oder beruhigte Bereiche erkennen und daraus Optimierungen und Inputs für KVP/Lean Workshops entwickeln.

Materialflüsse darstellen

Im Artikel Materialflüsse können einfach sein! finden Sie schon eine Möglichkeit, die Transport-Matrix im Fabrik-Layout zu visualisieren.


Titelbild

Der Artikel zeigt, wie Sie ebenfalls mit Microsoft Excel, Materialflüsse anhand der Transport-Matrix direkt in Ihrem Fabrik-Layout visualisieren können. Unter dem obigen Link können Sie auch ein Beispielprojekt mit Quellcode gratis herunterladen.


Damit erhalten Sie fast auf Knopfdruck eine gute Übersicht, zwischen welchen Arbeitsplätzen Transportbeziehungen bestehen. Für eine Layoutplanung oder Restrukturierung von Arbeitsplätzen reicht diese Visualisierung völlig aus und bietet in Punkto Geschwindigkeit und Interaktivität alle Vorteile. Beim Verschieben eines Arbeitsplatzes bleiben die Materialflusspfeile angedockt und zeigen live, ob ein neuer Layoutplatz bessere Transportbedingungen schafft.

Materialflussdarstellung zwischen Arbeitsplätzen mit Pfeilen
Materialflussdarstellung zwischen Arbeitsplätzen – perfekt für Positionsplanungen, Transportanalysen können damit nicht erfolgen

Um die Transportintensität zu visualisieren, ist das zu wenig. Eine Visualisierung muss klar anzeigen, auf welchen Transportwegen sich Transportvorgänge abspielen, um Optimierungspotenziale zu schöpfen.

Optimale Routen auf Transportwegen

Dafür muss uns aber bekannt sein, welche Transportroute ein Mitarbeiter zwischen zwei Arbeitsplätzen wählen würde. Je mehr Arbeitsplätze betrachtet werden (müssen), desto höher ist natürlich der Aufwand diese Route zu erfragen oder zu beobachten und zu erfassen. Eine gute Möglichkeit diesen Aufwand zu vermeiden und trotzdem eine brauchbare Lösung zu erhalten ist, die optimale Route dafür zu berechnen.

Optimal bedeutet in diesem Fall optimal für Ihre Fabrik. Meistens wird als Kriterium die Entfernung verwendet. Es können aber genauso Fahrdauern oder Fahrtkosten angesetzt werden, um die optimale Route zu ermitteln.


In 3 einfachen Schritten zu optimalen Routen in Fabriken

Wie diese Berechnung erfolgt, können Sie im Artikel In 3 einfachen Schritten zu optimalen Routen in Fabriken nachlesen. Das dort selbst entwickelte Streckennetz, dass dieser Artikel vorgestellt, ist auch die Ausgangsbasis für die Visualisierung der Transportintensität in diesem Artikel.


Transportintensitäten im Fabrik-Layout selber visualisieren

Mit diesen Vorarbeiten haben wir das Handwerkszeug, um die Transportintensität selber im Fabrik-Layout zu visualisieren.

In der Materialflussdarstellung gibt es bereits ein Fabrik-Layout und die Position der Arbeitsplätze in diesem Layout. Diese sind bereits als Excel Shapes (Formen) eingefügt vorhanden und mit einem eindeutigen Namen (Präfix R_) versehen.

Erweitert mit dem Streckennetz aus den optimalen Routen, ergibt das genau die Grundlage, welche wir für die Visualisierung brauchen.

Auch hier müssen zuerst die Entfernungen zwischen allen Knoten (Wegepunkte und Arbeitsplätze) berechnet werden. Über den Floyd-Warshall Algorithmus werden die optimalen Routen mit der Vorgänger-Matrix bestimmt. Die VBA-Logik ist die ursprüngliche, wie im Artikel In 3 einfachen Schritten zu optimalen Routen in Fabriken programmiert.

Das Visualisieren der Transportintensität benötigt aber einige Funktionen, die alle im Modul TransportIntensityModul zusammengefasst sind.

VBA-Projekt mit enthaltenen Modulen
VBA-Projekt mit enthaltenen Modulen

Berechnungsalgorithmus

Nach den Berechnungen des Streckennetzes und den optimalen Routen brauchen wir als Zielzustand die Summe der Transporte zwischen den einzelnen Knoten. Basis sind die Materialflüsse aus der Transport-Matrix. Sie liegen nach der Überführung ausder Matrix als eine Von-Nach-Liste vor und stehen im Tabellenblatt Von-Nach.

Abgeleitete Von-Nach-Liste aus einer Transport-Matrix
Abgeleitete Von-Nach-Liste aus einer Transport-Matrix

Zu jeder Zeile in der Von-Nach-Liste berechnet die Prozedur CalcTransportIntensity die optimale Route. Die Route wird über die bereits bekannte Funktion FloydRoute in die einzelnen Wegpunkte (Knoten) aufgelöst. Zu jeder Verbindung (Kante) wird die Transportanzahl aus der Von-Nach-Liste hinzuaddiert.

Sub CalcTransportIntensity()
Dim i As Integer
Dim j As Integer
Dim von As String
Dim nach As String
Dim amount As Double
Dim amountMax As Double
Dim s As String
Dim route() As String
Dim vertex As Variant
Dim c As Integer
Dim r As Integer
Dim transportIntensity As Double

  Call ClearSheet(S_EDGES)
  Sheets(S_EDGES).Cells(1, 1) = "Von"
  Sheets(S_EDGES).Cells(1, 2) = "Nach"
  Sheets(S_EDGES).Cells(1, 3) = "Menge Von-Nach"
  Sheets(S_EDGES).Cells(1, 4) = "Menge Nach-Von"
  Sheets(S_EDGES).Cells(1, 5) = "Menge max."
  
  amountMax = 0
  i = 1
  Do
    i = i + 1
    von = WORKCENTER_PREFIX & Sheets(S_FLOW).Cells(i, 1)
    nach = WORKCENTER_PREFIX & Sheets(S_FLOW).Cells(i, 2)
    amount = Sheets(S_FLOW).Cells(i, 3)
    
    If ExistsShape(S_LAYOUT, von) = True And ExistsShape(S_LAYOUT, nach) = True Then
      s = FloydRoute(von, nach) 'Route berechnen
      route() = Split(s, ";")
      j = 0
      For Each vertex In route
        j = j + 1
        Sheets(S_FLOW).Cells(i, j + 3) = vertex
        If j > 1 And Sheets(S_FLOW).Cells(i, j + 3) <> "" Then
          r = FindEdgeRow(Sheets(S_FLOW).Cells(i, j + 3 - 1), Sheets(S_FLOW).Cells(i, j + 3))
          If Sheets(S_EDGES).Cells(r, 1) = "" Then
            Sheets(S_EDGES).Cells(r, 1) = Sheets(S_FLOW).Cells(i, j + 3 - 1)
            Sheets(S_EDGES).Cells(r, 2) = Sheets(S_FLOW).Cells(i, j + 3)
          End If
          If Sheets(S_EDGES).Cells(r, 1) = Sheets(S_FLOW).Cells(i, j + 3 - 1) Then
            c = 0
          Else
            c = 1
          End If
          
          Sheets(S_EDGES).Cells(r, 3 + c) = Sheets(S_EDGES).Cells(r, 3 + c) + amount
          If Sheets(S_EDGES).Cells(r, 3) + Sheets(S_EDGES).Cells(r, 4) > amountMax Then amountMax = Sheets(S_EDGES).Cells(r, 3) + Sheets(S_EDGES).Cells(r, 4)
        End If
      Next
      
    End If
  Loop Until Sheets(S_FLOW).Cells(i + 1, 1) = ""
  Sheets(S_EDGES).Cells(1, 6) = amountMax
  
  'Transportintensität: Gesamtfahrwege berechnen, ohne Leerfahrten
  transportIntensity = 0
  i = 1
  Do
    i = i + 1
    Sheets(S_EDGES).Cells(i, 5).Value = ReadDistance(Sheets(S_EDGES).Cells(i, 1), Sheets(S_EDGES).Cells(i, 2))
    transportIntensity = transportIntensity + (Sheets(S_EDGES).Cells(i, 3).Value + Sheets(S_EDGES).Cells(i, 4).Value) * Sheets(S_EDGES).Cells(i, 5).Value
  Loop Until Sheets(S_EDGES).Cells(i + 1, 1) = ""
  Sheets(S_LAYOUT).Range("transport_intensity").Value = transportIntensity
  Sheets(S_LAYOUT).Select
End Sub

Es entsteht automatisch ein neues Tabellenblatt Kanten. In diesem sind die Verbindungen zwischen den einzelnen Knoten mengenmäßig dargestellt. Verbindungen können in beiden Richtungen möglich sein. Deswegen werden je Zeile zwei Werte für die Transportanzahl gespeichert. Einmal in der Richtung Von-Nach, das andere Mal in die Gegenrichtung Nach-Von.

Ausschnitt aus dem Tabellenblatt "Kanten" mit allen Verbindungen zwischen den Knoten
Ausschnitt aus dem Tabellenblatt „Kanten“ mit allen Verbindungen zwischen den Knoten

Visualisierung der Transportintensität programmieren

Mit den Elementen, die sich jetzt bereits auf dem Excel Fabrik-Layout befinden, kann keine passende Visualisierung umgesetzt werden. Die Elemente werden für spätere Änderungen in der aktuellen Form weiter benötigt (für Änderungen am Streckennetz oder Erweiterungen oder neue Arbeitsplätze).

Es bleibt nur die Möglichkeit eine Visualisierung neu einzufügen. Dabei stören aber die bisherigen Elemente. Es braucht also eine Logik, welche die bisherigen Elemente, nennen wir sie die Planungselemente, ausblendet und bei Bedarf auch wieder einblenden kann.

Wir brauchen ein Kriterium, um zwischen Planung und Visualisierung unterscheiden zu können. Die bisherigen Elemente haben Präfixe vor den Shape-Namen bekommen. Dieses Konzept behalten wir deswegen bei. Die Visualisierungselemente beginnen mit dem Präfix „Flow-“.

Damit lassen sich beide Varianten einfach ein- und ausblenden.

Sub SetNodesEdgesVisible(isVisible As Boolean)
Dim shp As Shape
Dim edges() As String
Dim edge As Variant

  For Each shp In Sheets(S_LAYOUT).shapes
    If (Left$(shp.Name, Len(NODE_PREFIX)) = NODE_PREFIX Or Left$(shp.Name, Len(WORKCENTER_PREFIX)) = WORKCENTER_PREFIX) Then
      shp.visible = isVisible
      edges = Split(GetLinkedVertices(shp.Name), ";")
      For Each edge In edges
        Sheets(S_LAYOUT).shapes(edge).visible = isVisible
      Next
    End If
  Next
End Sub

Für Visualisierung der Transportintensität reicht der Aufruf der Prozedur VisualizeTransportIntensity. Die eigentliche Zeichenroutine für die Verbindungspfeile ist die Sub DrawTransportIntensity. Hilfreich für die Darstellung der Transportintensität ist ein Sankey-Diagramm. Die Transportmengen werden entsprechend ihrem Anteil mit verschiedenen Dicken visualisiert. Die Pfeilenden entfallen in diesem Fall. Optisch einfacher wird das Sankey-Diagramm, wenn zusätzlich noch stark genutzte Wege farblich hervorgehoben sind.

Die Sub DrawTransportIntensity stellt Transportintensitäten > 80% in Rot, Transportintensitäten < 40% Blau und alles dazwischen in Gelb dar.

Sub VisualizeTransportIntensity()
Dim i As Integer
  Call RemoveTransportIntensity
  i = 1
  Do
    i = i + 1
    Call DrawTransportIntensity(Sheets(S_EDGES).Cells(i + 1, 1), Sheets(S_EDGES).Cells(i + 1, 2), Sheets(S_EDGES).Cells(i + 1, 3), Sheets(S_EDGES).Cells(i + 1, 4), Sheets(S_EDGES).Cells(1, 6))
  Loop Until Sheets(S_EDGES).Cells(i + 1, 1) = ""
  Call SetNodesEdgesVisible(False)
End Sub

Private Sub DrawTransportIntensity(node1 As String, node2 As String, amount12 As Double, amount21 As Double, amountMax As Double)
Dim s As String
Dim shp As Shape
Dim shp1 As Shape
Dim k As Double
Dim connectionPoint1 As Integer
Dim connectionPoint2 As Integer
Dim transportIntensity As Double
Dim distance As Double

  If node1 = "" Or node2 = "" Then Exit Sub
  s = TRANSPORTINTENSITY_PREFIX & node1 & "-" & node2
  If ExistsShape(S_LAYOUT, s) = False Then
    Set shp = Sheets(S_LAYOUT).shapes.AddConnector(msoConnectorStraight, 0, 0, 100, 100)
  Else
    Set shp = Sheets(S_LAYOUT).shapes(s)
  End If
  shp.Name = s
  If amountMax = 0 Then
    transportIntensity = 0
  Else
    transportIntensity = ((amount12 + amount21) / amountMax)
  End If
  distance = ReadDistance(node1, node2)
  shp.AlternativeText = "Distanz einfach " & Format(distance, "#,##0.00") & " m" & vbCrLf _
    & "Transporte von " & Chr$(34) & node1 & Chr$(34) & " nach " & Chr$(34) & node2 & Chr$(34) & ": " & CStr(amount12) & vbCrLf _
    & "Transporte von " & Chr$(34) & node2 & Chr$(34) & " nach " & Chr$(34) & node1 & Chr$(34) & ": " & CStr(amount21) & vbCrLf _
    & "Transporte gesamt " & CStr(amount12 + amount21) & " ~" & Format((amount12 + amount21) * distance, "#,##0") & " m" & vbCrLf _
    & "Transportintensität gesamt " & Format(transportIntensity, "0.0%") & " m"

  Set shp1 = Sheets(S_LAYOUT).shapes(node1)
  If shp1.AutoShapeType = msoShapeFlowchartCollate Then
    connectionPoint1 = 2
  Else
    connectionPoint1 = 1
  End If
  
  Set shp1 = Sheets(S_LAYOUT).shapes(node2)
  If shp1.AutoShapeType = msoShapeFlowchartCollate Then
    connectionPoint2 = 2
  Else
    connectionPoint2 = 1
  End If
  
  shp.ConnectorFormat.BeginConnect Sheets(S_LAYOUT).shapes(node1), connectionPoint1
  shp.ConnectorFormat.EndConnect Sheets(S_LAYOUT).shapes(node2), connectionPoint2
  With shp.Line
    .BeginArrowheadStyle = msoArrowheadNone
    .EndArrowheadStyle = msoArrowheadNone
    .visible = msoTrue
    If amount12 + amount21 = 0 Then
      .Weight = 1
    Else
      .Weight = transportIntensity * transportIntensityThicknessMax
    End If
    If .Weight < 1 Then .Weight = 1
    .Transparency = 0
    
    'Farbe nach Intensität
    If transportIntensity > 0.8 Then
      .ForeColor.RGB = RGB(255, 25, 25) 'rot
    ElseIf transportIntensity < 0.4 Then
      .ForeColor.RGB = RGB(68, 114, 196) 'blau
    Else
      .ForeColor.RGB = RGB(255, 192, 0) 'gelb
    End If
    
  End With
End Sub

Analysieren der Transportintensität

Mit diesen Funktionen können wir die Materialflüsse nach den optimalen Routen im Fabrik-Layout einzeichnen. Über die Buttons auf der linken Seite können Neuberechnungen und die Darstellungen zwischen Planung und Visualisierung einfach umgestellt werden. Da die Funktionen auf dem Artikel „Optimale Routen“ basieren, lässt sich diese auch noch für verschiedenen Start- und Zielknoten anzeigen. Deswegen habe ich die Eingabefelder für Start- und Zielpunkt und „Optimale Route“ eingeblendet gelassen.

Sobald Sie auf den Button Transportintensität Erstellen klicken, generiert die VBA Routine die entsprechende Darstellung im Layout neu. Durch die Sankey-Darstellung ist sofort klar, wo sich die Haupt- und Nebenmaterialflüsse im Layout befinden. An diesen Stellen können Sie mit Ihrer Analyse ansetzen. Entstehen aus der Verkehrsführung Engpässe oder Behindern Bestückungsvorgänge die Transportstrecke?

Jetzt können Transportintensitäten im Fabrik-Layout selber visualisieren werden
Jetzt können Transportintensitäten im Fabrik-Layout selber visualisieren werden

Hilfreich für eine tiefere Analyse sind die Detaildaten zu jedem Wegestück (Kante). Die Daten stehen in der Tabelle Kanten zur Verfügung. Es ist für Sie aber wesentlich komfortabler, das Streckenstück mit der Maus auszuwählen und anzuklicken und dort Detaildaten zu erwarten. Es ist möglich, das zu erfüllen: über den Alternativtext von Excel.

Die Funktion DrawTransportIntensity trägt dort automatisch die Transporteigenschaften ein. So können Sie die Intensität und die Transportmengen in jede Richtung untersuchen und mit den Informationen Ihrer Wahl ausstatten.

Nach Auswählen eines Verbindungspfeils (Kante) stehen im Alternativtext wichtige Informationen dazu
Nach Auswählen eines Verbindungspfeils (Kante) stehen im Alternativtext wichtige Informationen dazu

Mit den neuen Funktionen gibt es eine Vielzahl an Analysemöglichkeiten. Neben den klassischen Fragestellungen nach Engpässen, Flussstörungen ist auch die Verkehrsrichtung interessant. In dieser Analysedarstellung sind beidseitig befahrene Strecken Rot eingefärbt. Strecken, die nur einseitig befahren werden sind Blau eingefärbt.

Das könnten Ansatzpunkte sein, diese Strecken zu Einbahnstraßen zu erklären und ggf. die Streckenbreite zu reduzieren und als Produktionsfläche zu nutzen.

Transportintensitäten visualisiert nach Fahrtrichtung
Transportintensitäten visualisiert nach Fahrtrichtung (rot=beidseitig, blau=einseitig)

Zusammenfassung

Die Analyse der Transportintensität in Fabriken ermöglicht die gezielte Effizienzsteigerung und Optimierung des Produktionsprozesses. Durch genaue Untersuchung können Engpässe im Materialfluss identifiziert, Arbeitskräfte und Maschinen optimal ausgelastet sowie überlastete Bereiche vermieden werden. Die Transportmatrix, basierend auf Daten aus verschiedenen Quellen, bildet die Grundlage für diese Analysen. Die Visualisierung dieser Daten im Fabrik-Layout ermöglicht eine klare und leicht verständliche Darstellung. Durch die Integration von optimalen Routen lassen sich nicht nur Engpässe erkennen, sondern auch effektive Maßnahmen zur Optimierung entwickeln. Die Analyse kann durch Ihre eigenen Analyseideen einfach weiter vertieft werden.

Ist das Analysemodell einmal erstellt, lassen sich zukünftige Prozessänderungen, Mengenerhöhungen, Fabrikumgestaltungen selber direkt anpassen und immer wieder neu sehr einfach neu visualisieren.

Aber man muss diese Auswertungen auch kritisch betrachten. Sie zeigen nur das an, was an Datenmodellen bereitgestellt wurde. Zu jeder optimalen Fahrt gehört auch eine Leerfahrt zum nächsten Anfangspunkt. Die möchte man zwar immer vermeiden, sie kommen aber trotzdem immer vor. Diese Leerfahrten zu erfassen, ist äußerst komplex und sinnvoll nur über Simulationen lösbar.

Für eine erste Analyse bietet diese selber erstellte Visualisierung aber gute Möglichkeiten.

Probieren Sie es einfach mit Ihrem Datenmodell aus.

Materialflussdarstellung zwischen Arbeitsplätzen mit Pfeilen

Download

Download mit Quellcode zum Programmieren

Hier finden Sie das „Plus an Sourcecode“ für diesen Artikel für Sie zum Download: das lauffähige Beispielprojekt mit dem vollständigen Sourcecode zum Nachschauen und Experimentieren.