Auteur Sujet: Projet partagé d'un gestionnaire de réseau  (Lu 135721 fois)

Pierre59

  • Sr. Member
  • ****
  • Messages: 346
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #375 le: mars 25, 2024, 10:39:31 am »
Après quelques semaines consacrées à la Savoie, je me remets au train. J'ai lu tous les post en retard. Je vais commencer par refaire une petite mise au point, dans ce fil on s'intéresse aux gestionnaires basés sur les ZONES, les cantons sont marginaux dans ce type de gestionnaire, ils ne servent qu'a l'espacement des trains. Pour les amateurs de cantons il y a d'autres fils sur ce forum.

Mon séjour en Savoie a du priver mon cerveau d'oxygène, car en lisant les post je suis tombé sur des mots et des idées que je ne comprends pas : segments, blocs, cantons virtuels et j'en passe.

Le but n'est pas de mettre dans le fichier JSON tout et n'importe quoi pour se faire plaisir, mais de mettre ce qui est nécessaire au gestionnaire pour faire son job efficacement, c'est à dire la sécurité, puis les améliorations : itinéraires, cantonnement, manoeuvres, conduite automatique, … . Tout ceci en essayant de rester le plus général possible : support de l'analogique et du digital, support de différents modes de rétro-signalisation, support de différents modes de commande des aiguilles et de signaux, … .

Il va falloir discuter séparément sur plusieurs sujets : les manoeuvres, les itinéraires, les sens des zones et voies, analogique/numérique, … .
Je vais aussi publier une nouvelle proposition de gestionnaire, cette version corrige quelques bugs, introduit des itinéraires permanents, mais surtout facilite la transition vers le C/C++ et l'Arduino qui impliqueront un changement inéluctable de la bibliothèque JSON.

Pierre

Pierre59

  • Sr. Member
  • ****
  • Messages: 346
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #376 le: mars 25, 2024, 10:46:02 am »
Pour commencer la discussion sur les manoeuvres, quelques précisions :


Concernant les manoeuvres certaines gares, généralement moyennes ou grandes, ont de voies spécialisées appelées "tiroir", ce sont souvent des voies courtes destinées à accueillir une locomotive pour des mises en tête de train ou des retraits. Une signalisation particulière est utilisée avec des carrés violets, mais aussi des feux blanc (M) sur des carrés normaux.

Dans certaines gares les manoeuvres se font sur voie principale, une pancarte LM (Limite de Manoeuvre)
indique jusqu'où la locomotive peut aller en manoeuvre, il y a généralement la place pour manoeuvrer un train complet. La signalisation est la même que pour les tiroirs (carrés violets). Dans les gares sur des  doubles voies les manoeuvres se font toujours sur la voie "sortante", cela implique que le conducteur d'un train en ligne (pas en manoeuvre) ne rencontre pas de carrés violets (sauf IPCS). Bien souvent il n'y a pas de place pour implanter un carré violet "haut" dans l'entrevoie, un carré violet bas est alors implanté. Il n'y a pas de différences entre les carrés violets haut et bas. Par contre dans les gares sur voie unique les trains en ligne peuvent rencontrer des carrés violets, ceux-ci présentent alors un feu blanc (M).

Dans les grandes gares il y a souvent un mélange de manoeuvres avec des tiroirs et des manoeuvres sur voie principales.

Pierre

Etienne66

  • Jr. Member
  • **
  • Messages: 98
    • Voir le profil
Re : Re : Projet partagé d'un gestionnaire de réseau
« Réponse #377 le: mars 25, 2024, 06:19:06 pm »
Pour commencer la discussion sur les manoeuvres, quelques précisions :

Il n'y a pas de différences entre les carrés violets haut et bas.
Pierre

Au contraire, il y a une grosse différence : le violet bas ne concerne que les trains en marche à vue.
Un train en marche normale qui franchit un carré violet bas ouvert reste en marche normale.
Un train en marche normale qui franchit un carré violet haut ouvert passe en marche à vue. (par exemple vers un dépot)

Dans le cas des manoeuvres jusqu'au tableau LM sur voie unique on utilisera un violet bas pour le retour en gare des trains en manoeuvre
qui sera ignoré par les trains en marche normale.

