isLoadingPriorityOverSchedule in LoadingRack: Scheduling and Departure Logic

       In LoadingRack simulation for refinery logistics, isLoadingPriorityOverSchedule determines what controls rail tank car train departure: the railway schedule or loading completion. With false, the loaded train leaves the refinery loading rack at its scheduled departure time, regardless of its loading level. With true, the LoadingRack prioritizes loading completion and keeps the train at the rack until it is fully loaded, subject to the forced passportization rule when incoming product flows stop.

How isLoadingPriorityOverSchedule Changes LoadingRack Operation

       The parameter defines the train departure policy and loading rack operating logic in the LoadingRack simulation. It determines whether a railway tank car train leaves according to its schedule or remains at the petroleum product loading rack until loading is completed.
  • false — schedule-driven: the train leaves at the scheduled departure time, regardless of its loading level.
  • true — loading-driven: the train remains at the rack until the entire train is fully loaded, with a forced passportization rule if incoming product flows stop.

LoadingRack Departure Logic

       The LoadingRack simulation uses two train departure policies depending on isLoadingPriorityOverSchedule:
false → scheduled departure. The train leaves when its scheduled departure time is reached. Loading level and MAX_TRAIN_LOAD_RATIO_BEFORE_FORCED_PASSPORT do not affect the departure decision.
true → loading completion. The train remains in sLoading until the entire rail tank car train is fully loaded with its assigned petroleum products. If all incoming product flows become zero before full loading, the overall Train Load Ratio is checked:
  • Ratio ≥ MAX_TRAIN_LOAD_RATIO_BEFORE_FORCED_PASSPORT → proceed to passportization.
  • Ratio < threshold → remain in sLoading and wait for product flow.

When isLoadingPriorityOverSchedule = false

       The railway schedule has priority over loading completion. When the scheduled departure time is reached, the train leaves the LoadingRack regardless of its loading level. There is no minimum loading requirement, and MAX_TRAIN_LOAD_RATIO_BEFORE_FORCED_PASSPORT does not affect this mode. The train may therefore depart fully loaded, partially loaded, or empty, depending on the available petroleum product flow and loading time.

When isLoadingPriorityOverSchedule = true

       Loading completion has priority over the railway schedule in the refinery loading operation. The LoadingRack continues petroleum product loading after the scheduled departure time until the entire train reaches its maximum planned load. For a multi-product train, readiness is evaluated across the whole train, not by individual product streams.

Forced Passportization When Product Flow Stops

       If all incoming petroleum product flows become zero before full loading, the LoadingRack calculates:

Train Load Ratio = Total Loaded Mass / Total Maximum Train Capacity

The result is compared with MAX_TRAIN_LOAD_RATIO_BEFORE_FORCED_PASSPORT:
  • Ratio ≥ threshold → loading is forced to finish and the train proceeds to passportization.
  • Ratio < threshold → the train remains at the refinery loading rack and waits for product flow to resume.
The threshold is checked only when all incoming product flows are zero. It does not limit normal loading.

Schedule-Driven vs. Loading-Driven Operation

       The two settings represent different LoadingRack scheduling and refinery rail logistics policies:
       The key difference is whether schedule adherence or loading completion controls train departure.

Multi-Product Train Loading

       A rail tank car train may carry multiple petroleum products, but the departure decision is based on the overall train loading status. The loading rack is typically integrated with refinery tank farms that provide the finished-product inventory required for shipment. A completed petroleum product loading stream does not trigger train departure while other required loading operations remain incomplete. For isLoadingPriorityOverSchedule = true, the train is fully loaded only when the required loading condition is satisfied across the entire train.

Practical Example

       Consider a multi-product rail tank car train in a refinery logistics operation, scheduled to depart at 12:00. In integrated refinery models, LoadingRack schedules can also interact with production planning and tank farm requests. With isLoadingPriorityOverSchedule = false, the train leaves the petroleum product loading rack at 12:00 with whatever quantity has been loaded. With isLoadingPriorityOverSchedule = true, loading continues after 12:00 until the entire train is fully loaded. If all incoming flows become zero, the Train Load Ratio determines whether the train proceeds to passportization or remains at the LoadingRack.

Conclusion

       isLoadingPriorityOverSchedule defines the fundamental departure policy of the LoadingRack simulation. With false, the train follows its railway schedule regardless of its loading level. With true, loading completion takes priority, while MAX_TRAIN_LOAD_RATIO_BEFORE_FORCED_PASSPORT provides a fallback when incoming product flows stop. Understanding this logic is essential for accurately modeling LoadingRack scheduling, rail tank car loading, petroleum product logistics, and refinery logistics simulation.

FAQ

1. What does isLoadingPriorityOverSchedule control?
It defines the LoadingRack train departure policy and determines whether the railway schedule or loading completion controls the refinery loading operation.

2. What happens when isLoadingPriorityOverSchedule = false?
The train departs at its scheduled time, regardless of its current loading level. MAX_TRAIN_LOAD_RATIO_BEFORE_FORCED_PASSPORT does not affect this mode.

3. Can a rail tank car train leave partially loaded or empty?
Yes. In schedule-driven mode, the train can leave fully loaded, partially loaded, or empty.

4. What happens when isLoadingPriorityOverSchedule = true?
Loading completion takes priority. The LoadingRack continues loading until the entire train reaches its maximum planned load, even if the scheduled departure time has passed.

5. How is a multi-product rail tank car train evaluated?
The loading status is evaluated for the entire train. Completing one product stream does not trigger departure while other required loading remains incomplete.

6. How is the Train Load Ratio calculated?
Train Load Ratio = Total Loaded Mass / Total Maximum Train Capacity

7. When is MAX_TRAIN_LOAD_RATIO_BEFORE_FORCED_PASSPORT checked?
Only when isLoadingPriorityOverSchedule = true and all incoming product flows become zero before full loading.

8. What happens when the Train Load Ratio reaches the threshold?
If the ratio is greater than or equal to MAX_TRAIN_LOAD_RATIO_BEFORE_FORCED_PASSPORT, the train proceeds to passportization.

9. What happens when the ratio is below the threshold?
The train remains at the LoadingRack and waits for product flow to resume.

10. Does the forced passportization threshold limit normal train loading?
No. If product flow continues, the LoadingRack keeps loading beyond the threshold until the train is fully loaded.