Page 9 sur 11

Re: DR5000, Rocrail et module de rétrosignalisation

MessagePosté: 26 Jan 2022, 20:57
par Nonodudu76
Bonjour
Normalement, dans un horaire il n'y a pas besoin de la condition itinéraire.
Il faut aller dans le menu horaire, onglet Destinations, sélectionner la ligne correspondant à l'endroit où déclencher l'action, puis cliquer sur le bouton action.
Dans ton cas, au départ, sélectionner le premier lieu, ligne 1, puis cliquer sur action. Pour le délai avant déclenchement, c'est comme d'habitude. Il faut mettre un temps dans Minuterie.

Re: DR5000, Rocrail et module de rétrosignalisation

MessagePosté: 28 Jan 2022, 08:27
par bengae
efel a écrit:
bengae a écrit:...
Encore une fois j'espère être assez claire :siffle:

Benoit

Bof...
Il faudrait que tu joignes ton plan.xml avec, pour commencer 1 cas qui ne fonctionne pas...
Par ailleurs, j'ai constaté qu'il faut souvent mettre des retards (100ms...)à des actions pour qu'elles soient prises en compte.
Tu peux aussi faire un tour sur le forum rocrail..


Bonjour efel!

Merci pour la suggestion! La minuterie est effectivement une bonne solution. La limite cependant est de 300000ms ce qui pose problème pour des actions à effectuer pour passer à l'étape suivante d'une ligne horaire qui dépasse les 5 minutes d'attente.

voici le plan du réseau à l'heure actuelle :

plan.xml
(393.37 Kio) Téléchargé 89 fois


Par contre sur Rocrail, il est nommé ben.1 mais la sauvegarde dernièrement effectuée correspond à ce fichier...

Voici un exemple qui ne fonctionne pas :

Condition annonce.png


Il s'agit d'une condition pour avoir l'action au moment ou un itinéraire se forme. La seule condition qui fonctionne bien sur mon réseau est l'extinction des feux PN ou l'annonce de terminus qui s'effectue quand l'itinéraire concerné est "open". C'est la seule condition qui fonctionne...

Pour continuer mon "apprentissage", je suis effectivement aussi actif sur le forum Rocrail.

Benoit

Re: DR5000, Rocrail et module de rétrosignalisation

MessagePosté: 28 Jan 2022, 09:14
par bengae
Nonodudu76 a écrit:Bonjour
Normalement, dans un horaire il n'y a pas besoin de la condition itinéraire.
Il faut aller dans le menu horaire, onglet Destinations, sélectionner la ligne correspondant à l'endroit où déclencher l'action, puis cliquer sur le bouton action.
Dans ton cas, au départ, sélectionner le premier lieu, ligne 1, puis cliquer sur action. Pour le délai avant déclenchement, c'est comme d'habitude. Il faut mettre un temps dans Minuterie.


Merci encore pour vos réponses. :cool:
Mais comme j'ai des temps d'attente qui dépasse les 5 minutes, la minuterie me limite à 300000ms, et je suis obligé de créer la même action plusieurs fois avec une temporisation différente.



C'est le cas pour les actions démarrage et arrêt des locos.
Cependant j'ai un léger décalage entre l'horaire prévu et l'horloge Rocrail qui déclenche cet horaire (donc lancement de l'itinéraire + actions correspondantes) avec au moins 15 secondes de retard et même plus en fin de scénario : c'est embêtant pour les actions temporisées et minutées.
Ceci dit le scénario se déroule tout de même assez bien mis à part les 2, 3 petits problèmes non résolus à l'heure actuelle. :)

Merci encore!

Benoit

Re: DR5000, Rocrail et module de rétrosignalisation

MessagePosté: 29 Jan 2022, 07:49
par PaulXpress
bengae a écrit:Il s'agit d'une condition pour avoir l'action au moment ou un itinéraire se forme.Benoit

Bonjour Benoit,

