CA2187817A1 - Systeme d'enclenchement ferroviaire a architecture logicielle et son procede d'implementation - Google Patents

Systeme d'enclenchement ferroviaire a architecture logicielle et son procede d'implementation

Info

Publication number
CA2187817A1
CA2187817A1 CA002187817A CA2187817A CA2187817A1 CA 2187817 A1 CA2187817 A1 CA 2187817A1 CA 002187817 A CA002187817 A CA 002187817A CA 2187817 A CA2187817 A CA 2187817A CA 2187817 A1 CA2187817 A1 CA 2187817A1
Authority
CA
Canada
Prior art keywords
last
receipt
entr
sending
rtechk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002187817A
Other languages
English (en)
Inventor
Gilles Antonetti
Yvan Herreros
Guillaume Bres
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alstom Transport SA
Original Assignee
Gilles Antonetti
Yvan Herreros
Guillaume Bres
Gec Alsthom Transport Sa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gilles Antonetti, Yvan Herreros, Guillaume Bres, Gec Alsthom Transport Sa filed Critical Gilles Antonetti
Publication of CA2187817A1 publication Critical patent/CA2187817A1/fr
Abandoned legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B61RAILWAYS
    • B61LGUIDING RAILWAY TRAFFIC; ENSURING THE SAFETY OF RAILWAY TRAFFIC
    • B61L19/00Arrangements for interlocking between points and signals by means of a single interlocking device, e.g. central control
    • B61L19/06Interlocking devices having electrical operation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B61RAILWAYS
    • B61LGUIDING RAILWAY TRAFFIC; ENSURING THE SAFETY OF RAILWAY TRAFFIC
    • B61L1/00Devices along the route controlled by interaction with the vehicle or train

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Train Traffic Observation, Control, And Security (AREA)
  • Electric Propulsion And Braking For Vehicles (AREA)

Abstract

Système d'enclenchement ferroviaire à architecture logicielle et son procédé d'implémentation Un système d'enclenchement ferroviaire, qui sert au trafic des trains en sécurité sur un réseau constitué d'une pluralité d'équipements de voie, comprend un ensemble de tâches (Trc-AEA,...) associées respectivement aux équipements de voie constituant le réseau. Les tâches mettent en oeuvre une logique distribuée d'établissement et de libération d'itinéraires par propagation de messages à travers des successions de canaux (6) logiques de communication interconnectant les tâches suivant une disposition correspondant à une certaine topologie géographique du réseau ferroviaire sous contrôle. L'implémentation du système se fait par un traitement informatique d'un fichier de description du réseau et d'une bibliothèque de modules génériques implémentant chacun un automates à états finis.

Description

~l8~l7 Système d'enclenchement ferroviaire à architecture logicielle et son procédé d'implémentation L'invention concerne le trafic des trains en sécurité
sur un réseau ferroviaire, et plus particulièrement un système d'enclenchement ferroviaire basé sur une architecture logicielle.
Un tel système est déjà connu de la demande de brevet européen N0581281. Ce système comprend une base de règles, lo un moteur d'inf~rence, et un modèle de données sur lequel sont appliquées les règles pour établir et libérer des itinéraires. Le modèle de données représente les équipements de voie constituant le réseau par des sortes de portes logiques. Chaque règle définit des conditions à vérifier par 15 une porte logique avant qu'une entrée d'un train sur l'équipement de voie correspondant du réseau soit permise.
Ce système d'enclenchement présente l'avantage d'~tre beaucoup plus flexible que les solutions traditionnelles à
base de relais. En particulier, un tel système 20 d'enclenchement peut être implémenté par un traitement informatique d'un fichier de description de haut niveau d'abstraction du réseau et de la base de règles de fa,con à
constituer le modèle de données correspondant au réseau à
contrôler. Si la base de règles est con,cue de façon assez 25 générique, elle peut servir pour l'implémentation d'autres systèmes d'enclenchement sans modification. Malgré sa flexibilité, ce système d'enclenchement ferroviaire connu requiert pour son exécution, une ressource de traitement centralisée dans laquelle réside la base de règles, le 30 modèle de données et le moteur d'inférence. Les capacités de traitement de cette ressource doivent être d'autant plus importantes que le réseau ferroviaire sous contrôle est complexe puisque la complexité du modèle de données croit avec celle du réseau. Il est d'ailleurs suggéré dans le 35 document cité ci-dessus, d'exploiter une ressource multiprocesseurs qui permet de paralléliser certains -traitements avec pour inconvénient de rendre la maintenance du système plus complexe.
Le but de l'invention est de proposer un système d'enclenchement ferroviaire basé sur une architecture logicielle d'une autre conception et susceptible d'être distribué sur une pluralité de ressources de traitement de faible coût comme des micro-ordinateurs. En particulier, l'invention vise à fournir un tel système d'enclenchement ferroviaire apte à exploiter les ressources de traitement 10 déjà en place dans les installations de contrôle/commande de réseaux ferroviaires existants et servant à l'acquisition des signaux provenant des équipements de voie.
A cet effet, l'invention a pour objet un système d'enclenchement ferroviaire basé sur une architecture logicielle et servant au trafic des trains en sécurité sur un réseau constitué d'une pluralité d'équipements de voie.
Ce système comprend un ensemble de tâches associées respectivement aux équipements de voie constituant le réseau. Les tâches mettent en oeuvre une logique distribuée 20 d'établissement et libération d'itinéraires par propagation de messages à travers des successions de canaux logiques de communication interconnectant les tâches suivant une disposition correspondant à une certaine topologie géographique du réseau ferroviaire sous contrôle. En 25 particulier, cette logique distribuée de propagation de messages est implémentée dans les tâches sous la forme d'automates à états finis. Les automates à états finis interagissent entre eux en propageant les messages le long des canaux logiques de communication.
Selon cette architecture logicielle, les tâches ont un comportement asynchrone. Une grande complexité d'un réseau ferroviaire à contrôler se traduit par un grand nombre de tâches à exécuter. Toutefois, vu que les tâches ont un comportement asynchrone, il n'est pas utile de prévoir une 35 ressource de traitement de très forte capacité pour leur exécution car les tâches peuvent être distribuées sur un ~1 8~81~

ensemble de ressources de traitement de faible capacité
d'exécution si seulement un petit nombre de tâches résident dans chaque ressource de traitement de faible capacité, le coût d'un tel ensemble de ressources de traitement de faible 5 capacité étant en plus bien inférieur à celui d'une ressource unique de traitement de capacité équivalente. En plus, le fonctionnement autonome et asynchrone des tâches de la solution selon l'invention permet un contrôle simple du bon fonctionnement de chaque tâche ce qui contribue à
10 diminuer les coûts de maintenance du système d'enclenchement.
L'invention s'étend à un procédé pour implémenter un tel système d'enclenchement ferroviaire sur la base d'un traitement informatique d'un fichier de description de haut 15 niveau d'abstraction du réseau ferroviaire à contrôler et d'une bibliothèque de modules logiciel génériques implémentant chacun un automate à états finis correspondant à un type d'équipement de voie. La bibliothèque de modules logiciel génériques peut servir, sans modification, à
implémenter différents systèmes d'enclenchement pour contrôler différents réseaux ferroviaires correspondants.
Un exemple de réalisation de l'invention est décrit ci-dessus en référence aux figures.
La figure 1 montre schématiquement un centre de contrôle électronique intégré incluant le système selon l'invention.
La figure 2 est un synoptique d'un réseau ferroviaire.
La figure 3 illustre l'architecture logicielle du système selon l'invention adaptée au réseau ferroviaire 30 montré à la figure 2.
La figure 4 est un schéma illustrant la propagation de flots de messages à travers des tâches associées à une succession d'équipements de voie correspondants.
La figure 5 illustre le procédé pour implémenter un système selon l'invention.

218/gl~

La figure 6 est un synoptique d'un réseau ferr ~iaire à partir duquel est constitué un fichier de description de haut niveau d'abstraction du réseau.
Figure 1, le système d'enclenchement ferroviaire 1 selon l'invention fait partie d'un ensemble plus complexe (centre de contrôle électronique intégré) comprenant un poste de contrôle 2 depuis lequel un opérateur surveille la situation sur le réseau ferroviaire 3 sous le contrôle du système d'enclenchement.
Un système d'enclenchement ferroviaire sert à établir (enclencher~ et libérer des itinéraires de telle façon à
maintenir la sécurité du trafic sur un réseau. En particulier, il s'agit d'éviter la collision de trains sur le réseau. Or une collision peut survenir si par exemple des itinéraires enclenchés se croisent.
Le système d'enclenchement 1 selon l'invention comprend un ensemble de tâches associées respectivement à
des équipements de voie correspondants constituant le réseau à contrôler et communiquant entre elles par des messages de façon asynchrone comme décrit ci-après.
Plus particulièrement, les tâches implémentent une logique distribuée pour établir et libérer des itinéraires par propagation de messages à travers des successions de canaux logiques de communication interconnectant chacun une sortie de message d'une tâche et une entrée de message d'une autre tâche. Les canaux logiques de communication sont implémentés entre les tâches suivant une disposition correspondant à une certaine topologie géographique du réseau de telle sorte que chaque succession de canaux logiques de communication correspond en fait à un itinéraire prédéfini de circulation des trains sur le réseau. En d'autres termes, pour un itinéraire passant successivement par une succession d'équipements de voie, il y a une succession correspondante de canaux logiques de communication qui interconnectent des tâches associées à ces équipements.

2l878l 7 La figure 2 montre schématiquement un r~seau ferroviaire qui sert d'exemple pour expliquer l'invention et la figure 3 montre l'architecture logicielle du système d'enclenchement ferroviaire correspondant à cet exemple de 5 réseau.
Figure 2, le réseau ferroviaire comporte deux voies AE
et AB couplées par un aiguillage et desservant une gare G.
Ce réseau est constitué, d'un point de vue fonctionnel, d'une pluralité d'équipements de voie, la disposition relative des équipements de voie définissant une certaine topologie géographique du réseau.
Sur la voie AE, on trouve disposés en séquence (de gauche à droite sur la figure 2), un premier circuit de voie référencé AEA, un second circuit de voie AEB, un signal 15 multi-aspects MP263 (feu tricolore par exemple), un premier aiguillage MP2205B (à commande électrique), un second aiguillage MP2206A, un signal de manoeuvre MP1002 ( feu bicolore notamment), un troisième circuit de voie AED, un second signal multi-aspects MP265, un quatrième circuit de 20 voie AEE et un cinquième circuit de voie AEF.
Sur la voie AB, on trouve disposés en séquence (de droite à gauche sur la figure 2), un premier circuit de voie ABE, un second circuit de voie ABG, un premier signal multi-aspects MP262, un troisième circuit de voie ABJ, un premier 25 aiguillage MP2206B, un second aiguillage MP2205A, un second signal multi-aspects MP261, un quatrième circuit de voie ABP
et un cinquième circuit de voie ABR.
Sur ce réseau, les trains peuvent empreinter différents itinéraires prédéfinis partant chacun d'un signal 30 multi-aspects comme le signal MP261 ou d'un signal de manoeuvre et passant par des successions différentes d'équipements de voie. A titre d'exemple, l'itinéraire référencé R261 sur la figure 2, part du signal multi-aspects MP261 et passe successivement par l'aiguillage MP2205A, 35 l' aiguillage MP2206B, 1' aiguillage MP2206A, le circuit de voie AED et enfin par le signal multi-aspects MP26S. Il est 21~7~7 entendu que les signaux font ou non partie d'un itinéraire suivant leur orientation par rapport au sens de circulation du train sur l'itinéraire.
Figure 3, l'architecture logicielle du système 5 d'enclenchement ferroviaire correspondant au réseau ferroviaire de la figure 2 reprend la topologie géographique de ce réseau. sur cette figure, les tâches sont représentées par des blocs entre lesquels apparaissent des canaux logiques de communication représentés par des flèches 6. Un 10 canal logique de communication implémenté entre deux tâches correspond à une partie d'un itinéraire passant par les deux équipements de voie associés à ces deux tâches. Si un train peut emprunter cette partie d'itinéraire dans les deux sens de circulation, les tâches correspondantes sont interconnectées par deux canaux logiques de communication parallèles. C'est le cas par exemple pour les deux canaux logiques de communication interconnectant les tâches référencées dPnt-2205A et dPnt-2206B.
Pour plus de clarté, les blocs représentant les tâches sont présentés suivant des formes différentes en fonction du type d'équipement de voie associé à chaque tâche car les tâches associées à un même type d'équipement de voie ont un fonctionnement logique identique. On distingue sur la figure 3, des tâches Sig-261,Sig-262,Sig-263 et Sig-265 associées 25 chacune à un signal multi-aspects, des tâches Trc-AEA,Trc-AEB,Trc-AED,Trc-AEE,Trc-AEF,Trc-ABE,Trc-ABG,Trc-ABJ,Trc-ABP
et Trc-ABR associées chacune à un circuit de voie, une tâche Shi-1002 associée à un signal de manoeuvre et des tâches dPnt-2205A,dPnt-2205B,dPnt-2206A et dPnt-2206B associées chacune à un aiguillage.
Le principe de fonctionnement de la logique distribuée par propagation de messages est décrit ci-après sur la base de l'itinéraire R261 et en référence aux figures 3 et 4.
L'itinéraire R261 correspond à une succession des canaux logiques de communication interconnectant en séquence les tâches Sig-261,dPnt-2005A,dPnt-2006B,dPnt-2005B,Trc-AED et ~1878~

