User Tools

Site Tools


userpages:hermannk:function_mapping-de

Was ist Funktions-Mapping ?

Vorwort 0: wie im Wiki beschrieben, werden die Einstellungen nur gespeichert, wenn das Feld "Beschreibung" einen Eintrag enthält!!!
siehe Beschreibung

Vorwort 1: die Funktion Null (Funktion "F0") hat eine Sonderrolle. Sie ist fest für die Funktion "Licht" vorgesehen und es gibt daher keine Möglichkeit, die Funktions-Nummer Null auf eine andere Funktions-Nummer umzuleiten (Mappen).

Vorwort 2: falls der Handregler gut lesbare Funktions-Beschriftungen ermöglicht, sollte man auf das Mappen verzichten, sondern lieber den vollen Funktionsumfang jeder Lok individuell auf dem Handregler darstellen.

Vorwort 3:
3a) Nicht alle Lokomotiven und/oder Funktions-Controller unterstützen 32 Funktions-Nummern.
3b) Nicht alle Protokolle unterstützen 32 Funktions-Nummern.
In dieser Dokumentation ist die Funktions-Nummer 32 für "nichts tun" reserviert. Wenn dies in einer bestimmten Konfiguration nicht möglich ist, so darf bitte eine andere Funktions-Nummer als 32, die für "nichts tun" reserviert ist, angewendet werden. Es kann auch erforderlich sein, eine reservierte Funktions-Nummer für die Lokomotiven und eine andere reservierte Funktions-Nummer für Wagons vorzugeben.

Warum Funktions-Mapping?

Wenn man einen Handregler zur Steuerung der Lok und der Lok-Funktionen einsetzt, dann ist auf seinen Tasten oft kein Platz für eine umfangreiche Beschriftung und erst recht keine Möglichkeit für eine variable Beschriftung. Irgendwie muss man mit den Funktions-Nummern von 1 bis 32 zurecht kommen.


Für drei Lokomotiven könnte folgende Funktions-Nummern-Belegung vorliegen:

Hersteller Hersteller Hersteller
Lok 1 Lok 2 Lok 3
Funktion Funktion Funktion
# Beschreibung # Beschreibung # Beschreibung
0 Licht 0 Licht 0 Licht
1 Licht weiss FSt. 1 1 Rücklicht 1 Pfeifen
2 Licht weiss FSt. 2 2 Pfeifen 2 Rauch
3 Horn 1 3 Stromabnehmer 3 Bremse
4 Horn 2 4 Fernlicht 4
5 Fernlicht 5 Bremse 5
6 Kupplung Lok 6 Sanden 6
7 Lüfter 7 Motor 7
8 Bremse 8 8
9 Motorgeräusch 9 9
10 Sanden 10 10
11 Licht Führerstd. 1 11 11
12 Licht Führerstd. 2 12 12
13 Rücklicht 13 13
xx xxxx xx xxxx xx xxxx


Eine Möglichkeit ist es, sich eine Funktions-Nummern-Liste zu definieren, die für alle Lokomotiven gelten soll.

Dabei sollen in diesem Beispiel die Funktions-Nummern folgendermassen genutzt werden:

Funktion Verwendung
F1 bis F9 Lok-Funktionen
F10 bis F19 Zug-/Wagen-Funktionen
F20 bis F31 frei
F32 reserviert


In dieser Beschreibung werden folgende Voraussetzungen gemacht:

Handregler-Belegung Hersteller Hersteller Hersteller
für alle Loks Lok 1 Lok 2 Lok 3
Funktion Funktion Funktion Funktion
# Beschreibung # Beschreibung # Beschreibung # Beschreibung
0 Licht 0 Licht 0 Licht 0 Licht
1 Rücklicht 1 Licht weiss FSt. 1 1 Rücklicht 1 Pfeifen
2 Führerstandbeleuchtung 2 Licht weiss FSt. 2 2 Pfeifen 2 Rauch
3 Pfeifen 3 Horn 1 3 Stromabnehmer 3 Bremse
4 Bremse 4 Horn 2 4 Fernlicht 4
5 Rauch 5 Fernlicht 5 Bremse 5
6 Motor 6 Kupplung Lok 6 Sanden 6
7 Stromabnehmer 7 Lüfter 7 Motor 7
8 Kupplung Lok 8 Bremse 8 8
9 Rangiergang 9 Motorgeräusch 9 9
10 Innenbeleuchtung 10 Sanden 10 10
11 Kupplung Wagen 1 11 Licht Führerstd. 1 11 11
12 Kupplung Wagen 2 12 Licht Führerstd. 2 12 12
13 Kupplung Wagen 3 13 Rücklicht 13 13
14 Kupplung Wagen 4 14 14 14
xx xxxx xx xxxx xx xxxx xx xxxx
32 reserviert; 32 reserviert; 32 reserviert; 32 reserviert;


