Das HCS2-Projekt – Teil 1

1. Oktober 2010

CPU des HCS1-Projekts von 1998“HCS” steht für “Home Control System”, was ich als neudeutsche Bezeichnung für den plumperen Begriff “Haussteuerung” verwende. Wie komme ich plötzlich dazu, etwas über Haussteuerungen zu schreiben – und wieso deutet die Überschrift mehrere Teile an?

Nun, zu allererst sicherlich, weil das Thema durch unsere anstehende Umsiedlung wieder einmal sehr aktuell ist. Und zum Zweiten, weil es nicht das erste Mal ist, dass ich ein solches Projekt durchführe. Man verliert Häuser schließlich nicht nur durch Braunkohlebagger ;-) Daher rührt auch der Name “HCS2″.

Ich möchte meine – schon recht fortgeschrittene Arbeit – hier ein wenig dokumentieren, da dies einerseits zu unserer momentanen Phase der Vorbereitung auf die Umsiedlung passt, und andererseits im Internet bereits einige Leute in diversen Foren über ihre Eigenbauprojekte in dieser Richtung diskutieren. Vielleicht findet hier der Eine oder Andere Anregungen oder Lust, so etwas ebenfalls umzusetzen. Aus diesem Grund finden die Artikel auch ein Zuhause auf meiner persönlichen Seite und nicht auf dickbusch.de, da es mehr eine Dokumentation auf technischer Ebene wird, als ein permantenter Bezug zur Umsiedlung.

Doch vorher noch ein paar persönliche Anmerkungen: Ein solches Projekt lebt zum großen Teil durch die Unterstützung durch das unmittelbare Umfeld. Da wäre allen voran meine wunderbare Frau Claudia, die mit viel Geduld und vor allem auch technischem Interesse die vielen Stunden Arbeit unterstützt. Des Weiteren habe ich durch meine Arbeit auch Zugriff auf eine Hardwareplattform und Gehäuse, was mir diesmal viel Arbeit bezüglich der Hardwareentwicklung in den eigenen vier Wänden gespart hat. Durch die Verwendung der gleichen Plattform ergeben sich große Synergieeffekte, so dass die Projekte in ‘meiner’ Firma stark von meinem privaten HCS2-Projekt profitieren und umgekehrt.

Aus diesem Grund werde ich hier auch keine Schaltpläne oder Teile des Programmcode veröffentlichen, der auch in unseren dienstlichen Produkten verwendet wird.

Wie alles begann … oder: HCS1

Bereits als Jugendlicher baute und entwickelte ich diverse elektronische Gadgets, meist in Richtung Lichteffekte und Lichtsteuerungen für das heimische Zimmer oder später auch für kleinere Mobileinsätze. Den Höhepunkt erreichte diese Richtung mit dem Bau des – inzwischen nicht mehr existenten – Partykellers “Clubhouse”. Allerdings träumte ich schon zu Jugendzeiten von einem “intelligenten Haus”, in dem alle Schaltvorgänge softwaregesteuert ablaufen, anstatt “fest verdrahtet” zu sein … noch bevor professionelle Systeme wie EIB, LON oder KNX aufkamen.

Als ich 1998 mit meiner ersten Frau baute, konnte ich diese Vorstellungen dann in die Tat umsetzen – HCS wurde geboren. Zwar gab es inzwischen schon Gebäudeautomatisierungssysteme, aber einerseits waren diese sehr teuer, und andererseits forderten diese nicht die Lust am “Selbermachen” und die Möglichkeit, sich die Steuerung so zu gestalten, wie man sie gerne hätte – und neue Funktionen bei Bedarf einfach selber einbauen zu können.

Schaltschrank mit 2 darunter befindlichen IOUsDas HCS1 entstand damals parallel zur Plaungs- und Bauphase mehr in Nächten – ein Fehler, den ich heute nicht noch einmal mache. Daher läuft die Arbeit am aktuellen HCS2, welches von Grund auf komplett neu programmiert wird, auch bereits seit Weihnachten 2009 … ganz entspannt, wenn einmal etwas Zeit und Lust dafür da ist, und ohne Druck. Seinerzeit habe ich auch die Hardware komplett selber entwickelt, was zusätzliche Arbeit bedeutete (dafür war die Software nicht so umfangreich wie bei HCS2).

Das Grundkonzept sah damals eine zentrale Steuerung (CPU) und bis zu 16 Unterstationen (IOU) vor, von denen jede 24 digitale Eingänge, 24 digitale Ausgänge und 8 Analogausgänge (8 Bit, 0-10V) zur Ansteuerung von Dimmern besaß. Im gesamten Haus waren 7 IOUs verbaut, was jeweils 168 Ein- und Ausgängen gleichkam. CPU und IOUs waren untereinander über einen RS485-Bus verbunden, über welchen der Datenaustausch mit 38400 bit/s stattfand. HCS1 verwendete ein striktes Pollingkonzept: Jede IOU wurde zyklisch stets von der CPU abgefragt, wobei eine Gesamtzykluszeit ca. 200ms erreicht wurde. Die Zykluszeit ist im Hinblick auf die Reaktionszeit des Systems wichtig – schließlich soll nicht eine zu lange Zeit zwischen dem Drücken des Lichtschalters und der Reaktion z.B. der Beleuchtung vergehen. Ein Maximalausbau von 16 IOUs hätte nach heutigen Erkenntnissen diese Zykluszeit schon in den Grenzbereich getrieben – ein Umstand, der bei der Entwicklung des HCS2 Berücksichtigung findet.