Sig-265 dont les blocs correspondant sont montrés hachurés sur la figure 3. L'entrée de l'itinéraire R261 correspond à
la tâche Sig-261.
Etablissement de l'itinéraire R261 L'établissement d'un itinéraire est requis depuis le poste de contrôle 1. Une requête d'établissement de cet itinéraire envoyée du poste de contrôle 1 (symbolisé par sys sur la figure 4) est recue par la tâche d'entrée de l'itinéraire sous la forme d'un message d'entrée incluant un 10 identificateur d'itinéraire. Dans l'exemple, la tâche Sig-261 re~oit le message Req(R261), l'identificateur d'itinéraire étant symbolisé par R261. Un premier processus de propagation du message de requête d'établissement de l'itinéraire, depuis la tâche d'entrée de l'itinéraire et suivant une boucle passant par la série de tâches correspondant à cet itinéraire et revenant à la tâche d'entrée de l'itinéraire, est mis en oeuvre par l'ensemble de ces tâches. En particulier, le message R261 est propagé
par les tâches Sig-261,dPnt-2005A,dPnt-2006B,dPnt-2005B,Trc-20 AED et Sig-265 suivant une boucle dite boucle d'allocation au cours de laquelle, chaque tâche en question s'alloue pour l'itinéraire R261 sur réception du message Req(R261) sau~ en présence d'une situation de conflit (la tâche est déjà
allouée pour un autre itinéraire). Dans le cas d'une situation de conflit détectée par une tâche, un message Conf(R261) est remonté, de tâche en tâche, depuis la tâche en question vers la tâche d'entrée d'itinéraire comme la tâche Sig-261, laquelle transmet ce message au poste de contrôle. Figure 4, si toutes les tâches correspondant à
l'itinéraire R261 se sont allouées pour l'itinéraire R261, la dernière tâche Sig-265 renvoie le message Req(R261) à la tâche Sig-261 d'entrée de l'itinéraire R261. La tâche Sig-261 envoie un message Alloc(R261) au poste de contrôle pour confirmation. Ce premier processus garantit que chaque t~che s'alloue pour un seul itinéraire prédéfini dont l'établissement est requis.