Durch das Funktions-Nummern-Mapping für jede Lok können die festen Handregler-Funktions-Nummern in Lok-abhängige Funktions-Nummern übersetzt werden. Dabei können folgende Fälle auftreten:

die Handregler-Funktion ist in der Lok vorhanden die Handregler-Funktion ist in der Lok nicht vorhanden
Funktions-Nummern sind gleich Funktions-Nummern sind ungleich egal
Funktion durchreichen Funktion umlenken (mappen) auf ungenutzt Funktions-Nummer umlenken
F3 "Pfeifen" → F3 "Horn 1" F4 "Bremse" → F8 "Bremse" F7 "Stromabnehmer" → F32 "reserviert"

Voraussetzung ist allerdings: die Funktions-Nummer 32 kommt in unserer Lok nicht vor!

Wie konfiguriert man ein Funktions-Mapping?

In den Eigenschaften unserer Lok legt man zuerst die feste Handregler-Funktions-Nummern-Liste an (z.B. durch "Kopieren" einer bereits gut angelegten Lok). Dann trägt man in die Spalte fx die Hersteller-Funktions-Nummer unserer Lok ein. Für alle nicht vorkommenden Funktionen trägt man die reservierte Funktions-Nummer 32 ein.
In diesem Beispiel ist der Funktionsumfang des Handreglers so festgelegt:
- die Handregler-Funktions-Nummern 1 bis 9 sind für die Loks reserviert;
- die Handregler-Funktions-Nummern 10 bis 19 sind für die Züge/Wagen reserviert;
- die Handregler-Funktions-Nummern 20 bis 31 können individuell genutzt werden;
- die Handregler-Funktions-Nummer 32 ist reserviert als "unbenutzt".

Handregler-Belegung Lok 1 Hersteller
unsere Lok unsere Lok
Lok Funktion Funktion
Adresse Mapping
11 # Beschreibung Adr fx # Beschreibung
0 Licht - - 0 Licht
1 Rücklicht 0 13 1 Licht weiss FSt. 1
2 Führerstandbeleuchtung 0 11 2 Licht weiss FSt. 2
3 Pfeifen 0 0 3 Horn 1
4 Bremse 0 8 4 Horn 2
5 Rauch 0 32 5 Fernlicht
6 Motor 0 9 6 Kupplung Lok
7 Stromabnehmer 0 32 7 Lüfter
8 Kupplung Lok 0 32 8 Bremse
9 Rangiergang 0 24 9 Motorgeräusch
10 Innenbeleuchtung 0 32 10 Sanden
11 Kupplung Wagen 1 0 32 11 Licht Führerstd. 1
12 Kupplung Wagen 2 0 32 12 Licht Führerstd. 2
13 Kupplung Wagen 3 0 32 13 Rücklicht
14 Kupplung Wagen 4 0 32 14
15 - 0 32 15
16 - 0 32 16 Führerstand Türe auf/zu
17 - 0 32 17 Fader
18 - 0 32 18
19 - 0 32 19 Kompressor
20 - 0 32 20
21 - 0 32 21 Kurven-Quietschen
22 - 0 32 22 Parklicht
23 - 0 32 23 Alleinfahrt
24 - 0 32 24 Rangiergang
25 - 0 32 25
26 - 0 32 26
27 - 0 32 27
28 - 0 32 28
29 - 0 32 29
30 - 0 32 30
31 - 0 32 31
32 reserviert; 0 0 32

Besonderheit: man spart Verarbeitungszeit im Rocrail-Programm, wenn man bei gleichen Funktionsnummern für Handregler und Lok eine Null im Mapping einträgt: fx = 0
Beispiel: Handregler # = 3 "Pfeifen" und unsere Lok fx = 0 "Horn 1"

Lok-Eigenschaften / Funktionen

