RailCo - variabilní zastavování lokomotiv
Důrazně upozorňuji, že popisuji systém Lenz, a že jiné systémy mohou mít stejné nebo podobné jen dílčí části !!! V článku Komponenty jsou detailnější informace o některých použitých prvcích.
Popisovaný software je TrainController, verze 5.8, produktu Railroad & CO, fy Freiwald Software (dále jen TC). Řada věcí je shodná i s verzí 7 nebo 8. Kdo však má Gold (7 či 8), nemusí tohle číst. Tam to jde lépe a radostněji. Dokonce i v Silveru (7 či 8) to jde už o něco lépe, neboť lze vynechat nahazování vypínače makrem (jde to přímo). To už však předbíhám. V nižších verzích, jak mi bylo několikrát sděleno, to nejde. To ale výrobce nezná české programátory.
Znalosti předchozího pojednání o tomto ovládacím softwaru se předpokládají. K dispozici je také popis všech komponent. Tento článek by měl být součástí čl. o Zastavování nebo Tipy a triky. Už jsem ale několikrát dostal vynadáno, že staré články upravuji a navíc, toto je perla mého programátorského snažení. Zaslouží si vlastní článek.
Vlak vjede do stanice a zastaví. Ale kde? Nákladní vlaky a delší rychlíky obvykle musí až k odjezdovému návěstidlu. Aby se do bloku vešly. Jde o modelovou železnici, skutečné délky obvykle k dispozici nejsou. Ale když vjede do nádraží motoráček, je divné, když jede tak daleko. Třeba zcela za nástupiště. Takže je třeba ho zastavit dříve. Metod je na to několik. Dva i více bloků za sebou, přepínání na Posun, virtuální blok. Všechny tyto metody mají však některé, velmi nežádoucí vedlejší efekty. Nákladnost, pracnost, složitost a spoustu dalších.
Metoda, popisovaná dále, nemá tyto nectnosti žádné. Využívá zcela standardních prvků tohoto programu. Možná je trochu rozvláčná, ale lepší řešení zatím nemám. Třeba se to ještě vylepší časem. V každém případě je výsledkem zastavení libovolné lokomotivy (vlaku), která jede podle libovolného Plánu, v libovolném bloku, na libovolném místě.
Takže, jak to vlastně funguje. Pro jednoduchost popíšu jen dvě rozdílná zastavení, třeba krátké a dlouhé.
Každý blok, kde chceme zastavit na dvou místech, musí mít BRAKE a STOP indikátory (v "sedmičce" Markery) dvakrát. Na podmínce je stačí přepínat a je to. Jako BRAKE je nutno použít virtuální kontakt (Virtual Contact, dále VK), protože má Podmínku (Condition) a do té se jako přepínač použije (kupodivu) Přepínač (Toggle Switch) nebo Vypínač (On-Off Switch). Tohle bylo celkem jednoduché. Naprogramoval jsem a vyzkoušel. Přepínač se nastavil ručně jednou tak, podruhé opačně. Mašina zastavovala jednou na prvním STOPu, podruhé na tom druhém. Pohoda. Zbývalo docílit toho, aby Přepínač nastavovala mašina. Každá podle potřeby. Některá ano, jiná ne.
Celý princip je vidět na předchozím obrázku. Následně si to probereme hezky popořadě.
No, a to je vše. Celá činnost pak vypadá následovně.
Teď ještě upřesňující informace.
Každý blok, kde chceme variabilní zastavení aplikovat, musí mít (pro oba směry):
Každá mašina, kterou chceme zastavit jinde, než na základní sadě Brake a Stop, musí mít definovanou funkci, která aktivuje makro pro příslušný blok. Pokud chceme tedy "odlišně" zastavovat v deseti blocích, musí mít mašina deset funkcí, které budou aktivovat makra, vždy pro příslušný blok. Např. User1 bude aktivovat M01, User2 bude aktivovat M02...User10 bude aktivovat M10. Bez aktivace makra pro příslušný blok budou ve funkci "základní" indikátory.
Počet možných míst zastavení v jednom bloku může být klidně mnohem vyšší. V jediném bloku je možno nadefinovat tři, čtyři, pět... různých zastavovacích míst. Tolik také potom musí být i sad (párů) indikátorů Brake a Stop. Pro každý směr. Použití virtuálních kontaktů, které jsou na tyto indikátory použity, lze samozřejmě různě kombinovat. Stop indikátor pro jeden směr může fungovat jako Brake indikátor pro směr opačný atd. Přiměřeně se rovněž zvýší počet přepínacích prvků. Při dvou zastavovacích místech je třeba jednoho přepínače nebo vypínače, při n-místech je potřeba n-1 vypínačů. Tyto přepínací prvky a také makra jsou už pro oba směry společné.
Variabilní zastavení funguje pochopitelně pouze při jízdě podle nějakého Plánu. Použijeme-li pro pohyb mašiny třeba AutoTrain D&D, zastaví mašina podle základních indikátorů.
Příklad programu je v layoutu lokopin_varstop*, který naleznete ve známém balíku lokopin_railco_58.zip. V bloku B01 je použit ten nejjednodušší systém zastavení. Tedy jeden Brake a Stop indikátor, odvozený od jednoho virtuálního kontaktu BM01P. Vzdálenost Stop indikátoru je tvořena Rampou. VK BM01P má v podmínce přepínač P01 v levé, tedy základní poloze. Sada Brake a Stop pro druhé, kratší zastavení, je odvozena od druhého virtuálního kontaktu BM11P. Vzdálenost Stop indikátoru je opět tvořena Rampou, tentokrát však kratší, než v prvním případě. VK BM11P má v podmínce přepínač P01 v pravé, tedy opačné poloze.
V layoutu lokopin_varstop* jsou dva plány. Jeden spouští jednu mašinu z bloku B01, druhý jinou mašinu z bloku B02. Obě jezdí ve směru hodinových ručiček, každá zastavuje v těchto dvou blocích jinak. Podle funkcí, přidělených mašinám a použitých pak v blocích v obou Plánech. Pochopitelně nepředpokládám, že by to někdo stavěl, ale lze to aplikovat i na zcela jiném kolejišti nebo to spouštet jen v simulaci. Především tento layout slouží k prohlédnutí a k inspiraci.
V bloku B02 je to naprogramováno daleko "komfortněji" (viz násl. obrázek). Jsou zde celkem 4 sady Brake a Stop indikátorů, pro jeden směr. Můžeme zde tedy zastavovat na čtyřech různých místech. A taky na čtyřech různých místech začít brzdit. Sada B2 a S2 je základní a je funkční, není-li nastaven žádný z vypínačů V021, V022 a V023. Další sady fungují obdobně. Při aktivním V021 jsou to B21-S21, při aktivním V022 jsou to B22-S22 a při aktivním V023 jsou to B23-S23. Vypínače V021, V022 a V023 se vzájemně vybavují, zapnutý může být pouze jeden nebo žádný. Je to však víceméně zbytečné, neboť v Plánu pak stejně aktivujeme pouze jedno makro pro tento blok. Ale při ručním ovládání a testování (tyto ovládací prvky jdou normálně za provozu přepínat myší) je to nutné.
A nakonec...
Zdá se to dosti kostrbaté, ale funguje to. Navíc, jako už obvykle, je trochu těžké tomu porozumět, ještě těžší je napsat to srozumitelně, ale naprogramuje se to razdva. Komu se to zdá obtížné, musí využít jednodušších možností, které jsou popsány v článku RailCo - kalibrace a zastavování lokomotiv.
Na celé "akci" je mi nejvíce divné, že mi zatím všichni tvrdili, že to nejde. Nebo už je to dávno někde prezentované a já zase "vymyslel Ameriku" (pomalu se tato fráze stává mým mottem). Německá fóra totiž čtu minimálně (bez znalosti němčiny to jde špatně) a v Česku jsem na nic nenarazil. Nebo si to někdo nechává pro sebe. Neměl bych si to nechat patentovat?
Na začátek článku
06.04.2010
29.04.2018
(poslední editace))
Spolupracovali:
Martin Šimek,
Igor Kmeť