FORUM PTT -

NOWE - Automatyzacja przebiegów przez okręgi zwrotnicze

JARO - 18-11-2010, 12:59
: Temat postu: Automatyzacja przebiegów przez okręgi zwrotnicze
Sprawa dotyczy wersji 2004 / 2006 / TC.
Obecnie interesuję się napisaniem skryptu. Zamierzam podejść do tego jak do działań celujących jak najbardziej w upodobania użytkowników - polskich użytkowników. Będzie to ile wiem (nie jestem pewien) pierwszy dodatek oparty na programie wspomagającym (osobnej aplikacji napisanej pod MS Windows). Konkretnie zamierzam napisać dodatek umożliwiający w maksymalny sposób automatyczne definiowanie przebiegów na okręgach zwrotniczych dla użytkowników (PL) budujących stacje przede wszystkim te duże węzłowe z nawet kilkunastoma okręgami zwrotniczymi. Ponieważ dodatki pozwalające na konfigurację przebiegów są i są one mi znane to ja jednak zamierzam poprawić pewnie przyspieszyć ten element budowy makiet - może mi się uda.

Mam do was użytkowników następujące pytanie: Który z wariantów odblokowywania rozjazdów jest dogodniejszy biorąc pod uwagę wszystkie aspekty prowadzenia ruchu na takich stacjach: manewrowy, przelotowy, postojowy itp.
1a) odblokowywanie wszystkich z listy rozjazdów dopiero po zjechaniu taboru z ostatniego rozjazdu na przebiegu?
2a) odblokowywanie każdego z rozjazdów zaraz po przejechaniu taboru przez każdy z nich osobno?
3a) odblokowywanie rozjazdów po dojechaniu do znacznika np. torów postojowych (docelowych) lub w części przebiegu ale już poza okręgiem zwrotniczym?


Co do samego blokowania rozjazdów to też mam pytanie, bo czy:
1b) po nieudanej próbie blokowania i ustawienia rozjazdów wstrzymywać wykonywanie dalszych poleceń maszynisty do czasu możliwości ustawienia rozjazdów?
2b) po nieudanej próbie blokowania i ustawienia rozjazdów umożliwić wykonywanie następnych poleceń maszynisty, a procedurę ustawiania i blokowania pozostawić w „pamięci” do wykonania do czasu odblokowania rozjazdów.


Co wiadomo to, to że jeżeli któryś z listy rozjazd nie będzie odblokowany (bo zablokował go inny pociąg) to już żaden rozjazd z tej listy nie będzie mógł być ustawiony i zablokowany.

Liczę na jakieś odpowiedzi skoro dodatek może być również dla innych fanów.
mgarkowski - 18-11-2010, 13:06
:
2a i 1b wydają się najrozsądniejsze.
JARO - 18-11-2010, 13:23
:
mgarkowski napisał/a:
2a i 1b wydają się najrozsądniejsze.


