La signalisation

 

Description des signaux  forme générale

Une description de signal est composée de la description de sa forme et de celle de son fonctionnement, sur une ligne en fichier signaux.res.txt.
La description de la forme est générée par le dessin, il n'est pas indispensable d'en connaitre le détail, celle-ci est un ensemble de marqueurs,  'tag' séparés par le caractère / :
- n: le numéro de signal
- e: l'échelle
- a: l'angle
- z: le plan, positionnement par rapport au dessin qui est positionné sur le plan 2
- c: le numéro de colonne de la 'map' du dessin, le dessin est construit sur une map, un tableau
- r:  le numéro de ligne de la 'map' du dessin
- x: le décalage horizontal par rapport à la cellule du tableau définie par c et r
- y: le décalage vertical par rapport à la cellule du tableau définie par c et r
- p: réservé usage interne
- i: (optionnel) le nom d'un fichier image qui sera installé sous le répertoire de données de JAO JAOData par défaut c:\users\public\JAO
     Cette option permet l'affichage d'une image quelconque à la position et au niveau souhaité, telle qu'une image de fond d'écran ou un décor.
- m: la description du fonctionnement.

La description de fonctionnement des signaux

La description est réalisée sous l’interface 'Signalisation' en page dessin, mais il peut  s'avérer plus pratique d’éditer le fichier de description  signaux.res.txt sous Notepad.
Quatre formes de descriptions sont possibles
 - La forme dite simplifiée, recommandée.
Elle consiste à fournir un N° de famille de règles , 1 ou 2. La famille 1 concerne les signaux hors gare, la famille 2 concerne les signaux en gare.
 - La forme dite de complémentarité.
Elle consiste à utiliser les règles automatique des 2 familles de règles et à décrire des exceptions ou des compléments de règles
 - La forme dite canonique.
Elle consiste à programmer les feux avec les macros commandes de JAO
 - La forme dite libre
Elles consiste à utiliser toutes les formes de programmation offerte pas les interfaces de programmation de JAO des macro-commandes à la programmation sous scripts ou langages compilés

Description sous forme dite simplifiée

1 ou 2 ce sont les deux et uniques commandes à fournir pour obtenir un pilotage automatique des signaux.
 - 1 pour les signaux hors gare caractérisés par la couleur par défaut le vert.
 - 2 pour les signaux en gare caractérisés par la couleur par défaut le rouge.

Description sous forme dite de complémentarité

La description dite de complémentarité consiste à
- Rétablir la forme canonique des descriptions correspondant aux 2 familles de règles
Famille 1: SVn(*)SVn(^wn,1+)   n pour numéro de signal, exemple SV7(*)SV7(^w7,1+)
Famille 2: SRn(*)SRn(^wn,2+)   n pour numéro de signal , exemple SR7(*)SR7(^w7,2+)
- Compléter la description avec ce que ne sait pas traiter automatiquement JAO
Cette forme de description demande un minimum de connaissance des macro-commandes JAO
Le premier élément, ici SVn ou SRn suivant la famille correspond à la commande de signal à passer par défaut c'est à dire au démarrage réseau ou lorsque le traitement des signaux n'aboutit pas.
Le deuxième élément correspond au périmètre d'application des évènements les cantons à prendre en compte pour piloter les feux, le caractère * est utilisé pour désigner tous les cantons. A chaque évènement l'algorithme de traitement des feux est invoqué, il s'agit d'un traitement par table de vérité dont vous trouverez l'explication en chapitre.
Les évènements sont produits par les capteurs de présence sur chaque canton, soit par un en entrée et un capteur en sortie (sauf pour les cantons courts).
Les évènements sont également produits par les convois lors de leurs changement d'allure, passage au démarrage, en accélération au ralenti et à l''arrêt, et également lorsque le programme cherche une solution pour les convois à l'arrêt. D'autres évènements peuvent intervenir comme le verrouillage d'un canton par commande Gn ou sa libération commande Ln.
Les deux éléments suivants correspondent à la forme canonique de commande de feux suivant les deux familles de la forme simplifiée 1 ou 2. Il s'agit de la commande de feu SRn ou SVn et de la condition notée entre parenthèse. La condition notée wn,1 ou wn,2 déclenche l'algorithme de traitement du feu n qui fournit une réponse vrai ou faux . Nous traiterons la réponse négative en préfixant par ^ not afin d'assigner l'ordre par défaut que nous venons de  décrire SVn ou SRn. Afin de poursuivre avec d'autres descriptions, les éléments suivants, nous fournissons le caractère + qui en macro JAO signifie continuer quel que soit le résultat.
Les éléments suivants correspondent à des commandes à passer suivant conditions, un ordre tel que SVR1 suivi de conditions telles que (o1,?&q1&a1,2) ce qui signifierait:
Signal canton 1 sens 0 au vert lorsqu'un convoi occupe le canton 1 et se dirige vers le canton 2.
Ce couple d'éléments peut être répété autant de fois que nécessaire pour décrire une situation

 Exemple: n:22/e:1/a:0/z:1/r:28/c:102/p:0/x:20/y:64/m:SJ22(22,24,26,14,12)SJ22(^w22,1)SJ22(c22,1&fR24&o24,0)|(c22,0&fR14&o14,0);
  Le signal 22 est initialisé en feu jaune, il suit les règles des signaux hors gare sauf:
- Lorsque l'aiguillage 22 est positionné en direct et que le feu 24 est rouge avec le canton 24 inoccupé
  ou lorsque  l'aiguillage 22 est positionné en dévié  et que le feu 14 est rouge avec le canton 14 inoccupé

Description sous forme libre dite canonique

Cette forme de description  s'appuie intégralement sur les macro-commandes, elle peut s'avérer complexe à mettre en œuvre.

1)      Les signaux n’ont pas de dépendance absolue avec les alimentations (cantons). Un signal peut couvrir le pilotage de plusieurs feux.
En pratique pour obtenir la visualisation des signaux 'physiques' il est souhaitable de faire un appariement entre numéros de signaux et numéros de cantons.
L'électronique JAO fournit les commandes de signaux par l'intermédiaire des cartes alimentation à raison de 3 feux par sens d'alimentation.
Les numéros de signaux 1 à 128 correspondent à la signalisation en sens 0.
Les numéros de signaux 129 à 255 correspondent à la signalisation en sens 1.
L’appariement avec l'électronique est dans la description proprement dite, numéro d'alimentation et sens.

2)      Rappel du principe de  fonctionnement
Le principe suivant a été retenu :
Pour chaque signal on décrira :
-a- La portée autrement dit tous les cantons qui sont susceptibles d’influer sur le comportement du ou des signaux.
  une simple liste de N° de canton.
-b-  Pour chaque état (couleur de signal) on décrit les conditions de mise en œuvre sauf pour l’état initial, la signalisation dite statique.
 une macro-commande telle que nous la connaissons avec des actions déclenchées  sur évènement

3)      La Commande des feux
C’est la codification que l’on trouve dans les macros commandes
S(E|R|V|J) Commander un signal S(E|R|V|J)aaa,sens:
    avec E éteint, V vert, R rouge, J jaune
    aaa numéro de signal (assimilé alimentation donc canton)
   Optionnel le sens 0 ou 1 .  2 pour les deux sens uniquement sur SE éteindre les deux feux du cantons aaa
Lorsque le sens n'est pas précisé les numéros de signaux 1 à 128 sont ceux correspondant au sens 0 des cantons (alimentation)
les numéros 129 à 256 sont ceux correspondant au sens 1 des cantons
    Ex: SV21 Signal 21 sur canton 21 sens 0 au Vert   SR149 Signal 149 sur canton 21 sens 1 au Vert
    Ex: SE21,2 Signaux sur canton  21 éteints soit signal 21 et 149 

4)      La description proprement dite
Nous avons donc une description obligatoire celle de l’état initial avec la portée, les cantons à prendre en compte
Exemple SE1,2(3,1)
Soit Signal 1 initialisé à l’état éteint dans les 2 sens avec la liste des cantons,  le numéro 1 et le numéro 3 dans cet exemple.
Trois états facultatifs pour décrire  les changements de couleurs d’un ou de plusieurs signaux
Exemple simple : SR1(o1,?) SJ1,0(o3,?)  SV1()
Signal rouge si le canton 1 est occupé, sinon signal jaune si canton 3 est occupé sinon signal vert sans condition
Exemple plus complexe : SJ164(36,34,30,31,20,21,22,23,24,35) SR164((o34,?|o35,?)|(o30,?&o31,?)|(o20,?&o21,?&o22,?&o23,?&o24,?)) SV164();
qui pourrait aussi bien s’écrire : SJ36(36,34,30,31,20,21,22,23,24,35) SR36((o34,?|o35,?)|(o30,?&o31,?)|(o20,?&o21,?&o22,?&o23,?&o24,?)) SV36();
La numérotation du signal effectivement pris en compte pour commande de l’électronique prend les valeurs  entre 1 et 128. Les numéros entre 129 et 256 sont 'tolérés' et automatiquement reconvertis dans la plage  1 à 128, par exemple 129 est interprété comme 1. L’important est de ne pas se tromper de sens 1 ou 0.

Autre exemple avec le pilotage de deux signaux:
SE36(36,46,47,48,3) SR36SR3,0(o36,?) SJ36(o46,?|o47,?|o48,?|o3,?) SV36()
C’est tout à fait possible et vraisemblablement opportun dans certaines configurations. Dans l’exemple le signal 36 prend en compte outre son fonctionnement  le passage au rouge ou plutôt un des passages au rouge du signal 3.