Im Wesentlichen bestand ein Zyklus aus 3 für den Steuerablauf wichtigen Elementen:

  • Einlesen der Zustände der Eingänge von den IOUs
  • Verarbeiten der Eingänge in der APS (Ablaufprogrammsteuerung) zusammen mit sonstigen Funktionen wie Software-Schaltuhren, Treppenlichtschaltern, Dimmern etc.
  • Ausgabe der hieraus resultierenden Ausgangswerte an die IOUs

Aus Performancegründen wurden die Schritte 1 und 3, die Kommunikation zu den IOUs, in einem optimierten Protokoll zusammengelegt: Im Aufforderungstelegramm (Polling) wurden gleich die Ausgangswerte übertragen, das Antworttelegramm der IOU enthielt die Eingangswerte, Informationen über kurz oder lang gedrückte Taster etc. Somit konnte – im Vergleich zu SCADA-Protokollen wie MODBUS oder IEC-60870-101 – das getrennte Übertragen von Schreib- und Leseoperationen eingespart werden.

Die IOUs haben hier schon lokale Intelligenz übernommen: Neben dem aktuellen Zustand der Eingänge haben sie erfasst, ob ein Eingang kurz oder lang aktiv ist bzw. war. Diese Zustände wurden ebenfalls direkt an die CPU übermittelt, so dass dort erhebliche Rechenzeit und Ressourcen durch die Vorverarbeitung in den IOUs eingespart wurde. Apropos Ressourcen: Zum Schluß dieses Teils eine kurze technische Zusammenfassung des HCS1-Projekts:

HCS-CPU1 (Realisierung 1999):

  • Prozessor: Motorola MC68HC812A4 mit 16MHz
  • Speicher: 48k Flash und 16k RAM. Das Flash ist aufgeteilt in 32k Speicher für die Firmware und 16k (getrennt lösch- und beschreibbar) für das APS
  • Zusätzlicher Speicher: 24k EEPROM zum Speichern der Konfiguration, Namen der Ein- und Ausgänge etc.
  • Schnittstellen: 1 x RS485 Systembus, 1 x RS232 zur Konfiguration / Programmierung
  • LCD-Display zur wechselweisen Anzeige der Betriebszustände
  • DCF-77-Decoder zur Zeitsynchronisation
  • Spannungsversorgung: 12V
  • Akku-Backup zum Halten der aktuellen Zustände bei Stromausfall

HCS-IOU1 (Realisierung 1999):

  • Prozessor: Motorola MC68HC812A4, single-chip-mode mit 4K EEPROM und 1K RAM, 16MHz
  • Zusätzlicher Speicher: 8k EEPROM zur Speicherung der Konfiguration (von der CPU übermittelt) und der Defaultwerte der Ausgänge (werden bei Ausfall der CPU automatisch angenommen)
  • Schnittstellen: 1 x RS485 Systembus
  • 24 binäre über Optokoppler getrennte Eingänge mit Kontroll-LED
  • 24 binäre Ausgänge (geeignet zur direkten Ansteuerung der Schütze) mit Kontroll-LED
  • 8 analoge Ausgänge 0-10V
  • Adresseinstellung über Lötbrücken
  • Spannungsversorgung: 12V

 

Die Zukunft: HCS2

Die Entwicklung für das neue Projekt wurde bereits im Dezember 2009 begonnen. Es sollte genug Zeit sein, die Steuerung in Ruhe in der knappen Zeit neben Job und Familie zu entwickeln. Den Fehler, in der Bauphase in den Nächten die Steuerung fertig zu entwickeln, wollte ich nicht noch einmal begehen.

Beim HCS2 handelt es sich um eine komplette Neuentwicklung auf einer aktuellen ARM-Plattform, die Vernetzung der einzelnen Einheiten erfolgt vollständig per Ethernet – und eine zweite CPU läuft im Hot-Standby mit, um bei einem eventuellen Ausfall der Hauptsteuerung sofort einzuspringen.

Ich werde die Serie in Kürze mit den Artikeln zum HCS2-Projekt fortsetzen, dann wohl auf unserer Umsiedlungsseite

Ein Kommentar zu “Das HCS2-Projekt – Teil 1”

  1. [...] ich ja schon hier vor 2 Jahren in einem Artikel geschrieben habe, erhält unser Haus eine intelligente Haussteuerung (HCS für [...]

Einen Kommentar schreiben

*