Digitales Stellpult
Damit ein digitales Stellpult dargestellt werden kann, braucht es einerseits eine Software die so ein Stellpult darstellen kann und andererseits Echtzeit-Daten die von der Steuerung dieser Software zur Verfügung gestellt werden können. Dazu noch viel Zeit, Kaffee und Experimentierfreudigkeit und schon hat man sein eigenes Stellwerk gebastelt. Bei uns wurde das digitale Stellwerk wie folgt erstellt:
Modbus
Die SPS hat ein MODBUS Interface. Dies ist ein Datenbus, der vor allem in der Automatisierungstechnik viel verwendet wird und wurde bereits 1979 erfunden. Modbus hat sich über die Jahre zum "De Facto Standard" in der SPS Kommunikation entwickelt und wird unabhängig vom Hersteller stark verbreitet unterstützt. Dies ist der Hauptgrund warum wir dieses Protokoll verwenden.
MQTT
MQTT steht für Message Queuing Telemetry Transport (MQTT) und ist ein offenes Nachrichtenprotokoll. Eine Stärke von MQTT ist die Übertragung von Nachrichten zwischen Geräten, trotz hoher Verzögerungen oder beschränkter Netzwerke. Deswegen wird es oft für das Internet of Things verwendet. Bei MQTT gibt es einen Broker bei dem sich Clients für bestimmte Informationen registrieren können (wie ein Zeitungsabo Rubrik «Sport»). Der Broker ist der Einzige im System der alle Informationen hat und verwaltet. Er verteilt somit die Informationen an die bei ihm registrierten Clients.
Clients können Informationen hierarchisch eingestuft zustellen. Der Brocker verteilt diese Informationen an alle Clients die sich für diese Kategorie registriert haben.
Bei uns hat dies folgende Vorteile: Sobald die Daten per Modbus dem MQTT Broker zur Verfügung gestellt werden, können beliebig viele Clients diese Informationen abrufen ohne, dass die Steuerung sich aufgrund der Zugriffe verlangsamt. Die Steuerung hat nur eine Verbindung zum MQTT Broker. Weiter ermöglicht der MQTT Broker auch Anwendungen in der Zukunft (z.B. Abfahrtstafel im Bahnhof).
Node-Red
Node Red ist ein grafisches Programmiertool. Es funktioniert im Baukastenprinzip und wird oft von technisch interessierten Laien für das Programmieren von Internet of Things Anwendungen verwendet. Dies ist für uns das perfekte Tool, da es leicht verständlich ist, Bibliotheken für Modbus / MQTT sowie viele Hilfe-Foren im Internet bestehen und somit auch von mehreren Mitgliedern ohne grosse Programmiererfahrung (dafür mit einer Affinität zu logischem Denken) gewartet werden kann.
In Node Red läuft unser MQTT Broker. Die Daten werden per Modbus von der SPS abgerufen und für die Verwendung in Rocrail (MQTT Client) aufbereitet. Für jede Signallampe, Weichenantriebsspule, Taster, Rückmelder, etc. besteht eine eigene Programmierung.
Rocrail
Das Gleisbild wird durch die Software Rocrail dargestellt. Diese kann sich bei einem MQTT Broker als Client registrieren. Rocrail wird normalerweise für das Steuern von Modelleisenbahnen (z.B. H0) verwendet und ist Open Source. Die Schnittstelle und die Gleisbild typischen Elemente stehen dank Rocrail zur Verfügung. So mussten wir nur einen Gleisplan mit allen Steuerungselementen die in der Realität bestehen zeichnen und alle Elemente so beschriften, dass diese mit dem Server (MQTT Broker) synchronisiert werden können.
Bei uns kommen entgegen der Modelleisenbahn mehr sicherheitsrelevante Aspekte zum Tragen: Eine sich wendende Weiche unter einem fahrenden Zug hätte bei uns gravierendere Folgen als bei einer H0 Anlage.
Aber gerade hier zeigt sich die Stärke von unserem System: Die SPS läuft in Echtzeit und hat die volle Kontrolle über die Anlage. Rocrail kann nur Informationen abrufen und klar definierte Aktionen auf der SPS ansteuern. Was erlaubt ist und was nicht bestimmt die SPS. So kann jederzeit ein sicherer Betrieb gewährleistet werden. Ein wenden einer Weiche unter dem Zug ist dadurch unmöglich, da dies einerseits durch eine Verriegelung in der Programmierung der SPS verhindert wird und es andererseits keine Schnittstelle zum Stellen von einzelnen Weichen von der SPS zum MQTT Broker und somit zu Rocrail gibt.
Sobald die Hardwareinstallation abgeschlossen ist, werden wir dieses Stellwerk testen. Sollte es so funktionieren wie ausgedacht, wird es auch den Programmiereren der Steuerung sehr helfen. Werden doch alle Weichenstellungen, Signale, Blockbelegungen, gezählte Achsen, etc. live dargestellt. So kann man bequem vom Arbeitsplatz das Programmierte testen, ohne jedes mal auf der Anlage zu den Signalen laufen zu müssen :-)
Wir werden berichten, ob es funktioniert....