RE: Vorstellung eigene Software zur Steuerung (meine: CoCoRail)

#1 von smf ( gelöscht ) , 04.03.2017 16:08

Hallo zusammen,

hier scheint es einige zu geben, die sich die Software zur Steuerung ihrer Anlage selbst schreiben. Ich gehöre auch dazu. Wie in einem anderen Thread versprochen, möchte ich die meinige hier kurz vorstellen.

Bei Interesse gebe ich sie auch unter GPLv3 raus, allerdings natürlich wie immer ohne jedwede Gewähr, schließlich besteht Brandgefahr, wenn zum Beispiel das Abschalten der Weichenantriebe nicht funktioniert und jemand die Endabschaltung überbrückt haben sollte. Es wird also jede Haftung abgelehnt.

Die Software ist komplett in Java geschrieben und läuft somit auf Linux/MacOs/Windows oder eben auch direkt auf dem BananaPi. Als mögliche Schnittstellen zu einer Märklin-Anlage (andere Systeme oder Schnittstellen werden aktuell nicht unterstützt) stehen Ethernet zu einer CS2 oder zwei native CAN-Treiber zum direkten Anschluss an den Bus zur Verfügung: zum Einen für das TinyCAN-Modul von mhs, dann läuft die Software auf einem 64-Bit-PC-Linux, oder zum Anderen auch für das CAN-Modul des BananaPi. Vor allem letzteres finde ich ganz lustig, da man dann mit einem BananaPi plus Gleisbox direkt spielen kann - also im Prinzip so ähnlich wie das hier im Forum vorgestellte System von bertr2d2, aber bei mir läuft eben die gesamte Oberfläche auch auf dem BananaPi, so dass kein weiterer Rechner benötigt wird.

Vorhandene Funktionen sind:

  • Loks steuern.
  • Weichen schalten.
  • S88-Rückmelder anzeigen (auch mit Gleisbox).
  • S88-Rückmelder simulieren (zum Beispiel zum Auslösen von anderen Ereignissen).
  • Gleisplan zu einer Anlage.
  • Streckenabschnitte definieren.
  • Beliebige Zuordnung von Gleisplänen zu Streckenabschnitten (z.B. kann man einen großen Plan der ganzen Anlage haben und zusätzlich noch einen Plan, der einen Teil - z.B. den Bahnhof - in anderer Darstellung enthält).
  • Zugverfolgung, d.h. wenn die Bahn in Abschnitte eingeteilt wurde und eine Lok in einem Abschnitt steht, wird deren Position im Plan aktualisiert, auch wenn man mit einem Handregler fährt. Dazu sind unbedingt Rückmeldekontakte erforderlich, wobei meine Software die aktuelle Position zwischen Rückmeldekontakten schätzt.
  • Kollisionserkennung, d.h. bei Loks mit bekannter Position wird ein Unfall mit anderen Loks verhindert bzw. abgeschwächt, indem bei drohendem Zusammenstoß beide Loks angehalten werden.
  • Zugfahrt mit Ziel, d.h. die Lok steht irgendwo und erhält den Auftrag, zu einem Ziel zu fahren (unter Beachtung der anderen Loks natürlich).
  • Skripting für alle Basis-Funktionen (Loks, Weichen, Rückmelder ändern) sowie zu Zugfahrten, auch mit Zufallsanteil.
  • mfx-Loks anmelden und mit einer SID versorgen.
  • CVs von mfx-Loks auslesen.
  • Link88-Module initialisieren, so dass sie ihre Kontakte melden.
  • Rudimentäre Bedienung Loks/Weichen über beliebiges Drittgerät (Handy, Tablet, PC) per Web-Browser.


Es fehlt noch eine ganze Menge:
  • Einmessung von Loks.
  • Mehrfachtraktion.
  • Heimatpositionen von Zügen.
  • Geschwindigkeitsbegrenzung auf einzelnen Streckenabschnitten.
  • Priorisierung von Zügen.
  • u.v.m...


