Servodekodéry

  1. Úvod
  2. Servo
  3. Dekodér
  4. Problémy
  5. Závěr

Úvod

    V železničním modelářství se dají serva použít na spoustu věcí. Tady se ovšem budeme zabývat pouze přestavováním výhybek, a to především pomocí softwaru a PC. Předpokládám, že buď serva vytlačí elektromotorické přestavníky (a nejspíš i některé ostatní) nebo dojde k výraznému snížení cen u těchto Fulgurexů, Tilligů, Hoffmannů atd. Nahlédneme-li totiž na konstrukci standardního modelářského serva a např. takového Hoffmannu, zjistíme, že servo má motor, převody, potenciometr a elektroniku, kdežto Hoffmann jen motor, převody a koncové vypínání. Cena je ovšem tak 1:3 ve prospěch serva. Je to klasický případ umělé ceny, spolu s vývojem už vyvinuté konstrukce. Na toto téma by se dalo polemizovat dlouho, to však zde účelem není. Jen doufám, že moje prognóza se naplní co nejdříve, abychom konečně měli k dispozici vyhovující přestavník.

    Některé údaje, nastavení, programování už jsou popsány v článku Servo a výhybky. Zde bych rád uvedl poněkud širší pohled, a to především s ohledem na potíže, které v této problematice jsou. Doufám, že se zapojí další aktéři, neboť účelem je pomoc při výrobě jednoduchého, funkčního a levného servodekodéru a odstranění stávajících negativ. 

Na začátek článku