Un second processus est ensuite mis en oeuvre par les tâches qui se sont allouées pour un itinéraire, afin de contrôler que l'ensemble des équipements de voie de l'itinéraire sont placés dans une position correcte (positionnement des aiguilles notamment) avant d'ouvrir la circulation d'un train sur l'itinéraire et, dans le cas contraire, les commander pour les placer dans la position requise. Ce second processus consiste encore dans la propagation d'un message Ctrl de tâche en tâche, depuis la 10 tâche d'entrée de l'itinéraire et suivant une boucle dite boucle de commande. sur réception de ce message, chaque tâche commande la mise en position correcte de l'équipement de voie auquel elle est associée et récupère dans un signal d'état une information relative à la position courante 15 occupée par cet équipement. En particulier, la tâche Sig-261 sur réception du message Req(R261) provenant de la tâche Sig-265 commande la mise au rouge du signal MP261, récupère l'information relative à l'état courant du signal MP261 et propage cette information dans un paramètre rtechk inclu 20 dans le message Ctrl(R261,rtechk). Le message Ctrl(R261,rtechk) est propagé de tâche en tâche tandis que le paramètre rtechk est mis à jour par chaque tâche et chaque équipement de voie est commandé pour occuper la position correcte avant l'ouverture de l'itinéraire.
25 Finalement, la tâche Sig-265 renvoie le message Ctrl(R261,rtechk) à la tâche Sig-261. Quand la tâche Sig-261 reçoit le message Ctrl(R261,rtechk), elle effectue un traitement pour contrôler, à partir des informations contenues dans le paramètre rtechk, si l'ensemble des 30 équipements de voie sont positionnés correctement. Si l'ensemble des équipements de voies ne sont pas positionnés correctement, le message Ctrl(R261,rtechk) est de nouveau propagé suivant la boucle de commande. Dans le cas où les équipements de voie sont tous positionnés correctement, la 35 tâche Sig-261 envoie le message Set(R261) au poste de contrôle pour confirmer que l'itinéraire R261 est maintenant
2 1 ~7~ 1 7 g établi ~ou enclenché) jusqu'à l'occurrence d'une condition de libération. Il est possible que le message Ctrl soit propagé plusieurs fois suivant la boucle de commande avant que l'ensemble des équipements de voie soient positionnés correctement en raison du fait que le temps nécessaire à
certains équipements de voie pour changer de position (changement de position d'une aiguille) est plus long que le temps nécessaire pour propager le message Ctrl suivant la boucle de commande.
lo Sur réception du message Ctrl(R261,rtechk), la tâche Sig-261 commence un processus de contrôle périodique de l'état des équipements de voie. Ce processus consiste dans la propagation du message Chk(R261,rtechk), de tâche en tâche, suivant une boucle dite boucle de contrôle au cours 15 de laquelle chaque tâche récupère une information relative à
l'état courant de l'équipement de voie qui lui est associé
et fait remonter cette information dans le paramètre rtechk via le message Chk(R261,rtechk) jusqu'à la tâche d'entrée de l'itinéraire. La tâche Sig-265 renvoie le message Chk(R261,rtechk) à la tâche Sig-261 qui contrôle, à partir du paramètre rtechk, l'état courant des équipements de voie, de sorte qu'un dysfonctionnement des équipements de voie de l'itinéraire enclenché peut facilement être détecté. Ce processus est mis en oeuvre de façon périodique, avec une fréquence assez élevée.
Libération automati~ue de l'itinéraire établi Quand un train s'engage sur l'itinéraire R261 qui a été établi, sa progression sur cet itinéraire se traduit par des changements des informations dans le paramètre rtechk du 30 message Chk. Normalement, seul le signal multi-aspects d'entrée de l'itinéraire R261 peut évoluer dans le temps, entre l'instant où l'itinéraire est établi et l'instant où
il est libéré, en passant successivement dans les états rouge, orange et vert. A partir du moment où la tâche Sig-261 détecte que le train a franchi un certain nombre decircuits de voie de l'itinéraire par identification des 218781~

changements dans le paramètre rtechk à chaque boucle de contrôle, elle commence un processus de libération de l'itinéraire R261 qui consiste encore dans la propagation d'un message, ici le message Free(R261), de tâche en tâche suivant une boucle dite boucle de libération au cours de laquelle chaque tâche se désalloue pour l'itinéraire sur réception du message Free. Dans l'exemple de la figure 4, quand la tâche Sig-261 reçoit le message Free(R261) de la tâche Sig-265, l'ensemble des tâches de l'itinéraire R261 lo sont désallouées et la tâche Sig-261 envoie ce message au poste de contrôle pour information. A partir de ce moment, la circulation sur l'itinéraire R261 n'est plus autorisée jusqu'à ce que cet itinéraire soit de nouveau établi.
Il est entendu que cette logique de propagation de 15 messages peut être raffinée, suivant le principe indiqué ci-dessus, pour implémenter d'autre fonctionnalités comme la libération d'itinéraires sur requête de l'opérateur, le maintien permanent d'un itinéraire établi, etc....
Suivant l'invention, la logique de propagation de 20 messages est constituée avantageusement par des automates à
états finis qui sont implémentés dans les tâches. Chaque automate d'une tâche se déclenche sur réception d'un message attendu, transite d'un état courant à un autre état en effectuant un certain traitement et renvoie un message en sortie. Les états successifs de chaque automate correspondent aux processus successifs de propagation des différents messages. Suivant cette solution, l'implémentation du système d'enclenchement ferroviaire 1 peut être réalisée de façon semi-automatique à partir d'un 30 traitement informatique d'un fichier 5 de description de haut niveau d'abstraction du réseau ferroviaire à contrôler et d'une bibliothèque 6 de modules logiciel génériques implémentant chacun un automates à états finis correspondant à un type d'équipement de voie.
Plus particulièrement, figure 5, à partir d'un synoptique 4 du réseau ferroviaire à contrôler, un -technicien exprime les caractéristiques du réseau en données d'un langage de haut niveau d'abstraction, ces données étant consignées dans le fichier de description 5. Un exemple du contenu d'un fichier de description de haut niveau 5 d'abstraction pour le réseau ferroviaire montré à la figure 6 est donné à l'annexe 1 (à noter que ce réseau ferroviaire est analogue à celui montré à la figure 2). Le contenu de ce fichier de description est analogue à celui utilisé pour implémenter le système d'enclenchement ferroviaire connu du 10 brevet européen N0581281 indiqué comme état de la technique. On retrouve dans ce fichier différentes sections (indiquées par "Level 0, Level 1, ....") qui définissent les caractéristiques du réseau, répertorient l'ensemble des équipements de voie et identifient des itinéraires. Ainsi à
la section référencée "Level 2A", on trouve une description de l'itinéraire R261 qui a servi d'exemple pour la description du fonctionnement de la logique distribuée de propagation des messages.
Un exemple du code source d'un module logiciel 20 générique implémentant un automate à états finis correspondant à un signal multi-aspects est fourni à
l'annexe 2. Un autre exemple du code source d'un module générique correspondant à un circuit de voie est encore fourni à l'annexe 3. Le code source de chaque module est 25 donné ici dans un langage de haut niveau sémantique. Il comprend plusieurs sections et notamment une section de déclaration de messages d'entrée "Input Messages", une section de déclaration de messages de sortie "Output Messages" et une section de déclaration d'états de 30 transition "States". Dans les sections de déclaration de messages d'entrée ou de sortie, l'émetteur ou le récepteur du message est représenté par un identificateur générique tel "Sig","Tim","Sys","Up","Dn","Back". L'annexe 4 illustre les flots de messages Req,Ctrl,Chk etc... en reprenant la 35 terminologie des messages utilisée dans le code source des modules génériques donné aux annexes 2 et 3.

~ 12 2187~17 Au moment du traitement informatique indiqué ci-dessus en référence à la figure 5, le code source de chaque tâche est généré à partir du code source d'un module générique correspondant à l'équipement de voie qui doit être associé à
5 la tâche et les identificateurs génériques d'émetteur et de récepteur de messages sont "remplacés" par des identificateurs de tâche appropriés récupérés du fichier de description du réseau pour établir les canaux logiques de communication. On cmprendra aisément que chaque canal logique de communication est une connexion qui est établie, dans le code source de chaque tâche, par une primitive d'émission ou de réception d'un protocole de communication point ~ point du type premier entré premier sorti (FIFO). Le code source des tâches est ensuite compilé pour obtenir les lS tâches exécutables communiquant par messages du système d'enclenchement selon l'invention. Il est entendu que les unités de traitement supportant les tâches devront être connectées entre elles par l'intermédiaire d'un réseau physique de communication, du genre réseau de terrain, qui 20 supporte un protocole de communication comme défini ci-dessus.

Claims (4)

1/ Un système d'enclenchement ferroviaire basé sur une architecture logicielle et servant au trafic des trains en sécurité sur un réseau ferroviaire constitué d'une pluralité
d'équipements de voie, caractérisé en ce qu'il comprend un ensemble de tâches (Trc-AEA,Trc-AEB,...) associées respectivement aux équipements de voie (AEA,AEB,...) correspondant constituant le réseau, en ce que les tâches implémentent une logique distribuée pour l'établissement et la libération d'itinéraires par propagation de messages (Req,Ctrl,Chq,Free) à travers des successions de canaux logiques de communication (6) interconnectant chacun une sortie de message d'une tâche et une entrée de message d'une autre tâche, et en ce que les canaux logiques de communication sont implémentés entre les tâches suivant une disposition correspondant à une certaine topologie géographique du réseau.
2/ Le système selon la revendication 1, dans lequel la logique distribuée de propagation de messages est constituée par des automates à états finis implémentés dans les tâches.
3/ Le système selon la revendication 1, dans lequel la logique distribuée est agencée pour propager des messages à
travers une succession de tâches dont les équipements de voie associés définissent un itinéraire, de telle façon que ces messages suivent des canaux logiques de communication interconnectant ces tâches selon une boucle partant de la première tâche de cette succession, passant successivement par les autres tâches de cette succession et revenant à la première tâche.
4/ Un procédé pour implémenter un système d'enclenchement ferroviaire selon la revendication 2, consistant dans le traitement informatique d'un fichier de description de haut niveau d'abstraction du réseau ferroviaire et d'une bibliothèque de modules logiciel génériques implémentant chacun un automate à états finis correspondant à un type d'équipement de voie.

Annexe 1 /* LDL Layout Specification */
@@@ SCHEME PLAN @@
SCHEME PLAN : : Layout _ 1 _ 02 ;
{
INTERLOCKING : MANAIR;
VERSION : V4.0;
DATE: 18.DEC.93;
SOURCE: "B.C. - Conforms to Issue 4 LDL BNF Spec. ";
L0: 3;
L1: 16;
L2A: 15;
L2B: 3;
L2C: 0;
L3A: 43;
L3B: 10;
L3C: 0;
]
@@@@

/* Level 0 - Network */
@@@ L0-1 @@
LINE_OF_WAY :: branch1;
( NODE_0: manchester_airport_station;
NODE_1: boundaryl;
) @@@@
@@@ L0-2 @@
BOUNDARY :: boundaryl;
( LINE_OF_WAY: branch1;
TEXT: "To Heald Green";
}
@@@@
@@@ L0-3 @@
FEATURE: : manchester_airport_station;
( LINE_OF_WAY-LIST: branch1;
TEXT: "Manchester Airport Station";
]
@@@@
/* Level 1 - Track */
@@@ L1-1 @@
TRACK : : track1;
( NODE_0: trkend1;
NODE_1: pn1;
LENGTH: 258.50YDS;
]
@@@@
@@@ L1-2 @@

TRACK: : track2;
( NODE_0: pn2;
NODE_1: trkend2;
LENGTH: 393.25YDS;
}
@@@@
@@@ L1-3 @@
TRACK: : track3;
( NODE_0; pn1;
NODE_1: pn3;
LENGTH: 288.75YDS;
]
@@@@
@@@ L1-4 @@
TRACK: : track4;
( NODE_0: pn1;
NODE_1: pn2;
LENGTH: 140.25YDS;
) @@@@
@@@ L1-5 @@
TRACK: : track5;
( NODE_0: pn4;
NODE_1; pn3;
LENGTH: 118.25YDS;
) @@@@
@@@ L1-6 @@
TRACK: : track6;
{
NODE_0: pn4;
NODE_1: pn2;
LENGTH: 41.25YDS;
) @@@@
@@@ L1-7 @@
TRACK: : track7;
{
NODE_0: pn3;
NODE_1: trkbnd1;
LENGTH: 1017.5YDS;
) @@@@
@@@ L1-8 @@
TRACK: : track8;
{
NODE_0: trkbnd2;
NODE_1: pn4;
LENGTH: 1130.25YDS;
}
@@@@

@@@ L1-9 @@
TRACK_END_NODE: : trkend1) {
TRACK: track1;
}
@@@@
@@@ L1-10 @@
TRACK_END_NODE: : trkend2 [
TRACK: track2;
}
@@@@
@@@ L1-11 @@
TRACK_BOUNDARY_NODE: : trkbnd1;
{
TRACK: track7;
]
@@@@
@@@ L1-12 @@
TRACK_BOUNDARY_NODE: : trkbnd2;
[
TRACK: track8;
}
@@@@
@@@ L1-13 @@
POINTS_NODE: : pn1;
( TYPE: CONTROLLED;
PATH_1: (track1, track3);
PATH_2: (track1, track4);
POINT_MACHINE-LIST: PMP2205B;
]
@@@@
@@@ L1-14 @@
POINTS_NODE: : pn2;
{
TYPE: CONTROLLED;
PATH_1: (track6, track2);
PATH_2: (track6, track4);
POINT_MACHINE-LIST: PMP2205A;
) @@@@
@@@ L1-15 @@
POINTS_NODE: : pn3;
( TYPE: CONTROLLED;
PATH_1: (track7, track3);
PATH_2: (track7, track5);
POINT_MACHINE-LIST: PMP2206A;
}
@@@@
@@@ L1-16 @@
POINTS_NODE: : pn4;
{
TYPE: CONTROLLED;

PATH_1: (track6, track8);
PATH_2: (track6, track5);
POINT_MACHINE-LIST: PMP2206B;
]
@@@@
/* Level 2A - Signalling Features */
@@@ L2A-1 @@
INTERLOCKING: : MANAIR;
[
NUMBER: 2;
CONTROL_CENTRE: Manchester_Piccadilly;
CC_ID: MP;
I_SECTION-LIST: ((track1,0,1), (track2,0,1), (track3,0,1), (track4,0,1), (track5,0,1), (track6,0,1), (track7,0,0.814), (track8,0.479,1));
M_SECTION-LIST: ((track1, trkend1, 0YDS, 258.5YDS), (track2, trkend2, 0YDS, 393.25YDS), (track3, pn1, 0YDS, 288.75YDS), (track4, pn1, 0YDS, 140.25YDS), (track5, pn4, 0YDS, 118.25YDS), (track6, pn4, 0YDS, 41.25YDS), (track7, pn3, 0YDS, 827,75YDS), (track8, trkbnd2, 0YDS, 541.75YDS));
}
@@@@
@@@ L2A-2 @@
ROUTE: : R261A (M);
{
TYPE: MAIN;
INTERLOCKING: MANAIR;
ENTRANCE: SMP261;
EXIT: SMP265;
OVERLAP: OAEE;
LENGTH: 921.25YDS;
SPEED_RESTRICTION-LIST: airport_station_area,airport_down;
D_I_SECTION: {((track2,0.413,1),pn2), ((track6,0,1),pn4), ((track5,0,1),pn3), ((track7,0,0.589), trkbnd1)};
D_M_SECTION: {((track2,pn2,0YDS, 162.25YDS),pn2), ((track6,pn4,0YDS, 41.25YDS),pn4), ((track5,pn3,0YDS, 118.25YDS),pn3), ((track7,pn3,0YDS, 599.5YDS),trkbnd1));
}
@@@@
@@@ L2A-3 @@
ROUTE: : R261A(S);
( TYPE: SHUNT;
INTERLOCKING: MANAIR;
ENTRANCE: SMP261;
EXIT: SMP265;
LENGTH: 921.25YDS;

SPEED_RESTRICTION-LIST; airport_station_area,airport_down;
D_I_SECTION: {((track2,0.413,1),pn2), ((track6,0,1),pn4), ((track5,0,1),pn3), ((track7,0,0.589),trkbnd1));
D_M_SECTION: {((track2,pn2,0YDS,162.25YDS),pn2), ((track6,pn4,0YDS,41.25YDS),pn4), ((track5,pn3,0YDS,118.25YDS),pn3), ((track7,pn3,0YDS,599.5YDS),trkbnd1));
}
@@@@
@@@ L2A-4 @@
ROUTE: : R262A(M);
( TYPE: MAIN;
INTERLOCKING: MANAIR;
ENTRANCE: SMP262;
EXIT: bufstop2;
LENGTH: 907.5YDS;
SPEED_RESTRICTION-LIST: airport_up,airport_station_area;
D_I_SECTION: {((track8,0.82,1),pn4), ((track6,0,1),pn2), ((track2,0,1),trkend2));
D_M_SECTION: {((track8,pn4,0YDS,473YDS),pn4), ((track6,pn2,0YDS,41.25YDS),pn2), ((track2,trkend2,0YDS,393.25YDS),trkend2));
) @@@@
@@@ L2A-5 @@
ROUTE: : R262A(C);
{
TYPE: CALL_ON;
INTERLOCKING: MANAIR;
ENTRANCE: SMP262;
EXIT: bufstop2;
LENGTH: 907.5YDS;
SPEED_RESTRICTION-LIST: airport_up,airport_station_area:
D_I_SECTION: [((track8,0.582,1),pn4), ((track6,0,1),pn2), ((track2,0,1),trkend2));
D_M_SECTION: [((track8,pn4,0YDS,473YDS),pn4), ((track6,pn2,0YDS, 41.25YDS),pn2), ((track2,trkend2,0YDS,393.25YDS),trkend2));
}
@@@@
@@@ L2A-6 @@
ROUTE: : R262B(M);
( TYPE: MAIN;
INTERLOCKING: MANAIR;
ENTRANCE: SMP262;
EXIT: bufstop1 LENGTH: 913YDS;
SPEED_RESTRICTION-LIST: airport_up,airport_station_area;
D_I_SECTION: {((track8,0.582,1),pn4), ((track6,0,1),pn2), ((track4,0,1),pn1), ((track1,0,1),trkend));
D_M_SECTION: {((track,8,pn4,0YDS,473YDS),pn4), ((track6,pn2,0YDS,41.25YDS),pn2), ((track4,pn1,0YDS,140.25YDS),pn1), ((track1,trkend1,0YDS,258.5YDS),trkend1));
) @@@@
@@@ L2A-7 @@
ROUTE: : R262B(C);
( TYPE: CALL_ON;
INTERLOCKING: MANAIT;
ENTRANCE: SMP262;
EXIT: bufstop1;
LENGTH: 913YDS;
SPEED_RESTRICTION-LIST: airport_up,airport_station_area;
D_I_SECTION: {((track8,0.582,1),pn4), ((track6,0,1),pn2), ((track4,0,1),pn1), ((track1,0,1),trkend1))};
D_M_SECTION: {((track8,pn4,0YDS,473YDS),pn4), ((track6,pn2,0YDS,41.25YDS),pn2), ((track4,pn1,0YDS,140.25YDS),pn1), ((track1,trkend1,0YDS,258.5YDS),trkend1)};
) @@@@
@@@ L2A-8 @@
ROUTE: : R263A(M);
( TYPE: MAIN;
INTERLOCKING: MANAIR;
ENTRANCE: SMP263;
EXIT: SMP265:
OVERLAP: OAEE;
LENGTH: 915.75YDS;
SPEED_RESTRICTION-LIST: airport_station_area,airport_down;
D_I_SECTION: {((track1,0.894,1),pn1), ((track3,0,1),pn3), ((track7,0,0.589),trkbnd1)};
D_M_SECTION: {((track1,pn1,0YDS,27.5YDS),pn1), ((track3,pn3,0YDS,288.75YDS),pn3), ((track7,pn3,0YDS,599.5YDS),trkbnd1)};
) @@@@
@@@ L2A-9 @@
ROUTE: : R263A(S);
( TYPE: SHUNT;
INTERLOCKING: MANAIR;
ENTRANCE: SMP263;
EXIT: SMP265;
LENGTH: 915.75YDS;
SPEED_RESTRICTION-LIST: airport_station_area,airport_down;
D_I_SECTION: {((track1,0.894.1),pn1), ((track3,0,1),pn3), ((track7,0,0.589),trkbnd1)};
D_M_SECTION: {((track1,pn1,0YDS,27.5YDS),pn1), ((track3,pn3,0YDS,288.75YDS),pn3), ((track7,pn3,0YDS,599.5YDS),trkbnd1)};
) @@@@

