Exeter Bug

You are here: Home > Forum > Simulations > Released > Exeter > Exeter Bug

Page 1 of 1

Exeter Bug 02/03/2012 at 18:59 #30277
Sam Tugwell
Avatar
493 posts
When a train stops at Rev Exeter StT (665), the train doesnt actually reverse. It stays in the down direction and when time for departure, trundles off down towards Starcross.

I presume this is a bug?

Sam

"Signalman Exeter"
Log in to reply
Re: Exeter Bug 02/03/2012 at 19:08 #30278
Peter Bennet
Avatar
5362 posts
What exactly is the timetable location list as I need to know which path might be in error- nothing obvious in the data.

Peter

I identify as half man half biscuit - crumbs!
Log in to reply
Re: Exeter Bug 02/03/2012 at 19:17 #30279
Sam Tugwell
Avatar
493 posts
5u01 Enters at Exeter West Yard
Exeter St Thomas
Rev Exeter STT (665)

Exeter St Thomas N: 2U01

That is the trains path

"Signalman Exeter"
Log in to reply
Re: Exeter Bug 02/03/2012 at 19:24 #30280
Peter Bennet
Avatar
5362 posts
It's because ExStT is not a key location and if you analyse the TT you should get an warning to that effect.

Peter

I identify as half man half biscuit - crumbs!
Log in to reply
Re: Exeter Bug 02/03/2012 at 19:26 #30281
Sam Tugwell
Avatar
493 posts
I received said Error Message

Does that mean that no train can reverse using that timing point then?

"Signalman Exeter"
Log in to reply
Re: Exeter Bug 02/03/2012 at 19:43 #30282
Peter Bennet
Avatar
5362 posts
Valid paths between key locations are

664, StD & WestYd to 665

665 to StD, WestYd, 664

(West yard has various different names it appears but you get the idea).

Because the timetable ends at StT and StT is not a KeyLocation the train does not know where it is relative to 665 so the train does not know it has to reverse and it toddles off in search for StT. If one of the other Key Locations is in the timetable then the train knows how to find that and then "finds" StT as it passes so stops.

What might work is adding 664 after 665 then StT. That should turn the train and because StT is not a KEY locaton the TT should validate albeit with the warning and it should then find StT. While stepping up a TT at a non-key location is not correct I think it does work.

Peter

I identify as half man half biscuit - crumbs!
Last edited: 02/03/2012 at 19:45 by Peter Bennet
Log in to reply
The following user said thank you: Sam Tugwell
Re: Exeter Bug 02/03/2012 at 19:49 #30283
Sam Tugwell
Avatar
493 posts
Thanks, Ill try that

Sam

"Signalman Exeter"
Log in to reply
Re: Exeter Bug 02/03/2012 at 23:25 #30285
maxand
Avatar
1637 posts
Peter, would you please explain further the significance of KeyLocation and how it is used in SimSig? I've searched the forum, the Wiki, the timetabling tutorials, the Exeter and other manuals and there's nothing there at all, except maybe for a post by postal here. If it's that important, it needs to be in the Wiki. Thanks.
Last edited: 02/03/2012 at 23:26 by maxand
Log in to reply
Re: Exeter Bug 02/03/2012 at 23:52 #30286
postal
Avatar
5191 posts
" said:
except maybe for a post by postal here.
Must plead not guilty to that one as I don't think there is anything there about key locations.

However, anything I have managed to pick up about key locations is as a result of playing with TTs, reading the TT analysis reports and garnering the odd comment from the Forum, so Max clearly makes a good point about further documentation.

“In life, there is always someone out there, who won’t like you, for whatever reason, don’t let the insecurities in their lives affect yours.” – Rashida Rowe
Log in to reply
The following user said thank you: maxand
Re: Exeter Bug 03/03/2012 at 09:09 #30289
Sam Tugwell
Avatar
493 posts
I'll admit I didn't fully understand until I thought about it, so documentation would be a good idea.

Sam

"Signalman Exeter"
Log in to reply
Re: Exeter Bug 03/03/2012 at 09:23 #30290
Peter Bennet
Avatar
5362 posts
This is primarily a timetable writing thing- users of a timetable don't really need to know how it works if the timetable if it is correctly written.

Generally non-key locations will be locations on plain line where nothing happens - e.g. Exeter St Thomas. I'd guess that in most Sims only around a handfull of timetable locations are not key.

Until recently you needed to have at least 2 key locations in any timetable, it is now possible to have only one; that can be used primarily to make complex splits and joins easier.

Key Locations (and entry points) are then linked in pairs to represent valid paths and when writing a timetable it will only validate if there is a programmed path between adjacent key locations in the timetable.

Take Kings Cross for example.