Pierre59

  • Sr. Member
  • ****
  • Messages: 346
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #378 le: mars 25, 2024, 06:39:31 pm »
@ Etienne

OK après vérification dans les doc SNCF, il y a bien une différence (petite) entre les carrés violets hauts et bas.

Pierre

Etienne66

  • Jr. Member
  • **
  • Messages: 98
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #379 le: mars 26, 2024, 01:11:24 am »
Cette (petite) différence complique sensiblement les gestionnaires.
Dans la logique de BAL un signal fixe son aspect ouvert d'après le signal suivant, mais il faut qu'il ignore le cv bas.
Et pour le train il faut savoir si il est en marche à vue.
Les cibles C, F, G, H peuvent afficher le vert ou le blanc et doivent donc savoir si c'est pour une manoeuvre.
Il y a 2 solutions :
- soit on a une variable booléenne associée au train gèrée par le gestionnaire et une fonction permettant au signal d'y accèder.
- soit on marque la voie comme voie de manoeuvre de manière fixe (pour un tiroir par exemple) ou dynamique aussi gèrée par le gestionnaire.

Si on utilise un gestionnaire existant (comme JMRI) qui ne gère ni l'un ni l'autre on a besoin d'une autre solution.
Cette solution c'est mon idée du tiroir virtuel:
Physiquement il y a une voie qui sort jusqu'au tableau LM et continue plus loin, mais logiquement il y a deux voies superposées avec une seule
détection de présence. Le violet bas se trouve sur la voie déviée et cette voie s'arrête au niveau du tableau LM.
Sur une cible C, F, G, H on affichera le blanc si l'aiguille virtuelle est déviée.
(Je suis en train de modifier le système de signalisation SNCF2015 dans JMRI pour obtenir ce résultat.)

DDEFF

  • Hero Member
  • *****
  • Messages: 760
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #380 le: mars 26, 2024, 09:24:43 am »
Bonjour,

Moi, je veux bien qu'on ait ce genre de discussion, mais je pense qu'on a perdu tout le monde.

La signalisation SNCF est très complexe, elle permet de résoudre tous les cas, c'est vrai. Mais, là, je pense qu'on va trop loin dans le détail.

Je vais bientôt fêter l'anniversaire des 50 ans que je lis Loco-Revue. J'ai tous les numéros depuis le numéro 338, en 1974. Je lis aussi d'autres revues, y compris étrangères.
Eh bien, on ne voit quasiment jamais de signalisation sur les réseaux. Et le peu qu'on voit, c'est de la décoration, la signalisation n'est pas fonctionnelle.
Il y a de magnifiques contre-exemples (Soumagnac, Luzy, …), mais ils sont rares.
La plupart des gens utilisent le DCC, justement pour pouvoir arrêter un train sans avoir à gérer cette signalisation.
DRIM3D a fermé, faute de débouchés. Ils faisaient pourtant de magnifiques signaux.

Donc, il faut que les gens ne craignent plus d'avoir une signalisation fonctionnelle.
Mais il faut qu'on les aide et qu'UN PROGRAMME leur dise quel signal il faut mettre et où.
C’est-à-dire utiliser des règles simples, poser des questions dans un langage accessible pour qu'on puisse avoir une signalisation la plus complète possible sans connaissances pointues de la SNCF. Les situations rencontrées sur un réseau sont nettement plus simples.

Concernant la zone de manœuvre, je n'ai jamais vu sur un réseau de modéliste qui ait un signal blanc ou violet sur un mat dans la direction de la zone.
C'est déjà un grand pas si on a le signal au sol.

Pour moi, si les aiguilles sont tournées vers la zone de manœuvre, on tient compte du signal bas, sinon, on n'en tient pas compte.
Il y a des Cv en sortie de zone, la vitesse en zone de manœuvre est limitée à 15 km/h et on considère le panneau LM comme non franchissable.
L'itinéraire qui sort de la zone de manœuvre a un "carré virtuel" à l'emplacement du panneau LM et il s'arrête donc à ce point.

Denis
"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

Etienne66

  • Jr. Member
  • **
  • Messages: 98
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #381 le: mars 26, 2024, 10:52:25 am »
Pour que les gens sachent comment implanter les signaux, ce n'est pas un programme qu'il faut.
Il faut un forum ou un sous-forum dédié à la signalisation.

