Elvas Tower: Run Round and Forming Existing Sevice - Elvas Tower

Jump to content

  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Run Round and Forming Existing Sevice

#1 User is offline   systema 

  • Fireman
  • Group: Status: Active Member
  • Posts: 107
  • Joined: 16-March 15
  • Gender:Male
  • Location:The Heart of Cheshire
  • Simulator:Open Rails
  • Country:

Posted 20 October 2021 - 09:06 AM

I am sure many people have managed to get a loco and coaches to pull into a platform, run round reconnect to the coaches and form an existing service. If so, I would be pleased to hear how its done as I cannot manage it.

I am using the $form in #dispose and setting a runround path. The loco gets as far as the entrance signal back into the platform but stops there all day long. I think I have set my signal script correctly as follows:-

if(!enabled||!route_set()||block_state()!=#BLOCK_CLEAR)
{
state = SIGASP_STOP;
}
else if(block_state()==#BLOCK_OCCUPIED&&TrainHasCallOn() )
{
state = SIGASP_STOP_AND_PROCEED;
}
else
{
state = SIGASP_CLEAR_2;
}

draw_state = def_draw_state (state);

The signal type in the configuration file is set to have the three aspects available.

The entry in the #dispose row the for the train in question is

$forms=SBY2 /runround=Firsby1RunRoundTT

SBY2 being the new train and Firsby1RunRoundTT being the run round path. $callon is set in the original train's column (SBY1).

Mick Clarke
MEC

#2 User is offline   roeter 

  • Vice President
  • Group: Status: Elite Member
  • Posts: 2,424
  • Joined: 25-October 11
  • Gender:Male
  • Country:

Posted 22 October 2021 - 01:00 AM

The TrainHasCallOn signal script function does not 'recognize' the run-round command as a valid callon situation.
The runround function was a very early addition to the timetable functions, but has later been replaced by the separate $detach and $attach commands. These allow better control of the runround move. Also, the TrainHasCallOn function does recognize the $attach command and will see it as a valid callon situation.

It's quite easy to change the setup using the runround command, to a setup using $detach and $attach.
All that is needed is an additional train, e.g. named SBY2_runround.

Instead of $forms=SBY2 /runround=Firsby1RunRoundTT , set #dispose to $forms=SBY2 $detach /allleadingpower /forms=SBY2_runround

Set new train SBY2_runround as follows :
#name = SBY2_runround
#consist = (power consist of train)
#path = Firsby1RunRoundTT
#start = (appropriate start time)
#dispose = $attach = SBY2

There is no need to set an explicit $callon command, not for the original train nor for the runround move.

Regards,
Rob Roeterdink

#3 User is offline   systema 

  • Fireman
  • Group: Status: Active Member
  • Posts: 107
  • Joined: 16-March 15
  • Gender:Male
  • Location:The Heart of Cheshire
  • Simulator:Open Rails
  • Country:

Posted 22 October 2021 - 07:02 AM

 roeter, on 22 October 2021 - 01:00 AM, said:

The TrainHasCallOn signal script function does not 'recognize' the run-round command as a valid callon situation.
The runround function was a very early addition to the timetable functions, but has later been replaced by the separate $detach and $attach commands. These allow better control of the runround move. Also, the TrainHasCallOn function does recognize the $attach command and will see it as a valid callon situation.

It's quite easy to change the setup using the runround command, to a setup using $detach and $attach.
All that is needed is an additional train, e.g. named SBY2_runround.

Instead of $forms=SBY2 /runround=Firsby1RunRoundTT , set #dispose to $forms=SBY2 $detach /allleadingpower /forms=SBY2_runround

Set new train SBY2_runround as follows :
#name = SBY2_runround
#consist = (power consist of train)
#path = Firsby1RunRoundTT
#start = (appropriate start time)
#dispose = $attach = SBY2

There is no need to set an explicit $callon command, not for the original train nor for the runround move.

Regards,
Rob Roeterdink


Thank you Rob for your suggestion. I am rather behind the curve on Timetables. The Timetable entries nearly work...The run round loco still gets stuck at the entrance ground signal back into the the platform. It only works if I manually clear the ground signals in the dispatcher.

Mick Clarke
MEC

#4 User is offline   systema 

  • Fireman
  • Group: Status: Active Member
  • Posts: 107
  • Joined: 16-March 15
  • Gender:Male
  • Location:The Heart of Cheshire
  • Simulator:Open Rails
  • Country:

Posted 22 October 2021 - 08:15 AM

I removed the entrance signal to the platform. The reverse point into the platform was just beyond this.

The run round and reconnect works automatically with this situation!

This however is not satisfactory from the signalling point of view.

Is the signal script the only means of enabling the call on? If so I guess this means my script and/or configuration is wrong!

Mick Clarke

#5 User is offline   ebnertra000 

  • Superintendant
  • Group: Status: Elite Member
  • Posts: 1,234
  • Joined: 27-February 17
  • Gender:Male
  • Location:East-Central Minnesota
  • Simulator:OR/TSRE
  • Country:

Posted 22 October 2021 - 04:03 PM

Upon review of the script, block_state !=# BLOCK_CLEAR would be true if block_state ==# BLOCK_OCCUPIED, so both STOP and STOP_AND_PROCEED could be shown, but it sees block_state !=# BLOCK_CLEAR first in the test for STOP and (I think) concludes that Stop is to be shown without considering the call-on aspect.

I would try something like:

if (!enabled || !route_set())
{
state = SIGASP_STOP;
}
else if (block_state ==# BLOCK_OCCUPIED)
{
if (TrainHasCallOn())
state =SIGASP_STOP_AND_PROCEED;
else
state = SIGASP_STOP;
}

#6 User is offline   systema 

  • Fireman
  • Group: Status: Active Member
  • Posts: 107
  • Joined: 16-March 15
  • Gender:Male
  • Location:The Heart of Cheshire
  • Simulator:Open Rails
  • Country:

Posted 23 October 2021 - 10:15 AM

 ebnertra000, on 22 October 2021 - 04:03 PM, said:

Upon review of the script, block_state !=# BLOCK_CLEAR would be true if block_state ==# BLOCK_OCCUPIED, so both STOP and STOP_AND_PROCEED could be shown, but it sees block_state !=# BLOCK_CLEAR first in the test for STOP and (I think) concludes that Stop is to be shown without considering the call-on aspect.

I would try something like:

if (!enabled || !route_set())
{
state = SIGASP_STOP;
}
else if (block_state ==# BLOCK_OCCUPIED)
{
if (TrainHasCallOn())
state =SIGASP_STOP_AND_PROCEED;
else
state = SIGASP_STOP;
}


Thank you for your suggestion. On looking at my original script it could never work as the signal sees the block as occupied in the first check so the run round loco will never proceed. The principle of your suggestion is correct but the actual script did not work. However, this script does work.

SCRIPT BRSemHome

extern float block_state ();
extern float route_set ();
extern float def_draw_state ();
extern float state;
extern float draw_state;
extern float enabled;

if(!enabled||!route_set())
{
state = SIGASP_STOP;
}
else if(block_state()==#BLOCK_OCCUPIED&&TrainHasCallOn() )
{
state = SIGASP_STOP_AND_PROCEED;
}
else if(block_state()!=#BLOCK_CLEAR)
{
state = SIGASP_STOP;
}
else
{
state = SIGASP_CLEAR_2;
}

draw_state = def_draw_state (state);


Many thanks everyone for help.

Mick Clarke
MEC

#7 User is offline   systema 

  • Fireman
  • Group: Status: Active Member
  • Posts: 107
  • Joined: 16-March 15
  • Gender:Male
  • Location:The Heart of Cheshire
  • Simulator:Open Rails
  • Country:

Posted 23 October 2021 - 10:26 AM

Equally, this simplified version also works

if(block_state()==#BLOCK_OCCUPIED&&TrainHasCallOn() )
{
state = SIGASP_STOP_AND_PROCEED;
}
else if(block_state()!=#BLOCK_CLEAR||!enabled||!route_set())
{
state = SIGASP_STOP;
}
else
{
state = SIGASP_CLEAR_2;
}



Mick Clarke
MEC

#8 User is offline   roeter 

  • Vice President
  • Group: Status: Elite Member
  • Posts: 2,424
  • Joined: 25-October 11
  • Gender:Male
  • Country:

Posted 23 October 2021 - 11:31 AM

 Weter, on 23 October 2021 - 01:20 AM, said:

Robert, am I right, that exact consist of runaround train is not principal in such case, as we'll use $forms?
If so, any existing consist would be enough, isn't it?

Yes, that's right. The run-round train will be formed of whatever is the power of the incoming train, and the #consist definition will be ignored.

Regards,
Rob Roeterdink

#9 User is offline   systema 

  • Fireman
  • Group: Status: Active Member
  • Posts: 107
  • Joined: 16-March 15
  • Gender:Male
  • Location:The Heart of Cheshire
  • Simulator:Open Rails
  • Country:

Posted 24 October 2021 - 12:57 AM

This script works even better in case you have a signal with more than one direction to be indicated ie at a junction. The signal shows the correct clearance for the direction of the train.

if(block_state()==#BLOCK_OCCUPIED&&TrainHasCallOn()&&route_set() )
{
state = SIGASP_STOP_AND_PROCEED;
}
else if(block_state()!=#BLOCK_CLEAR||!enabled||!route_set())
{
state = SIGASP_STOP;
}
else
{
state = SIGASP_CLEAR_2;
}

draw_state = def_draw_state (state);


Mick Clarke
MEC

#10 User is offline   Laci1959 

  • Foreman Of Engines
  • Group: Status: Contributing Member
  • Posts: 944
  • Joined: 01-March 15
  • Gender:Male
  • Simulator:Alföld
  • Country:

Posted 11 November 2021 - 05:30 AM

 systema, on 20 October 2021 - 09:06 AM, said:

I am using the $form in #dispose and setting a runround path. The loco gets as far as the entrance signal back into the platform but stops there all day long. I think I have set my signal script correctly as follows:-
Mick Clarke
MEC

Hello

Basically, the whole thing is wrongly approached.
In Hungary, the STATION AREA STARTS AT THE ENTRANCE SIGNAL AND CONTINUES TO THE EXTERNAL ENTRY SIGNAL. So a reversing unit can only go beyond the marker with a separate written permission. Between the entrance marker and the first gearbox min. The distance is 100 meters, this is stipulated by law. It can be much larger than 400-500 meters.
I believe that this is the prevailing principle throughout Europe.

So when running around or otherwise reversing, the train does not go beyond the entrance marker. As it does not go beyond the entrance marker, the use of TrainHasCallOn is not required. It can even be reversed so that the direction of travel is in the possession of the station. This prevents the other station from starting a train, which could jeopardize the reversing. Of course, the reverse is also true.
What would be good if the Exit marker gave a "restricted reversing" signal for such a movement. American tracks are not over-signaled as opposed to European tracks. A modern Spurplan has many reversing indicators. There are places where each shift is accompanied by three such tokens, but this is very rare.

Sincerely, Laci 1959

  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users