2a - O.K. nie ma sprawy - czekam na głosy innych
1b - nie wiem czy wziąłeś po uwagę że przy takim ustawieniu nie będą możliwe podjazdy np. pociągów pod semafor wjazdowy na stację. Pociąg staje zaraz po zarejestrowaniu braku możliwości ustawienia trasy.
Maverick - 18-11-2010, 13:52
:
Jestem za 2a i 2b - jest to fajne rozwiązanie. Pozdrawiam
pietrek - 18-11-2010, 14:09
:
Witam.
Jak dla mnie najbardziej odpowiednim byłoby rozwiązanie:
1a) jeżeli dobrze kombinuję to w takiej opcji po ustawieniu przebiegu (np. ustawiam pierwszą i ostatnią zwrotnicę danego przebiegu, a Twój program ustawia pozostałe pośrednie rozjazdy) logicznym byłoby zwolnienie blokady dopiero po zjechanie taboru za ostatni rozjazd tego przebiegu. I (o ile się orientuje) byłoby to zgodne z rzeczywistością. A jeżeli ostatnią zwrotką mogłaby być którakolwiek z danego przebiegu to byłoby już świetnie.
Co do drugiego zagadnienia to optowałbym za rozwiązaniem 1b. Jeżeli nie można ułożyć drogi to jest tego jakaś przyczyna i wypadałoby najpierw ją usunąć. Alternatywą mogłoby być takie rozwiązanie w którym byłaby ułożona droga przez inne rozjazdy (poza pierwszym i ostatnim), byłoby to bardzo przydatne w opcji manewrowej, gdzie w przypadku dużych węzłów i nie umiejętnej pracy dyżurnego dochodzi do sytuacji że jak manewruje jeden skład to cały okręg stoi. Jak jest bardzie operatywny dyżurny to jednocześnie może przejeżdżać pociąg i manewrują dwa składy w ramach jednego okręgu.
Przy takim rozwiązaniu współgrałyby oba rozwiązania, co prawda trzeba by było robić czasami przynajmniej dwa przebiegi manewrowe (priorytet 3) ale manewry często są tak robione.
drstrach - 18-11-2010, 14:21
:
1a jest chyba najtrafniejszym rozwiązaniem, choć mam pewne wątpliwości w przypadku ustawiania przebiegów manewrowych.
2b tylko pytanie, jak będzie traktować takie przypadki AI, która jak wiadomo zbyt doskonała nie jest. Czyli jak AI potraktuje w przypadku porzucenia ustawienia drogi kolejne polecenia, robiłeś już jakieś testy?
zolwik - 18-11-2010, 14:25
:
a bedzie rozgraniczenie na jazdy manewrowe i pociagowe?

bo w jakiejs obecnej komendzie jesli przebieg prowadzi na tor zajęty to przebieg sie nie poda.. i wyskoczy komunikat ze tor jest zajety

to do jazd pociagowych a do manewrowych aby cos takiego nie mialo miejsca bo wiadomo ze można wjechać na zajęty tor.

a jak na razie to obstaje do 1a. i 2b.

Pietrek przy 1b jesli nie może zablokować to pociag ci sie zatrzyma na szlaku... a w realu powinien dojechac do semafora... i tak jest w drugim rozwiazaniu...
pociag na szlaku ma polecenie przed tarcza ulozyc przebieg i jechac do znacznika.
przebiegu i nieulozy ale bedzie jechac do znacznika. i zatrzyma sie na pierwszym S1. bo nie bedzie drogi do dalszej jazdy.


a co do tego:
"Co wiadomo to, to że jeżeli któryś z listy rozjazd nie będzie odblokowany (bo zablokował go inny pociąg) to już żaden rozjazd z tej listy nie będzie mógł być ustawiony i zablokowany.
"
da sie zrobic tak zeby podany mamy jeden przebieg...a nastepny ma kilka zwrotek wspolnych ale kilka nowych.
to zeby te wspolne byly zablokowane ale te "wolne" można było przestawić ...

i czy bedzie opcja kasowania podanego przebiegu?
JARO - 18-11-2010, 14:33
:
Opcja 1a) - no cóż, chyba tak jest w rzeczywistości ale koledzy mamy wąskie gardło z przepustowością, bo zanim pociąg przetoczy się przez ostatni rozjazd wstrzymuje np. na semaforach wjazdowych inne pociągi potrzebujące akurat dostępu do jednego lub dwóch rozjazdów.
Co do opcji tworzenia przebiegów, również tych alternatywnych (dwa lub więcej dojazdów z tego samego miejsca startowego w to samo miejsce docelowe) oczywiście jest to możliwe by zewnętrzny program opisywał takie przebiegi i tak zamierzam zrobić może przez nadawanie priorytetu (coś jak z lokomotywami). Co do sposobu wytyczania przebiegu przez wskazywanie pierwszego i ostatniego rozjazdu to może nie do końca tak, ale z toru do toru to tak i wiele innych opcji. Mam to opisane w pliku MS Word. Prześlę jak kto chce. Mój adres krzywe_konto@o2.pl.
Co do propozycji 1b) to uwaga bo wówczas pociągi dojeżdżające ze szlaku będą stały jeszcze przed tablicą ostrzegawczą semafora wjazdowego. Problem opisywałem już na forum - nie będę się powtarzał.
JARO - 18-11-2010, 14:47
:
drstrach napisał/a:
1a jest chyba najtrafniejszym rozwiązaniem, choć mam pewne wątpliwości w przypadku ustawiania przebiegów manewrowych.
2b tylko pytanie, jak będzie traktować takie przypadki AI, która jak wiadomo zbyt doskonała nie jest. Czyli jak AI potraktuje w przypadku porzucenia ustawienia drogi kolejne polecenia, robiłeś już jakieś testy?


