Laden...

Automatisierung von Abläufen bei der Modellbahn

Erstellt von JoachimW vor 4 Jahren Letzter Beitrag vor 4 Jahren 2.893 Views
J
JoachimW Themenstarter:in
8 Beiträge seit 2020
vor 4 Jahren
Automatisierung von Abläufen bei der Modellbahn

Hallo zusammen,

ich weiß nicht, ob ich hier in diesem Unterforum richtig bin, wenn nicht, könnte das ein Admin netterweise verschieben.

ich habe ein riesiges Problem, welches ich in großen Teilen nicht selbst lösen kann, da meine Erfahrung in C# leider nicht ausreicht. Ich habe mich daher hier angemeldet und hoffe, jemand kann mir weiterhelfen.

Ich möchte verschiedene Abläufe auf der Modellbahn automatisieren.

  1. Die Beleuchtung auf der Anlage (Häuser, Straßen)
  2. Die Beleuchtung der Anlage (Tag-/Nacht-Simulation) über DMX und Art-Net
  3. Geräusche auf der Anlage

Es gibt derzeit keine Software, die alle drei Bereiche abdeckt. Die Software, die es auf dem Markt gibt, legt ihren Schwerpunkt auf das Fahren und Schalten.
Bei den Geräuschen ist sogar die Hardwareauswahl ziemlich bescheiden.

Mit einigen Klimmzügen wäre es ggf. möglich mit der Software iTrain die drei Bereiche annähernd abzubilden, aber eben nur mit Klimmzügen, annähernd und mit einem riesigen unübersichtlichen Overhead, der die Sache auf unschöne Art und Weise verkompliziert.
Bei anderen auf dem Markt befindlichen Programmen können nur Teilbereiche abgedeckt werden, was bedeutet, dass zwei oder sogar drei Programme eingesetzt werden müssten - die natürlich alle einen entsprechenden eigenen Overhead mitbringen - und das ganze noch unübersichtlicher wird.

Die Anforderungen an die Software sind nicht Marktkonform oder vielleicht bin ich meiner Zeit 10 bis 20 Jahre voraus oder einfach zu speziell. Leider!

Als Zentrale (zur Kommunikation/Steuerung der Decoder) dient mir eine Roco Z21. Die Beschreibung der LAN-Schnittstelle der Z21 ist unter https://docplayer.org/18700343-Z21-lan-protokoll-spezifikation.html dokumentiert.

Auch gibt es unter http://rentsch.dashosting.de/codepower/7.htm einen ersten Ansatz, der aber erstens nicht vollständig ist und zweitens die Dokumentation nicht zum Code passt oder sich auf eine andere Version bezieht bzw. Fehler enthält. Leider!

Mit diesem Ansatz könnten die Punkte 1. und 3. ggf. gelöst werden.

Was 2. angeht, ist ein anderer Ansatz nötig. Das DMX-Protkoll liegt jedoch auch offen und es gibt auch einiges an offenen Code hierzu.

...nur leider ist die Kommunikation über UDP und Byteberechnungen absolut nicht meine Stärke (soll heißen, ich habe so ziemlich keine Ahnung davon)!
Ich bin eher auf Anfängerniveau anzusiedeln und bekomme eine ordentliche Benutzeroberfläche hin, die Berechnungen zur Automatisierung und einfache Datenbankzugriffe über SQL. Alles andere ist da eine Nummer zu groß für mich, weshalb ich eben ein großes (oder riesiges) Problem habe!

Gibt es hier vielleicht jemanden (oder mehrere) der/die mir bei der Lösung des Problems helfen kann/können und will/wollen?

Gruß
Joachim

463 Beiträge seit 2009
vor 4 Jahren

Nicht böse gemeint, aber ich glaube dieses Projekt ist nicht nur eine Hausnummer zu groß für dich. Ich würde dir empfehlen hier Schritt für Schritt vorzugehen - alles andere wird nur in Frustration enden.

