Ämne: Rapport T3 sida 1 (10) Rapport T3 TOPSim systembeskrivning En rapport från TOPSim- och CATDprojekten
Ämne: Rapport T3 sida 2 (10) Innehållsförteckning Innehållsförteckning... 2 Översikt... 3 Grundversion... 3 Utökad version... 3 Simuleringskärna TTS... 5 Interaktiv trafikstyrning... 5 Realtidsmod... 6 Tågpositionsrapportering... 7 Återta begärd tågväg med utl-kommandot... 7 Meddelande vid stationspassage...7 Felmeddelande vid ogiltiga kommandon... 7 Visualisering, tillfällig magasinering... 8 Server TTSD... 8 TOPSim Klient... 8 Presentationsmodul TTS_P... 10
Ämne: Rapport T3 sida 3 (10) Översikt Sedan projektfas 1 inom TOPSim projektet har ett antal systemövergripande uppdateringar utförts. Inför TOPSim steg 2 har ett helt nytt protokoll, som skall underlätta kommunikationen mellan TTSserver och eventuella klienter, införts. Följande rapport T3 är därför inte längre aktuell som en systembeskrivning över TOPSim och CATD steg 2. Protokollet kommer att ge helt nya förutsättningar för hur man från klientmoduler kopplar upp sig, startar en simulering och delar med sig av en simulering etc. TTS-serverns nya gränssnitt och protokollet kommer att beskrivas utförligt i rapport T6. Grundversion I enlighet med den kravspecifikation som togs fram i inledningen av TOPSim-projektet så har två versioner av TOPSim utvecklats. Dels en grundversion som baseras på en vidareutvecklad version av SIMON, och dels en ny version (refereras till som utökad version). Grundversionen bygger på de komponenter som finns i SIMON: Simuleringskärnan (TTS), en presentationsmodul (TTS_P) och ett sammanhållande skal med ett kommando- och ett meddelandefönster. Komponenternas relationer och dataflöden visas schematiskt i Grundversionen beskrivs utförligt i dokumentationen för SIMON och de flesta detaljer beskrivs därför inte i detta dokument. De förändringar som finns beskrivna under kapitel Simuleringskärna TTS på sidan 5 gäller både grundversionen och den utökade versionen. Förändringar i presentationsmodulen beskrivs under kapitel Presentationsmodul TTS_P på sidan 10. Dialogfönster Meddfönster TTS_P TTS Skal Figur 1 Processer och dataflöden i grundutförandet Utökad version Fyra komponenter utgör grunden för det utökade TOPSim-systemet: Simuleringskärnan (TTS), serverapplikationen (TTSD), klienten med tillhörande meddelande- och kommandofönster, samt presentations och interaktionsmodulen Simson.
Ämne: Rapport T3 sida 4 (10) Figur 2 visar en schematisk bild av hur systemets delar interagerar med varandra under en körning. De tjocka pilarna representerar att en process startas av en annan aktör. De tunna pilarna visar dataflöden. Klient Kmdfönster Meddfönster Simson tfk-data pres-data TTSD TTS_S TTS_P Figur 2 Processinteraktion och dataflöden för utökad version En typisk körning (session) kan innehålla följande moment: Servern TTSD startas. Klienten startas och kopplar upp sig mot servern. Servern registrerar grundläggande information om klienten, skapar en arbetskatalog åt klienten och avvaktar vidare instruktioner. Klienten skickar en konfigurationsfil och en indatafil (modell) till servern. Dessa sparas i sessionens arbetskatalog. Klienten begär att en simulering ska startas. Klienten kan starta presentations- och interaktionsmodulerna Simson och TTS_P var och för sig eller tillsammans. Man kan också välja att köra en simulering utan presentatör. För att kunna köra TTS_P måste emellertid en X-Server (t ex X-Win32) vara installerad på PCn. Servern startar ett antal hjälpprocesser som ansvarar för att överföra meddelanden mellan simuleringskärnan och klienten under körningen. Servern startar simuleringskärnan TTS. TTS läser in konfigurationsfilen och indatafilen. Simuleringen påbörjas. En mängd data och kommandon skickas i båda riktningarna mellan simuleringskärna och klient. Simuleringen avslutas. TTSD avslutar alla hjälpprocesser. Klienten kopplar ner förbindelsen. TTSD raderar sin information om klienten och väntar på nya anslutningar. De följande avsnitten innehåller närmare beskrivningar av de olika aktörernas uppgifter och funktioner.
Ämne: Rapport T3 sida 5 (10) Simuleringskärna TTS Grunden för TOPSim är en vidareutvecklad version av TTS, simuleringskärnan i SIMON. I sitt grundutförande är TTS en simulator som körs av en användare på en arbetsstation. Den version av TTS som har tagits fram för TOPSim innehåller alla funktioner som finns i SIMON. Dessutom har några grundläggande nya funktioner tillkommit: Förbättrat stöd för simulering i realtidsmod. Möjlighet att interagera och styra simulerad trafik under realtidsmod. Under utvecklingen av de nya funktionerna har också några viktiga förändringar gjorts i simulatorns interna arbetssätt. Exempel på detta är hanteringen av signaler, vilka tidigare spelade en underordnad roll. Signalerna har nu blivit tillståndsmaskiner som styrs av tågens lägen och de övervakade blockens tillstånd. Ett annat exempel är det sätt varpå reservation och beläggning av block hanteras. Blockreservation, blockbeläggning och avläsning av signalernas tillstånd hanteras nu på ett konsistent sätt av därför avsedda rutiner. Sammantaget har detta inneburit en generell förbättring av simulatorns interna funktion. Interaktiv trafikstyrning Interaktiv trafikstyrning är tillsammans med förbättrad realtidsmod de viktigaste förändringarna som har gjorts i TTS under TOPSim-projektet. Interaktiv trafikstyrning innebär att reservation av tågväg kan göras när som helst under pågående simulering med hjälp av textmeddelanden som skickas till simuleringskärnan. Nedan visas ett exempel på ett meddelande som översätts till en tågväg bestående av en följd av block. Tågvägen reserveras så att inget av blocken kan användas av något tåg som inte kommer i körriktning höger via block 0.1.1.1. Varje block har ett unikt id som består av följande fyra parametrar i en punktseparerad sträng. Block-id 1 Grennummer 2 Grendelsnummer Om Förbindelse 3 Länknummer 4 Blocknummer Om Station 3 Objektnummer Om Växel 4 Växelbensnummer Om Tågspår 4 Blocknummer
Ämne: Rapport T3 sida 6 (10) 0.1.1.1 0.1.1.2 0.1.1.3 0.2.2.1 0.2.2.2 0.2.2.3 0.2.2.4 Kommandot Trh 0.1.1.1 0.2.2.4 tolkas och spjälkas upp i en reserverad tågväg med följande block: 0.1.1.1 0.1.1.2 0.1.1.3 0.2.2.1 0.2.2.2 0.2.2.3 0.2.2.4 Figur 3 Reservation av tågväg Simulatorn startas på vanligt sätt, se kapitel Översikt på sidan 2. Följande beskrivning avser de momenten som är specifika för interaktiv trafikstyrning: Simulatorkärnan startas och modellen läses in. En indatakanal för trafikledningsmeddelanden skapas. Kommandotolken aktiveras. Kommandotolken läser kontinuerligt av indatakanalen och väntar på inkommande meddelanden. Ett inkommande meddelande tolkas och rätt åtgärd vidtas. Ett giltigt vägläggningsmeddelande resulterar i att en väglista bestående av blockreferenser skapas, se Figur 3. Blocken i väglistan reserveras och placeras i ett magasin bestående av en lista av väglistor. Det tåg som först kör in i en manuellt reserverad väg kommer att äga denna. En använd väg är förbrukad och tas bort ur magasinet. Kommandotolken väntar på nya meddelanden. Hur textmeddelanden skapas beror på vilka andra applikationer som används tillsammans med simulatorkärnan. I grundutförandet av TOPSim kan användaren själv skriva kommandon i klartext i en kommandorad i TTS_P. I den utökade versionen genereras textmeddelanden av Simson när användaren klickar i en grafisk representation av modellen. Se beskrivning av Simson för detaljer. Realtidsmod I grundutförandet av SIMON var det redan tidigare möjligt att ändra simuleringens hastighet genom att ange en realtidsfaktor. Hanteringen av realtidsfaktor var dock bristfällig, och under TOPSim har ett antal förbättringar genomförts: Bättre svarstid vid interaktion från användaren under realtidsmod. Bättre överensstämmelse mellan simulerad och verklig tid. Tätare tidsmeddelanden till presentationsmodulen. Begreppet realtidsfaktor som finns i SIMON har behållits, och fungerar nu så att den simulerade tiden går en faktor n gånger så fort som den verkliga tiden. Faktorn n kan väljas till ett godtyckligt tal mellan 1 och 3600. n=1 resulterar i att tiden i simuleringen går lika fort som tiden i verkligheten (realtid). Den högsta hastighet som kan uppnås beror på datorns prestanda.
Ämne: Rapport T3 sida 7 (10) Tågpositionsrapportering Ett tågs läge, hastighet och acceleration meddelas vid diskreta rapporteringspunkter. Vid vilka punkter rapporteringen sker är inte känt av mottagaren. När ett meddelande sänds till presentatören så flyttas tåget till ett i meddelandet angiven position. Tågets position tills nästa meddelande kan sedan interpoleras fram. För att en interpolering av tågets position skall vara möjlig har meddelandet kompletterats med ett antal parametrar och har numera följande utseende (meddelande nr 43): 1 Tågnummer 2 Riktning 3 Hastighet 4 Acceleration 5 Gren 6 Position 7 Grafnivå 8 Sträcka (ds) 9 Tid (dt) 10 Tidpunkt Återta begärd tågväg med utl-kommandot Kommandot utl A B, där A och B är giltiga namn på block som är förbundna med varandra, ska upphäva eventuella reservationer på alla block mellan A och B. Undantag gäller om det finns ett tåg på något block mellan A och B, i vilket fall följande ska gälla: Det block där tåget befinner sig ska förbli reserverat och belagt. Block som har ett överlapp som innefattar blocket förblir reserverade. Meddelande vid stationspassage Ankomst till respektive avgång från station loggas sedan tidigare i resultatfiler. Som komplement införs nya presentatörsmeddelanden som t ex kan användas av planeringsprogram (meddelande nr 45). TRN_PSG 45 Stationspassage "%hd %s %hd %d %s %ld" Argument: Tågnummer, riktning, hastighet, stn/hpl-signatur, tidpunkt [sek] Felmeddelande vid ogiltiga kommandon Presentatören visar ett felmeddelande om ett givet trafikledningskommando inte accepteras. Det finns för närvarande en typ av felmeddelande implementerat: Ett meddelande i klartext skickas när ett fel uppstår. Ingen koppling till det ursprungliga kommandot ges utöver vad som skrivs i meddelandetexten. Användaren blir medveten om att ett fel har uppstått, men ges ingen möjlighet att korrigera det (meddelande nr 70). Det finns också rena informationsmeddelanden från simulatorn motsvarande de meddelanden som för närvarande presenteras i klientens Command Window (meddelande nr 71). INFO_FEL 70 Felmeddelande från simulator "%hd %d %[^\n]s" Argument: felkod, klartext INFO_MEDD 71 Användarinformation i klartext från simulator "%hd %d %[^\n]s" Argument: kod, klartext
Ämne: Rapport T3 sida 8 (10) Visualisering, tillfällig magasinering En begärd tågväg (eller en del av den) visas på avvikande sätt till dess att den har reserverats, d v s så länge som den är "tillfälligt magasinerad". Markeringen för tillfällig magasinering är synlig även när belagda och reserverade block (i motsatt riktning) visas på samma sträcka. Magasineringen syns inte då block är belagda eller reserverade i samma riktning. TTS_P och Simson får ett meddelande för tillfällig magasinering på blocknivå. Ett meddelande införs för att meddela att tillfällig magasinering på ett block upphör. Observera att flera tillfälliga magasineringar kan finnas på samma block. BLK_MAG 35 Magasinerat "%hd %hd %hd %hd %hd %hd %hd" Argument: Block-id, riktning, förändring Server TTSD Ett av målen för TOPSim har varit att skapa en miljö där flera samtidiga användare tillsammans kan leda trafik i en simulerad miljö. Kravet på flera samtidiga användare samt en önskan att inte låsa användarna till att använda ett visst operativsystem har resulterat i att en serverbaserad lösning tagits fram. Serverapplikationen TTSD gör det möjligt för användare att koppla upp sig och köra simuleringar över ett nätverk. TTSD utgör ett tydligt gränssnitt mellan simulatorkärnan och applikationsprogramvaran (klient), och ansvarar för grundläggande operationer som: Uppkoppling av en eller flera klienter mot TTSD. Varje klient kan sedan starta varsin instans av TTS_S. Flera klienter kan i nuläget inte köra mot samma simulering och dela upp trafikledningsområden inom en simulering. Vidarebefordran av indatafil till simuleringskärnan Start av simulering Överföring av trafikledningsmeddelanden och styrkommandon från klienten till simulatorkärnan under pågående simulering Överföring av dynamiska data från simuleringskärnan till applikationsprogramvaran under pågående simulering Avslut av simulering Bortkoppling av användare Den version av TTSD som tagits fram under denna projektfas gör det möjligt för flera samtidiga användare att starta och interagera med var sin simulering över ett TCP/IP-baserat nätverk. TOPSim Klient TOPSim klienten är tillsammans med Simson den applikation som användaren använder för att koppla upp sig mot servern och köra simuleringar. Figur 4 TOPSim klienten
Ämne: Rapport T3 sida 9 (10) Klienten ansvarar för följande uppgifter: Figur 5 Klientens kommandofönster Sköta uppkoppling och kommunikation med servern. Välja en indatafil. Skicka indatafilen till servern. Ta emot styrkommandon från användaren och vidarebefordra dessa till simulatorkärnan. Starta det grafiska gränssnittet (Simson eller TTS_P).
Ämne: Rapport T3 sida 10 (10) Presentationsmodul TTS_P Presentationsmodulen (TTS_P) är en vidareutvecklad version av den presentatör som finns i SIMON. Den är skriven för operativsystemet UNIX och är avsedd att köras på samma dator som simuleringskärnan TTS. Dokumentationen för SIMON innehåller en beskrivning av TTS_P. Figur 6 Presentationsmodulen TTS_P De TOPSim-specifika förändringarna som har gjorts är: Visning av block-id för trafikledningssyfte. En kommandorad för inmatning av trafikledningsmeddelanden. Modernisering av gränssnittet. Block-id används för att referera till block i trafikledningskommandon som skrivs i kommandoraden som syns i fönstrets nederkant. Kommandon som skrivs i kommandoraden skickas till indatakanalen för trafikledningsmeddelanden i simulatorkärnan.