Mnóstwo testów robię ponieważ piszę kod skryptów z ręki i testuję z wieloma lokami i różne sytuacje.
Nie wiem czy rozumiem porzucenie przebiegu? Ale dopisanie skryptu dla osobnej komendy odblokowania będzie tu pomocne. Nie ma problemu z blokowaniem i rozblokowywaniem jeżeli rozblokowywaniem rozjazdów zajmuje się przejazd pociągu np. przez znacznik torów a nie przejazd przez rozjazd. to jednak zmienia postać rzeczy.
JARO - 18-11-2010, 14:53
:
Cytat:
da sie zrobic tak zeby podany mamy jeden przebieg...a nastepny ma kilka zwrotek wspolnych ale kilka nowych.
to zeby te wspolne byly zablokowane ale te "wolne" można było przestawić ...

i czy bedzie opcja kasowania podanego przebiegu?


Nie widzę kolego zolwik przyczyny blokowania pozostałych rozjazdów tylko z części przebiegu skoro on i tak teraz nie będzie mógł być wykonany. A tym czasem inny pociąg, ten trzeci będzie miał zablokowany przebieg bo ten drugi zablokował mu rozjazdy ale i tak nie jedzie bo znowu ten pierwszy mu zablokował inne rozjazdy z przebiegu.. To prowadzi do blokady okręgu. Mówimy tu o naprawdę dużym ruchu.

Z ekstra kasowaniem (za punkty karne lub zerwaniem plomby :-D ) mam na dzisiaj mały problem. Ale nie poddaję się tak łatwo...
drstrach - 18-11-2010, 15:09
:
JARO napisał/a:
Nie wiem czy rozumiem porzucenie przebiegu?

Dokładnie.
Zresztą na część moich wątpliwości odpowiedziałeś dając odpowiedź Zolwikowi.
zolwik - 18-11-2010, 15:22
:
JARO napisał/a:
Cytat:
da sie zrobic tak zeby podany mamy jeden przebieg...a nastepny ma kilka zwrotek wspolnych ale kilka nowych.
to zeby te wspolne byly zablokowane ale te "wolne" można było przestawić ...

i czy bedzie opcja kasowania podanego przebiegu?


Nie widzę kolego zolwik przyczyny blokowania pozostałych rozjazdów tylko z części przebiegu skoro on i tak teraz nie będzie mógł być wykonany. A tym czasem inny pociąg, ten trzeci będzie miał zablokowany przebieg bo ten drugi zablokował mu rozjazdy ale i tak nie jedzie bo znowu ten pierwszy mu zablokował inne rozjazdy z przebiegu.. To prowadzi do blokady okręgu. Mówimy tu o naprawdę dużym ruchu.
.


ja nie mowie o blokowaniu tych wolnych tylko ustawieniu/przestawieniu. ale zeby bylo one caly czas wolne... wszak dyzurny w oczekiwaniu az jeden sklad zwolni przebieg moze nastawiac droge dla nastepnego. a gdy pierwszy sie zwolni dodac wczesniej zajete i zablokowac calosc.


pytanie inne. z wybieraniem przebiegow.
od punktu poczatkowego do koncowego. ok istnieje w realu taka wersja

ale pytanie czy mozna zrobic tak aby...
recznie ustawiamy rozjazdy w stacji.klikniemy na semafor( w osobnym okienku??) a on na podstawie "ulożenia" trasy zablokuje nam caly odcinek do nastepnego semafora. tak jak to ma miejsce w realu. ukladamy zwrotki potem przycisk semafora i mamy przebieg
JARO - 18-11-2010, 18:15
:
Mój wybór to 2a i 2b.