Si tu cherches sur internet ou sur les revues tu trouveras 1000 explications sur le principe d'un BAL,
150 explications pour l'implanter sur ton réseau et une grosse poignée de logiciels qui le gèrent (y compris gratuits).
Tu trouveras aussi des jolis dessins des différentes cibles sans savoir quoi en faire.

Mais comment créer le plan d'une gare en fonction de ce qu'on veut y faire, comment y implanter les signaux,
comment les relier électriquement et comment utiliser un logiciel pour les faire fonctionner?
 ZERO résultats!

Les anciens sont restés sur le système tricolore de leur enfance et ont rarement les connaissances en électronique et informatique
pour aller plus loin.

Les jeunes sont plus ouverts à l'informatique mais ils n'ont pas le niveau d'éducation leur permettant de créer quoi que ce soit
sans suivre à la lettre (ou plutôt au son pour les 90% d'illettrés) un tutoriel sur youtube.

Si tu cherches à faire un gestionnaire simplifié tu perds ton temps : on en a déjà plein.

Il existe un logiciel qui peut être modifié pour la gestion prototypique des signaux SNCF : c'est JMRI parce qu'il est ouvert.
J'y travaille.

Mais pour que ça marche il faura un forum où les gens qui veulent faire un réseau puissent rencontrer des gens connaissant
la signalisation et d'autres connaissant l'électronique et/ou l'informatique.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3012
  • 100% Arduino et N
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #382 le: mars 26, 2024, 11:41:49 am »
@Etienne66

Je te propose de créer le sujet ad hoc que tu voudrais animer dans la catégorie Projets.
Tu pourrais décrire les principes et les réalisations, notamment avec JMRI.

Si le projet est assez abouti, tu peux aussi publier un article sur le site éditorial : on t'aidera  ;D

Moi je pense que le gestionnaire de Pierre est assez complet pour ce que je veux faire. J'ai bien des cv mais en conduite manuelle devant la gare.

Je suis même peiné d'apprendre la disparition de Drim3D. Je suis en N et je ne trouve pas de signaux pas trop chers à installer sur mon réseau (j'ai quelques trucs moches et chinois).
Cordialement,
Dominique

Etienne66

  • Jr. Member
  • **
  • Messages: 98
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #383 le: mars 26, 2024, 12:29:24 pm »
Je posterai sur mon projet en temps voulu.
Pour l'instant j'ai la centrale multisecteurs qui fonctionne bien.
La partie détection de courant fonctionne en utilisant les 16 entrées analogiques d'un ou plusieurs mega2560.
Chaque mega va aussi gèrer 52 I/O digitales comprenant des nombres variables de servos, aiguillages, feux, accessoires et capteurs digitaux (infrarouge).
Le UNO de la centrale et les megas sont branchès au travers d'un hub USB.
L'interface avec JMRI (en direct USB, sans can ni c-mri ni autres bus préhistoriques) va générer automatiquement les objets avec des noms parlants.
Le sketch du mega et le script python pour JMRI sont inspirés des scripts de Geoff Bunza mais fortement améliorés.
J'en suis au test des feux et aiguillages.
Je vais ensuite faire une modification du système SNCF2015 de JMRI en ajoutant les cibles manquantes et en ajustant leur fonctionnement.
Après il faudra des tutos et ça risque d'être long.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3012
  • 100% Arduino et N
    • Voir le profil
Re : Re : Projet partagé d'un gestionnaire de réseau
« Réponse #384 le: mars 26, 2024, 01:13:44 pm »
Je posterai sur mon projet en temps voulu.

Après il faudra des tutos et ça risque d'être long.

C’est la bonne méthode : realiser d’abord et mettre au point et publier ensuite.

Notre patience sera récompensée par ce projet très intéressant.
Cordialement,
Dominique

nopxor

  • Full Member
  • ***
  • Messages: 187
    • Voir le profil
Re : Re : Projet partagé d'un gestionnaire de réseau
« Réponse #385 le: mars 26, 2024, 01:38:16 pm »
Bonjour,


L'interface avec JMRI (en direct USB, sans can ni c-mri ni autres bus préhistoriques) va générer automatiquement les objets avec des noms parlants.


