JMRI® connects to...
Supported Hardware
Devices, command stations, networks, and protocols:
Applications
By the community of JMRI.org:
Tools
JMRI tools for working with your layout:
Layout Automation
Use JMRI to automate parts of your layout and operations:

JMRI Help:

Contents Index
Glossary FAQ

Donate to JMRI.org

Hardware Unterstützung: BiDiB

(englische Version hier)
BiDiB logo

Zusammenfassung

BiDiB® steht für BiDirectional Bus zur digitalen Steuerung einer Modelleisenbahn. Der Begriff BiDiB® selbst bezeichnet die Protokolltechnologie, die auf verschiedenen physikalischen Verbindungen implementiert werden kann, wie Ethernet, USB oder den BiDiBus, der speziell auf die Bedürfnisse von Modellbahnern und Systemverkabelungen optimiert ist.

BiDiB ist kein kommerzielles Produkt und nicht an eine bestimmte Hardware gebunden. Es ist eine Protokolldefinition, die von jedem implementiert werden kann, einschließlich kommerzieller Hersteller.

BiDiB startete 2010 und wurde von Wolfgang Kufer (opendcc.de) entwickelt. Weitere Informationen zu BiDiB finden Sie unter bidib.org.

BiDiB Merkmale:

Unterstützte Hardware

Jede Hardware, die BiDiB implementiert. Siehe "Informationen zu Drittanbietern" weiter unten.

Einschränkungen

BiDiB für JMRI befindet sich derzeit in der Beta-Phase - einige Funktionen können fehlen und es gibt sicherlich noch Fehler.

Verbindungen

Anschlüsse

Derzeit unterstützt JMRI die Verbindung über USB, BiDiB über TCP, und es gibt einen BiDiB-Simulator, der durch eine XML-Datei konfiguriert wird.

Öffnen Sie die Registerkarte Verbindungen, wählen Sie „BiDiB“ aus dem Auswahlfeld Systemhersteller und wählen Sie aus den folgenden Setups. Der Systembuchstabe für BiDiB-Verbindungen ist "B".
BiDiB unterstützt Hotplugging auf dem BiDiBus, dies wird auch in JMRI-BiDiB unterstützt. Geht ein Knoten verloren, werden alle Objekte, die darauf verweisen als ungültig markiert aber nicht entfernt. Wenn ein neuer Knoten gefunden wurde, werden alle ungültigen Objekte überprüft, ob sie wieder aktiviert werden können.

Serial über USB

Um eine neue Verbindung zu erstellen, kann entweder der Portname (z. B. ttyUSB0 unter Linux oder COM1 unter Windows) ausgewählt oder die UID des Root-Knotens direkt eingegeben werden. Da UIDs weltweit eindeutig sind und sich für eine bestimmte Hardware nie ändern, kann der passende Port automatisch gefunden werden, indem alle verwendbaren Ports gescannt werden. Unter Windows werden alle Ports COMx gescannt, unter Linux und macOS kann ein Namensfilter verwendet werden (Standard ist "ttyUSB*"). Beim Herstellen der Verbindung durch Auswahl eines Ports aus der Liste der verfügbaren Ports wird die vom Gerät ausgelesene UID angezeigt und gespeichert - sofern es sich bei dem Gerät um einen BiDiB-Knoten handelt. Dazu kann eine Checkbox (Autoscan) aktiviert werden - wenn JMRI neu gestartet wird, kann der Port durch Scannen der verfügbaren Ports gefunden werden. Wenn also mehr als eine BiDiB-Verbindung verwendet wird, ist die Port-Bezeichnung des USB-Geräts nicht relevant.

BiDiB über TCP

In diesem Fall ist die Hardware nicht direkt mit JMRI verbunden, sondern JMRI verbindet sich mit einem TCP-Server, der sich wiederum mit der Hardware verbindet. Dies kann nützlich sein, wenn ein anderes Programm als Hauptsteuerprogramm verwendet wird und JMRI nur als CV-Programmierer (Decoder Pro). Die Parameter sind die IP-Adresse und die Portnummer des Servers, zu dem eine Verbindung hergestellt werden soll. Die Standardportnummer ist 62875.

Simulator

Es steht ein BiDiB-Simulator zur Verfügung. Dieser Verbindungstyp hat ein Feld für eine XML-Datei mit der simulierten Konfiguration. Der Speicherort für diese Datei ist das Profilverzeichnis.

Einstellungen

BiDiB Connection

BiDiB Namensgebung