at.1. Nie zrozumiałem Zolwika. Ja podchodzę do sprawy tak: rozjazd jest ustawiany, a następnie blokowany. Czy musi być blokowany - nie rozjazd nie musi być blokowany. Jednak jeżeli nie jest zablokowany to dla mnie jest oczywistym to, że inny pociąg zmieni ustawienie rozjazdu zanim ten co sobie ustawił to zdąży wykorzystać. Piszę tak bo moje początkowe testy opierały się na takim podejściu. W trakcie testów okazywało się że nawet pod przejeżdżającym pociągiem inny przestawiał ustawienie rozjazdu i wiecie co się działo... Ale po co zmieniać ustawienie rozjazdu skoro i tak nie można teraz tam dojechać?
A więc jeszcze raz:
1. Jeżeli jest to możliwe (rozjazd jest nieblokowany) rozjazd ustawia w określonym kierunku.
2. Blokuje jego ustawienie by inne pociągi mu go nie przestawiły.
3. Przejeżdża przez rozjazd całym składem (ang. Junction InnerLeave) i go odblokowuje by inne pociągi mogły go sobie ustawić i zablokować lub trzyma do momentu najechania na znacznik torów lub triger. Właśnie wasze spojrzenie na sposób (moment) odblokowywania mnie szczególnie interesuje.

at.2. Niestety nie rozumiemy się...
Moim pomysłem jest napisanie programu windowsowego, którego zadaniem będzie tworzenie kodu dodatków do waszych plansz (tras kolejowych). I te dodatki będą już posiadały zdefiniowane (w moim programie) przebiegi przez okręgi zwrotnicze. Po to by nie ślęczeć na wypełnianiu wszystkich możliwych przebiegów na stacjach gdzie torów wyjazdowych gdzie jest kilka może i 10 a torów postojowych kilkadziesiąt może i 50 lub więcej. Pomyślcie ile to jest wpisywania w dodatki które wspólnie znamy deklaracji przełączeń, a to semafor początkowy, a to w jedną stronę a to w drugą stronę, a i masa alternatywnych przebiegów plus ograniczenie pamięci.
Po prostu masz gotową trasę i zamykasz TRS. Używasz sobie programu TrainzMap zrzucasz do pliku układ torów bo nie masz go w pamięci. Wzorując się rysujesz za pomocą myszki w układzie schematycznym układy torów na danym okręgu plus nazwy rozjazdów i torów (w oknie z siatką np. 30 pikseli - to już mam zrobione bo z innego projektu). Nazywasz okręg np. WR1 wybierasz opcję tworzenia przebiegów jeden przycisk i masz dodatek do twojej trasy (planszy). I tak dalej z następnymi okręgami. Każdy okręg będzie wsystępował w TRS jako osobny dodatek (CDP) i w menu głównym. a w swoim podmenu będzie miał opisane przebiegi "z - do" ułożone alfabetycznie. Nie ingeruję w system semaforów ani technik zlecania jazdy maszyniście (nie tym razem, pomału...). Moje rozwiązanie nie będzie miało sensu na małych stacyjkach typu "Auran wbudował w TRS-a" - to jest rozwianie na stacje typu Wrocław Gł. czy Brochów Zajączkowo Tczewskie, Tarnowskie Góry itd. Dlatego próby Zolwika rozpasania dodatku na tym etapie o semafory lub polecenia jazdy mszynisty są zbyt daleko idące. Nie mówię definitywnie nie, nie da się zrobić.
Ernie doskonale wie ile ograniczeń ma TRS jeżeli chodzi o środowisko programowania. Gane Script tylko bardzo podobny do C++ lub Javy jest daleko uboższy od tych języków programowania. Dlatego od kilku lat waham się między pisaniem na rzecz TRS-ów czy napisać coś dla nas wspólnie nowego.

...
Mój inny dodatek do ustawiania i blokowania rozjazdów przesłałem do Mnicha.
...
Ilu chętnych znalazłoby się by zbudować (narysować 2D- rzut z góry) u siebie swoją krainę stacji i pociągów a później móc je wysyłać według wspólnie opracowanego rozkładu jazdy (przez sieć) niby na szlaki do innych użytkowników sieci? (...więcej nie napiszę już???)
JARO - 19-11-2010, 08:20
:
Cytat:
Z ekstra kasowaniem (za punkty karne lub zerwaniem plomby :-D ) mam na dzisiaj mały problem. Ale nie poddaję się tak łatwo...


