Création des signaux SNCF dans JMRI
Préparation
La plupart des signaux en vigueur à la SNCF ont été intégrés dans JMRI. Ils sont accessibles par l'intermédiaire du tableau « Mâts de Signalisation ».
La création de signaux SNCF nécessite de nombreuses informations qu'il vaut mieux réunir avant d'entreprendre la saisie :
- Nom du signal (C 201, par exemple),
- Type (silhouette) du signal (Voir aide JMRI),
- Nombre et numéro des sorties par lesquelles transiteront les commandes des indications à présenter par le signal,
- Choix du codage des commandes d'indications en bits.
Le tableau récapitulatif ci-dessous réunit ces informations.
Pour information
Dans cet exemple, les sorties ont été affectées à raison de 3 liaisons de sortie par signal. On aurait pu se contenter de deux liaisons pour la majorité d'entre eux (ceux appelés à présenter un nombre d'indications inférieur ou égal à 4), mais le fait d'en ajouter une troisième permettra une éventuelle extension si nécessaire (surtout si l'on dispose de suffisamment de liaisons pour ce faire). Il faut en effet savoir qu'il n'est pas forcément simple d'ajouter des liaisons de sortie à un signal après sa création.
En outre le fait d'avoir le même nombre de sorties pour l'ensemble des signaux facilitera l'écriture du croquis (sketch) Arduino, comme on le verra plus loin.
Tableau récapitulatif
Le tableau récapitulatif ci-dessous recense, pour chacun des signaux de notre projet, les liaisons de sortie qui lui ont été affectées, ainsi que le codage de chacune de ses indications. Il indique aussi la correspondance entre les appellations en usage à la SNCF et celles employées par JMRI.
| Localisation | Type | Sorties | Numéros | Symbole | Codage | Appellation de l'indication SNCF | Appellation de l'indication JMRI |
|---|---|---|---|---|---|---|---|
| Entrée de gare | H | C 101 : 1001 à 1003 C 202 : 1004 à 1006 |
C 101 C 202 |
C | 001 | Carré fermé | Stop |
| (S) | 010 | feu rouge clignotant (C 202) | Restricted | ||||
| A | 100 | Avertissement fermé | Approach | ||||
| A+(RR) | 101 | Avertissement fermé et Rappel Ralentissement 60 | Approach RRestrict60 (en un seul mot) | ||||
| (RR) | 110 | Rappel Ralentissement 60 | RRestrict60 | ||||
| VL | 111 | Feu vert | Clear | ||||
| Sortie de gare | B | C 102 : 1007 à 1009 C 104 : 1010 à 1012 C 201 : 1013 à 1015 C 203 : 1016 à 1018 |
C 102 C 104 C 201 C 203 |
C | 001 | Carré fermé | Stop |
| S | 010 | Sémaphore fermé | Semaphore |
||||
| A | 100 | Avertissement fermé | Approach | ||||
| VL | 111 | Feu vert | Clear | ||||
| Annonce des signaux d'entrée et cantonnement automatique |
F | S 23,0 : 1019 à 1021 S 23,1 : 1022 à 1024 |
S 23,0 S 23,1 |
S | 010 | Sémaphore fermé | Semaphore |
| A | 100 | Avertissement fermé | Approach | ||||
| (R) | 110 | Ralentissement 60 | Restrict60 | ||||
| VL | 111 | Feu vert | Clear |
Quelques explications :
Conformément à ce que nous avons décidé, chaque indication d'un signal est codée au moyen d'un groupe de trois bits.
Les bits correspondant à l'ensemble des indications à faire présenter par tous les signaux sont mis bout à bout par JMRI selon un ordre qui dépend du numéro des liaisons C/MRI que l'on a affectées au signal ; ils sont ensuite envoyés à l'Arduino sur les deux fils de la liaison série.
A l'autre extrémité de la liaison (côté réseau), un Arduino dans lequel on aura chargé deux bibliothèques (gratuites) et notre programme (appelé croquis en français ou sketch en version originale), reçoit les bits et les lit. Après les avoir groupés par trois (puisque nous avons décidé d'utiliser trois liaisons par signal), le programme Arduino commutera l'état de ses sorties en fonction du code reçu et de notre programme ; par exemple, si l'Arduino lit 001, notre programme indiquera d'alimenter ou de couper les sorties Arduino dévolues au signal, de sorte à provoquer l'allumage des deux feux rouges et l'extinction des autres feux. Le numéro du signal concerné sera déterminé grâce au rang occupé par les bits dans le message reçu par l'Arduino via la liaison série.
Conseils
Les numéros des liaisons (qu'elles soient d'entrée ou de sortie) débutent toujours à 1. Le chiffre des milliers correspond au numéro du nœud. Par exemple, 1001 correspond à l'une des
liaisons n°1 du nœud n° 1 (1). JMRI se chargera d'ajouter le préfixe utile (par exemple « CT » s'il s'agit d'une liaison de sortie, transitant par
C/MRI, destinée à une
commande de signal ou d'aiguille).
(1) : les liaisons d'entrée et de sortie étant numérotées dans la même série, il existe donc deux liaisons portant le numéro 1 au sein d'un même nœud, mais sans risque de
mélange. On les distingue facilement grâce au préfixe ajouté par JMRI : par exemple CS1001 en entrée et CT1001 (ou CL1001) en sortie.
Les affectations des valeurs des bits figurant dans ce tableau sont totalement arbitraires ; on se facilitera cependant la tâche en affectant un code déterminé à une indication donnée (001 pour l'indication « carré fermé » dans le cas de mon exemple ; mais ce ne sera pas toujours possible au vu de la quantité d'indications existantes). On aura aussi intérêt à grouper les signaux dans une série continue et à grouper les aiguilles dans une série continue, soit au début, soit à la fin de la série de liaisons dévolues aux signaux.
Il est indispensable d'affecter un code spécifique aux groupements d'indications à cause du mode de transmission. En effet, la réception d'un code par Arduino provoque l'allumage des feux de l'indication commandée et l'extinction des autres feux. Par suite, si l'on transmet deux codes successivement, le second annulera le premier. Autrement dit, il faut prévoir un code pour « Rappel Ralentissement 60 + Avertissement fermé » parce que si l'on envoyait séparément les codes de chacune de ces indications, seule l'indication correspondant au dernier code envoyé s'afficherait sur le signal.
Pour mémoire, le triplet 101 ne se prononce pas « cent-un », mais « un, zéro, un » pour bien signifier qu'il s'agit d'un nombre binaire. L'équivalence décimale de ce triplet de bits serait d'ailleurs : 1 x 22 + 0 x 21 + 1 x 20 = 4 + 0 + 1 = 5.
Bon à savoir
Groupements d'indications à proscrire
Dans le cadre de ce projet, la combinaison « AproachRestrict60 » proposée par JMRI, n'a pas été prévue pour les panneaux S 23,0 et S 23,1 car elle n'existe pas dans la réalité. En effet, une telle combinaison aurait pour effet de présenter simultanément deux signaux à distance d'importance inégale, donnant des ordres incompatibles, savoir :
- L'annonce d'arrêt ;
- Et l'annonce de ralentissement à 60 km/h au franchissement de l'aiguille implantée en aval du signal annoncé.
A noter que les deux panneaux à plaque d'identification « F » peuvent porter une plaque d'identification « Nf » et être équipés d'un œilleton dans le cas où le panneau correspondant peut présenter l'indication « Carré fermé ».
L'avertissement fermé étant plus impératif que le Ralentissement (30 ou 60), on l'utilise exclusivement lorsque le signal d'arrêt suivant est fermé. Par contre, si ce dernier présente soit l'indication « Rappel Ralentissement 60 », soit le groupement « Avertissement fermé + Rappel Ralentissement 60 », le signal d'annonce présentera uniquement l'indication « Ralentissement 60 ».
Groupement d'indications inusité
Bien que licite, le groupement d'indications « Feu jaune clignotant + Ralentissement 30 » est inutile. En effet :
- La distance minimale d'annonce d'un signal d'arrêt par avertissement fermé ne peut être inférieure à 500 mètres. Si cette distance est inférieure, le signal d'arrêt doit être annoncé par un feu rouge clignotant ;
- La distance de 500 mètres étant suffisante pour permettre le freinage d'une circulation à 30 km/h, il n'y a pas lieu de recourir à un feu jaune clignotant.
Groupements d'indications utilisables
Les seules indications pouvant être présentées simultanément sont les suivantes :
- Rappel Ralentissement (30 ou 60) et Avertissement fermé, (combinaison d'un signal d'exécution et d'un signal à distance) ;
- Rappel Ralentissement (30 ou 60) et feu jaune clignotant, (combinaison d'un signal d'exécution et d'un signal à distance) ;
- Ralentissement 60 et feu jaune clignotant (combinaison d'un signal d'annonce de ralentissement et d'annonce d'un avertissement fermé implanté à distance réduite du signal annoncé).
Création des signaux SNCF dans JMRI
Ouverture du Tableau des Mâts de Signalisation
Le tableau de création des signaux SNCF s'ouvre depuis le menu « Outils / Tableaux / Signaux / Mâts de Signalisation ».
Après ouverture du tableau des Mâts de Signalisation, cliquer sur le bouton « Ajouter », ce qui a pour effet d'ouvrir la fenêtre d'ajout du premier signal.
Création d'un signal
Procéder ensuite de la façon suivante, pour chacun des signaux, sur la base des indications du tableau récapitulatif établi à l'étape précédente :
- Saisir le numéro du signal dans la case « Nom d'utilisateur : »,
- Sélectionner « SNCF-2015 » dans la liste déroulante du « Système Signal : »,
- Sélectionner le type de de mât (A, B, D, F, H, Disque, etc.) dans la liste déroulante « Type du Mât : »,
- Sélectionner « Output Matrix Mast » dans la liste déroulante du « Driver du mât : »,
- Ne pas cocher la case « Ce signal peut être éteint ; », ni aucune des cases situées dans le cadre « Outputs for Unlit »,
- Sélectionner la valeur « 3 » dans la liste déroulante « Number of logic outputs : »
- Dans chacune des cases « Output 1 », « Output 2 » et « Output 3 », sélectionner ou créer chacune des sorties C/MRI affectées au signal. Si aucune sortie n'a déjà été créée, JMRI proposera d'office de créer une nouvelle sortie en sélectionnant d'office le bouton radio « Créer un nouveau : ». Dans ce cas, choisir « C/MRI » dans la liste déroulante,
- Cocher la case « Désactiver Aspect » de chacune des indications inutilisées,
- A partir du tableau récapitulatif, reporter les combinaisons de bits de chacune des indications utiles en cochant les cases correspondant à un bit de valeur « 1 »,
- Cliquer sur le bouton créer.
Après création du signal
Bon à savoir
Les sorties des signaux créées dans le tableau des Mâts de signalisation sont automatiquement reportées dans le tableau des aiguillages. Elles ont donc pour préfixe « CT » (C pour C/MRI et T pour Turnout) suivi du numéro d'affectation de la liaison.
Il est possible de personnaliser le « Nom Utilisateur » en cliquant droit dans la case concernée, puis en sélectionnant « Renommer » puis en saisissant le nom dans la boîte surgissante.
ça peut servir...
Si la liaison C/MRI n'apparaît pas dans la liste déroulante des cases « Output 1 », « Output 2 » et « Output 3 », il est possible que la connexion C/MRI n'ait pas été paramétrée correctement ; il convient donc de vérifier le paramétrage de la liaison C/MRI. Si l'onglet C/MRI figure bien dans le tableau des connexions, vérifier que la case située dans la partie inférieure gauche de la fenêtre et intitulée « Désactiver cette connexion » n'a pas été cochée.
Si JMRI refuse la combinaison de bits saisie, vérifier que cette combinaison n'a pas déjà été utilisée pour ce signal.
En cas de création de signaux présentant des caractéristiques similaires, il est possible de s'éviter une saisie intégrale des indications et de leur codage, en recopiant ces informations à partir d'un signal déjà créé. Il suffit de choisir le signal à recopier dans la liste déroulante située dans le coin inférieur gauche de la fenêtre d'ajout de signal, au droit de l'étiquette : « Copy Aspect Matrix from Mast : »