Brakepipetokens not working anymore (Twinpipe) ORTSBrakeCutsPowerAtBrakePipePressure/RestoreAt..
#1
Posted 15 April 2025 - 04:38 AM
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
Posted 15 April 2025 - 09:12 AM
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
Posted 16 April 2025 - 09:05 AM
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
Posted 16 April 2025 - 10:06 AM
cesarbl, on 15 April 2025 - 09:12 AM, said:
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
Posted 16 April 2025 - 01:23 PM
#6
Posted 16 April 2025 - 02:50 PM
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
Posted 17 April 2025 - 12:57 AM
#8
Posted 17 April 2025 - 03:30 AM
cesarbl, on 16 April 2025 - 01:23 PM, said:
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
Posted 27 April 2025 - 05:56 AM
cesarbl, on 17 April 2025 - 12:57 AM, said:
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
Posted 27 April 2025 - 07:33 AM
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
Posted 27 April 2025 - 09:26 AM
Quote
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
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
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
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
Posted 27 April 2025 - 10:58 AM
#13
Posted 03 July 2025 - 10:05 AM
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...
#15
Posted 04 July 2025 - 02:54 AM
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