Forsøg med automatisk kobling og afkobling

Min plan er at køre et enkelt passagertog og lidt godstrafik på en lille n-skala bane. Hvis jeg ellers kan få fat i delene, blever passagertoget nok et Trix BR 54.15 med fire Fleischmann 3 akslede passagervogne. Derudover vil jeg have lidt godstrafik - og den giver flere udfordinger.

Jeg har det fint med tanken om et lille passagertog i rutefart der passerer min station igen og igen fra skiftende retninger. Jeg er ikke så begejstret for tanken om at et godstog kommer forbi med de samme vogne hele tiden. Man kunne selvfølgelig have to ens lokomotiver. Et der kører fra øst mod vest (og retur af det skjulte spor) med tomme vogne (for eksempel kul) og et andet tog der kører modsat men med det samme antal fyldte vogne. Det vil virke naturligt nok, men er ikke det mest interessante at se på.

Hvis jeg kan automatisere afkobling og kobling af vogne i skyggebanegården, så kan man i det mindste have en 3-4 sæt godsvogne lokomotivet kan skifte imellem - så slipper man for at købe så mange lokomotiver. Og kan man koble og afkoble lokomotivet pålideligt, så burde det vel også være muligt at afkoble midt i togstammen, og på den måde kunne blande lidt rundt i vognene og lave endnu flere kombinationer i forhold til det antal vogne der skal findes plads og penge til.

Jeg forsøgte mig med en magnetkontakt der kan monteres lige ved siden af Piccolo sporene (Fleischmann 9184N), men jeg fik ikke et pålideligt signal fra den når toget kørte forbi. Og en magnetkontakt installeret i sporet før eller efter afkoblingen er meget sværere at automatisere.

Jeg forsøgte derfor at "kombinere" afkobleren fra Piccolo med en magnetkontakt jeg havde købt i "løs" vægt fra min lokale modeltog-pusher. For at få plads til den skulle en del plastik "opereres" væk fra afkoblingsskinnen, og med mine fummelfingrer måtte det jo gå galt - magnetkontakten knækkede. Efter en lille operation havde jeg "befriet" magnetkontakten fra den upålidelige holder der placerer den ved siden af skinnerne, og indsat den i afkoblingsskinnen med en gang lim:

Første forsøg på en afkobler med magnetkontakt

Desværre er magnetkontakten kommet en anelse for tæt på skinnen, og vognene kører op på kontakten når de passerer den. Med lidt mindre lim og en anelse mere finesse når plastikken fjernes (måske endda med et bedre værktøj end en skruetrækker) kunne det nok godt virke, men det er ikke helt så elegant som jeg gerne vil have det - selv om sporene er skjulte.

Conrad.nl (og naturligvis også Conrad.de etc) har nogle mindre magnetkontakter med en diameter på 1.8mm og en længde på 7mm. Det er meget begrænset hvor meget plastik der skal fjernes fra afkobleren før der er plads til kontakten, og lodning og andre ledende dele kan let skubbes ned mellem de to plastik stykker så der ikke kommer kortslutninger:

Piccolo afkobler med inbygget magnetkontakt

Heldigvis har jeg glemt det meste af det jeg lærte i skolen's elektronik timer, så hvis kontakten er for lille til den spænding og strømstyrke der sendes igennem den er jeg lykkelig uvidende om det.

Med magneter placeret cirka midt under hver vogn er afkoblingsproceduren ret simpel - for eksempel afkobles 2 vogne som følger:

  1. Kør toget baglænds hen over afkobleren indtil der er registreret passerende magneter.
  2. Stop toget - her bruger jeg speed step 1 - emergency stop da det er lidt mere forudsigeligt, og toget er alligevel ikke synligt. Den sidste vogn der ikke skal afkobles er nu over eller lige bag afkobleren (alt efter længden på vognen).
  3. Kør frem igen.
  4.  Når magneten passeres igen (stadig af den sidste vogn der ikke skal afkobles, men denne gang passeres magneten i den anden retning) aktiveres afkobleren.

Hvis alt er timet og tilrettelagt, så er afkobleren aktiveret når koblingerne passerer den og den ønskede vogn efterlades.

Dette programmeres som følger:
            loc.SetDirectionAsync(Direction.Backwards);
            loc.SetSpeedStepsAsync(70);
            for (int i = 0; i < uncoupleAfter; i++)
            {
                await input.WaitUntilSetAsync();
                await input.WaitUntilClearedAsync();
            }

            loc.SetSpeedStepsAsync(1);
            await TimebasedCallback.WaitForAsync(TimeSpan.FromSeconds(3));
            loc.SetDirectionAsync(Direction.Forward);
            loc.SetSpeedStepsAsync(20);
            await input.WaitUntilSetAsync();
            decoupler.SetOutput(TimeSpan.FromSeconds(4));

