Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
Sign in to follow this  
henrion

Scripts pour passages à niveau

Recommended Posts

henrion    101

Bonjour

 

Je vais délaisser les signaux de rebroussement (qui fonctionnent déjà bien) pendant quelques jours pour revenir aux PN car Geluc a été confronté au problème majeur: n'avoir qu'un seul train dans l'ensemble de la zone du PN sur chaque voie. Cela est impératif car, pour que le PN fonctionne correctement dans tous les cas de figure, il faut que son compteur ne prenne que la valeur 0 ou 1 sur chaque voie. donc il ne doit y avoir qu'un seul train dans sa zone par voie.

 

Je pensais plutôt que cela pouvait provoquer des difficultés en BAL ou la succession des trains pouvait permettre d'avoir deux trains sur une même voie dans la zone d'un PN. Mais apparemment sur la ligne de Geluc, même en signaux mécaniques où je pensais que la circulation était plus fluide, cela se produit également. Mais à l'époque où j'ai rédigé le script je n'avais pas trouvé de meilleure solution.

 

Le schéma suivant montre le problème:

[attachmentid=2422]

 

En 1: le train A franchit la pédale à distance A. Le compteur du PN se met à 1 et le PN se ferme.

En 2: en ayant passé la pédale B, le compteur du PN se remet à 0 et ce dernier se rouvre.

En 3: un train B pendant ce temps franchit la pédale A et remet le compteur du PN à 1 qui donc se ferme.

En 4: le train A fini de franchir la pédale à distance B. Comme le compteur du PN est à 1, ce passage va le remettre à 0 et le PN se rouvrir alors que le train suivant arrive.

 

Cette action sur la pédale à distance B était nécessaire dans le cas où un train franchissait de la droite vers la gauche cette pédale puis faisait rebroussement sans passer le PN (en 5).

 

Geluc m'a donc demandé de faire deux pédales à distance différentes et qui ne gèrent pas l'ouverture du PN comme dans le schéma ci-dessous:

[attachmentid=2423]

Cela impose de mettre une pancarte LM avant ces pédales si il y a possibilité de rebroussement.

 

J'ai donc repris mon étude pour trouver une solution qui permette de résoudre définitivement ce problème. La solution se trouve dans le schéma un peu ésotérique ci-dessous. En fait comme je ne peux pas rajouter de messages supplémentaires puisque je suis arrivé en limite de mes 50 constantes, je vais utiliser une possibilité offerte par Kuju dans la gestion des messages. Quand on envoie un message, cela se présente sous la forme générale:

 

Call( "SendSignalMessage", message, "", 1, 1, 1 )

 

Dans cette formule il y a: "" qui est un paramètre que l'on peut définir à sa guise. On peut mettre "A", "B", "0"..... Voir même "Nicolas" ou "Carla" ou "Ségolène", cela marchera aussi bien ...mais pas mieux. Mais on va rester dans la neutralité :) .

 

Donc avec un même message, mais avec un paramètre différent, on va faire réagir le script du PN différemment.

[attachmentid=2424]

 

Cela paraît compliqué car c'est mon document de travail, mais le principe est simple.

J'ai créé 2 zones (amont et aval) en plus du compteur du PN. Si la somme de l'ensemble est 0, le PN est ouvert. Si un seul des trois est supérieur à 0 le PN se ferme.

 

Reprenons le même schéma qu'au début de ce message:

Le train A passe la pédale à distance A: il incrémente Z1 et met à 1 le compteur du PN qui se ferme.

Le train A fini de franchir la pédale B: il remet Z1 à 0 mais le compteur du PN reste à 1 donc le PN reste fermé.

Le train A commence a franchir la pédale C: il n'y a pas incrémentation dans ce sens de Z2 qui reste à 0.

Le train A a fini de franchir la pédale C: il remet le compteur du PN à 0. Les 3 zones étant à 0, le PN se rouvre.

Le train B passe la pédale A: il met Z1 à 1 et gVoie1 à 1. Le PN se referme.

Le train A finit de franchir la pédale D: Comme Z2 est à 0, il n'y a pas remise à 0 du compteur du PN qui reste fermé. Le train B passera le PN qui sera alors fermé.

 

Autre cas:un train passe de droite vers la gauche la pédale D. Z2 se met à 1 ainsi que le compteur du PN. Il fait reboussement: Z2 se remet à 0 ce qui va provoquer également la remise à 0 du compteur du PN qui va donc se rouvrir car les 3 zones seront à 0.

 

Si l'on prend un cas extrême:

Un train franchit la pédale A, met Z1 à 1 et gVoie1 à 1. Il s'arrête entre A et B bloqué par un carré car un train devant lui va venir faire rebroussement. L'autre train franchit donc la pédale D et met Z2 à 1 mais comme le compteur du PN est déjà à 1, ce dernier ne s'incrémente pas. En faisant rebroussement et en repassant D, ce dernier va mettre Z2 à 0 ainsi que le compteur du PN mais comme Z1 est à 1 le PN reste fermé.

Le train entre Aet B reprend sa marche: Z1 est à 1 et le compteur du PN est à 0. En passant la pédale B, le compteur du PN se remet à 1 puis Z1 se remet à 0 puis en ayant passé C le compteur du PN se remet à 0. Toutes les zones étant à 0, le PN se rouvre.

 

Tout le monde suit! Prenez un papier. Interrogation. :D

 

On peut multiplier les exemples mais je n'ai pas encore trouvé de cas où ce système ne fonctionne pas.

Maintenant il faut traduire ce principe de fonctionnement en langage LUA.

 

Bonne journée

 

Bernard

post-1570-1284535450_thumb.jpg

post-1570-1284535925_thumb.jpg

post-1570-1284536601_thumb.jpg

Edited by henrion

Share this post


Link to post
Share on other sites
henrion    101

les premiers essais sur une voie sont pour l'instant concluants.

Edited by henrion

Share this post


Link to post
Share on other sites
henrion    101

Bonjour

 

Après pas mal d'essais dans différentes configurations sur deux voies avec 2 trains par voie dans la zone du PN , celui-ci fonctionne parfaitement.

 

Chaque script de PN peut gérer jusqu'à 4 voies.

 

J'ai donc envoyé le tout à Geluc pour les tests finaux avant diffusion.

 

Maintenant je retourne finir les signaux de rebroussement.

 

Bernard

Share this post


Link to post
Share on other sites
Sign in to follow this  

×