Da ein Bild ja manchmal mehr als tausend Worte sagt, lade ich in den nächsten Beiträgen dieses Threads noch Bilder hoch. Das dauert noch ein bisschen, danach bin ich gespannt auf Eure Meinung und Ideen!


smf

RE: Vorstellung eigene Software zur Steuerung (meine: CoCoRail)

#2 von smf ( gelöscht ) , 04.03.2017 18:39

...so, nun endlich die Bilder, es gab einen Prio0-Interrupt.



Links oben ist der Gesamtplan der (recht kleinen) Testanlage, rechts oben der "Bahnhofsausschnitt" für die beiden Gleise im Westen. Darunter die Weichen-Direktsteuerung, darunter die Lok-Direktsteuerung. In den beiden Fenstern darunter befinden sich die Anzeigen für Rückmeldekontakte bzw. virtuelle Kontakte, die hier eine Einmalfahrt oder eine Dauerfahrt anzeigen. Dafür gibt es auf der Anlage zwei Knöpfe, einmal grün und einmal rot, wobei grün <1s eine Einmalfahrt und grün>=1s die Dauerfahrt aktiviert. Einmal rot hält die Dauerfahrt wieder an. Dazu gibt es kleine Scripte, deren Bilder man im folgenden Screenshot sieht:



Wenn man dann ein Script startet, wird über die "move"-Befehle der jeweilige Zug dorthin gefahren, was im entsprechenden Auftragsfenster sichtbar wird.



Das wären mal so die Grundfunktionen.

Ich bin gespannt auf Eure Kommentare und Ideen. Freuen würde ich mich auch über die Vorstellung anderer Selbstbau-Bedien-Software.

Viele Grüße - Stefan


smf

RE: Vorstellung eigene Software zur Steuerung (meine: CoCoRail)

#3 von Daniel Tuerk , 12.11.2017 14:24

Hallo Zusammen,

ich möchte auch mal meine Software vorstellen. Natürlich funktioniert nix so recht und es ist auch nur exklusiv für die eigene Verwendung in Entwicklung. Wenn sich daraus später mal mehr ergibt, wäre das schön, aber ist nicht das Ziel.

Unterstützt wird aktuell nur SX1 und getestet mit FCC.

Stellpullt mit Übersicht und folgenden Funktionen:
- Weichen / Signale stellen
- Anzeige Block Status
- Anzeige Lokadresse Rückmeldung (BM 8i)
- Steuerung der Loks (rechts)
- Über USB verbinden
- Fahrstrom
- Recorder / Player (aktuelle Kommunikation mitschneiden und auch wieder abspielen (für die bessere Bugsuche ))



Tab "Scenario"

Scenarios direkt starten oder triggern ( Start zu bestimmter Uhrzeit per Cron)


Editor:
Erstellung des Gleisbilds per Drag and Drop und konfiguration der Adressen für Weichen/Signale und Blöcke.


Block konfigurieren: Durch Rückmeldung der Lokadresse kann automatisch bei Ein- oder Ausfahrt eine neue Geschwindigkeit vergeben werden.


Scenario:

Scenarios können erstellt werden für eine Lok und eine Reihenfolge von Routen, welche nacheinander abgespielt werden. Die Routen selbst werden extra verwaltet und können wiederverwendet werden.



Routen konfigurieren:
Die Wegfindung ist automatisch. Es muss ein Start und Ende Block angeklickt werden, danach wird die Strecke gesucht und blau makiert. Weichen werden mit benötigter Stellung gespeichert. Alle Blöcke dazwischen werden detektiert und beim Abspielen auf "frei" geprüft.
Man kann einzelene Blöcke als Wegpunkte setzten um einen alternative Strecke erstellen zu lassen, da im Normalfall immer die kürzeste gesucht wird.


Bus Montitor:


Und zum Schluss eine von manchen unnötigen Spielereinen:

Das Stellpullt in 3D, funktioniert sogar etwas und wäre umsetzbar, aber das war nur eine Spielerei.

