Autor |
Nachricht |
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 1 von 3
|
Verfasst am:
03 Okt 2018 9:42 ARDUINO - SBf-Steuerung ohne Umfahrgleis - alles belegt |
|
Hallo zusammen,
in diesem thread sollen die Schaltungen und Codes für das Verwalten eines Schattenbahnhofes diskutiert werden, der keine Umfahrgleise mehr braucht.
Normalerweise hat ein SBf ja ein "Überlaufgleis" je Fahrtrichtung. Wenn der SBf voll ist (aber das kann ja jeder), fährt der nächste Zug einfach dran vorbei.
Ein SBf, der keine Umfahrgleise mehr braucht, ermöglicht mehr Züge.
So habe ich z. B. auf jeder Ebene 10 Gleise, im SBf, von denen derzeit 2 als Umfahrgleise benötigt werden. Es bleiben also "nur" 8 zum Abstellen von Zügen.
Mit einer Schaltung, die die einzelnen Züge verwaltet und einen Zug passender Länge "herausschiebt", wäre eine Leistungssteigerung um 25%.
Das soll in einen diesem thread diskutiert werden, denn das ist gegenüber den anderen SBf-Schaltungen noch mal ein großer Schritt. Voraussetzung hierfür ist nämlich nicht nur, dass die verfügbare Gleislänge bekannt ist, sondern auch, dass bekannt ist, welche Zuglängen wo am Ausfahr-Ende der Gleise stehen, sodass,
- ein Zug passender Länge identifiziert,
- herausgefahren,
- ein ggf. dahinter stehender Zug aufgerückt und
- der neue Zug aufgenommen werden kann.
Besonderheit bei mir: hinter einem SBf liegt ein weiterer SBf, der ebenso funktionieren soll, d. h. der "herausgeschobene" Zug löst ggf. dasselbe procedere beim nächsten SBf aus. Die Strecke zwischen den beiden SBf, die nur aus einem Verteilkreis besteht, ist aber recht kurz, sodass eine erneute Zuglängenmessung hier nicht möglich ist. Vielmehr muss die "herausgeschobene" Zuglänge als Datum übergeben werden, sodass der nächste SBf aktiv werden und Platz schaffen kann.
Das ist dann aus meiner Sicht die Königsdisziplin und wird daher von den hier und heute angefangenen Arduino-threads der sein, der am Schluss steht.
Diskutiert werden kann darüber natürlich trotzdem jetzt schon
Quelle von mir eingestellter Bilder: Ich! Copyright bei mir!
und immer den Nachwuchs fördern!
Gerd 50 014
zur Moselanlage: . . . . . . . . . . . . . . . . . zum Wildenrather Kreisel:
|
|
|
|
heckmal
Profi-Bahner
Geschlecht:
Alter: 86
Anmeldungsdatum: 20.01.2014
Beiträge: 1665
Wohnort: Auf den Moselhöhen im Rhein-Hunsrück-Kreis, auch (Hängeseilbrücken genannt)
Beitrag 2 von 3
|
Verfasst am:
03 Okt 2018 18:01 ARDUINO - SBf-Steuerung ohne Umfahrgleis - alles belegt |
|
|
|
|
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 3 von 3
|
Verfasst am:
03 Okt 2018 19:02 ARDUINO - SBf-Steuerung ohne Umfahrgleis - alles belegt |
|
Hallo Alois,
nein, die Programmierung ist, weil sie dezentral ist, ja nur einmal zu machen und dann auf jeden der Arduini aufzuspielen, also kein sooo großer Aufwand. Ich bin noch nicht dazu gekommen, den code zu programmieren, weil ich im Moment noch fasziniert andere Anwendungen studiere, aber wenn es soweit ist, wirst Du sehen, dass sich das fundamental von (D)einer zentralen Steuerung unterscheidet.
In einer zentralen Steuerung könnte man aber über ein Klassenkonzept einer objektorientierten Sprache auch die Programmierung nur einmal machen und dann für jede Instanz einer Klasse vererben. Bei mir wird aber gleich auf verschiedene Geräte abgestellt, die miteinander über die serielle Schnittstelle "reden".
Hier wird also nix linear programmiert, sondern mittels Funktionen und Parameterübergaben (das ist nicht objektorientiert, aber auch nicht mehr weit weg davon), sodass man den code nur einmal schreibt, aber zig mal verwenden kann.
Was Du vorschlägst setzt voraus, dass jeder Zug erkannt werden kann, dass also eine zentrale Einheit weiß, welcher Zug wo ist. Darüber hatten wir schon mal an anderer Stelle diskutiert. Das entfällt bei meiner SBf-Steuerung zunächst völlig, denn das würde bedeuten, dass irgendwann jeder Zug eine ID bekommen muss, die dann von Arduino zu Arduino weitergereicht werden müsste. Entweder über Transponder (mit dem Thema bin ich noch nicht durch, aber die benötigten Stückzahlen schrecken mich ab), oder beim Aufgleisen muss man irgendeinem Arduino mitteilen, was da wo steht.
Es wird aber wohl nicht auf der ganzen Anlage Arduino-überwachte Bereiche geben. Zunächst möchte ich nur die SBf ausstatten und/oder Fahrstraßen damit schalten, aber keine lückenlose Überwachung, wie Du sie für Deine Anlage hast und brauchst.
Stellt man dann neue Züge auf, müsste man - wie gesagt - irgendeinem Arduino dann die Info geben, wer das ist und wohin er gehört und welcher Zug dafür jetzt von der Anlage genommen wurde.
Das wäre mir zuviel Aufwand im laufenden Betrieb, würde aber natürlich ermöglichen, dass man gezielt einen Zug auf der Anlage findet und aufruft. Für ein Fahren nach Fahrplan wäre das notwendig, das habe ich im SBf-Bereich aber - jedenfalls erst mal - nicht vorgesehen.
Die Programmierung der Gleisfindung (gehört eigentlich hierher: http://www.jkrs-modellbahntreff.de/viewtopic.php?t=4851) läuft in Blöcken recht simpel ab:
Eingang: Zug der Länge 2, wer hat Platz?
Gleis 1: Ich habe nur 1 Platz (reicht nicht)
Gleis 2: Ich habe 3 Platz (passt, ist aber nicht optimal)
Gleis 3: Gleis 2 hat 3 Platz, ich habe nichts besseres
Gleis 4: Ich habe 2 Platz (das ist besser als 3 zu verschwenden)
Gleis 5: Gleis 4 hat den passenden Platz (wurde schon gefunden, muss also nicht mehr geprüft werden
Eingang: Aha, Gleis 4 hat Platz -> Fahrstraße auf Gleis 4
natürlich muss dazu im Gleis jeweils außer den - sagen wir mal 3 - Abschnitten zum Abstellen der Züge auch ein Haltebereich für die Lok definiert sein, in dem der Strom abgeschaltet werden kann, der aber zur Abstelllänge gehört.
Die Logik, nach der dann die Lok stromlos geschaltet wird ist davon abhängig, dass der Zug wirklich komplett im Halteabschnitt steht, muss aber verhindern, dass er auf einen vorausstehenden Zug oder die Weichenstraße auffährt.
Soweit die Theorie dazu.
Wird jetzt aber kein freies Gleis gefunden, müsste einer der Gleisverwalter rückmelden: "ich habe zwar keinen freien Platz, aber ich habe einen Zug gleicher Länge an vorderster Stelle stehen, ich kann den rausschicken (und ggf. einen dahinter stehenden Zug aufrücken lassen), dann habe ich Platz für den Zug."
Das ist in der Tat nicht einfach, aber weniger eine Frage des vielen Programmierens als vielmehr der Speicherung von Informationen, die - falls eine einfache Gleisfreisuche kein Ergebnis liefert - in einem zweiten Schritt dann quasi Plan B aktiviert. Das ist eine Erweiterung der Programmierung, die erst mal in dem anderen thread (http://www.jkrs-modellbahntreff.de/viewtopic.php?t=4851) entwickelt werden müsste und auf die dann bei der Übergabe der Antworten die Plan-B Antworten aufgesattelt werden.
Aber Danke für die Frage und die Kritik, die veranlasst mich nämlich, erklären zu müssen, wie ich mir das vorstelle und das verhilft mir zu einer genaueren Vorstellung, was ich eigentlich bauen will.
Nur sind wir hier in diesem Thread für die eigentliche Programmierung noch zu früh, weil erst mal das Grundwerk für den Fall, dass freie Gleise da sind, geschaffen werden muss, über das Konzept kann man aber schon sprechen
Quelle von mir eingestellter Bilder: Ich! Copyright bei mir!
und immer den Nachwuchs fördern!
Gerd 50 014
zur Moselanlage: . . . . . . . . . . . . . . . . . zum Wildenrather Kreisel:
|
|
|
|
|
Cookies entfernen
Powered by Orion based on phpBB
© 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
Alle Zeiten sind GMT + 1 Stunde
|