To jest bardzo ciekawa uwaga. Rzeczywiście gdzieś powinno być widzieć wartości wpisane do tymczasowych zmiennych...andrzej-n pisze:Również w parametrach bloku b2 nie zostały zmienione miejsca zatrzymania.
Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Dodałem możliwość podejrzenia aktualnie ustawionej wartości tymczasowej w bloku.
Oraz poprawiłem pewien błąd, który mógł powodować, że u Ciebie źle działało...
Oraz poprawiłem pewien błąd, który mógł powodować, że u Ciebie źle działało...
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Przepraszam, że po tak długim czasie kontynuuję ten temat, ale dopiero teraz miałem okazję w pełni to przetestować. I okazało się, iż są dwa problemy.
Pierwszy najważniejszy:
Wpisałem w bloki zdarzenia DistanceToStop (przy wjeździe pociągu do bloku) dla trzech lokomotyw. Program natomiast zapamiętał tylko jedną, prawdopodobnie tę, która była wpisana jako pierwsza. Wjazd do bloku innej lokomotywy nie powoduje zmiany miejsca zatrzymania. Można natomiast zmienić miejsce zatrzymania dla tej, która została zapamiętana.
Problem drugi to rzeczywista odległość od początku bloku do miejsca zatrzymania określonego w zdarzeniu DistanceToStop. Przy dystansie określonym z zdarzeniu na 65 cm lok zatrzymuje się po 130 cm.
Chciałem załączyć plik .plansza, ale okazał się za duży, więc przesyłam Ci go e-mailem
Pierwszy najważniejszy:
Wpisałem w bloki zdarzenia DistanceToStop (przy wjeździe pociągu do bloku) dla trzech lokomotyw. Program natomiast zapamiętał tylko jedną, prawdopodobnie tę, która była wpisana jako pierwsza. Wjazd do bloku innej lokomotywy nie powoduje zmiany miejsca zatrzymania. Można natomiast zmienić miejsce zatrzymania dla tej, która została zapamiętana.
Problem drugi to rzeczywista odległość od początku bloku do miejsca zatrzymania określonego w zdarzeniu DistanceToStop. Przy dystansie określonym z zdarzeniu na 65 cm lok zatrzymuje się po 130 cm.
Chciałem załączyć plik .plansza, ale okazał się za duży, więc przesyłam Ci go e-mailem
Andrzej
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Aby zatrzymywanie poprawnie działało:
- musi być sprofilowana lokomotywa
- musi być poprawnie (zgodnie z rzeczywistością) wpisane CV4
- powinien być włączony system BMF w dekoderze (trzymanie stałej prędkości niezależnie od obciążenia i oporów).
- musi być sprofilowana lokomotywa
- musi być poprawnie (zgodnie z rzeczywistością) wpisane CV4
- powinien być włączony system BMF w dekoderze (trzymanie stałej prędkości niezależnie od obciążenia i oporów).
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Rozumiem, że powyższe dot problemu drugiego. Wszystkie te warunki są spełnione.
Andrzej
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Chyba niepotrzebnie ustawiłeś właśność "ActiveTrain" (dwa razy) dla działania "integerExpression_Activity" na "V 200" (czy innym miejscu "ST 44")
Jakbyś zostawił to puste, to przy uruchomieniu zdarzenia w bloku program by samodzielnie ustawił jako "ActiveTrain" lokomotywę, która właśnie wjechała do bloku. A tak to zawsze jest "V 200" niezależnie, co wjeżdża.
Jakbyś zostawił to puste, to przy uruchomieniu zdarzenia w bloku program by samodzielnie ustawił jako "ActiveTrain" lokomotywę, która właśnie wjechała do bloku. A tak to zawsze jest "V 200" niezależnie, co wjeżdża.
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Wydaje mi się, ze wystarczy tylko takie wpisy zrobić, aby zmienić miejsce zatrzymania...
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Gdybyś natomiast chciał zmienić miejsce zatrzymania w NASTĘPNYM bloku, to wtedy trzeba by zrobić tak:
PS2. Wystawiłem wersję 1.72.6165, bo znalazłem drobny błąd w naznach cech (powtarzała się nazwa ActiveBlock i ActiveTrain, co dawało dziwne efekty uboczne).
PS3. Zwiększyłem limit na załączniki
PS. A cełej reszty właściwości tego działania nie ruszać... :-)PS2. Wystawiłem wersję 1.72.6165, bo znalazłem drobny błąd w naznach cech (powtarzała się nazwa ActiveBlock i ActiveTrain, co dawało dziwne efekty uboczne).
PS3. Zwiększyłem limit na załączniki
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Przyjrzałem się jeszcze zdarzeniu w b2. Są 3 działania, jedno za drugim, które robią to samo: wpisują różną wartość do "ActiveBlock.DistanceToStopTmp_LeftBottomEnd". Ustawienia w AciveTrain są nieistotne, bo pole "ActiveTrain" nigdzie nie jest używane. Więc w bloku zostaje wpisana wartość z ostatniego działania (czyli 42).
Jeżeli dla różnych loków chcesz różne odległości, to musisz za pomocą działania "Jeżeli" rozpoznać lok i w zależności, który wjeżdża, ustawić odpowiednią wartość (takie "Jeżeli" już robiłeś w innych miejscach).
Jeżeli dla różnych loków chcesz różne odległości, to musisz za pomocą działania "Jeżeli" rozpoznać lok i w zależności, który wjeżdża, ustawić odpowiednią wartość (takie "Jeżeli" już robiłeś w innych miejscach).
Wiki: http://wiki.gbbkolejka.pl
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Program do sterowania makietami: http://www.gbbkolejka.pl
Facebook: http://www.facebook.com/pages/Modelarst ... 0485039078
Re: Miejsce zatrzymania pociągu w bloku (Zdarzenia: DistanceToStop)
Witam,
Jest jeszcze jeden problem. Otóż zauważyłem, iż przy pierwszym wjeździe nowego loka do bloku następuje zmiana miejsca zatrzymania w parametrach bloku, ale lok ztrzymuje sie miejscu zgodnym z poprzednim zapisem. Dopiero drugi wjazd jest poprawny, z tym, że musi nastąpić zaraz popierwszym.
Oczywiście wcześniej lok jest rozpoznany przy pomocy funkcji "jeżeli".
Sprawdziłem, że umiejscowienie zdarzenia DistanceToStop w bloku poprzedzającym rozwiązuje problem i można to zastosować w przypadku, gdy z bloku poprzedzajacego jest wjazd tylko do jednego bloku. Sytuacja bardzo się komplikuje gdy z bloku poprzedzającego jest wjazd do 3 bloków tak jak w moim przypadku. Koniecznym bowiem staje się budowanie "piętrowych" funkcji "jeżeli", które pozwolą rozpoznać blok i lokomotywę.
Jest jeszcze jeden problem. Otóż zauważyłem, iż przy pierwszym wjeździe nowego loka do bloku następuje zmiana miejsca zatrzymania w parametrach bloku, ale lok ztrzymuje sie miejscu zgodnym z poprzednim zapisem. Dopiero drugi wjazd jest poprawny, z tym, że musi nastąpić zaraz popierwszym.
Oczywiście wcześniej lok jest rozpoznany przy pomocy funkcji "jeżeli".
Sprawdziłem, że umiejscowienie zdarzenia DistanceToStop w bloku poprzedzającym rozwiązuje problem i można to zastosować w przypadku, gdy z bloku poprzedzajacego jest wjazd tylko do jednego bloku. Sytuacja bardzo się komplikuje gdy z bloku poprzedzającego jest wjazd do 3 bloków tak jak w moim przypadku. Koniecznym bowiem staje się budowanie "piętrowych" funkcji "jeżeli", które pozwolą rozpoznać blok i lokomotywę.
Andrzej