The International Simutrans Forum

Simutrans Extended => Simutrans-Extended development => Topic started by: Ves on February 10, 2016, 11:50:40 PM

Title: Regarding moving block signals and other directional reserving signals
Post by: Ves on February 10, 2016, 11:50:40 PM
I have been playing around with cab signals and moving block signals and found some issues which Im unsure if they work as intended or if I have missed something:

{1} If train first passes a cab signal, and then a bidirectional moving block signal, it messes up with the blue directional reservation. Upon approaching the cab signal, the entire stretch is booked as if there was no moving block beacons in between. My logical sence tells me to book the line to the beacon and create a directional reservation behind the moving block beacon (if possible). However, some of the moving block functionality persist as it will only book as far as to the next vehicle traveling on the track, even if that one drives in the wrong direction! (follow any of the two trains on "(1) Line" driving from "South Station" towards "North Station"). Replacing all cab signals with moving block beacons makes the reservations behave as expected.

{2} A train following another train on a single line using bidirectional moving block signals, the directional reservation between the two trains tend to get lost. This means that another train can interfere and change the directional reservation between the two trains, creating deadlocks. (look at where the "(1) Line" interferes with "(2) Line")

{3} When a train is interfered on the way by eg another train, it sometimes looses the signal to the beacon and continues in drive by sight. Try to open any of the trains schedules, it, and other trains forced to stop behind the train, will afterwards only drive by sight, even though the stretch still is reserved.

{4} Looking at the "(2) Line", it sometimes looses its directional reservation on any of the junction tiles.


Some questions:

It feels unintuitive that there is no directional reservation between the last singlefaced signal and the first bidirectional signal. Is there no way to change this behaviour? Eg if signal recognizes that next signal is bidirectional = try to create directional reservation. Especially usefull when line is blocked further away to have trains waiting at the passing loop (by the singlefaced signal) instead of at the first bidirectional signal on the single tracked line.

The ability for single faced "signals" to make a directional reservation would be especially usefull with moving block beacons. Since they are so expensive, one would want to build as few of them as possible. Looking at the "North Station", it would be usefull if only two beacons where needed, one on each track pointing out from the station. Currently four is needed (doubble faced beacons on each track) because the directional reservation is needed.
If placing two singlefaced beacons pointing out of the station, and then another double faced beacon outside the station on the main line, it will cause deadlock but maybe thats because of the previously menthioned subjects

savegame: https://www.dropbox.com/s/kc68ace2k0kpu7e/Signals_test_cab_and_moving_block_1.sve?dl=0 (https://www.dropbox.com/s/kc68ace2k0kpu7e/Signals_test_cab_and_moving_block_1.sve?dl=0)

edit: missed the "preview" button and hitted save too early....
Title: Re: Regarding moving block signals and other directional reserving signals
Post by: jamespetts on February 20, 2016, 05:25:26 PM
Thank you for this - I have fixed issue no. 1. Are you able to re-test? I should be grateful. Can you also confirm whether (and if so, precisely where and when in this saved game) the other issues remain? (I should note that not having directional reservation on junction tiles in some cases is intentional for somewhat complex reasons that I confess I do not immediately remember, save that it was necessary to prevent a certain sort of deadlock).

Can you explain more the relevance of the directional reservation system being unintuitive? I was able to resolve the deadlock at the North station by replacing the single directional beacons with bidirectional beacons.
Title: Re: Regarding moving block signals and other directional reserving signals
Post by: Ves on February 21, 2016, 01:12:50 AM
number 1 appears fixed! thanks! Although, the train will now slow down to a very short halt upon arriving at the moving block bidirectional beacon. The train should be able to get the values from the beacon soon enough in order to not need to stop or slow down at all.

Assuming you made the two beacons bidirectional at the "North station" (also, there was apperently a hidden beacon underneath one of the station tiles) so the directional reservations work:

number 2 is still persistent. Follow the track between south and north station and whenever two trains are following each other in the same direction, there will be no directional reservation in between the two trains. There might be some reservation if the two trains are far away from each other, but the reservation unpredictably sometimes follows the former train and sometimes does not. One would expect a directional reservation from the last train in that direction goes ALL the way through the other trains to the end of directional reservation (at the choose beacon in the savegame example), creating an endless line of "blue" (obviously with the red reservations). I have not been able to create deadlocks now with this problem, but I guess it could potentially if the gap between the first train and the directional reservation of the second train gets too big.

number 3 is still persistent, and is also persistent to when driving with cab signals, track circuit signals and possibly all working methods: To trigger, open the schedule of any train on any of the lines to bring it to a halt. Close the schedule again, and the train will continue, but only at about 33 km/h, which is the same speed as when its driving in drive by sight. When passing another signal or beacon, it will pick up speed again.

