simonjackson1964 Posted November 16, 2021 Posted November 16, 2021 (edited) I'm trying think of a way to do something at V7. I'm sure there is an easy way that I'm just not seeing, so I thought I'd ask... In real life, a railway line may have a speed limit of 120 mph (200 kph) but a locomotive towing a long and heavy goods train may well only be capable of 50 mph (80 kph). But then there might be a length of track on which the speed limit is 30 mph (50 kph). What I'm trying to do is put a physical limit on how fast certain trains can go. Same would apply to road vehicles, where the Lambo is capable of 276 km/h (171 mph), while the Trabant can just about get up to 100 km/h (62 mph) downhill with a following wind and two people peddling in the back! We can change the acceleration and break power, but on a straight length of track that's long enough with nothing in the way the heaviest of vehicles will unrealistically accelerate to the track speed. (Incidentally, I'm still trying to decide whether the apparent limits of 80 kph and 50 kph are realistic for German railways and if so whether that says something about the quality of the track, or the quality of the drivers... Given that the French TGV has a top speed of 200 mph, 320 kph, I find it hard to believe that German trains are limited to the speed of a 50cc Moped!) Anyway... What I've tried so far is putting a "Max Speed" integer variable on the locomotive and whenever any track contact triggers, check the vehicles absolute speed against that value and if it is higher set it back down. The problem with that is that as long as the train is on that track contact, the "Automatic Acceleration" property is active, so the speed gets set straight backup again if the contact is on a signal. So, I tried changing the acceleration value on the signal. That worked, it kept the long heavy freight pootling along at 30 kph (18 mph). But there's no way to set it back, because the signal is on a different setting when the train leaves the track contact, and the last thing you want is to set the "accelerate to" value to 120 when the signal is on HP0! About all I can think of is as the train leaves the track contact, set it to clear, change the value, set it to slow, change the value and set it back to off before anyone notices. The program should do it quickly enough that it would be visible as a mere flicker if that. But what I really want is something more elegant: When the speed of the vehicle changes, if the speed is greater than the maximum set it to the maximum. But I cannot find a way of doing that first part. How do I detect that the property "Target Speed(Absolute)" has changed? Edited November 17, 2021 by simonjackson1964 typo
simonjackson1964 Posted November 25, 2021 Author Posted November 25, 2021 I guess no-one has an answer to this? Everything I've thought of could actually be done better at V5!
Timba Posted November 26, 2021 Posted November 26, 2021 Hi @simonjackson1964 why don't you disable "automatic acceleration"? That's what I would do. Control the speed of each train via track contacts only. Just leave the automatic deceleration on to stop trains if the signal shows HP0. Also, you need to use the event "signal switching" to get the train going whenever it shows HP1. I'm sure it should work, however, no time to test it right now because I'm on my way to the bedroom. Regards Timba
simonjackson1964 Posted November 26, 2021 Author Posted November 26, 2021 Which is basically what I would have done at V5.
Timba Posted November 26, 2021 Posted November 26, 2021 Nobody keeps you from working V5-style on a V7-layout.
simonjackson1964 Posted November 27, 2021 Author Posted November 27, 2021 True... but it would be nice to have a more elegant way of doing it.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now