Un poste à itinéraires avec JMRI, C/MRI et Arduino

En chantier

Les itinéraires

Le poste à itinéraires

Le poste réalisé dans le cadre de cet exemple est un poste à itinéraires, c'est-à-dire un poste dans lequel la commande des appareils de voie d’un parcours, puis l’ouverture du signal qui en commande l’accès, s’effectue globalement et non pas séparément comme dans les postes à commandes individuelles (postes mécaniques ou électromécaniques, postes à manettes libres, par exemple).

Il s'inspire de celui des postes tous relais à transit souple pour gares simples (PRS GS), moyennant quelques adaptations. Ces dernières consistent essentiellement en des simplifications (car l'enjeu de sécurité n'est pas le même) et sur des caractéristiques physiques (déformation des échelles physiques et temporelles induites par le fait qu'il s'agit de modèles réduits).

Les itinéraires dont il sera question dans cette présentation n’ont que peu de choses en commun avec les Itinéraires, voire LItinéraires de JMRI. C’est une chose à laquelle il faudra d’ailleurs vous habituer, car JMRI fait souvent référence à des termes qui sont également en usage à la SNCF, mais avec un sens différent.

Haut de page

Organes de commande

boutons-poussoir de commande des itinéraires

La commande d'un itinéraire s'effectue par un simple clic gauche de souris sur l'icône représentant son bouton-poussoir de commande. Le bouton-poussoir reproduit le fonctionnement d'un bouton de commande à rappel automatique en position de repos (dès que cesse l'appui sur le bouton).

Comme dans la réalité, chaque bouton de commande est doté d'un dispositif de réitération qui permet, par un nouveau clic sur son icône :

(1) : L'enclenchement d'approche s’oppose à la destruction manuelle d’un itinéraire dont le signal origine a été commandé à l'ouverture alors que la zone d’approche de ce signal est occupée. La zone d'approche débute avant le signal d'annonce du signal origine de l'itinéraire et se termine à ce dernier. Cet enclenchement vise à éviter la modification intempestive d'un itinéraire devant un train ayant rencontré le signal d'annonce ouvert.

Le fonctionnement de chaque bouton-poussoir est reproduit grâce à un module JMRI appelé « LogixNG » visant :

  1. A prendre en compte l'actionnement de la commande,
  2. A déterminer s'il s'agit d'un premier appui (commande d'itinéraire) ou d'une réitération de l'appui

bouton-poussoir de substitution S 202

Afin d’éviter des réceptions involontaires sur voie occupée, les C 101 et C 202 présentent systématiquement l'indication « Carré fermé » lorsque la voie à laquelle ils permettent l'accès est occupée. Toutefois, lorsqu'une telle voie est occupée et que la zone située devant le C 202 est occupée, il est possible de substituer l'indication « Feu rouge clignotant » à l'indication « Carré fermé » sur le C 202, en cliquant sur l'icône du bouton-poussoir « S 202 ».

Ce type d'équipement n'existe normalement pas dans des points de croisement, tel que celui représenté dans notre exemple. Il a simplement été prévu pour en illustrer le principe de fonctionnement.

Commutateur de fermeture de carré

Un commutateur de fermeture de carré permet de présenter l'indication « Carré fermé » sur un signal soumis à l'enclenchement d'approche (c'est-à-dire, lorsqu'il ne peut pas être refermé par destruction manuelle de l'itinéraire dont il est origine).

La mise en action d'un commutateur de fermeture de carré s'effectue par un clic gauche sur son icône, sa désactivation s'effectue par un nouveau clic gauche sur l'icône. Lorsqu'un commutateur de fermeture de carré est actif, son voyant central est éclairé.

La mise en action d'un commutateur de fermeture de carré n'est soumise à aucun enclenchement et n'a aucune action autre que la présentation de l'indication « Carré fermé » sur le signal auquel il est associé. Sa mise en action est toutefois impérative dans le cas du processus de destruction manuelle temporisée.

Contrôles

Les contrôles mis en œuvre dans ce projet découlent des possibilités offertes par l'Editeur de réseau de JMRI et dérogent à certaines dispositions SNCF.

Les figurines des signaux reproduisent les indications commandées en sortie de JMRI. A la SNCF, les aiguilleurs ne disposent que du contrôle de fermeture des signaux qu'ils commandent (de sorte à pouvoir vérifier que le signal a bien obéi à sa commande de fermeture et que les opérations protégées par la fermeture de ce signal pourront s'effectuer en sécurité). Dans certains cas, il existe des contrôles d'ouverture de certains signaux, mais cela reste exceptionnel car cela est aussi coûteux que difficile à réaliser (à la différence de nos modèles réduits, la SNCF vérifie l'indication réellement présentée par le signal, sur le terrain).

Description des itinéraires

Le poste compte huit itinéraires, dont :

Les appellations des itinéraires comportent deux nombres de trois chiffres séparés par un tiret. Le premier nombre correspond au numéro du signal origine de l'itinéraire et le second au numéro du signal auquel l'itinéraire donne accès. Les origines et destinations sont rappelées sur la table de commande et de contrôle ainsi que dans une étiquette située au-dessus de chaque bouton de commande des itinéraires.