In diesem Beispiel soll Taste 9 auf dem Handregler der "Rangiergang" für alle Loks sein;
- unsere neue Lok benutzt Funktions-Nr. 24 für den Rangiergang;
- in den Eingenschaften unserer Lok ist dann für Funktion # = 9 das Mapping fx = 24 eingetragen.


Wagen-Eigenschaften / Funktionen

Wie für eine Lok so kann man sich auch für einen Wagen eine Funktions-Nummern-Liste vorgeben …

… und ggf. in die Funktions-Nummern-Liste einer Lok einarbeiten. (siehe in der Tabelle oben "Kupplung Wagen 1" bis "Kupplung Wagen 4").

Mapping bei "Lok mit Zug"

Auf dem Handregler hat man sich nun die Funktionen von "Lok und Zug" festgelegt.

Handregler-Belegung
Funktion
# Beschreibung
xx xxxx
10 Innenbeleuchtung
11 Kupplung Wagen 1
12 Kupplung Wagen 2
13 Kupplung Wagen 3
14 Kupplung Wagen 4
xx xxxx
32 reserviert;


Grundsätzlich wird von Rocrail die Funktions-Nummer des Handreglers sowohl an die Lok als auch an alle Wagen im Zug weitergereicht.

In jedem Wagen gibt es dann die Möglichkeit, die Handregler-Funktions-Nummer auf eine Wagen-Funktion umzuleiten (Mappen).

Handregler Wagen
# Beschreibung # Beschreibung Fx
F5 xxxx F5 Kupplung F32
F10 Innenbeleuchtung F10 Innenbeleuchtung 0
F11 Kupplung Wagen 1 F11 F5

Beispiel: Handregler # = 11 "Kupplung Wagen 1" umleiten auf Wagen-Funktion 5 durch Fx = 5 für den Wagen 1 ("car151").

Handregler-Belegung Hersteller Hersteller
unsere Lok unser Wagen 1 ("car151") unser Wagen 2 ("car152")
Lok Funktion Funktion Funktion
Adresse Mapping Mapping Mapping
11 # Beschreibung Adr fx # Beschreibung Fx # Beschreibung Fx
xx xxxx - - xx xxxx xx xx xxxx xx
5 Rauch 0 32 5 Kupplung 32 5 Kupplung 32
xx xxxx - - xx xxxx xx xx xxxx xx
10 Innenbeleuchtung 0 32 10 Innenbeleuchtung 0 10 Innenbeleuchtung 0
11 Kupplung Wagen 1 0 32 11 Kupplung Wagen 1 5 11 32
12 Kupplung Wagen 2 0 32 12 32 12 Kupplung Wagen 2 5
13 Kupplung Wagen 3 0 32 13 32 13 32
14 Kupplung Wagen 4 0 32 14 32 14 32
xx xxxx 0 32 xx xx xx xx
32 reserviert; 0 0 32 0 32 0

So können von dem Handregler die Funktionen der Lok bedient werden, es können die beiden Wagen jeder für sich abgekuppelt werden und es kann die Innenbeleuchtung in allen Wagen gleichzeitig geschaltet werden.


Mapping auf Adresse und Funktions-Nummer

Es gibt Fahrzeuge, bei denen ein separater Funktions-Decoder mit einer separaten Adresse installiert ist. Um dies zu unterstützen, kann die Definition für die Funktionszuordnung zusätzlich zur Funktions-Nummer eine Adresse verwenden. siehe https://wiki.rocrail.net/doku.php?id=loc-fun-de#adresse_fx
Ein Beispiel für eine separate Funktions-Decoder-Addressierung einer Lokomotive (ohne Zug) findet man unter **Test 6**.

Praktischer Test

Die in dieser Dokumentation aufgeführten Funktions-Definitionen für eine Lok und zwei Wagen sollen in mehreren Tests auf ihre Gültigkeit überprüft werden. Dazu wurde an die Lok "lc_11-de" der Zug "op_51-de" angekoppelt, der aus den beiden Wagen "car151-de" und "car152-de" besteht. Nach dem Anklicken einer Funktions-Taste auf dem Handregler wurde das Ergebnis im Zentrale-Trace-Fenster von Rocview ausgelesen und hier dokumentiert.

Lokomotive Zug
lc_11-de op_51-de
Wagen 1 Wagen 1
car151-de car152-de