Da das ganze eine Webapp ist, kann man es natürlich gemütlich am Tablet bedienen, bzw. auf mehreren Geräten gleichzeitig. Für das Smartphone habe ich es etwas abgespeckt. Verwende da eigentlich nur die Lok Kontrolle für das fahren, wenn ich auf der Suche nach kalten Lötstellen bin.

Die Anwendung läuft auf einen Raspberry aber ist leider aktuell noch zu lahm. Hier muss ich wieder an der Performance schrauben. Aber aktuell sind die automatisierten Fahrstraßen dran.

Wie man vielleicht erkennt interessiert mich die UI nicht, deswegen geben ich mir auch keine Mühe. Das kann ich später einmal machen, wenn die Funktionen auch wirklich das tun was sie sollen.

Grüße
Daniel

P.S. basierend auf der Library in der Signatur


https://github.com/DanielTuerk/selectrix4java


Daniel Tuerk  
Daniel Tuerk
Regionalbahn (RB)
Beiträge: 43
Registriert am: 24.01.2014


RE: Vorstellung eigene Software zur Steuerung (meine: CoCoRail)

#4 von smf ( gelöscht ) , 12.11.2017 14:33

Hallo Daniel,

das sieht ja sehr hübsch aus! In was hast Du die Software geschrieben, und wie machst Du die Weboberfläche?

Viele Grüße - Stefan


smf

RE: Vorstellung eigene Software zur Steuerung (meine: CoCoRail)

#5 von Daniel Tuerk , 12.11.2017 14:39

Java mit RXTX für USB (über die Lib selectrix4java)
GWT + Bootstrap
RPC für Serveraufrufe
Websockets für die UI. (z.b. Block belegt)
Guice, hibernate, Derby DB (embedded oder lokaler Server für Entwicklung)
threeJS für 3D (bzw. parallax für GWT)

Als IDE nutze ich IntelliJ.


https://github.com/DanielTuerk/selectrix4java


Daniel Tuerk  
Daniel Tuerk
Regionalbahn (RB)
Beiträge: 43
Registriert am: 24.01.2014


RE: Vorstellung eigene Software zur Steuerung (meine: CoCoRail)

#6 von smf ( gelöscht ) , 12.11.2017 14:42

Danke für die schnelle Antwort!

Und nachdem es in Java geschrieben ist: meine Software ist ebenfalls in Java geschrieben, vielleicht können wir Teile recyclen? Mehr per PN.

Viele Grüße - Stefan


smf

RE: Vorstellung eigene Software zur Steuerung (meine: CoCoRail)

#7 von wulf43 , 12.11.2017 17:51

Hallo Stefan,
auch ich habe schon vor geraumer Zeit eine eigene Software geschrieben. Allerdings in VB6. Z. Zt. im befinde ich mich auf einer Reise und kann keine Bilder liefern. Daher verweise ich auf meine Anlagenseite. Da ist der Funktionalitätsumfang beschrieben.
Gruß
wulf43


Meine Anlage: Modellbahnprojekt "unendliche Geschichte"
http://stummiforum.de/viewtopic.php?f=64...513940#p1509012


wulf43  
wulf43
InterRegio (IR)
Beiträge: 186
Registriert am: 28.02.2013
Gleise K-GLEIS
Spurweite H0
Steuerung Eigenentwicklung Software
Stromart AC, Digital


RE: Vorstellung eigene Software zur Steuerung (meine: CoCoRail)

#8 von fdl , 22.11.2017 15:07

Alle,

vor einige Jahre konnte ich kein Programm finden das macht was ich will: meine private Modellbahn als Fahrdienstleiter bedienen, grundsätzlich nach Fahrplan.
Deshalb habe ich selbst ein Programm geschrieben. Das hat nun (fast) alles was ich mir wünsche en funktioniert zuverlässig. Angefangen habe ich mit Lenz Digital (Expressnet). Nun habe ich auch eine Version für Uhlenbrock Loconet erstellt, so dass man das Programm auch einsetzen kann auf eine Anlage mit diesem Digital System das Multiprotokoll Betrieb ermöglicht.
Auch einige Modellbahnfreunde nutzen jetzt mein Programm.