Variablen loc angiver locomotivet. Den får jeg fat i som følger:
DccLocomotive loc = await channel.GetLocomotive(3, DecoderType.Dcc28Step);

Variablen input er S88 input fra magnet addressen. Det er værd at bemærke at man ikke får signal fra magnetkontakten når magneten er lige over den. Derfor angives en forsinkelse så man først får indikation om at magneten ikke er der længere når der ikke har været input i 0,2 sekunder:
DccInput input = channel.GetInput(0, TimeSpan.FromSeconds(0.2));

Derudover skal afkobleren naturligvis også bruges:
DccOutput decoupler = channel.GetOutput(3, SwitchOutput.Red, TimeSpan.Zero, TimeSpan.FromSeconds(4));
Den er koblet til den røde udgang på addresse 3. De to TimeSpan angiver minimum og maximum tid output kan være sat, men da jeg endnu ikke har fået min IB-COM til at ændre sine minumum og maximum værdier er de ikke til meget nytte endnu.

Der kan (og skal) naturligvis også programmeres noget bedre fejlhåndtering ind. Hvis for eksempel en magnet detekteres efter decoupleren er aktiveret betyder det at afkoblingen har fejlet. Det er så forholdsvis let at køre tilbage og forsøge igen, men når computeren ellers har hygget sig en 10-20 minutters tid med at forsøge at afkoble en enkelt vogn skal man nok have lavet et eller andet så den råber på hjælp.

Som man kan se på det forrige billede sidder kontaken en anelse til højre for afkobleren. Det betyder at en kort vogn der afkobles mens toget kører mod venstre vil stå så megnetkontakten er aktiveret. Det er ikke noget problem rent programmeringsmæssigt, men da det ifølge diverse manualer ikke anbefales at holde en kontakt åben i længere tid vil jeg kun foretage afkoblinger i den retning der er fra venstre mod højre i billedet.

Der er en del ting man kan stille på for at få pålidelig drift - primært hastigheden og forsinkelse, og det er ikke alle kombinationer af vogne der har virket lige godt indtil viddere. Her ses en Köf under test kørsel:

Test af automatisk afkobling

Den store tankvogn har magneten tapet under bunden indtil viddere - det kan godt være jeg skifter til at have en magnet i hver ende af de store vogne. Der er en del problemer med at få pålidelig drift med dette lokomotiv, da det ikke har meget trækkraft. Når det trækker så mange vogne som der er her på billedet kan det gå i stå når en magnet skal passere afkoblingsmotoren. Det kan også gå i stå "op ad bakken" på gund af den skæve hylde jeg har arvet fra den tidlige beboer (det er godt at vide man ikke er den eneste med for mange tommelfingre). De tændstikker er ses under sporet giver både plads til at ledninger kan føres under og retter lidt op på hylden, men ikke helt nok.

Jeg har en mistanke om at det vil virke mere pålideligt hvis jeg kører langsommere under afkoblingen, men dels har den lille Köf det med at gå i stå når det går for langsomt, dels har jeg som nævnt ikke fået min IB-COM til at åbne afkobleren mere end ét sekund. Med kun tre vogne (hvor jeg kun har magnet under de to) kører det upåklageligt. Jeg har efterhånden kørt hundredevis af afkobling/kobling uden at bemærke nogen fejl.

Koblingen er forholdsvis let - det er bare at køre tilbage indtil magnen fra den bagerste vogn detekteres. Det gælder om at have nok fart på til at koblingen lykkedes. Det er let at detektere det er gået galt (der kommer ikke flere magneter forbi når man kører frem igen), men da den vogn man skulle koble på formegentlig er skubbet et stykke tilbage er det ikke til at detektere hvor langt man skal køre tilbage for at lave et nyt forsøg (med mindre man plaster skinnerne til i magnetkontakter).

Programstumpen der kobler og kører lokomotivet lidt frem ser sådan her ud:
            loc.SetDirectionAsync(Direction.Backwards);
            loc.SetSpeedStepsAsync(60);
            await input.WaitUntilSetAsync();
            loc.SetSpeedStepsAsync(1);
            await TimebasedCallback.WaitForAsync(TimeSpan.FromSeconds(2));
            loc.SetDirectionAsync(Direction.Forward);
            loc.SetSpeedStepsAsync(100); 
            await TimebasedCallback.WaitForAsync(TimeSpan.FromSeconds(3));
            await loc.SetSpeedStepsAsync(0);

__________________

mvh
Lars M

Er så småt ved at begynde at pille i skala n, epoke III, DB.

Like 0 kan lide
Top