OC32 Address Mapping
Eén Pin, één adres
Voorheen kende elke OC32 32 adressen, één voor elke "Pin". Vroeger, bij de OM32 was dat nodig omdat elke uitgang aangestuurd moest kunnen worden. Bij de OC32 maken we eigelijk alleen nog maar gebruik van "Apparaten" en "Aspects". Dit betekent dat veel adressen ongebruikt blijven. Immers een Nederlands sein met 3 lampen bezet 3 pinnen, maar kan via 1 adres in alle benodigde standen ("Aspects") gezet worden. Een Duits uitrijsein met voorsein bezet 9 pinnen, maar kan met 1 adres bestuurd worden. Zolang je adressen genoeg hebt is dat geen probleem, je kunt het hooguit onhandig vinden. Alleen als de adressen op raken heb je een uitdaging.
Soms gebruikt een apparaat maar één Pin, maar heb je meerdere Aspects nodig om de functies aan te sturen. Bijvoorbeeld een 3-weg MCC wissel, aangestuurd met een Servo. Het probleem dat hier ontstaat is dat programma's als Koploper bij wissels alleen de standen "rechtdoor" en "afbuigend" kennen. Helaas, van de drie mogelijke standen zijn er dan maar twee aan te sturen. Je kunt dat oplossen door een adres te "stelen" van een apparaat op dezelfde OC32 dat meer Pinnen dan adressen nodig heeft, maar die moet je dan wel hebben, dus vaak is dat onhandig en soms zelfs onmogelijk. Bij OC32 3.0 is wisselmultiplexing geintroduceerd. Daarmee kun je met 16 pinnen 32 wissels aansturen. Met 32 pinnen zou je zelfs 96 wissels kunnen aansturen. Maar zoveel adressen zijn er niet!
Address Mapping
Met OC32 3.0 kun je aan elke Pin 0 tot 6 adressen toekennen. De OC32 berekent aan de hand hiervan een adres-map. Dat gaat in volgorde van de Pin nummers. Het laagste Pin nummer in de module dat tenminste één adres toegekend heeft gekregen krijgt het eerste voor de module beschikbare adres. Het eerstvolgende Pin nummer dat tenminste één adres toegekend heeft gekregen krijgt het adres van de vorige Pin waaraan een adres was toegekend + het aantal adressen dat aan die vorige Pin was toegekend. Het mechanisme laat zich het best illustreren met een willekeurig voorbeeld:
Pin | Aantal adressen | Toegekende adressen |
0 | 4 | start+0, start+1, start+2, start+3 |
1 | 4 | start+4, start+5, start+6, start+7 |
2 | 4 | start+8, start+9, start+10, start+11 |
3 | 4 | start+12, start+13, start+14, start+15 |
4 | 1 | start+16 |
5 | 0 | |
6 | 0 | |
7 | 0 | |
8 | 1 | start+17 |
9 | 0 | |
10 | 0 | |
11 | 0 | |
12 | 0 | |
13 | 0 | |
14 | 0 | |
15 | 0 | |
16 | 0 | |
17 | 2 | start+18, start+19 |
18 | 0 | |
19 | 0 | |
20 | 0 | |
21 | 0 | |
22 | 0 | |
23 | 0 | |
24 | 0 | |
25 | 0 | |
26 | 0 | |
27 | 0 | |
28 | 0 | |
29 | 0 | |
30 | 0 | |
31 | 0 |
Let op: Als je gebruik maakt van dit mechanisme moet je wel een beetje plannen. Want als de het aantal adressen verandert dat je hebt toegekend aan een bepaalde Pin veranderen alle addressen van alle volgende Pinnen binnen dezelfde module!
Serieel versus DCC
Het Address Mapping mechanisme werkt zowel voor seriele als voor DCC addressen. Het aantal adressen per Pin kun je daarbij apart toekennen voor serieel, DCC en Extended DCC!
Het maximum aantal adressen dat je aan één OC32 kunt toekennen is 128 serieel, 128 Basic-DCC en 32 Extended DCC
- Onder "serieel" valt de aansturing volgens het OM32 en/of OC32 protocol via de RS232/TTL of RS485 interface. Je kunt per Pin 0 tot 6 seriele adressen toekennen.
- Onder "DCC" valt de aansturing door middel van DCC op basis van Basic DCC Accessory Packets (dat wat de meeste centrales ondersteunen). Je kunt per Pin 0 tot 6 Basic DCC adressen toekennen.
- Onder "Extended DCC" valt de aansturing door middel van DCC op basis van Extended DCC Accessory Packets (dat wat de bijna geen enkele centrale ondersteunt). Met een Extended DCC Accessory Packet kun je een decoder (=een Pin van de OC32) in 32 standen zetten (de OC32 ondersteunt er hiervan 12). Je kunt per Pin 0 of 1 Extended DCC adressen toekennen.
Gebruik
Je kunt het bovengenoemde mechanisme naar believen toepassen, maar het bedoelde gebruik lichten we toe met een paar voorbeelden:
NS sein met cijferbak, seriele aansturing
De eerste pin van het sein geef je 1 adres, de volgende pinnen geef je 0 adressen. Het sein is te besturen met 8 Aspects op dat ene adres. Het sein neemt slechts 1 adres in.
NS sein met cijferbak, Basic DCC aansturing
De eerste pin van het sein geef je 4 adressen, de volgende pinnen geef je 0 adressen. Het sein krijgt dus 4 DCC adressen, neem aan d+0, d+1, d+2 en d+3. Het is te besturen met de volgende DCC opdrachten:
d+0, rechtdoor = Aspect 0
d+0, afbuigend = Aspect 1
d+1, rechtdoor = Aspect 2
d+1, afbuigend = Aspect 3
d+2, rechtdoor = Aspect 4
d+2, afbuigend = Aspect 5
d+3, rechtdoor = Aspect 6
d+3, afbuigend = Aspect 7
Wil je een stand toevoegen aan dat sein, bv rood knipper (bv op Aspect 8), geef het sein dan 1 extra DCC adres:
d+4, rechtdoor = Aspect 8
LET OP: Het bovenstaande is dus een ander mechanisme dan het gebruik van redirects die in de apparaatdefinities zitten. In de apparaatdefinitie van het NS sein met Cijferbak zit op de Pinnen N+1 en hoger ook een aansturing. Je kunt er dus ook voor kiezen om aan elk van 4 Pinnen van het sein gewoon één Basic DCC adres toe te kennen (zoals het altijd was). Merk op dat de toewijzing van de standen aan de verschillende DCC adressen dan net iets anders is. Merk ook op dat de extra stand "Rood knipper" in dat geval niet kan. Je hebt dan immers niet meer DCC adressen dan Pinnen.
Bij het eerste adres dat is toegekend aan een pin zijn de Aspects dus 1 op 1 gekoppeld, dus Aspect 0 stuurt stand 0, Aspect 1 stuurt stand 1, etc. Bij het eerstvolgende adres stuurt Aspect 0 stand 2, Aspect 1 stuurt stand 3, etc. Bij een eventueel volgend adres stuurt Aspect 0 stand 4, Aspect 1 stand 5, etc.
3weg-wissel met één servo
We gaan hier niet in op de mechanische constructie, maar op de aansturing van dit geval.
We gaan er van uit dat deze wissel in je besturingssoftware 2 adressen (a+0 en a+1) heeft die resulteren in de volgende rijwegen:
a+0, rechtdoor = rechtdoor
a+0, afbuigend = linksaf
a+1, afbuigend = rechtsaf
Ken aan de Pin waar de servo op zit nu 2 adressen toe. De wissel is nu aanstuurbaar met:
a+0, rechtdoor = Aspect 0 = rechtdoor
a+0, afbuigend = Aspect 1 = linksaf
a+1, rechtdoor = Aspect 2 = geen functie
a+1, afbuigend = Aspect 3 = rechtsaf