Software
Es gibt es drei eigens entwickelte Programme (KDSM, KDT und KDS), welche für die Steuerung des Domes verantwortlich sind.
Frequenz
Die Domtechnik und Domsteuerung werden mit einer Grundtaktrate von 20 MHz betrieben.
Mikrochips
In Summe kommen 16 Mikroprozessoren, EEPROMs und andere Chips der Firma Mikrochip für unterschiedlichste Anwendungsfälle zum Einsatz.
Kommunikation
Wie bereits erwähnt, kommunizieren die Steuerungen über eigene Kommunikationsprotokolle miteinander. Diese Kommunikation ist notwendig, um eine Steuerung der Miniatur-Kathedrale (z. B. Schalten der Beleuchtung oder Glocken im Dom) zu ermöglichen. Um einen besseren Überblick über diesen Daten- und Informationsaustausch zu bekommen, finden Sie nun ein Kommunikationsdiagramm mit einer Erklärung der einzelnen Schritte.
Befehl
return | licht 1
Antwort
FA11 FB11 1C01 1C02
Befehl
licht 1 | on
Webserver
Der Webserver wiederrum wartet auf Befehle des Kölner Dom Steuerung Manager. Der KDSM schickt diese Befehle in Form von HTTP-Requests an die API. Das dazu verwendete Protokoll KDRTWP ermöglicht zum einen das Senden von Schaltzustände und Informationen des Domes an die Website, zum anderen können über diese Schnittstelle auch Daten abgefragt werden.API
Für Entwickler bietet der Kölner Miniatur-Dom eine Programmierschnittstelle (RESTful-API) an, die es ermöglicht, Schaltzustände und Informationen über den Dom auszulesen.
Protokoll
Für den Datenaustausch zwischen dem KDSM, Domtechnik (Zentralwarte) und Domsteuerung wurden eigene Kommunikationsprotokolle entwickelt.
Code
Insgesamt wurden 297.843 Zeilen Code in den Sprachen C, C#, Assembler, PHP, HTML, CSS und Javascript geschrieben.
Die Funktionsfähigkeit der Domsteuerung wird basierend auf dem Core-Betriebssystem und Kernel "KDS Beta v5.1.0" durch folgende Zusatzsoftware ergänzt:
| Software | Version | Name | Beschreibung |
|---|---|---|---|
| Betriebssystem | KDS Beta 5.1.0 | Kölner Domsteuerung kurz KDS | Beinhaltet das Core-Betriebssystem und Kernel. |
| Dateisystem | KFS Beta 5.1.0 | Kölner Domsteuerung File-System kurz KFS | Ist das Dateisystem des Betriebssystems KDS, welches an Microsoft FAT angelehnt wurde. |
| Interpreter | RUN Beta 5.1.0 | Running kurz RUN | Der Interpreter sorgt für den Ablauf der Kölner-Dom-Scripts kurz ".KDS". |
| Editor | MAP Beta 5.1.0 | Multi-Application-Program kurz MAP | Der Editor dient der Erstellung von Kölner-Dom-Scripts und Konfigurationsdateien. |
Nachdem die Domsteuerung
mit Strom versorgt und am PC mittels eines seriellen Kabels angeschlossen wurde, kann das
Terminalemulationsprogramm, in diesem Fall "TeraTerm" (es können auch andere Programme wie PuTTY
oder Microsoft HyperTerminal verwendet werden), gestartet und die Domsteuerung eingeschaltet
werden. Es erscheint bei erfolgreicher Durchführung der Bootscreen. In diesem Zustand initialisiert
die Domsteuerung die angeschlossenen Komponenten (z. B. Arbeitsspeicher, Ethernet-Controller,
Memory, Relais-Karten).
An der Gerätefront befinden sich LEDs, welche den Status des Systems anzeigen. Einige dieser LEDs
sind auch
auf der Schalttafel der Zentralwarte vorhanden:
| Name | Farbe | Beschreibung |
|---|---|---|
| STATUS | Grün | Leuchtet:
Zeigt an, ob die Einschubkassette mit der Backplane verbunden und mit 5V Gleichstrom versorgt wird. |
| BEREIT | Grün | Leuchtet:
Domsteuerung ist bereit, Daten zu empfangen und zu verarbeiten. Blinkt: Boot- und Initialisierungsvorgang, es werden die angeschlossenen Komponenten erfasst und auf ihre Funktionalität getestet. |
| BESCHÄFTIGT | Gelb | Leuchtet:
Zeigt an, ob die Domsteuerung aktuell Daten verarbeitet. In diesem Zustand können keine weiteren Daten gesendet oder empfangen werden. |
| STÖRUNG | Rot | Leuchtet:
Es ist ein Fehler oder Störung in der Soft- oder Hardware aufgetreten, welche zum Absturz der Steuerung geführt hat. |
| NETZWERK/API | Grün | Leuchtet:
Es ist eine Verbindung über die integrierte Schnittstelle (KDSCL) zwischen Domsteuerung und KDSM und/oder Domtechnik (Zentralwarte) aufgebaut. Dieses Licht symbolisiert eine aktive API Verbindung. Die Domsteuerung ist in diesem Zustand über das CLI (Commandline Interface) nur eingeschränkt zu bedienen. |
| ETH | Grün/Gelb | Leuchtet:
Es besteht ein aktiver Link zwischen Netzwerkschnittstelle der Domsteuerung und dem dahinter liegenden Netzwerkequipment. Blinkt: Es werden Daten zwischen der Domsteuerung und dem Netzwerk übertragen. |
| RE1 - 6 | Grün | Leuchtet:
Das angegebene Relais ist aktiviert. |
Das Programm "TeraTerm"
ist ein Befehlszeilenorientiertes Terminalemulationsprogramm. Es wird genutzt, um textbasierte
Anwendungen innerhalb einer grafischen Benutzeroberfläche verwenden zu können. Zu diesen Anwendungen
zählt auch die Domsteuerung. Terminals stammen aus
den Anfangszeiten der Computerindustrie und wurden als Datensichtgerät zur Kommunikation mit
Großrechnern
eingesetzt. Heute werden diese Programme hauptsächlich in der IT zur
Konfiguration von Netzwerkkomponenten (z. B. Switches, Router, Firewalls) und Server eingesetzt.
Auch ältere Anwendungen, welche noch auf IBM Hostsystemen basieren, werden über solche Programme
bedient.
In den unteren Abschnitten wird die Benutzeroberfläche der Domsteuerung und dessen Funktionsumfang
näher erläutert.
Der Bootvorgang bezeichnet das Hochfahren eines Computersystems. Während diesem Vorgang wird ein POST durchgeführt. Hierbei werden Systemkomponenten wie Arbeitsspeicher, Ethernet-Controller, Memory oder Relais-Karten initialisiert. Bei der Domsteuerung wird dieser Vorgang durch das Blinken der LED "Bereit" auf der Frontseite des Gehäuses und im Terminal durch den blauen Bootscreen mit dem Schriftzug "Domsteuerung 2021" signalisiert. Wurde der Test erfolgreich abgeschlossen, wird ein akkustisches Signal wiedergegeben.
Die Domsteuerung kann über verschiedene Wege gesteuert und konfiguriert werden. Sie verfügt über mehrere physikalische und softwarebasierte Schnittstellen. In diesem Abschnitt wird auf die Bedienung über das Commandline Interface (CLI) eingegangen, das in diesem Fall über die serielle Schnittstelle "TTL" zur Verfügung gestellt wird.
Wie es bei Befehlszeilenorientierten Benutzeroberflächen üblich ist, wird vor dem Cursor der sogenannte "Prompt" angezeigt. Dieser gibt dem Benutzer Auskunft über den aktuell verwendeten Modus. In jedem dieser Modi stehen unterschiedliche Funktionen zur Verfügung. So können beispielsweise im Modus "COM", Komponenten der Anlage (z. B. Licht oder Glocken) aktiviert bzw. deaktiviert werden.
Nachfolgend wird auf die in der Domsteuerung enthaltenen fünf Modi (Prompts) näher eingegangen:
| Prompt | Modus | Beschreibung |
|---|---|---|
| > | Globaler-Modus (S) |
Dieser Modus fasst alle wichtigen Systemoperationen der Domsteuerung zusammen. Der Modus wird automatisch nach dem Bootvorgang gestartet. |
| COM> | Konfigurationsmodus (Configuration/Communication - C) |
Im Konfigurationsmodus werden alle an den Relais angeschlossenen Komponenten geschaltet. Zudem steht hier ein vorkonfigurierter Glockenläutmodus zur Verfügung. |
| EDT> | Bearbeitungsmodus (Edit - E) |
Im Bearbeitungsmodus befindet sich das Programm "MAP", welches zum Editieren von Scripts und Konfigurationsdateien verwendet wird. Der Modus verfügt auch über den dazugehörigen Script-Interpreter "RUN". |
| MOD> | Vorkonfigurationsmodus (Mode - M) |
Der Vorkonfigurationsmodus erlaubt das Aufrufen von sechs zuvor zugeordneten Scripts. Auf den Schalttafeln der Warte bzw. im Programm KDSM können diese Modi über die Taster "Modus 1 bis 6" abgerufen werden. |
| REP> | Stör- und Grenzwertmeldemodus (Report - R) |
In diesem Modus werden durch Sensoren oder Melder Störungen im Betrieb (z. B. Ausfall eines Leitungsschutzschalters) erfasst und an den Schalttafeln der Warte bzw. im Programm KDSM dargestellt. |
In der unten angeführten Abbildung bekommen wir einen beispielhaften Einblick in die Benutzeroberfläche (CLI) und ihre Verwendung:
Die beispielhafte Darstellung des CLI gibt einen Einblick über die Handhabung. In der ersten Zeile wird der Prompt ">" mit dem Befehl "dir" angezeigt. Der Cursor erscheint immer dort und auch nur dann, wenn eine Benutzerinteraktion möglich ist. Die Ausgabe des Befehls "dir" gibt Auskunft über die auf der Domsteuerung gespeicherten Dateien. In der nächsten Zeile sehen wir den Befehl zum Laden von Dateien "load" aus dem Speicher. Diesmal gibt es eine Eingabeaufforderung im unteren Bereich des Fensters, in die wir den Dateinamen eingeben können. Mit der Tastenkombination ESC oder STRG + X kann die Eingabeaufforderung jederzeit beendet werden.
Die Domsteuerung verfügt über einen Befehlssatz von 256 Kommandos, die miteinander verknüpft werden können. Der charakteristische Aufbau dieser Befehle unterscheidet zwischen dem eigentlichen Kommando, Operationen, welche sich in die Untergruppen Zustände (z. B. "on", "off") und Funktionen (z. B. "do", "return", "fault") unterteilen, und Parametern, welche wiederrum die Untergruppen Laufwerken (z. B. "ra1:", "fl1:", "fl2:") und Werten (z. B. "250") bilden. Ähnlich wie bei der Microsoft PowerShell wird ein Befehl durch das Pipe-Symbol "|" an den nächsten Befehl weitergereicht.
Eingeteilt werden die Befehle in folgende Gruppierungen:
Als Beispiel dient hier der Befehl "licht 1 | on", der das Relais der Beleuchtung des Hauptschiffes 1 aktiviert. Dieser Befehl besteht aus dem eigentlichen Kommando "licht" und dem Zustand "on", welche durch das Pipe-Symbol "|" miteinander verbunden werden. Befehle können auch in verkürzter Form, wie zum Beispiel die Kurzform "li" für "licht", verwendet werden. Das Pipe-Symbol dient als Schnittstelle zwischen den einzelnen Kommandos und verbindet diese.
In unten angeführter Tabelle wird ein Einblick über die verfügbaren Befehle gegeben. Die Liste ist aufgrund der hohen Anzahl an Befehlen nicht vollständig:
| Befehl | Kurzform | Modus | Beschreibung |
|---|---|---|---|
| config | conf | S C | Wechselt vom Globalen-Modus in den Konfigurationsmodus. |
| edit | edit | S E | Wechselt vom Globalen-Modus in den Bearbeitungsmodus. |
| mode | mode | S M | Wechselt vom Globalen-Modus in den Vorkonfigurationsmodus. |
| report | rep | S R | Wechselt vom Globalen-Modus in den Meldemodus. |
| exit | exi | C E M R | Beendet Programme und/oder den jeweiligen Modus und wechselt in die Ansicht des Globalen-Modus. |
| return | ret | S C E M R | Gibt Befehle in ein für die Zentralwarte (Domtechnik) und KDSM interpretierbares Format (KDSCL) zurück. |
| reset | res | S | Startet die Domsteuerung neu. |
| clear | cle | S | Leert die Bildschirmausgabe des Terminals und setzt den Cursor inkl. Prompt an den linken oberen Bildschirmrand. |
| status | stat | S | Zeigt den Status aller angeschlossenen Komponenten (z. B. Brunnen, Audio, Licht, Glocken) an. |
| logging | log | S | Zeigt das Log des Systemzustands und der installierten Hard- und Software an. |
| help | help | S | Dient als Hilfestellung zur Verwendung des Systems. Dieser Befehl zeigt eine Liste der wichtigsten Befehle an. |
| memory | mem | S | Zeigt alle am I2C-Bus angeschlossenen EEPROMs mit ihrer zugewiesenen Adresse an. |
| format | form | S | Formatiert das angegebene Laufwerk und erzeugt das Dateisystem (KFS). |
| directory | dir | S | Zeigt die auf der Domsteuerung gespeicherten Dateien an. |
| link | lin | S | Verknüpft zum angegeben Laufwerk die angeführte Scriptdatei mit einem der sechs Modi. |
| load | load | S | Ladet vom angegebenen Laufwerk und Dateinamen das Script in den Arbeitsspeicher. |
| delete | del | S | Entfernt am angegebenen Laufwerk die angeführte Datei. |
| return | licht 1 | on | ret | li 1 | on | C | Schaltet das Relais des Hauptschiff 1 "licht 1" ein und gibt die Ausgabe in ein für die Zentralwarte (Domtechnik) und KDSM verständliches Format (KDSCL) zurück. |
| map | map | E | Öffnet den Script- und Konfigurationseditor "MAP". |
| run | run | E | Startet den Interpreter "RUN" und interpretiert die im Arbeitsspeicher enthaltene Kölner-Dom-Scriptdatei. |
| return | mode 1 | on | ret | mod 1 | on | M | Ladet das verlinkte Script zum "Modus 1", startet dieses mit dem Interpreter "RUN" und gibt die Ausgabe in ein für die Zentralwarte (Domtechnik) und KDSM verständliches Format (KDSCL) zurück. |
| return | ls 1 | fault | on | ret | ls 1 | fau | on | R | Löst die Störmeldung "Automatenfall 230V" aus und gibt die Ausgabe in ein für die Zentralwarte (Domtechnik) und KDSM verständliches Format (KDSCL) zurück. |
Ein umfgangreiches und ausgeklügeltes Hilfesystem sorgt auf der Domsteuerung für eine erleichterte Bedienung. Dabei wurde eine textbasierte Benutzeroberfläche bereitgestellt, welche es ermöglicht, mittels Tastenkombinationen die einzelnen Hilfeschritte der Steuerung abzurufen. Dem Benutzer wird der Aufruf dieser Hilfestellung grafisch am Terminal dargestellt. Der Aufruf geschieht durch die Taste F1.
Die Domsteuerung verfügt über verschiedene Zusatzsoftwares, welche im Betriebssystem "KDS Beta v5.1.0" integriert sind. Eines dieser Programme ist der Script- und Konfigurationseditor "MAP". Die sogenannten Kölner-Dom-Scripts kurz ".KDS" werden dazu verwendet, Komponenten der Domsteuerung wie beispielsweise Glocken oder Beleuchtung, als vordefinierten Ablauf ansteuern zu können. Um dieses Programm verwenden zu können, wechseln wir mit dem Befehl "edit" vom Globalen- in den Bearbeitungsmodus. Durch die Eingabe "map" öffnen wir den Editor.
Der Editor MAP ist ein Script- und Konfigurationseditor und verfügt über einen integrierten Syntax-Highlighter. Er ist von seiner Funktionalität angelehnt an den Editor "nano", welcher in Linux Distributionen zu finden ist. Beispielhaft wird hier ein Kölner-Dom-Script dargestellt, welches im unteren Code-Block näher beschrieben wird. In der Fußzeile finden wir die möglichen Tastenkombinationen zur Steuerung des Editors. Darüber sehen wir die Eingabeaufforderung (Dateiname:) zum Speichern der Datei, welche durch die Tastenkombination STRG + S ausgelöst wurde.
Das gezeigte Kölner-Dom-Script beinhaltet in der ersten Zeile einen Kommentar, welcher durch die Zeichen "/*" begonnen wird. Kommentare werden vom Interpreter "RUN" nicht interpretiert. In einer Schleife, welche mit dem Befehl "do" initialisiert wird, schaltet das Relais der "Glocke 1" zehn mal ein bzw. aus. Dies geschieht über die Zustands-Operation "on" und "off". Durch den Befehl "sleep" wid die Abarbeitung des Scripts, mit der angegebenen Zeit in Millisekunden, unterbrochen. Die Schleife wird jedoch nach dem ersten Durchlauf mittels "break" beendet. Der darauffolgende Befehl "beep" löst den in der Domsteuerung enthaltenen Summer aus. Zum Schluss beendet der Befehl "end" alle Relais der Glocken 1 bis 6.
Dieses Script kann sowohl auf der Domsteuerung, als auch im Programm KDSM mittels gleichem Befehlssatz über den Editor MAP erstellt werden:
/* Das ist ein Kommentar
do
glocke 1 | on
sleep 250
glocke 1 | off
sleep 500
break
until 10
beep
end