Gestion des itinéraires

Bonjour en cette fin d’année 2022.

Problème à résoudre: Je ne veux alimenter une voie V1 que s’il existe un convoi sur cette dernière, afin de libérer la place. La loco est positionnée sur le contact C1 de la voie V1.
Pourquoi: la voie V1 est électrifiée (caténaires) et réservée aux locos avec pantographes. Les autres voies Vn n’ont pas de caténaire donc interdites aux locos électriques.
La voie V1 peut avoir tous types de convois tractés par des locos vapeur, diesel ou électrique.

Est-il possible de créer un itinéraire élémentaire conditionné par la présence à l’arrêt de la loco sur C1 déclenchant l’ouverture de l’alimentation de la voie V1?
Cet itinéraire sera inclus dans une séquence d’itinéraires élémentaires permettant d’accéder à la voie V1. Que se passe-il s’il n’y a pas de loco sur C1? La séquence d’actions contenues dans les itinéraires élémentaires de l’itinéraire majeur vont-elles s’exécuter?

Merci par avance de vos conseils.
ROZ

Bonjour ROZ,
Pour contribuer à répondre à ta question, j’aurais besoin de quelques précisions.
Comment sont gérés les itinéraires : avec une CS, on logiciel sur PC ?
Autres question : si je comprends bien la problématique, il s’agit de réserver l’accès à la voie 1 aux seules locos électriques, est-ce bien cela ?
Dans l’attente, meilleurs vœux pour cette nouvelle année.
Alain

Bonsoir Alain,
J’ai une CS2 et déjà plein d’itinéraires.
Parmi ces derniers il existe deux itinéraires, l’un pour les locos électriques (V1) et l’autre pour les locos vapeur ou diésel (V2).
La voie V1 est destinée aux locos électriques. Les voies V1 et V2 travaillent en flip-flop comme dans une gare cachée.
Le convoi qui entre sur V1, alimentée, déclenche la fermeture de l’accés à V1, coupe le courant traction, ouvre l’accés à V2 et rétablit sur le courant sur V2.
Et inversement pour V2 et V1.
Comme il y a 5 convois qui circulent entre la gare cachée (4 voies) et la grande Gare V1 & V2 je vais me retrouver avec une loco Vapeur sur V1 alors qu’un convoi tracté par une loco électrique arrive. Il faut donc que je libère V1 de sa loco vapeur pour laisser la place au convoi tracté par la loco électrique même si V2 est accessible et libre. Donc on déroge aux règles élémentaires du fip-flop.

Voici donc le problème.
Merci par avance.

  1. Je ne connais pas la CS2, mais voici comment j’aborderais le sujet avec ma CS3.

  2. Mais d’abord, je ne comprends pas cette idée de “couper le courant traction” qui pour moi n’a de sens qu’en analogique. En numérique, sauf à commander un relais qui coupe l’alimentation de la voie, ce qui n’est pas la bonne pratique, on commande chaque loco individuellement. Il n’y a pas de commande d’arrêt général, sauf le bouton d’arrêt d’urgence, mais qui s’adresse à tout le circuit commandé par la CS. Pour ma part, pour traiter certains cas, j’ai créé un “itinéraire” arrêt général qui met à l’arrêt toutes les locos une à une.

  3. Revenons à nos moutons. Dans l’état actuel du logiciel de la CS3, la solution du problème ressemble à une usine à gaz. Du moins je ne sais pas faire plus simple. Mais quelqu’un a peut être de meilleures idées.
    a) La solution consisterait à créer un itinéraire par loco (et éventuellement sens de circulation). Selon que la loco est traction électrique ou traction autonome, l’itinéraire préféré est voie 1 ou voie 2. Si l’itinéraire préféré n’est pas libre, on teste l’alternative et on l’active si libre. Si aucune voie n’est libre, 2 solutions : fin de l’itinéraire ou attente jusqu’à ce qu’une voie soit libre. Ce second choix est plutôt à éviter car l’itinéraire restera en attente d’exécution indéfiniment et se poursuivra quand la condition se réalisera, ce qui peut conduire à des situations imprévisibles (genre un autre itinéraire est enclenché, la voie se libère et le premier itinéraire se dénoue pendant que le second s’exécute normalement).
    Le test d’occupation voie 1 et 2 se réalise avec deux macro ET qui testent que toutes les zones de la voie 1 pour l’une et de la voie 2 pour l’autre sont libres (contact de rétrosignalisation éteint).

