Bonjour Pierre59,
Voilà un sujet fort intéressant 🤔 que je vais développer ci-dessous en ce qui me concerne.
Juste le temps de trouver le temps avec les petits enfants à la maison …
Donc me revoilà !
Concernant la position des aiguilles, pour le gestionnaire, la solution idéale est de pouvoir obtenir leurs positions mais cela nécessite un dispositif approprié sur les moteurs d'aiguille, alternativement le gestionnaire peut positionner systématiquement toutes les aiguilles, mais cela pose problème pour les aiguilles des zones occupées où il y a normalement des trains.
J'ai essayé ces deux méthodes :
1) mon circuit de commandes d'aiguilles reçoit les commandes du gestionnaire et envoie les positions des aiguilles au gestionnaire du réseau via le bus Can. Il représente une seule entité sur le bus Can (une carte Mega). Au démarrage il peut envoyer toutes des positions des aiguilles qui correspondent alors aux positions des boutons de commande sur le TCO car il ne connait pas les positions réelles des aiguilles. Le TCO positionne alors toutes les aiguilles conformément aux positions des boutons à son initialisation. L’inconvénient comme le dit Pierre est qu’un train peut occuper une aiguilles à ce moment là et provoquer un court-circuit ou une déraillement. J’ai donc abandonné cette méthode.
2) mon gestionnaire de réseau définit une position de départ de toutes les aiguilles selon un état de départ du réseau idéal (les trains bien arrêtés dans les gares ou les voies de garage). Et il commande les aiguilles en conséquence via le bus Can et le Mega de commande d’aiguilles. En général ça correspond à la position des trains et des aiguilles quand on arrête le réseau, mais rien n’est garanti. En général les petits enfants aiment bien cette rêgle.
Concernant les zones il est assez facile d'obtenir leurs états (libre ou occupé), mais quasiment impossible d'obtenir des infos sur les trains qui les occupent.
En effet mon TCO manuel (leds d'occupations et de positions d'aiguilles) reflète les états des zones et transmet ces états au gestionnaire via Can.
Pour les identifications des trains c'est plus délicat.
Avec le recul et sachant maintenant qu'il est facile d'utiliser Railcom avec Labox (grâce à Lebelge2 et nous allons tester et valider cela), à condition de posséder des décodeurs compatibles ce qui devient le cas général, et de capteurs Railcom dans les zones les plus importantes (gares et certains zones importantes), la solution Railcom est la meilleure solution pour identifier les trains en association avec une description des trains (type, longueur, etc..).
En ce qui me concerne, n'ayant pas d'équipements Railcom, j'ai placé quelques détecteurs RFID dans les zones proches des gares et les trains équipés d'un timbre RFID (tous) sont détectés à leur passage.
Mais ce n'est pas aussi universel que Railcom car le RFID est un peu plus lent et certains trains ne sont pas détectés au démarrage du réseau.
J'avais essayé une technique de détection automatique des trains au démarrage qui reposait sur des détecteurs de présence peu sensibles (de telle sorte qu'un train à l'arrêt ne soit plus détecté, seuls les trains en mouvement étant vus). Cette technique consistait à faire bouger chaque trains, l'un après l'autre, en envoyant une commande de vitesse en avant ou plutôt en arrière, le temps de récupérer la détection de zone où il est, puis de l'arrêter, voire le faire repartir en sens inverse avec la même vitesse et le même temps de roulement.
En fait ça marche bien mais cela change beaucoup la gestion des occupations dans le gestionnaire et le suivi des trains.
En définitive, je me contente maintenant de faire rouler mes trains en mode manuel jusqu'à ce qu'ils soient détectés par une capteur RFID, ce qui initialise ou réinitialise le suivi du train. Je le vois lorsque le train s'arrête bien en gare ! Sinon je le laisse rouler encore un peu, il finit par être bien suivi. Mais mon algorithme de suivi des trains est plus compliqué.
Cette méthode s'applique aussi à la pose d'un nouveau trains. Le problème dans ce cas est que le nouveau train n'a pas de suivi correct avant son identification et son initialisation, ce qui perturbe un peu le reste du réseau. Je laisse les trains arrêtés en gare en attente par sécurité.
Pour le retrait, je n'ai pas de solution. Sauf a prévoir une interface quelque part.
Les sauvegardes peuvent se faire de différentes façons :
- avec un ordinateur ou un mini-ordinateur sur un fichier
- avec un micro-contrôleur sur carte SD ou en mémoire non volatile (eeprom) ou autre
En ce qui me concerne, j'ai banni l'ordinateur et je n'ai que des modules sur le bus Can.
Le plus simple serait l'enregistrement sur carte SD (quand elle est usée on en met une autre !).
Dans la foulée il est possible d'enregistrer d'autres données de suivi, de statistiques, de débugging qui peuvent être exploitées sur ordinateur par la suite.
Avec le bus Can, il y a plein d'autres possibilités.
Enfin, il reste le cas des itinéraires qu'il faut commander quelque part, sur le TCO en principe. Ces commandes peuvent résoudre quelques un des problèmes cités au dessus (pose et retrait de trains).
J'aurai d'autres commentaires plus tard...