Hallo,
Na een leuke en leerzame
3-rail gastendag, waar ik uitgedaagd was door
@wissels om te kijken of ik zijn testbaan in JCS kon besturen bleek dat in deze baan een 3-wegwissel zat.
Dit component zat, tot nu toe, nog niet in JCS (ook omdat mijn eigen baan geen 3-wegwissel heeft).
Het alternatief met een linkse en rechtse wissel werkte niet, ieder geval niet bij ESU, dat de centrale was voor deze baan. Kortom een uitdaging.
Het toevoegen van het icoon en de "tegel" voor de 3-wegwissel was niet zo moeilijk.
Pas toen ik ging kijken hoe de verschillende centrales ermee omgaan kwamen er behoorlijke verschillen naar boven.
Als eerste een 3-wegwissel kan de standen rechtdoor, links- en rechtsaf aannemen.
Als eerste begonnen met de ESU Ecos centrale. Deze centrale stuurt een event als de wissel van stand veranderd.
Dit event heeft het wissel
ID (dat is niet het adres!) en de stand, als een numerieke waarde.
Hier in is waarde 0: groen of rechtdoor, 1: rood of rechtsaf en 2 (rood) linksaf. Die laatste heb ik dan maar
rood2 genoemd.
Als vanuit JCS de waarde 0,1,2 naar de ESU Ecos wordt gestuurd (met het wissel id) veranderd de wissel van stand.
Vervolgens naar de Marklin CS gekeken. Daar gaat het (heel) anders.
Bij de CS is een 3-wegwissel een wissel met 2 adressen. Standaard worden dat de adressen van de wissel dat je instelt + 1.
In mijn test opstelling is de 3-wegwissel W 55 met (MM) adres 55 en 56.
Als de wissel rechtdoor wordt gezet komen er 4 berichten van de centrale, 2 hiervan kunnen worden genegeerd, de 2 overgebleven berichten zijn:
RX: 0x00 0x16 0x37 0x7e 0x06 0x00 0x00 0x30 0x37 0x01 0x00 0x00 0x00
RX: 0x00 0x16 0x37 0x7e 0x06 0x00 0x00 0x30 0x36 0x01 0x00 0x00 0x00
Dit naar menselijke leesbaar vertaald, vanaf byte 9 0x37; adres-1, naar decimaal omgezet 55. Hier moet 1 bij worden opgeteld om het adres te krijgen dus 56.
Byte 10, 0x01 is de waarde, 1 oftewel groen(!)
Het 2e bericht dat met een vertraging van de wissel schakeltijd achteraan komt:
Byte 9 0x36; adres -1, naar decimaal omgezet 54. Hier 1 bij optellen: 55. Byte 10, 0x01 is de waarde, 1 oftewel groen(!).
De wissel staat nu dus rechtdoor.
Schakel de wissel rechtsaf dan komen de volgende berichten:
RX: 0x00 0x16 0x37 0x7e 0x06 0x00 0x00 0x30 0x36 0x01 0x00 0x00 0x00
RX: 0x00 0x16 0x37 0x7e 0x06 0x00 0x00 0x30 0x37 0x00 0x00 0x00 0x00
Hierbij valt op dat adres 55 als
eerste groen wordt geschakeld en als tweede adres 56 krijgt de waarde 0 (rood).
Schakel de wissel linksaf dan komen de volgende berichten:
RX: 0x00 0x16 0x37 0x7e 0x06 0x00 0x00 0x30 0x37 0x01 0x00 0x00 0x00
RX: 0x00 0x16 0x37 0x7e 0x06 0x00 0x00 0x30 0x36 0x00 0x00 0x00 0x00
Hierbij valt op dat adres 56 als
eerste groen wordt geschakeld en als tweede adres 55 krijgt de waarde 0 (rood).
Kortom de volgorde waarin de adressen worden gestuurd maakt uit.
Ik heb deze verschillen in de
Hardware
Abstraction
Layer van JCS verwerkt (dat koste even tijd).
Een wissel kan nu door de autopilot geschakeld worden met de waardes GREEN rechtdoor, RED rechtsaf en RED2 linksaf.
Na het maken van de sturing was het traceren aan de beurt.
Een 3-wegwissel kan dus 6 verschillende rijwegen maken:
Deze heb ik in 6 x 4 (voor iedere oriëntatie van de tegel) dus in verschillende 24 test cases moeten checken.
Kortom qua spoorcomponenten denk ik dat ik nu compleet ben!
Nu verder werken aan de release.
Groet,
Frans