Powercommander: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(34 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{ProjektInfoBox | {{ProjektInfoBox | ||
|name | |name=PowerCommander | ||
|status | |status=stable | ||
|image | |image=Powercommander_geschlossen.jpg | ||
|description = | |description=Zentrales Steuergerät | ||
|author | |author=[[Benutzer:Pl4nkton|Pl4nkton]], [[Benutzer:Mati|Mati]], [[Benutzer:Asklepios|asklepios]], [[Benutzer:tixiv|tixiv]], [[Benutzer:siro|siro]] | ||
| | |version=1.00 | ||
|version | |update=02.01.13 | ||
|update | |platform=AVR (ATmega168/32) | ||
|platform | |license=Source: GPL / unbekannt | ||
|license | |download=[https://www.das-labor.org/svn/microcontroller/src-atmel/automatization2.0/PowerCommander c Code], [https://www.das-labor.org/trac/browser/microcontroller/src-atmel/automatization2.0/PowerCommander trac] | ||
|download | |tags=Labor Automation, | ||
}} | }} | ||
== Einleitung == | == Einleitung == | ||
Der Powercommander schaltet Relais im Sicherungskasten und kann somit (fast) das gesamte [[Hauptschalter|Labor an und ausschalten]] - natürlich abgesehen von Kühlschrank und Server. Ferner kann er die Lampen einzeln im Vortragsraum | Der Powercommander schaltet Relais im Sicherungskasten und kann somit (fast) das gesamte [[Hauptschalter|Labor an und ausschalten]] - natürlich abgesehen von Kühlschrank und Server. Ferner kann er die Lampen einzeln im Vortragsraum und Küche dimmen. Das ganze ist [[Weblabctrl2|bequem per Webinterface]] erreichbar für jeden der sich im Labor befindet. Das Gerät nimmt Steuerbefehle via [[Automatisierung des Labors|Canbus]] entgegen. | ||
Taster im Labor die aus der Gebäudeinstallation stammen sind mit dem Powercommander verbunden und schalten nicht direkt das Licht über einen Stromstoßschalter, sondern dient viel mehr als Eingabetaster für den Powercommander. So ist es möglich, mit den vorhandenen Schaltern das Licht zu dimmen. | Taster im Labor die aus der Gebäudeinstallation stammen sind mit dem Powercommander verbunden und schalten nicht direkt das Licht über einen Stromstoßschalter, sondern dient viel mehr als Eingabetaster für den Powercommander. So ist es möglich, mit den vorhandenen Schaltern das Licht zu dimmen. | ||
Das Gehäuse beinhaltet ein [http://de.wikipedia.org/wiki/Schaltnetzteil Schaltnetzteil], sowie zwei Mikrocontroller: Einen Atmega168 und einen Atmega32. Der Atmega168 ist hauptsächlich als IO Expander tätig und schaltet die Relais und Analogausgänge, während der Mega32 die CAN-Steuerung sowie Eingänge übernimmt und eine RGB LED zur Statusanzeige ansteuert. | Das Gehäuse beinhaltet ein [http://de.wikipedia.org/wiki/Schaltnetzteil Schaltnetzteil], sowie zwei Mikrocontroller: Einen Atmega168 und einen Atmega32. Der Atmega168 ist hauptsächlich als IO Expander tätig und schaltet die Relais und Analogausgänge, während der Mega32 die CAN-Steuerung sowie Eingänge übernimmt und eine RGB LED zur Statusanzeige ansteuert. So ist es möglich die Firmware des Mega32 zu ändern ohne das sich die Zustände der Ausgänge verändern - also das Licht oder der Strom ausfällt. | ||
Mit der Version 1.1 kann der Powercommander die Lampen in der Lounge per [[CAN]] einzeln oder in Gruppen schalten und dimmen, sowie deren aktuellen Status abfragen. Dies ermöglicht einen fehlerfreien Betrieb. Die aktuelle Lösung kann lediglich die Lampen "toggeln". Zusätzlich werden mit der neuen Version die Stromkreise dynamisch mit Relais geschaltet, was momentan nicht der Fall ist. Das Protokoll zum steuern der Lampen ist nun vereinheitlicht und sorgt in Zukunft für einfachere Steuerung. | |||
== Technische Dokumentation == | == Technische Dokumentation == | ||
Zeile 26: | Zeile 26: | ||
[[Datei:Powercommander_offen.jpg|thumb|right|Powercommander offen]] | [[Datei:Powercommander_offen.jpg|thumb|right|Powercommander offen]] | ||
Belegung der Schraubklemmen am Gehäuse | === Belegung der Schraubklemmen am Gehäuse === | ||
{| class="wikitable" border="1" cellspacing="0" * Echtzeit Verbrauchsmessung [[powermeter]]cellpadding="4" style="border-collapse:collapse;" | |||
{| class="wikitable" border="1" cellspacing="0" cellpadding="4" style="border-collapse:collapse;" | |||
! Klemme | ! Klemme | ||
! Belegung | ! Belegung | ||
Zeile 52: | Zeile 50: | ||
|- | |- | ||
| 5 | | 5 | ||
| | | 24 V Eingang + Power Good Erkennung | ||
| Power vom Netzteil im Sicherungskasten | | Power vom Netzteil im Sicherungskasten | ||
|- | |- | ||
Zeile 77: | Zeile 75: | ||
| 11 | | 11 | ||
| 24V Ausgang | | 24V Ausgang | ||
| | | Relais Hauptschütz (nicht Dauerstromsteckdosen + Licht Keller + Licht Bastelraum) | ||
|- | |- | ||
| 12 | | 12 | ||
| 24V Ausgang | | 24V Ausgang | ||
| | | Relais Klo Strom Licht + Steckdose | ||
|- | |- | ||
| 13 | | 13 | ||
| 24V Ausgang | | 24V Ausgang | ||
| | | Relais Tischsteckdose Lounge | ||
|- | |- | ||
| 14 | | 14 | ||
Zeile 91: | Zeile 89: | ||
| Relais Lounge Licht | | Relais Lounge Licht | ||
|- | |- | ||
| 15 | | 15| | ||
| 24V Ausgang | | 24V Ausgang | ||
| Relais Vortragsraum Licht | | Relais Vortragsraum Licht | ||
Zeile 117: | Zeile 115: | ||
| 21 | | 21 | ||
| 0-10V EVG Dimmer | | 0-10V EVG Dimmer | ||
| Lounge | | <s>Lounge</s> TODO: Zwischenraum | ||
|- | |- | ||
| 22 | | 22 | ||
Zeile 133: | Zeile 131: | ||
| 25 | | 25 | ||
| 5V Ausgang | | 5V Ausgang | ||
| Optotriak Tafel | | Optotriak Vortragsraum bei der Tafel | ||
|- | |- | ||
| 26 | | 26 | ||
| 5V Ausgang | | 5V Ausgang | ||
| Optotriak Beamer | | Optotriak Vortragsraum bei dem Beamer | ||
|- | |- | ||
| 27 | | 27 | ||
| 5V Ausgang | | 5V Ausgang | ||
| Optotriak Schrank | | Optotriak Vortragsraum bei dem Schrank | ||
|- | |- | ||
| 28 | | 28 | ||
| 5V Ausgang | | 5V Ausgang | ||
| Optotriak Flipper | | Optotriak Vortragsraum bei dem Flipper | ||
|- | |- | ||
| 29 | | 29 | ||
Zeile 152: | Zeile 150: | ||
|- | |- | ||
| 30 | | 30 | ||
| 230V Neutralleiter | | 230V Neutralleiter Lichtkreis | ||
| | | | ||
|- | |- | ||
| 31 | | 31 | ||
| 230V Phase | | 230V Phase Lichtkreis | ||
| Taster | | Taster Vortragsraum | ||
|- | |- | ||
| 32 | | 32 | ||
| 230V Phase | | 230V Phase Lichtkreis | ||
| Taster | | Taster Lounge | ||
|- | |- | ||
| 33 | | 33 | ||
Zeile 177: | Zeile 175: | ||
=== Übersicht === | |||
{| | {| | ||
| | | | ||
Oberere Buchse an der linken Seite: [[CAN|CAN]] | Oberere Buchse an der linken Seite: [[CAN|CAN]] | ||
Untere Buchse an der linken Seite: | Untere Buchse an der linken Seite: | ||
Belegung: | Belegung: | ||
1 GND ,2 GND ,3 | 1 GND ,2 GND ,3 EIA-232_RX ,4 EIA-232_TX ,5 GND ,6 GND ,7 ,8 ,9 24 V ,10 - | ||
'''Eingänge:''' | '''Eingänge:''' | ||
* 2 * | * 2 * 230 V - Taster Lounge, Taster Vortragsraum | ||
* 5 * | * 5 * 24 V - RCD Lichtkreis; RCD Hauptkreis; RCD Serverkreis; 24 V Power Good; Hauptschalter | ||
'''Ausgänge:''' | '''Ausgänge:''' | ||
* 8 * | * 8 * 24 V für die Relais | ||
* 6 * | * 6 * 0 V - 10 V für EVG Dimmer | ||
* 4 * | * 4 * 5 V für die Leuchtstofflampen im Vortragsraum | ||
| | | | ||
'''Spannungen:''' | '''Spannungen:''' | ||
* | * 24 V Relais | ||
* | * 5 V TTL µC | ||
* | * 12 V CAN - Anhebung auf 24V ist geplant | ||
* | * 230 V Eingänge | ||
Zeile 215: | Zeile 215: | ||
* 2 x Buchse; CAN, EIA232 | * 2 x Buchse; CAN, EIA232 | ||
|} | |} | ||
=== Mikrocontroller I/O === | |||
{| | {| | ||
| | | | ||
'''µC Ausführung - Mega168''' | '''µC Ausführung - Mega168''' | ||
* PB3 - | * Relais schaltet Spannung auf Lampengruppen/Steckdosen | ||
* Optotriac schaltet Lampen einzeln an/aus | |||
* Relais an + Optotriac an: PWM für Helligkeit | |||
{| class="wikitable" border="1" cellspacing="0" cellpadding="4" style="border-collapse:collapse;" | |||
! Pin | |||
! Funktion | |||
! Richtung | |||
! Verbunden mit | |||
|- | |||
|PB3 | |||
|OC2A PWM | |||
|Ausgang | |||
|<s>Lampe Lounge</s>, Klemme 21 | |||
|- | |||
|PB2 | |||
|OC1B PWM | |||
|Ausgang | |||
|Lampe Flipper, Klemme 18 | |||
|- | |||
|PB1 | |||
|OC1A PWM | |||
|Ausgang | |||
|Lampe Schrank, Klemme 19 | |||
|- | |||
|PD3 | |||
|OC2B PWM | |||
|Ausgang | |||
|Lampe Küche, Klemme 20 | |||
|- | |||
|PD5 | |||
|OC0B PWM | |||
|Ausgang | |||
|Lampe Beamer, Klemme 22 | |||
|- | |||
|PD6 | |||
|OC0A PWM | |||
|Ausgang | |||
|Lampe Tafel, Klemme 23 | |||
|- | |||
|PC4 | |||
|SDA I2C | |||
|Beides | |||
|Atmega32 | |||
|- | |||
|PC5 | |||
|SCL I2C | |||
|Beides | |||
|Atmega32 | |||
|- | |||
|PC3 | |||
|Relais 1 | |||
|Ausgang | |||
|Lampenspannung Küche, Klemme 17 | |||
|- | |||
|PC2 | |||
|Relais 2 | |||
|Ausgang | |||
|Beamer, Klemme 16 | |||
|- | |||
|PC1 | |||
|Relais 3 | |||
|Ausgang | |||
|Lampenspannung Vortrag, Klemme 15 | |||
|- | |||
|PC0 | |||
|Relais 4 | |||
|Ausgang | |||
|Lampenspannung Lounge, Klemme 14 | |||
|- | |||
|PB5 | |||
|Relais 5 | |||
|Ausgang | |||
|Steckdosenleiste Lounge, Klemme 13 | |||
|- | |||
|PB4 | |||
|Relais 6 | |||
|Ausgang | |||
|Steckdosen+Licht Klo, Klemme 12 | |||
|- | |||
|PB0 | |||
|Relais 7 | |||
|Ausgang | |||
|Hauptschütz, Klemme 11 | |||
|- | |||
|PD7 | |||
|Relais 8 | |||
|Ausgang | |||
| ? | |||
|- | |||
|PD0 | |||
|Optotriac 1 | |||
|Ausgang | |||
|Lampe Tafel, Klemme 25 | |||
|- | |||
|PD1 | |||
|Optotriac 2 | |||
|Ausgang | |||
|Lampe Beamer, Klemme 26 | |||
|- | |||
|PD2 | |||
|Optotriac 3 | |||
|Ausgang | |||
|Lampe Schrank, Klemme 27 | |||
|- | |||
|PD4 | |||
|Optotriac 4 | |||
|Ausgang | |||
|Lampe Flipper, Klemme 28 | |||
|} | |||
| | | | ||
'''µC Interface - ATMega32''' | '''µC Interface - ATMega32''' | ||
{| class="wikitable" border="1" cellspacing="0" cellpadding="4" style="border-collapse:collapse;" | |||
! Pin | |||
! Funktion | |||
! Richtung | |||
! Verbunden mit | |||
|- | |||
|PB6 | |||
|SPI MISO | |||
|Eingang | |||
|CAN Transceiver | |||
|- | |||
|PB5 | |||
|SPI MOSI | |||
|Ausgang | |||
|CAN Transceiver | |||
|- | |||
|PB7 | |||
|SPI SCK | |||
|Ausgang | |||
|CAN Transceiver | |||
|- | |||
|PC5 | |||
|SCL I2C | |||
|Beides | |||
|Atmega168 | |||
|- | |||
|PC4 | |||
|SDA I2C | |||
|Beides | |||
|Atmega168 | |||
|- | |||
|PB4 | |||
|SPI CS MCP | |||
|Ausgang | |||
|CAN Transceiver | |||
|- | |||
|PD2 | |||
|INT0 MCP | |||
|Eingang | |||
|CAN Transceiver | |||
|- | |||
|PD0 | |||
|EIA232 | |||
| ungenutzt | |||
| - | |||
|- | |||
|PD1 | |||
|EIA232 | |||
| ungenutzt | |||
| - | |||
|- | |||
|PD7 | |||
|24 V Power Good | |||
|Eingang | |||
|Klemme 8 | |||
|- | |||
|PD6 | |||
|RCD Licht | |||
|Eingang | |||
|Klemme 4 | |||
|- | |||
|PC2 | |||
|RCD Steckdosen (Haupt) | |||
|Eingang | |||
|Klemme 5 | |||
|- | |||
|PA1 | |||
|RCD Server | |||
|Eingang | |||
|Klemme 7 | |||
|- | |||
|PD3 | |||
|Taster Vortrag INT2 | |||
|Eingang | |||
|Klemme 31 | |||
|- | |||
|PB2 | |||
|Taster Lounge INT1 | |||
|Eingang | |||
|Klemme 32 | |||
|- | |||
|PA0 | |||
|Hauptschalter | |||
|Eingang | |||
|Klemme 6 | |||
|- | |||
|PA2 | |||
|LED rot | |||
|Ausgang | |||
|Front RGB LED | |||
|- | |||
|PA3 | |||
|LED grün | |||
|Ausgang | |||
|Front RGB LED | |||
|- | |||
|PA4 | |||
|LED blau | |||
|Ausgang | |||
|Front RGB LED | |||
|} | |||
|} | |||
=== Steckverbinder === | |||
{| | |||
| | | | ||
'''10 Pin Stecker zur Verbindung der unteren mit der oberen Platine | '''10 Pin Stecker zur Verbindung der unteren mit der oberen Platine | ||
Zeile 269: | Zeile 448: | ||
*4 SDA | *4 SDA | ||
*5 SCL | *5 SCL | ||
*6 + | *6 +5 V | ||
*7 | *7 | ||
*8 | *8 Eingang 24 V Power Good TTL | ||
*9 RCD | *9 RCD Lichtkreis TTL | ||
*10 | *10 RCD Hauptkreis TTL | ||
links: | links: | ||
* 1 | * 1 GND | ||
* 2 | * 2 EIA-232_RX | ||
* 3 | * 3 EIA-232_TX | ||
* 4 Taster | * 4 Taster Vortragsraum TTL | ||
* 5 Taster | * 5 Taster Lounge TTL | ||
* 6 Hauptschalter | * 6 Hauptschalter TTL | ||
* 7 | * 7 RCD Serverkreis TTL | ||
* 8 | * 8 | ||
* 9 | * 9 | ||
Zeile 288: | Zeile 467: | ||
|} | |} | ||
== TODO: == | === RGB-LED === | ||
'''TODO: Version 1.1''' | |||
'''Vorschlag:''' | |||
{| {{prettytable}} | |||
| '''Farbe LED''' | |||
| '''Aktion''' | |||
| '''Status''' | |||
|- | |||
|Grün | |||
|dauer | |||
|Labor an, keine Fehler | |||
|- | |||
|Blau | |||
|dauer | |||
|Labor aus, keine Fehler | |||
|- | |||
|Weiß | |||
|blinken | |||
|Fehler, interne 24V Spannung fehlt | |||
|- | |||
|Rot | |||
|blinken | |||
|Fehler, RCD Hauptkreis ausgelöst | |||
|- | |||
|Blau | |||
|blinken | |||
|Fehler, RCD Lichtkreis ausgelöst | |||
|- | |||
|Grün | |||
|blinken | |||
|Fehler, RCD Serverkreis ausgelöst | |||
|- | |||
| | |||
| | |||
| | |||
|} | |||
== Software == | |||
'''TODO: Version 1.1''' | |||
* Atmega32 "interface" | |||
** CAN Pakete senden/empfangen | |||
*** Bei jeder Änderungen: CAN-Paket senden | |||
*** nicht jede Funktion kann per CAN ausgelöst werden | |||
** Schalter abfragen | |||
*** Lampen steuern (direkt / CAN Paket an Labnode lounge) | |||
** Hauptschalter abfragen | |||
*** Relais schalten, zeitverzögert beim Ausschalten | |||
*** Helligkeitswerte für Lampen auf 70% setzen (Ausschalten) | |||
** RCD abfragen | |||
*** LED Status setzen | |||
** Relais steuern | |||
*** Relais werden automatisch gesteuert, nicht mehr manuell über CAN | |||
*** (Küche und Lounge) | |||
** Optotriacs steuern | |||
** Lampe PWM steuern | |||
* Atmega168 "controll" | |||
** wird von interface über I2C gesteuert | |||
=== Lampensteuerung === | |||
'''Vorschlag:''' | |||
{| {{prettytable}} | |||
| '''ZielAdresse''' | |||
| '''ZielPort''' | |||
| '''Data[0] Befehl''' | |||
| '''Data[1] Lampennummer''' | |||
| '''Data[2] Argument''' | |||
| '''Data[3] Argument''' | |||
| '''Befehl''' | |||
|- | |||
|x | |||
|2 | |||
|0 | |||
|y | |||
|0: Aus, >0: An | |||
| | |||
|Lampe schalten | |||
|- | |||
|x | |||
|2 | |||
|1 | |||
|y | |||
|{0 .. 255} | |||
| | |||
|Helligkeit setzen | |||
|- | |||
|x | |||
|2 | |||
|2 | |||
| | |||
| | |||
| | |||
|Lampenstatus abfragen, Antwort auf Port 0x03 | |||
|- | |||
|x | |||
|2 | |||
|3 | |||
|0 | |||
|0: Aus, >0: An | |||
| | |||
|Alle Lampen schalten | |||
|- | |||
|x | |||
|2 | |||
|4 | |||
|0 | |||
|{0 .. 255} | |||
| | |||
|Helligkeit aller Lampen setzen | |||
|- | |||
|Absender | |||
|3 | |||
|Lampenstatus, bit 1==AN/0==Aus | |||
|PWM-Wert1 | |||
|PWM-Wert2 | |||
|... | |||
|Antwort auf Anfrage oder bei jeder Änderung | |||
|} | |||
* Setzen: | |||
** ist die Lampennummer nicht verfügbar, wird das Paket verworfen | |||
** jede Änderung sendet ein Statuspaket an den Absender | |||
* Abfragen: | |||
** sendet ein Statuspaket an den anfragenden | |||
=== Statusupdate === | |||
'''Vorschlag:''' | |||
{| {{prettytable}} | |||
| '''ZielAdresse''' | |||
| '''ZielPort''' | |||
| '''Data[0] Befehl''' | |||
| '''Data[1] Argument''' | |||
| '''Befehl''' | |||
|- | |||
|0 | |||
|1 | |||
|0 | |||
|{0 .. 255} | |||
|Status update aller Eingänge | |||
|- | |||
|0 | |||
|1 | |||
|1 | |||
|{0 .. 255} | |||
|Status update aller Relais | |||
|- | |||
|} | |||
=== I2C Protokoll zwischen AVRs === | |||
8 Byte - der gesamte Zustand der Ausgänge wird geschrieben bzw. kann gelesen werden wenn der Interface Controller neu gestartet wurde | |||
{| {{prettytable}} | |||
| '''Byte''' | |||
| '''Funktion''' | |||
|- | |||
|0 | |||
|low byte | |||
|- | |||
|1 | |||
|high byte | |||
|- | |||
|2 | |||
|PWM Vortragsraum Lampengruppe Tafel | |||
|- | |||
|3 | |||
|PWM Vortragsraum Lampengruppe Beamer | |||
|- | |||
|4 | |||
|PWM Vortragsraum Lampengruppe Schrank | |||
|- | |||
|5 | |||
|PWM Vortragsraum Lampengruppe Flipper | |||
|- | |||
|6 | |||
|PWM Vortragsraum Lampengruppe Lounge | |||
|- | |||
|7 | |||
|PWM Vortragsraum Lampengruppe Küche | |||
|- | |||
|} | |||
'''Ausgangs Wort:''' | |||
{| {{prettytable}} | |||
| '''Bit''' | |||
| '''Funktion''' | |||
| '''Byte''' | |||
|- | |||
|0 | |||
|low byte | |||
|Schütz Küchenlicht | |||
|- | |||
|1 | |||
|low byte | |||
|Schütz Beamer | |||
|- | |||
|2 | |||
|low byte | |||
|Schütz Licht Vortragsraum gesamt | |||
|- | |||
|3 | |||
|low byte | |||
|Schütz Licht Lounge gesamt | |||
|- | |||
|4 | |||
|low byte | |||
|Schütz Steckdosen Loungetisch | |||
|- | |||
|5 | |||
|low byte | |||
|Schütz Licht Klo | |||
|- | |||
|6 | |||
|low byte | |||
|Hauptschütz Steckdosen nicht geschaltet + Hauptschütz Licht | |||
|- | |||
|7 | |||
|low byte | |||
|Frei | |||
|- | |||
|8 | |||
|high byte | |||
|Optotriac Vortragsraum Lampengruppe Tafel | |||
|- | |||
|9 | |||
|high byte | |||
|Optotriac Vortragsraum Lampengruppe Beamer | |||
|- | |||
|10 | |||
|high byte | |||
|Optotriac Vortragsraum Lampengruppe Schrank | |||
|- | |||
|11 | |||
|high byte | |||
|Optotriac Vortragsraum Lampengruppe Flipper | |||
|- | |||
|} | |||
== TODO == | |||
* Schaltpläne E/A ins Wiki | * Schaltpläne E/A ins Wiki | ||
== Erweiterung == | == Erweiterung == | ||
Zeile 321: | Zeile 764: | ||
| | | | ||
| ON (1) | | ON (1) | ||
| 0x00 | |||
|- | |||
| | |||
| | |||
| TOGGLE (3) | |||
| 0x00 | | 0x00 | ||
|- | |- | ||
Zeile 331: | Zeile 779: | ||
| | | | ||
| ON | | ON | ||
| 0x00 | |||
|- | |||
| | |||
| | |||
| TOGGLE (3) | |||
| 0x00 | | 0x00 | ||
|- | |- | ||
Zeile 341: | Zeile 794: | ||
| | | | ||
| ON | | ON | ||
| 0x00 | |||
|- | |||
| | |||
| | |||
| TOGGLE (3) | |||
| 0x00 | | 0x00 | ||
|- | |- | ||
Zeile 351: | Zeile 809: | ||
| | | | ||
| ON | | ON | ||
| 0x00 | |||
|- | |||
| | |||
| | |||
| TOGGLE (3) | |||
| 0x00 | | 0x00 | ||
|- | |- | ||
Zeile 361: | Zeile 824: | ||
| | | | ||
| ON | | ON | ||
| 0x00 | |||
|- | |||
| | |||
| | |||
| TOGGLE (3) | |||
| 0x00 | | 0x00 | ||
|- | |- | ||
Zeile 371: | Zeile 839: | ||
| | | | ||
| ON | | ON | ||
| 0x00 | |||
|- | |||
| | |||
| | |||
| TOGGLE (3) | |||
| 0x00 | | 0x00 | ||
|- | |- | ||
Zeile 381: | Zeile 854: | ||
| | | | ||
| ON | | ON | ||
| 0x00 | |||
|-| | |||
| | |||
| TOGGLE (3) | |||
| 0x00 | | 0x00 | ||
|- | |- | ||
Zeile 397: | Zeile 874: | ||
| SET (0) | | SET (0) | ||
| 0x00 - 0xFF | | 0x00 - 0xFF | ||
|- | |- | ||
| | | | ||
Zeile 407: | Zeile 879: | ||
| SET (0) | | SET (0) | ||
| 0x00 - 0xFF | | 0x00 - 0xFF | ||
|- | |- | ||
| | | | ||
Zeile 417: | Zeile 884: | ||
| SET (0) | | SET (0) | ||
| 0x00 - 0xFF | | 0x00 - 0xFF | ||
|- | |- | ||
| | | | ||
Zeile 427: | Zeile 889: | ||
| SET (0) | | SET (0) | ||
| 0x00 - 0xFF | | 0x00 - 0xFF | ||
|- | |- | ||
| | | | ||
Zeile 440: | Zeile 897: | ||
| | | | ||
| | | | ||
| | | PWM_MOD (2) | ||
| 0x00 | |||
|- | |||
| | |||
| | |||
| TOGGLE_PWM_DIR (3) | |||
| 0x00 | | 0x00 | ||
|- | |- | ||
Zeile 451: | Zeile 913: | ||
| | | | ||
| OFF (0) | | OFF (0) | ||
| 0x00 | |||
|- | |||
| | |||
| | |||
| TOGGLE (3) | |||
| 0x00 | | 0x00 | ||
|- | |- | ||
Zeile 457: | Zeile 924: | ||
| SET (0) | | SET (0) | ||
| 0x00 - 0xFF | | 0x00 - 0xFF | ||
|- | |||
| | |||
| | |||
| PWM_MOD (2) | |||
| 0x00 | |||
|- | |||
| | |||
| | |||
| TOGGLE_PWM_DIR (3) | |||
| 0x00 | |||
|- | |||
|} | |} | ||
Aktuelle Version vom 8. April 2017, 00:15 Uhr
PowerCommander Release status: stable [box doku] | |
---|---|
Description | Zentrales Steuergerät |
Author(s) | Pl4nkton, Mati, asklepios, tixiv, siro |
Last Version | 1.00 |
Platform | AVR (ATmega168/32) |
License | Source: GPL / unbekannt |
Download | c Code, trac |
Einleitung[Bearbeiten | Quelltext bearbeiten]
Der Powercommander schaltet Relais im Sicherungskasten und kann somit (fast) das gesamte Labor an und ausschalten - natürlich abgesehen von Kühlschrank und Server. Ferner kann er die Lampen einzeln im Vortragsraum und Küche dimmen. Das ganze ist bequem per Webinterface erreichbar für jeden der sich im Labor befindet. Das Gerät nimmt Steuerbefehle via Canbus entgegen.
Taster im Labor die aus der Gebäudeinstallation stammen sind mit dem Powercommander verbunden und schalten nicht direkt das Licht über einen Stromstoßschalter, sondern dient viel mehr als Eingabetaster für den Powercommander. So ist es möglich, mit den vorhandenen Schaltern das Licht zu dimmen.
Das Gehäuse beinhaltet ein Schaltnetzteil, sowie zwei Mikrocontroller: Einen Atmega168 und einen Atmega32. Der Atmega168 ist hauptsächlich als IO Expander tätig und schaltet die Relais und Analogausgänge, während der Mega32 die CAN-Steuerung sowie Eingänge übernimmt und eine RGB LED zur Statusanzeige ansteuert. So ist es möglich die Firmware des Mega32 zu ändern ohne das sich die Zustände der Ausgänge verändern - also das Licht oder der Strom ausfällt.
Mit der Version 1.1 kann der Powercommander die Lampen in der Lounge per CAN einzeln oder in Gruppen schalten und dimmen, sowie deren aktuellen Status abfragen. Dies ermöglicht einen fehlerfreien Betrieb. Die aktuelle Lösung kann lediglich die Lampen "toggeln". Zusätzlich werden mit der neuen Version die Stromkreise dynamisch mit Relais geschaltet, was momentan nicht der Fall ist. Das Protokoll zum steuern der Lampen ist nun vereinheitlicht und sorgt in Zukunft für einfachere Steuerung.
Technische Dokumentation[Bearbeiten | Quelltext bearbeiten]
CAN Adresse 0x02
Belegung der Schraubklemmen am Gehäuse[Bearbeiten | Quelltext bearbeiten]
Klemme | Belegung | Anmerkung |
---|---|---|
1 | GND 24V | |
2 | ||
3 | ||
4 | 24V Eingang | RCD Server |
5 | 24 V Eingang + Power Good Erkennung | Power vom Netzteil im Sicherungskasten |
6 | 24V Eingang | Hauptschalter |
7 | 24V Eingang | RCD Haupt |
8 | 24V Eingang | RCD Licht |
9 | ||
10 | 24V Ausgang | Frei |
11 | 24V Ausgang | Relais Hauptschütz (nicht Dauerstromsteckdosen + Licht Keller + Licht Bastelraum) |
12 | 24V Ausgang | Relais Klo Strom Licht + Steckdose |
13 | 24V Ausgang | Relais Tischsteckdose Lounge |
14 | 24V Ausgang | Relais Lounge Licht |
24V Ausgang | Relais Vortragsraum Licht | |
16 | 24V Ausgang | Relais Beamer |
17 | 24V Ausgang | Relais Küchenlicht |
18 | 0-10V EVG Dimmer | Flipper |
19 | 0-10V EVG Dimmer | Schrank |
20 | 0-10V EVG Dimmer | Küche |
21 | 0-10V EVG Dimmer | |
22 | 0-10V EVG Dimmer | Beamer |
23 | 0-10V EVG Dimmer | Tafel |
24 | GND | Licht-Steuerkreise + Hauptschalter |
25 | 5V Ausgang | Optotriak Vortragsraum bei der Tafel |
26 | 5V Ausgang | Optotriak Vortragsraum bei dem Beamer |
27 | 5V Ausgang | Optotriak Vortragsraum bei dem Schrank |
28 | 5V Ausgang | Optotriak Vortragsraum bei dem Flipper |
29 | ||
30 | 230V Neutralleiter Lichtkreis | |
31 | 230V Phase Lichtkreis | Taster Vortragsraum |
32 | 230V Phase Lichtkreis | Taster Lounge |
33 | ||
34 | ||
35 |
Übersicht[Bearbeiten | Quelltext bearbeiten]
Oberere Buchse an der linken Seite: CAN Untere Buchse an der linken Seite: Belegung: 1 GND ,2 GND ,3 EIA-232_RX ,4 EIA-232_TX ,5 GND ,6 GND ,7 ,8 ,9 24 V ,10 - Eingänge:
Ausgänge:
|
Spannungen:
|
Mikrocontroller I/O[Bearbeiten | Quelltext bearbeiten]
µC Ausführung - Mega168
|
µC Interface - ATMega32
|
Steckverbinder[Bearbeiten | Quelltext bearbeiten]
10 Pin Stecker zur Verbindung der unteren mit der oberen Platine rechts
links:
|
RGB-LED[Bearbeiten | Quelltext bearbeiten]
TODO: Version 1.1 Vorschlag:
Farbe LED | Aktion | Status |
Grün | dauer | Labor an, keine Fehler |
Blau | dauer | Labor aus, keine Fehler |
Weiß | blinken | Fehler, interne 24V Spannung fehlt |
Rot | blinken | Fehler, RCD Hauptkreis ausgelöst |
Blau | blinken | Fehler, RCD Lichtkreis ausgelöst |
Grün | blinken | Fehler, RCD Serverkreis ausgelöst |
Software[Bearbeiten | Quelltext bearbeiten]
TODO: Version 1.1
- Atmega32 "interface"
- CAN Pakete senden/empfangen
- Bei jeder Änderungen: CAN-Paket senden
- nicht jede Funktion kann per CAN ausgelöst werden
- Schalter abfragen
- Lampen steuern (direkt / CAN Paket an Labnode lounge)
- Hauptschalter abfragen
- Relais schalten, zeitverzögert beim Ausschalten
- Helligkeitswerte für Lampen auf 70% setzen (Ausschalten)
- RCD abfragen
- LED Status setzen
- Relais steuern
- Relais werden automatisch gesteuert, nicht mehr manuell über CAN
- (Küche und Lounge)
- Optotriacs steuern
- Lampe PWM steuern
- CAN Pakete senden/empfangen
- Atmega168 "controll"
- wird von interface über I2C gesteuert
Lampensteuerung[Bearbeiten | Quelltext bearbeiten]
Vorschlag:
ZielAdresse | ZielPort | Data[0] Befehl | Data[1] Lampennummer | Data[2] Argument | Data[3] Argument | Befehl |
x | 2 | 0 | y | 0: Aus, >0: An | Lampe schalten | |
x | 2 | 1 | y | {0 .. 255} | Helligkeit setzen | |
x | 2 | 2 | Lampenstatus abfragen, Antwort auf Port 0x03 | |||
x | 2 | 3 | 0 | 0: Aus, >0: An | Alle Lampen schalten | |
x | 2 | 4 | 0 | {0 .. 255} | Helligkeit aller Lampen setzen | |
Absender | 3 | Lampenstatus, bit 1==AN/0==Aus | PWM-Wert1 | PWM-Wert2 | ... | Antwort auf Anfrage oder bei jeder Änderung |
- Setzen:
- ist die Lampennummer nicht verfügbar, wird das Paket verworfen
- jede Änderung sendet ein Statuspaket an den Absender
- Abfragen:
- sendet ein Statuspaket an den anfragenden
Statusupdate[Bearbeiten | Quelltext bearbeiten]
Vorschlag:
ZielAdresse | ZielPort | Data[0] Befehl | Data[1] Argument | Befehl |
0 | 1 | 0 | {0 .. 255} | Status update aller Eingänge |
0 | 1 | 1 | {0 .. 255} | Status update aller Relais |
I2C Protokoll zwischen AVRs[Bearbeiten | Quelltext bearbeiten]
8 Byte - der gesamte Zustand der Ausgänge wird geschrieben bzw. kann gelesen werden wenn der Interface Controller neu gestartet wurde
Byte | Funktion |
0 | low byte |
1 | high byte |
2 | PWM Vortragsraum Lampengruppe Tafel |
3 | PWM Vortragsraum Lampengruppe Beamer |
4 | PWM Vortragsraum Lampengruppe Schrank |
5 | PWM Vortragsraum Lampengruppe Flipper |
6 | PWM Vortragsraum Lampengruppe Lounge |
7 | PWM Vortragsraum Lampengruppe Küche |
Ausgangs Wort:
Bit | Funktion | Byte |
0 | low byte | Schütz Küchenlicht |
1 | low byte | Schütz Beamer |
2 | low byte | Schütz Licht Vortragsraum gesamt |
3 | low byte | Schütz Licht Lounge gesamt |
4 | low byte | Schütz Steckdosen Loungetisch |
5 | low byte | Schütz Licht Klo |
6 | low byte | Hauptschütz Steckdosen nicht geschaltet + Hauptschütz Licht |
7 | low byte | Frei |
8 | high byte | Optotriac Vortragsraum Lampengruppe Tafel |
9 | high byte | Optotriac Vortragsraum Lampengruppe Beamer |
10 | high byte | Optotriac Vortragsraum Lampengruppe Schrank |
11 | high byte | Optotriac Vortragsraum Lampengruppe Flipper |
TODO[Bearbeiten | Quelltext bearbeiten]
- Schaltpläne E/A ins Wiki
Erweiterung[Bearbeiten | Quelltext bearbeiten]
Webinterface[Bearbeiten | Quelltext bearbeiten]
Kommandozeile[Bearbeiten | Quelltext bearbeiten]
Das Tool labcontrol biete die Möglichkeit den Powercommander anzusteuern. Folgende Befehle sind möglich:
Klasse | Objekt | Funktion | Value |
SW (0) | LAMP_TAFEL (8) | OFF (0) | 0x00 |
ON (1) | 0x00 | ||
TOGGLE (3) | 0x00 | ||
LAMP_BEAMER (9) | OFF | 0x00 | |
ON | 0x00 | ||
TOGGLE (3) | 0x00 | ||
LAMP_SCHRANK (10) | OFF | 0x00 | |
ON | 0x00 | ||
TOGGLE (3) | 0x00 | ||
LAMP_FLIPPER (11) | OFF | 0x00 | |
ON | 0x00 | ||
TOGGLE (3) | 0x00 | ||
LAMP_LOUNGE (3) | OFF | 0x00 | |
ON | 0x00 | ||
TOGGLE (3) | 0x00 | ||
LAMP_VORTRAG (2) | OFF | 0x00 | |
ON | 0x00 | ||
TOGGLE (3) | 0x00 | ||
KUECHE (0) | OFF | 0x00 | |
ON | 0x00 | ||
TOGGLE (3) | 0x00 | ||
BEAMER (1) | OFF | 0x00 | |
ON | 0x00 | ||
PWM (1) | TAFEL (0) | SET (0) | 0x00 - 0xFF |
BEAMER (1) | SET (0) | 0x00 - 0xFF | |
SCHRANK (2) | SET (0) | 0x00 - 0xFF | |
FLIPPER (3) | SET (0) | 0x00 - 0xFF | |
KUECHE (5) | SET (0) | 0x00 - 0xFF | |
PWM_MOD (2) | 0x00 | ||
TOGGLE_PWM_DIR (3) | 0x00 | ||
VIRT (2) | VORTRAG_LICHT (1) | ON (1) | 0x00 |
OFF (0) | 0x00 | ||
TOGGLE (3) | 0x00 | ||
VORTRAG_PWM (2) | SET (0) | 0x00 - 0xFF | |
PWM_MOD (2) | 0x00 | ||
TOGGLE_PWM_DIR (3) | 0x00 |