J'ai eu du mal à comprendre ce que tu voulais faire et de plus ton fichier plan ne contient pas l'exemple cité.
Les actions sont exécutées aux changements d'état des objets appelants.
Ton problème, tu es entrain d'exécuter le script de changement d'état de l'itinéraire, dans ce script tu appels un autre script (action) et dans ce dernier, tu fais référence à l'état du script appelant mais, l'état initial n'est plus valable (changement d'état) et l'état final n'est pas encore déterminé puisque le script appelant n'est pas encore terminé.
Il faut que tu fasses référence à un objet extérieur, le changement d'état de l'itinéraire a lieu à l'établissement et à la libération de celui-ci. Par exemple : pour une annonce de départ, tu peux prendre comme condition, l'occupation du canton de départ et pour une annonce d'arrivée, l'occupation du canton d'arrivée.
Autre problème, les temporisations, celles-ci doivent toujours être les plus courtes possibles. Une temporisation est très gourmande en temps CPU ce qui ralenti l'exécution du programme et risque à terme d'être source de problèmes.

Jean-Paul

Re: DR5000, Rocrail et module de rétrosignalisation

MessagePosté: 29 Jan 2022, 09:48
par bengae
Bonjour Jean-Paul.

Pour le plan je ne doit pas partager le bon plan, mais je ne sais pas où trouver le bon plan ...
Maintenant je comprend ce que tu dis. Mais quand un train occupe en attente un bloc disons 3 minutes, si je désire une annonce de départ (sans utiliser de minuterie) avec la condition bloc occupé, l'annonce s'exécutera au début du temps d'attente puisque le bloc est occupé. Puis-je pour le changement de ligne horaire utiliser l'heure de départ d'une ligne et mettre la même heure d'arrivée sur la ligne suivante (comme ici la ligne 1 et 2 (sauf que là il n'y a pas les 3 minutes d'attente, mais c'est pour l'exemple))?

ligne horaire.png


Je pourrais alors mettre l'action "annonce de départ" sur la ligne 2 pour déclencher l'annonce à 00:01 qui correspondrait à l'heure de départ de la ligne 1 (et qui serait donc identique à celle d'arrivée de l'autre ligne), sachant que pour les autres actions prévue à la ligne 2 j'utiliserait la condition d'occupation de bloc.

En tout cas si j'ai bien compris le problème quand on ajoute une condition itinéraire "closed", c'est que l'action devrait se lancer à l'horaire arrivée de la ligne horaire concernée (si pas de minuterie), à condition que la condition soit active, ce qui n'est pas le cas puisque cette condition sera active au départ du train donc à l'heure de départ de cette ligne horaire. :siffle:

:gne: je comprend vite, faut juste m'expliquer longtemps :D

Benoit

Re: DR5000, Rocrail et module de rétrosignalisation

MessagePosté: 01 Fév 2022, 20:20
par bengae
Bonjour tout le monde!

Un petit point sur le sujet:

* Simulation de 2 heures de circulation opérationnelle et très satisfaisante dans l'ensemble : horaires, actions temporisées et minutées, signalisation (disons celle du module principal qui sera complète cette semaine normalement, le module 1 en étant pour l'instant dépourvu), tout fonctionne pour ainsi dire à la seconde avec l'ensemble des motrices.

* la seule condition d'itinéraire qui fonctionne est le dit itinéraire ou la route, avec l'état "open", par exemple pour arrêter les feux PN lors de l'arrivée à destination du train. Pour le reste j'utilise beaucoup les minuteries, ce qui ne pose, pour l'instant, pas de problème (pour les annonces, sifflet, klaxon, état de signalisation, fonctions diverses de locos).

* dans la configuration actuelle le seul bémol serait de réaliser des actions lorsque le train attend plus de 5 minutes dans un bloc. Sur l'ensemble, cela reste peu gênant et le plaisir du scénario de 2 h est au rendez-vous!!

Au final à ce jour, Rocrail est validé pour moi et je suis très satisfait du rendu. Ceci dit je continue les tests pour trouver la solution à mes problèmes!!

Benoit

Re: DR5000, Rocrail et module de rétrosignalisation

MessagePosté: 02 Fév 2022, 00:26
par efel
bengae a écrit:.... Mais quand un train occupe en attente un bloc disons 3 minutes, si je désire une annonce de départ (sans utiliser de minuterie) avec la condition bloc occupé, l'annonce s'exécutera au début du temps d'attente puisque le bloc est occupé. ..
Benoit

Bonsoir,
Tu peux essayer de mettre l'annonce dans l'action de l’itinéraire de départ (itinéraire/général/action).
On aura alors, à l'heure de départ, cet itinéraire qui deviendra "locked", ce qui déclenchera l'annonce. La loco, elle ne démarrera qu’après un temps prévu dans ses propriétés (utiliser un départ différé).