Afin de faciliter l'articulation entre les différents modules (enclenchements,commande des signaux, etc.), les états susceptibles d'être occupés par un itinéraire ont été analysés et classés, de sorte à transposer au mieux le fonctionnement d'un poste réel (qui utilise des relais électromécaniques) vers un programme informatique.

Haut de page

Variables Mémoires

Utilité des Variables Mémoires

Afin de remplacer les relais qui matérialisent les divers états d'un itinéraire au sein d'un poste SNCF, chaque itinéraire a été associé à une variable mémoire globale (accessible à l'ensemble des modules JMRI).

Chaque variable mémoire a été nommée « Etat itinéraire » suivie du nom de l'itinéraire ; par exemple « Etat itinéraire 101-201 ». On notera que JMRI est capable de gérer les espaces et les caractères accentués.

En fonction de l'état de l'itinéraire à laquelle elle est associée, chaque variable peut prendre l'une des valeurs suivantes :

Ces variables mémoires sont initialisées à 0 au démarrage de JMRI grâce un à module LogixNG très simple.

Ces variables mémoires globales seront aussi utilisées pour animer les icônes des boutons de commande. En effet, les boutons de commande des PRS sont équipés de voyants lumineux destinés à renseigner l'aiguilleur sur l'état des itinéraires :

Le module « Editeur de réseau » de JMRI Panel Pro ne permet pas d'animer les boutons. Afin de pallier cette limitation, l'état des itinéraires est indiqué dans la partie inférieure de la table de commande et de contrôle. On pourra observer les changements de valeur de ces variables au fur et à mesure des événements (commandes d'itinéraires, occupation des zones isolées, commande de substitution du feu rouge clignotant au carré fermé sur le C 202).

Haut de page

Création des Variables Mémoires

Les variables mémoires se créent par l'intermédiaire du menu « Outils / Tableaux / Variables Mémoires » de Panel Pro :

Commande d'ouverture du tableau des Variables Mémoires de Panel Pro Commande d'ouverture du tableau des Variables Mémoires de Panel Pro
Ouverture du tableau des variables Mémoires
Tableau des Variables Mémoires ouvert

La boîte de dialogue s'ouvre par un clic gauche sur le bouton "Ajouter. Elle permet d'entrer le nom utilisateur (nom choisi pour la variable) ; ce dernier doit être unique.

Commande d'ouverture du tableau des Variables Mémoires de Panel Pro Commande d'ouverture du tableau des Variables Mémoires de Panel Pro
Boîte de dialogue d'ajout de variables Mémoires
Tableau des Variables Mémoires créées

Il est possible de créer les variables une par une, mais aussi de créer les huit en une seule opération, en cochant la case « Ajouter une plage séquentielle » puis de choisir le nombre d'éléments à créer (8) au moyen de la boîte déroulante. Il suffira ensuite de rectifier chaque « Nom utilisateur », car JMRI va se contenter d'augmenter le dernier chiffre d'une unité à chaque fois.

Je conseille de laisser JMRI décider du « Nom Système ». Ce dernier commencera par « IM ».

A priori, JMRI tolère bien les espaces et les caractères accentués et ne demande pas de préciser le type de la variable lors de sa création. Ce type sera spécifié ultérieurement, lorsque nous utiliserons ces mémoires avec les LogixNG.

Les lignes des tableaux peuvent être triées par ordre alphabétique (croissant ou inverse) en cliquant l'en-tête de la colonne à partir de laquelle le tri doit être effectué. L'en-tête de colonne à partir de laquelle le tri a été effectué porte alors un chevron (tri par « Nom Utilisateur » alphabétique croissant dans l'exemple figurant ci-dessus).

Haut de page

Les capteurs de commandes

Comment ça marche ?

La commande d'un itinéraire s'effectue par un clic gauche sur l'icône du bouton de commande. Chaque icône de commande d'itinéraire est associée à un capteur interne (à l'ordinateur), à la différence des détecteurs d'occupation de voie qui sont des capteurs externes dont l'état sera transmis à l'odinateur par la liaison série C/MRI. Il est très important de bien prendre garde à inscrire les capteurs dans la bonne catégorie.

Nous verrons ultérieurement le processus de dessin des icônes. Je trouve plus pratique de créer d'abord les éléments de la table de commande et de contrôle dans les tableaux correspondants, car il n'y aura alors qu'à procéder à leur insertion pendant la phase de dessin sur l'éditeur de réseau (Layout editor).

Création des capteurs de commande

Bien que les formulaires de création des capteurs aient été francisés, dans de nombreux cas, nous serons confrontés à leur appellation anglo-saxonne, soit sensors.

Commande d'ouverture du tableau des Capteurs de Panel Pro Commande d'ouverture du tableau des Variables Mémoires de Panel Pro
Commande d'ouverture du tableau des capteurs (sensors) de Panel Pro
Tableau des Variables Mémoires créées

Il y a bien entendu autant de capteurs associés aux icônes de commande que d'itinéraires, soit un total de huit.