Servo

    Serva se používají standardní, analogová, většinou ta nejlevnější. Ve svém základu jsou určena pro jiný druh modelařiny, z nichž velkou část zabírají asi RC modely, tedy auta, lodě, letadla atp. Servo, které v letadle během pár minut kmitá, jako o závod, pak při přestavování výhybky nebo pohybu závor má oproti tomu směšně nízkou frekvenci. Přesto jsem vyzkoušel i pár trochu lepších serv, než Hextronik a byl jsem překvapen, jak některá pěkně a tiše běhají. Nějaké větší testování jsem ale neprováděl, čas a praxe jistě zase dobře zafungují.

    Výhody serva jsem už popisoval, tady jen zopakuji:

  • Nízká cena (cca 100 Kč).
  • Pomalá rychlost pohybu (> 1 s).
  • Velká síla (min. o řád větší, než běžné přestavníky).
  • Snadné nastavení (většinou elektronicky).
  •     Myslím, že to jsou naprosto jasné a pádné argumenty, s nimiž se ostatní přestavníky sotva mohou srovnávat. Jsou tu však i malá negativa (viz dále), která ovšem leží na ovládací elektronice, a tou je servodekodér.

    Na začátek článku

    Servodekodér

        Ovládat serva lze různě. Slouží k tomu různá elektronická zařízení, od jednoduchých, až po složitější, od domácí výroby, až po výrobu renomovaných firem. Tyto komponenty se nazývají servodekodéry. Tak je to alespoň u modelové železnice, jinde nejspíš také. Musím podotknout, že servo lze také jednoduše předělat na elektromotorický přestavník. Stačí odstranit elektroniku, osadit dva mikrospínače pro vypínání koncových poloh a je to. Servo lze pak ovládat z klasických spínacích dekodérů (třeba Lenz LS150) a cena serva není oproti elektromotorickému přestavníku ani poloviční. Přijdeme však o některé další výhody, především o nízkou, nastavitelnou rychlost přestavení, snadnou regulaci délky dráhy a polohy atd.

        Servodekodéry se od sebe liší především způsobem ovládání, tedy vstupem (analog, digi), různými funkčními možnostmi na výstupu (tedy u serva) a způsobem programování.

    Vstupy

        U modelové železnice jsem zatím viděl jen dva způsoby ovládání vstupu, a to:

    1. Digitální sběrnice J-K (u digitálního ovládání), kde pak lze výstupům přidělit určité adresy, a tak je ovládat z ovladače nebo pomocí softwaru v PC.
    2. Kontakty pro přímé ovládání třeba tlačítkovými spínači, relé atp.

        Pro digitální ovládání je nutný první způsob, pro ovládání analogové pak způsob druhý. Některé výrobky mají způsoby ovládání oba.

    Výstupy

        Výstupů servodekodéru bývá většinou více (4, 8), ale viděl jsem i jednovýstupové. Od tohoto parametru se obvykle odvíjí i cena na jeden výstup, protože část elektroniky i mechanických prvků je společná, takže servodekodéry s více výstupy vycházejí cenově příznivěji. To je sice jednoduchá logika, jenže na té svět obchodu asi postaven není.

        U výstupů servodekodéru je ovšem rozhodující to, jak se servo chová. Jde hlavně o rychlost, výchylku nebo krajní polohy, příp. o další funkce.

    1. Rychlost přeběhu (všechny výstupy najednou, jednotlivé výstupy, různá rychlost pro každý směr).

    2. Krajní polohy (někdy jen velikost výchylky).

    3. Reverzní chod (někdy prostým nastavením krajních poloh).

    4. Speciální funkce, jako je vazba na jiný výstup nebo zákmity v krajní poloze.

    Programování

        Dalším "parametrem" servodekodérů je způsob programování. Používají se dva, případně zkombinované.

    1. programovacím tlačítkem (adresa, další parametry)

    2. programováním CV registrů

    3. oba způsoby

    Na následujících obrázcích je několik servodekodérů.

    ESU SwitchPilot Servo   (Foto ze stránek výrobce.)

     

    Uhlenbrock Servodecoder 67800   (Foto ze stránek výrobce.)

     

    DCCkoleje dekodér pro serva (vlevo Master, vpravo Slave)   (Foto ze stránek DCCkoleje.)

     

    DCC-SRV01   (Foto ze stránek autora.)

        V současné době jsou k dispozici např. tovární výrobky fy ESU SwitchPilot Servo a fy Uhlenbrock Servodecoder 67800 (příp.67810 s přepínacími kontakty). Pro testy jsem použil následující tři dekodéry (jiné jsem k dispozici neměl, později přibyl ještě zapůjčený Uhlenbrock):

    1. SwitchPilot Servo od firmy ESU
    2. Dekodér pro serva V3, dle DCCkoleje (původní zdroj je na stránkách, které tvoří F.M.Cańada)
    3. DCC-SRV01 (zdroj jsem nezjistil)
    4. 67800 od fy Uhlenbrock

        Servodekodér ad1) je tedy výrobkem továrním (ESU), ad2) je z produkce DCCkoleje, ad3) je zcela "samodomo" neboli "homemade", ad4) je též tovární výrobek firmy Uhlenbrock.

    Základní parametry jsou v násl. tabulce.

      1 2 3 4
    Servodekodér SwitchPilot Servo DCCkoleje DCC-SRV01 67800
    Výrobce ESU DCCkoleje Boris Pechan  3) Uhlenbrock
    Ovládání vstupu DCC i analog DCC DCC DCC, Motorola
    Počet výstupů 4 8+  1) 8 4
    Programování tlačítkem, CV tlačítkem adresa, CV jen CV tlačítkem, CV
    Rychlost ano ano ano ano
    Krajní polohy ano ne 4) ne ano
    Výchylka - ano ano -
    Reverz ano ne 4) ano ?
    Držení pozice  2) ano ne 4) ano ano
    Zvláštní funkce ne ne ano ano
    Spínací výstupy ne 7) ne ano 6) typ 67810
    Firmware  4) ne ano ano 5) ne
    Čtení CV  8) ano ne ano ano 9)
    Orientační cena Kč 650,- 350,- 400,- 650,-
    1) Momentálně se vyrábí modul Master a Slave, každý s 8mi výstupy. Testovaný kus je Master+Slave, celkem tedy 16 výstupů.
    2) Servo i po ukončení řídícího povelu je drženo v koncové pozici.
    3) Servodekodér postavil Boris Pechan z Bratislavy, další kusy pak Jaroslav Hraška ze Šaľy. Ten mi také laskavě jeden kus zapůjčil k testům.
    4) U servodekodérů 2 a 3 lze měnit (napálit) program, který značně ovlivňuje jeho chování, možnosti, další funkce.
    5) U DCC-SRV01 lze programovat různé "vychytávky", jako reverzní vazba na jiný výstup, zákmity pohybu atd.
    6) Servodekodér DCC-SRV01 má 8 spínacích výstupů, jimiž lze třeba ovládat relé ke spínání srdcovky.
    7) K servodekodéru SwitchPilot Servo lze připojit další modul SwitchPilot Extension, který obsahuje spínací relé třeba právě pro přepínání srdcovky.
    8) Čtení hodnot registrů CV může být ovlivněno typem centrály i dalšími skutečnostmi. Je to, pochopitelně, velmi výhodná vlastnost.
    9) Uhlenbrock jsem měl na testování jen krátkou dobu a jen s německým manuálem. Nepovedlo se mi číst ani zapsat CV přes RailCo TP a přes ovladač (Lenz LH100) šlo číst a zapisovat jen něco. Nejspíš moje chabé znalosti a málo času na delší laborování. Časem se snad ozve někdo s lepšími informacemi.

    Na začátek článku

    Problémy

        Problémy se servy lze rozdělit do dvou kategorií. Rušení a chyby funkce.

    Rušení

        Rušení se projevuje u všech typů servodekodérů. Stačí dotek koleje, statický výboj, položení mašiny na koleje a některá serva sebou cuknou. Objevil jsem i velice "stabilní" zdroj rušení, a tím je analogová mašina na adrese "0". Krásně jdou nastavit i dvě "úrovně rušení", a to s blokovacím keramickým kondenzátorem na motoru a bez něj. Bez kondenzátoru se při jízdě mašiny mohou serva zbláznit. Analogové mašiny se však pouští na digi kolejiště jen výjimečně a bez kondenzátoru už vůbec ne. Ale na testování to bylo výborné.

        Nejprve jsem se pokoušel zjistit, odkud, kudy a kam to vlastně ruší. Něco jsem přečetl na webu (např. "Kámenští modeláři", pův. zdroj  Potensky Microsystem), něco vyzkoušel a výsledek je asi jasný. Jako zdroj rušení funguje prakticky jakékoliv jiskření, statika, převážně komutátory motorů lokomotiv. Vyzkoušel jsem tedy různé blokování přívodů sběrnice J-K do servodekodéru (tady to asi ale ani není moc vhodné), zcela oddělené napájení tvrdým ss zdrojem 12V/5A. Nic. Žádný nebo neznatelný efekt. Na rušení "po drátech" to tedy nevypadalo. Začal jsem tedy aplikovat rady od zkušených RC modelářů (předchozí link). Kupodivu uzemnění kostry motoru, použití feritových odrušovacích kroužků, ani připojení kondenzátoru 100µF Low ESR na přívod napájení serva nepomohlo. Přišlo na řadu propojení serva s dekodérem pomocí stíněné dvojlinky. A vida, většina rušení byla pryč. To tedy znamená, že ruší elektromagnetické pole, vzduchem, do vodičů od servodekodéru k servu.

        S problémem rušení ovšem podstatně souvisí jeden parametr servodekodérů, a tím je "Držení pozice". Malé vysvětlení. Na dekodér přijde povel pro přestavení, servo přejede do druhé polohy a co teď...? Některé servodekodéry pozici drží stále. Stačí na servo zatlačit rukou a začne na vás hned vrčet. Zpětná vazba řízená potenciometrem serva způsobí vznik řídících pulzů, které servo tlačí zpět do požadované polohy. Takhle se chová třeba ESU SwitchPilot Servo. Ostatní dva testované servodekodéry serva přestaví a konec. Klidně lze s pákou serva pootočit. Některé servodekodéry to mají "napůl", po přejetí chvíli drží, a pak držení vypnou. Držení pozice má vliv na dvě věci, na spotřebu proudu (serva s držením mají o něco vyšší spotřebu), ale hlavně na chování při příchodu rušícího impulzu. Servo, které držení nemá, poskočí o kus a dost. Protože toto poskakování "funguje" třeba i při zapnutí napájení, stačí párkrát zapnout a vypnout, servo se vždy kousek posune a najednou je opřené o překližku, brko venku z unašeče, v horším případě zlomený unašeč výhybky. Velmi nepříjemné. Naopak SwitchPilot sebou vždy sice cukne, ale vždy se vrátí do požadované polohy. Protože i spřažení s výhybkou má určité přepružení, jazyky se ani nehnou a nic se neděje. To je dost podstatný rozdíl.

        Servodekodéry mají obvykle i možnost "Ukládat/Neukládat pozici serva", nastavitelnou pomocí CV. Při nastavení=1 se při zapnutí servo postaví do polohy, ve které bylo při vypnutí. Neposouvá se tedy, ale jen škubne. To o něco "vylepšuje" chování servodekodérů v souvislosti s rušícími impulzy, třeba při zapnutí. Pokud ovšem servo drží pozici stále, je to lepší.

       Musím přiznat, že na nějaké hlubší bádání nestačím. Chybí mi znalosti a především přístrojové vybavení. Takhle, kdyby se tohoto problému chopilo nějaké specializované pracoviště, třeba na fakultě vysoké školy, jenže ti mají asi jiné starosti. Jedině, že by se tam vyskytoval nějaký "mašinkář".

        Abych to uzavřel. Serva připojit stíněnými vodiči. Stíněná dvojlinka je na to jak dělaná. Obě stínění (každý vodič má svoje) se spojí a tím se vede "-". Řídicí vodič a "+" vedou oba "živé". Pro lamy obrázek.

    Zapojení stíněné dvojlinky. Typ stíněného kabelu, kde jsou dva živé omotané společným stíněním jsem netestoval, ale myslím, že by též vyhovoval.
     
    Připojení serva

        Vlastní "instalace", je asi taková, že u hned u serva se přívody odstřihnou, naletuje se stíněná dvojlinka (tepelně smršťovací bužírka se hodí) a v potřebné vzdálenosti se opět naletuje konektor. Využije se klidně ten odstřihnutý. Pár centimetrů bez stínění to snese. A ještě bych podotkl, že nesouběžné vedení s jinými vodiči i občasné překroucení rozhodně není na škodu. Takže na obrázcích v článku Servo a výhybky, kde jsou vodiče bez stínění, nepřekroucené, pěkně vedle sebe, je to zcela chybně!!! Kterého blba to takhle napadlo?

        Pokud je vedení mezi servem a servodekodérem krátké (5 až 10 cm ?), není stínění nutné, takže další řešení se nabízí. Serva dát těsně k servodekodéru a výhybky spřáhnout pomocí delších táhel. Prostě na další laborování je prostoru dost. Shrnuto, čím je vedení delší, tím více to ruší. Byl jsem upozorněn (Jindřich Fučík), že podle norem by nemělo být vedení delší, než 40 cm. Myslím, že to je dost pádný argument proti návrhům na zapojení výhybek, jejichž současné přestavení není možné. Jsou totiž obvykle dost vzdálené. A možná je to i jeden z důvodů, proč oba tovární servodekodéry mají jen 4 výstupy.

        Tak, to bychom měli odrušení, to je ovšem ten menší problém.

        Odrušení vyřešeno RC filtrem, bez stíněné dvojlinky, viz Serva - odrušení.

    Chyby funkce

        Tyto potíže se vyskytovaly pouze u dvou, mnou zkoušených typů "netovárních" servodekodérů. Testy je nutno provádět pomocí softwaru a PC. Pokud se přestavuje vždy jen jednu výhybku, třeba pomocí ručního ovladače, je obvykle vše v pořádku. Rovněž v běžném chodu programu RailCo TC si ani nemusíme všimnout, že něco nechodí. Servodekodér ale musí umět zpracovat i všechny povely pro přestavení najednou. Asi bude lepší popsat konkrétní příklad.

    Mašina dostane pokyn přejet z bloku B1 do bloku B6. Po spuštění potřebného Plánu ...
     
    ... se okamžitě přestaví všechny 4 výhybky.

        Tento příklad je ukázkou zcela běžné situace. Je pochopitelné, že výhybky budou přestavovat serva z jednoho servodekodéru. Už jen z důvodů, uvedených výše (rušení), je nesmysl nějak kombinovat spoluspuštění serv, která jít současně nemohou a dělat nějaká dlouhá vedení.

    Samozřejmě to lze zkoušet i jednodušeji, cestou, makrem, tlačítky...různě.

        Podstatné je, že přestavení třeba 4 výhybek najednou je zcela běžné. No, a tady právě "samodomo" dekodéry selhávají.

        Servodekodér DCCkoleje má v sobě IO, který ovládá 4 výstupy. Je jedno, jestli jsou na desce dva a na další desce (Slave) třeba další dva. Jakmile na jeden IO přijde víc povelů, než jeden, dochází k chybám. Některý výstup prostě nepřestaví. Většinou ano, někdy ne. Někdy jeden, někdy dva, tři... Taky to přestaví třeba 10x dobře, a pak teprve udělá chybu. Vysledoval jsem i nějakou závislost na rychlosti přestavení serva, ale občas to prostě některý z výstupů jaksi "nestihne". Neotevřou-li se dveře do maštale, nespustí-li se závory, nepřestaví se mechanické návěstidlo...to vše lze občas oželet. Ale jakmile nepřestaví jediná výhybka, je zle. To je prostě nepřijatelné. U DCCkoleje lze současné zpracování řešit zpožděním v TC na výhybkách (viz níže). To jsem právě otestoval a chodí to v pohodě, pokud někomu nevadí, že doba pro přestavení je pro 4 výhybky čtyřnásobná. Naopak, toto postupné přestavování více odpovídá realitě ve skutečném provozu. Problémem zůstává, že se zase objevují další chyby funkce, které už ani popisovat nebudu. Stále provádím testy s dalšími verzemi softwaru do PIC, a pokud to dojde do nějakého vyhovujícího stavu, budu informovat.

        Chyby funkce vyřešeny novým firmwarem!!!

        Do "vyhovujícího stavu" to došlo. Verze 3.0 a především v.3.5 obsahují opravy a vylepšení, který servodekodér DCCkoleje posunuly na zařízení, které vyhovuje i provozu, řízeném softwarem v PC (např. RailCo TC). Podrobnosti naleznete na stránkách autora softwaru, Jindřicha Fučíka. Tady bych jen upozornil na hlavní odlišnosti od původní verze.

  • Registry CV jsou jiné. Soubor pro RailCo TP (YRC i YRP)  je k dispozici.
  • Verze 3.5 funguje pod TC zcela korektně, servodekodér zpracuje i všechny povely najednou.
  • Krajní pozice serv jdou nastavit nezávisle (max. rozsah je cca 180°), lze tedy udělat "programově" i reverz.
  •     Servodekodér DCCkoleje lze teď podle mého názoru použít na výhybky zcela v pohodě. K testování bylo použito celkem 7 typů serv (Hextronik, Futaba, Hitec, Modelcraft a další...). Všechna serva se chovala obdobně.
    Jindrovi patří velký dík.

        Servodekodér DCC-SRV01 se choval poněkud odlišně. Pokud přišly asi jen 4 povely naráz, bylo vše v pořádku. Při více povelech se naopak zcela "zbláznil". Některé výstupy reagovat přestaly, jiné se naopak přestavovaly reverzně, i když neměly, některé skákaly, cukaly...prostě běs. Z tohoto stavu bylo východiskem pouze přerušení napájení. Při nastavování zpoždění výhybek se to také nechová zatím úplně korektně, ale podstatné zlepšení by tu bylo. Zrovna u tohoto typu servodekodéru mám pocit, že to je jen "kousek před branami". Jak se ukázalo, je to zřejmě dost diskutované zařízení, zatím se však neobjevil nikdo, komu by to chodilo korektně. Nevím, nakolik tyto problémy způsobuje software, nahraný do IO a nakolik je to samotnou konstrukcí servodekodéru, ale pro provoz pod TC je to rozhodně v tomto stádiu nevyhovující. Škoda.

    Zpoždění spínání

        Tato část zde byla původně proto, že byla snaha nějakým způsobem eliminovat problémy funkce servodekodéru DCCkoleje. Jenže ty byly vyřešeny naštěstí jinak (viz výše), a tak vlastně tato část nemá k servům vlastně už žádný vztah. Informace mohou být přesto pro někoho zajímavé, tak je tu nechám.

        TrainController se ke zpoždění spínání chová dost složitě. Základním stavem je, že po příkazu k přestavení vydá všechny povely současně nebo aspoň téměř současně. Ověřoval jsem to na spínacím dekodéru ND4M a všechny 4 připojené přestavníky Conrad cvakly najednou. Pokud však staví cestu třeba přes 8 výhybek, které jsou všechny v nesprávné poloze, vyšle někdy povely najednou, někdy některé zpožďuje. Bude asi záležet na počtu připojených zařízení, na poloze (pořadí) adresy, na počtu povelů najednou posílaných atd. Zajímavé, ověřte si to.

        Pak je zde možnost nastavení pevného zpoždění (Turnout Interval), z nabídky Setup Digital Systems... Toto se používá hlavně při používání přestavníků s větším odběrem, např. PECO (aby nedocházelo k přetížení trafa nebo spínacího dekodéru) a nastavuje se většinou hodnota 100 až 300 msec. Zpoždění přes 500 msec už dělá potíže, neboť toto se vztahuje nejen na výhybky, ale i třeba na návěsti a při větším zpoždění už se stane, že lokomotiva se rozjede a teprve pak se rozsvítí návěst Volno. Takže toto je pro serva také nepoužitelné.

        Dále je zde možnost nastavit trvání pulzu přímo u výhybky (Switch Time, Čas sepnutí v oknu vlastností výhybky). Nastavíme-li zde třeba 1000 msec u několika výhybek, při pokynu pro přestavení těchto výhybek pak nejen trvá pulz 1 vteřinu, ale pulzy nejdou současně, ale další vždy až po skončení předchozího. Zajímavé. Takto lze tedy výhybky zpožďovat bez toho, že by se zpozdila i návěstidla. Upozorňuji, že původní význam je zřejmě určen pro výhybky bez koncového vypínání, takže při jejich používání bych s časy přes 100 msec experimentovat nedoporučoval.

        TC má dokonce i nastavitelnou prodlevu mezi přepnutími jednotlivých cest (na to mě upozornil Jan Vacek "Houmr"), kterou lze nastavit na druhé záložce okna vlastností cesty, ale na co je to dobré, jsem v manuálu ani v kontextovém menu nenašel. V souvislosti se servy to význam nemá, neboť výhybky, obsažené v jedné cestě, se přepnou najednou. (Jen pro úplnost: Čas přepnutí je nastavitelný i u návěstidel a využívá se při hardwarových problémech. To je zde asi zcela OT, tedy mimo téma.)

        Nakonec velmi důležitá poznámka. Některé spínací dekodéry mají určité zpoždění pevně nastavené (nejde programově měnit), zřejmě právě v souvislosti s výše uvedenými skutečnostmi o přetížení. Jako příklad poslouží Lenz LS150. Právě zpoždění, prováděné spínacím dekodérem, se někdy zaměňuje se zpožděním, které provádí TC a někteří kolegové to takto chybně prezentují i na svých stránkách!!!

    Na začátek článku

    Závěr

        Původně zde bylo napsáno "Toto téma se jistě bude dále vyvíjet.". Vyvinulo se perfektně a výsledkem jsou dva servodekodéry (DCCkoleje a  ESU SwitchPilot Servo), které chodí bez problémů. Chyby funkce u DCCkoleje vyřešil nový firmware a problémy s rušením eliminoval jednoduchý RC filtr.

        Toto téma se tedy uzavřelo, a to vítězně.    Doufám, že tyto poznatky pomohou se servy i ostatním kolegům.

    Na začátek článku
    Menu

    LokoPin

    08.06.2011  
      16.06.2011 doplnění údajů, zpoždění
      07.07.2011 editace zpoždění
      10.07.2011 Verze 3.0 a 3.5 pro servodekodér DCCkoleje
      15.09.2011 servodekodér Uhlenbrock 67800
      16.02.2016 poslední editace
         
    Spolupracovali: Lukáš Černý, Jindřich Fučík, Jaroslav Hraška, Boris Pechan