Elektrika‎ > ‎

25 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

číslo CV popis povolené hodnoty výchozí hodnota poznámka
1 LSB adresa 0 – 255 200 výsledná adresa LSB + MSB × 256
9 MSB adresa 0 – 7 0 výsledná adresa LSB + MSB × 256

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).

číslo CV výchozí hodnota Adresa výstupu Výstup
129 0 0 + 200 = 200 A
134 0 0 + 200 = 200 B
139 1 1 + 200 = 201 C
144 1 1 + 200 = 201 D
149 2 2 + 200 = 202 E
154 2 2 + 200 = 202 F
159 3 3 + 200 = 203 G
164 3 3 + 200 = 203 H
169 4 4 + 200 = 204 I
174 4 4 + 200 = 204 J
179 5 5 + 200 = 205 K
184 5 5 + 200 = 205 L
189 6 6 + 200 = 206 M
194 6 6 + 200 = 206 N
199 7 7 + 200 = 207 O
204 7 7 + 200 = 207 P

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

číslo CV popis povolené hodnoty výchozí hodnota poznámka
36 LSB adresa stavědla 0 – 255 255 výsledná adresa LSB + MSB × 256
37 MSB adresa 0 – 7 15 výsledná adresa LSB + MSB × 256

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.

skript adresa Povel 1 Povel 2 Povel 3 Povel 4 Povel 5 Povel 6 Povel 7 Povel 8
čekat příkaz čekat příkaz čekat příkaz čekat příkaz čekat příkaz čekat příkaz čekat příkaz čekat příkaz
0 5 CV256 CV257 CV258 CV259 CV260 CV261 CV262 CV263 CV264 CV265 CV266 CV267 CV268 CV269 CV270 CV271
1 6 CV272 CV273 CV274 CV275 CV276 CV277 CV278 CV279 CV280 CV281 CV282 CV283 CV284 CV285 CV286 CV287
2 7 CV288                              
3 8 CV304                              
4 9 CV320                              
5 10 CV336                              
6 11 CV352                              
7 12 CV368                              
8 13 CV384                              
9 14 CV400                              
10 15 CV416                              
11 16 CV432                              
12 17 CV448                              
13 18 CV464                              
14 19 CV480                              
15 20 CV496                              
16 21 CV512                              
17 22 CV528                              
18 23 CV544                              
19 24 CV560                              
20 25 CV576                              
21 26 CV592                              
22 27 CV608                              
23 28 CV624                              
24 29 CV640                              
25 30 CV656                              
26 31 CV672                              
27 32 CV688                              
28 33 CV704                              
29 34 CV720                              
30 35 CV736                              
31 36 CV752                              
32 37 CV768                              
33 38 CV784                              
34 39 CV800                              
35 40 CV816                              
36 41 CV832                              
37 42 CV848                              
38 43 CV864                              
39 44 CV880                              
40 45 CV896                              
41 46 CV912                              
42 47 CV928                              
43 48 CV944                              
44 49 CV960                              
45 50 CV976                              
46 51 CV992                              
47 52 CV1008 CV1009 CV1010 CV1011 CV1012 CV1013 CV1014 CV1015 CV1016 CV1017 CV1018 CV1019 CV1020 CV1021 CV1022 CV1023

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 ve verzi 4.1 23 UNI16ARD-8VYH.

Dekodér návěstidel UNI16ARD-NAV ve verzi 4.0 24 UNI16ARD-NAV.

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