Vorbemerkung 1: es werden Adressen für eine MBUS-Zentrale angewendet:

Kennung Adresse [hex] Adresse [dez]
lc_11-de 0x406F 111
car151-de 0x4097 151
car152-de 0x4098 152

Vorbemerkung 2: "fn=32, val=1" bedeutet: Funktions-Nummer=32, Wert=1
Vorbemerkung 3: die Tests wurden mit Rocrail Version 2.1.755 auf diesem Arbeitsbereich durchgeführt.

Test 1 - Pfeifen

Die Lokomotive soll pfeifen und die beiden Wagen machen nichts; die Handregler-Funktions-Nummer ist identisch mit der Lok-Funktions-Nummer:

Handregler Lok Mapping Wagen 1 Mapping Wagen 2 Mapping
Kurzbeschreibung: F3 = "Pfeifen" fx=0 car151 Fx=32 car152 Fx=32
Ergebnis: loco [lc_11-de] addr=0x406F fn=3, val=1
loco [car151-de] addr=0x4097 fn=32, val=1
loco [car152-de] addr=0x4098 fn=32, val=1
Test bestanden.

Test 2 - Rangiergang

Die Lokomotive soll den "Rangiergang" aktivieren und die beiden Wagen machen nichts; die Handregler-Funktions-Nummer ist verschieden bezüglich der Lok-Funktions-Nummer:

Handregler Lok Mapping Wagen 1 Mapping Wagen 2 Mapping
Kurzbeschreibung: F9 = "Rangiergang" fx=24 car151 Fx=32 car152 Fx=32
Ergebnis: loco [lc_11-de] addr=0x406F fn=24, val=1
loco [car151-de] addr=0x4097 fn=32, val=1
loco [car152-de] addr=0x4098 fn=32, val=1
Test bestanden.

Test 3 - Innenbeleuchtung

Die Lokomotive macht nichts, aber alle Wagen sollen die "Innenbeleuchtung" aktivieren:

Handregler Lok Mapping Wagen 1 Mapping Wagen 2 Mapping
Kurzbeschreibung: F10 = "Innenbeleuchtung" fx=32 car151 Fx=0 car152 Fx=0
Ergebnis: loco [lc_11-de] addr=0x406F fn=32, val=1
loco [car151-de] addr=0x4097 fn=10, val=1
loco [car152-de] addr=0x4098 fn=10, val=1
Test bestanden.

Test 4 - Kupplung Wagen 2

Die Lokomotive macht nichts, aber Wagen 2 soll die Kupplung aktivieren:

Handregler Lok Mapping Wagen 1 Mapping Wagen 2 Mapping
Kurzbeschreibung: F12 = "Kupplung Wagen 2" fx=32 car151 Fx=32 car152 Fx=5
Ergebnis: loco [lc_11-de] addr=0x406F fn=32, val=1
loco [car151-de] addr=0x4097 fn=32, val=1
loco [car152-de] addr=0x4098 fn=5, val=1
Test bestanden.

Test 5 - Kupplung Wagen 1

Die Lokomotive macht nichts, aber Wagen 1 soll die Kupplung aktivieren:

Handregler Lok Mapping Wagen 1 Mapping Wagen 2 Mapping
Kurzbeschreibung: F11 = "Kupplung Wagen 1" fx=32 car151 Fx=5 car152 Fx=32
Ergebnis: loco [lc_11-de] addr=0x406F fn=32, val=1
loco [car151-de] addr=0x4097 fn=5, val=1
loco [car152-de] addr=0x4098 fn=32, val=1
Test bestanden.

Test 6 - separate Funktions-Adresse

Der Handregler sendet Funktion F27
- für die Lokomotive "lc_11plus-de" mit der Adresse 113 = 0x4071 und
- an den separaten Controller mit der Adresse 114 = 0x4072.
Die Lokomotive macht nichts, aber der separate Funktions-Decoder führt Funktion 26 aus.
F27 Adresse="114"="0x4072" fx="26"

Handregler Mapping auf Lokomotive mit separater Adresse
Adresse Funktion
Kurzbeschreibung: F27 = "special" Adresse=114 fx=26
Ergebnis: loco [lc_11plus-de] addr=0x4072 fn=26, val=1
Test bestanden.
userpages/hermannk/function_mapping-de.txt · Last modified: 2020/05/31 13:32 by hermannk