Zum Inhalt springen
SuperScheduler

Häfen und Logistik

Liegeplatz-, Kran- und Terminalplanung

Ein Liegeplatzplan besteht aus einer Handvoll langer Ereignisse mit teuren Folgen. Schiffsanläufe dauern Stunden oder Tage, Kräne werden zwischen ihnen geteilt, und eine verspätete Ankunft verschiebt das Fenster jedes nachfolgenden Anlaufs. Die Planung braucht die ganze Kaje im Blick und die Details einer einzelnen Schicht nur eine Geste entfernt.

Lange Fenster, geteiltes Gerät, wandernde Ankünfte

Jeder Schiffsanlauf belegt einen Liegeplatz vom Festmachen bis zum Ablegen und braucht einen Liegeplatz, der lang und tief genug für das Schiff ist. Innerhalb dieses Fensters werden Kräne an der Kaje und anderes Gerät für den Umschlag eingeteilt und wechseln oft zwischen Schiffen, sobald eines fertig ist und das nächste beginnt.

Ankunftszeiten sind Schätzungen, die sich ständig ändern. Ein wetterbedingt verspätetes Schiff kommt in einem Fenster an, das jetzt den nächsten Anlauf überlappt. Manche Häfen haben zusätzlich Tidenfenster, die begrenzen, wann Schiffe mit großem Tiefgang ein- oder auslaufen können, und Lotsen, Schlepper und Arbeitskolonnen haben ihre eigene Verfügbarkeit.

Warten ist für alle Beteiligten teuer. Ein Schiff auf Reede, ein leer gehaltener Liegeplatz oder Ladung, die ihren Anschluss verpasst, erhöht das Risiko von Liegegeld und Streitigkeiten – deshalb sucht die Planung nach der Änderung, die am wenigsten stört, nicht bloß nach einer, die passt.

Entscheidungen im Liegeplatzplan

  1. 01

    Welcher Liegeplatz den Anlauf bekommt

    Schiffslänge, Tiefgang und Ladungsart mit Länge, Wassertiefe und Ausstattung des Liegeplatzes abgleichen und dabei mit Reedereien vereinbarte Fenster einhalten.

  2. 02

    Wie viele Kräne, und wann

    Mehr Kräne verkürzen die Liegezeit, fehlen aber anderen Schiffen. Die Kranaufteilung bestimmt, wie lange der Liegeplatz belegt bleibt.

  3. 03

    Was eine verspätete Ankunft verdrängt

    Ein verspäteter Anlauf kann seinen Liegeplatz behalten und den nächsten verschieben, an einen anderen Liegeplatz wechseln oder auf Reede warten. Jede Wahl wirkt sich anders auf den Plan aus.

  4. 04

    Tidenfenster einpassen

    Ankünfte und Abfahrten mit großem Tiefgang sind unter Umständen nur um Hochwasser herum möglich. Das schränkt Beginn und Ende eines Anlaufs ein, nicht aber die Stunden dazwischen.

Die Kaje abbilden

Zeilen sind Liegeplätze und Geräte, Ereignisse sind Anläufe und die Arbeit darin, und die Zeitachse umfasst Tage, mit Stunden eine Zoomstufe entfernt.

Ressourcen
Gruppieren Sie Liegeplätze in einem Ressourcenbaum nach Terminal, mit Spalten für Länge und maximalen Tiefgang. Kräne und anderes Gerät können in einem zweiten Bereich von SchedulerPanes liegen, der Zeitachse und Zoom teilt, aber eigenständig vertikal scrollt.
Ereignisse
Ein Schiffsanlauf ist ein mehrtägiges halboffenes Intervall vom Festmachen bis zum Ablegen, mit Schiffsname, ETA und Status als eigenen Feldern. Kraneinsätze sind Ereignisse in Kranzeilen, die mit ihrem Anlauf verknüpft sind, damit die Beziehung sichtbar bleibt, wenn sich eines von beiden bewegt.
Zeitskala
Stundenzellen mit Tagen in der Kopfzeile decken die nächsten Tage ab; für die Saison zoomen Sie auf Tage und Wochen heraus. Laden Sie lange Zeiträume bei Bedarf mit createRangeLoader, der Abschnitte anfordert, während sich die Ansicht bewegt, und Anfragen abbricht, die sie verlassen.
Regeln
Lehnen Sie in onEventMoving einen Liegeplatz ab, der zu kurz oder zu flach ist, anhand der Eigenschaften der Ressource und mit einer Meldung, die die Einschränkung nennt. Schattieren Sie Tidenfenster, prüfen Sie, dass Beginn und Ende darin liegen, und füttern Sie die Minimap mit der Liegeplatzbelegung oder den Kranstunden je Zeitabschnitt, damit volle Tage auffallen.