ich würd emit Schritt #1 beginnen und dafür auch prüfen, ob es wirklich dazu ein Roco Z21 sein muss. Ich würde dir z.B. diese hier empfehlen. Versuche nicht eine eierlegende Wollmilchsau zu planen welche kaum umzusetzen sein wird...

J
JoachimW Themenstarter:in
8 Beiträge seit 2020
vor 4 Jahren

Hallo Stefan,

es muss die Z21 sein!
Es ist die einzige Zentrale, die meine Bedürfnisse gänzlich abdeckt und sie ist vorhanden.

An großen Aufgaben kann man wachsen!

Das Projekt wird ganz sicher von mir verwirklicht, egal wie lange es dauert, außer jemand anderes macht es in der Zeit oder es gibt eine andere Lösung für das Problem, wobei ich die Chancen hierfür aber als geringer als minimal ansehe.

Meine Frage lautete:
Gibt es hier vielleicht jemanden (oder mehrere) der/die mir bei der Lösung des Problems helfen kann/können und will/wollen?

Gruß
Joachim

463 Beiträge seit 2009
vor 4 Jahren

Hallo JoachimW,

es muss die Z21 sein!
Es ist die einzige Zentrale, die meine Bedürfnisse gänzlich abdeckt und sie ist vorhanden.

Bei Punkt #1 schriebst du von Steuerung der Beleuchtung - klar geht dies mit dem Z21 auch, aber im Endeffekt brauchst du nur eine Relaisteuerung dafür.

An großen Aufgaben kann man wachsen! Das Projekt wird ganz sicher von mir verwirklicht, egal wie lange es dauert, außer jemand anderes macht es in der Zeit oder es gibt eine andere Lösung für das Problem, wobei ich die Chancen hierfür aber als geringer als minimal ansehe.

