Stavědlo

Stavědlo je softwarová nadstavba dekodéru příslušenství. Původní program dekodéru není Stavědlem nijak omezen a funguje dál podle původního návodu. Pro nastavení Stavědla není potřeba žádný speciální programátor. Všechny funkce se nastavují výhradně přes CV.

Stavědlo je sada krátkých programů – skriptů. Každý skript se spouští jednou DCC adresou. Skripty lze tak jednoduše spouštět z ovladače multiMAUS nebo ovladače TCO.

Každý skript obsahuje sekvenci až osmi příkazů pro připojené příslušenství daného dekodéru. Příkaz se skládá z čekací doby před provedením příkazu a příkazem pro zvolenou offset adresu s rozlišením zadávaného stavu + nebo - (případně rovně nebo odbočka).

Segment a offset adresa

U dekodérů UNI16ARD se používá adresace systémem segment a offset. Každý dekodér má svoji segment neboli základní adresu. K této adrese se přičítá pořadí dalších adres, které může být v intervalu 0 až 15. Tento přírůstek se nazývá offset.

Adresa segment, základní adresa dekodéru, je uložena v CV1 a CV9. Může být v rozsahu 1 – 2044.

Adresa offset se ukládá pro každý výstup zvlášť a může být v rozsahu 0 – 15. Například dekodér pro výhybky UNI16ARD-8VYH-ST má adresy offset v CV129, CV134, CV139, ... až CV204.

Příklad nastavení dekodéru výhybek:

Adresa dekodéru segment

Z výroby je nastavena DCC adresa segment na 200. Uživatel si ji může libovolně změnit.

Adresa výstupu offset

Příklad adresy výstupu podle offsetu pro DCC adresu dekodéru 200 (CV1 = 200, CV9 = 0).

Ve výchozím stavu jsou vždy dva po sobě jdoucí výstupy nastaveny na stejnou adresu offset. Spolu s dalším nastavení je tak možno na jedné DCC adrese povely + a - (rovně a odbočka) ovládat dva výstupy dekodéru. Podle potřeby je možné libovolnému výstupu přiřadit libovolnou adresu offset z intervalu 0 – 15. Adresy offset mohou být přiřazeny v libovolném pořadí a počtu. Každá použitelná DCC offset adresa tak může být přiřazena žádnému, jednomu, dvěma, ... nebo šestnácti výstupům. Jde pouze o to, jak si uživatel nastaví dekodér.

Adresa stavědla

Ve výchozím nastavení je program nastaven na DCC adresu 4095. Toto je neplatná adresa příslušenství, protože povolený rozsah DCC adres příslušenství je 1 – 2044. To znamená, že ve výchozím stavu je funkce stavědlo v dekodéru vypnutá. Funkce stavědlo se zapne změnou první DCC adresy stavědla v CV36 CV37 na adresu menší než 1996.

Pokud nastavím do CV36 hodnotu 5 a do CV37 hodnotu 0, tak segment adresa stavědla bude 5 + 256 × 0 = 5. Stavědlo může mít nastaveno až 48 skriptů. Proto bude reagovat na adresách 5 – 52. Adresa offset skriptu se už nikam nezadává. Je na uživateli, zdali obsadí všechny skripty nebo jenom některé. Je možné napsat i prázdný skript, takže nemusí být využit celý adresní prostor Stavědla.

Více dekodérů může mít stejný nebo překrývající se adresní rozsah Stavědla. Tím je možno docílit, že jedna jízdní cesta (skript) může obsahovat i více než osm výhybek.

Skripty začínají na CV256. Každý skript zabere 16 po sobě jdoucích CV. To znamená, že druhý skript začíná na CV272, ... a čtyřicátý osmý skript začíná na CV1008.

Skript

Skript je krátká sekvence příkazů, které se mají provést. Skript může být dlouhý 0 – 8 povelů. Každý povel se skládá z doby po kterou se má čekat než se zadá příkaz a příkaz který definuje co se má udělat.

Doba čekání

Doba čekání je definovaná číslem v intervalu 0 – 254. Výsledné čekání je pak dáno součinem tohoto čísla a konstanty 128 ms. Doba čekání je tedy nastavitelná v intervalu 0 – 32,5 s.

Pokud bychom chtěli, aby před vykonáním příkazu se počkalo 3 s, tak zadáme 24 × 0,128 = 3 s.

Příkaz pro dekodér výhybek

Příkaz se skládá ze dvou částí.

Jedna část je offset adresa výstupu, která má být vykonána. Je to hodnota z intervalu 0 – 15. V našem příkladě: pokud bychom chtěli přehodit čtvrtou výhybku připojenou k dekodéru na výstupy G a H, tak ta má DCC adresu 203 a offset adresu 3. Proto bude offset adresa výstupu právě 3.

Druhou částí příkazu je co se má vykonat. Zdali chceme poslat příkaz pro přestavení + (rovně) nebo - (odbočka). To se nastavuje v 7 bitu příkazu. Pokud tedy nastavujeme + (rovně), tak hodnota bude desítkově 128. Pokud budeme nastavovat - (odbočka) tak hodnota bude desítkově 0.

Celý příkaz je potom dán součtem první a druhé části. V našem příkladu pokud chci čtvrtou výhybku přestavit do polohy rovně, tak příkaz bude 128 + 3 = 131.

Příkaz pro dekodér návěstidel

Příkaz se skládá ze dvou částí.

Jedna část je offset adresa návěstidla, která má změnit návěst. Je to hodnota z intervalu 0 – n, kde n je počet připojených návěstidel mínus jedna. V našem příkladě: pokud bychom chtěli nastavit třetí návěstidlo připojené k dekodéru, tak jeho ofset adresa je 2. Ofset adresu vynásobíme 10 dostaneme číslo 20.

Druhou částí příkazu je návěst, která se má nastavit. Pokud chceme nastavit návěstidlo do polohy volno, tak podle tabulky návěstí je to návěst číslo 1.

Celý příkaz je potom dán součtem první a druhé části. V našem příkladu pokud chci na třetím návěstidle návěst volno, tak příkaz bude 20 + 1 = 21.

Ukončení skriptu

Skript může být dlouhý až 8 povelů. Po vykonání 8. povelu se činnost skriptu ukončí. Některé skripty ale 8 povelů nepotřebují a jsou proto kratší. Pro skripty kratší než osm povelů se používá ukončovací konstanta 255. Pokud Stavědlo při vykovávání skriptů narazí na konstantu 255 tak vykonávání skriptu ukončí. Pokud mají být některé skripty neobsazeny, tak stačí do prvního CV skriptu zadat konstantu 255.

CV povelů

Povely se zadávají od CV256 výše. Každý povel zabere šestnáct po sobě jsoucích CV. Adresy skriptů jsou uvedeny jako příklad pro segment adresu Stavědla 5.

Vzorové příklady

Stavědlo s výhybkovým dekodérem Stavědlo s výhybkovým dekodérem.

Programování dekodéru

Programování dekodéru pomocí programu DecoderPro Programování dekodéru pomocí DecoderPro.

Dekodéry s funkcí Stavědlo

Dekodér výhybek UNI16ARD-8VYH 23 UNI16ARD-8VYH.

Dekodér návěstidel UNI16ARD-NAV 24 UNI16ARD-NAV-ST.

aktualizace 4. 4. 2018

aktualizace 16. 3. 2018

aktualizace 10. 3. 2018

aktualizace 7. 3. 2018

aktualizace 5. 3. 2018

vytvořeno 3. 3. 2018