... tak pisałem wczoraj.
Otóż i z tym już nie ma problemu. Napisałem nową komendę do odblokowywania zablokowanych rozjazdów. Przetestowałem ten element. I działa on tak:
1) Maszynista 1 ustawia sobie drogę i blokuje rozjazdy.
2) Maszynista 2 zamierza sobie ustawić drogę ale ma zablokowany rozjazd.
3) Wstawiam Maszyniście 1 przed bieżącą wykonywaną komendą moją nową komendę odblokowania rozjazdu np. "roz231" i on odblokowuje ten rozjazd.
4) Teraz Maszynista 2 ustawia sobie na rozjeździe "roz231" swój kierunek i blokuje przed dostępem innych pociągów.

Działa jak trzeba i o wszystkich poczynaniach informuje w okienku komunikatów.
zolwik - 19-11-2010, 11:08
:
mozesz to jakob bardziej opisac bo nie kumam....

a jeszcze co do zwalniania przebiegów za ostatnią zwrotnicą...


nie kiedy jest tak że 2 zwrotnice sa ze sobą połączone
http://lh3.ggpht.com/_CRP...%20JG%20024.jpg

np. zwrotka 1|2

albo 3|101cd

w przypadku np. gdy pociag zjedzie z jednogo rozjazdu np. 3 ale bedzie jeszcze na 101cd to inny sklad moze przestawic rozjazd 3 i tym samym rozjazd 101cd... wiec jestem przeciw tej wersji
JARO - 19-11-2010, 15:00
:
zolwik napisał/a:
mozesz to jakob bardziej opisac bo nie kumam....


Jak przygotuję jakąś instrukcję to ci prześlę.

Cytat:
a jeszcze co do zwalniania przebiegów za ostatnią zwrotnicą...


nie kiedy jest tak że 2 zwrotnice sa ze sobą połączone
http://lh3.ggpht.com/_CRP...%20JG%20024.jpg

np. zwrotka 1|2

albo 3|101cd

w przypadku np. gdy pociag zjedzie z jednogo rozjazdu np. 3 ale bedzie jeszcze na 101cd to inny sklad moze przestawic rozjazd 3 i tym samym rozjazd 101cd... wiec jestem przeciw tej wersji

Jak zjedzie z rozjazdu 3 to według wersji 2b inny może sobie ten rozjazd przełączać ile chce. Jeżeli stosujesz inne dodatki do pracy rozjazdów parami to nie próbowałem tego w moich testach. Zakładam że do sterowania rozjazdami jest stosowany wyłącznie mój dodatek. W takim wypadku ten do sterowania parami jest niepożądanym dodatkiem. Ale sprawdzę jak jeszcze mam ten dodatek jak to się zachowuje.

Nie zakładam pracy parami rozjazdów. Sposoby które ja wybrałem 2a i 2b. Skrypt dodatku działa tak że rozjazd jest odblokowywany dla każdego innego pociągu w momencie kiedy cały pociąg który go zablokował przejedzie przez niego. Tak więc żaden inny pociąg nie zdoła zmienić ustawienia rozjazdu zablokowanego przez tego kto był pierwszy. Nawet powiem więcej, gdyby nawet żaden semafor nie regulowałby ruchu to i tak pociąg niewłaściwy (który nie zablokował sobie rozjazdu) nie wjedzie na niego. Oczywiście nie zakładam w ogóle w swoich próbach i rozważaniach braku sterowania ruchem z semaforów.

Sposób odblokowywania rozjazdów po przejechaniu tego ostatniego - ma swoje uzasadnienie jak niektórzy dostrzegli. Jednak taka praca na okręgu zwrotniczym zdecydowanie jest mniej przepustowościowa od 2b. Jest również bezpieczna bo żaden pociąg inny nie ma dostępu do rozjazdów wszystkich dopóki pociąg który je zablokował nie przejedzie za ostatni z listy rozjazdów.

Zolwik - podaj mi swego emaila a prześlę ci dwa moje dodatki. Użyjesz i zobaczysz jak to działa w praktyce. Niestety Mnich jeszcze nie opublikował tego jednego mojego dodatku.
zolwik - 19-11-2010, 23:38
:
ale jesli chcemy urealniać trs to praca parami jest wskazana :)

