News:

The Forum Rules and Guidelines
Our forum has Rules and Guidelines. Please, be kind and read them ;).

New single track working, & scheduling, issues

Started by AP, December 06, 2016, 04:01:47 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

AP

I was trying to set up a test scenario for single track working using the new signalling system combined with the scheduling functionality - something that should be possible - but I've run into a few difficulties.

The basic premise is a single track railway between two towns, subdivided into four equally spaced block section, each controlled by one-train-staff token cabinets.  It's been noted that one-train-staff  as coded does permit sequential trains in the same direction (where strictly in the real world it would not) which is an advantage worth using in some cases.

I can get this working no problem if I use 4 identical passenger trains on a single Schedule with just two destinations. Attached save shows this (actually I omitted one to balance the reversing time - but still it works well with minimal pauses for passing. Edit: on the passenger only branch some trains may need restarting from depot.


What I really want to be able to do, however, is run two different types of trains - fast passenger trains and slow freight trains - so that they cross reliably on the same single track line.  This should be perfectly possible provided they depart in the correct sequence. I made a train graph for what I'm trying to do - attached.

The cost of construction and maintenance are rightly considerable in Simutrans, especially in interesting terrain, so being able to intelligently operate a single track route is absolutely critical to profit. Building a double track route where the traffic doesn't warrant it is often the quickest way to bankruptcy.

The train graph I made is good because it can easily be multiplied for a much longer route, and the loop density can be multiplied too. I have another for a more freight-heavy route (2 freight to 1 passenger working) which I will test later.

The most important factor is the speed differential between the fast and slow train - established by choice of locomotive and rolling stock a passenger train  and its load (since we can't instruct a train to run slower than its max speed).


I seem to run into 3 issues:

1. When the terminal stations are expanded from just a passenger platform, to a platform and a freight siding, to fit 2 trains  at the same time, this seems to confuse the terminal ends of the one-train-staff blocks, no matter how i signal them. I've attached an image of what I think is the 'right' way to do it.

2. I seem to get odd single-tiles of track reserved in the one-train-staff blocks even after trains have left. Or occasionally, the whole block. This deadlocks everything and causes any attempt to timetable to fall apart. I've uploaded a picture of this* and a save game (note -timetabling not yet working!)

3. I can't for the life of me figure out how to get the schedule timings to behave, having read Carl's tutorial. I know I need one freight line with 2 trains, and two reciprocal passenger lines with 1 train each (because as the graph shows, each passenger line has to have an extended wait at one end - but always the same end and always the opposite to each other - this allows the freight train extra time in the block). In part this is because I have yet to make an allowance for the Loading and Reversing Times (queried separately) - clearly any numerical system doesn't work with part of the data missing - but I presume such is better allowed for by having an extra wait time at each terminus, since any attempt to counteract the L&R Times by positioning and spacing of the loops falls apart as soon as trains get faster/heavier or L&R times change through traffic or locomotive changes.

I'm fairly sure it will be more robust to timetable this rather than rely on trains arriving at the right moment and in the right sequence in both directions - this can easily be messed up by (1) and (2) as well as player interaction.

However the timetabling function works on the basis of "departures per month" leading to rather odd departure time intervals. I wonder whether it might be worth allowing the departure times to be typed in 'in full' to allow a proper clockface timetable, which would be easier for players to understand - the current bits-per-month etc is not the most intuitive and gives departure multiples of 1h03 etc rather than hourly. Manual time entry would also avoid excessive delays due to only rigid slots being available.

Advice appreciated.

*NB due to the ridiculously small file limits on the forum, I've cut the middle of the jpg image out (just 10k of plain red track).
NB2 also due to the small file limits, the images are heavily compressed.

Rollmaterial

What you are trying to achieve uses token block and not one train staff. One train staff is for self-contained sections and dead-ends with only one train allowed at a time.

AP

#2
Rollmaterial - you refer I think to the real world only. Even in the real world One Train Staff (OTS) can be used for long single track lines with passing loops - it's just that having only a single token/staff per block is very restrictive on operation. I'm familiar with rail signalling.

Back to Simutrans-Ex, if you check the savegame you will see that my single line operation is entirely enforced by OTS Cabinets. This does allow multiple trains to move - so long as there is only one in each block. The simple passenger only line in the save works beautifully.

However I entirely agree in the ultimately-desired performance (of occasionally allowing two consecutive trains in the same direction) would in the real world be called Token Block (TB). OTS in game appears not to enforce alternating directionality (a good thing, as it both simplifies gameplay and will help avoid gridlock, but also affords the potential to run it as TB without getting players too bogged down in changing lineside equipment.

But the odd behaviour I am running into does not seem to be caused by a terminalogical distinction between OTS & TB or by trying to run 2 consecutive trains in the same direction:

       
  • I can't get to the point of running two trains in the same direction on a timetable that reliably, because just running trains in alternate directions isn't behaving, once the terminus stations acquire extra platforms. Either my signalling isn't right, or the code is doing something odd. EDIT: The signalled termini ought to be outside the OTS block sections (just like James' junction station in his video) but that isn't how its behaving.
  • When i do dispatch 3/4 multiple trains from the depot sequentially, to "start" the route initially, they all run in the same direction just fine using the OTS cabinets (waiting in a nice queue for one to leave the block before the next one enters). I.e. using the OTS cabinets works as TB just fine.
Hence this discussion thread...

It's worth noting that the only reason I have signals at the termini is as part of my latest (ineffective) attempt to avoid block reservation oddities. Ditto the loop at the terminus entrance. Indeed I'd rather not have either, the choose signal is prone to sending the passengers to the freight yard once the route is fully populated, if any of the sequencing goes awry.

Rollmaterial


AP

#4
I have done so, and nothing in the video precludes what I am trying to do. Note also that using OTS in this fashion, works (see passenger line in the save I uploaded), from which it seems reasonable to conclude that it is meant to work. The tutorial videos are explanatory, not comprehensive.

Oddities and complexities notwithstanding - it's these i want to interrogate.

NB - the passenger line in the save is meant to have 3 trains on it - they may need restarting from the depot.

jamespetts

I think that there is some confusion between one train staff and staff and ticket working.

The one train staff working method is a system that is designed specifically to work on self-contained railways or sections only. Its correct usage is demonstrated in the video linked by Rollermaterial above.

Staff and ticket working, by contrast, is an early system for single line working. It allows the staff to be deposited and collected in multiple different places (e.g. at each end of the section), and also allows trains to enter the section without carrying the staff so long as they see the staff at the station that they have just left. (They are often issued a ticket to be able to enter the section, hence "staff and ticket").

I did contemplate implementing staff and ticket working in Experimental, but ruled it out on the ground that it would be too awkward to use and would very easily lead to deadlocks (even in real life, deadlocks arose with this system, which had to be fixed by dispatching the staff on horseback).

Thus, what you are trying to do is not intended to be possible using the one train staff working method. If it were possible, it would be an exploit. What you are trying to do can be achieved using the token block working method, which is what it is intended for. I see that you have semaphore signals at your terminus station, so you should be in the era in which token block signalling is available.

I do hope that this helps.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

AP

#6
Hi James, was hoping you'd chip in.
Quote from: jamespetts on December 06, 2016, 10:04:09 PM
I think that there is some confusion between one train staff and staff and ticket working.
Hadn't expected to you say it wasn't meant to behave like Staff and Ticket! It's great that it does.

It's perhaps  worth noting that by definition, every block on a single track railway is a 'self contained section'. So OTS is most certainly suitable for its use. Indeed Staff and Ticket evolved from Staff working in just such scenarios.

Presenting OTS as just for industrial sidings is a mistake. There's nothing that requires an OTS section to be accessed from one end only, and as soon as it's accessed from both ends, you have a single track block section. There were plenty of primary single track routes before the advent of the electric token instruments and speaking telegraph that used OTS*.

QuoteI did contemplate implementing staff and ticket working in Experimental, but ruled it out on the ground that it would be too awkward to use and would very easily lead to deadlocks

Given that OTS cabinets seems to work exactly as Staff and Ticket (S&T), it looks like you've already built it fairly successfully, and I'm glad you have.  I don't think it should be considered an exploit rather than a feature, given that S&T is so much more useful. The worry of deadlocks is mistaken - simutrans is 'perfect' in the sense of no breakdowns etc so needing to fetch tokens by horseback for rescue trains will not arise - unless you code to make alternate journeys mandatory under staff working (which probably would be hellish!)

That's not to say we won't find plenty of other ways to cause deadlocks.

I'm not playing on a timeline, it's a test; I'm trying to learn how to use staff working as built.  But I would appreciate guidance on how one correctly ends a one-train-staff section to avoid the single tile reservation oddities I've been seeing, if it's not simply a bug? 

The video recommended a loop, and I've followed that practice, but I'm not clear if a single OTS cabinet would in fact work in both directions, for instance, on the throat of a multi tracked terminus?  That would let me avoid signals entirely.

On my timetabling query - we've covered that at the other thread (thanks). I'll report further once I've had more time to experiment with scheduled departures.

*EDIT: googling suggest electric token was patented in 1878. Most of the uk rail network was in place before then, including lots of single track.

AP

Also what are the release dates for the different signalling methods now in the game,  is there a list somewhere?

jamespetts

If a staff and ticket were introduced and made automatically deadlock free, then it will work in exactly the same way as token block, so there will be no incentive for a player ever to use token block (which is more expensive and requires later equipment). The only way to distinguish staff and ticket from token block would be to introduce precisely the shortcomings of that system that lead to the deadlocks in the first place.

For early uses of single line working, players have the option of using the time interval with telegraph working method. The next tutorial video will be on this subject.

The one train staff as it is implemented in Simutrans-Experimental is intended to replicate "One Train in Steam" working. I used the phrase "one train staff", as "one train in steam" appears to refer to only steam traction, which is obviously not correct. Ordinary staff working - with or without tickets - is quite different from one train working. One train working is the idea that a whole railway system has only one train on it. That system might be connected to another system at one end, but it is more than merely a section as one might find in absolute block or staff and ticket working. The use of the phrase "one train" in "one train staff" was intended to communicate the nature of this system. I am sorry if this was not clear, but I am not sure what other simple phrase would  be any clearer.

By "self contained", I mean something more than a simple block section. A simple block section is not self-contained, as trains can come and go from either end: it is simply part of a larger network. A self contained section of railway is one on which trains traverse the whole extent of the self-contained network an unlimited number of times and in any direction, reversing at will, without needing any authorisation beyond possession of the staff to be on that whole network or sub-network.

The system as implemented in Simutrans-Experimental is explicitly designed to work by reserving the whole route from the one train staff cabinet back to that cabinet again (or one immediately adjacent to it), and not release any of the reservation until the train gets back to the original cabinet (or the one right next to it). If it is releasing the reservation in other circumstances, that is the bug, but if this release cannot be exploited to make a workable signalling system (working in the same way as the more expensive token block), then this is a low priority bug.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

AP

If one engine in steam is meant,  I suggest using the phrase,  it's widely understood.

The phrase one train staff is more suggestive of block working than one engine in steam.

From what date is the time interval with Telegraph working available?

Time interval and single track seems a poor logical match . I had thought it was for double track only. Have you checked it was used on single track routes?

jamespetts

Time interval with telegraph becomes available from 1848 onwards in Pak128.Britain-Ex. The next video will explain how it works, and, yes, I have confirmed that this system was used on single lines in practice; I have an Eastern Counties Railway rulebook (at least, an electronic copy of one) that describes how the system worked at a number of locations.

I had not realised until now that "one train staff" was a potentially misleading descriptor. I should be interested in others' views on this question.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Vladki

I'm not native speaker so I thought that one train staff was the proper term used on uk railways...  Also AFAIK token machines were not used in central europe, so I considered all tokens/staffs as simple objects that if used in block system enforce alternating trains to bring the staff back. So for me it would be nice if the machine in token block is ephasized.

AP

As soon as you indicate a staff or token,  there's no reason it ought not be possible to control a block with it in some manner.  The non native speaker consideration is also well worth bearing in mind.

jamespetts

The trouble is that, in modern UK practice, there are staffs for self-contained dead-end sections that work in the way that "one train staff" works in Simutrans-Experimental, which is why I named it thus.

Edit: I have modified the video description to refer to "one train in steam".
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Ves

Neither am I a native speaker, and thought it was the correct term. However, I don't mind either of the terms, as long as nothing is directly wrong. In Sweden, token or staff has very rarely been used, so I think those working methods will be used only as signal logic (i.e., available at all times), hence the name of the working method just needs to reflect the operations.

AP

James - when you get a moment, please can you summarise in-game Time Interval with Telegraph single line working? Is it what was used at the Thorpe 1874 accident? Not so much "interval" as just timetable operation, it sounds like?

What is the gain players get between the 3 different methods of single track working:  ?
OEIS to TI&T = extra locomotives in play (from 1848)
TI&T to TB = ?  (from when?)


Quote from: jamespetts on December 07, 2016, 11:06:23 AM
In modern UK practice, there are staffs for self-contained dead-end sections that work in the way that "one train staff" works in Simutrans-Experimental
Staff & ticket block working was being used under British Railways post 1948 in the Eastern & Western regions at least. (And BR's Rheidol branch used it until 1968 apparently. Its still in use on the Isle of Man network.

jamespetts

AP - I am planning to produce a tutorial video on time interval with telegraph shortly.

One train in staff is intended to be a simple and cheap system for when an entire railway or self-contained (i.e. dead-end) section of railway is to have only one train operating at any one time.

Time interval with telegraph working is an enhancement of the time interval system, used, not just for single track working, but also generally (in conjunction with basic time interval signalling). Its advantages over basic time interval signalling are its ability better to handle large junctions and its ability to deal with single line sections.

Token block is a variant of absolute block signalling that is intended to work on single line sections. Its purpose is to ensure that trains do not head towards each other on a single track line. In reality, this is a safety measure, but in Simutrans-Experimental, it helps to prevent deadlocks, and, in particular, allows for sequential absolute block signals along a single track section so that a train can start its journey into a single track section even if the station platform at the next stop/passing place is not yet clear, being held at a signal outside it until it is. This system will also be explained in more detail in a future video.

As to staff and ticket, no doubt those did indeed remain in operation until recently (and is still in use in places), but that is a very different system to one train staff/one engine in steam.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

AP

So to summarise the above for in-game only:

Steam railway working starts 1833
There's no way to implement single track block sections prior to 1848 ?
Between 1848 and a later date (1878?*) the only way to work single track block sections allows facing deadlocks to occur?
After the later date (1878?*) single track working now works smoothly, and intermediate block posts can be accommodated between passing loops.

Unless I'm missing something, that doesn't sound like a fully functional timeline?

QuoteAs to staff and ticket... that is a very different system to one train staff/one engine in steam.
A train staff is a train staff. It gives authority for one train to be in one section of track. It's fundamentally the same system. Whether its expanded with tickets or not is just a subset to flexibility. Given the above apparent shortcomings, I think it could be very odd you're bothering to include staff working in game only for a niche application rather than roll it out widely, given that a wide application still works in the niche (end of line) scenario. Especially given it's simple to understand and was widely used for a long time.

And especially given the 'bug' means it almost works anyway.


*date of Tyer token instrument patent

jamespetts

Steam locomotives are available from 1813, albeit at that time are only expected to be used on short-distance industrial lines. The speeds of those early railway locomotives make drive by sight the most suitable signalling method.

There is indeed no way to implement single track block sections before 1848. Early railways with any significant traffic were double tracked precisely because there was not the means of signalling single track lines effectively. The very early history of signalling is extremely difficult to research, as there are no books that deal with it in any detail. In reality, there may well have been the staff and ticket system earlier than this, but this cannot be implemented satisfactorily in Simutrans-Experimental for the reasons already given.

Time interval with telegraph should not allow facing deadlocks to occur, but it is a time interval based system, so trains would be separated by at least 5 minutes, and have to travel at half speed if the previous train has passed within the last 10 minutes. The facing deadlocks could occur in absolute block (except in a system in which a train could only enter a single track section if it could also enter the station platform/passing loop beyond). Absolute block is more efficient than time interval, as it does not require any particular time separation between trains, clearing the section for full speed running as soon as the previous train has left it.

As to the purpose of one train staff, the reason to include it is principally to allow for true one engine in steam operation on a totally self-contained railway on which only one train will ever operate at once.. Without it, every line on which a train would need to travel faster than the drive by sight speed limit would have to be fully signalled. However, there is no workable implementation that does not also allow for the dead-end sort of working shown in the video. As I have already explained, it is most definitely not intended to emulate staff and ticket working: it would either lead to intractable deadlocks or be no different from token block working were it so.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

AP

Surely the difference from electric token block would be the stated ability to have intermediate stopping points within the blocks? These rely on electric communication to manage.

Staff and ticket does not rely on electricity.

Vladki

Electricity allows to release a token at either end of block, when a token is trturned to any machine. This allows for trains to follow in the same direction, and removes the potential deadlock of staff&ticket when you forget to send the staff with the last train (and have to send it on horseback).
It has nothing to do with intermediate stops within the block - in that aspect token and staff should be equal.

AP

#21
Vladki - james has stated above that intermediate stops within the block is the  in game feature which distinguishes Electric Token Block from Time Interval single track working, as well as following trains always being at full speed.

Since secondary-intermediate signalboxes within a block must communicate with the primary signalboxes at each end, this is surely contingent on electric telegraph / instruments (possibly not both), I can see why James has joined the two into a single Simutrans Working Method - which I'm sure he won't want to make available in game until after electric token instruments were actually invented 1878 - even though as you say they could be separate.

The first absolute block system was in use on UK railways from 1844 (Norwich to Yarmouth - which is single track today at least, unsure about originally). That did use electric telegraph to enforce its working.

My concern is therefore that - in game -there is a 40 year gap without a 'good' method of single line working being available - when there should be, since in the real world a lot of single track mileage was laid in those 40 years.

I can't find a definitive source for when Staff block working was first used (I agree with James on the dearth of sources!), but given it does not depend on electricity to work - nor does it actually require any telegraph comms between signalboxes at all - my strong suspicion is that it was developed quite early.

James comment that staff block working would cause deadlock problems in game - I don't see the logic behind that thinking at all. In the real world it was vulnerable due to operator error, unexpected changes, etc  - but none of those apply in game as everything is pre-scheduled. If token block succeeds, why would S&T gridlock.

James' point about distinguishing it from the later more expensive Electric Token working is reasonable but the electricity-based functionality of having intermediate signalboxes appears to be the answer? That's a useful extra to players.

Staff block working seems therefore the best candidate as the stepping stone between the two options - full speed running but no mid-block signalling ?

Vladki

From my incomplete studies of railway history in austria-hungary (reference to german book is in another thread) i can say that token/staff operation was not usual, and token machine completely unheard of. Most of the lines were single tracked. Our version of absolute block was extended to allow for switching directions on single track (which is not implemented in simutrans).
Before that, time interval with various telegraphs (electrical, optical) was used. In the absence of telegraph, strict adherence to timetable was required, with special instructions for delayed trains. Oldest (horse drawn) railways probably used drive by sight + timetable for passing loops.  In case of unexpected meeting they even derailed one train to let the other pass.

Although we have some scheduling funcions in experimental, building a schedule for single track line to be used without signals, would be a big challenge and too much micromanagement. Also using simple (non electric) tokens for line blocks is possible only if you have regularly scheduled trains in alternating directions to carry the token there and back. (see modern tram line in Bad schandau - although i wonder how they do it with the first and last trains.)

I think the reason for not implementing staff+ticket is that without schedule you do not know whether to issue ticket and keep the staff at station, or send the staff to the other station to let trains come in the opposite direction. Also, staff+ticket must have been used with some time interval logic to keep some distance between trains in the same direction. So it may be thought of as another sort of time interval for single track line (without telegraph). Keep in mind that without electric token device or some sort of telegraph you dont know if the train arrived to the next station/signalbox or not.


AP

Quote from: Vladki on December 08, 2016, 09:29:11 PM
I think the reason for not implementing staff+ticket is that without schedule you do not know whether to issue ticket and keep the staff at station, or send the staff to the other station to let trains come in the opposite direction.
But from the point of view of the coding, you don't need to decide that. You just keep sending trains in one direction each time one arrives, as long as the block is clear. Then when a train comes the other way, if the block is clear, you let that one through too. You then say retrospectively "well obviously the last train carried the staff". Why make it any more complicated than that?

The game doesn't need to distinguish what 'authority' a train carries to make its decisions - it just needs to know it can keep sending trains, or it must strictly alternate the directions of travel (and remember which one is allowed next), or whatever the rule for the Working Method is..

QuoteKeep in mind that without electric token device or some sort of telegraph you dont know if the train arrived to the next station/signalbox or not.
A good point - although since the electric telegraph was available from 1844 on uk railways, that would have served once Staff working became Staff and Ticket, if time interval wasn't accepted.

Vladki

Then the question is how exactly staff+ticket worked. Was there any communication between stations/passing loops/signalboxes or not?

How did the signalman know if he can issue next ticket? Clerly, the possesion of staff was not the only requisite needed. So IMHO there were 3 options:
1. No communication at all: tickets issued in time interval fashion, staff passed by schedule.
2. Main stations can communicate and ask for staff. Tickets issued on time interval basis. (this would be essentially time interval with telegraph)
3. Stations can confirm train arrival (clear block) and tickets are issued only after assured clearance - this would be almost the same as token machine just with the risk of human fault.
4. If full and fast communication is available (phone) you can avoid staff+ticket completely and make all negotiations by phone (and put the result - direction, clearance on paper). This is still in use on some branch lines in CZ.

AP

Quote from: Vladki on December 09, 2016, 07:53:57 AM
Then the question is how exactly staff+ticket worked. Was there any communication between stations/passing loops/signalboxes or not?

How did the signalman know if he can issue next ticket? Clerly, the possesion of staff was not the only requisite needed. So IMHO there were 3 options:
1. No communication at all: tickets issued in time interval fashion, staff passed by schedule.
2. Main stations can communicate and ask for staff. Tickets issued on time interval basis. (this would be essentially time interval with telegraph)
3. Stations can confirm train arrival (clear block) and tickets are issued only after assured clearance - this would be almost the same as token machine just with the risk of human fault.
4. If full and fast communication is available (phone) you can avoid staff+ticket completely and make all negotiations by phone (and put the result - direction, clearance on paper). This is still in use on some branch lines in CZ.

I strongly suspect primarily 3. The difference being cheaper and available much earlier than Token working.