Auf dem Bildschirm des Fahrdienstleiters erkennt man der Gleisplan, das ESTW ähnelt. Darunter die Fenster für die Bedienung. Die Bedienung macht man mit mehrere Fenster. Hierdurch kann der fdl parallel arbeiten und auch im Voraus.
Rechtsunten das Fenster mit dem Fahrplan. Mein Programm kann ein geplante Zugbewegung selbständig ausfuhren. Neben geplante Zugbewegungen kann man ad hoc Zugbewegungen ausführen. Die verwende ich meist für rangieren.



Ein Fahrplanzeile enthalt folgende Daten:
1. Tage das der Zug verkehrt zB 1234567
2. Planmäßige Abfahrt 8:44
3. Zug Art TH
4. Folgenummer 9412
5. Beschreibung > Paris N
6. Route (Startbahnhof/gleis-Zielbahnhof/gleis) R23-A31
7. Aktionskode v
8. Zug Art nach Erreichen des Ziels TH
9. Folgenummer nach Erreichen des Ziels 9424
10. Notizfeld PBKA

Die Daten 5 und 10 sind nicht erforderlich.
Die Daten 8 und 9 sind nur dann erforderlich wenn der Zug am Ende der Fahrt das Ziel erreicht hat und einen anderen Zug Art / Folgenummer bekommen soll. Mein Fahrdienstleitungsprogramm macht das dann automatisch.

Der Aktionskode ist was das Programm machen soll. Es gibt den folgenden Aktionskodes:
v Am Uhrzeit die Fahrwege der Route einlegen für Zugfahrt und fahren durch Programm
h Wie v, aber erst nachdem der Zug steht
r Am Uhrzeit Fahrwege einlegen für Rangierfahrt und fahren durch Programm
l Wie r, aber letze Fahrweg in belegte Gleis. Fahren durch Programm bis zum Signal
das der letzte Fahrweg deckt.
Leer Kein Aktion. Zeile ist informativ.

Das Fahrplan ist eine Liste. Ich erstelle die mit Excel.
Mein Programm ist sehr tolerant für Zuge die zu früh oder verspätet sind. Außerdem ist es einfach möglich ein Zug um zu leiten oder ein geplante Zugbewegung zu annullieren.

Ich habe ein Video (14 Minuten) erstellt das zeigt wie ich mit meinem Programm meine Modellbahn bediene. Ist aber wie das Fahrdienstleiter Interface in Holländische Sprache.
Wer Interesse hat um diese Video zu sichten melde sich mit einem PN.

Zusammengefasst sind die spezifischen Eigenschaften meines Programms:

(Inter) Aktiver Betrieb der Modellbahn
 Als Fahrdienstleiter
 Als Rangierlokführer, hauptsachlich Rangierbewegungen in belegte Gleis
 Optional als Lokführer auf den Strecke

Für die private Modellbahn
 Bedienung durch 1 Tisch / Fdl (m/v)

Züge sind frei zusammen zu stellen und während Betrieb zu ändern
 Länge der Zuge und Position der Lokomotive(n) egal (erfordert aber Gleisbelegtmeldung in Weichenstraßen)

Alle Signale werden bedient
 Kein automatische Blocksignale (eine Modellbahn hat meist kaum freie Strecke)

Schnell und einfach zu implementieren
 Minimal Daten einbringen (kein Blocke und Fahrstraßen, kein Länge von Gleise oder Zuge, einfaches kalibrieren
von Loks/Triebwagen
 Effiziente Menüs und Funktionen für zeichnen des Gleisplans und eintragen von Daten

Grus, Willem.


fdl  
fdl
InterRegio (IR)
Beiträge: 241
Registriert am: 18.09.2008
Spurweite H0
Stromart AC


RE: Vorstellung eigene Software zur Steuerung (meine: CoCoRail)

#9 von smf ( gelöscht ) , 22.11.2017 15:13

Hallo wulf43, hallo Willen,

vielen Dank für Eure Beiträge - sehr spannend, was "da draußen alles selbstgestrickt" wird!

Noch mehr?

Viele Grüße - Stefan


smf

   


  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz