Firmware
Für die Firmware wurde die Superloop Architektur verwendet. Zusätzlich wurde ein modularer Aufbau gewählt der es erlaubt Firmwareteile entsprechend der unterschiedlichen Module auszutauschen. Mittels Defines lässt sich zwischen den unterschiedlichen Modulen umschalten. An oberster Stelle der Hierarchie steht der TIME Treiber in welchem das gesamte Zeitmanagement erfolgt. Der Superloop, die Timer, sowie der Watchdog befinden sich in diesem. Darunter liegen der MOBU Treiber für die Kommunikation mit der Steuerung, sowie der deaktivierbare SLOG Treiber für das Logging. Beide kommunizieren über UART wobei für die Modbus Kommunikation eine Umsetzung auf RS485 erfolgt. Im RESE Treiber befindet sich die Implementierung der Modbus Register welche auch modulspezifisch sind. Darunter befinden sich dann die Treiber zur Ansteuerung der Peripherie des jeweiligen Moduls. Hierzu kommen GPIO's, Timer, I2C, Interrupts, ADC, sowie UART zum Einsatz.
Treemap
Die Treemap (Baumkarte) visualisiert die Modulstruktur der Firmware. Die linke Hälfte ist in jedem Modul enthalten, die rechte Hälfte ist modulspezifisch. Ein Modul kann jedoch auch mehrere Treiber der rechten Hälfte beinhalten. Beispielsweise ist ein Modul sowohl für die Durchflusssensoren als auch für die Drucktransmitter zuständig.
- RESE: Treiber für das Modbus Register.
- TIME: Treiber für das Zeitmanagement.
- MOBU: Treiber für die Modbus Kommunikation.
- SLOG: Treiber für das Logging via UART.
- DIPO: Treiber für die digitalen Potentiometer.
- EXVA: Treiber für die Expansionsventile.
- FLSE: Treiber für die Durchflusssensoren.
- FRCV: Treiber für den Frequenzumrichter.
- POCO: Treiber für die potentialfreien Kontakte.
- PRTR: Treiber für die Drucktransmitter.
- PWMV: Treiber für die PWM und 0-10 Volt Ausgänge.
- V230: Treiber für die 230 Volt Ausgänge.