b) Pour gérer la libération de la voie 1 par un engin autonome, il faut aller plus loin. On peut penser à un contact de commande (par ex. un contact de voie non relié à la rétrosignalisation qui est activé (jaune) ou inactivé (éteint). Appelons-le VAPEUR V1. Par ailleurs, une série de contacts de commande est créé, un par engin autonome, pour identifier quel engin est arrêté voie 1. Appelons-les ENGIN n V1. Dans les itinéraires ci-dessus par loco, si un engin autonome est orienté vers la voie 1, VAPEUR V1 est activé ainsi que son contact ENGIN n V1. Les itinéraires des engins électriques testent le contact VAPEUR V1. S’il est activé, l’itinéraire de la loco électrique est suspendu sur ce VAPEUR V1 (paramètre ATTENDRE dans les options de l’itinéraire, w rouge visible dans l’itinéraire sur la boîte VAPEUR V1). L’itinéraire se dénouera à l’extinction du contact VAPEUR 1.

c) Pour ce faire, on crée un itinéraire appelé par exemple LIBERATION V1 qui est appelé JUSTE AVANT le test de VAPEUR 1 dans l’itinéraire loco électrique.
On crée par ailleurs une macro IF pour chaque engin autonome. Ces macros testent le contact ENGIN n de chaque engin autonome. Elles sont regroupées et lues dans l’itinéraire LIBERATION V1.
On crée également un itinéraire de sortie de V1 (vers le garage caché ?) pour chaque engin autonome. Ces itinéraires sont déclenchés par la macro IF qui lance l’itinéraire correspondant au contact ENGIN n allumé. Il inclut, en fin d’exécution, l’extinction de VAPEUR V1 (ce qui provoquera donc le dénouement de l’itinéraire de la loco électrique). Par sécurité, pour éviter qu’un contact ENGIN n reste activé, une remise à 0 générale est faite en fin de traitement.

NB : on peut simplifier en supprimant VAPEUR V1 et en se limitant aux tests ENGIN n dans LIBERATION V1, mais je trouve le “code” plus lisible avec.

A peaufiner et à tester pour valider, mais ça devrait marcher. J’espère que c’est à peu près clair et que ça aidera dans la réflexion. Si quelqu’un voit plus simple, tant mieux.
Alain

Merci Alain,
A l’origine j’avais deux itinéraires élémentaires par loco, l’un pour freiner, s’arrêter et couper les feux et l’éclairage des voitures, et l’autre, son symétrique pour atteindre la vitesse de croisière. Ceci fonctionne à merveille, mais reste spécifique de chaque loco, et j’en ai 32 opérationnelles. Donc cela devient un peu fastidieux à décrire et à gérer.

Comme il est impossible actuellement de capter “l’adresse” de la loco et d’alimenter deux scripts génériques respectivement “Arrêt” et “Départ” de cette dernière, c’est ce que l’on fait en informatique. Je suis revenu à un mixte analogique et digital. La fermeture et l’ouverture du courant traction sont pilotées par un contact S88 ainsi qu’une kyrielle d’actions sur les aiguillages.

Pour répondre à mon besoin je vais tester la solution suivante.

  • Un contact de Reed R1, seul déclenchable par une loco électrique équipée d’un aimant. Ce contact rend accessible la voie électrifié et établit le courant traction, libérant ainsi la voie s’il elle était occupée le cas échéant.

  • Le positionnement d’un contact R1 est juste au sortir de la gare cachée, ce qui laisse largement le temps au convoi placé sur V1 de partir et de ne jamais se trouver en situation de conflit avec le convoi électrifié.

  • La gare principale reste avec un flip-flop à deux voies V1-V2.
    L’équation logique devient alors: V1 occupé libère V2, et V2 occupé libère V1. Un convoi électrique libère toujours V1.

  • Pour ce faire il me faut un contact Reed, deux contacts S1 et S2 respectivement pour les voies V1 et V2, et des emplacements sur un M83 ou équivalent pour piloter les aiguillages et le relai gérant le courant traction, et un peu de programmation au niveau des itinéraires.

Pour rappel mon circuit est construit sous la forme d’un os type Fémur entre la gare cachée et la gare principale.

A plus pour la vidéo.
ROZ

Bonne idée les contacts reed.
Dommage en effet que la rétrosignalisation de l’id de la loco ne soit pas au menu. Ce n’est pas (encore) dans la norme, mais on aurait pu espérer que Märklin frappe un grand coup comme par le passé. Ce n’est peut-être pas si simple. Et je me demande s’ils ont le jus. J’en doute vu le pauvre niveau du logiciel de la CS3 par rapport à l’environnement système Linux. À moins qu’ils se réservent pour une CS4, ce qui serait bien triste en termes de respect des clients que nous sommes et du pari sur l’avenir du hobby. Mais bon…
Hâte d’avoir des nouvelles :wink:

Ce qui est d’autant plus surprenant que la fonction existe sur la voie de programmation. On récupère l’Id de la loco pour pouvoir le remplacer.
Je suis de ton avis, c’est un problème marketing, distiller au compte gouttes les fonctionnalités “To make more money!”.
ROZ