Elvas Tower: Brakepipetokens not working anymore (Twinpipe) - Elvas Tower

Jump to content

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

Brakepipetokens not working anymore (Twinpipe) ORTSBrakeCutsPowerAtBrakePipePressure/RestoreAt.. Rate Topic: -----

#1 User is offline   Stijn D.C. 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 565
  • Joined: 20-August 16
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 15 April 2025 - 04:38 AM

Hello,


Have some users this issue too: (After NewYear MG Rev. 162)


ORTSBrakeCutsPowerAtBrakePipePressure ( 3.0bar ) -> Not works on AirSingle & AirTwin systems.

ORTSBrakeRestoresPowerAtBrakePipePressure ( 3.5bar ) -> Not works on AirSingle & AirTwin systems.

BrakeCutsPowerAtBrakeCylinderPressure ( 5.5bar ) -> Works, but this is a mess when engine use bailoff and blended function :-(.


I have test this with & without TCS scripts.

A search on the Openrails code, give only result that this tokens:

ORTSBrakeCutsPowerAtBrakePipePressure -> MSTSLocomotive.cs -> case "engine(ortsbrakecutspoweratbrakepipepressure": BrakeCutsPowerAtBrakePipePressurePSI = stf.ReadFloatBlock(STFReader.UNITS.PressureDefaultPSI, null); break;


BrakeCutsPowerAtBrakePipePressurePSI -> Only programmed on VacuumSinglePipe.cs



ORTSBrakeRestoresPowerAtBrakePipePressure -> MSTSLocomotive.cs -> case "engine(ortsbrakerestorespoweratbrakepipepressure": BrakeRestoresPowerAtBrakePipePressurePSI = stf.ReadFloatBlock(STFReader.UNITS.PressureDefaultPSI, null); break;



BrakeRestoresPowerAtBrakePipePressurePSI -> Only programmed on VacuumSinglePipe.cs


@Openrails Developteam -> Is it possible to let works this tokens on Airbrakes too? (AirSinglePipe.cs & AirTwinPipe.cs ...)


So for moment on locomotives that use "blended" system and bailoff, traction "cut" not working.


In advance thanks

#2 User is offline   cesarbl 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 582
  • Joined: 30-March 20
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 15 April 2025 - 09:12 AM

Hello,

Did they work in previous ORNY versions? AFAIK, ORTSBrakeCutsPowerAtBrakePipePressure and ORTSBrakeRestoresPowerAtBrakePipePressure have never been included in official OR versions nor ORNYMG.

Traction cut-off was implemented in the wrong place (outside the TCS subsystem) for vacuum brakes, but now it must remain in that place forever due to compatibility issues with the AWS system.

The decision at that time was to block the inclusion of said parameters. Thus, traction cut off cannot be further implemented unless we find a way to work around the compatibility issues, which is hard to do.

See also https://www.elvastow...longer-working/ and https://github.com/o...nrails/pull/527

#3 User is offline   Stijn D.C. 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 565
  • Joined: 20-August 16
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 16 April 2025 - 09:05 AM

Hello,


For test that, i have go back to version of Github (0.0.8953.22386/NewYearNoWD) there it ois no working too.

I think only the lowercasetokens are defined.


When i check this on actual Github version (NewYearNoWD) only lowercasetokens are defined.

And VacuumSinglePipe.cs

float BrakeCutoffPressurePSI = OneAtmospherePSI - lead.BrakeCutsPowerAtBrakePipePressurePSI; Line 451
float BrakeRestorePressurePSI = OneAtmospherePSI - lead.BrakeRestoresPowerAtBrakePipePressurePSI; Line 452



Greetz,

Stijn

#4 User is offline   gpz 

  • Superintendant
  • Group: Posts: Elite Member
  • Posts: 1,846
  • Joined: 27-October 12
  • Gender:Male
  • Location:Budapest
  • Simulator:OpenRails
  • Country:

Posted 16 April 2025 - 10:06 AM

View Postcesarbl, on 15 April 2025 - 09:12 AM, said:

Traction cut-off was implemented in the wrong place (outside the TCS subsystem) for vacuum brakes, but now it must remain in that place forever due to compatibility issues with the AWS system.

I think it could easily be solved by a compromise: by defining one more script function that disables the built-in methods, like DisableCompatibilityBrakePowerInterlocking().

#5 User is offline   cesarbl 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 582
  • Joined: 30-March 20
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 16 April 2025 - 01:23 PM

I'm still not 100% sure about whether it should be implemented using the same functionality as the traction cutoff from the TCS system. The leading locomotive is the only one with an active TCS, but it orders traction cutoff for all locomotives in the consist. If the traction-braking interlocking cuts traction depending on the train brake lever position, then it should also affect the whole train. However, if it is brake-cylinder dependent, the decision may be taken independently and locally for every locomotive, which cannot be handled by the current functions.

#6 User is offline   Stijn D.C. 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 565
  • Joined: 20-August 16
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 16 April 2025 - 02:50 PM

Hello,


I think that TCS not must handle this commands but the brakesystem "computer" (MPU...)


TCS handles more circuitbreakerevents in my opinian. And is more Alerter, signal related.


Some TCS systems only need some trainbrakecontacts/first brakeleverstep (like Holland ATB overspeedcontrol), for confirm that traindriver is alert

But that have nothing todo how tractioncut works.


A compressor works with a valve of electronic setting for go "off" when pressure of setting of valve/chipplate is reached.

Compressor is not linked too TCS system for this.


So i think this is too with tractioncut in case brakesystem and pressures. I mean with this, that this must be a independent system.

But in my opinan the brakesystem "computer" handle this.

Because if you take TCS system away of a train, the tractioncut and behavior for it, must be still exsist, that stuff is own on locomotive or motor unit.

#7 User is offline   cesarbl 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 582
  • Joined: 30-March 20
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 17 April 2025 - 12:57 AM

The TCS must handle the traction cut-off, there is no doubt about that. For example, ETCS cuts traction when you exceed the permitted speed limit. Also there are some other safety systems that cut traction if doors are open. All of those cut traction in all locomotives, and can be handled well by the current TCS functions. The question is whether the traction-braking interlocking cuts traction using the same mechanism, I have to check that against the driving manuals for multiple stock to see how it is handled.

#8 User is offline   gpz 

  • Superintendant
  • Group: Posts: Elite Member
  • Posts: 1,846
  • Joined: 27-October 12
  • Gender:Male
  • Location:Budapest
  • Simulator:OpenRails
  • Country:

Posted 17 April 2025 - 03:30 AM

View Postcesarbl, on 16 April 2025 - 01:23 PM, said:

I'm still not 100% sure about whether it should be implemented using the same functionality as the traction cutoff from the TCS system. The leading locomotive is the only one with an active TCS, but it orders traction cutoff for all locomotives in the consist. If the traction-braking interlocking cuts traction depending on the train brake lever position, then it should also affect the whole train. However, if it is brake-cylinder dependent, the decision may be taken independently and locally for every locomotive, which cannot be handled by the current functions.

It is a valid point you raised here. I have not checked, but probably the brake controller script also runs on the lead locomotive only, so that would not the best place for this either. Maybe the simplest way would be implementing this as fixed eng-file options, for all possible variations.

#9 User is offline   Stijn D.C. 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 565
  • Joined: 20-August 16
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 27 April 2025 - 05:56 AM

View Postcesarbl, on 17 April 2025 - 12:57 AM, said:

The TCS must handle the traction cut-off, there is no doubt about that. For example, ETCS cuts traction when you exceed the permitted speed limit. Also there are some other safety systems that cut traction if doors are open. All of those cut traction in all locomotives, and can be handled well by the current TCS functions. The question is whether the traction-braking interlocking cuts traction using the same mechanism, I have to check that against the driving manuals for multiple stock to see how it is handled.



Hello, indeed, i think that TCS modules are connected too a independ module (like a canbusnetwork on cars...) and commands this "external".

Like a alertermodule that if you not reacting after XX seconds , commands the emergency-valve of brakesystem/brakepipe.

On older trains this is with relais boards, on new trains this is more computer and makes more compact.

#10 User is offline   darwins 

  • Superintendant
  • Group: Posts: Elite Member
  • Posts: 1,559
  • Joined: 25-September 17
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 27 April 2025 - 07:33 AM

Is it a TCS function or not? That can be argued both ways.
TCS systems require this functionality so that brake takes priority over power.
However such systems are independent and operate outside of formal cab signalling or driver vigilance devices, for example if brake pipe pressure was lost due to a broken hose, divided train or brake application by the guard.

This is a simple description of real life operation in UK taken from the Driver's Manual for a.c. electric locomotives.

https://i.imgur.com/WppoaWk.jpeg

It was previously easy to include in the brake section of an eng file using:

ORTSDoesVacuumBrakeCutPower ( 1 )
ORTSBrakeCutsPowerAtBrakePipePressure ( 12.5inHg )
ORTSBrakeRestoresPowerAtBrakePipePressure ( 16inHg )

DoesBrakeCutPower ( 1 )
ORTSBrakeCutsPowerAtBrakePipePressure ( 3.0bar )
ORTSBrakeRestoresPowerAtBrakePipePressure ( 4.0bar )

#11 User is offline   cesarbl 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 582
  • Joined: 30-March 20
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 27 April 2025 - 09:26 AM

Quote

Is it a TCS function or not? That can be argued both ways.


Yes, but in OR we did a huge mistake because it is a TCS function for air brakes (this was the initial implementation) but not for vacuum brakes (for which it was implemented later). This is obviously bad, but we should first agree on how to fix it without breaking compatibility with TCS scripts.

Quote

It was previously easy to include in the brake section of an eng file using:

ORTSDoesVacuumBrakeCutPower ( 1 )
ORTSBrakeCutsPowerAtBrakePipePressure ( 12.5inHg )
ORTSBrakeRestoresPowerAtBrakePipePressure ( 16inHg )

DoesBrakeCutPower ( 1 )
ORTSBrakeCutsPowerAtBrakePipePressure ( 3.0bar )
ORTSBrakeRestoresPowerAtBrakePipePressure ( 4.0bar )


ORTSBrakeCutsPowerAtBrakePipePressure never worked for air brakes, because the logic was duplicated elsewhere for vacuum brakes instead of unifying both implementations. The rest of parameters should still work.

Quote

However such systems are independent and operate outside of formal cab signalling or driver vigilance devices, for example if brake pipe pressure was lost due to a broken hose, divided train or brake application by the guard.

I don't really follow this argument, the system that cuts traction when doors are open is also independent from cab signalling, but it is clearly something that falls in the TCS subsystem.

Quote

This is a simple description of real life operation in UK taken from the Driver's Manual for a.c. electric locomotives.

Given that description, I think that the detection itself should be performed at the brake system level (so the TCS doesn't need to know about different brake systems such as vacuum, EP-only...) and then the traction cut-off command be sent to TCS (so it can e.g. allow traction in some situations, or disable traction until traction command is cancelled).

Now we only need to find an elegant solution that also preserves compatibility with existing TCS scripts.

#12 User is offline   cesarbl 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 582
  • Joined: 30-March 20
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 27 April 2025 - 10:58 AM

I uploaded a PR with my suggested solution, which implements the detection in the brake system and sends the request to the TCS. Compatibility is preserved with a somewhat ugly solution, but it should work.

#13 User is offline   Stijn D.C. 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 565
  • Joined: 20-August 16
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 03 July 2025 - 10:05 AM

Hello,


Have someone test with Cruisecontrol on, and use trainbrake?


Becauze if i use cruisecontrol and traction is like example 100%, and i give brakeimpuls or brake %, there comes a traction "cut"


I use this tokens on .eng file for cruisecontrol on a TGV with combined control:

	ORTSCruiseControl (
		SpeedRegulatorEquipped ( True )
		HasProportionalSpeedSelector ( True )
		MaxForceSteps ( 20 )
		SpeedRegulatorMaxForcePercentUnits ( True )
		SpeedSelectorStepTimeSeconds ( 0.15 ) comment (** how fast the selected speed lever adds speed, 0.3 is one step in 0.3 seconds **)
		DynamicBrakeMaxForceAtSelectorStep ( 20 ) comment (** the brake will reach 100% at this step, the lower step the max brake percent will be also lower **)
  		KeepSelectedSpeedWhenManualModeSet ( False )
		NominalSpeedStep ( 5 ) comment (** when pressing Shift+A or Shift+D how many speed units should the selected speed change **)
		UseThrottle ( False ) comment (** recommended False for electric locos, true for diesel **)
		UseThrottleInCombinedControl ( True ) comment (** throttle is used as force selector or speed selector even if in combined control **)
		UseThrottleAsForceSelector ( True )
		StartReducingSpeedDelta ( 0.5 ) (** the lower number, the sooner the regulator will decrease power **)
		StartReducingSpeedDeltaDownwards ( 1.0 ) (** the lower number, the sooner the regulator will decrease power when dynamically braking**)
		ForceRegulatorAutoWhenNonZeroSpeedSelected ( False )
		ForceRegulatorAutoWhenNonZeroForceSelected ( False )
		ForceRegulatorAutoWhenNonZeroSpeedSelectedAndThrottleAtZero ( False )
		MaxForceKeepSelectedStepWhenManualModeSet ( True )
		ForceResetRequiredAfterBraking ( False )
		ForceResetIncludeDynamicBrake ( False )
		ResetForceAfterAnyBraking ( False )
		DynamicBrakeIsSelectedForceDependant ( False )
		Options ( "RegulatorManual, RegulatorAuto, SelectorOn, StartFromZero, EngageForceOnNonZeroSpeed" )
		ThrottleFullRangeIncreaseTimeSeconds ( 10 ) comment (** time in seconds needed for the regulator to reach 0-100% of power **)
		ThrottleFullRangeDecreaseTimeSeconds ( 10 ) comment (** time in seconds needed for the regulator to reach 100-0% of power **)
		DynamicBrakeFullRangeIncreaseTimeSeconds ( 5 ) comment ( ** same as above, but for dynamic braking ** )
		DynamicBrakeFullRangeDecreaseTimeSeconds ( 5 ) comment ( ** same as above, but for dynamic braking ** )
		DefaultForceStep ( 0 )
		DisableCruiseControlOnThrottleAndZeroSpeed ( False ) comment (** if train is stationary and throttle is increased and CC is still in auto, this will revert the mode to manual **)
		DisableCruiseControlOnThrottleAndZeroForce ( False ) comment (** if train is moving and throttle is increased and CC is still in auto and selected force is zero, this will revert the mode to manual **)
		DisableCruiseControlOnThrottleAndZeroForceAndZeroSpeed ( True ) omment (** enables manual if moving throttle or combined control when selected force and selected speed are at zero **)
		DynamicBrakeCommandHasPriorityOverCruiseControl ( True )
		DoComputeNumberOfAxles ( True )
		HasIndependentThrottleDynamicBrakeLever ( False )
	)




First we must know who have this too, when you brake when Cruisecontrol is on. With cruisecontrol "off" on manual mode, i have no traction "cut" anymore.


If other users this traction "cut" have too on cruiscontrol mode, maybe solution can be find on Cruisecontrol.cs


It is just an brainstorming...

#14 User is offline   cesarbl 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 582
  • Joined: 30-March 20
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 04 July 2025 - 12:39 AM

Check the manual, you have the tokens TrainBrakeCommandHasPriorityOverAcceleratingCruiseControl and TrainBrakeCommandHasPriorityOverCruiseControl which achieve what you want if you set them to false.

#15 User is offline   Stijn D.C. 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 565
  • Joined: 20-August 16
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 04 July 2025 - 02:54 AM

So you mean that this tokens do the "tractioncut"?



If this can be on Cruisecontrol, you have maybe solution/source for program the tractioncut for the Openrailscode, if there is no cruisecontrol...






Greetz,

Stijn

  • 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