Ein Angebot von

Tools

Embedded Software Engineering Reloaded: mbeddr

| Autor / Redakteur: Dr. Stephan Eberle, Bernd Kolb, Dr. Markus Völter* / Christine Kremser

Stromzähler der alten Gerneration: Bei der Entwicklung eienr modernen Smart-Metering-Software kam das Prodgrammierwerkzeug mbeddr zum Einsatz.
Stromzähler der alten Gerneration: Bei der Entwicklung eienr modernen Smart-Metering-Software kam das Prodgrammierwerkzeug mbeddr zum Einsatz. (Bild: gemeinfrei/Pixabay / CC0)

Über die letzten drei Jahre wurde von itemis Frankreich ein Smart Meter entwickelt, dessen eingebettete Software sich belegbar durch die folgenden Eigenschaften auszeichnet: eine wartbare, modulare Architektur, hardwareunabhängige Testbarkeit, geringen Integrationaufwand sowie eine hohe Wiederverwendbarkeit durch einen plattformbasierten Entwicklungsansatz.

Die Smart Meter Software wurde vollständig mit mbeddr umgesetzt, einer Open Source IDE zur Entwicklung von eingebetteter Software, die auf einer erweiterbaren Version von C basiert. Unter anderem unterstützt mbeddr C Erweiterungen für Zustandsmaschinen, physikalische Einheiten und Komponenten. mbeddr ist außerdem sehr weitgehend anpassbar, insbesondere durch benutzerdefinierte C Spracherweiterungen. Dabei erzeugt die mbeddr-basierte Implementierung nur einen sehr geringen Overhead im Vergleich zu klassisch implementiertem C Code.

Ein Smart Meter ist ein intelligenter Stromzähler, der kontinuierlich den elektrischen Energieverbrauch misst und aufzeichnet, verschiedene Analysen durchführt sowie die Steuerung des Energieverbrauchs ermöglicht (z.B. Mehrtarifunterstützung, Missbrauchserkennung, Lastprofilerstellung, historische Datenaufzeichnung) und vom Energieversorger aus der Ferne ausgelesen und konfiguriert werden kann. Die Hardware des hier betrachteten Smart Meters für 3-phasigen Wechselstrom (Drehstrom) wurde mit 2 MSP430- Mikrocontrollern von Texas Instruments [1] ausgestattet. Dabei handelt es sich um 16-Bit CPUs, die mit bis zu 25 MHz getaktet werden können und über 128 KB Flash- und 8 KB statischen RAM-Speicher verfügen. Der eine Prozessor ist für die zeitkritische Durchführung der Mess- und Metering-Funktionen (“Metrology”) zuständig, der andere für die nachgelagerten Analyse- und Konfigurationsfunktionen sowie für die Kommunikation. Die geforderte Genauigkeitsklasse entsprechend der IEC 62053 Norm [2] ist 0,5 (d.h. max 0,5 % Abweichung) für alle zu messenden Wirkwerte und 2,0 (d.h. max 2,0 % Abweichung) für sämtliche zu messenden Blind- und Scheinwerte. Die Fernabfrage- und -konfigurationsfunktionen waren auf Basis des DLMS/COSEM-Standards [3] umzusetzen.

Mehr Abstraktion contra effiziente Software - der ewige Widerspruch

Ein typisches Merkmal eingebetteter Software sind sehr beschränkte Resourcen bei gleichzeitig hohen Echtzeitanforderungen. Im vorliegenden Fall des Smart Meters macht sich dieser Umstand vor allem bei den Mess- und Metering-Funktionen bemerkbar: hierfür werden auf einem der beiden MPS430-Mikrocontroller die Momentanspannungs- und -stromwerte aller 3 Phasen mit Hilfe von schnellen Sigma-Delta-A/D-Wandlern bei einer Abtastrate von 4096 sample/s erfasst.

Daraus müssen in Echtzeit Effektivspannung und -strom, Wirk-, Blind- und Scheinleistung, Leistungsfaktor, Wirk- und Blindenergie sowie die Frequenz der Netzspannung berechnet werden. Daneben muss genügend Rechenzeit übrig bleiben, um die so gewonnenen Energieverbrauchsdaten über eine serielle Verbindung an den anderen MSP430-Mikrocontroller zu übertragen, der diese in die nachgelagerten Analysefunktionen einfließen lässt und für die Fernauslese bereithält.

Angesichts solcher Anforderungen ist es wenig verwunderlich, dass bei der Entwicklung von eingebetteter Software der Effizienz des dabei entstehenden Codes von jeher der höchste Stellenwert eingeräumt wurde. Bis heute wird ca. 80% der industriell erstellten eingebetteten Software mit der Programmiersprache C realisiert [4].

C ist sehr gut geeignet, um Algorithmen maschinennah und damit effizient umzusetzen. Im Gegenzug bietet C aber nur sehr eingeschränkte Möglichkeiten, um die zu realisierende Fachlichkeit problemnah, d.h. auf eine der Anwendersicht angepassten Art und Weise auszudrücken. Dies führt i.d.R. dazu, dass der resultierende Code sehr schwer verständlich ist und bzgl. Wartung und Erweiterbarkeit um neue Funktionalitäten eine enorme Herausforderung darstellt.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44309111 / Open Source)