Jeg oplever typisk, at når jeg blander AC og DC hjul, så får jeg "huller i osten". Det skal forstås sådan:
Når du har udelukkende AC-hjul, så har du også en konstant sporbesatmelding gennem hele toget. Det inkluderer både vogne og lokomotiv.
Når du har DC-hjul, så har du kun sporbesatmelding ved lokomotivet, og hvis du blander vogne med AC-hjul ind imellem, så har du sporbesatmelding når vognen med AC-hjul er på sporet, og ingen når vognene med DC-hjul er på sporet.
Det betyder, at hvis din hændelse er opbygget til kun at håndtere scenariet med AC-hjul, så vil dens opførsel være utilregnelig når DC-hjulene kommer i spil.
I dit tilfælde er retningen bestemt af at kontakterne ikke kan afvikles i den forkerte rækkefølge. Toget optager _altid_ kontakten først den ene, og så den anden. Det gælder fordi vi antager, at lokomotivet kører først, og at samtlige efterfølgende vogne ikke kan gøre det om.
Når du bringer DC-hjul i spil, så kan der opstå et scenarie midt i toget hvor K1 bliver besat (af en vogn med AC-hjul) og K2 allerede er besat. Fordi der var en vogn med DC-hjul der skabte et hul i den forventede konstante sporbesatmelding.
Hvad gør vi så? Jo, nu skal du så sikre dig, at det ikke får betydning. Én måde at gøre det på, er at sætte en tid på den sidste opgave i hændelsen. I eksemplet tidligere drejede vi et sporskifte. Du kan åbne din hændelse og sætte en forsinkelse på sporskiftet. Det betyder at efter sporskiftet er stillet, vil CS3 vente et antal sekunder før den frigiver hændelsen. Således kan hændelsen ikke udføres, før tiden er gået. Det betyder at efterfølgende forsøg på at starte hændelsen (vogne der flim-flammer henover kontakten) vil være forgæves. Det drejer sig jo blot om et par sekunder.
Tiden er dog en usikker faktor, for hvad nu hvis du standser toget midt i det hele. Så vil tiden udløbe, selv om toget står der. Så du kan bygge det mere avanceret. I seneste version af CS3, kan du sætte status på kontrolkontakter.
En kontrolkontakt er en virtuel kontakt, som kan have status tændt eller slukket. Du kan så aflæse status på kontakten og lade hændelser agere ud fra det.
Ideen er følgende:
1. Ud over at lade din hændelse være afhængig af K2, så lader du den også være afhængig af en kontrolkontakt. Hændelsen må altså ikke starte, med mindre kontrolkontakten f.eks. er slukket.
2. Når hændelsen så starter, sætter du som det første kontrolkontakten til tændt. Dette vil betyde, at hændelsen nu ikke kan starte igen, så længe kontrolkontakten er tændt.
3. Længere ude af strækningen indbygger du endnu en S88 kontakt. Til den knytter du en hændelse, der slukker kontrolkontakten fra tidligere. Dvs. toget skal nu være nået et stykke ud af strækningen før kontrolkontakten bliver ophævet. I den periode vil hændelsen ikke kunne afvikles.
Hvis du har dit anlæg inddelt i blokke, kan du jo blot udnytte sporbesatmeldingen på en anden blok til at ophæve kontakten.
I den anden retning bygger du en lignende løsning for din anden hændelse.
Der er flere muligheder, og det er meget individuelt hvad man synes fungerer. Tidsstyringen er den mest simple, og hvis ikke du har tænkt dig at standse toget midt i det hele, så vil den fungere fint. Den anden løsning er mere bullet proof.