Planungsansicht und Terminalsysteme

  • Lange Ereignisse über mehrere Tage, mit Stundendetails beim Zoomen
  • Gruppierte Liegeplatzzeilen und ein separater Gerätebereich auf einer gemeinsamen Zeitachse
  • Verknüpfungen zwischen Anläufen und Kraneinsätzen
  • Eine Minimap der Belegungsreihe, die Ihre Anwendung berechnet
  • Bereichsweises Laden mit Abbruch und virtualisiertes Rendering für lange Horizonte
  • ETA-Feeds, Schiffsdaten und die Anbindung an Ihr Terminal Operating System
  • Optimierung von Liegeplatzvergabe und Kranaufteilung, falls gewünscht: Die Bibliothek optimiert nicht
  • Gezeitentabellen und die daraus abgeleiteten Fenster
  • Nachfolgende Anläufe nach einer Verspätung umplanen
  • Liegegeld, Abrechnung und vertraglich vereinbarte Fenster
  • Abstimmung zwischen Planern, Persistenz und Audit

Funktionierende Beispiele

Fallen in der Liegeplatzplanung

Tidenfenster als deaktivierte Zellen

Deaktivierte Zellen lehnen jedes Ereignis ab, das sie überspannt, aber ein Schiff kann auch bei Niedrigwasser an der Kaje liegen. Schattieren Sie die Fenster stattdessen und prüfen Sie nur Ankunfts- und Abfahrtszeiten.

Zeitstempel mit Zeitzone direkt übergeben

Ein String mit Offset wie 10:00:00+02:00 wird in UTC-Wanduhrzeit umgerechnet. Rechnen Sie Feeds in Ihrer Anwendung in die lokale Kalenderzeit des Hafens um und übergeben Sie einfache Datums-Uhrzeit-Werte.

Annehmen, dass sich eine Verspätung fortpflanzt

Verknüpfte Kraneinsätze bewegen sich nicht, wenn sich ihr Anlauf bewegt. Entscheiden Sie in Ihren Handlern, ob sie verschoben werden, und bündeln Sie die Änderung, damit sie sich in einem Schritt rückgängig machen lässt.

Die ganze Saison auf einmal laden

Monate an Anläufen und Geräteeinsätzen lädt man besser bereichsweise, während die Planung scrollt – mit einem Server, der halboffene Anfragen [start, end) korrekt beantwortet.

Fragen

Kann SuperScheduler die Liegeplatzvergabe optimieren?

Nein. SuperScheduler hat keine Vergabe- oder Optimierungs-Engine. Er zeigt den Plan, den Ihre Planer oder Ihr Solver erzeugen, lässt die Planung ihn ändern und meldet jede Änderung, damit Ihr System sie prüfen kann.

Wie zeige ich Tidenfenster in einem Liegeplatzplan?

Färben Sie die betreffenden Zellen in onBeforeCellRender mit einem Hintergrund oder einer CSS-Klasse ein, oder zeichnen Sie Trennlinien an den Grenzen der Fenster. Prüfen Sie dann in onEventMoving, ob Beginn und Ende des Anlaufs in einem Fenster liegen, und lehnen Sie die Verschiebung andernfalls mit einer Meldung ab.

Können Liegeplätze und Kräne eine Zeitachse teilen?

Ja. SchedulerPanes aus super-scheduler/panes stapelt mehrere Scheduler mit gemeinsamem horizontalem Scrollen, gemeinsamem Zoom und gleicher Breite des Zeilenkopfs, aber unabhängigem vertikalem Scrollen. Verschiebungen zwischen Bereichen werden unterstützt, und die Handler melden Quell- und Zielbereich.

Wie viele Schiffsanläufe verkraftet die Zeitleiste?

Das Rendering ist immer virtualisiert, es wird also nur gezeichnet, was im sichtbaren Bereich liegt. Laden Sie Ereignisse für lange Horizonte mit createRangeLoader bereichsweise statt alle auf einmal, und messen Sie mit Ihren eigenen Daten, denn die praktische Grenze hängt von Ereignissen, Zeilen und Endgeräten ab.

Die Harborworks-Demo ansehen

Harborworks, ein fiktives Terminal, verschiebt ein Liegefenster und ordnet die damit verknüpften Arbeiten neu, mit einer berechneten Belegungsübersicht neben dem Plan.

Funktionierende Beispiele