Seite drucken - Wielslip voorkomen

windigipet.de

Win-Digipet - international => Win-Digipet Nederlandstalig forum => Thema gestartet von: Rupert van Swol in 31. Dezember 2019, 18:10:16

Titel: Wielslip voorkomen
Beitrag von: Rupert van Swol in 31. Dezember 2019, 18:10:16
Beste forum leden
Hoe kan ik in WDP een rijweg automatisch laten opheffen als een trein b.v. vaststaat in een traject,  nadat het vertrokken is
Dit om schade aan de rails te voorkomen   :-[ . zie foto

met vriendelijke groet.
Rupert
Titel: Re: Wielslip voorkomen
Beitrag von: Hans Biere in 01. Januar 2020, 11:35:26
Goedemorgen Rupert,

gebruik hiervoor functietoets F7.
Titel: Re: Wielslip voorkomen
Beitrag von: Rupert van Swol in 01. Januar 2020, 11:58:15
Ook goedemorgen Hans,
Bedankt voor het meekijken, maar F7 is niet automatisch dat is manueel.
Ik zoek echt een software oplossing,
WDP kijkt vooruit of de rijweg vrij is voor een treinrit, maar controleert niet of de trein vertrokken is om dat een Preiser spoor werker is omgevallen en de trein blokkeert.
Ik heb al iets werkend , op basis van een teller,bezetmelders, tijdsduur die in het traject aanwezig zijn.
Dit een leuk visueel gezicht op het beeldscherm zo een mee reizende  1 naar het bestemming blok, maar mooi is anders.
Ik kijk meer naar het gebeuren op de baan niet op het beeldscherm.

En nog de beste wensen voor 2020 Hans
met vriendelijke groet,
R van Swol
Titel: Re: Wielslip voorkomen
Beitrag von: Hans Biere in 01. Januar 2020, 12:21:11
Dag Rupert,

inderdaad, wat ik aandroeg is niet automatisch.

Ik begrijp wat je bedoelt maar zie even geen softwarematige oplossing. Er is op dit forum kennis en kunde genoeg dus het gaat vast goed komen.

Last but not least: ook jij een gezond en goed nieuw jaar 2020!
Titel: Re: Wielslip voorkomen
Beitrag von: B.Doorduin in 01. Januar 2020, 13:40:22
Hoi Rupert

Ik probeer mee te denken, misschien zit ik er naast en bedoel je dit niet..... Volgens mij zit er een tijdsduur op elke rijweg die actief is... Als deze actieve rijweg niet na een bepaalde tijd is voltooid dan springt deze (in de ZugFahrten Ablauf Inspector) van een groen blokje op een rood blokje met een zandloper er in. Je moet deze rijweg dan weer handmatig activeren
Ik weet alleen niet of, en hoe die wachttijd beïnvloed kan worden.

Ik hoop dat je hier iets aan hebt.

Ben benieuwd naar jouw uiteindelijke oplossing.
Titel: Re: Wielslip voorkomen
Beitrag von: Rupert van Swol in 02. Januar 2020, 18:56:55
Beste Bas,

Dank voor je bijdragen, Helaas dacht ik ook in die richting, maar het is slecht een melding indien de ingestelde wacht tijd  voor een route wordt overschreden.
als voorbeeld,  bij de opdracht wacht 3 minuten na aankomst en vervolg dan de ( volgende ) route.
Indien dit niet aan de voorwaarden kan worden voldaan dan komt het rode icoon op actief te staan.

In mijn geval is de trein volgens de software vertrokken , de rijweg is van start tot doel klaar gelegd,  alleen    WDP is vervolgens aan het  wachten op de status verandering van het doelcontact.


In een ander vergelijkbaar Duits treinsoftware pakket , zit deze bewaking er wel standaard in, ik hoefde er niks voor te doen.

Ik ben nu bezig in de Dispatcher ( ik gebruik de Engelse uitvoering van WDP ) daar zit zo te zien meer controle mogelijkheid in.
Ik zit te denken aan een voorwaarden  " stop "  treinroute ",  als start Bezetmelder na xx milliseconden seconden geen vrij toont toont en de eerst volgende bezetmelder niet bezet toon na xx milliseconden van de interne starttijd.

Als het werkt zal ik een wel een PDF met uitleg maken op basis van de Nederlandse WDP versie.
met vriendelijke groet.
Rupert van Swol



Titel: Re: Wielslip voorkomen
Beitrag von: Hans Biere in 03. Januar 2020, 14:26:12
Zitat von: Moba EH in 02. Januar 2020, 18:56:55Als het werkt zal ik een wel een PDF met uitleg maken op basis van de Nederlandse WDP versie.

Succes, Rupert!

Mocht je iets werkend hebben ben ik ook zeer benieuwd; lijkt mij een handige optie.

Intussen probeer ik iets in het handboek te vinden wat dit vraagstuk ook op zou kunnen lossen.
Titel: Re: Wielslip voorkomen
Beitrag von: Rupert van Swol in 03. Januar 2020, 15:09:29
Dank je Hans voor het meedenken en kijken.
In de Engelse handleiding heb ik het tot nu toe niet kunnen vinden, en die is door Markus zijn vader gedaan.

Het wordt nu langzamerhand ook tijd dat de importeur Bentink met een Nederlandse vertaling gaat komen.
Peterlinn heeft niet voor niks een Engelse handleiding gemaakt, daar is hij als verkoper in Engeland van het pakket verplicht, ook mede gezien hij geen Engelse vertegenwoordiger heeft in de UK.

Ik heb in de Blue notes van de Europese wetgeving na laten pluizen , er is en bepaling opgenomen dat een handleiding verplichting is in de taal van het land waar het product verkocht wordt, het hoeft niet op papier, het mag ook elektronisch , maar op een verzoek moet ook een papieren editie verstrekt worden.


met vriendelijke groeten,
Rupert van Swol
Titel: Re: Wielslip voorkomen
Beitrag von: Stefan Lersch in 03. Januar 2020, 15:48:46
Hallo Rupert,

warum so kompliziert? Ersetze deine Zugfahrten (in der englischen Version: tours) durch Fahrstraßen (routes) mit Anschlussfahrten (follow-up way). Wichtig: Anschlussfahrten (follow-up way) und nicht Folgefahrten (follow-up route/tour)!

Du trägst deine Fahrstraßen im Zugfahrtenautomatik-Editor (tour-automatic-editor) ein und zu jeder Fahrstraße trägst du eine oder mehrere Anschlussfahrten ein. Ist nun eine Anschlussfahrt blockiert, wählt WDP automatisch die nächstmögliche. Dazu brauchst du keinen STW (dipatcher), Schalter (switch) oder sonstiges. Ist gar keine frei, wird die Lok wieder frei gegeben und wartet ganz normal auf die nächste frei Fahrstraße.


Waarom zo gecompliceerd? Vervang jou treinritten door rijwegen met aansluitritten. Belangrijk: aansluitritten en geen vervolgritten.
Je geeft je rijwegen in de treinritten-automatiek in, en voor iedere rijweg één of meer aansluitritten. Is er nu een aansluitrit geblokkeerd, kiest WDP automatisch de volgende die mogelijk is. Daarvoor hoef je niet de stelwerkwachter, schakelaar of iets anders te gebruiken. Is er helemaal geen vrij, wordt de loc weer vrijgegeven en wacht heel normaal op de volgende vrije rijweg.

Op verzoek vertaald, Henk v.d.Oosterkamp
Titel: Re: Wielslip voorkomen
Beitrag von: Rupert van Swol in 03. Januar 2020, 22:24:06
Hallo Stephan,
Das Problem ist, wie eine gestartete Strecke automatisch gestoppt wird, wenn der Zug aufgrund einer externen Ursache (preiserlin auf der Schiene) das Ziel nicht erreicht.
Dadurch habe ich einen VT98 von der Firma Lenz verloren.
es sieht so aus, als würde nicht überwacht, ob der Zug nach so vielen Sekunden an der Zielrückmeldung ankommt oder ob der Abfahrtsmelder losgelassen wird.
met vriendelijke groet,
Rupert van Swol
Titel: Re: Wielslip voorkomen
Beitrag von: Stefan Lersch in 04. Januar 2020, 13:34:18
Hallo Rupert,


ach so, das kann WDP natürlich auch! Siehe Handbuch Kapitel 3.10.7 "Sicherheitskontakt". Schau dir das mal bitte an.
Titel: Re: Wielslip voorkomen
Beitrag von: Rupert van Swol in 04. Januar 2020, 15:39:11
Hallo Stephan,
Es ist Zeit, dass der niederländische Importeur ein niederländisches Handbuch erstellt.

Vielen Dank für diesen Hinweis, er war in den Systemeinstellungen ordentlich aktiv, aber in der Registerkarte Optionen Fahrstrasse  wurde keine Sicherheitsrückmeldung mit dem zeitgebundenen Auslöser eingetragen.

Werden Sie in WDP 2020 viel sicherer.

Kind regards
Rupert van Swol
Titel: Re: Wielslip voorkomen
Beitrag von: B.Doorduin in 04. Januar 2020, 16:08:54
Heren,

Kunnen jullie de reacties aub in het Nederlands plaatsen? Ik ben heel geïnteresseerd in deze informatie-uitwisseling maar kan dit nu niet volgen  :-[ :-[... omdat mijn Duits nu eenmaal niet erg best is.

Alvast bedankt voor de moeite. :)
Titel: Re: Wielslip voorkomen
Beitrag von: H.v.d.Oosterkamp in 04. Januar 2020, 18:32:51
Beste WDP'ers.

Het stukje van Stefan Lersch, hier enkele bijdragen boven, is door mij vertaald.

Met groet, Henk
Titel: Re: Wielslip voorkomen
Beitrag von: B.Doorduin in 04. Januar 2020, 18:55:51
Bedankt Henk.
Titel: Re: Wielslip voorkomen
Beitrag von: Rupert van Swol in 05. Januar 2020, 19:40:25
Hoi Bas even een toelichting van mij,

Ik ben niet zo bekend met WDP maar heb in het verre verleden voor een andere NL  trein pakket een paar dingen ontwikkeld. Let op DOS tijdperk
Met name voor het stoppen met 1 melder in een blok heb ik onder ander de dynamische remweg ontwikkeld.
Het principe is vrij eenvoudig,  je weet de lengte van een bezetmelder en vervolgens komt er een locomotief en meet je het tijdverschil tussen dat de melder aangaat en weer uitgaat. De locomotief moet 30 km/u rijden dus dan is op voorhand uit te rekenen hoe lang de bezetmelder op aan moet staan, Is hij korter aan dan verwacht dan rijd de trein/lok te snel en bij langer aan dan verwacht dan rijdt de lok te langzaam. het verschil tussen verwacht en gemeten noem ik even de drift van de motor. De drift is niet iets wat een vaste waarde bevat, temperatuur, slijtage alles wat de motor hindert, vieze rails , pluisjes in tandwielen  beïnvloed de drift.
Als ik deze drift wegschrijft in een bestandje welke bezetmelder en locomotief  gebonden is,  beter is gezegd Decoder gebonden is , dan kan je de slechtslopende lok prima laten stoppen, aangezien de rijsnelheid na aanpassing altijd overeenkomt met de gevraagde rijsnelheid. Dan is de remweg tot het stoppunt ook zeer goed te berekenen.
In WDP heb je de mogelijkheid om bij elke terug melder een lengte in te voeren dit  tot op 1 tiende van cm.
WDP kan alleen correct stoppen als de snelheid voor dat het remmen begint constant is. Maar m.i is dit niet een gemeten snelheid vanuit de vorige bezetmelder. het is dus niet gecorrigeerd. Dus regelmatig ijken is een noodzaak in WDP.

Wel de volgende stap is veiligheid
Nu heb je een route die uit meerdere rijwegen bestaan en die rijwegen hebben allemaal een lengte lees een bestandje van de laatst gemeten tijd die de lok nodig had om de bezetmelder af te rijden , dan is het heel eenvoudig een veiligheidscontrole te bouwen  , tel alle gemeten tijden bij elkaar op en dat deel je door de som van de tijden.  dan heb je al de verwachtte reistijd voor dat traject bij de Start . Dat is allemaal op basis van de klok snelheid van de Interne databus.
Wat als de trein te laat aan komt in het doel contact of zelfs helemaal niet , dan is er iets duidelijk fout.
Oorzaak 1 wissel fout ,
oorzaak twee lok zit vast.
Oorzaak 1 lok is de verkeerde richting gaan rijden na een foutje in een ontkoppeling profiel , dus kuiltje graven in de rails, Mijn schade aan de VT98
Bij een wisselfout kunnen twee treinen betrokken raken die eigenlijk moeten stoppen.
Bij de lok die het verkeerde spoor ingaat krijgt een directe stop op basis van een tijdsoverschrijding van de vervolgmelders in de rijweg die hadden al op bezet moet komen maar blijven op uit. kan ook een bezetmelder van de wissel zijn. ( niet handig ) als er parallel een andere trein rijdt die over de wissel gaat. 
De andere trein die een spooktrein krijgt die willen we ook laten stoppen.( is een optie )
Immers de bezetmelders zijn bekend van de rijweg;
de verwachte aankomst tijd is bekend.
Als opeens een bezetmelder op actief  komt die in de rijweg is opgenomen, kan de trein m.i gewoon doorrijden tot het bezette blok.

Mijn fout is,  ik had het veiligheidssysteem in WDP systeem instelling wel actief gezet, vanuit gaande dat er een soort van interne bewaking zou zijn.

Nee dus,  ik had 460 blz door moeten lezen in de Nederlands handleiding die door de importeur verstrekt zou worden.

Blijkt achteraf dat vervolgens per rijweg een z.g.n. veiligheids- contacten moeten worden toegewezen met daarbij ook een tijdsduur. dat zijn er best veel geworden.

Dit is echt een gemiste kans in WDP , immers alle ingevoerde data door de gebruiker is aanwezig , tijdmetingen kunnen automatisch worden gedaan om een automatisch beveiliging systeem in te bouwen.

Ik snap ook waarom het niet gedaan is , maar dat is weer een ander verhaal.

met vriendelijke groet,
Rupert van Swol

PS
voor de oude garde toen we nog donker haar of blond waren,  de oude code uit 1998 erbij gehaald,



Implementation

Here is the code that computes if we need to brake.

float Driver::getBrake(tCarElt* car)
{
    tTrackSeg *segptr = car->_trkPos.seg;
    float currentspeedsqr = car->_speed_x*car->_speed_x;
    float mu = segptr->surface->kFriction;
    float maxlookaheaddist = currentspeedsqr/(2.0*mu*G);

maxlookaheddist is the distance we have to check (formula with special case v2 = 0).

    float lookaheaddist = getDistToSegEnd(car);

lookaheaddist holds the distance we have already checked. First we check if we need to brake for a speed limit on the end of the current segment.

    float allowedspeed = getAllowedSpeed(segptr);
    if (allowedspeed < car->_speed_x) return 1.0;

Compute the allowed speed on the current segment. We check our speed, and if we are too fast we brake, else we continue with the algorithm. Here you can improve the return value, it's a bit tough to brake full (e. g. make it dependent on the speed difference).

    segptr = segptr->next;
    while (lookaheaddist < maxlookaheaddist) {

The first line moves segptr to the next segment. The guard of the loop checks if we have already checked far enough.

        allowedspeed = getAllowedSpeed(segptr);
        if (allowedspeed < car->_speed_x) {

Compute the allowed speed on the *segptr segment. If the allowed speed is smaller than the current speed, we need to investigate further.

            float allowedspeedsqr = allowedspeed*allowedspeed;
            float brakedist = (currentspeedsqr - allowedspeedsqr) / (2.0*mu*G);

Here we compute the braking distance according to the formula above.

            if (brakedist > lookaheaddist) {

Here the magic check is done. If the required distance to brake is greater than the current distance we need to brake. This works because the simulation timestep is small, so we fail the point in the worst case with ~2.0 meters. So to fix that you can add always 2 meters to the brakedist, or better a speed dependent value.

                return 1.0;
            }
        }
        lookaheaddist += segptr->length;
        segptr = segptr->next;
    }
    return 0.0;
}

The remaining code is straightforward. If we decided to brake we return 1. If we loop further we update the lookaheaddist and switch to the next segment. A comment to the return value: 1 means apply full brakes, so we have later to adjust the time

        car->ctrl.gear = 4;
        car->ctrl.brakeCmd = getBrake(car);
        if (car->ctrl.brakeCmd == 0.0) {
            car->ctrl.accelCmd = getAccel(car);
        } else {
            car->ctrl.accelCmd = 0.0;
        }

Titel: Re: Wielslip voorkomen
Beitrag von: B.Doorduin in 05. Januar 2020, 23:23:22
Hoi Rupert,

TOP!!! :) :)