- Precision Mining Support Portal - http://support.precisionmining.com -

Source Scheduling #7: Constraints


In Dependencies we look at how to make one Task or a range of Tasks wait on the completion of other/s. This helps to control the specific order of events regardless of when they appear in the eventual schedule but what if you have something that is time dependent such as environment approval on a new area to work? Or if you have a commodity target per month that you don’t have the processing resources to exceed? That is when you apply a Constraint. There are four kinds of Constraint currently implemented in Spry: Capacity, Time, Proximity and Inventory.

A Capacity Constraint applies a limit to any value over a certain period of time. For example, if you didn’t want to exceed more than 50,000t of Coal per month, or needed to limit the amount of waste heading to a certain dump every day you could apply a Capacity Constraint. It can be based off of your Calendar Table, or manually entered at whatever time frame suits your scheduling.

A Time Constraint applies a limit to the times that a Source or Destination Task is available to be worked.

A Proximity Constraint applies a limit to the number of pieces of Equipment that can work a Leaf or group of Leaves at any one point in time.

An Inventory Constraint creates a virtual container that can be added to, and removed from. Once a container is full it can no longer be added to (thus Constraining the adding Tasks) and once empty it can no longer be removed from (Constraining the removing Tasks).


Capacity Constraint

Create a new Capacity Constraint by right-clicking “Constraints” and choosing Add – > New Capacity Constraint

Capacity Constraint [1]

Time Constraint

Create a new Time Constraint by right-clicking “Constraints” and choosing Add – > New Time Constraint

Time Constraint [3]

Proximity Constraint

Create a new Proximity Constraint by right-clicking “Constraints” and choosing Add – > New Proximity Constraint

prox1 [4] prox2 [5] prox3 [6]


Create a new Inventory Constraint by right-clicking “Constraints” and choosing Add – > New Inventory Constraint

Before assigning settings, Inventory Constraints will almost always involve the creation of new Positions, Leaves, Fields, Processes AND Equipment to manage the Inventory. For example if you wished to create a Coal Stockpile that processed Coal at a fixed rate, steps involved might be:

  1. Create a new Position (normally at the highest Level) called Stockpile.
  2. Create a new Field on your Source table called Stockpile.
  3. Create a single Leaf on your Table against the new Stockpile Position
  4. Unlock the Table and manually enter a value in this new Leaf that is at least a large as your Coal Source Quantity
  5. Create a new Process that references the new Field
  6. Create a new piece of Equipment that works your new Process at your desired Hourly Rate (* Source Path)
  7. Ensure that your Dependencies and Constraints ignore the new Process

The reason for this setup is that in this example you already have a Process set up to add to the virtual container (Inventory) but you need some way to take Inventory away which you haven’t done yet.

InventoryConstraint [7]