JMRI-Systemnamen bestehen im Allgemeinen aus einem Systemverbindungspräfix Xn, wobei X der Systemverbindungsbuchstabe ist und n entweder leer oder bei Mehrfachverbindungen eine Zahl ist, gefolgt von dem Typbuchstaben ("T" für Weichen, "L" für Lampen, "S" für Detektoren und "R" für Melder (Lokadressenrückmeldung, Reporter) und die Systemadresse.

Für BiDiB ist der Systemverbindungsbuchstabe "B", die Systemadresse ist ein String mit der BiDiB-Adresse.

Die BiDiB-Adresse hat generell die Form:

Knoten:Adresse

Ein Knoten auf dem BiDiBus wird entweder durch seine weltweit eindeutige Kennung (UID) identifiziert, die eine 40-Bit-Hexadezimalzahl ist, oder durch einen im Knoten konfigurierten Benutzernamen (mit dem BiDiBWizard). Die hexadezimale UID muss mit einem „X“ beginnen, Benutzernamen müssen mit einem Buchstaben beginnen (besser nicht mit „X“) und dürfen nur andere Buchstaben, Zahlen, Unterstriche („_“) oder Bindestriche („-“) enthalten. Dies ist eine Einschränkung von JMRI für BiDiB, nicht für BiDiB selbst. Die Knotenspezifikation ist unabhängig von Groß- und Kleinschreibung.

Der Knotenteil der Adresse kann weggelassen werden (einschließlich Doppelpunkt), in diesem Fall wird automatisch das Interface (Root Node, d. h. der direkt mit JMRI verbundene BiDiB-Knoten) verwendet.

Der Adresse auf dem Knoten kann ein Adresstyp als Buchstabe vorangestellt werden, und – nur für Portadressen – kann ein Porttyp als Buchstabe folgen. Die Nummer ist erforderlich und die beiden Buchstaben sind optional. Werden sie weggelassen, werden geeignete Standardeinstellungen in Abhängigkeit von den Fähigkeiten des Knotens ausgewählt: Nur eine Zentrale hat DCC-Adressen, Weichen sind bevorzugt Accessories und Lichter sind bevorzugt Ports (digitale Pins des Geräts). Die allgemeine Form einer Adresse auf einem Knoten ist also:

xny

wobei x der optionaler Adresstyp ist, n die numerische Adresse und y der optionale BiDiB-Porttyp.

In JMRI werden in deutscher Sprache Belegtmelder als Detektoren (engl. Sensors) bezeichnet, Railcom Rückmelder als "Melder".

Die Bezeichnung "Weichen" (engl. Turnouts) in JMRI bezieht sich nicht unbedingt auf tatsächliche Weichen, sondern eher auf ein einen generellen I/O-Port der Hardware, der die beiden Zustände An und Aus einnehmen kann. In BiDiB sollten Weichen aber nicht direkt über die Ports gesteuert werden, sondern als Accessories angesprochen werden. Diese Auswahl geschieht über den Addresstyp-Buchstaben.

Liste der Adresstypen:

´
Buchstabe Beschreibung Standardtyp für:
t DCC Accessory Adresse ("track") Weichen und Belegtmelder wenn der Knoten eine Command Station (CS) ist. Ungültig bei Knoten ohne CS Funktion.
a (non-DCC) Accessory AdresseWeichen wenn der Knoten keine Command Station ist und der Knoten BiDiB Accessories unterstützt.
f Belegtmelder Nummer Belegtmelder, wenn der Knoten BiDiB Belegtmelder unterstützt. Melder (Reporters) sind nur für Knoten relevant, die Belegtmelder unterstützen, daher immer Standard
p Portnummer Lampen (LEDs). Für Detektoren, wenn der Knoten keine Belegtmelder unterstützt.

Liste der BiDiB Porttypen:

Buchstabe Bezeichnung Beschreibung
S SWITCHPORT Einfacher digitaler Ausgang. Entweder EIN oder AUS.
L LIGHTPORT Steuerung eines digitalen Ausgangs mit diversen Funktionen wie Dimmen, Blinken etc. Gesteuert durch einen Zustandswert (ähnlich wie bei Signalen)
V SERVOPORT Steuerung eines angeschlossenen Servos. Start- und Endposition werden im Knoten konfiguriert, ebenso die Umlaufgeschwindigkeit.
U SOUNDPORT derzeit nicht in JMRI unterstützt
M MOTORPORT derzeit nicht in JMRI unterstützt
A ANALOGPORT derzeit nicht in JMRI unterstützt
B BACKLIGHTPORT derzeit nicht in JMRI unterstützt
P SWITCHPAIRPORT derzeit nicht in JMRI unterstützt
I INPUTPORT Standard für Sensoren. Für andere ungültig

Beispiele (das Interface (Rootnode) wird als Zentrale angenommen und hat die UID 0d68001234 und "MeinKnoten" ist der Nutzername):

Systemname Typ Adresse Part resultierende Knoten UID resultierende Adresse Bermerkungen
BSX0d68001234:20 Detektor X0d68001234:20 0d68001234 f20 - Belegmelder 20 BiDiB Belegmelder 20 des (Interface-) Knoten 0d68001234
BSMyNode:42 Detektor MeinKnoten:42 0d68001234 f42 - Belegmelder 42 BiDiB Belegmelder 42 des (Interface-) Knoten 0d68001234 mit dem Nutzernamen "MeinKnoten"
BT5 Weiche 5 0d68001234 t5 - DCC Adresse 5 Weiche mit der DCC address 5 über das Interface (CS Knoten) 0d68001234
BTN201:22 Weiche N201:22 0d68006789 a22 - Accessory Adresse 22 Weiche mit der BiDiB Accessory Adresse 22 des Knoten 0d68006789 mit dem Nutzername "N201" (nicht die Command Station)
B1LLC6:8L Lampe (Licht) LC6:8 0d68004321 p8L - Port 8 Lampe am Ausgangsport 8 (typbasierendes Adressierungsmodell) des Knoten 0d68004321 mit dem Nutzername "LC6" auf der zweiten BiDiB Verbindung (B1)
BLN201:15 Lampe (Licht) N201:15 0d68006789 p15L - Port 15 Licht am Ausgangsport 15 (flaches Adressierungsmodell) des Knotens 0d68006789 mit dem Namen "N201", Port muss als LIGHT konfiguriert werden
BSX0d68006789:3 Detektor 0d68006789:3 0d68006789 p3I - Port 3 Detektor am Eingangsport 3 (flaches Adressierungsmodell) des Knotens 0d68006789 (ohne Belegtmelder), Port muss als INPUT konfiguriert werden
BR42 Melder (Reporter) 42 0d68001234 f42 - Belegmelder 42 Railcom-Rückmeldung über Belegmelder 42 des Interface Knotens 0d68001234

Detektoren

BiDiB Belegtmelder und Eingangsports werden Detektoren zugeordnet.

Weichen

BiDiB-Accessories sind das Äquivalent zu Weichen. Sowohl Signallampen als auch tatsächliche Weichen können sich auf JMRI-Weichen beziehen. Signale sollen aber über "Signalmasten" bedient werden (siehe weiter unten)

Lampen

BiDiB-Ports werden normalerweise Lampen (Lichter, Lights) zugeordnet.

BiDiB-Ports unterstützen entweder ein flaches Adressierungsmodell oder ein typbasiertes Adressierungsmodell. Das Adressierungsmodell wird durch die Firmware des Knotens bestimmt. Beim flachen Adressierungsmodell werden alle verfügbaren Ports einfach von 0 bis zur Anzahl der Ports minus 1 nummeriert. Jeder Port muss im Knoten (z. B. mit dem BiDiBWizard) als einer der oben genannten Porttypen konfiguriert werden, der von der Hardware selbst unterstützt wird. In diesem Fall ist der Buchstabe des Porttyps in der JMRI-Systemadresse nicht erforderlich, da der Typ vom Knoten gelesen wird.

Wenn der Knoten das typbasierte Adressierungsmodell verwendet, sind Porttypen in der Firmware fest kodiert und können nicht geändert werden. Jeder Porttyp hat einen eigenen Adressbereich beginnend bei 0 bis zur Anzahl der Ports für diesen Typ minus 1. In diesem Fall ist der Porttyp Teil der Portadresse und der Porttypbuchstabe wird in der BiDiB-Adresse benötigt. Siehe die Beispiele oben.

BiDiB Signalmasten

Es wird ein Signalmasttyp für BiDiB-Accessories bereitgestellt, bei dem ein JMRI-Aspekt direkt einem BiDiB-Accessories-Aspekt zugeordnet werden kann. Die Signalbilder können programmiert werden in den BiDiB-Knoten mit Makros über den BiDiB-Wizard. Andere Signalmasttypen (z. B. der Matrix-Typ) können "Weichen" zugeordnet werden.

Melder (Reporters)

Belegtmelder, die die Rückmeldung von Lokadressen unterstützen, melden diese Adresse an einen JMRI-Melder. Jede Melderadresse hat eine Belegtmelderadresse mit der gleichen Nummer.

JMRI BiDiB Tools

Menu

Wenn JMRI über dieses System mit einer Anlage verbunden ist, wird ein BiDiB-Menü wird angezeigt:

BiDiB Wizard

BiDiB-Hardware kann normalerweise in vielen Aspekten konfiguriert werden, einschließlich der Definition von Makros. Dies ist nicht im Umfang von JMRI. Stattdessen gibt es den BiDiBWizard.

Der BiDiBWizard ist ein externes Tool - ebenfalls in Java geschrieben und verwendet die gleiche zugrunde liegende BiDiB-Bibliothek (jbidibc - geschrieben von Andreas Kuhtz).

Mit diesem Tool werden alle Knotenparameter konfiguriert, z.B: der Knoten-Nutzername, die Portkonfigurationen und viele andere Parameter. Daher ist kein weiteres Konfigurationstool in JMRI integriert. Der BiDiBWizard kann mit dem oben genannten BiDiB-über-TCP-Server verbunden werden.

Dokumentation

Third Party Info

BiDiB home page: english or german

BiDiBWizard: aktuell nur in deutsch.

BiDiB Hersteller

Die Entwickler von BiDiB verkaufen Module im Shop Fichtelbahn.

Es gibt einige andere Hersteller - siehe www.bidib.org/vendors.html