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 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
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
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.
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é
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 ...
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() |
![]() |
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 |