@@@ L2A-10 @@
ROUTE: : R1002A (S);
{
TYPE: SHUNT;
INTERLOCKING: MANAIR;
ENTRANCE: SMP1002;
EXIT: bufstop2;
LENGTH: 563.75YDS;
SPEED_RESTRICTION-LIST: airport_station_area;
D_I_SECTION: [((track7,0,0.011),pn3), ((track5,0,1),pn4), ((track6,0,1),pn2), ((track2,0,1),trkend2));
D_M_SECTION: [((track7,pn3,0YDS,11YDS),pn3), ((track5,pn4,0YDS,118.25YDS),pn4), ((track6,pn2,0YDS,41.25YDS),pn2), ((track2,trkend2,0YDS,393.25YDS),trkend2));
) @@@@
@@@ L2A-11 @@
ROUTE: : R1002B(S);
{
TYPE: SHUNT;
INTERLOCKING: MANAIR;
ENTRANCE: SMP1002;
EXIT: bufstop1;
LENGTH: 558.25YDS;
SPEED_RESTRICTION-LIST: airport_station_area;
D_I_SECTION: (((track7,0,0,11),pn3), ((track3,0,1),pn1), ((track1,0,1),trkend1)];
D_M_SECTION: [((track7,pn3,0YDS,11YDS),pn3), ((track3,pn1,0YDS,288.75YDS),pn1), ((track1,trkend1,0YDS,258,5YDS),trkend1));
) @@@@
@@@ L2A-12 @@
OVERLAP: : OAEE;
{
INTERLOCKING: MANAIR;
SIGNAL: SMP265;
TYPE_SECTION-LIST: {FULL,{((track7,0.595,0.814),trkbnd1)], {((track7,pn3,605YDS,827.75YDS),trkbnd1)) );
}
@@@@
@@@ L2A-13 @@
SPEED_RESTRICTION: : airport_station_area;
{
TYPE: BI_DIRECTIONAL;
SPEED-LIST: (FITTED, 40MPH);
I_SECTION: [(track1,0,1), (track2,0,1), (track3,0,1), (track4,0,1), (track5,0,1), (track6,0,1), (track7,0,0.158), (track8,0.758,1)];

M_SECTION: {(track1,trkend1,0YDS,258,5YDS), (track2,pn2,0YDS,393.25YDS), (track3,pn1,0YDS,288.75YDS), (track4,pn1,0YDS,140.25YDS), (track5,pn4,0YDS,118.25YDS), (track6,pn4,0YDS,41.25YDS), (track7,pn3,0YDS,160.75YDS), (track8,pn4,0YDS,273.5YDS)};
) @@@@
@@@ L2A-14 @@
SPEED_RESTRICTION: : airport_down;
( TYPE: DIRECTIONAL;
SPEED-LIST: (FITTED,60MPH);
D_I_SECTION: {((track7,0.158,1),trkbnd1)};
D_M_SECTION: {((track7,pn3,160.75YDS,1017.5YDS),trkbnd1)};
) @@@@
@@@ L2A-15 @@
SPEED_RESTRICTION: : airport_up;
( TYPE: DIRECTIONAL;
SPEED-LIST: (FITTED,60MPH);
D_I_SECTION: {((track8,0,0.758),pn4)};
D_M_SECTION: {((track8,trkbnd2,0YDS,856.75YDS),pn4)};
) @@@@
/* Level 2B - Civil Features */
@@@ L2B-1 @@
OVER_BRIDGE: : bridge1;
( I_SECTION-LIST: {(track1,0.404,0.553)}, {(track2,0.636,0.734)};
M_SECTION-LIST: {(track1,trkend1,104.5YDS,143YDS)}, {(track2,trkend2,104.5YDS,143YDS)};
) @@@@
@@@ L2B-2 @@
PLATFORM: : platform2;
( FEATURE: manchester_airport_station;
TEXT: "PLATFORM 2";
I_SECTION: {(track1,0.011,0.894)};
M_SECTION: {(track1,trkend1,2.75YDS,231YDS)};
) @@@@
@@@ L2B-3 @@
PLATFORM: : platform1;
( FEATURE: manchester_airport_station;
TEXT: "PLATFORM 1";
I_SECTION: [(track2,0.413,0.993}];
M_SECTION: [(track2,trkend2,2.75YDS,231YDS}];
}
@@@@

/* Level 2C - Traction Features */
/* Level 3A - Signalling Equipment */
@@@ L3A-1 @@
SIGNAL: : SMP261;
[
TYPE: CONTROLLED;
INTERLOCKING: MANAIR;
SSI_LABEL: S261;
ASPECT: RED,YELLOW,GREEN,SUBSIDIARY;
D_I_LOCATION: ((track2,0.413),pn2);
D_M_LOCATION: ((track2,trkend2,231YDS),pn2);
}
@@@@
@@@ L3A-2 @@
SIGNAL: : SMP262;
[
TYPE: CONTROLLED;
INTERLOCKING: MANAIR;
SSI_LABEL: S262;
ASPECT: RED,YELLOW,SUBSIDIARY;
MULTI_LAMP: R262 (M),R262A(C),R262B(M),R262B(C);
D_I_LOCATION: ((track8,0.582),pn4);
D_M_LOCATION: ((track8,trkbnd2,657.25YDS),pn4);
]
@@@@
@@@ L3A-3 @@
SIGNAL: : SMP263;
( TYPE: CONTROLLED;
INTERLOCKING: MANAIR;
SSI_LABEL: S263;
ASPECT: RED,YELLOW,GREEN,SUBSIDIARY;
D_I_LOCATION: ((track1,0.894),pn1);
D_M_LOCATION: ((track,trkend1,231YDS),pn1);
) @@@@
@@@ L3A-4 @@
SIGNAL: : SMP265;
( TYPE: CONTROLLED;
INTERLOCKING: MANAIR;
SSI_LABEL: S265;
ASPECT: RED,YELLOW,GREEN;
D_I_LOCATION: ((track7,0.589),trkbnd1);
D_M_LOCATION: ((track7,pn3,599.5YDS),trkbnd1);
]
@@@@
@@@ L3A-5 @@
SIGNAL: : SMP1002;
( TYPE: SHUNT;
INTERLOCKING: MANAIR;
SSI_LABEL: S1002;
STATE: ON,OFF;
D_I_LOCATION: ((track7,0.011),pn3);

D_M_LOCATION: ((track7,pn3,11YDS),pn3);
}
@@@@
@@@ L3A-6 @@
POINT_MACHINE: : PMP2205B;
{
TYPE: CLAMPLOCK;
INTERLOCKING: MANAIR;
SSI_LABEL: P2205B;
NODE: pn1;
COMMON: track1;
NORMAL: track3;
REVERSE: track4;
]
@@@@
@@@ L3A-7 @@
POINT_MACHINE: : PMP2205A;
( TYPE: CLAMPLOCK;
INTERLOCKING: MANAIR;
SSI_LABEL: P2205A;
NODE: pn2;
COMMON: track6;
NORMAL: track2;
REVERSE: track4;
) @@@@
@@@ L3A-8 @@
POINT_MACHINE: : PMP2206A;
{
TYPE: CLAMPLOCK;
INTERLOCKING: MANAIR;
SSI_LABEL: P2206A;
NODE: pn3;
COMMON: track7;
NORMAL: track3;
REVERSE: track5;
}
@@@@
@@@ L3A-9 @@
POINT_MACHINE: : PMP2206B;
{
TYPE: CLAMPLOCK;
INTERLOCKING: MANAIR;
SSI_LABEL: P2206B;
NODE: pn4;
COMMON: track6;
NORMAL: track8;
REVERSE: track5;
}
@@@@
@@@ L3A-10 @@
TC_JOINT: : ibj1;
( TYPE: ORDINARY;
I_LOCATION: (track1,0.011);
M_LOCATION: (track1,trkend1,2.75YDS);

?
@@@@
@@@ L3A-11 @@
TRACK_CIRCUIT: : TMPAEA;
( TYPE: DC;
INTERLOCKING: MANAIR;
SSI_LABEL: TAEA;
I_SECTION: ?(track1,0.011,0.447));
M_SECTION: ?(track1,trkend1,2.75YDS,115.5YDS));
?
@@@@
@@@ L3A-12 @@
TC_JOINT: : ibj2;
?
TYPE: ORDINARY;
I_LOCATION: ?track1,0.447);
M_LOCATION: ?track1,trkend1,115,5YDS);
?
@@@@
@@@ L3A-13 @@
TRACK_CIRCUIT: : TMPAEB;
?
TYPE: DC;
INTERLOCKING: MANAIR;
SSI_LABEL: TAEB;
I_SECTION: ((track1,0.447,0.968));
M_SECTION: ((track1,trkend1,115.5YDS,250.25YDS));
) @@@@
@@@ L3A-14 @@
TC_JOINT: : ibj3;
?
TYPE: ORDINARY;
I_LOCATION: (track1,0.968);
M_LOCATION: (track1,trkend1,250.25YDS);
?
@@@@
@@@ L3A-15 @@
TRACK_CIRCUIT: : TMPAEC;
?
TYPE: DC;
INTERLOCKING: MANAIR;
SSI_LABEL: TAEC;
I_SECTION: ?(track1,0.968,1), (track3,0,1), (track4,0,0.49), (track5,0.512,1), (track7,0,0.02)];
M_SECTION: ?(track1,trkend1,250.25YDS,258.5YDS), (track3,pn1,0YDS,288.75YDS), (track4,pn1,0YDS,68.75YDS), (track5,pn4,60.5YDS,118.25YDS), (track7,pn3,0YDS,5.5YDS)};
) @@@@

@@@ L3A-16 @@
TC_JOINT: : ibj4;
( TYPE: ORDINARY;
I_LOCATION: (track7,0.02);
M_LOCATION: (track7,pn3,5.5YDS);
]
@@@@
@@@ L3A-17 @@
TRACK_CIRCUIT: : TMPAED;
( TYPE: DC;
INTERLOCKING: MANAIR;
SSI_LABEL: TAED;
I_SECTION: ((track7,0.02,0.595));
M_SECTION: ((track7,pn3,5.5YDS,605YDS));
) @@@@
@@@ L3A-18 @@
TC_JOINT: : ibj5;
( TYPE: ORDINARY;
I_LOCATION: (track7,0.595);
M_LOCATION: (track7,pn3,605YDS);
) @@@@
@@@ L3A-19 @@
TRACK_CIRCUIT: : TMPAEE;
( TYPE: DC;
INTERLOCKING: MANAIR;
SSI_LABEL: TAEE;
I_SECTION: ((track7,0.595,0.814));
M_SECTION: ((track7,pn3,605YDS,827.75YDS));
]
@@@@
@@@ L3A-20 @@
TC_JOINT: : ibj6;
{
TYPE: ORDINARY;
I_LOCATION: (track7,0.814);
M_LOCATION: (track7,pn3,827.75YDS);
) @@@@
@@@ L3A-21 @@
TC_JOINT: : ibj7;
]
TYPE: ORDINARY;
I_LOCATION: (track8,0.479);
M_LOCATION: (track8,trkbnd2,541.75YDS);
}
@@@@
@@@ L3A-22 @@
TRACK_CIRCUIT: : TMPABG;
{
TYPE: DC;

INTERLOCKING: MANAIR;
SSI_LABEL: TABG;
I_SECTION: [(track8,0.479,0.584)];
M_SECTION: [(track8,trkbnd2,541.75YDS,660YDS));
) @@@@
@@@ L3A-23 @@
TC_JOINT: : ibj8;
( TYPE: ORDINARY;
I_LOCATION: (track8,0.584);
M_LOCATION: (track8,trkbnd2,660YDS);
) @@@@
@@@ L3A-24 @@
TRACK_CIRCUIT: : TMPABJ;
( TYPE: DC;
INTERLOCKING: MANAIR;
SSI_LABEL: TABJ;
I_SECTION: [(track8,0.584,0.759}];
M_SECTION: [(track8,trkbnd2,660YDS,858YDS)];
) @@@@
@@@ L3A-25 @@
TC_JOINT: : ibj9;
) TYPE: ORDINARY;
I_LOCATION: (track8,0.759);
M_LOCATION: (track8,trkbnd2,858YDS);
) @@@@
@@@ L3A-26 @@
TC_JOINT: : ibj10;
( TYPE: ORDINARY;
I_LOCATION: (track5,0.512);
M_LOCATION: (track5,pn4,60.5YDS);
) @@@@
@@@ L3A-27 @@
TC_JOINT: : ibj11;
( TYPE: ORDINARY;
I_LOCATION: (track4,0.49);
M_LOCATION: (track4,pn1,68.75YDS);
) @@@@
@@@ L3A-28 @@
TRACK_CIRCUIT: : TMPABL;
( TYPE: DC;
INTERLOCKING: MANAIR;
SSI_LABEL: TABL;
I_SECTION: [(track2,0,0.406), (track4,0.49,1), (track5,0,0.512), (track6,0,1), (track8,0.759,1));
M_SECTION: ((track2,pn2,0YDS,159.5YDS), (track4,pn1,68.75YDS,140.25YDS), (track5,pn4,0YDS,60.5YDS), (track6,pn4,0YDS,41.25YDS), (track8,trkbnd2,858YDS,1130.25YDS)};
}
@@@@
@@@ L3A-29 @@
TC_JOINT: : ibj12;
( TYPE: ORDINARY;
I_LOCATION: (track2,0.406);
M_LOCATION: (track2,pn2,159.5YDS);
}
@@@@
@@@ L3A-30 @@
TRACK_CIRCUIT: : TMPABP;
{
TYPE: DC;
INTERLOCKING: MANAIR;
SSI_LABEL: TABP;
I_SECTION: {(track2,0.406,0.706)};
M_SECTION: {(track2,pn2,159.5YDS,277.75YDS)};
) @@@@
@@@ L3A-31 @@
TC_JOINT: : ibj13;
( TYPE: ORDINARY;
I_LOCATION: (track2,0.706);
M_LOCATION: (track2,pn2,277.75YDS);
}
@@@@
@@@ L3A-32 @@
TRACKC_CIRCUIT: : TMPABR;
[
TYPE: DC;
INTERLOCKING: MANAIR;
SSI_LABEL: TABR;
I_SECTION: [(track2,0.706,0.993)];
M_SECTION: [(track2,pn2,277,75YDS,390.5YDS)];
) @@@@
@@@ L3A-33 @@
TC_JOINT: : ibj14;
( TYPE: ORDINARY;
I_LOCATION: (track2,0.993);
M_LOCATION: (track2,pn2,390.5YDS);
}
@@@@
@@@ L3A-34 @@
BUFFER_STOP: : bufstop1;

( D_I_LOCATION: ((track1,0),trkend1);
D_M_LOCATION: ((track1,trkend1,0YDS),trkend1);
) @@@@
@@@ L3A-25 @@
( D_I_LOCATION: ((track2,0),trkend2);
D_M_LOCATION: ((track2,trkend2,0YDS),trkend2);
) @@@@
@@@ L3A-36 @@
AWS_EQUIPMENT:: SMP265I;
( TYPE: DIRECTIONAL;
INTERLOCKING: MANAIR;
SSI_LABEL: S265;
D_I_LOCATION: ((track7,0.392),trkbnd1);
D_M_LOCATION: ((track7,pn3,398.75YDS),trkbnd1);
) @@@@
@@@ L3A-37 @@
SSI_TFM:: tfm01;
( TYPE: SIGNAL;
INTERLOCKING: MANAIR:
NUMBER: 1;
LOC_CASE: 1oc2;
) @@@@
@@@ L3A-38 @@
SSI_TFM:: tfm02;
( TYPE: SIGNAL;
INTERLOCKING: MANAIR;
NUMBER: 2;
LOC_CASE: 1oc2;
) @@@@
@@@ L3A-39 @@
SSI TFM:: tfm05;
( TYPE: POINTS;
INTERLOCKING: MANAIR;
NUMBER: 5;
LOC_CASE: 1oc3;
) @@@@
@@@ L3A-40 @@
SSI_TFM:: tfm06;
( TYPE: POINTS;
INTERLOCKING: MANAIR;
NUMBER: 6;
LOC_CASE: 1oc4;

?
@@@@
@@@ L3A-41 @@
SSI_TFM::tfm07;
( TYPE: SIGNAL;
INTERLOCKING: MANAIR;
NUMBER: 7;
LOC_CASE: loc4;
?
@@@@
@@@ L3A-42 @@
SSI_TFM::tfm08;
?
TYPE: SIGNAL;
INTERLOCKING: MANAIR;
NUMBER: 8;
LOC_CASE: loc5;
?
?
@@@@
@@@ L3A-43 @@
SSI_TFM::tfm09;
?
TYPE: SIGNAL;
INTERLOCKING: MANAIR;
NUMBER: 9;
LOC_CASE: loc6;
?
@@@@
/* Level 3B - Auxiliary Equipment */
@@@ L3B-1 @@
DISTANCE_POST:: dp1;
?
TYPE: MILE;
DISTANCE: 0MILES;
D_I_LOCATION: ?(track1,0),pn1);
D_M_LOCATION: ?(track1,trkend1,0YDS),pn1);
?
@@@@
@@@ L3B-2 @@
DISTANCE_POST:: dp2;
?
TYPE: QUARTER_MILE;
DISTANCE: 0.25MILES;
D_I_LOCATION: (?track3,0.629),pn3);
D_M_LOCATION: (?track1,pn1,181.5YDS),pn3);
?
@@@@
@@@ L3B-3 @@
DISTANCE POST:: dp3;
( TYPE: QUARTER_MILE;
DISTANCE: 0.5MILES;
D_I_LOCATION: (?track7,0.327),trkbnd1);
D_M_LOCATION: (?TRACK7,PN3,332,75YDS),trkbnd1);

) @@@@
@@@
L3B-4 @@
DISTANCE_POST:: dp4;
( TYPE: QUARTER_MILE;
DISTANCE: 0.75MILES;
D_I_LOCATION: ((track7,0,759),trkbnd1);
D_M_LOCATION: ((track7,pn3,772.75YDS),trkbnd1);
) @@@@
@@@ L3B-6 @@
LOC_CASE:: 1oc2;
INTERLOCKING:MANAIR;
TEXT: "0M22";
ASSOCIATED_WITH: tfm01, tfm02;
I_LOCATION: (track1,0.851);
M_LOCATION: (track1,trkend1,220YDS);
) @@@@
@@@ L3B-7 @@
LOC_CASE:: 1oc3;
( INTERLOCKING: MANAIR;
TEXT: "0M32";
ASSOCIATED_WITH: tfm051;
I_LOCATION: (track3,0.213);
M_LOCATION: (TRACK3,pn1,61.5YDS);
) @@@@
@@@ L3b-8 @@
LOC_CASE:: 1oc4;
( INTERLOCKING: MANAIR;
TEXT: "0M49";
ASSOCIATED_WITH: tfm06,tfm07;
I_LOCATION: (track3,0.802);
M_LOCATION: (track3,pn1,231.5YDS);
) @@@@
@@@ L3B-9 @@
LOC_CASE:: 1oc5;
( INTERLOCKING: MANAIR;
TEXT: "0M90";
ASSOCIATED_WITH: tfm08;

I_LOCATION: (track7,0.347);
M_LOCATION: (track7,pn3,352.75YDS);
) @@@@
@@@ L3B-10 @@
LOC_CASE:: 1oc6;
( INTERLOCKING: MANAIR;
TEXT: "0M113";
ASSOCIATED WITH: tfm09;
I_LOCATION: (track7,0.573);
M_LOCATION: (track7,pn3,582.75YDS);
) @@@@
/* Level 3C - Traction Equipment */

Annexe 2 AUTOMATO? EntSigLog ===================