5)      L'implémentation ' ou écrire le code de commande des signaux'

Le fonctionnement peut être décrit avec tous les supports de macro-commandes, signaux.res.txt que nous venons de décrire mais également sous macros.d09 et sous macros_ex.txt.
Le fonctionnement peut également être décrit en langage de script ou en langage compilé en externe avec ou sans dépendance avec la description interne des signaux sous  signaux.res.txt.

a suivre ...

 

Exemple d'implémentation

La numérotation des signaux  - Appariement avec numéro de canton et sens d'alimentation

Exemple de description de fonctionnement d'un signal

SE44(44,6)SR44(c26,1&(o6,?|o44,?))SV44(c26.0&(o6,?|o44,?)) SE44()
 le signal 44 est éteint tant qu'il n'y a pas de circulation sur les canton 44 et 6.
SR44(c26,1&(o6,?|o44,?)) Le signal passe au rouge lorsque l'aiguillage n'est pas positionné en direct (vers 44) et qu'au moins un des cantons 44 ou 6 est occupé.
SV44(c26.0&(o6,?|o44,?)) Le signal passe au vert lorsque l'aiguillage est positionné en dévié et qu'au moins un des cantons 44 ou 6 est occupé.
SE44() Par défaut le signal est éteint si aucun des deux états précédents n'est validé par leurs conditions respectives.
A noter:
La même signalisation réalisée sur le sens 1 du canton 44 se coderait ainsi:
SE172(44,6)SR172(c26,1&(o6,?|o44,?))SV172(c26.0&o44,0&(o6,?|o44,?)) SE172()
avec une numérotation du signal à 172 .

Exemple de description du fonctionnement de 3 signaux
Signal 44
SR44SJ43SV42(6,44,43,42,41) SR44SJ43,0SV42((o44,0&o43,0&o42,0)|(q44&p6,!|q43&p44,!|q42p43,!))SV44(q44a44,!|q43a43,!|q42a42,!)SR44,0(q44^o6,!|q43^o6,!|q44p43,!)
Le signal 44 pilote 3 signaux pour l'essentiel
Signal 43
SJ43(43,42,41)SV43(q43a43,!&p41,!) SR43(q43&p42,!) description de fonctionnement complémentaire à celle définie sous le signal 44
Signal 42
pas de description le signal 42 est intégralement piloté par le signal 44
1) Définition du périmètre influant sur l'état des signaux et de l'état initial des signaux
La circulation sur les cantons 6 44 43 42 et 41 influe sur l'état des signaux. Par défaut le signal 44 est au rouge, le 43 au jaune et le 42 au vert
SR44SJ43SV42(6,44,43,42,41)
2) Stratégie d'implémentation
Quels signaux doivent décrire le fonctionnement ?
Tous les signaux peuvent avoir leur description de fonctionnement, mais pour simplifier ou rationaliser la description et quelque fois pour simplifier le pilotage il peut être judicieux de décrire le fonctionnement sous un des signaux: Celui-ci asservira en quelque sorte les autres signaux.
3) Description de fonctionnement
SR44SJ43SV42((o44,0&o43,0&o42,0)|(q44&p6,!|q43&p44,!|q42p43,!)) L'état initial des signaux est rétabli lorsqu'il n'y a plus de circulation sur les cantons 44, 43 et 42 ou lorsqu'il y a passage d'un convoi dans le sens 1 (de 41 vers 6)
SV44(q44a44,!|q43a43,!|q42a42,!+) Passage au vert du signal 44 lorsqu'un convoi se dirige vers le 6. cet état n'est pas définitif il peut être remis en cause en fonction de l'occupation du canton 6. Cette disposition est concrétisée par la code + placé en fin de condition. Le programme après avoir assigné temporairement le feu vert pourra remettre en cause cette assignation avec les conditions qui suivent.
SR44(q44^o6,!|q43^o6,!|q44p43,!) Feu rouge sur 44 si 44 est occupé par la tête de convoi ou si le canton 6 est occupé par un convoi différent de celui se dirigeant vers 6.
SV43(q43a43,!&p41,!) Feu vert sur 43 si un convoi se dirigeant vers 6 occupe le canton 42 (tête de convoi)
SR43(q43&p42,!) Feu rouge  sur 43 si un convoi se dirigeant vers 6 occupe le canton 43 (tête de convoi)
4) Implémentation des ordres de pilotage
L'essentiel du pilotage est implémenté avec le signal 44. Pour faciliter la maintenance de cette programmation et démontrer la flexibilité du dispositif le signal 43 gère une partie du pilotage qui le concerne directement.
Cette programmation peut encore être enrichie, par exemple avec la programmation du feu rouge sur le signal 42 ou encore en étendant le contexte, le périmètre, aux cantons en amont du 41.
A vous de jouer
Imprimer   Mise à jour le 27 février 2015