Re: DR5000, Rocrail et module de rétrosignalisation

MessagePosté: 02 Fév 2022, 12:26
par bengae
efel a écrit:
bengae a écrit:.... Mais quand un train occupe en attente un bloc disons 3 minutes, si je désire une annonce de départ (sans utiliser de minuterie) avec la condition bloc occupé, l'annonce s'exécutera au début du temps d'attente puisque le bloc est occupé. ..
Benoit

Bonsoir,
Tu peux essayer de mettre l'annonce dans l'action de l’itinéraire de départ (itinéraire/général/action).
On aura alors, à l'heure de départ, cet itinéraire qui deviendra "locked", ce qui déclenchera l'annonce. La loco, elle ne démarrera qu’après un temps prévu dans ses propriétés (utiliser un départ différé).


Je n'avais pas pensé à ça! Merci beaucoup et effectivement ça marche très bien comme ça!!

J'avais remarqué qu'en fait aucune condition dans les lignes horaires ne fonctionne. Même la condition itinéraire "open" n'avait aucune utilité puisque d'office les actions ajoutées se déclenchent à l'arrivée du train à destination.

Action.png


Je n'arrive pas à savoir pourquoi je n'ai rien dans le menu déroulant "état" dans ce cas de figure.

Cependant ta technique est très bien et opérationnelle.

Merci :cool:

Benoit

Re: DR5000, Rocrail et module de rétrosignalisation

MessagePosté: 02 Fév 2022, 14:07
par efel
bengae a écrit:...
Je n'arrive pas à savoir pourquoi je n'ai rien dans le menu déroulant "état" dans ce cas de figure.
..
Benoit

Je crois qu'il n'y a pas le choix: l'état est soit la départ de l'horaire s'il s'agit de la première ligne, soit l'arrivée dans le bloc pour les lignes suivantes.

Re: DR5000, Rocrail et module de rétrosignalisation

MessagePosté: 02 Fév 2022, 14:07
par Nonodudu76
bengae a écrit:Je n'arrive pas à savoir pourquoi je n'ai rien dans le menu déroulant "état" dans ce cas de figure.
Cependant ta technique est très bien et opérationnelle.
Benoit
Bonjour
C'est la même fenêtre pour toutes les actions configurées dans Rocrail. Son contenu s'adapte selon le contexte, et dans ce cas, il n'y en a pas.

Le fait de déclencher l'action au niveau de l'itinéraire fonctionne, avec le léger inconvénient qu'elle va se déclencher à chaque circulation empruntant cet itinéraire, que ce soit dans cet horaire, mais aussi dans un autre ou dans le mode aquarium.
Si c'est une action commune, comme un sifflet avant un tunnel ou une fermeture de PN, c'est bon.
Si elle doit être personnalisée à une loco ou un type de train (ou autre), cela est plus gênant.
On peut par exemple vouloir créer des délais d'annonce au PN différents selon la vitesse du train, faire des annonces vocales en fonction du type de train, etc...

Il existe une solution pour la personnaliser. Voici comment faire :
1) Créer un bouton sur le plan (TCO). Rocrail appelle ça une sortie. Exemple : "co_action_sonnerie"
2) Créer 2 actions : Une qui va mettre ce bouton sur "on" et l'autre sur "off".
Objets/Actions
  • Type : Sortie
  • Identifiant : co_action_sonnerie
  • Commande : on (pour l'action "on"), et off (pour l'action "off")
3) Dans l'horaire, au niveau de la gare d'arrêt, programmer l'action qui met le bouton sur "on"
4) Au niveau de l'itinéraire de sortie, déclencher 2 actions consécutives sur l'état "open":
  • Celle que tu voulais faire initialement, avec en condition que la sortie (bouton) "co_action_sonnerie" soit sur "on"
  • Celle qui va remettre le bouton sur "off"
De cette manière, l'action va se déclencher uniquement pour cet itinéraire. Ne pas oublier l'action qui remet le bouton sur "off". Ainsi la prochaine circulation qui empruntra cet itinéraire sans que ce soit dans cet horaire ne déclenchera pas l'action.
Il est possible d'ajouter des conditions dans l'action de l'itinéraire comme le n° de loco, le type de train, etc...
Pour avoir des actions ou des délais différents, il faut dans ce cas créer autant de boutons que d'actions, et autant d'action "on/off" correspondantes.