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
- 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.
- 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.
- 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.
- 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