Richtig - aber auch verzweifeln. Aber wie ich sehe hast du deine Meinung und bist nicht bereit über den Tellerrand zu blicken. Ich wünsche dir viel Glück mit dem Z21 (ich kenne einige die gerade deinen Punkt #1 nicht mehr mit dem Z21 machen) - und hoffe, dass der Z21 auch nach dem nächsten Firmwareupgrade dann noch mit deiner Entwicklung zusammenarbeitet (auch hier kenne ich einige Negativbeispiele).

Viel Erfolg!
Stefan

J
JoachimW Themenstarter:in
8 Beiträge seit 2020
vor 4 Jahren

Mit Relais kenne ich mich leider noch weniger aus.

Mir geht es darum von einem Ort (dem PC) die Abläufe mit einem Knopfdruck zu starten, stoppen und pausieren.

Ein Fahrplan beginnt um 4:30 Uhr Modellzeit, kurz vor Sonnenaufgang. Die Straßenbeleuchtungen sind eingeschaltet und der eine oder andere Anwohner steht auf und macht sich fertig, um zur Arbeit zu gehen. Er schaltet das Licht im Bad an, dann in der Küche und danach geht er nochmals ins Bad. Vielleicht aber auch nicht, oder er muss nochmals heute ins Wohnzimmer, um seine Aktentasche zu holen, die er gestern dort abgelegt hat. Irgendwann geht er zur Arbeit.
Morgen, ein neuer Tag beginnt und er ist 5 Minuten später dran und hat seine Arbeitstasche dieses Mal - wie normalerweise üblich - in der Küche liegen. Ins Bad muss er auch nur einmal.
Am nächsten Tag ist er krank und geht gar nicht zur Arbeit, sondern verbringt - aufgrund von Montezumas Rache - die meiste Zeit auf dem Klo.

Die Abläufe sollen zufällig sein, aber in einem gewissen (Zeit-)Rahmen inkl. der Abhängigkeiten zu anderen Zufällen. Das soll das Programm verwalten. Den Code dafür bekomme ich hin.

Währenddessen vergeht natürlich ein Tag mit Sonnenaufgang, Mittagszeit, Abendrot und Sonnenuntergang. der morgige Tag ist eher bewölkt und übermorgen ist Regen angesagt.

Die Anlagenbeleuchtung hierzu wird über DMX geregelt, aber die Werte, wann welches Licht anzugehen hat und wie intensiv, kommen wieder vom Programm. Auch den Code hierfür bekomme ich hin.

Während die Menschen ihren gewohnten Tagesablauf nachgehen, steht die Welt nicht still bzw. um uns herum ist es nicht still. Im Hafen schwappt das Wasser gleichmäßig beruhigend an das Ufer, die Vögel fangen an zu zwitschern und beruhigen sich erst nach Sonnenaufgang wieder. Die Möwen haben zwischendurch immer zu meckern und der Hahn muss beim Bauern auf dem Misthaufen morgens auch noch bekunden, dass er da ist und das sagen hat. der Verkehr kommt ins rollen Hunde bellen vor dem Bäcker und warten auf ihr Herrchen. Die Kühe werden unruhig und wollen gemolken werden, während gleichzeitig die Turmuhr der Kirche die volle Stunde schlägt und der Bauer mit seinem Trecker dem Ruf der Kühe folgt. Abends zirpen bei einem schönen Sommerabend die Grillen und natürlich sind die Möwen nie ruhig.

Jeder Tag ist anders und somit ist ein ähnlicher zufälliger Ablauf mit Abhängigkeiten und Zeitrahmen und Lautstärken zu bestimmen. Den Code hierfür bekomme ich auch hin.
Genauso wie ein GUI.

...nur beim Datenaustausch zwischen Z21 und DMX-Controller und dem Programm tue ich mich schwer.

Der Modelltag (von 4:30 Uhr bis 21:00 Uhr) läuft dabei ca. 4 Stunden Realzeit. Pausen (mit einem Knopfdruck) sollte ebenso möglich sein, wie der Neustart (mit einem Knopfdruck) oder ein Stopp.

Geht das alles mit Relais?
Auch die DMX-Ansteuerung?
Wie hoch wäre der Aufwand?

An großen Aufgaben kann man wachsen! Das Projekt wird ganz sicher von mir verwirklicht, egal wie lange es dauert, außer jemand anderes macht es in der Zeit oder es gibt eine andere Lösung für das Problem, wobei ich die Chancen hierfür aber als geringer als minimal ansehe.

Richtig - aber auch verzweifeln. Aber wie ich sehe hast du deine Meinung und bist nicht bereit über den Tellerrand zu blicken. Ich wünsche dir viel Glück mit dem Z21 (ich kenne einige die gerade deinen Punkt #1 nicht mehr mit dem Z21 machen) - und hoffe, dass der Z21 auch nach dem nächsten Firmwareupgrade dann noch mit deiner Entwicklung zusammenarbeitet (auch hier kenne ich einige Negativbeispiele).

Natürlich bin ich bereit über den Tellerrand zu schauen, aber die Z21 ist für meine Bedürfnisse am besten geeignet. Ich benötige eine Zentrale, die LocoNet (T) kann, die die Benutzung von Roco WLAN Multimäusen und Smartphones als Handregler gestattet.
Es ist die einzige - mir bekannte - Zentrale, die alles vereint. Bei anderen Zentralen müsste ich Klimmzüge machen, um alles anzuschließen.
Warum 17 Geräte (übertrieben dargestellt) nutzen, um das zu erreichen, was ich mit einem Gerät auch erreichen kann?
Es macht auch keinen Sinn eine andere (zweite zusätzliche) Zentrale zu nutzen, um das Projekt anzugehen, da die Z21 - auch nach einem Update der Firmware - problemlos ein paar Decoder schalten können sollte und sie mit LAN moderner daherkommt als Zentralen mit RS232-Schnittstelle.

Das Programm soll nichts weiter können als Licht und Geräusche automatisch zu steuern. Es soll nicht die Steuerung der Züge übernehmen oder mit Rückmeldern und GBS kommunizieren oder sonstiges Gedöns machen.

Gruß
Joachim

16.806 Beiträge seit 2008
vor 4 Jahren

Warum 17 Geräte (übertrieben dargestellt) nutzen, um das zu erreichen, was ich mit einem Gerät auch erreichen kann?

Ich will keine Diskussion starten - denn die ist schon im Gange.

Aber allgemein dazu:
Wenn Du alles auf ein Gerät fokussierst, dessen Eigenschaften Du nicht in der Hand hast, hast Du immer eine große Abhängigkeit.
Wenn der Hersteller irgendwas ändert, was dann mit Deinem Zeug nicht mehr passt, dann hast Du ein Problem.
Viele Geräte mag kurzfristig die Komplexität eventuell erhöhen; das Risiko der Abhängigkeit lässt sich damit aber streuen.
Daher ist es ja nach Risiko und Projekt durchaus berechtigt lieber auf verschiedene Bausteine zu setzen als auf einen mächtigen Monolithen. Monolithen bei Hardware und bei Software haben viele Nachteile, die gut überlegt sein sollten.
Und Stefan Zufolge ist das genau bei diesem Gerät ja schon negativ passiert, weswegen solche Tipps eigentlich enorm wichtig sind.

Was Stefan (und hier hast Du wohl einer der wenigen im Forum gefunden, die sich auch noch mit dem offenbar ein wenig auskennen, wovon Du sprichst) Dir sagt ist nicht, dass Du die Idee aufgeben sollst, sondern dass es offenbar mit Deinem Lösungsweg in der Vergangenheit bereits Probleme gab.
Er wollte Dich also darauf hinweisen, dass Du Dir eventuell nochmal Zeit für Überlegungen nimmst.

Fragen wie "Geht das alles?", "Wie hoch ist der Aufwand" wird Dir hier niemand pauschal beantworten können.

L
136 Beiträge seit 2015
vor 4 Jahren

Hallo JoachimW,

Wie Du ja schreibst, sollen Abläufe automatisiert werden.

Warum gehst Du nicht den Weg über eine PLC (SPS) die Deine Probleme abdecken kann und auch dafür gedacht ist.

Auf dem Markt gibt es haufenweise Geräte, welche Visualisierung, Zeitschaltprogramme, Trends, Alarme etc. abdecken.
Diese bieten auch Schnittstellen aller gängigen Bus-Technologien an oder nimm ein DMX-Gateway.

Gruss Lhyn

5.657 Beiträge seit 2006
vor 4 Jahren

Gibt es hier vielleicht jemanden (oder mehrere) der/die mir bei der Lösung des Problems helfen kann/können und will/wollen?

Nun ja, das ist der Sinn eines Forums. Aber du muß schon erklären, wie wir dir weiterhelfen können. Geht es dir um die Beratung bezüglich Software oder Hardware, oder willst du die Software selbst umsetzen?

ich habe ein riesiges Problem, welches ich in großen Teilen nicht selbst lösen kann, da meine Erfahrung in C# leider nicht ausreicht.

Ich kann keine Frage bezüglich C# erkennen. Wo genau kommst du nicht weiter, und was hast du bereits probiert?

ich weiß nicht, ob ich hier in diesem Unterforum richtig bin, wenn nicht, könnte das ein Admin netterweise verschieben.

Das Forum "Projekte" gibt es für die "Vorstellung von eigenen Projekten zur freien Benutzung durch die Community, Suche nach Projektmitarbeitern für Community-Projekte". (Lizenzbedingungen für die Projekte / Spezielle Regeln für Projekte-Threads)

Ich hab das Thema ersteinmal in das Grundlagen-Forum verschoben, evtl. würde auch "Rund um die Programmierung" passen (wenn es um die Programmierung geht), oder "Smalltalk" (wenn es um die Beratung bezüglich Hardware bzw. Software geht).

Siehe auch [Hinweis] Wie poste ich richtig?

Weeks of programming can save you hours of planning

J
JoachimW Themenstarter:in
8 Beiträge seit 2020
vor 4 Jahren

Hallo Abt,

Die Meinung von Stefan teile ich nicht, akzeptiere sie aber.
Die Fragen bezüglich einer Umsetzung mit Relais waren eher rhetorischer Natur.
Es macht keinen Sinn tausende von Relais zusammenzuschalten, um elektromechanisch etwas zu erreichen was mit einigen Codezeilen bei vorhandener Hardware bedeutend einfacher geht. Auch was eine Wartung angeht.

Gruß
Joachim

J
JoachimW Themenstarter:in
8 Beiträge seit 2020
vor 4 Jahren

Hallo Lhyn,

auch hierin sehe ich keinen Sinn die vorhandene Hardware, die ja dennoch benötigt wird, auszutauschen bzw. zu ergänzen und mit einer ganz anderen Sprache das Rad neu zu erfinden.

Gruß
Joachim

J
JoachimW Themenstarter:in
8 Beiträge seit 2020
vor 4 Jahren

Gibt es hier vielleicht jemanden (oder mehrere) der/die mir bei der Lösung des Problems helfen kann/können und will/wollen?

Nun ja, das ist der Sinn eines Forums. Aber du muß schon erklären, wie wir dir weiterhelfen können. Geht es dir um die Beratung bezüglich Software oder Hardware, oder willst du die Software selbst umsetzen?

Die Hardware ist fix, da ändert sich nix.
Ich möchte die Software selbst umsetzen bzw. bräuchte Hilfe bei der Kommunikation der Geräte (PC <-> Z21 und PC <-> DMX-Controller). Die Geräte sind über LAN miteinander verbunden.
Die Links in Eröffnungsbeitrag weisen auf das Protokoll der Z21 hin und eine leider nur ansatzweise vorhandene Klasse zur Kommunikation mit der Z21.

Diese Klasse müsste überarbeitet bzw. optimiert werden.
Das wäre der erste Schritt und würde schon dazu führen, dass zwei der drei Punkte abgearbeitet werden könnten.

Das ist der Punkt bei dem ich an meine (bisherigen) Grenzen stoße, da ich mich weder mit UDP noch mit XOR-Berechnungen auskenne.

Hierfür suche ich Hilfe.

ich habe ein riesiges Problem, welches ich in großen Teilen nicht selbst lösen kann, da meine Erfahrung in C# leider nicht ausreicht.

Ich kann keine Frage bezüglich C# erkennen. Wo genau kommst du nicht weiter, und was hast du bereits probiert?

Wie oben geschrieben, suche ich zunächst jemanden, der sich der oder einer Z21-Klasse annimmt, die eine saubere Kommunikation zwischen PC und Z21 ermöglicht.

Bisher habe ich mir die vorhandene Z21-Klasse und die Z21-LAN-Protokoll Spezifikationen kurz angeschaut und die vorhanden Fragmente einmal kurz getestet. Die Klasse selbst funktioniert ansatzweise, aber eben nur ansatzweise. Eine rudimentäre Kommunikation ist möglich. Die Klasse ist von 2015 und vielleicht sind die von Stefan angesprochenen Veränderungen ggf. ein Grund, warum sie nur ansatzweise funktioniert. Vielleicht!
Tiefer bin ich nicht eingestiegen, da ich aufgrund meiner Defizite zur XOR-Prüfsummenberechnung und UDP erst diese Hürden nehmen müsste.

Gruß
Joachim

463 Beiträge seit 2009
vor 4 Jahren

Die Meinung von Stefan teile ich nicht, akzeptiere sie aber.
Die Fragen bezüglich einer Umsetzung mit Relais waren eher rhetorischer Natur.

Hallo Joachim,

damit kann ich leben, du verstehst aber sicher, dass ich nicht Zeit in etwas investiere was nur rhetorischer Natur ist.

Noch ein kleiner Hinweis: Du wirst um ein bzw. mehrere z.B. Digikeijs DR4050 nicht rumkommen um deine Lichter anzusteuern. Aber wie gesagt, mach deine eigenen Erfahrungen (vor allem mit Firmwareupdates - und damit auf einmal geänderte Schnittstellen um 3rd Party Anbieter wieder auszusperren) und ich bin mir sicher in ein paar Jahren wirst auch du deine Meinung dazu geändert haben 😃 Zur Steuerung der Züge ist das Z21 perfekt - für alles andere gibt es besere und günstigere Alternativen.

Ich wünsche dir alles Gute mit deinem Projekt!

Viele Grüße
Stefan

463 Beiträge seit 2009
vor 4 Jahren

Wie oben geschrieben, suche ich zunächst jemanden, der sich der oder einer Z21-Klasse annimmt, die eine saubere Kommunikation zwischen PC und Z21 ermöglicht.

Es wird dir keiner only for fun hier eine Schnittstelle entwickeln. Der Aufwand für eine saubere Implementierung schätze ich (inkl Dokumentation) auf mindestens 5-8 Manntage. Der normale Tagessatz liegt bei ca. 800-1.200€...

J
JoachimW Themenstarter:in
8 Beiträge seit 2020
vor 4 Jahren

Hallo zusammen,

es tut mir leid, dass ich hier so dumpf reingepoltert bin.

Vielen Dank für die zum Teil aufschlussreichen Denkansätze.
Ich werde mein Glück bei der Umsetzung allein versuchen.

Gruß
Joachim

S
25 Beiträge seit 2014
vor 4 Jahren

Hi Joachim,

ich hab mir mal den Thread durchgelesen und muss sagen es fiel mir erstmal schwer zu verstehen was du möchtest bzw wo das Problem ist. Ich habs jetzt folgendermaßen verstanden: Du hast die Zentrale Roco Z21 und hast für diese eine C# Klasse gefunden. Fir Klasse funktioniert zwar irgendwie aber nicht 100 % zufriedenstellend. Die Frage ist was funktioniert nicht genau bei Kommunikation sprich was ist deine Erwartungshaltung und was ist der Ist Zustand. Evtl auch den Code posten wie du die Klasse getestet hast evtl liegt der Fehler in deiner Implementierung.

Generell wirst du in Programmierforen egal ob hier oder stackoverflow, etc. Nie jemand finden der einfach Just4fun dir eine Komplexe Aufgabe erledigt. Es ist ja auch ein Forum und keine Jobbörse. Hier gehts mehr darum bei Fragen, Problemenen etc. Hilfestellung zu bekommen. Gute Hilfestellung kann aber nur erbracht werden, wenn du deine Anforderungen konkretisiert, deine bisherigen Ergebnisse teilst und auch sagst was bei deiner Lösung passiert sprich wo knallts. Nur so können entsprechende Lösungen gefunden, disktuiert und ausgetauscht werden

J
JoachimW Themenstarter:in
8 Beiträge seit 2020
vor 4 Jahren

Hallo Soier,

ich habe anscheinend eine falsche Erwartungshaltung gehabt, aber dennoch hat mir diese kleine Diskussion viel gebracht. Mehr als erwartet!

Ich habe gestern angefangen die Klasse zu überarbeiten und zu vervollständigen und mich mit XOR angefreundet und die Punkte 1 und 3 soweit schon rudimentär abgearbeitet. Die Kommunikation zwischen PC und Z21 klappt und der Code zur Automatisierung ist ebenfalls weitgehend fertig.

siehe https://www.youtube.com/watch?v=H8RrHuGo9VM&feature=youtu.be

Jetzt folgt noch das "Aufhübschen", Testen und Dokumentieren. Danach geht es mit der ArtNet-Schnittstelle los.

Gruß
Joachim

463 Beiträge seit 2009
vor 4 Jahren

Naja - das heißt du hast kein Problem mit C# gehabt, du hast, um es ganz deutlich zu sagen, einen Dummen gesucht der für dich die Arbeit macht... Sorry, aber das ist in meinen Augen unterste Schublade.

16.806 Beiträge seit 2008
vor 4 Jahren

Denke er hat's verstanden Stefan; kein Grund ihm nun noch mehrfach gegen das Knie zu kicken 😉