a co do pracy okręgów to tak jest w realu. wiec dalej utrzymuje ze zwalnianie po przejechaniu całego przebiegu było by lepsze. i zgodne z realiami.

maila wysle na pw
JARO - 20-11-2010, 21:16
:
zolwik napisał/a:
ale jesli chcemy urealniać trs to praca parami jest wskazana :)

Praca nie tylko parami ale całą listą rozjazdów będzie dostępna z mojego dodatku. W tym zawrę rozjazdy blokowane (np. z rozjazdy angielskie) dla zachowania bezpieczeństwa.

Ale szczerze to zaczynam się zastanawiać czy nie lepiej popracować nad dodatkiem do budowy pulpitu nastawniczego. Rzucić w ogóle sterowanie rozjazdami i semaforami przez jakiekolwiek inne dodatki czy nawet AI. Ale skąd wziąć całą brygadę dyżurnych ruchu do reagowania na zbliżające się pociągi by w porę ustawić drogę? No i byłaby to praca od podstaw a w przypadku dodatku do przebiegów gro spraw jest już opracowane.

zolwik napisał/a:
a co do pracy okręgów to tak jest w realu. wiec dalej utrzymuje ze zwalnianie po przejechaniu całego przebiegu było by lepsze. i zgodne z realiami.

Nie ma sprawy i taki sposób da się zrobić skoro na początku zakładałem taką ewentualność.
arczix - 27-11-2010, 11:44
:
Witam.

Po pobraniu zależności "blokuj rozjazd", Twojego autorstwa, zauważyłem jedną wadę. Chodź zależność ta jest moim lekarstwem na blokadę liniową w TRS2004, nie mogę jej ustawić z widoku geodety, co dość znacznie utrudnia robienie większych sesji. Czy można temu zaradzić?
JARO - 27-11-2010, 16:42
:
Nie wiem kolego na czym polega ten problem. Ja w widoku geodety buduję całe rozkłady jazdy z tym poleceniem. Co więcej można zrobić z moim dodatkiem w widoku geodety nie wiem. Jedynym zadaniem dla użytkownika w widoku geodety jest włączenie samego dodatku, a następnie wstawianie w listę poleceń maszynisty i tyle. Dodatek ma inne minusy o których tu nie piszę. Dodam że wkrótce prześlę komendę którą mam gotową która odblokowuje rozjazdy zablokowane moją komendą. W tej chwili buduję i testuję dodatek którym będzie można ustawiać całą listę rozjazdów.
Sprecyzuj na czym polega ten błąd, co robisz krok po kroku.
zolwik - 27-11-2010, 17:09
:
ja niestety mam to samo co kolega wyzej...
tzn wchodze w geodete w zasadzie polecenia zaznaczam blokuj rozjazd
potem przechodze do polecen dla maszynistow... i tam chcac wybrac polecenie blokuj rozjazd w menu go nie ma
arczix - 27-11-2010, 17:56
:
Czyli jak napisał Żółw, zależność tą widać tylko w maszyniście, w geodecie jest niewidzialna, pomimo zaznaczenia.
JARO - 27-11-2010, 20:08
:
Nadal nie wierząc w to co piszecie ściągnąłem z PTT ten dodatek i zainstalowałem. Macie rację. I to mnie okrutnie zdziwiło. Jednak jak to się stało nie wiem bo u mnie to działa. Zresztą czy ktoś tu wie jak w ogóle zrobić coś takiego by komendy w geodecie nie było a była w sesji maszynisty? Ja jeszcze nie wiem. To świadczy o tym, że TRS jest nieprzewidywalny. Ale do rzeczy.

Jeszcze raz spakowałem dodatek i dodatkowo komendę odblokowującą.
Dodatki do ściągnięcia są tu http://www.trainzfan.3-2-1.pl

Dla dowodu że sprawdzałem jest tam zrzut z ekranu z trybu geodety.

Im szybciej dacie znać że dobrze jest z tym dodatkiem szybciej prześlę dodatek do podmiany na Download PTT.
zolwik - 27-11-2010, 21:16
:
link cos nie dziala
drstrach - 27-11-2010, 21:38
:
zolwik napisał/a:
link cos nie dziala

Wcześniej działał.