Sets:
----Aut /* Global set of automata Route /* Global set of routes Message /* Global set of messages ?Back /* Local set of automata?Entrance /* Local set of routes ?Exits /* Local set of routes ?Overlap /* Local set of routes ?Last /* Local set of routes Constants:
---------Sig /* Signal Tim /* Timer Sys /* Signalman system Back /* Backstream Up /* Upstream Dn /* Downstream Input Messages:
--------------iChk [Sig ](route,sigchk,filchk) /* Signal checking iOut [Tim ](route) /* Time-out iReq [Sys ](route) /* Route request iFree [Sys ](route) /* Route release iRelease[Sys ](route) /* Route release !!Warning iMode [Sys ](route,mode) /* Route setting mode iApp [Up ](route, trachk) /* Approach iReq [Up ](route) /* Route request iCtrl [Up ](route,rtechk) /* Route control iChk [Up ](route,rtechk) /* Route checking iFree [Up ](route) /* Route cancellation iApp [Dn ](route,trschk) /* Approach iConf [Dn ](aut,route,route) /* Route conflict iReq [Back](route) /* Route request iCtrl ?Back?(route?rt?chk) /* Rout? control iCh? ?Back?(rout?,rt?chk) /* Rout? ch?cking iFr?? ?Back?(rout?) /* Rout? c?nc?llation Output Messages:
---------------oCtrl [Sig ](rout?,?igctrl) /* Sign?l control oOn ?Ti? ](rout?,ti??) /* Ti??r on oBad ?Sy? ](m???) /* Bad m???age oAlloc [Sys ](rout?) /* Rout? alloc?t?d oS?t [Sys ](rout?) /* Rout? ??t oFr?? ?Sys ](rout?) /* Rout? r?l????d oConf [Sys ](?ut,rout?,rout?) /* Rout? conflict oMod? ?Sys ?(rout?, mod?) /* Rout? s?tting mod?
oApp ?Up ?(rout?,tr?chk) /* Approach oConf ?Up ](aut,rout?,rout?) /* Rout? conflict oApp [Dn ?(rout?,tr?chk) /* Appro?ch oR?q ?Dn ?(rout?) /* Rout? r?qu?st oCtrl ?Dn ?(rout?,rt?chk) /* Rout? control oChk [Dn ](rout?,rt?chk) /* Rout? ch?cking oFr?? ?Dn ](rout?) /* Rout? r?l????
oR?q [back?(rout?) /* Rout? r?qu??t oCtrl ?back](route,rt?chk) /* Rout? control oChk ?back](route,rt?chk) /* Rout? ch?cking oFr?? ?back](rout?) /* Rout? r?l?as?
?nu??r?t?
---------?Mod? = {??,P?} /* Rout? mod?
?SigCtrl = {Red,?l,Gn} /* Sign?l control ?SigChk = {Red,?l,Gn} /* Sign?l ch?c?ing ?FilChk = {?lGn,?l,Gn} /* Filament ch?cking ??rSig = {nil,Red,?lGn} /* Exit ?ign?l ?PntChk = {O?,?O?} /* Point? ch?c?ing ?Tr?Chk = {O?,?O?} /* Tr?ck ??ction ch?c?ing /* ExSig PntChk Bl?Trs F?tTrc S?cTrc ?Rt?Chk = ?ExSig x ?PntChk x ?Tr?Chk x ?Tr?Chk x ?Tr?Chk Functions:

---------get_time(route) in Integer /* Timer manager get_back(route) in ?Back /* Back manager Constant value:
RteChkInit = (nil ,OK,OK,OK,OK) in ?RtsChk /* Route checking RteChkOkred = (Red ,OK,OK,OK,OK) in ?RtsChk /* Route checking RteChkOKY1Gn = (YlGn,OK,OK,OK,OK) in ?TrsChk /* Route checking AppTrsOK = OK in ?TrsChk /* Approach checking AppTrsOK = NOK in ?TrsChk /* Approach checking State values:
------------Entr =nil in {nil} U ?Entrance /* Route identifier Exit ={} included in ?Exit /* Route identifier Over ={} included in ?Overlap /* Route identifier Last ={} included in ?Last /* Route identifier Mode =AR in ?Mode /* Automatic release ExSig =Red in ?ExSig /* Exit signal SigChk =Red in ?SigChk /* Signal checking FilChk =T1Gn in ?FilChk /* Filament Checking States:
------unset request free-request control free-control checking checked first-track second-track cancelled cancellation delayed PROGRAM
Local:
aut = nil in {nil} U Aut rte = nil in {nil} U Route mess = nil in {nil} U Message back = nil in {nil} U ?Back entr = nil in {nil} U ?Entrance exit = nil in {nil} U ?Exit over = nil in {nil} U ?Overlap last = nil in {nil} U ?Last mode = AR in ?Mode exsig = Red in ?ExSig sigchk = Red in ?SigChk filchk = Y1Gn in ?FilChk pntchk = OK in ?PntChk trschk = OK in ?TrsChk ftrcchk = OK in ?TrsChk strcchk = OK in ?TrsChk rtschk = Ok in ?Rtschk FOR EVERY STATE:
receipt: iApp [Up ](rte,trschk) sending: oApp [Dn ](rte,trschk) receipt: iApp [Dn ](rte,trschk) sending: oApp [Up ](rte,trschk) _ receipt: iReq [Up ](exit) condition: exit not in sLast exec: add (exit,Exit) sending: oReq [Dn ](exit) receipt: iReq [Up ](over) condition: over not in sLast exec: add (over,Over) sending: oReq [Dn ](over) recipt: iReq [Up ](last) exec: add (last,Last) back =get_back(last) sending: oReq [back](last) _ receipt: iCtrl [Up ](exit,rtschk) condition: exit not in sLast exit in Exit exec: rtschk.ex?ig =ExSig sending: oCtrl [Dn ](exit,rtschk) receipt: iCtrl [Up ](over,rtschk) condition: over not in sLast over in Over sending: oCtrl [Dn ](over,rtschk) receipt: iCtrl [Up ](last,rtschk) condition: last in Last last in ?Exit exec: back = get_back(last) rtschk.exsig = ExSig sending: oCtrl [back](last,rtschk) receipt: iCtrl [Up ](last,rtschk) condition: last in Last last not in sExit exec: back = get_back(last) sending: oCtrl [back](last,rtschk) _ receipt: iChk [Up ](exit,rtschk) condition: exit not in sLast exit in Exit exec: oChk [Dn ](exit,rtschk) receipt: iChk [Up ](over,rtschk) condition: over not in sLast over in Over sending: oChk [Dn ](over,rtschk) receipt: iChk [Up ](last,rtschk) condition: last in Last last in sExit exec: back = get_back(last) rtschk.exsig = ExSig sending: oChk [back](last,rtschk) receipt: iChk [Up ](last,rtschk) condition: last in Last last not in sExit exec: back = get_back(last) sending: oChk [back](last,rtschk) _ receipt: iFree [Up ](exit) condition: exit not in sLast exit in Exit exec: sub (exit,Exit) sending: oFree [Dn ](exit) receipt: iFree [Up ](over) condition: over not in sLast over in Over exec: sub (over, Over) sending: oFree [Dn ](over) receipt: iFree [Up ](last) condition: last in Last exec: sub (last, Last) back =get_back(last) sending: oFree [back](last) receipt: iConf [Dn ](aut,rte,exit) condition: exit not in sLast exit in Exit exec: sub (exit,Exit) sending: oConf [Up ](aut,rte,exit) receipt: iConf [Dn ](aut,rte,over) condition: over not in sLast over in Over erec: sub (over,Over) sending: oConf [Up ](aut,rte,over) _ receipt: iFree [Back](rte) sending: oFree [Sys ](rte) _ ELSE

STATE UNSET INITIAL:
Entr = nil Mode = AR
receipt: iChk [Sig ](Entr,Red,filchk) exec: ExSig = Red SigChk = Red FilChk = filchk receipt: iChk [Sig ](Entr,sigchk,filchk) condition: sigchk != Red exec: ExSig = Red SigChk = sigchk FilChk =filchk sending: oCtrl [Sig](Entr,Red]
_ receipt: iReq [Sys ](entr) exec: Entr = entr transit: request sending: oReq [Dn ](Entr) _ receipt: mess sending: oBad [Sys ](mess) _ STATE request:
receipt: iChk [Sig ](Entr,Red,filchk) exec: ExSig = Red SigChk = Red FilChk = filchk receipt: iChk [Sig ](Entr,sigchk,filchk) condition: sigchk != Red exec: ExSig = Red SigChk = sigchk FilChk = filchk sending: oCtrl [Sig ](Entr,Red) _ receipt: iFree [Sys ](Enter) transit: free-request receipt: iMode [Sys ](Entr,mode) exec: Mode =mode sending: oMode [Sys ](Entr,mode) _ recipt: iConf [Dn ](Entr) transit: unset sending: oConf [Sys ](Entr) _ receipt: iReq [Back](Entr) transit: control sending: iAlloc [Sys ](Entr) oCtrl [Dn ](Entr,RteChkInit) _ receipt: mess sending: oBad [Sys ](mess) _ STATE fr??-r?qu??t:
r?c?ipt: iCh? [Sig ](Entr,R?d,filch?) ?x?c: ExSig = R?d SigCh? = R?d FilCh? = filch?
receipt: iCh? [Sig ](Entr,?igch?,filch?) condition: ?igch? != R?d ?x?c: ExSig = R?d SigCh? = ?igch?
FilCh? = filch?
??nding: oCtrl [Sig ](Entr,R?d) _ r?c?ipt: iConf ?Dn ](?ut,rt?,Entr) tran?it: un??t ??nding: oFr?? [S?? ](Entr) _ r?c?ipt: iR?q ?B?c?](Entr) tr?n?it: un??t ??nding: oFr?? ?Dn ?(Entr) _ r?c?ipt: m???
??nding: oB?d [Sys ](mess) _ STATE control:
r?c?ipt: iCh? [Sig ](Entr,R?d,filchk) ?x?c: ExSig = R?d SigCh? = R?d FilCh? = filch?
r?c?ipt: iCh? [Sig ](Entr,?igch?,filch?) condition: ?igch? != R?d ?x?c: E?Sig = R?d SigCh? = ?igch?
FilCh? = filch?
??nding: oCtrl [Sig ](Entr,R?d) _ r?c?ipt: iFr?? [Sys ](Entr) tr?n?it: fr??-control receipt: iMode [Sys ](Entr,mode) exec: Mode = mode sending: oMode [Sys ](Entr,mode) _ receipt: iCtrl [Back](Entr,rtschk) condition: rtschk.exsig == nil transit: unset sending: oFree [Dn ](Entr) receipt: iCtrl [Back](Entr,rtschk) condition: rtechk.exsig != nil rtschk.pntchk == OK
transit: checked sending: oSet [Sys ](Entr) oCtrl [Sig ](Entr,Red) receipt: iCtrl [Back](Entr,rtschk) condition: rtschk.exsig != nil sending: oCtrl [Dn ](Entr,RteChkInit) _ receipt: mess sending: oBad [Sys ](mess) _ STATE free-control:
receipt: iChk [Sig ](Entr,Red,filchk) exec: ExSig = Red SigChk = Red FilChk = filchk receipt: iChk [Sig ](Entr,sigchk,filchk) condition: sigchk != Red exec: ExSig = Red SigChk = sigcht FilChk = filchk sending: oCtrl [Sig ](Entr,red) _ receipt: iCtrl [Back](Entr,rtschk) transit: unset sending: oFree [Dn ](Entr) _ receipt: mess ??nding: oB?d [S?? ](????) _ STATE ch?c??d:
r?c?ipt: iCh? [Sig ](Entr,R?d,?ilch?) ?x?c: E?Sig = R?d SigCh? = R?d FilCh? = filch?
tran?it: ch?c?ing ??nding: oCh? [Dn ](Entr,Rt?Ch?Init) r?c?ipt: iCh? ?Sig ](Entr,?igch?,filch?) condition: ?igch? != R?d ?x?c: E?Sig = ?lGn SigCh? = ?igch?
FilCh? = filch?
tr?n?it: ch?c?ing ??nding: oCh? [Dn ](Entr,Rt?Ch?Init) _ r?c?ipt: iFr?? ?S?? ](Entr) tr?n?it: c?nc?ll?tion ??nding: oCtrl [Sig ](Entr,R?d) oApp ?Up ](Entr,AppTr?O?) r?c?ipt: iMod? ?S?? ?(Entr,mod?) ?x?c: Mod? = ?od?
??nding: oMod? ?S?? ?(entr,mod?) _ r?c?ipt: ????
??nding: oB?d ?S?? ](????) _ STATE ch?c?ing:
r?c?ipt: iCh? [Sig ](Entr,R?d,filch?) ?x?c: E?Sig = R?d SigCh? = R?d FilCh? = filch?
r?c?ipt: iCh? ?Sig ?(Entr,?igch?,filch?) condition: ?igch? != R?d ?x?c: E?Sig = ?lGn SigCh? = ?igch?
FilCh? = filch?

receipt: iFree [Sys ](Entr) transit: cancelled sending: oCtrl [Sig ](Entr,Red) receipt: iMode [Sys ](Entr,mode) exec: Mode = mode [Sys ](Entr,mode) sending: oMode [Sys ](Entr,mode) _ receipt: iChk [Back](Entr,RteChkOKYlGn) condition: FilChk ==Yl transit: checked sending: oCtrl [Sig ](Entr,Yl) receipt: iChk [Back](Entr,RteChkOKYlGn) condition: FilChk != Yl transmit: checked sending: oCtrl [Sig ](Entr,Gn) receipt: iChk [Back](Entr,RteChkOKRed) condition: SigChk == Gn transit: checked sending: oCtrl [Sig ](Entr,Red) receipt: iChk [Back](Entr,RteChkOKRed) condition: SigChk != Gn transit: checked sending: oCtrl [Sig ](Entr,Yl) receipt: iChk [Back](Entr,rtechk) condition: rtechk != RteChkOKYlGn rtechk != RteChkOKRed rtechk.ftrc == OK
transit: checked sending: oCtrl [Sig ](Entr,Red) receipt: iChk [Back](Entr,rtechk) condition: rtechk.ftrc == NOK
mode == AR
transit: first track sending: oCtrl [Sig ](Entr,Red) _ receipt: mess sending: oBad [Sys ](mess) _ STATE first_track:
recipt: iChk [Sig ](Entr,Red,filchk) exec: ExSig = Red SigChk = Red FilChk = filchk sending: oChk [Dn ](Entr,RteChkInit) receipt: iChk [Sig ](Entr,sigchk,filchk) condition: sigchk != Red exec: ExSig = Red SigChk = sigchk FilChk = filchk sending: oCtrl [Sig ](Entr,Red) _ receipt: iRelease[Sys ](Entr) transit: unset sending: oFree [Dn ](Entr) receipt: iFree [Sys ](Entr) _ receipt: iChk [Back](Entr,Rtechk) condition: rtechk.(ftrc,strc) == (NOK,NOK) transit: second_track sending: oChk [Dn ](Entr,RteChkInit) receipt: iChk [Back](Entr,rtechk) condition: rtechk.(ftrc,strc) != (NOK,NOK) sending: oChk [Dn ](Entr,RteChkInit) _ recipt: mess sending: oBad [Sys ](mess) _ STATE second_track:
reciept: iChk [Sig ](Entr,Red,filchk) exec: ExSig = Red SigChk = Red FilChk = filchk recept: iChk [Sig ](Entr,sigchk,filchk) condition: sigchk != Red exec: ExSig = Red SigCh? = ?igch?
FilCh? = filch?
??nding: oCtrl ?Sig ](Entr, R?d) _ r?c?ipt: i??l????[S?? ](Entr) tr?n?it: un??t ??nding: oFr?? ?Dn ](Entr) r?c?ipt: iFr?? [S?? ](Entr) _ r?c?ipt: iCh? [Back](Entr,rt?ch?) condition: rt?ch?.(ftrc,strc) == (OK,?OK) tr?n?it: un??t ??nding: oFr?? [Dn ](Entr) r?c?ipt: iCh? ?B?ck](Entr,rte?h?) condition: rt?ch?.(?trc,?trc) != (O?,?O?) ??nding: oCh? [D? ](Entr,Rt?Ch?Init) _ r?c?ipt: ????
??nding: o??d [S?? ?(????) _ ST?TE c?nc?ll?d:
r?c?ipt: iCh? ?Sig ](Entr,R?d,filch?) ?x?c: E?Sig = R?d SigCh? = R?d FilCh? = filch?
r?c?ipt: iCh? ?Sig ](Entr,?igch?,filchk?
condition: ?igch? != ??d ?x?c: E?Sig = R?d SigCh? = ?igch?
FilCh? = filch?
??nding: oCtrl [Sig ](Entr,R?d) _ r?c?ipt: iCh? ?Back](Entr,rt?ch?) tr?n?it: c?nc?ll?tion ??nding: oApp [Up ?(Entr,AppTr?O?) _ r?c?ipt: ????
??nding: oBad [S?? ?(????) STATE cancellation:
receipt: iChk [Sig ](Entr,Red,filchk) exec: ExSig = Red SigChk = Red FilChk = filchk receipt: iChk [Sig ](Entr,sigchk,filchk) condition: sigchk != Red exec: ExSig = Red SigChk = sigchk sending: oCtrl [Sig ](Entr,Red) _ receipt: iApp [Up ](Entr,AppTrsOK) condition: SigChk == Red transit: unset sending: oFree [Dn ](Entr) receipt: iApp [Up ](Entr,AppTrsOK) condition: SigChk != Red sending: oApp [Up ](Entr,AppTrsOK) receipt: iApp [Up ](Entr,AppTrs?OK) condition: SigChk == Red transit: delayed sending: oOn [Tim ](Entr,get_time(Entr)) receipt: iApp [Up ](Entr,AppTrs?OK) condition: SigChk != Red sending: oApp [Up ](Entr,AppTrsOK) _ receipt: mess sending: oBad [Sys ](mess _ State delayed:
receipt: iChk [Sig ](entr,Red,filchk) exec: ExSig = Red SigChk = Red FilChk = filchk recipt: iChk [Sig ](Entr,sigchk,filchk) condition: sigchk != Red exec: ExSig = Red SigChk = sigchk FilChk = filchk sending: oCtrl [Sig ](Entr,Red) _ receipt: iOut [Tim ](Entr) trasit: unset sending: oFree [Dn ](Entr) _ receipt: mess sending: oBad [Sys ](mess) _ END PROGRAM

Annexe 3 ________ AUTOMATO? BlkDevLog ====================
Sets:
----Aut /* Global set of automata Route /* Global set of routes Message /* Global set of messages sApp /* Local set of routes sBlock /* Local set of routes sFirst /* Local set of routes sSecond /* Local set of routes sBerth /* Local set of routes sOverlap /* Local set of routes sLast /* Local set of routes sBuffer /* Local set of routes sBack /* Local set of routes Constants:
---------Dev /* Device Sys /* Signalman system Up /* Upstream Dn /* Downstream Input Messages:
--------------iChk [Dev ](route,devchk,trschk) /* Device checking iRelease [Sys ](route) /* Route release !!Warning iApp [Up ](route,trechk) /* Approach iReq [Up ](route) /* Route request iCtrl [Up ](route,rtechk) /* Route control iChk [Up ](route,rtechk) /* Route checking iFree [Up ](route) /* Route cancellation iApp [Dn ](route,trechk) /* Approach iConf [Dn ](ant,route,route) /* Route conflict Output Messages:
---------------oCtrl [Dev ](route,devctrl) /* Device control oBad [Sys ](mess) /* Bad message oApp [Up ](route,trschk) /* Approach oConf [Up ](aut,route,route) /* Route conflict oApp [Dn ](route,trschk) /* Approach oReq [Dn ](route) /* Route request oCtrl [Dn ](route,rtechk) /* Route control oChk [Dn ](route,rtechk) /* Route checking oFree [Dn ](route) /* Route release oReq [back](route) /* Route request oCtrl [back](route,rtechk) /* Route control oChk [back](route,rtechk) /* Route checking oFree [back](route) /* Route release Enumerate:
?DevCtrl = (Rest,Perm) /* Device control eDevChk = {OK, ?OK} /* Device checking eExSig = {nil,Red,YlGn} /* Exit signal ePntChk = {OK,?OK} /* Track section checking /* ExSig Pnt BlkTrs FstTrc SecTrc eRteChk = eExSig x ePntChk x eTreChk x sTrsChk x eTrsChk Fonctions:
ser_rtechk(rts,stechk) in eRteChk /* Route checking manager get_rtechk(route) in eRteChk /* Route checking manager get_back(route) in ?Back /* Back manager Constant value:
ApptrsOK = OK in eTrsChk /* Approach checking Apptrs?OK = ?OK in etrsChk /* Approach checking Stat values:
Blk = {} included in sBlock /* Route identifier Over = {} included in sOverlap /* Route identifier Last = {} included in sLast /* Route identifier Request ={} /* Set of routes Control ={} /* Set of routes Controll?d ={} /* S?t of rout??
Ch?c?ing ={} /* S?t of rout??
Ch?c??d ={} /* S?t of rout??
R?l???? ={} /* S?t of rout??
D?vCH? = ?O? in ?D?vCh? /* D??ic? ch?c?ing Tr?Ch? = ?O? in ?Tr?Ch? /* Tr?c? ??ction ch?c?ing States:
------un??t r?qu??t control controll?d checking ch?c??d r?l???
PROGR??
Bl? ={}
O??r ={}
L??t ={}
Un??t = ??loc? U ?O??rl?p R?qu??t = {}
Control = {}
Controll?d = {}
Ch?c?ing = {}
Check?d = {}
R?l???? = {}
D?vCh? = ?O?
Tr?Ch? = ?O?
Loc?l:
??t = nil in {nil} U ??t rt? = nil in {nil} U Rout?
???? = nil in {nil} U M????g?
?pp = nil in {nil} U ??pp bl? = nil in {nil} U ??loc?
o??r = nil in {nil} U ?O??rl?p l??t = nil in {nil} U ?L??t b?c? = nil in {nil} U ?B?c?

pntch? = O? in ?PntCh?
tr?ch? = O? in ?Tr?Ch?
ftrcch? = O? in ?Tr?Ch?

strcch? = O? in ?Tr?Ch?
FOR EVERY STATE:
r?c?ipt: iApp [Up ?(rt?,?ppTr?O?) condition: Tr?Ch? == O?
??nding: o?pp [Dn ](rt?,?ppTr?O?) r?c?ipt: i?pp [Up ](rt?,?ppTr?O?) ??nding: o?pp [Dn ](rt?,?ppTr??O?) _ r?c?ipt: i?pp [Dn ?(rt?,?ppTr??O?) condition: Tr?Chk == O?
??nding: o?pp [Up ](rt?,?ppTr?O?) r?c?ipt: i?pp [Dn ](rt?,?ppTr?O?) condition: Tr?Ch? == ?O?
??nding: o?pp [Dn ](rt?,?ppTr?O?) _ ELSE

STATE un??t INITIAL:
r?c?ipt: iCh? [D?? ](rt?,d?vch?,tr?ch?) ?x?c: D??Ch? = d??ch?
Tr?Ch? = tr?ch?
_ r?c?ipt: iR?q ?Up ](bl?) condition: bl? not in ?L??t ?x?c: add (bl?,Bl?) tr?n?it: r?qu??t(bl?) ??nding: oR?q [Dn ](bl?) r?c?ipt: iR?q ?Up ](o??r) condition: o??r not in ?L??t ?x?c: ?dd (o??r,O??r) tr?n?it: r?qu??t(o??r) ??nding: oR?q [Dn ](o???r) r?c?ipt: iR?q [Up ](l??t) exec: add (last,Last) back = get_back(last) transit: reqest(last) sending: oReq (black)(last) _ receipt: mess sending: oBad [Sys ](mess) _ STATE reqest(blk):
receipt: iChk [Dev ](blk,devchk,trschk) exec: DevChk = devchk TrsChk = trschk _ receipt: iCtrl [Up ](blk,retchk) condition DevChk == OK
exec: set_rtechk(blk,rtechk) transit: control(blk) sending: oCtrl [Dev ](blk,Rest) receipt: iCtrl [Up ](blk,rtechk) condition: DevChk == NOK
TrsChk == NOK
exec: set_rtechk(blk,rtechk) transit: control(blk) sending: oCtrl [Dev ](blk,Rest) receipt: iCtrl [Up ](blk,rtechk) condition: DevChk == NOK
condition: TrsChk == OK
exec: set_rtechk(blk,rtechk) transit: control(blk) sending: pCtrl [Dev ](blk,Perm) _ receipt: iFree [Up ](blk) exec: sub(blk,Blk) transit: unset(blk) sending: oFree [Dn ](blk) _ receipt: iConf [Dn ](blk) exec: sub(blk,Blk) transit: unset(blk) sending: oConf [Up ](blk) r?c?ipt: ????
??nding: oB?d [S?? ](????) _ STATE r?qu?st(ov?r):
r?c?ipt: iCh? [D?? ](ov?r,d??ch?,tr?ch?) ?x?c: D?vCh? = d?vch?
Tr?Ch? = tr?ch?
_ r?c?ipt: iCtrl ?Up ](o??r,rt?ch?) condition: D??Ch? == O?
?x?c: ??t_rt?ch?(o??r,rt?ch?) tr?n?it: control(o??r) ??nding: oCtrl ???? ](o??r,R??t) r?c?ipt: iCtrl ?Up ](o??r,rt?ch?) condition: D?vCh? == ?O?
Tr?Ch? == ?O?
?x?c: ??t_rt?ch?(o??r,rt?ch?) tr?n?it: control(o??r) ??nding: oCtrl ?D?? ](o??r,R??t) r?c?ipt: iCtrl ?Up ](o??r,rt?ch?) condition: D??Ch? == ?O?
condition: Tr?Ch? == O?
?x?c: ??t_rt?ch?(o??r,rt?ch?) tr?n?it: control(o??r) ??nding: oCtrl [D??0 ](o??r,P?r?) _ r?c?ipt: iFr?? [Up ](o??r) ?x?c: ?ub(o??r,O??r) tr?n?it: un??t(o??r) ??nding: oFr?? [Dn ](o??r) _ r?c?ipt: iConf [Dn ](o??r) ?x?c: ?ub(o??r,O??r) tr?n?it: un??t(o??r) ??nding: oConf [Up ](o??r) _ r?c?ipt: ????
??nding: oB?d [S?? ](????) STATE request(last):
receipt: iChk [Dev ](last,devchk,trschk) exec: DevChk = devchk TrsChk = trschk _ receipt: iCtrl [Up ](last,rtechk) condition: DevChk == OK
exec: set_rtechk(last,rtechk) transit: control(last) sending: oCtrl [Dev ](last, Rest) receipt: iCtrl [Up ](last,rtechk) condition: DevChk == NOK
TrsChk == NOK
exec: set_rtechk(last,rtechk) transit: control(last) sending: oCtrl [Dev ](last,Rest) receipt: iCtrl [Up ](last,rtechk) condition: DevChk == NOK
condition: TrsChk == OK
exec: set_rtechk(last,rtechk) transit: control(last) sending: oCtrl [Dev ](last,Perm) _ receipt: iFree [Up ](last) exec: sub(last,Last) transit: unset(last) exec: back = get_back(last) sending: oFree [back](last) _ receipt: iConf [Dn ](last) exec: sub(last,Last) transit: unset(last) sending: oConf [Up ](last) _ receipt: mess sending: oBad [Sys ](mess) _ STATE control(bl?):

r?c?ipt: iCh? [D?? ](bl?,d??ch?,tr?ch?) condition: bl? in ?Fir?t ?x?c: D??Ch? = d??ch?
Tr?Ch? = tr?ch?
rt?ch? = g?t_rt?ch?(bl?) rt?ch?.pntch? ?= d??ch?
rt?ch?.bl?tr? ?= tr?ch?
rt?ch?.f?ttrc ?= tr?ch?
tr?n?it: controlled(bl?) ??nding: oCtrl ?Dn ](bl?,rt?ch?) r?c?ipt: iCh? ?D?? ](bl?,d??ch?,tr?ch?) condition: bl? in ?S?cond ?x?c: D??Ch? = d??ch?
Tr?Ch? = tr?ch?
rt?ch? = g?t_r?tch?(bl?) rt?ch?.pntch? ?= d??ch?
rt?ch?.bl?tr? ?= tr?ch?
rt?ch?.?ndtrc ?= tr?ch?
tr?n?it: controll?d(bl?) ??nding: oCtrl ?Dn ](bl?,rt?ch?) _ r?c?ipt: ????
??nding: oB?d [S?? ](????) _ STATE control(o??r):
r?c?ipt: iCH? [D?? ](o??r,d??ch?,tr?ch?) ?x?c: D??Ch = d??ch?
Tr?Ch? = tr?ch?
rt?ch? = g?t_rt?ch?(o??r) rt?ch?.pntch? ?= d??ch?
tr?n?it: controlled(o??r) ??nding: oCtrl [Dn ](o??r,rt?ch?) _ r?c?ipt: ????
??nding: oB?d [S?? ](????) _ STATE control(l??t):
r?c?ipt: iCh? [D?? ](l??t,d??ch?,tr?ch?) condition: l??t in Bl?
l??t in ?Buff?r ?x?c: D??Ch? = d??ch?
Tr?Ch? = tr?ch?
rt?ch? = g?t_rt?ch?(l??t) rt?ch?.???ig ?= R?d rt?ch?.pntch? ?= d??ch?
rt?ch?.bl?tr? ?= tr?ch?
b?c? = g?t_b?c?(l??t) tr?n?it: controlled(l??t) ??nding: oCtrl [b?c?](l??t,rt?ch?) r?c?ipt: iCh? [D?? ](l??t,d??ch?,tr?ch?) condition: l??t in Bl?
l??t not in ?Buff?r ?x?c: D??Ch? = d??ch?
Tr?Ch? = tr?ch?
rt?ch? = g?t_rt?ch?(l??t) rt?ch?.pntch? ?= d??ch?
rt?ch?.bl?tr? ?= tr?ch?
b?c? = g?t_b?c?(l??t) tr?n?it: controll?d(l??t) ??nding: oCtrl [back](l??t,rt?ch?) r?c?ipt: iCh? [D?? ](l??t,d??ch?,tr?ch?) condition: l??t not in Bl?
?x?c: D??Ch? = d??ch?
Tr?Ch? = tr?ch?
rt?ch? = g?t_rt?ch?(l??t) rt?ch?.pntch? ?= d??ch?
b?c? = g?t_b?c?(l??t) tr?n?it: controll?d(l??t) ??nding: oCtrl [b?c?(l??t,rt?ch?) _ r?c?ipt: ????
??nding: oB?d {S?? ](????) _ STATE controlled(bl?):
r?c?ipt: iCh? [D?? ?(bl?,d??ch?,tr?ch?) ?x?c: d??Ch? = d??ch?
Tr?Ch? = tr?ch?
_ r?c?ipt: iCtrl [Up ](bl?,rt?ch?) condition: D??Ch? == O?

exec: set_rtschk(blk,rtechk) transit: control(blk) sending: oCtrl [Dev ](blk,Rest) receipt: iCtrl [Up ](blk,rtechk) condition: DevChk == NOK
TrsChk == NOK
exec: set_rtechk(blk,rtechk) transit: control(blk) sending: oCtrl [Dev ](blk,Rest) receitp: iCtrl [Up ](blk,rtechk) condition: DevChk == NOK
TrsChk == OK
exec: set_rtechk(blk,rtechk) transit: control(blk) sending: oCtrl [Dev ](blk,Perm) -receipt: iChk [Up ](blk,rtechk) exec: set_rtechk(blk,rtechk) transit: cheching(blk) sending: oCtrl [Dev ](blk,Rest) _ receipt: iFree [Up ](blk) exec: sub(blk,Blk) transit: unset(blk) sending: oFree (Dn ](blk) _ receipt: mess sending: oBad [Sys ](mess) _ STATE controlled(over):
receipt: iChk [Dev ](over,devchk,trschk) exec: DevChk = devchk TrsChk = trschk -receipt: iCtrl [Up ](over,rtechk) condition: DevChk == OK
exec: set_rtechk(over,rtechk) transit: control(over) sending: oCtrl [Dev ](over,Rest) receipt: iCtrl [Up ](over,rtechk) condition: DevChk == NOK
TrsChk == NOK
exec: set_rtechk(over,rtechk) transit: control(over) sending: oCtrl [Dev ](over,Rest) receipt: iCtrl [Up ](over,rtechk) condition: DevChk == NOK
TrsChk == OK
exec: set_rtechk(over,retchk) transit: control(over) sending: oCtrl [Dev ](over,Perm) _ receipt: iChk [Up ](over,rtechk) exec: set_rtechk(over,rtechk) transit: checking(over) sending: oCtrl [Dev ](over,Rest) _ receipt: iFree [Up ](over) exec: sub(over,Over) transit: unset(over) sending: oFree [Dn ](over) _ receipt: mess sending: oBad [Sys ](mess) _ STATE controlled(last):
receipt: iChk [Dev ](last,devchk,trschk) exec: devChk = devchk TrsChk = trschk _ receipt: iCtrl [Up ](last,rtschk) condition: DevChk == OK
exec: set_rtechk(last,rtechk) transit; control(last) sending: oCtrl [Dev ](last,Rest) receipt: iCtrl [Up ](last,rtechk) condition: DevChk == NOK
TrsChk == NOK
exec: set_rtechk(last,rtechk) transit: control(last) sending: oCtrl [Dev ](last,Rest) receipt; iCtrl [Up ](last,rtechk) condition: DevChk == NOK
TrsChk == OK
exec: set_rtechk(last,rtechk) transit: control(last) sending: oCtrl [Dev ](last,Perm) _ receipt: iFree [Up ](last) exec: sub(last,Last) back = get_back(last) transit: unset(last) sending: oFree [back](last) _ receipt: mess sending: oBad [Sys ](mess) _ STATE checking(blk):
receipt: iChk [Dev ](blk,devchk,traschk) condition: blk in sFirst exec: DevChk = devchk TrsChk = trschk rtechk = get_rtechk(blk) rtechk.pntchk ?= devchk rtechk.blktrs ?= trschk rtechk.fsttrc ?= trschk transit: checked(blk) sending: oChk [Dn ](blk,rtechk) receipt; iChk [Dev ](blk,devchk,trschk) condition: blk in sSecond exec: DevChk = devchk TrsChk = trschk rtechk= get_rtechk(blk) rtechk.pntchk ?= devchk rtechk.blktrs ?= trschk rtechk.sndtrc ?= trschk transit: Checked(blk) sending: oChk [Dn ](blk,rtechk) _ receipt: mess sending: oBad [Sys ](mess) _ STATE checking(over):
receipt: iChk [Dev ](over,devchk,trschk) exec: DevChk = devchk TrsChk = trschk rtechk = get_rtechk(over) rtechk.pntchk ?= devchk transit: checked(over) sending: oChk [Dn ](over,rtechk) _ receipt: mess sending: oBad [Sys ](mess) _ STATE checking(last):
receipt: iChk [Dev ](last,devchk,traschk) condition: last in Blk last in sBuffer exec: DevChk = devchk TrsChk = trschk rtechk = get_rtechk(last) rtechk.ersig &= Red rtechk.pnthck &= devchk rtechk.blktrs &= trschk back = get_back(last) transit: checked(last) sending: oChk [back](last,rtechk) receipt: iChk [Dev ](last,devchk,trschk) condition: last in Blk last not in nBuffer exec: DevChk = devchk TrsChk = trschk rtechk = get_rtechk(last) rtechk.pntchk &= devchk rtechk.blktrs &= traschk back = get_back(last) transit: checked(last) standing: oChk [back](last,rtechk) receipt: iChk [Dev ](last,devchk,trschk) condition: last not in Blk exec: DevChk = devchk TrsChk = trschk rtechk = get_rtechk(last) rtechk.ontchk &= devchk back = get_back(last) transit: Checked(last) sending: oChk [back](last,rtechk) _ receipt: mess sending: oBad [Sys ](mess) _ STATE checked(blk):
receipt: iChk [Dev ](blk,devchk,trschk) exec: DevChk = devchk TrsChk = trschk _ receipt: iChk [Up ](blk,rtechk) exec: set_rtechk(blk,rtechk) transit: checking(blk) sending: oCtrl [Dev ](blk,Rest) _ receipt: iFree [Up ](blk) condition: blk in sBerth transit: release(blk) sending: oOn [Tim ](blk,get_time(blk)) oCtrl [Dev ](blk,Rest) receipt: iFree [Up ](blk) condition: blk not in sBerth transit: release(blk) sending: oCtrl [Dev ](blk,Rest) _ receitp: mess sending: oBad [Sys ](mess) _ STATE checked(over):
receipt: iChk [Dev ](over,devchk,trschk) exec: DevChk = devchk TrsChk = trschk _ receipt: iChk [Up ](over,rtechk) exec: set_rtechk(over,rtechk) transit: checking(over) sending: oCtrl [Dev ](over,Rest) _ receipt: mess sending: oBad [Sys ](mess]
_ STATE checked(last):
receipt: iChk [Dev ](last,devchk,trschk) exec: DevChk = devchk TrsChk = trschk _ receipt: iChk [Up ](last,rtechk) exec: set_rtechk(last,rtechk) transit: checking(last) sending: oCtrl [Dev ](last,Rest) _ receipt: iFree [Up ](last) condition: last in sBlock transit: checking(last) sending: oCtrl [Dev ](last,Rest) _ receitp: iFree [Up ](last) condition: last in sBlock transit: release(last) sending: oCtrl [Dev ](last,Rest) receipt: iFree [Up ](last) condition: last in sOverlap exec: sub(last,Last) back = get_back(last) transit: unset(last) sending: oFree [back](last) receipt: mess sending: oBad [Sys ](mess) _ STATE release(blk):
receipt: iChk [Dev ](blk,dechk,trschk) condition: trschk == NOK
exec: DevChk = devchk TrsChk = trschk transit: release(blk) sending: oCtrl [Dev ](blk,Rest) receipt: iChk [Dev ](blk,devchk,traschk) condition: trschk == OK
exec: DevChk = trschk sub(blk,Blk) transit: unset(blk) sending: oFree [Dn ](blk) _ receipt: iOut [Tim ](blk) exec: sub(blk,Blk) transit: unset(blk) sending: oFree [Dn ](blk) _ receipt: iRelease[Sys ](blk) exec: sub(blk,Blk) transit: unset(blk) sending: oFree [Dn ](blk) _ receipt: mess sending: oBad [Sys ](mess) _ STATE release(last):
receipt: iCHk [Dev ](last,devchk,trschk) condition: trschk == NOK
exec: DevChk = devchk TrsChk = trschk transit: release(last) sending: oCtrl [Dev ](last,Rest) receipt: iChk [Dev ](last,devchk,trschk) condition: trschk == OK
exec: DevChk = devchk TrsChk = trschk sub(last,Last) transit: unset(last) sending: oFree [Dn ](last) _ receipt: iRelease(Sys ](last) exec: sub(last,Last) back = get_back(last) transit: unset(last) sending: oFree [back](last) _ receipt: mess sending: oBad [Sys ](mess) _ Annexe 4
CA002187817A 1995-10-13 1996-10-11 Systeme d'enclenchement ferroviaire a architecture logicielle et son procede d'implementation Abandoned CA2187817A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9512026 1995-10-13
FR9512026A FR2739824B1 (fr) 1995-10-13 1995-10-13 Systeme d'enclenchement ferroviaire a architecture logicielle et son procede d'implementation

Publications (1)

Publication Number Publication Date
CA2187817A1 true CA2187817A1 (fr) 1997-04-14

Family

ID=9483497

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002187817A Abandoned CA2187817A1 (fr) 1995-10-13 1996-10-11 Systeme d'enclenchement ferroviaire a architecture logicielle et son procede d'implementation

Country Status (12)

Country Link
EP (1) EP0773155A1 (fr)
JP (1) JPH09123912A (fr)
KR (1) KR970020825A (fr)
CN (1) CN1158803A (fr)
AU (1) AU6815596A (fr)
BR (1) BR9605136A (fr)
CA (1) CA2187817A1 (fr)
FR (1) FR2739824B1 (fr)
MX (1) MX9604771A (fr)
NO (1) NO964327L (fr)
TW (1) TW381198B (fr)
ZA (1) ZA968654B (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19725320A1 (de) * 1997-06-10 1998-12-17 Siemens Ag Einrichtung zur Steuerung von Bahnübergängen
ATE228451T1 (de) * 1998-08-19 2002-12-15 Siemens Schweiz Ag Verfahren für die steuerung und überwachung einer verkehrstechnischen anlage
FR2826921B1 (fr) 2001-07-05 2004-07-09 Cit Alcatel Procede de formation et de gestion d'itineraires et reseau mettant en oeuvre un tel procede
ITSV20020056A1 (it) * 2002-11-14 2004-05-15 Alstom Transp Spa Dispositivo e metodo di verifica di motori software logici di comando di impianti ferroviari, in particolare di impianti di stazione
US9003039B2 (en) * 2012-11-29 2015-04-07 Thales Canada Inc. Method and apparatus of resource allocation or resource release
EP3071469B1 (fr) * 2013-12-30 2019-05-15 INEO Urban Transportation Solutions Procédé et dispositif informatisé pour l'enclenchement d'un itinéraire ferroviaire
EP3258400A1 (fr) 2016-06-14 2017-12-20 ALSTOM Transport Technologies Procédé et système de conception permettant de concevoir un système de commande d'interverrouillage

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1350263A (fr) * 1963-03-01 1964-01-24 Ericsson Telefon Ab L M Agencement de transmission de signaux
FR1408405A (fr) * 1964-07-10 1965-08-13 Ericsson Telefon Ab L M Agencement pour la recherche d'un itinéraire sur une installation de voie ferrée
DE3232308C2 (de) * 1982-08-31 1984-10-31 Standard Elektrik Lorenz Ag, 7000 Stuttgart Einrichtung zur dezentralen Auswahl von Fahrstraßen in einem Spurplanstellwerk
DE3922620C1 (fr) * 1989-07-10 1991-02-28 Ivv Ingenieurgesellschaft Fuer Verkehrsplanung Und Verkehrssicherung Gmbh, 3300 Braunschweig, De
DE4406924A1 (de) * 1994-02-28 1995-08-31 Siemens Ag Verfahren zum synchronisierten Betrieb eines aus mehreren Rechnern bestehenden verteilten Datenverarbeitungssystems und Einrichtung zur Anwendung des Verfahrens

Also Published As

Publication number Publication date
CN1158803A (zh) 1997-09-10
MX9604771A (es) 1997-08-30
NO964327D0 (no) 1996-10-11
EP0773155A1 (fr) 1997-05-14
ZA968654B (en) 1997-05-13
FR2739824B1 (fr) 1997-11-14
KR970020825A (ko) 1997-05-28
BR9605136A (pt) 1998-07-07
JPH09123912A (ja) 1997-05-13
NO964327L (no) 1997-04-14
AU6815596A (en) 1997-04-17
FR2739824A1 (fr) 1997-04-18
TW381198B (en) 2000-02-01

Similar Documents

Publication Publication Date Title
CA1186397A (fr) Autocommutateur temporel a commande repartie
CN100544301C (zh) 在多域虚拟专用网络中快速确定连接路径的方法
EP0027226B1 (fr) Système de contrôle d'un réseau de connexion
CA2276131A1 (fr) Systemes et procedes permettant de gerer et de prevenir des elements de reseau associes a la transferabilite des numeros
DE60115668D1 (de) System und verfahren zur aktiven leitungsabschluss
FR2649574A1 (fr) Reseau de communication entre equipements utilisateurs
CA2187817A1 (fr) Systeme d'enclenchement ferroviaire a architecture logicielle et son procede d'implementation
FR2547686A1 (fr) Circuit de test a bouclage de systeme de commutation
FR2526250A1 (fr) Procede de calage temporel automatique de stations dans un systeme de transmission par multiplex et de traitement de donnees
FR2548506A1 (fr) Systeme de controle de peripheriques pour systeme de commutation de signaux numeriques
US6018773A (en) Method and apparatus for transferring information to a plurality of offices in series in a network
EP0581847A1 (fr) Systeme de transmission d'informations entre le sol et des mobiles notamment dans les communications sol-trains
EP0645902B1 (fr) Système de transmission de données par satellite entre centres de commutation téléphoniques, station de trafic et procédé de transmission correspondants
CA1188003A (fr) Dispositif de defense d'un autocommutateur a commande repartie
CA1215483A (fr) Dispositif de transfert et de traitement de voies de donnees ou de signalisation d'un ensemble de lignes multiplex
CA2115880A1 (fr) Centre satellite a technologie mixte photonique-electronique pour raccorder des lignes d'abonne optiques a un reseau de telecommunication a mode de transfert asynchrone
FR2687524A1 (fr) Systeme de gestion dynamique d'un ensemble d'equipements relies en reseau de telecommunications.
EP0114433B1 (fr) Système de commutation téléphonique
FR2562746A1 (fr) Autocommutateur a matrice de commutation video
JP2713325B2 (ja) 管理情報分配収集方式
EP1087568B1 (fr) Procédé et dispositif de gestion des circuits de transmission d'un réseau
FR2826921A1 (fr) Procede de formation et de gestion d'itineraires et reseau mettant en oeuvre un tel procede
EP0471633A1 (fr) Réseau de communication à anneau d'écriture et anneau de lecture et procédé d'accès et de reconfiguration d'un tel réseau
EP0541410B1 (fr) Procédé et installation de communication, à transmission de signaux numériques
EP0383666B1 (fr) Circuit modulaire d'interface et régie d'abonné pour réseau numérique

Legal Events

Date Code Title Description
FZDE Dead

Effective date: 20000417