Forum: Mikrocontroller und Digitale Elektronik Redundante Steuerung aufbauen - wie am besten?


von Ithamar G. (antimon)


Lesenswert?

Ich habe vor, mir für meinen Serverschrank eine Steuerung aufzubauen,
mit der ich Lampen, Lüfter, usw. ein- und ausschalten kann.
Das Ganze soll einerseits per Mikrocontroller automatisch geschehen
(z.B. Temperaturregelung), aber auch manuell (dann halt keine Regelung
mehr, sondern nur Ein/Aus).

Der Grund dafür ist, dass ich die Schaltung immer erweitern möchte, und
wenn ich z.B. den µC neu programmiere oder neue Bauteile auf die Platine
löte, soll der Schrank trotzdem weiter gekühlt werden können - sonst
könnte ich ein Problem bekommen.

Genauso möchte ich aber auch die manuelle Steuerung um zusätzliche
Schalter/Taster erweitern können, der Schrank wird dann vom
Mikrocontroller überwacht und gesteuert.

Umgeschaltet zwischen Auto und Manuell wird über einen Schalter. Die
ganze Steuerungsgeschichte kann ich in ein 19" Gehäuse mit
Europa-Platinen-Einschüben bauen, so dass ich z.B. den µC auf eine
Platine baue, die manuelle Steuerung auf ne andere, die ich bei Bedarf
rausziehen kann.

Wie schaffe ich es aber, die einzelnen Geräte anzusteuern, dass quasi
beide Steuerungen (µC und Manuell) auf diese "zugreifen" können?

Wäre es sinnvoll, alle Sensoren/Aktoren über einen Bus anzusprechen,
und wenn ein Knoten entfernt wird (weil an dem gerade gebastelt wird
z.B.) übernimmt ein anderer dessen Aufgabe? Falls ja, was eignet sich
da am Besten? I²C? CAN?

Ich hoffe ich habe euch nicht zu sehr verwirrt, mir schwirren ziemlich
viele Ideen im Kopf rum, die zu bündeln ist nicht einfach...

Versuchen wir es noch einmal zusammenzufassen:
Es soll eine modulare Steuerung entwickelt werden, die aus einer
automatische (µC-)Steuerung besteht, und einer manuellen
(Schalter/Taster/?), beide sollen alternativ und unabhängig eingesetzt
werden können und ich möchte einzelne Baugruppen aus der
Gesamtschaltung entnehmen können, um diese zu erweitern.
Hat jemand sowas schon mal gemacht und Ideen wie ich das realisieren
könnte?

von Ithamar G. (antimon)


Lesenswert?

Ach ja, falls das von Bedeutung ist: Ich möchte einem MSP430F149
verwenden oder alternativ/zusätzlich einen Atmega(16|32|64|...).
Ist vermutlich wichtig, falls Busse ins Spiel kommen, wobei da die
Frage auftaucht, wie/ob dann die manuelle Steuerung noch so einfach
funktioniert.

von Philipp (Gast)


Lesenswert?

Wenn es zB nur um Lüfter usw handelt ist es ja sicher sinnvoll sie im
zweifelsfall laufen zu lassen anstatt sie auszumachen. Wenn es ganz
simpel machen willst würde ich sowas wie wired AND benutzen. So das
jedes deiner Module die Lüfter anschalten kann. AN sollte dann dominant
sein.

von Ithamar G. (antimon)


Lesenswert?

Eine andere Idee wäre noch, das Ganze per CAN-Bus zu realisieren. CAN
bekommen wir eh bald in einer Vorlesung + Praktikum, die Kenntnisse
könnte ich mir da aneignen.

Da mir aber die Erfahrung von CAN fehlt, die Frage an Euch: Seht Ihr
irgendwelche Nachteile bei meinem Vorhaben?

Ich könnte das wie folgt realisieren: Jeder Sensor/Aktor hat ein
CAN-Interface, die Aktoren haben eine eigene Logik drin, die dann
greift, wenn der Bus nicht aktiv ist. Bei Lüftern würde das eben
heissen: Alle Lüfter beim Start des Systems an, durch den Bus können
diese dann ausgeschaltet werden, wenn sie nicht benötigt werden. Eine
Art Watchdog könnte den Lüfter wieder anschalten, wenn eine Zeit lang
vom Bus kein Lebenszeichen gekommen ist.

Damit ich aber eine manuelle Steuerung neben der automatischen laufen
lassen kann, brauche ich sozusagen zwei "Master", die abwechselnd
aktiv sein können. Aber dazu brauche ich dann selbst bei der manuellen
Steuerung einen Mikrocontroller oder? Oder gibt es eine andere,
einfache Möglichkeit, Nachrichten über Schalter/Taster auf den Bus zu
legen (z.B. Lampe EIN/AUS)?

von Sandro (Gast)


Lesenswert?

Wiso nicht gleich Ethernet, dann könntest du deine lüfter auch von einem
Servers oder einem Anderen PC aus Steuern...

von Rahul D. (rahul)


Lesenswert?

CAN unterstütz ja nicht nur einen Master.
Die beiden Master müssten sich dann untereinander verständigen, wer die
Leitung hat. Wenn man der manuellen Steuerung einen Taster verpassen
würde "Manueller Betrieb", dann wäre die manuelle Steuerung quasi der
Ober-Master.
Der Automatik-Master würde dann nur arbeiten, wenn er die Freigabe der
manuellen Steuerung bekäme.
Ob beide Master über die gleiche Id arbeiten können, weiß ich jetzt
nicht mehr genau (müsste aber gehen). Dann müsste man nur Ids für die
Kommunikatipon zwischen den beiden Mastern verteilen.
Wenn das mit der gleichen Id geht (was mir inzwischen als ziemlich
sicher erscheint, weil man sont ja nur Punkt-zu-Punkt-Verbindungen
machen könnte bzw. nur einen Single-Master-Bus hätte) könnte man es im
Prinzip auch so machen, dass man als Absender-Adresse das 8.CAN-Byte
benutzt, und so die Sensoren und Aktoren herausfinden können, von wem
die Info kam. Muß aber nicht...

von Ithamar G. (antimon)


Lesenswert?

@Sandro: Ethernet wäre schön, aber zu kompliziert - so viel Ahnung hab
ich von dem Thema nicht, und die Zeit erst recht nicht - aber wenn ich
die mal habe wäre das ne nette Erweiterung. Vorerst werd ich die Daten
vom µC per serieller Schnittstelle an einen Server übermitteln, der die
dann weiterverarbeitet (per PHP-Weboberfläche, etc.)

@Rahul: Mir würde es schon langen, wenn beide die gleiche ID benutzen
könnten, denn es wird immer nur eine Steuerung aktiv sein. Und da ich
vermutlich selbst bei der manuellen Steuerung einen µC einsetzen muss,
kann ich ja z.B. einfach den einen µC vom Bus abklemmen und den anderen
dafür dran oder die Spannungsversorgung kappen.

Ist so ein Bus eigentlich Hot-Plug-fähig? Kann ich einfach während des
Betriebs Geräte an/abklemmen?

Mir gefällt die Idee immer besser, einzelne Steckkarten zu verwenden,
die dann untereinander über CAN verbunden sind, und die ich im Betrieb
auch auswechseln kann. Auf was muss ich da aufpassen? Könnte es beim
Ein/Ausstecken Probleme geben? Beim PC darf man die älteren Karten ja
auch nicht einfach während des Betriebs einbauen, oder hat das andere
Hintergründe?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.