From Planimate Knowledge Base
Jump to navigation Jump to search

Track Palette Icon.jpg

Planimate® supports modelling of railway type networks with a set of related features collectively known as “Tracks”.

Tracks modelling capabilities are considered to be advanced uses of Planimate®, and require a good grounding in and familiarity with the concepts underlying the Planimate® Platform as a whole.

A “Track” is a Planimate® object, along which items can travel, taking a designated period of time.

Tracks are placed between Portal Objects (representing depots, terminals, crossing loops and junctions). Tracks connect together the subsystems of these Portals. An Item can leave a subsystem, travel across a Track object and some time later arrive in the subsystem at the other end.

Similar to Spatial Links, Tracks offer an opportunity to display and animate transport networks, where Portals represent nodes in these networks. However, Track Objects differ to Spatial Links because they impose limits on how items on them (trains) move.

Track Section Type & Roads

The capacity of a Track link is determined by the number of underlying lines, or "roads" that the track has. This is set by the "Type" option and can range from a single road up to 6 parallel roads.

A track's display shows the individual roads. Only one item can be on a given road at a time. Additionally a road can be unavailable (maintenance), speed restricted or temporarily held by a train using a mechanism called "loop hold'.

When a train enters a track, it gets allocated a road automatically by the track. This allocation depends on the type of the track. Advanced modellers can specify roads explicitly for a train.

Availability and speed reduction can be controlled for individual roads using the columns and table configured in the Menu Bar / Track / Network Details dialog.


Planimate® modellers are familiar with items moving along flows. These represent zero-time movement of an item from one point of capacity to another. Distinct to this, a track network is a spatial network where items take time to traverse between nodes. Simulation time passes and many items can be moving in parallel.

Every train (item) on a track network needs to have a route assigned. This route defines the order of the nodes that the train will visit. The route is important as Planimate uses it to manage congestion and avoid deadlocks.

Routes can be created up-front by a modeller using the Menu Bar / Track / Routes option. Each route is a list of locations that are visited in turn. Repetition of locations is allowed so a route can include full circuits, say mine to port and back to mine.

Routes are assigned to a train item using the Change Object / Route submenu option.

Routes can also be created and manipulated dynamically using route routine operations such as ClearRoute(), ReadRoute() and AssignRoute().

Section Running Times

Trains take time to traverse a section of track. In Planimate this time is the Section Running Time and is automatically looked up by Planimate according to the section the train is on and whether the train is moving forward or reverse along the section.

Section times are read from the table specified in the Menu Bar / Track / Network Details dialog. Typically this table is called "Track Network Details". Planimate will automatically prepare this table for you if it does not exist, the first time you run a track model.

For a given train item, Planimate needs the modeller to specify which column of data in the network details table to use for up and down times. This is specified by setting s.ItemTrackForwardColumn and s.ItemTrackReverseColumn system/item iattributes for newly created trains.

Details on managing Section Running Times.

Nodes, Locations, Loops and Junctions

Tracks always connect between Portal objects. In the context of a track model, these Portals are referred to as Nodes or Locations.

Nodes at the end points of a track network might be mines or shipping ports. Typically trains there undergo a load/unload process delay before continuing on their route or being assigned a new route.

Nodes can also appear in the middle of a track network. Typically these represent track management infrastructure such as passing loops (referred to just as loops) and junctions where more than two tracks may meet, or a track changes its number of roads.

Previous versions of Planimate provided an explicit "loop" object for tracks, which implemented train movement control rules enabling a track network to run at very high levels of congestion without it deadlocking.

These rules are now implemented in Planimate code, giving far greater flexibility and control to a tracks modeller. The Track Node Module encapsulates the complexity, internally interfacing with Planimate's engine using advanced track related operations.

Loop Entry/Exit Delays

When a train has to stop at a node in the middle of a track (for example when it enters a passing loop road so another train can pass it) it needs to slow down and then accelerate again when it leaves.

Train motion is not modelled at the level of detail of individual train's acceleration and decelleration. Instead an approximation is made using a "loop delay". 

Loop Entry Delays and Loop Exit Delays are only potentially applied for portals with the "Does Loop Delay On Tracks" option selected.

A model can override/cancel loop delays using routine operations like "CancelLoopEntryDelay()" and "UpdateLoopEntryDelay()".

Further detail on loop delays.

Loop Entry Delay

A train entering a location which it does not immediately leave/pass through would, in reality, slow down as it approached the location. This means it occupies the road leading into the location for longer than the nominal section running time.

Once the train enters the location, Planimate will "hold on" to the road leading into the location for a delay. This delay is the "Loop Entry Delay" and is set using a reference specified in the Menu Bar / Track menu.

Within the location, the train is free to move about, it is the road leading into the section that is held by the loop delay. However the train will not be allowed to leave the location until any remaining loop entry delay plus the loop exit delay periods have passed.

Loop Exit Delay

A train leaving a location where it stopeed would, in reality, need to accelerate. This means it would occupy the road leaving the location for longer than the nominal section running time.

Once a train is ready to leave a location, Planimate will initiate a loop exit delay. The train is blocked from actually leaving and the track road ahead is put into a "hold" state until the loop exit delay period has passed. The train will then proceed on the road, leaving the location.

The Loop Exit Delay is set using a reference specified in the Menu Bar / Track menu.

Traffic Control in Tracks

With both track links and nodes having limited capacity, traffic conflicts arise when there are many trains. If not managed, deadlocks are created where trains can no longer move because of each other.

A key reason this occurs is that trains take time to traverse a track and the conditions in the model at the end of this period cannot be predicted at the time the train departs.

Consider this situation:


Train Items A and B each wish to move to Location Z, which has capacity for only one train. Track 1 takes 10 minutes to cross and Track 2 takes 5 minutes. Both Tracks are available and both tracks will detect available capacity at Location Z.

Each track will allow access to the Train Item wishing to use them, because neither is aware of the other Track's intention. Train Item B will arrive in Location Z and will not be able to move beyond because Track 1 is occupied by Train Item A.  Train Item A will then become blocked trying to leave Track 1, and a deadlock occurs - no trains can move.

Managing this requires leaving capacity "holes" in the network so trains in opposite directions can get around each other.

Track control rules which look at the "big picture" are needed, just testing the next object for capacity is not enough. Planimate's lookahead rules need to be augmented with extra checks which can make use of knowledge such as the network's topology and a train's route to look for potential problems - before a train moves.

These rules are implemented in the Track Node Module portal, which forms a part of Planimate's track system and its use within tracks models is encouraged. It uses advanced capabilities including Lookahead separator switches to tap into and extend Planimate's advanced lookahead mechanism.

Further details on Track Movement/Sequencing.

Conceptual Summary

What is a Planimate Tracks Model.jpg

Track Articles