AutoScheduler UserGuide
AutoScheduler UserGuide
AUTOSCHEDULER
Release 7.5
User Guide
June 2002
Runge Software
Runge Software and associated software products are the copyright of Runge Pty Ltd. Use, duplication or
disclosure is subject to the restriction stated in the software license. No part of this document may be copied
or reproduced in any form without the prior written consent of Runge Pty Ltd.
Although the software has been tested and the documentation reviewed, Runge Pty Ltd offers no warranty
for the quality, performance or fitness of the software or documentation for any particular purpose. In no
event will Runge Pty Ltd be liable for direct, indirect, special, incidental or consequential damages arising out
of the use or inability to use the software or documentation.
Runge Pty Ltd has a policy of continual improvement to all products and documentation. The information in
any documentation is subject to change without notice.
XPAC, AutoScheduler,TALPAC, XERAS and DragSim are registered trademarks of Runge Pty
Ltd and/or associated companies.
Formula One and First Impression are registered trademarks of Visual Components Inc.
Cypress Enable is a registered trademark of Cypress Software Inc.
Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Microsoft Excel, Microsoft Access
and DAO are trademarks of Microsoft Corporation in the USA and other countries.
INTRODUCTION ............................................................... 1
WHAT IS THE XPAC AUTOSCHEDULER? .......................................... 1
OVERVIEW OF THE AUTOSCHEDULER .............................................. 2
SCHEDULING RESOURCES .................................................................. 4
XPAC’S SCHEDULING MODES .......................................................... 4
ADVANTAGES AND DISADVANTAGES ............................................... 5
Advantages ........................................................................................................ 6
Disadvantages ................................................................................................... 6
CONFIGURING AN AUTOSCHEDULER MODEL.................................... 6
XPAC 7.5 AutoScheduler User Guide / Runge Pty Ltd Table of Contents (i)
Adjacency Tables Classified By A Database Field ......................................... 68
DEPENDENCIES USING UPPER LEVEL RECORDS .............................. 69
SKIPPING NON-SCHEDULED RECORDS............................................. 71
CAPACITY CONSTRAINTS.......................................... 75
INTRODUCTION ................................................................................ 75
CREATING CAPACITY CONSTRAINT SETS ........................................ 76
EDITING CAPACITY CONSTRAINT .................................................... 77
Range Capacity Constraints ........................................................................... 77
Contents Of Range Capacity Constraints ....................................................... 79
Stockpile Capacity Constraints ....................................................................... 83
Concurrent Work In Progress Capacity Constraints ...................................... 85
PROPORTIONAL CAPACITY CONSTRAINTS ....................................... 87
APPLYING CAPACITY CONSTRAINTS ............................................... 89
CAPACITY CONSTRAINTS THAT DEFINE MINIMUMS ........................ 90
Table of Contents (ii) XPAC 7.5 AutoScheduler User Guide / Runge Pty Ltd
ii
SELECTING STOCKPILES IN A SCENARIO ....................................... 111
ASSIGNING RESOURCES TO STOCKPILES ....................................... 112
CONSTRAINING MOVEMENTS TO STOCKPILES............................... 113
CONSTRAINING MOVEMENTS FROM STOCKPILES .......................... 113
CONTROLLING STOCKPILE SIZE ..................................................... 114
XPAC 7.5 AutoScheduler User Guide / Runge Pty Ltd Table of Contents (iii)
Exporting Data For The schedule Analysis Tool .......................................... 155
DISPLAYING INFORMATION WHILST SCHEDULING ........................ 156
Table of Contents (iv) XPAC 7.5 AutoScheduler User Guide / Runge Pty Ltd
iv
Chapter 1
INTRODUCTION
For long term scheduling, targets and constraints for each period can be
pre-defined and the AutoScheduler will generate schedules that best suit
the objectives virtually at the click of a mouse. For shorter term
scheduling where control of grade or other values is more critical, the
AutoScheduler can be run period by period, allowing it’s parameters to
be adjusted to fine tune the scheduling results.
This also makes the AutoScheduler an ideal analysis tool for studying the
long-term implications of alternative strategies in complex operations.
For example, how will increasing the grade of one product effect the
mine’s ability to maintain the quality of it’s other products over the long
term?
XPAC is a resource based scheduling tool that can cater for a large
number of resources in any schedule. Resources are very flexible and
can be used to represent a wide range of real world items that must be
scheduled. They usually fall into one of three broad and overlapping
categories, as follows:
A product generated as the result of mining, such as Waste or Ore.
An operation or activity that must be performed as part of the
mining process, such as underground development, back fill or open
pit blasting.
The operation of an item of equipment (or a pool of equipment) that
performs one or more activities (such as a development jumbo or an
excavator).
The user is not restricted to one type of resource within a schedule and
can use them in any combination. For example, an underground stoping
operation can have resources that represent development, slot raising,
ore production from stoping operations and back fill.
These modes share many common features, the most significant being
the XPAC database used to store and manipulate the reserves to be
scheduled. But the methods are suited to different applications and it is
important to appreciate the advantages and disadvantages associated
with each before choosing the most appropriate technique(s).
Because of its speed and goal based approach, the AutoScheduler has
proved to be a perfect tool for blending operations that must satisfy
stringent product specifications. It is also ideal for analysing alternative
scenarios and investigating different strategies. However, AutoScheduler
models are more complex and require more time to configure than
standard scheduling models.
Disadvantages
Scheduling system is more complex, increasing the learning curve.
Set up time is longer than with manual scheduling methods.
Sometimes perceived to be less flexible, as planning engineer cannot
break the rules as and when required.
Introduction
Blocks that have at least one dependency are not placed in the available
block list at the start of the schedule, preventing them from being
selected. However, they are re-evaluated every time an available block is
scheduled and are added to the ABL once all of their dependencies have
been satisfied.
As the AutoScheduler will only select blocks from the available block
list, the dependency rules are always honoured. But just because a block
has been placed in the available block list does not mean it can actually
be scheduled; another scheduling rule, such as a period or a capacity
constraint may have temporarily made it unavailable for scheduling.
Each record within the database can have many user-defined activities
that must be performed in order to complete the record. The activities
required in a model are dependent on the type of deposit being
scheduled, the mining method being used and the level of detail required
in the schedule.
When creating a long-term schedule for an open strip coal mine, it may
be sufficient to create activities for overburden stripping and coal
mining. But when a creating a detailed schedule for an underground
stoping operation, activities may be required for development, support,
slot raising, stoping and backfill.
In the example below, activities 1 & 2 are performed first in any order.
Activity 3 can begin as soon as activity 1 is complete, but activity 4
cannot begin until both activities 2 & 3 are complete.
1 3
4
2
The sequence the activities must occur in is defined using the Precedence
column in the Productive Activities dialogue. The number of the preceding
activity must simply be entered in this column for each activity. If an
activity has more than one preceding activity, they should be separated
by commas. The only limitation is that an activity cannot be preceded by
an activity with a larger number than itself.
In the example above, activity 1 and 2 do not have any precedence’s and
so they can both start as soon as the record becomes available. But
activity 1 is a predecessor of activity 3, and so activity 3 cannot begin
until activity 1 has been completed. Lastly, activity 4 has two preceding
activities; 2 and 3. These are separated by a comma in the precedence
column (2,3), which indicates activity 4 cannot begin unless activities 2
and 3 have both been completed.
By default, dependency rules are applied to whole records such that Every
activity in the predecessor record must be completed before Any of the
activities in the successor record can be started. This default option is
referred to as ALL activities in both the predecessor and successor
records.
All dependencies are created by dependency rules and these are grouped
into sets to simplify their management. Before any dependency rules can
be defined, users must create a new dependency rule set and give it a
unique name.
To create a new dependency rule set, the Dependency Rule Set item in the
tree structure of the schedule set up window should be selected with the
All Items tab active. A list of the current dependency rule sets will be
displayed in the right hand pane. Buttons are also provided to add a new
rule set or to delete, edit or rename an existing rule set.
When the New button is selected, a new item will be added to the list and
an appropriate name should be entered to the replace the default name
NewItem.
There are currently five different types of dependency rule sets, each
with different properties and behaviours, as follows:
Script;
Absolute Address;
Relative Address;
Absolute Bearing; and
Relative Bearing.
When first created, dependency rule sets have the default type of Script
and to change this, the rule set must be edited. This is achieved by
selecting it in the right hand window and pressing the Edit button, or
simply by selecting it in the tree structure.
When edited, the right hand window changes to show the rule set’s
properties. This window has three tabs, with the Coordinates tab
containing the main options. The other tabs provide access to advanced
features that are not applicable to all types of rule sets. These advanced
properties are described in later sections of this document.
The dependency rule set’s type is selected from a drop down list box and
when changed, the options available in the window change accordingly.
The options available with each type of rule set are described in the
following sections.
The user must also specify the database range the XCM script will be
executed over. By default the pre-defined range All is used, but this can
be changed to limit the effects of the rule set to a particular portion of
the deposit.
Only one script can be specified in a dependency rule set, although any
number of rule sets can be created. This allows different XCM scripts to
be executed over different database ranges.
The scripts used in dependency rule sets make use of several special
XCM functions that allow the interrogation of existing dependencies and
the creation of new dependencies. A list of the scripting functions
related to dependency rules can be found in the XCM programming
documentation and in the XCM quick reference guide.
The two additional tabs on the right hand pane of the schedule set up
window (Circular Reference Checking and Adjacency Tables) provide access to
advanced properties that are not appropriate to this type of dependency
rule set. The options on these tabs are therefore unavailable with this
type of dependency rule set.
Rules within this type of rule set are defined manually and each rule will
only create one dependency. Whilst this makes them very flexible, they
are obviously unsuitable for creating the thousands of rules most
AutoScheduler models require. They are therefore restricted to small
areas of a mine where exceptions to the generic rules occur.
When a rule set of this type is first created, an empty rule table is
displayed in the right hand side of the schedule set-up window. To add
rules, the Display Main Database Tree checkbox should be ticked. This will
replace the schedule set up tree with a main database tree.
When the user is dragging predecessors into the table in this manner, the
cursor will show an invalid symbol until it is over a valid cell in the rule
table. When the cursor is over an empty row in the table, it changes to
an arrow with a plus (+) symbol.
Once a dependency rule has been created, both the successor and
predecessor records can be modified. This is achieved by dragging a
replacement record from the tree to the successor or predecessor
columns of the rule that must be modified. When the user drags a
replacement successor or predecessor over an existing record, the cursor
will change to an arrow (without a plus symbol) indicating this action will
replace the existing value rather than adding a new dependency.
The rule table has columns for the successor and predecessor activities,
and when new rules are inserted, they are both given the default value of
All. This default can be changed in one or both of the columns, if the
rule must apply to specific activities.
Absolute address rules can also be placed into OR rule groups. As soon
as one of the rules within any such group has been satisfied, all the rules
in the group are assumed to have been satisfied. The properties of OR
rule groups are explained in more detail later in this chapter.
This will add a new line into the table that shares the same successor
(indicated with a quotation ditto symbol (“) in the successor column. A
number will also be shown in the => column, indicating the number of
the OR rule group.
The Lag list box under the rule table allows users to assign a delay to
each of the dependencies created by the rules in the set. The duration of
the delay is specified in calendar days and either a reference to a main
database field or an absolute value can be specified. If a main database
field is selected, a unique delay can be assigned to each record.
The Release Profile list box under the rule window allows the user to assign
a release profile to the dependencies created by the rules in the set. A
release profile allows the successor record in each dependency to
become available for mining as soon as a specified percentage of the
predecessor has been mined. Release profiles are described in greater
detail later in this chapter.
The two additional tabs on the right hand pane of the schedule set up
window provides access to more advanced properties. The only
advanced option available with this type of rule set is Circular Reference
Testing, and this is described more fully later in this chapter.
We use the APIL numbers on each level of the database to define the
location of each record in the deposit. This also provides a convenient
method of specifying the relationships (or APIL offsets) from one
record to a neighbouring record.
To create a rule set of this type, Relative Address must be selected in the
Type list box. An empty rule table will then be displayed in the window.
The table has a column for each level in the database hierarchy as well as
columns for the successor and predecessor activities. The final column
indicates whether the rule is assigned to an OR rule group.
The database level columns are used to specify offsets that must be
applied to the APIL numbers of the successor block to obtain the APIL
numbers of its predecessor. Offsets for every level must be provided
and these are determined by subtracting the APIL of the successor
record from the APIL number of the predecessor record. The general
formula for these offsets is as follows.
Offsets must be specified for every level in the hierarchical database, but
often many of the offsets will be zero. For example, in an open cut coal
mine with a Pit/Strip/Block/Seam database structure, a rule is needed to
prevent any seam from being undercut by the seam below. A relative
address rule that achieves this would have an offset of –1 on the seam
level and an offset of zero on the other database levels.
Although this rule type does not require the deposit to have a regular
geometric blocking, its effectiveness can only be realised if the APIL
numbers are carefully chosen. For example, the development in an
underground deposit rarely has a regular geometric layout. However, if
the blocks along each drive are allocated sequential APIL numbers
(which is usually the case), a single rule can be used to assign most of the
dependencies required to control the mines development sequence.
Because rule sets of this type are generic, they will be applied to every
record in the specified Successor Range. The relationships between
successor and predecessor records must therefore be valid for every
block in this range. If different relationships exist in different portions
of the deposit, different rule sets must be created for each portion.
Before the rule set creates a dependency, XPAC tests whether the
predecessor record occurs within the range specified in the Predecessor
Filter list box. If the predecessor record is within the range, the
dependency will be created as normal. But if the predecessor record is
not in the range, the dependency will not be created. By default the
Predecessor Filter range will be set to All, ensuring that every dependency
will be created.
The activity columns in the rule table are assigned the default value All
when rules are first created, ensuring Every activity in the predecessor
must be completed before Any activities in the successor can be started.
This default can be over-ridden by selecting a different activity from the
drop down list provided when a cell in one of the activity columns is
clicked.
The Or Group Number column allows users to create OR rule groups using
relative address rules. By default, new rules are assigned an Or group
number of zero, indicating they are normal dependency rules. But if two
or more rules are assigned a unique number, they will be treated as an Or
rule group, and will all be satisfied as soon as one of the rules has been
satisfied. The properties of OR rule groups are explained in more detail
later in this chapter.
Each rule set can contain many rules, but they will all be applied to the
same successor range. If different rules must be applied to different
successor ranges, they should be placed in separate rule sets.
The Lag list box under the rule table allows users to assign a delay to
each of the dependencies created by the rules in the set. The duration of
the delay is specified in calendar days and either a reference to a Main
database field or an absolute value can be specified. If a main database
field is selected, a unique delay can be assigned to each record.
The Release Profile list box under the rule table allows the user to assign a
release profile to the dependencies created by the rule set. A release
profile allows the successor record in each dependency to become
available for mining as soon as a specified percentage of the predecessor
has been mined. Release profiles are described in greater detail later in
the chapter.
As with the other types of rules, the two additional tabs on the right
hand pane of the schedule set up window provides access to more
advanced rule properties. Most of the advanced option can be used with
this type of rule set and these are described more fully later in this
chapter.
When open pit deposits are modelled within XPAC databases, the
hierarchical structure is often based on the regular geological model used
for grade estimation and pit optimisation. In such instances, three of the
hierarchical database levels are usually used to represent the three
dimensional coordinates of each block within the models framework.
Open pit models commonly use three database levels to represent each
blocks Bench (Z coordinate), Easting (X coordinate) and Northing (Y
coordinate). Other levels may also be used, but these usually classify the
blocks into related groups such as pits, stages and material types.
In some cases, the physical coordinates of each block’s centroid are used
as APIL numbers and the values assigned to successive blocks will
therefore increment by a value equal to the block size in the associated
direction.
To create a rule set of this type, Absolute Bearing must be selected in the
Type list box. A grid will then be displayed on the right hand pane of the
schedule set up window that represents a horizontal plane with North up
the screen. The central cell of this grid (coloured blue) does not
represent a particular block in the deposit. Instead it represents each
record in the successor range (the records the rule will be applied to).
Each axis also has a multiplier text box, which is used to specify the
increment in APIL numbers between successive blocks in each direction.
They have a default value of 1 but this can be edited if the APIL
numbering system is not based on the number of whole blocks from a
given origin. Negative multipliers can also be entered if the coordinate
system does not increase in the standard direction (positive toward the
East, the North and upward).
To create a new rule in the rule set, the predecessor block relative to the
blue successor block must be selected using the mouse and the New Rule
button pressed. If the block immediately below the blue block were
selected, it would indicate the block to the South is a predecessor of the
blue block. When the rule is applied to a range, each block in the range
would be assigned a dependency that requires the block to its South to
be mined before it can be mined.
When a new rule is created or whenever the Edit Rule button is pressed, a
rule table is displayed showing all the rules within the set. This has
columns for each axis and for the successor and predecessor activities.
The offsets shown in the axis columns represent the displacements from
the successor to the predecessor. They are shown in whole blocks with
positive displacements in the standard directions, regardless of the value
or sign of the multiplier.
The activity columns in the rule table are assigned the default value All
when first created, ensuring Every activity in the predecessor must be
completed before Any activities in the successor can be started. This
default can be over-ridden by selecting a different activity from the drop
down list provided when a cell in the activity column is clicked.
The Or Group Number column allows users to create OR rule groups using
absolute bearing rules. By default, new rules are assigned an Or group
number of zero, indicating they are normal dependency rules. But if two
or more rules are assigned a unique number, they will be treated as an Or
rule group, and will all be satisfied as soon as one of the rules has been
satisfied. The properties of OR rule groups are explained in more detail
later in this chapter.
When the rule table is closed (using the OK or Cancel buttons) the new
rule will be shown in the grid as a red block with an arrow pointing to it.
The arrows point to the predecessors (the red blocks) that must be
mined before the successor (the blue block) can be mined. If there are
two or more predecessors vertically above one another, the arrow is
shown in bold. When one of the selected predecessors is vertically
above or below the blue predecessor block, its colour is not changed, but
an arrowhead is displayed at the centre of the blue block.
The Lag list box under the grid allows users to assign a delay to each of
the dependencies created by the rules in the set. The duration of the
delay is specified in calendar days and either a reference to a main
database field or an absolute value can be specified. If a main database
field is selected, a unique delay can be assigned to each record.
The Release Profile list box under the grid allows the user to assign a
release profile to the dependencies created by the rule set. A release
profile allows the successor record in each dependency to become
available for mining as soon as a specified percentage of the predecessor
has been mined. Release profiles are described in greater detail later in
the chapter.
The two additional tabs on the right-hand side of the schedule set up
window provide access to more advanced rule properties. All of the
advanced option can be used with this type of rule set and these are
described later in this chapter.
In the example above, the three selected blocks are not relative to any
specific bearing. Instead they indicate that each block in the successor
range will have three predecessors; the Block Behind, the Block Behind and
Right and the Block Behind and Left.
Controls that are similar to absolute bearing rule sets are provided to
select the database levels for each axis and specify appropriate
multipliers. Furthermore, rules are created and edited in exactly the same
way as absolute bearing rules. To create a dependency, select the
appropriate block by clicking on it and then press the New Rule button.
Whenever the New Rule button or the Edit Rule button is clicked, the rule
table will be displayed. Again, the user must update the offset in the Z
direction, if the predecessor block is above or below the successor block.
The Or Group Number column allows users to create OR rule groups using
absolute bearing rules. By default, new rules are assigned an Or group
number of zero, indicating they are normal dependency rules. But if two
or more rules are assigned a unique number, they will be treated as an Or
rule group, and will all be satisfied as soon as one of the rules has been
satisfied. The properties of OR rule groups are explained in more detail
later in this chapter.
When a main database field is used to store the face advance bearing,
each record must be assigned an appropriate value, either using an XCM
script or by importing appropriate data.
When relative bearing rules are applied to each block in the successor
range, the grid is orientated to the blocks face advance direction before
the rule is applied. If the face advance directions are changed, the rule
set should be re-applied and the dependencies will be automatically re-
orientated.
The Lag list box under the grid allows users to assign a delay to each of
the dependencies created by the rules in the set. The duration of the
delay is specified in calendar days and either a reference to a main
database field or an absolute value can be specified. If a main database
field is selected, a unique delay can be assigned to each record.
The Release Profile list box under the grid allows the user to assign a
release profile to the dependencies created by the rule set. A release
profile allows the successor record in each dependency to become
available for mining as soon as a specified percentage of the predecessor
has been mined. Release profiles are described in greater detail later in
the chapter.
The two additional tabs on the right-hand side of the schedule set up
window provide access to more advanced rule properties. These
advanced options are more appropriate to this dependency rule type than
any other, due to the greater risk of generating circular references. These
advanced options are described in later sections.
The user can define as many rule sets as required, with any combination
of rule set types. Each rule set (other than absolute address rule sets)
also has a unique successor range, so they can be applied to specific
portions of the deposit.
Although dependency rule sets can be created using the All Items tab of
the schedule set up window, the Scenarios tab must be chosen to select
which rules will be used in each scenario.
Selecting the Dependency Rule Sets item in the tree structure when the
Scenarios tab is active will display a list of every dependency rule set in the
model. Each item has a checkbox to the left of its title and ticking this
activates the rule set for the current scenario.
If a dependency rule set is edited when the Scenarios tab is active, two
additional buttons become available on the right hand side of the
window. These are called Apply Rule Set and Delete Rule Set and are
greyed when the All Items tab is selected. The example below shows an
absolute bearing rule set being edited with the Scenarios tab selected. The
additional buttons are provided for every type of rule.
If a dependency rule set with a red name is re-applied, the colour of its
name is changed to black to indicate it has been brought up to date. If
there are no other rule sets with red names in the scenario, the colour of
the Dependency Rule Sets item in the schedule set up tree will also be
changed to black.
There are several other methods that can be used to apply and delete rule
set, as follows.
The Scheduling | (Re)Apply All Rule Sets menu option will remove all
existing dependencies from the model and then re-apply all the rule
sets selected in the current scenario, in the order they appear in the
schedule set up tree.
If the Scheduling | Remove All Rule Sets menu option is selected when
the Scenarios tab is chosen, all existing dependencies will be removed.
It should be noted this option does not remove the rule set from the
scenario, and a tick remains against that rule sets name. The name of
this rule set in the schedule set up tree will be turn red to indicate it
must be re-applied.
Whenever the Dependency Rule Sets item in the tree is coloured red, the
dependencies within the model are not up to date. If a schedule is
executed when the model is in this state, a warning message is displayed
asking if the rule sets should be re-applied before the schedule continues.
In most situations, this option will be accepted.
An example is in an open cut coal mine, where coal mining can begin as
soon as coal is exposed, regardless of whether the block has been fully
stripped or not. Release profiles are normally used for short term
scheduling, but are also useful for models that contain large blocks (for
example, an open pit that has been subdivided into whole benches).
To edit an existing rule, select it in the list and press the Edit button.
The table on the left of the window lists the data points in the release
profile and this is represented graphically on the right. The two columns
in the table contain the percentage of the predecessor mined at each
point in the profile and the percentage of the successor that will be
released (ie become available) at these points. Before the data in the
table can be edited, the Allow Modification checkbox must be ticked.
If 50% of one predecessor has been scheduled, but none of the second
predecessor has been scheduled, none of the successor will be released.
Even though the first dependency will allow 30% of the successor to be
mined, the second rule has not released any material and the smallest
released quantity is always used.
When the advanced button is clicked, a dialogue opens which allows the
user to change the Time Step value from its default setting of 1 day. It
should be noted that this setting is only used when a resource is delayed
and other resources are scheduling records that have dependencies with
release profiles assigned to them.
In the following example, an upper level rule ensures that when an upper
level predecessor (containing children A and B) is scheduled, material
from the upper level successor (containing children C and D) will be
released. This rule uses the 25% Lag Proportional release profile. For
simplicity we will assume all 4 records contains the same ore quantity.
A B
100 25% Lag Proportional
75
% Released
50
25
0
0 25 50 75 100
% Mined
C D
15% Released 15% Released
Because the release profile is applied to each lower level dependency the
upper level rule generates, each dependencies release profile will be
evaluated independently of the others.
Whilst this approach can be very useful, there are situations where the
total quantity mined and total quantity released apply directly to the
upper level records, rather than to their children individually. The mined
quantity would now be considered as the total quantity mined from all
the children of the upper predecessor record. The quantity released
would also be allocated to the upper level successor, to be shared
between all its children in any combination.
When the release profile must be applied in this manner, the Advanced
Release Profiles dialogue should be opened by clicking the Advanced…
button beside the Release Profile list box in the dependency dialogue.
The Use Upper Level Profiles checkbox must be ticked and accumulation
fields must be selected for each activity the release profile applies to.
These are usually the accumulation fields used by the resources mining
those activities, but the user can choose different fields if required. They
are applied to each activity independently of one another.
A B
100 25% Lag Proportional
75
% Released
50
25
0
0 25 50 75 100
% Mined
C D
Up to 50% Up to 50%
released released
Max 25% of Total Released
Although the total quantity of the successor that is released is only 25%,
this can be shared between the successors children in any combination.
50% of record C could be scheduled without any material scheduled
from record D. Conversely, 50% of D could be scheduled with no
material from record C being scheduled. Any combination between
threes two extremes could also apply.
Predecessor Predecessor
B C
Successor
A
Predecessor Predecessor
? D
Alternative
Predecessor
B1
Alternative
Predecessor
Successor C1
A
Alternative
Predecessor
D1
Alternative
Predecessor
?1
Predecessor Predecessor
H I
Alternative
Predecessor
B1
Alternative
Predecessor
G2
Successor Alternative
Predecessor
A C1
Alternative
Predecessor
F2
Alternative
Predecessor
D1
Predecessor
E
This would be read as Successor A can not be scheduled until (B1 OR C1 OR D1)
AND E AND (F2 OR G2) AND H AND I have been scheduled.
Once the initial rule has been created, the other alternative predecessors
must be added to it. This is achieved by dragging them from the tree to
the same row in the dependency table, whilst the control key <Ctrl> is
held down. A new row will be inserted into the table, above the row the
predecessor was dropped on.
The rule table in absolute bearing and relative bearing rule sets also have
a group number column, but the user must add a new rule or edit an
existing rule in order to display the rule table.
If there are two or more rules with the same group number, XPAC will
assume they are all satisfied as soon as one of their predecessors has
been scheduled. In the following example, each block will become
available as soon as one of the four blocks adjacent to it has been
scheduled.
Each dependency rule set can contain any number of OR rule groups as
well as any number of normal rules. The user must simply give the rules
in each OR rule group a unique group number. The normal dependency
rules in the rule set must have a group number of zero.
For this reason, full and pre-emptive circular reference testing routines
do not consider dependencies that have been created by rules within OR
rule groups. Expanding the circular reference testing facility to include
alternative dependency rule groups will be added in a future release.
This will open a window with a database tree structure in the left pane.
When a record is selected in the tree, its predecessors are listed in the
right pane. Clicking the Show Successors check box will display the
successors of the selected record after its predecessors. In the window,
the record selected in the tree is shown in black, whilst its predecessors
are shown in red and its successors are shown in blue.
The records in the database tree are usually shown in black. But if a
circular reference exists in the model, the colour of records within the
circular reference will be shown in red. Parents of the records within a
circular reference are also shown in red, making it easy to identify where
they occur in a model. This requires the Circular Reference Record Colouring
checkbox in the Global Options dialogue to be ticked.
If the user selects the Both option, both the red and the blue arrows will
be displayed. When both a red and a blue arrow join two records, the
colour of the arrow is changed to magenta. This option is only really
appropriate when the Show Dependencies For Selected Records Only checkbox
is ticked.
If the user selects the Predecessors, Successors or Both options, the user can
select which rule sets should be displayed on the plot. If the Display All
Rule Sets checkbox is selected, the checkboxes for each individual rule set
will be greyed and the plot will display every dependency in the current
scenario.
If the Show Dependencies For Selected Records Only checkbox is not ticked,
every dependency between records in the plots range will be displayed as
an arrow. As there can be thousands of dependencies in the model, this
checkbox is normally left ticked.
The user has several options regarding the quality of the arrows used to
represent dependencies. High quality arrows are better when plots are
rotated in 3D, but they do take longer to render. When high quality
arrows are selected, the arrows shaft and head size can be adjusted
separately. The head of the arrow can also be moved away from the
centroid of the predecessor a small distance, to avoid them getting
confused with other dependencies that point to the same record.
Generic dependency rules that are applied to large areas of a mine are
normally responsible for creating most of the dependency rules in
AutoScheduler models. These types of rules are very flexible and each
one can create many thousands of individual dependencies.
But at most mines there are areas that do not follow the general rules.
Although script rule sets are commonly applied in these areas, it is often
simpler to create the dependencies manually using absolute address rule
sets.
Once the plot has been displayed, the Dependencies mode button should
be pressed and the Dependencies View should be opened. This can either
de docked to an edge of the screen or left to float over the image.
Most users will determine the window layout that best suits their
requirements. A good starting point is with both the Dependency View and
the Tree View docked on the right hand side of the screen, with the Tree
View on the bottom. The window splitter should also be adjusted so the
full width of the Dependency View is visible.
The View Rule Set drop down list box defines which dependencies will be
displayed in the polygon view whilst the dependencies are being created.
This setting only applies when the Dependency Rule View is visible and
over-rides the settings defined in the Dependency tab of the polygon plot’s
template. The following options are available.
None: Will not display any dependency arrows in the graphics image.
Selected Rules: Displays arrows to represent dependencies that will be
created by the rules currently selected in the Dependencies View. The
user can select multiple rows in the use the Dependencies View using
windows standard methods (ie holding the <Ctrl> or <Shift> keys
whilst clicking on rows.
Edit Rule Set: Displays arrows that represent the dependencies that
will be created by the rule set currently being edited. This is the most
common selection.
Scenario Rules: Displays arrows that represent every dependency
defined in the selected scenario.
The Edit Rule Set drop down list box is used to specify the rule set where
new rules will be added. This can be any existing rule set, providing it
has the type Absolute Address and is active in the selected scenario.
Alternatively the <New Rule Set> option can be selected, which will
automatically create a new Absolute Address rule set and prompt for an
appropriate name.
The two Activity drop down boxes are used to specify the default
predecessor and successor activities that will be assigned to any new
rules added graphically. By default, these are set to All, but they can both
be changed. The activities assigned to each rule can also be changed
individually, after the rule has been created.
The Release Profile list box allows a release profile to be assigned to each
of the dependencies created by this rule set. Any release profile can be
selected or a new release profile can be created. However the same
release profile will apply to all rules within the set.
The rule table in the Dependency Rule View is similar to the one used for
Absolute Address rule sets in the schedule set up window. This shows
any rules that already exist in the rule set being edited (the one selected in
the Edit Rule Set drop-down list box) and any new rules that are added to
it.
To create a new rule, the user must first select the successor record by
clicking on it. The colour of the selected block will change to blue, to
emphasise the selected successor block.
Once the successor has been chosen, its predecessors are selected by
clicking on them with the <Ctrl> key pressed. Each of the selected
predecessor blocks will change colour to red to emphasise them. The
cursor will also change to an arrow with the word AND when the <Ctrl>
key is pressed, indicating that standard dependency rules are being
defined.
When the successor record is selected for a second time (with the <Shift>
key pressed), a single OR rule group will be added to the rule set
containing all the selected alternative predecessors.
The type of rule set created (standard rules or an OR rule group) depends
on whether the <Ctrl> or <Shift> key is being pressed when the successor
is selected for the second time. Even if the <Ctrl> key was being pressed
when the successors were selected, an alternative rule group will be
created if the <Shift> is being pressed when the successor is selected for
the second time. It doesn’t really matter which key is pressed when the
predecessors are chosen, providing the correct key is pressed when the
successor is clicked a second time and the rules are added to the list.
There are seven docking windows (or views) associated with each
graphics template that either display useful information or allow the view
to be used interactively.
These views are extremely flexible and once their basic properties have
been mastered, they help maximise the screen space available to display
the polygon plot when other activities are being performed. The
docking windows available are as follows.
Legend
Polygon Tree View
Polygon Transfer View
Input Path View
Dependency View
Animation Control Bar
Animation Path View
Buttons are provided that toggle the visibility of these windows and
similar menu options are available in the Graphics menu.
Some of the views are not appropriate in all situations and their button
/menu option may appear greyed. Specifically, the Dependencies view can
only be selected when Dependencies mode is chosen and the Animation
Control and Path views can only be chosen when a path has been loaded
for animation.
Each of these windows can be docked along any edge of the screen
(along the sides, below the tool-bars or above the status bar) or they can
be positioned so they float over the polygon view. We recommend the
polygon window is maximised when these windows are being used.
Length 2
Record A Record B A is Dependent On B
B is Dependent On A
Record A Record B
Length 3
A is Dependent On B
B is Dependent On C
C is Dependent On A
Record C
Record G Record H
Record F
Record E Record I
Record A Record B
Record D Record J
Record C
Record L Record K
If the After Every Rule option button is selected, a scan for circular
references will be performed once every rule in the set has been applied
to each records in the specified range. This is the standard option and
when applied, the time required to apply the rule set will increase.
If the Every Single Dependency Instance option is chosen, a scan for circular
references will be performed whenever a dependency is created. This
option causes a significant increase in the time required to apply the rule
set.
When Relative Bearing rule sets are used, the risk of generating circular
references increases significantly. It is very easy to repeatedly modify the
face advance directions when using this type of rule and it is easy to
overlook the implications associated with this.
Although very powerful, the facility is only available for Absolute Bearing
and Relative Bearing rule sets. Furthermore, it will only test for possible
conflicts between the rules in a single rule set.
If the Omit Rule option was chosen, a dialogue will be displayed when a
circular reference is found that asks which of the two rules forming the
circular reference should be omitted. The dependency created by the
selected rule or rules will then be omitted from the model.
Whilst this option may appear quite drastic, only a small number of rules
are omitted and many thousands of rules will remain. Because of this,
omitting both rules seldom has any significant impact on the face
advance profile.
If the Don’t Ask (Apply Both Rules) check box is ticked, the dialogue box
will not be displayed and instead, both of the dependencies that would
have caused the circular reference will be replaced by their alternatives.
An alternative can be defined for each rule in the rule set by clicking the
Edit Rule button when defining any absolute bearing or relative bearing
rule set. Three alternative rule columns are provided in the rule table
where alternative offsets in the X, Y and Z directions should be
specified. These columns are greyed unless the Apply Alternative Rule pre-
emptive circular reference testing mode has been selected.
Hole Scanning
When relative address, absolute bearing and relative bearing rule sets are
used, dependencies are not created unless the associated predecessor
record does not exist in the database. Whilst this is usually the most
appropriate response to the missing block, it can cause unwanted
behaviour in certain situations.
Areas Scheduled
Prematurely
When this situation occurs, the blocks are often scheduled too early,
normally in V shaped areas in the lee of holes and to prevent this from
occurring, specific rules must be defined for each area.
Hole scanning techniques are used to avoid the need for these specific
rules. They function by iteratively applying the appropriate dependency
rules to missing blocks until an appropriate record is found. A number
of alternative methods have been provided to perform this function and
these are assigned on the rule sets Circular Reference Checking tab. These
methods are only available to relative address, absolute bearing and
relative bearing dependency rules sets.
By default, hole scanning is not active and if required, the option button
associated with one of the four scanning methods should be selected.
Each method is different and their effectiveness varies in different
circumstances.
Missing Block Scanning is the simplest method and is the most
commonly used. If a rule points to a predecessor that is missing, the
rule will be re-applied from the location of the missing predecessor
rather than the successors location. The scanning process repeats
until a block is found or the maximum number of iterations specified
in the Scan Range text box is reached. If a block is not found during
the scanning process, a dependency will not be created.
Block Behind Scanning takes a similar approach, but rather than
applying the rule to the location of the missing block, it is applied to
the block behind the successor, based on it’s face advance direction.
The scanning process continues to apply the rule to blocks further
behind until a predecessor is located or the scan range is exceeded.
Side Scanning is quite different to the other methods and is more
suited to large holes. If this technique is used and the desired
predecessor record is missing, the AutoScheduler will scan from side
to side, looking for an alternative predecessor. It first looks for the
block behind and left, then behind and right. If neither of these
exist, it will look for a block behind and two to the left, then behind
and two to the right. This process will be repeated until a suitable
predecessor is found or the scan range is exceeded.
The Run Script option is provided as an alternative when the pre-
defined hole-scanning methods are not suitable. If this option is
selected, a script will be executed whenever a missing block is
encountered, allowing the user to evaluate the circumstances and
take the most appropriate action.
As the approach taken in each case differs slightly, they are discussed
separately.
When a database level is used to classify the deposit into groups, generic
dependency rules will assume the predecessor is located in the same
group as the successor. If this is not the case, it will not be able to locate
the predecessor, even though its physical location (its PIL numbers on
the levels used to represent its X, Y and Z coordinates) are known.
The Classify By drop-down list box allows the user to choose how the
records in the database have been classified into groups. It contains a list
of all database levels followed by all database fields. In this section, we
will consider the use of database levels to classify the deposit. The use of
database fields for this purpose are considered in the following section.
By default, the first database level is assigned to the Classify By list box,
but the user can select any other database level for this purpose. If the
user changes the value in this list box, a warning message is displayed
indicating that any data in the existing adjacency table will be lost.
Once the list of groups has been determined, the square grid will be re-
sized so there is a row and column for every group found with
appropriate titles. The adjacency table is now established and the user
can define which groups are adjacent to one another.
Each row in the table represents a group to which the successor may
belong, whilst the columns represent the groups that may be adjacent to
it. As a group is always adjacent to itself, the cells along the diagonal are
not available.
The adjacency data does not have to be symmetrical, and group A can be
adjacent to group B without group B being adjacent to group A.
However, if the Symmetrical check box is ticked, whenever an entry is
added to the table, the inverse entry will be added automatically. This
will not effect entries that existed in the table before the Symmetrical
checkbox was selected.
When a dependency rule set is applied, it will search for the predecessor
in the same group as the successor. If this search fails, it will then search
for the predecessor in each adjacent group. A dependency will only be
created if the predecessor is found in the successors group or in one of
its adjacent groups.
In the example above, 2 ticks have been placed in the adjacency table.
The first tick indicates that Stage_1 is adjacent to Stage_2 and the second
indicates that Stage_3 is adjacent to the Stage_1.
When a field in the database is used to classify the deposit into groups,
generic dependency rules will always locate the predecessor, regardless of
the group to which it belongs. This is because the grouping does not
form part of the records unique identification.
Adjacency tables are also used in this situation, but instead of extending
the search to include additional groups, they filter the search to avoid
unwanted groups.
The user should first select the field that has been used to allocate
records to each group in the Classify By drop-down list box. The
AutoScheduler will then scan the entire database and construct a list of
each group of records within the database. This is based on the value of
the field and every unique value will be included in the list.
Any field can be used as the basis of the classification, but care should be
taken when it is selected, particularly in large models. If a grade field was
selected accidentally, XPAC could identify thousands of unique groups
and an enormous grid would be required.
To reduce the impact of upper level rules and limit the number of lower
level dependencies required to represent an upper level dependency rule,
XPAC performs an optimisation process whenever upper levels rules are
applied. This examines the dependencies that already exist between
children of the upper level successor and children of the upper level
predecessor. This can significantly reduce the number of dependencies
required to implement an upper level rule.
In the following example, there are two benches, each with six blocks.
We will consider two dependency rules as follows.
The blocks on each of the benches cannot be scheduled unless the
blocks to their East have been scheduled (ie mine each bench from
East to West).
Bench 2 cannot be scheduled unless bench 1 has been scheduled (an
upper level rule where both the successor and predecessor are both
upper level records).
Rule 1
Before a block can be mined, the block
to its east must be mined.
Bench 1
Bench 2
The next diagram shows the dependencies that would be created if rule 2
is applied on its own. In this instance, a dependency is required from
every record in bench 2 to every record in bench 1.
Rule 2
Bench 2 cannot be mined until
Bench 1 is mined
Bench 1
Bench 2
The final diagram shows the dependencies created when rule 1 is applied
to the model followed by rule 2. The redundant dependencies are
identified and eliminated when the rule is applied.
Bench 1
Bench 2
When XPAC applies dependencies, it does so in the order the rules are
displayed within the schedule set up tree. To amend this order, the rule
sets can simply be dragged and dropped to new locations. To gain most
benefit from the optimisation process, you should place rule sets that
involve upper level dependencies at the bottom of the list in the schedule
set up tree.
When the Apply All Rule Sets option is selected (either from the menu,
the right click menu or from a prompt when a schedule is run) the rule
sets will be applied sequentially in the order they occur within the tree.
But if rule sets are applied individually, it is possible a dependency that
was previously used in the optimisation process is changed or removed.
For this reason, we always recommend the Apply All Rule Sets menu
option is selected before scheduling, if any significant changes are made
to dependencies in models. This is more important in models that use
upper level dependencies, where optimisation will have been used.
But often, this will cause many empty activities to be included in the
schedule unnecessarily, slowing the schedule down in the early periods.
To avoid this, a field must be selected in the Zero Test Data Field column
of the Productive Activities dialogue that quantifies how much of each
activity exists in each record.
If the value of an activities zero test data field in a record is greater than
zero, the activity is assumed to exist for that record and will therefore be
included in the schedule. But if the value of the zero test data field is
zero or negative, it is assumed the activity does not exist in that record
and so it won’t be included in the schedule.
Regardless of the reason why a records activities are excluded from the
schedule, a potential problem exists if the excluded block is a
predecessor of other blocks. Because the predecessors are not
scheduled, its successors will never become available for scheduling.
Introduction
To create a new capacity constraint set, the Capacity Constraint item in the
schedule set-up tree should be selected with the All Items tab active. This
displays a list of the capacity constraint sets currently defined in the right
hand pane. Buttons are provided to add a new constraint set or to
delete, edit or rename an existing constraint set.
When the New button is selected, a new item will be added to the list and
an appropriate name should be entered to the replace the default name
NewItem.
To edit a capacity constraint set, the Edit button should be clicked after
selecting the appropriate constraint set from the list in the schedule set
up window. Alternatively, the appropriate constraint set can be edited
directly by selecting it in the tree.
There are four types of capacity constraints available and all the
constraints in a set must have the same type. The four types are as
follows.
Range
Contents of Range
Stockpiles
Concurrent Work In Progress (WIP)
The settings for each type of capacity constraint are very similar, but the
way they influence the schedule is sometimes different. The use of each
type of constraint will be described in the following sections.
Range capacity constraints are the simplest and most commonly used of
the four types. They set a maximum limit on the production from a
given portion of the deposit. When the capacity constraint is applied to
a model, the AutoScheduler will accumulate the production scheduled
from every record in the specified range and will not allow the total in a
period to exceed that periods limit (its maximum capacity).
Each range capacity constraint (ie each column in the table) has a
number of rows where its settings are defined. The purpose of each row
is described below.
The Range row in the constraint table is used to specify the portion
of the deposit that must be controlled by the capacity constraint.
Either an existing range can be chosen from the drop down list or a
new range can be defined by pressing the browse button.
The Proportional field in the table allows the user to indicate the
capacity constraint should be applied evenly across the period, rather
than simply limiting the total achieved during the period. In this
sense it is used to control the production rate rather than the total
production over the period. A detailed description of proportional
constraints and the sub-periods they use has been provided later in
this chapter.
If the All Resources cell is ticked, a greyed tick will be placed in every
resources row. The user will not be able to remove any resources
from the constraint whilst the All Resources cell is selected.
If the constraint should not apply to every resource, the tick in the
All Resources row should be removed. The ticks for each of the
resources will turn black and the user can then select any
combination of resources. For example, if a capacity constraint is
used to limit the ore quantity produced from a pit, only the Ore
Miner resource would be selected. But if the constraint was limiting
total material movement, both the Ore Miner resource and the
Waste Miner resource would be ticked.
300 180
B C
20 70 50 0 100 60 0 0 0 80 70 30
H I J K L M N O P Q R S
In the next example, the capacity constraint type has been changed to
Contents of Range and the maximum value has been reduced to 40 units.
240 240
B C
40 40 40 40 40 40 40 40 40 40 40 40
H I J K L M N O P Q R S
In the last example below, the scanning level of the range has been set to
Level 3 (the level containing records D, E, F and G). The maximum has
also been increased to 120 units.
240 240
B C
40 80 00 0 100 20 40 40 40 0 120 0
H I J K L M N O P Q R S
Because the scanning level has been raised, the range no longer contains
the lower level records. Instead the range consists of four upper level
records (D, E, F and G) and this is where XPAC will apply the maximum
limits.
The database ranges used for this type of constraint normally have a
scanning level applied. This ensures the elements within the range are
upper level records that accumulate their children’s production, rather
than the children themselves. The definition of database ranges and the
use of scanning levels are described in more detail in XPAC’s standard
on-line help system.
It is still possible to use database ranges with the scanning set to lowest
level. This will prevent production from each individual record in the
range from exceeding the maximum limit specified. In the example
above, if the scanning level of the range is changed to Stope, the Contents
of Range constraint would limit production in each individual stope.
It should be realised that this type of constraint does not limit the
amount of material moved to a group of stockpiles or depleted from a
group of stockpiles; normal range capacity constraints can be used to do
this. Instead, these are used to control the maximum inventory within a
stockpile or group of stockpiles at any point during the schedule.
The records associated with each stockpile are not created until the
stockpile is assigned to a scenario, and if the stockpile is de-activated,
ranges containing that stockpile will become invalid. This problem
can be avoided by using the automatic ranges created for records on
level 1 of the database, which include the parent of each stockpile
(the names of these ranges are displayed in blue in the Ranges
dialogue). If a group of stockpiles must be controlled, a new empty
range should be created and the appropriate automatic ranges should
be added to it using the Include Other Range button.
The Type row is used to define the purpose of the constraint and
two options are available as follows.
Total Sizeprevents the total size of the stockpiles included within the
range from exceeding the maximum limit specified. This would
typically be used when there is a limited space available to create the
group of stockpiles, which cannot be exceeded. The distribution of
material between individual stockpiles within the group is not
controlled and additional constraints should be created, if this is
required.
Size For Each Periodprevents the total size of the stockpiles included
within the range from growing by more than the specified limit each
period. This would typically be used to prevent the stockpiles from
suddenly increasing in size by an unacceptable amount.
The Resources rows at the bottom of the table are used to define
which resources the constraint will monitor and control. With this
type of capacity constraint, the user must ensure that every resource
that can send material to the controlled stockpiles or remove material
from them are included in the range. Failure to do this may lead to
unexpected results.
As with the other types of capacity constraint, each constraint has its
own column in the constraint table. The purpose of each row in this
table is described below.
The Flag Field rows are used to indicate which main database fields
should be used as the Active Flag fields. If the capacity constraint is
being used to control more than one activity, flag fields must be
assigned to each.
The sub-period type allows the user to specify the duration of the sub
periods in different ways. Two options are available, as follows.
100
90
% Hi-Clay Ore In Total
80
70
60
50
40
30
20
10
0
Period 1 Period 2
As the total production of high clay material did not exceed 30% of the
total ore quantity in each period, the capacity constraint was honoured.
But at specific times during each period, high clay production represents
over 80% of the total production.
Standard capacity constraints control the total quantity produced in a
period and not the rate at which it is produced. If the plant was unable
to accommodate such a high clay feed for such extended periods, the
capacity constraint must be applied over shorter periods (sub-periods),
with proportionally reduced maximum limits.
The following graph shows the effects of making the constraint
proportional, with 12 sub-periods of equal duration per period. At the
start of each sub-period, clay production is usually high, but this drops to
zero at toward the end of each sub-period to ensure the maximum for
that sub period is not exceeded.
100
90
% Hi-Clay Ore In Total
80
70
60
50
40
30
20
10
0
Period 1 Period 2
Sub Periods
Each capacity constraint set in the list has a checkbox in front of its
name and this should be ticked to activate the constraint set in the
current scenario. The selected constraint sets (those with a tick in their
checkboxes) are shown under the capacity constraint item in the
schedule set-up tree.
Consider a mine split into two pits. The mine must produce 1 million
tonnes of ore, but each pit must produce at least 25% of the total.
Although we cannot force the AutoScheduler to mine a minimum of
250,000 tonnes of ore from each pit, we can ensure it does not mine
more than 750,000 from them. In doing so, we achieved the same result.
Consider a mine split into 3 pits that must produce 270,000 tonnes in a
period. The quantity of material in each pit and the minimum
production each must contribute are as follows.
How would we assign capacity constraints so that each pit achieves the
specified minimum production rates?
b + c ≤ 170,000
a + b ≤ 210,000
a + c ≤ 170,000
Introduction
Each block in the available block list is tested at the start of each period
controlled by the constraint and any record in the specified range will be
suspended. Blocks are also tested when they are added to the Available
Block List, to ensure they are not subject to an active period constraint.
Once a record has been suspended by a period constraint, it will remain
that way until the end of the period.
When the New button is selected, a new item will be added to the list
and an appropriate name should be entered to the replace the default
name NewItem.
Each period constraint (ie each column in the table) has a number of
rows where the settings of the constraint are defined. The purpose of
each row is described below.
The Database Range row is used to define the records the period
constraint will apply to. The period constraint always applies to the
lower level records in the range. If the range has an upper level
scanning range, the lower level records below each items in the range
will be controlled by the constraint.
The Period row is used to specify the periods during which the
constraint will apply. These are specified using a calendar database
range, which can include any combination of periods. The periods in
the range do not have to be contiguous.
If the All Resources row is ticked, a greyed tick will be placed in every
resources row. The user will not be able to remove any resources
from the constraint whilst the All Resources row is selected.
If the constraint should not apply to every resource, the tick in the
All Resources row should be removed. The ticks for each of the
resources will turn black and the user can then select any
combination of resources.
When a period constraint is defined, it will only effect the model during
periods within the specified calendar database range. In these periods,
none of the records in the specified database range will be scheduled.
Each period constraint set in the list has a checkbox in front of its name
and this should be ticked to activate the constraint set in the current
scenario. The selected constraint sets are displayed under the Period
Constraints item in the schedule set up tree.
Introduction
Each constraint set can contain many constraints and each one is
displayed in a column of the proximity constraint table. When a new
proximity constraint set is edited, it will contain one empty column titled
New Constraint.
The Database Range row is used to define the records that the
proximity constrain will apply to.
The Production Rate Decrease rows are used to specify the production
rate of resources changes when more than one resource operates in a
block at the same time. The rates are entered as a percentage of the
resources normal production rate. When used with Auto-Target
resources, the production rate changes are not used.
Introduction
A record is also created under this parent for each stockpile that has
been defined and activated in the current scenario. As different
scenarios can have different combinations of stockpiles, the database will
automatically adjust itself when the active scenario is changed.
Note: Because the records within a stockpile are only valid for the current
scenario, when the active scenario is changed, all stockpile records are
lost. A new schedule must be generated for the scenario before the
stockpile records will be re-created. To avoid this problem when
alternative stockpiling strategies are being assessed, different scenarios
can be built in different copies of the project.
If the stockpile has been modelled as average, all material moved to the
stockpile is added into a single pile record (on level 2 of the database,
under the appropriate stockpile parent record). The high grade stockpile
in the following database tree has this structure.
Creating Stockpiles
Although most items in the tree can be given a name of any length and
may include spaces, restrictions are placed on stockpile names. This is
because the name of the stockpile will also as used as the name of the
main database record that will represent it. The name of the stockpile
therefore has the same restrictions that apply to all record names; a
maximum of 12 characters with no special characters. Any space in the
name will be converted to underscore characters.
Editing Stockpiles
There are three settings used to control the properties of each stockpile
and these are explained in the following section.
This setting is used to control the size of each pile within the stockpile,
which is based either on the quantity of material within the pile or the
time it takes for construction.
When Quantity is used as the pile size units, the user can either select
the pre-defined Period Target option or enter a fixed quantity directly
into the right hand list box.
When Period Target is chosen as the pile size, the AutoScheduler will
create a new pile when the existing pile contains a quantity of
material equal to the sum of the targets of the resources assigned to
that stockpile for the current period. Providing the targets for these
resources were achieved during a period, a new pile will be created at
the beginning of the next period and at the end of the schedule there
will be the same number of piles as there were periods scheduled.
When Time is used as the pile size units, the user can again enter a
specific duration or choose the pre-defined Period Duration option.
The stockpiles dependency rules control how the records used to model
the stockpile are organised and how they become available when the
stockpile is depleted.
The Pile Type list box allows the user to define the behaviour of each pile,
and four settings are available as follows.
When the pile has been completed, the running total is stored in a
pile record on level 2 of the database, under the stockpiles parent
record. The individual movements of material to the stockpile
cannot be identified from the database records, as they have all been
merged into a single record. But the output path of the resource(s)
that built/depleted the stockpile can be used to provide a history of
movements to/from each stockpile.
The First In First Out (FIFO) setting indicates that every parcel of
material moved to the stockpile (every scheduling step with this
stockpile as its destination) must be stored as a separate record. This
allows each parcel to be depleted independently of the others.
To model this, a pile record is still created under the stockpile parent
record. But this pile record is assigned a series of children, with each
modelling an individual scheduling step to the stockpile (on level 3 of
the database). Furthermore, when each parcel is added to the
database, a dependency is created with this parcel as the successor
and the previous parcel as the predecessor. This ensures the order
the parcel records are deleted is first in first out.
The Last in First Out (LIFO) setting indicates the parcels within
each pile should be modelled in the same way as for FIFO
stockpiles, but the dependency chain is created in the opposite
direction (the next parcel is the predecessor). The records are
created in exactly the same way, but the last parcel will be mined
first, followed by the penultimate, and so on.
When the average setting is chosen as the Pile Type for a stockpile, a
moderate number of records will be required. But when any of the other
pile type options are chosen, the number of records needed to model the
stockpile can become very large, especially if each step is very small.
Care should be taken to ensure the maximum increment settings of
resources mining to these types of stockpiles are reasonable.
The Between Piles drop-down list box allows the user to define the order
that each pile must be mined in and two alternative settings are available
as follows.
The FIFO setting is used to indicate that once a pile has been
created it cannot be scheduled unless the previous pile has been fully
depleted. This is achieved by creating dependencies between each
pile record, with the previous pile as the predecessor.
To apply a stockpile creation script, the name of the script must simply
be entered in the list box provided or selected using the brose button.
The script will only be run when a stockpile record (either a pile or a
parcel) is added to the database and it will only execute over this single
record.
Each stockpile in the list has a checkbox in front of its name and this
should be ticked to activate the stockpile in the current scenario. The
selected stockpiles are shown under the stockpiles item in the tree
structure.
When the active scenario is changed, the stockpiles in the database will
change to suit the new scenario and any existing pile and parcel records
will be cleared. This data is not saved, but it can be re-created by re-
scheduling the scenario.
When targets are assigned, the user simply sets the targets to equal the
quantity of material that should be moved to the stockpile. In the
current version of the package, this must be a pre-determined value,
although upper and lower limits can be used to vary this. The use of
upper and lower limits is explained more fully in the next chapter.
As an example, consider a model with two stockpiles (HG and LG) and
two products (Export and Domestic). The total quantity of stockpiled
material that is used in each product must be restricted. Furthermore,
we must limit the quantity of material from the LG stockpile in the Export
product. To do this we must define three Range capacity constraints as
follows.
There is often a finite capacity for stockpiling material and as a result, the
total size of a stockpile (or a group of stockpiles) must be prevented
from exceeding the maximum capacity.
Introduction
The resource Name is shown in the upper text box and this can be edited
if required. It can also be changed using the Rename button in the
resource list or by clicking twice on the resources item in the tree. The
Description field allows a more meaningful description to be specified and
has no other purpose.
The Class drop down list allows the user to classify the resource into one
of several pre-defined groups. The class controls the picture that will be
used to visually identify the resource and the icon used to represent it in
the schedule set up tree. It is also used to group similar resources
together for proximity constraints. These have been described in a
previous chapter.
The Use Sound During Animation checkbox allows the user to specify
whether a sound should be used when schedule animations are played.
If this is selected, the user can select the sound file the resource should
use and whether this file should be directional. More information about
schedule animations can be found in XPAC’s on-line help system.
Once the resources have been created, we must indicate which should be
used in each scenario. They must also be allocated a type that identifies
the methods that will be used to schedule them. The three scheduling
methods currently available in XPAC are as follows.
With the Scenarios tab active, select the Resources item in the schedule set
up tree. This will display a list of the existing resources in the right hand
window with three tick boxes beside each item in the list (one for each
scheduling method).
This facility allows a resource to use more than one scheduling method
in a scenario. For example, standard productivity based scheduling could
be used for the first year of a schedule with Autoscheduling thereafter.
If this approach is adopted, only one of the resources instances should
be allocated a target each period, with the others given a target of zero.
The correct productive activities must be assigned in this way before the
details of the resources that perform them can be assigned. Over 30
resources can be used in a scenario, although this varies from model to
model. But we strongly recommend users try to restrict the number of
resources to a manageable level (up to 5) where possible.
The Delay Activity list box allows the user to select a non-productive
activity to use in the resources output path for periods when the
resource is idle due to a shortage of available material. The creation of
new Non-Productive Activities is described in XPAC’s on-line help system.
The Resource Activities table contains one row for each activity that has
been made active in the current scenario, and the activity name is shown
in the first column. Each resource in an AutoScheduler model can
perform multiple activities, although it is more common to create
separate resources for each activity.
The Active column in the table is used to indicate which activities this
resource will perform. If a tick is placed in an activities checkbox, the
resource will be able to perform that activity. If the checkbox is not
ticked, the resource will not be able to perform that activity.
Every Auto Target resource requires a target that indicates the quantity
of material the resource should schedule each period.
The units of the target must correspond with those of the resources
accumulation field. For example, if the accumulation field contains
tonnes of ore, the target must also be specified in tonnes of ore. If
different units are used for these two fields, the scheduled quantities will
be incorrect. The use of accumulation fields is described later in this
section.
Consider an open cut coal mine with two resources; waste stripping and
coal mining. When their targets are well balanced, both resources will
achieve their targets in every period. But if the coal target is increased
without increasing the waste target accordingly, a point will be reached
where there is no more coal available to mine and the AutoScheduler will
fail to achieve it’s coal target.
If the AutoScheduler reaches the end of a period and it has been unable
to satisfy the targets of one or more resources, it will terminate the
schedule and generate an appropriate warning message. The user can
then investigate the problem and after adjusting the targets to more
practical levels, re-schedule the model.
To provide more control over the scheduling process, a lower limit can
be specified for each resource to indicate the lowest acceptable
scheduled quantity in each period. When a lower limit has been
specified for a resource, the AutoScheduler will not terminate the
scheduling run if it cannot meet each resources target, providing each
resource has at least achieved its lower limit.
Even when a lower limit has been set, the AutoScheduler will still try to
schedule the resources targeted quantity and providing sufficient material
is available each period, it will achieve it. Only if there is a shortage of
available material will the scheduled quantity fall below target.
To assign a lower limit to a resource, the Lower Limit check box must be
ticked on the resources Auto-Target Details window. The lower limit must
also be entered in the drop down combo box, either as an absolute value
or as a reference to a calendar database field. As with the target, the
lower limit must be specified in the same units as the resources
accumulation field.
If the lower limit in a period is set to zero, the AutoScheduler will not
terminate the scheduling run, even if there was no material available for
the resource to schedule during a period. This setting can be useful for
resources that are only scheduled occasionally and where it is unclear in
which periods they will be required, if any. The lower limit can never be
negative and should never be greater than the target.
When a resource fails to meet its target because there was insufficient
material, lowering the acceptable limit for the resource may not be a
viable solution. An alternative approach would be to raise the target of
the other products, which may indirectly make more of the required
material available.
For example, if an open cut coal mine did not have sufficient coal
available to feed a power station, lowering the production level would
not be acceptable. Instead, the mine would have to increase waste
stripping to make more coal available.
To overcome this problem, the user can specify an upper limit for each
resource that will only be applied if another resource fails to achieve its
target (or its lower limit, if it is in use).
To assign an upper limit to a resource, the Upper Limit check box must
be ticked in the resources Auto-Target Details window. The upper limit
must also be entered in the drop down combo box, either as an absolute
value or as a reference to a calendar database field. The upper limit must
be larger than the resources target in each period and must be specified
in the same units as the resources accumulation field.
When an upper limit is specified, the user must also specify an increment
size in the Target Increment text box. Either an absolute value or a
reference to a calendar field can be entered. The increment must be
larger than zero and must have the same units as the resources
accumulation field. When the AutoScheduler detects it must re-schedule
a period, it will increase the targets of appropriate resources by this
increment. If this fails to rectify the problem for all resources, the
targets will be increased by a further increment (up to their upper limits)
and the model will be re-scheduled a second time.
To provide further control over the process, the user can specify the
maximum number of iterations that should be performed, even if this
prevents the targets being increased to their upper limits. At no stage
will the AutoScheduler increase a resources target beyond its upper limit.
Upper limits provide a very useful tool for identifying the relationships
between ore and waste production over the course of a period. But they
do have disadvantages when used as part of the routine scheduling
process. Users must always bear this in mind when using upper limits.
Setting a waste target intentionally low whilst giving it a high upper limit
is a very simple strategy for minimising the quantity of waste mined in
each period. This approach is basically a waste deferral strategy, where
the mine is being operated at close to a waste bound state. Waste will
only be mined if it is required to expose the targeted ore.
Being waste bound, the resources that schedule the ore will select
whatever ore is available. When there is insufficient ore to satisfy the
targets (forcing the Autoscheduler to mine more waste), any attempt at
meeting product grade is futile, because every available block will be
scheduled, regardless of its grade. Typically the user will find that if this
strategy is adopted without due consideration of its implications, control
over the product grade is lost or seriously reduced.
The cause of the problem is the loss of available inventory. At any point
in the schedule, it is the available inventory that the Autoscheduler must
select from. If the schedule progresses with very little inventory, It will
have to select whatever is available.
Although the targets may require some fine tuning to begin with, the
user should quickly find it relatively easy to control the size of the
inventory by varying the targets assigned to the waste and low grade
resources. The inventory will also behave like an in-pit surge stockpile,
buffering ore production from strip ratio fluctuations.
The Fleet Size feature provided in previous versions did help to emulate
this situation, but with several limitations. This has now been replaced
by the Share Objectives feature, which provides greater flexibility and
overcomes some of the problems with the old fleet size facility.
The Use Objectives Of drop down list box contains a list of all resources
in the current scenario. The name This Resource is used in place of the
current resources full name.
When the user selects This Resource in the Use Objectives Of drop-down list
box, the resource will use its own objectives as normal. But if the user
selects one of the other resources, the resource will no longer use its own
objectives.
Note: The tick in the Active checkboxes can be changed in either the
Resource Activities table on the resources parent item or in the table
described above. If it is changed in one table, the change will also be
reflected in the other. The accumulation field setting can only be
modified in Accumulation Field table on the resources Auto-Target Details
window.
If an activity has not been set as active in the Productive Activities item of
the schedule set up tree (this has been described earlier in the users
guide) that activity will not be displayed in the accumulation field table.
When schedules are generated, the size of each scheduling step is based
on the user defined Step Size.
If an absolute value is chosen for the requested step size, the requested
step size of each scheduling step will be constant. If a percentage or a
fraction (Parts) is chosen as the requested step size (these options are
functionally equivalent), the requested step size of each scheduling step
will vary depending on the record size.
In the last of these exceptions, when the requested step size cannot be
scheduled because it would cause the target to be exceeded, the user can
choose to place the remainder of the step at the beginning of the next
period. This is achieved by ticking the Continue Same Step Over Period
Boundary checkbox. This setting will have no effect in any other situation
where the requested step size is not achieved.
Increased
Production Rate
Production Rate
Material Shortage
Material Shortage
The Maximum Increase in Productivity is located on the Modes tab, when the
resources Auto Target Details item is selected in the schedule set up tree.
This is specified as a multiple of the targeted productivity and the default
value is 2 (twice the targeted productivity).
Each resource would normally have several objectives and these are
often contradictory. It is the overall effect of all objectives that dictates
which blocks will be scheduled.
To define the objectives for a resource, the Auto-Target Details item must
be selected in the schedule set up tree. When the Objectives tab is
selected, a table containing a column for each objective assigned to he
resource is displayed in the right hand window.
Once the new objective has been inserted, the database field containing
the quantity to be controlled should be selected from the drop down list
in the Field row of the table.
The AutoScheduler can also control the values of fields that are weight-
averaged against fields that are not proportional to the resources
accumulation field. For example, an objective can be used to control a
ratio of grades or the grade of a fraction in the product (such as lump
and fines).
If the resource can schedule several activities, a field must be selected for
each of these activities and the user must ensure they are compatible.
For example, if a resource can mine high grade copper ore and low grade
copper ore, an objective to control copper grade will require two fields.
These fields must contain the copper grades of their respective ore types
(ie Cu grade of high grade ore and Cu grade of low grade ore).
The upper and lower values indicate the maximum and minimum
acceptable values. It is important to realise that these setting have no
bearing over the records the AutoScheduler will select whatsoever.
These values are only tested at the end of each period, to determine
whether the product is within specification tolerances. If the value of a
controlled field lies outside the acceptable range at the end of a period,
the user can choose the action that will be taken, using the If Tolerance Is
Exceeded frame. Three options are available as follows.
Pause the schedule and ask the user if he wishes to continue or not.
Execute the script the user has selected.
Ignore the problem and continue scheduling
If the schedule takes a long time to generate, the Stop Schedule or Warn
User option does allow the user to fine-tune the point where the
Autoscheduler abandons the scheduling run. This is normally most
appropriate when fine-tuning a schedule.
The Run Script option is a very powerful feature that allows the user to
automate the response when specific tolerances are exceeded. The script
would typically be used to add some comments to a log file, modify
certain parameters in the main and calendar databases then re-run the
schedule from the start of the previous period. This facility can also be
used to batch process schedules when performing sensitivity analysis, but
this is can be quite complex to configure.
An objective with the type Target must first be selected, as the advanced
settings do not apply to maximise and minimise objectives. Select the
Scheduling | Advanced Auto Target Details Objectives menu option to display
the following dialogue.
The use of these variables lies outside the scope of this guide and has
been included only to assist advanced users. We recommend users seek
assistance from Runge staff before they attempt to use these options.
If the Absolute Tolerance option is chosen, the user can enter upper and
lower tolerances directly and these will over-ride the default settings.
When this option is chosen, we recommend values are chosen at least
20% either side of the target, although this will vary from deposit to
deposit. The units for the settings should correspond with the units of
the field being controlled.
With both options, the user can also enter references to calendar
database fields that allow the settings to vary from period to period.
To determine the absolute priority for each objective, its value should be
calculated as a percentage of the sum of the priority assigned to of all
objectives. As the Relative Priority of an objective can vary from period
to period, the objectives effective priority can also change. Furthermore,
if the relative priority of any objective is changed, the effective priority of
every objective assigned to that resource will also change.
Increasing : The objective begins each period with zero priority, but
this increases linearly over the course of the period until it reaches its
assigned priority at the end of the period.
Step Up : The objective begins each period with a zero priority and
this is maintained to a fixed point during the period. When this
point is reached, the priority of the objective increases to its assigned
value and remains there for the remainder of the period. Various
options exist regarding the point during the period when the priority
changes (1/3, 1/2, 2/3 etc).
Step Down : The objectives priority starts at its assigned value, but at
a predefined time in the period, this priority falls to zero and remains
there for the remainder of the period. As with step-up period biases,
various options exist regarding when the priority change occurs.
This option is selected in the Autoscheduler Modes tab of the schedule set-
up tree when the Scenarios tab is active.
If the ABL Order (First Use Oldest Added) is selected, when there is
more than one equivalent record is available to a resource, it will select
the one that has been in the ABL the longest. This does have a logical
basis and it is a much faster process, but it has the disadvantage that if
the order the dependency rule sets are applied in changes, a schedule
may yield slightly different results even though its other settings have not
been changed.
Do not change the order of the rule sets in the model if the schedule
configuration is not being changed.
The most common situation where this problem occurs is the choice of
records for a resource that is scheduling an ancillary material, such as
waste. There are often few objectives assigned to these resources and
they often control fields with discrete distributions.
Look ahead ranking’s are simply fields in the database that are used to
store quality information about to each records successors, rather than
about themselves. These fields are usually calculated using XCM scripts
that are executed after all the dependency rule sets have been applied.
The types of look aheads ranking’s that are required in a model depend
on the deposit, the resources assigned to schedule it and the objectives
assigned to these resources.
50,000 t
1.3 g/t
230,000 t
2.4 g/t
Predecessor
The many different techniques used to create look ahead ranking’s lie
outside the scope of this manual and if users need help when establishing
look ahead ranking’s for their model, we recommend they contact Runge
to discuss their requirements. One simple example will be used to
illustrate the technique.
Consider a Cu mine where the ore mining resource has a single objective
that is used to ensure the Cu grade of the product meets a fixed target
each period. To establish a simple look ahead ranking, two fields will be
added to the database, as follows.
The Look Ahead Ranking field is used to store the average Cu grade
of the blocks successors. This field should be weighted against the
Look Ahead Quantity field.
Once the fields have been created, a script must be written that
determines appropriate values for them. This script makes use of the
GetDependencies(), GetNumberOfSuccessors() and GetSuccessor() xcm
functions to obtain the record numbers of each blocks successors.
Descriptions of these functions can be found in the XCM programming
document, which is available from the Help menu. Once the record
numbers of a blocks successors is known, it is a relatively easy matter to
determine their total tonnage and average Cu grade.
Once suitable look ahead ranking’s have been established, look ahead
objectives can be used to manipulate their values. They can make a
significant impact on the performance of an Autoscheduler model,
particularly when results are initially good, but become erratic during the
course of the schedule.
The use of look ahead objectives becomes extremely important when the
quantity of available material carried as inventory is reduced. Financial
pressure makes the option of reducing the working inventory quite
attractive, especially in periods when the strip ratio is higher than normal.
The Autoscheduler can only select blocks from the available block list –
the blocks that have had all their dependencies satisfied. As the quantity
of available material falls, the options available to the Autoscheduler also
decrease.
The principle is to ensure the grade of the ore exposed during each
period always meets specification. If the material that is exposed has an
acceptable quality, the scheduled ore will also have an acceptable quantity
because most of the blocks that become available are also mined.
When look ahead ranking’s are first applied, they are normally given a
fairly low priority and therefore have a limited effect. As the priority is
increased, the major, long term grade fluctuations will be reduced, but
the short term grade fluctuations increase. This is because the priority
applied to the look ahead ranking is detracting from the objectives that
are controlling the final product grade.
When this situation occurs, changes to the objectives period bias settings
can lead to dramatic overall improvements. The method is best
illustrated with an example.
Consider a mine with two sets of objectives; one set is used to control
the quality of the product (the main objectives) and the other is used to
control the quality of the material made available by scheduling (the look
ahead objectives).
When the model is scheduled using only the main objectives, the results
are generally good, but become erratic in some periods. This is typical of
the situations where look-ahead objectives can be effective. But when
the model is scheduled using both the main and look-ahead objectives,
results are less erratic, but the overall objectives are not well satisfied.
100
75
Priority
50
25
1
Start of End of
Period Time Period
With these settings, the schedule will begin each period with a low
priority on the main objectives and a high priority on the look ahead
objectives. It will be focused almost entirely on improving the quality of
the pool of available material and will pay little attention to the quality of
the material it is scheduling.
As the period progresses, this situation reverses and at the end of the
period the main objectives have almost total priority. The model is
totally focused on achieving the period’s objectives, regardless of how
this effects the quality of the available material. This focus occurs when
it is needed most – as the finishing touches are being made to the
product quality. If this approach is successful, some other options can
be evaluated, as follows.
Try the use of a Step-Up ½ period bias for the objectives that control
product quality.
Try the effect of using a Step-Down ½ period bias for look ahead
objectives.
Introduction
The most difficult part of using the AutoScheduler is defining the rules,
constraints and resources the model requires. Once this has been done,
it is relatively easy to generate schedules for any given scenario.
Furthermore, it is very straightforward to create new scenarios with
slightly different properties, allowing different alternatives to be
explored.
The best way to do this is to right click the active scenarios Dependency
Rule Sets item in the schedule set up tree and select the Apply All Rule
Sets option. The Scheduling | Re-Apply All Rule Sets menu option will also
perform the same function.
When XPAC re-applies all rule sets, it removes all existing dependencies
and re-applies each of the rule sets in the order they are shown in the
schedule set up tree. Maintaining a consistent order is important when
upper level optimisation is being used. Any dependency rule sets that
involve upper level records should be applied after the dependency rule
sets containing only lower level rules.
Various tools are provided to examine and test the dependencies the
dependency rule sets create and these should be used to ensure the
expected dependencies have been generated. A full circular reference
test should also be performed before scheduling begins, by selecting the
Scheduling | Scan Circular References menu option.
When Schedule
Based on Face
is Generated
Start Date
Schedule
NOW
Time
Actual Forecast
Mining Mining
(MOQ) (Preschedule)
Material that has already been mined is specified in the Mined Out
Quantity (MOQ) table. The Mined Out Quantities table is opened using
the Scheduling | Mined Out Quantities menu option. Because actual mining
has already occurred and cannot be changed, the same MOQ table will
be applied to every scenario.
Material that hasn’t been mined yet, but is forecast for mining before the
schedule begins is specified in the pre-schedule table. Because the
mining that has been forecast may be different in each scenario, different
pre-schedules can be assigned to each scenario.
The entries in the MOQ and pre-schedule tables are processed in the
same way and it makes no real difference which table records are placed.
Users may find it more convenient to define all depleted material in the
pre-schedule, rather than defining it in two separate places.
The MOQ and pre-schedule tables are described in XPAC’s on-line help
system along with instructions on their use. These apply to all schedules,
regardless of the scheduling methods being used.
Running A Schedule
Because there cannot be any holes in schedule time, the schedule cannot
be started beyond the point where it has been scheduled to previously.
For example, if the schedule has previously been run to the end of
period 10, the schedule can only be started from periods 1 to 11, but not
later.
The user must enter the periods when the schedule should begin and
when it should end to end. The Autoscheduler will check the validity of
these settings and will warn users of any errors.
A button on the lower right corner expands this dialogue to show some
additional options.
All reports in the schedule are listed in the extended window with a
check box in front of their name. When a tick is placed in these
checkboxes, the associated reports will be run automatically after each
scheduling has been completed.
This feature is generally used to run a small, fairly quick report that
provides immediate feedback on the schedule. Other, more complex
reports are usually run when the schedule has been completed, either
when fine tuning certain aspects or generating a full set of reports.
The Export Data For Schedule Analysis Tool instructs XPAC to generate a
log file whenever a schedule is run. Whilst this does slow the schedule
down a little, it provides a large amount of information regarding the
schedule which can be examined using XPAC’s Schedule Analyser tool
(SAT).
Once the <OK> button is pressed, the Autoscheduler will check the
schedule start and end periods are valid and if this is the case, will
proceed to do a full validation of each resource in the scenario and the
entire scenario itself. A detailed validation routine has been developed to
identify possible errors and avoid wasting time on schedules that are not
valid. If any problems are found, these are reported in meaningful error
messages.
If the AutoScheduler is unable to meet the target (or lower limit when
one is specified) of any resources, an error will be generated informing
the user of the resource that caused the error. It will then terminate the
scheduling run so the user can investigate and rectify the cause of the
problem.
Before any additional information can be displayed, the user must select
which fields he wishes to view. To do this, the AutoScheduler Modes tab
should be selected in the schedule set up tree.
Before the information can be displayed, XPAC must be set to track the
additional field during the scheduling process. The fields that must be
tracked should be entered in the Fields to Track table on the
Autoscheduler modes item of the schedule set up tree.
During the course of the schedule, pressing the Hide Extra Information
button will collapse the dialogue to its previous state. The user can also
pause and restart the schedule at any time using the Pause button.
The first row in the table contains the ABL count, which is often the
most useful information displayed. For each activity, two values are
shown, separated by a forward slash (37 / 37).
The next section displays statistics relating to the fields that have been
selected in the Autoscheduler Modes item in the schedule set up tree. The
values will be updated after each scheduling step. Up to 3 fields can be
selected for each activity, but only 2 activities can be displayed
simultaneously.
The last two rows in the table shows the quantity of material the
resource has scheduled in the period so far and the quantity it has
scheduled since the start of the schedule. Again, this information is
updated after each scheduling step.
At the bottom of the dialogue is a series of checkboxes with one box per
activity. Information can only be displayed for two activities in the
dialogue at the same time. Therefore only two of the checkboxes can be
ticked at a time and these are used to control which activities are
displayed in the two columns above.
Introduction
The window is split into two portions. The lower portion lists all the
trigger events the resource can make use of with checkboxes beside their
names. When a checkbox is ticked, an entry will be placed in the upper
portion of the window with the appropriate trigger event. Any
combination of events can be ticked at the same time.
Currently there are ten events that can be used to trigger User Processing
scripts. Different events occur at different times during the course of
the schedule and some of the events can occur many times.
The user can define an unlimited number of User Processing scripts and
they can be assigned any combination of trigger events. The various
trigger events currently available are described below.
As the script is triggered before the step has occurred, the step will not
have been processed and the reserves will not have been modified. It is
still possible to obtain details of the step that is about to occur, but any
details obtained about the state of the reserve will reflect the condition
before the associated step has occurred.
As the script is triggered before the step has occurred, the scheduling
step will not have been processed and the reserves will not have been
modified. It is still possible to obtain details of the step that is about to
occur, but any details obtained about the state of the reserve will reflect
the condition before the associated step has occurred.
As the script is triggered after the step has occurred, the scheduling step
will have been processed and the reserves will have been modified
accordingly. It is still possible to obtain details of the step that has
triggered the script and any details obtained about the state of the reserve
will reflect the condition after the associated step has occurred.
As the script is triggered after the step has occurred, the scheduling step
will have been processed and the reserves will have been modified
accordingly. It is still possible to obtain details of the step that has
triggered the script and any details obtained about the state of the reserve
will reflect the condition after the associated step has occurred.
To make a script execute when an event occurs, the name of the script
should be entered in the XCM column of the appropriate trigger event.
If more than one script must execute when an event occurs, the event
should be selected in the table and the <Insert> key should be pressed.
This will create a duplicate of the event in a new row, which can be
assigned its own settings.
The default filter range is <ALL>, but this can be changed by clicking
the cell under the If In This Range column and selecting a new range from
the drop-down list box. This column is greyed out for events that do
not relate to a specific block.
With all User Processing scripts, a range must be specified over which
the XCM will be executed. In addition to any of the user defined ranges,
two special ranges can be specified, ABL (run over every record in the
ABL) and Run Current (run only over the record associated with the
event). These additional ranges are not suitable for all trigger event
types.
By default, the user is not allowed to modify the database and if scripts
attempt to do this, a warning message will be displayed. To de-activate
this security measure and allow user processing scripts to modify the
database, the AutoScheduler Modes item in the schedule set up tree must be
chosen, with the Scenarios tab active.
If the Allow Database Writes checkbox is not ticked, an error message will
be displayed if any attempt is made to modify the database during the
course of a schedule.
The ability to modify the main and calendar databases during the course
of the schedule is extremely powerful and is utilised in many different
ways. But it can also be quite dangerous if used incorrectly.
Schedules can be re-run many times and any period prior to the last
scheduling period can be used as the starting point. If dynamic rules
change the contents of the database during the course of the schedule,
the databases original values must be restored before the next schedule is
generated. If this is not done, different results would be obtained every
time the schedule is generated.
In XPAC 7 this process is fully automated, and all changes made to the
database during the course of the schedule are recorded. Whenever the
schedule is re-started from a period prior to the last period scheduled,
the Database Tracking facility will roll back the database and restore it to
the condition it was in immediately before the new start period.
Undo Changes : P7 to P4
End of Period 2
End of Period 3
End of Period 4
End of Period 5
End of Period 6
End of Period 7
End of Period 8
End of Period 9
End of Period 10
Start of Schedule
The second scheduling run begins on period 4 and continues until period
10. If the Autoscheduler simply ran the second schedule, it would start
with the database fields assigned values as they should be at the end of
period 7; not at the start of period 4 where the schedule must begin.
If the user wishes to make any permanent changes to the database after
the database tracking feature has been activated, database tracking must
be de-activated before the changes are made and then re-activated once
the changes have been competed and the database re-initialised.
Occasionally, the user needs to track some additional fields that will not
be tracked by the AutoScheduler and these fields must be defined as
tracked fields. To do this, the AutoScheduler Modes item should be
selected in the schedule set up tree, when the Scenarios tab is active.
When the Display Already Tracked Fields checkbox is ticked, the variables
the Autoscheduler will track automatically are displayed at the top of the
table. To distinguish them, they are shown with a grey background. This
helps users identify which fields they need to add to the list, as there is
no benefit from adding fields that are already tracked.
Once a schedule has been generated with the database tracking feature
active, the database fields will be in the state the user processing scripts
left them at the end of the schedule. This is emphasised by the date
shown beside the project name in XPAC’s title bar.
There is a special option in the drop down list that causes all the changes
made to the database to be reset to their original values. This is a
permanent change and after it has been selected, the schedule will have
to be re-started from the first period.
The new Schedule Analysis Tool also has a viewer that allows the contents
remaining in the database at any point in time during the schedule to be
examined. This is a far more versatile tool for general use.
A database field called the Proximity Index (with code of mPIndx) will
be used to store each blocks attractiveness value. At the start of the
schedule, this will be set to zero indicating they have no attractiveness
what so ever. It would also be possible to flag the areas where mining is
currently taking place to provide an initial starting point.
When the schedule is executed, every block in the model will have a
proximity index of zero and the new objective will have no effect. But
when a block is mined, its proximity index and that of the surrounding
blocks will be assigned values greater than 1. Furthermore, this value is
highest close to the current digging location and decreases as the blocks
get further away from the current digging point.
Now that some records have values in the Proximity Index field, the new
objective will have an influence over the selection process, encouraging
the AutoScheduler to select blocks close to the previous mining location.
When a distant block has marginally better grades than a block beside
the current loading position, the Autoscheduler would usually select the
distant block, as it will better satisfy the objectives. But when the new
objective is added, the close block may be selected, depending on the
priority assigned to the new objective. When this objective has a high
priority, the distant blocks must be significantly better than the closer
blocks before they will be scheduled. When the priority is lowered,
distant blocks that are only slightly better than the close blocks will be
scheduled.
When long term schedules are being generated, the values in the
proximity Index are usually left with the values assigned to them by the
user processing scripts for the entire schedule, but they can also be reset
at the end of each period. A separate user processing script that is
triggered by a Post Period event would carry out this task.
Introduction
The Schedule Analysis Tool (or SAT) is a general XPAC feature that can
be used with any of the scheduling methods. But as its real strength lies
in the analysis of the many alternative schedules the Autoscheduler can
produce, a description of how the SAT is used will be given in this guide.
The SAT is a new tool that has been developed to help identify what is
happening during the course of a schedule. Graphical animations of a
schedule have proved to be very useful visualisation tools. The SAT
extends the concept of animation, but to the contents of tables and
graphs rather than graphics. In this respect, the SAT provides control
over the fourth dimension of a schedule – Time.
The SAT acts as a manager for SAT Viewers. These are simply windows
that display different types of information about the schedule at a given
point in time (referred to as the Schedule Time). The SAT organises these
viewers in a tree structure whilst making it easy to create, edit and delete
them. It is also makes it easy to select different combinations of viewers
at different times.
The user has complete control over the format of these viewers and in
most situations, ranges and other filters can be applied to customise the
information displayed. Several SAT viewers of the same type can be
displayed, simultaneously and each can be configured to display different
data (for example, data for different parts of the mine or different
resources).
The SAT also provides controls that allow the user to advance or rewind
the current scheduling time. As this is done, all visible SAT viewers are
updated to reflect the new scheduling time. These controls allow you to
animate the tables; you can wind time forwards and backwards and the
viewers will all update their contents to reflect the new schedule time. A
kind of video editing tool for schedules.
We have focussed on functionality for this release and must still optimise
the SAT for speed and efficiency. It can run quite slowly with big
models and speed decreases as the number of viewers is opened.
We also recommend that you run the SAT as a stand along application
without XPAC running in the background. The SAT runs several times
faster in this mode with no loss of functionality.
The schedule analysis tool obtains its information from two data files
rather than from the Autoscheduler, eliminating the need to re-schedule
the model every time you wish to use the SAT.
When this option is selected, XPAC will generate two schedule analysis
data files every time a schedule is run, as following.
The SAT’s configuration file has the name ProjectName.xsa where
ProjectName is the name of the XPAC model being scheduled. This
file stores the configuration of each viewer and because it is
associated with the SAT during installation, it will open automatically
if it is double clicked in Windows Explorer. Windows short-cuts to
this the xsa file can also be created to make opening the SAT easier.
ProjectName.ABL is used to store data relating to the ABL as the
schedule progresses and can be very large when the ABL contains
many entries.
If you wish to preserve the SAT data files for a scenario, we recommend
a copy of the model is made to ensure the SAT files remain synchronised
with the database. Any major changes to the database would invalidate
the SAT files.
To run the SAT tool from outside XPAC, click the Windows Start
button and select the Programs | Runge Software | Schedule Analysis Tools
menu item. A dialogue box will request the name of the schedule
analysis data file (the .xsa file) that must be analysed. The SAT can also
be executed by double clicking on the .xsa file directly in the windows
Explorer.
To execute the schedule analysis tool from within XPAC, the XPAC
Schedule Analyser button on the tool bar should be clicked. The other
options described for execution as a stand alone application will also
start the SAT when XPAC is open.
When the SAT is run with XPAC open, the speed at which the SAT
responds to changes in schedule time drops significantly. It is also
impossible to close XPAC whilst the SAT is open. For these reasons,
we recommend the SAT is not used when XPAC is open unless this is
absolutely necessary.
When the main SAT window opens, all visible SAT viewers will also be
opened with the same size, location and properties as they had the last
time they were used. Closing the main SAT window will also closes all
SAT viewer windows. Similarly minimising the main SAT window will
also minimise all viewer windows.
The purpose of the main SAT window is to control Schedule Time that all
SAT viewers are synchronised to. Several tools have been provided to
simplify this process, whilst displaying what the current scheduling time
is.
The pair of sliders at the top of the main SAT window provide a visual
indication of the current scheduling time and a means of changing it
rapidly. The upper slider controls the current period in the scheduling
run whilst the lower slider controls the current time within the current
period. Controls are also provided to directly enter the period, date and
time. As these are changed, the sliders update accordingly.
SAT Viewers are the windows that display information about the
schedule. This information is not static and is updated whenever
scheduling time is advanced or rewound, ensuring all SAT viewers
remain synchronised.
There are currently four types of SAT viewer and each one displays a
different type of information. Each type also has a set of properties that
allows the information it displays to be customised. We hope to add
many new types of SAT viewers in future releases. The four types
currently available are as follows.
ABL viewer
Database Viewer
Dependency Viewer
Material Distribution Viewer
When first opened there are no SAT viewers and so the tree initially
contains only four parent items; one for each type of viewer. When SAT
viewers are added, they will be displayed under the appropriate parent.
To add a new SAT viewer, the Add button should be pressed. This
opens a dialogue that requests the type of rule to be added.
The icon and parent indicate the type of SAT viewer, but not how this
viewer differs from others of the same type. This is the information that
should be placed into its name.
This is not the only way a SAT viewers properties can be changed, and
once the SAT viewer is visible, its properties dialogue can be opened
simply by right clicking on it. The properties of each type of SAT viewer
will be described later in this chapter.
It is worthwhile keeping the viewers well organised when using the SAT.
There is a temptation to configure the SAT with one viewer of each type
occupying a different part of the screen. Whilst there is nothing wrong
with this, the SAT was not really designed to be used in this way.
Over time, some viewers will be refined for specific tasks, particularly
with the viewers that are highly configuarable, such as the Material
Distribution viewer. These should be given meaningful names so they
can be identified and opened when required.
ABL Viewers
ABL viewers are designed to show the contents of the available block list
at any point during the course of the schedule. These are the blocks that
have had all their dependency rules satisfied and can therefore be
selected for mining.
The ABL viewer displays a table containing every block within the ABL.
By default, this table contains each records original ADF value and their
current ABL value (after any mining has taken place).
The last columns in the table show whether any constraints or other
rules have temporarily made the blocks unavailable. In a future release,
we hope to expand this facility so you can identify which constraint (or
constraints) is responsible for preventing each record in the ABL from
being scheduled.
Database Viewers
The database viewer looks in many respects like a normal view of the
main database. On the left is a tree displaying the database hierarchy and
on the right is a table showing the data.
The database hierarchy is fully supported and as you move around the
hierarchy, the right hand table changes accordingly. The database is not
re-calculated when scheduling time changes, and so the upper level
records will turn red in the tree to indicate they are no longer valid. The
<F9> key should be pressed to re-calculate the data.
When you right click a database viewer, its properties dialogue will open.
Selecting the appropriate viewer in the Edit Viewer Properties dialogue will
also provide access these properties.
Dependency Viewers
Once all the predecessors have been scheduled the red face will change
to a green face, indicating this record is now available for mining. As
scheduling time is advanced still further, the master record will be mined,
followed by its successors.
The only property that can be adjusted at present is the Master record.
The record number of the required record must be entered in the text
box. When a record is selected, the viewer is re-drawn to show the new
record, along with its successors and predecessors.
Once the viewer is open, you can make any of the displayed records the
master record by double clicking on it. This allows you to follow a chain
of dependent records backwards or forwards through the model.
You can also change the master record by right clicking on a row in the
main SAT windows combined output path and selecting the Update
Dependencies For This Record menu option. The selected item in the
combined output path will become the master record. This feature only
effects the first dependency viewer you created and if this option is
selected when the viewer is not visible, it will be displayed automatically.
Right clicking on the viewer will open its Properties dialogue. This
dialogue has 3 tabs, with each one used to assign different properties.
The dialogue initially opens on the General tab. These properties can also
be accessed by selecting the appropriate viewer in the Edit Viewer
Properties dialogue.
The general tab allows the user to select the fields the histogram should
be based upon and the populations that should be displayed.
The Frequency Field is used to determine which field contains each records
material quantity. This must be an additive field and should have the
same activity as the Interval field.
The Population Types list box displays the 9 populations that can be
displayed on the histogram. The suer can select any combination of
these populations, although some combinations will be more useful than
others. The populations currently available are as follows.
Initial Deposit : This population includes every record in the
deposit. As this uses the initial database values, the distribution of
this population will not change over time. This is usually used as a
reference to compare the other populations against.
Initial Deposit After Pre-Schedule : This population is similar to
Initial deposit population, although it excludes material within the
MOQ and pre-schedule tables. Again, it will not change as
scheduling time changes.
Mined in Schedule : This population includes all material that has
been scheduled so far. The quantity of material in this population
will increase as scheduling time is advanced.
Remaining Deposit With Stockpiles : This population includes all
the material remaining in the deposit at the current scheduling time,
including the material that is residing in stockpiles. The quantity of
material in this population will decrease as scheduling time is
advanced.
Remaining Deposit Without Stockpiles : This population is
similar to the remaining deposit with stockpiles, but excludes
material residing in stockpiles. The quantity of material in this
population will decrease as scheduling time is advanced.
Remaining Stockpiles : This population includes all material that
resides in the stockpiles at the current scheduling time. The quantity
of material in this population will vary as time changes and can
increase or decrease throughout the schedule.
Mined in Period : This population includes all material scheduled in
each period. The quantity of material in this population will increase
during each period, but will fall to zero at the end of each period.
ABL Entries : This population includes all material that has had its
dependencies satisfied and has been added to the available block list.
The material in this population will increase and decrease throughout
the schedule as blocks are mined and new blocks become available.
It should be noted the current version of the SAT does not consider
the effects of release profiles and considers a block as available, as
soon as any of the block becomes available. As a result this
population may overstate the quantity of material slightly.
To assign details of the intervals the histogram will use, the Interval tab
should be selected in the properties dialogue.
The three test boxes in the dialogue allows the user to specify the lower
limit of the first interval and the upper limit of the last interval, together
with the number of intervals required. XPAC will then automatically
determine the upper and lower limits of each interval.
The Chart Designer button provides access to XPAC’s chart design tool.
This allows the format of just about every component of the chart to be
modified. Some examples of how the basic plot can be formatted are
shown below.