Assume Kings Cross, Biggelswade and Royston are the only key locations. A path can be written between KX and Biggleswade and KX and Royston (and vv). There will be no path Royston and Biggelswade so no timetable will validate for such a train. However, all other locations can go into the timetable regardless of whether in the line of route or not because they are non-key.

Add Hitchin to the Key Locations and then add paths to/from there to KX, BIW and ROY you can now timetable a train from Royston to Biggleswade via Hitchin. If you remove the original paths then Hitchin becomes mandatory for all timetable as there is no longer a direct path KX to Biggleswade or Royston. As it is now a Key locaton Hitchin can't be in any timetable where there is not a valid path to from it- you then need to make all the sidings/reversing points in the Hitchin area Key locations with paths to Hitchin.

That in a nutshell is the principle of key locations and how they work. Before anyone asks- the Path file, as you can maybe imagine, is a huge document with a matrix of all possible valid paths so reproducing it on the WIKI for any Sim would take up loads of space and in any event it's probably not that easy for a casual reader to understand- it's not written for that purpose

Just to add a bit on paths

A Path consists of a start location and an end location direction of train at start and at end (that's how it knows whether to reverse or not). With an ARS Sim rather than a single path between location A and B you need one for every possible route between A and B all with the line/path/platform information so the train knows which route to take.

For example in Edinburgh to get from Edinburgh Waverley to Carlton reversing point there are 26 paths and a similar number back again.

Peter

Example of a path (one of 6 that gets you from Innerwick to Grantshouse on Edinburgh).

PIWGH4 STL=INNERWK; ENL=GTHS; SLD=U; ELD=U; SLP=ML; SLL=DL; ELP=ML; BRD=BG464,REG464BM,BG463,REG476,BG461,REG474,BG457,REG470,BG455,REG460,BG453,REG450,BG451,REG446,BG442,REG442BM,BG436.

I identify as half man half biscuit - crumbs!
Last edited: 03/03/2012 at 09:37 by Peter Bennet
Log in to reply
The following users said thank you: postal, Sam Tugwell, maxand
Re: Exeter Bug 04/03/2012 at 02:00 #30328
maxand
Avatar
1637 posts
Thanks Peter.
Log in to reply
Re: Exeter Bug 04/03/2012 at 10:49 #30335
Peter Bennet
Avatar
5362 posts
Added to WIKI

Peter

I identify as half man half biscuit - crumbs!
Log in to reply
Re: Exeter Bug 06/03/2012 at 04:52 #30385
clive
Avatar
2738 posts
Peter's done a fairly comprehensive explanation, but perhaps I ought to describe this from how the core code sees it.

All locations are either "key" or "non-key". Very little is done with non-key locations: trains can stop at them, and the timetable analyser makes some very simple checks (from memory, that the time at the location is consistent with the locations on either side). You should not have activities or reversals at non-key locations - they either won't work or will cause problems.

We can now just consider key locations and entry points. Within each simulation is a list of "paths". A path says something like:
From AYTOWN, down direction, to BEEVILLE, down direction
or:
From SEASIDE, up direction, line ML, to DEETON, down direction, path FL

When a timetable is validated (either during editing or when a train enters), the entry point and key locations are scanned in order and each is required to match up with a path (more on this later). If this can't be done, the timetable is invalid (and the train won't enter). When a running train reaches a key location, the direction in the "entry" path is compared with the direction in the "exit" path. If they're different, the train must be reversing. Similar logic is used to get the direction right after a Next or Divide activity.

Note that it is this comparison that triggers a reverse. The direction can change from one end of a path to the other (see the SEASIDE to DEETON example) and this is necessary for handling triangles. Because it's not done at non-key locations, trains can't reverse at them.

Having said that the train's timetable must match up with the paths, there are two features to help. Firstly, the sim author can add autoinsert rules, such as:
Between ENDCASTLE and FARAWAY insert GREENSIDE with timing factor 3/8
This says that if consecutive key locations in the train's timetable are ENDCASTLE and FARAWAY, in that order, then the core code will autoinsert a passing point at GREENSIDE between them; the journey time will be split 3/8 E-G and 5/8 G-F to determine the passing time.

Secondly, the author can add rules to propagate Path and Line information. These look like:
If the key location after HALT is INNVILLE, path UL, and HALT has no platform number, set its platform number to 5

Non-ARS sims don't tend to use either of these features, because it's usually easier to add extra paths (in the first example I'd have an E-F path as well as the E-G and G-F paths) and not bother checking the path, line, and platform data. They're primarily intended for ARS.

With ARS, a path has an additional purpose. It contains all the information that ARS needs to get the train from one key location to the next. Therefore, as Peter said, you need much more detail (one path in a non-ARS sim can become two or three or twenty paths in an ARS one) so that ARS can figure out which track to signal the train along. Therefore you don't want to have to repeat the data - it's easier to have the core code autoinsert locations and codes and then match the original list of paths.

Log in to reply
The following users said thank you: Josie, BarryM