Number 4 Ok, However it sometimes does and sometimes do not direction reserve the junction tiles. It should just be persistent so it always do one or the other, but I guess that it would be best if it did direction reserve junction tiles as well.


Regarding the directional system as beeing a bit unintuitive at some points, I think that Vladki made some good points in the signal discussions thread. But just to quick clarify:
You resolved the deadlock at the north station by making the two beacons bidirectional. Yet, what feels most intuitive, at least for me, is to put a single direction beacon where I originally put them or at the end of the platform and that would do the same job (as the bidirectional ditto). After all, there is no point in signalling TOWARDS the end station as that clearance already is given by the choose signal at the entry of the station AND the beacons are potentially very expensive so I want to buy as few as possible.

Another thing is that I for reasons maybe dont want to use bidirectional signals on a bidirectional line. It could be that I use a combination of choose signal in one direction and normal signal in the other (placed a tile apart) or if I want permissive signals in one direction and non permissive signals in the other direction. Forcing the player to put a bidirectional signal as the first signal a train will pass on the bidirectional line will cause unnecessary many signals and could possibly create other problems as well.
Look at the other example in the savegame in the north-east corner:
The bidirectional line approaching "Dorford Road Railway Station" (the station next to the depot) has a choose signal and a normal signal placed a tile apart. If you look at the reservations for the trains leaving that station, you will se that it creates the directional reservation only when it is too late and it is already on the bidirectional line. Now that little layout is still failproof, but what if the similar signal setup was made at the other station? Then two trains would be able to book the line to their first signal and then attempt to make the directional reservation, creating the deadlock. The solution to failproof such a layout is to make the first signal, the one next to the choose signal, bidirectional, but then one would feel that there are one too many signals at that place.

However this bidirectional discussion we can move over to the signal discussions thread if that is better?
Title: Re: Regarding moving block signals and other directional reserving signals
Post by: jamespetts on February 21, 2016, 02:16:05 PM
Splendid, thank you for testing apropos no. 1.

As to no. 2 - I am not convinced that this is a real problem. The directional reservation system is designed such as to be able to deal with a somewhat fragmented reservation, as a train going the other way has to have a complete directional reservation before it starts going. If there are any deadlocks resulting from this, I will look into it.

In respect of no. 3, opening the schedule window re-sets the working method to drive by sight; this is a by-product of the design of the system rather than a bug per se.

As to no. 4 - again, so long as this does not produce deadlocks, this is probably best not considered as a bug as with no. 2.

As to directional reservations, do see my reply in the other post to Vladki regarding these in the earlier signalling systems. Do I understand correctly that your issue is regarding the use of bidirectional signals? The system was designed thus to be relatively simple: anything that uncouples bidirectional signals with bidirectional track would take a huge amount of time and effort that could better be spent on other things. The basic principle is that a directional reservation is made from the first bidirectional signal on a train's route to the first unidirectional signal after the first bidirectional signal on that route. That should be simple enough to remember. The reason to use bidirectional signals at the North station is to start the directional reservation for trains heading towards the single track section: the deadlocks occur when trains enter that single track section without having made a directional reservation because they have yet to encounter a bidirectional signal.
Title: Re: Regarding moving block signals and other directional reserving signals
Post by: Ves on February 22, 2016, 09:37:07 AM
Regarding number 3, it makes sence that it reverts to drive by sight when opening the schedule, however other trains also looses its clearance when it is interfered by another train.
On the stretch between "South" and "North" (and with the fixed beacons at "North"), you have the small line between "East" and "East-East". When the train operating those two stations are on the main line, open its schedule to bring it to a halt. Wait for any of the trains to near the stopped train and it will halt right behind it. Close the schedule of the first train and they will both hump away in about 33kmh. However, when the first train  (the one you opened the schedule) turns of towards "East" or "East-East", the other train will continue to drive in drive by sight, even though you did not touch that train at all. My logical sense tells me that the beacons should still be in effect, so the train can pick up speed.

If you replace the train between "East" and "East-East" with a slower train (Eg to a Br Class 9, max 44kmh) everytime a train get to drive behind it, that train will revert to drive by sight.

No 2 and 4, OK, I will keep my eye open to see if it creates deadlocks!

Title: Re: Regarding moving block signals and other directional reserving signals
Post by: jamespetts on February 18, 2017, 12:53:21 AM
I am currently reviewing old bug reports and I notice that this one appears to have no reported resolution. May I ask whether this can still be reproduced?