Peux-tu nous en dire plus ?

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3012
  • 100% Arduino et N
    • Voir le profil
Re : Re : Re : Projet partagé d'un gestionnaire de réseau
« Réponse #386 le: mars 26, 2024, 02:09:26 pm »
Bonjour,


L'interface avec JMRI (en direct USB, sans can ni c-mri ni autres bus préhistoriques) va générer automatiquement les objets avec des noms parlants.


Peux-tu nous en dire plus ?

Dans un autre sujet svp !
Cordialement,
Dominique

Etienne66

  • Jr. Member
  • **
  • Messages: 98
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #387 le: mars 26, 2024, 02:46:27 pm »
Ok, j'ouvre un sujet dans la section dédiée à JMRI.

https://forum.locoduino.org/index.php?topic=1691.msg18820#msg18820
« Modifié: mars 26, 2024, 03:42:26 pm par Etienne66 »

DDEFF

  • Hero Member
  • *****
  • Messages: 760
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #388 le: mars 27, 2024, 08:32:06 am »
@Pierre,

Ma recherche d'itinéraires marche. ;D

Je n'ai plus besoin de "polluer" la partie "zones" du JSON avec des zones suivantes et côté suivant.
Je reviens donc à la partie "zones" originale.

En revanche, pour les itinéraires, je crée une partie "connecteurs" indépendante.

Donc, en indiquant (manuellement) dans les appareils de voie des vitesses à voie déviée, en ayant défini les zones de gare et de manœuvre, je peux CALCULER les cibles des signaux pour C, S, A, VL, R30, RR30, R60, RR60, Cv au sol.

Je remplirai donc la partie "signaux", "aiguilles" et "itinéraires" (uniquement pour les gares)

J'ai encore besoin d'un peu de temps pour faire tout ça, mais je vois le bout du tunnel.

Denis
"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

Pierre59

  • Sr. Member
  • ****
  • Messages: 346
    • Voir le profil
Re : Projet partagé d'un gestionnaire de réseau
« Réponse #389 le: mars 27, 2024, 11:46:37 am »
Voici où j'en suis concernant les itinéraires dans le gestionnaire, il va peut être falloir harmoniser les choses :

Le gestionnaire a besoin pour un itinéraire d'une liste de zones, à partir de cette liste il peut positionner les aiguilles et gérer les signaux. Il peut aussi être nécessaire d'avoir une autorisation pour partager des voies entre postes d'aiguillage.

La liste de zones commence à la zone de départ, celle qui contient le signal de départ, puis toutes les zones d'aiguilles, pour finir sur la zone d'arrivée. Un signal doit être rattaché à une zone, dans la réalité le signal est implanté juste avant le changement de zone, avant la coupure physique des rails (si elle existe).

Au niveau du fichier JSON pour chaque itinéraire il faudra une liste de zones et éventuellement une autorisation. Pour les gares comportant beaucoup d'itinéraires cela peut devenir fastidieux à saisir. Dans ce cas on peut envisager de fonctionner avec un point de départ et un point d'arrivée. Il faudra alors, peut être, dans le fichier JSON coder ces points de départ et d'arrivée avec des sens, vraisemblablement dans les zones.

Avec une zone de départ et une zone d'arrivée (et des sens) le gestionnaire peut calculer tout seul la liste des zones. On utilise pour cela un algorithme récursif assez simple. Mais cet algorithme a quelques défauts, il peut boucler indéfiniment, on peut palier ce problème par marquage des zones ou en limitant la taille de la liste de zones, il peut aussi produire plusieurs listes de zones, il faut alors choisir la "bonne" liste, pas si évident que cela. Il y a aussi le problème des autorisations.

Quelque soit la version des itinéraires, il va falloir spécifier les itinéraires de manoeuvre. Les itinéraires de manoeuvre ouvrent les signaux avec un feu blanc (carrées ou carrés violet), et il permettent d'envoyer une locomotive sur une zone d'arrivée occupée, ce qui implique un traitement spécifique dans le gestionnaire.

Plus généralement il va falloir dans le fichier JSON une partie "paramètres", par exemple : pour dire quelle version des itinéraires on utilise, pour dire si on alimente en analogique ou en numérique, … .

Pierre