Anbieter zum Thema
Effizienz des resultierenden C-Codes
Um sicherzugehen, dass die Vorteile, die sich durch den hier beschriebenen innovativen Entwicklungsansatz ergeben, nicht zu Lasten der Effizienz des dabei entstehenden C-Codes gehen, wurde die Smart Meter Software hinsichtlich ihrer Codegröße und Laufzeitperformanz evaluiert.
Die Codegrößen wurden für die Teilanwendungen, die für die beiden Mikrocontroller auf der Smart Meter Hardware bestimmt sind, jeweils separat ermittelt und sind in Tabelle 2 der Bildergalerie wiedergegeben. Angesichts der Tatsache, dass jeder Mikrocontroller mit 128 KB Flash- und 8 KB statischem RAM-Speicher ausgestattet ist, zeigen diese Zahlen, dass die Smart Meter Software ohne jeden Zweifel kompakt genug geblieben ist, um auf der vorgesehenen Zielhardware betrieben werden zu können.
Zur Evaluierung der Laufzeitperformanz wurden die Ausführungszeiten gemessen, die für die verschiedenen Berechnungen zur Bestimmung der Energieverbrauchswerte auf allen 3 Phasen notwendig waren. Diese wurden anschließend im Hinblick auf die zur Ermittlung der Momentanspannungs- und -stromwerte benutzten Abtastrate von 4096 sample/s untersucht. Es hat sich gezeigt, dass zwischen dem Ende der Berechnungen und dem Ende der Abtastperiode noch eine Auslastungsreserve von ca. 20 % verblieb, was für den zuverlässigen Betrieb der Smart Meter Software auf der zur Verfügung stehenden Zielhardware weithin ausreichend ist.
In der Summe lässt sich daraus schlussfolgern, dass die Verwendung von mbeddr und dessen C-Spracherweiterungen keinen signifikant negativen Auswirkungen auf die Effizienz der Smart Meter Software hatte. Der am Ende resultierende, von mbeddr generierte C-Code war sowohl kompakt als auch schnell genug, um innerhalb der von der Zielhardware gesetzten Ressourcengrenzen nutzbar zu sein.
Zusammenfassung
Die hier beschriebene Smart Meter Software ist nicht das einzige, aber eines der größten Industrieprojekte, das mittels mbeddr umgesetzt wurden. Die dabei gewonnenen Erfahrungen zeigen, dass der alte Widerspruch aus der Welt der eingebetteten Softwareentwicklung überwunden werden kann.
Anstatt sich aus Sorge um Codegröße und Laufzeitperformanz auf die maschinennahen Sprachkonstrukte und sehr begrenzten Strukturierungsmittel der Programmiersprache C zu beschränken, können mit mbeddr die Effizienzvorteile von C und die Vorzüge problemnaher Sprachkonzepte und Darstellungsweisen geschickt kombiniert werden. Mit Blick auf die bis heute weit verbreiteten Praktiken im Bereich der eingebetteten Softwareentwicklung birgt dies ein bisher weitgehend unerkanntes Potential für Qualitäts- und Produktivitätsverbesserungen.
So kann durch die Einführung von hierarchischen komponentenorientierten Architekturen dafür gesorgt werden, dass der entstehende Code über eine klare und übersichtliche Struktur verfügt, einfach wiederzuerkennende Verantwortlichkeiten und Abhängigkeiten aufweist und trotz der ihm innewohnenden Komplexität beherrschbar bleibt. Gleichzeitig wird es möglich, einzelne oder mehrere Komponenten aus der Gesamtanwendung herauszulösen und direkt auf dem Entwicklungsrechner zu testen.
Somit lassen sich in einem Großteil der Anwendung von Beginn der Entwicklung an und unabhängig vom Verfügbarkeitstermin der Zielhardware Fehler aufdecken und Regressionen vermeiden. Auch die Inbetriebnahme auf der Zielhardware wird erheblich vereinfacht und beschleunigt. Zum einen verbleiben infolge der zuvor durchgeführten hardwareunabhängigen Tests in der Regel nur noch wenige unerkannte Fehler übrig.
Zum anderen kann die Inbetriebnahme dank des komponentenorientierten Aufbaus der Anwendung in Teilschritten erfolgen, sodass sich etwaige Fehler vergleichsweise leicht eingrenzen, identifizieren und beheben lassen.
Abgesehen hiervon bieten die mit Hilfe von mbeddr leicht umzusetzenden komponentenorientierten Architekturen enorme Vorteile bzgl. der Wiederverwendung von Code und die Nutzung plattformbasierter Ansätze zur Entwicklung eingebetteter Software. In gleicher Weise wie sich Komponenten zu hardwareunabhängigen Tests oder Teilanwendungen für die schrittweise Inbetriebnahme integrieren lassen, können sie auch genutzt werden, um gemäß dem Baukastenprinzip völlig neue Anwendungen zu erstellen. Um dies zu erleichtern, bietet es sich an, den wiederverwendbaren Anteil der Komponenten aus der projektspezifischen Codebasis herauszulösen und in Bibliotheken bereitzustellen, die projektübergreifend genutzt werden können, bzw. diese Komponenten von vornherein in solchen Bibliotheken zu entwickeln.
Es bleibt zu erwähnen, dass die hier beschriebenen Aspekte zwar wesentliche aber längst nicht alle Möglichkeiten wiederspiegeln, wie sich die Entwicklung eingebetteter Software mit Hilfe von mbeddr modernisieren lässt. Neben der Nutzung der zahlreichen anderen C-Spracherweiterungen, die in mbeddr zur Verfügung stehen, im Rahmen dieses Beitrags aber nicht näher vorgestellt werden konnten, lassen sich auch über das Einbringen von benutzerdefinierten C-Spracherweiterungen viele weitere Vereinfachungen und Produktivitätsgewinne erzielen. Der interessierte Leser sei hierzu an entsprechende weiterführende Literatur verwiesen [5].
Literatur- und Quellenverzeichnis
[1] MSP430F5x/6x Low-Power + Performance Microcontroller
http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/low_power_performance/msp430f5x_msp430f6x/overview.page
[2] IEC 62053-24:2014: Electricity metering equipment (a.c.) - Particular requirements - Part 24: Static meters for reactive energy at fundamental frequency (classes 0,5 S, 1S and 1)
https://webstore.iec.ch/publication/6385
[3] What is DLMS/COSEM?
http://www.dlms.com/information/whatisdlmscosem/index.html
[4] C. Ebert and C. Jones. Embedded software: facts, figures, and future. Computer, 42(4), April 2009.
[5] M. Voelter, D. Ratiu, B. Kolb, and B. Schaetz. mbeddr: instantiating a language workbench in the embedded software domain. Automated Software Engineering, 20(3), 2013.
[6] DSL Development Environment
http://jetbrains.com/mps
* Dr. Stephan Eberle ist Leiter für Forschung & Entwicklung bei itemis Frankreich in Paris.
* Bernd Kolb arbeitet bei der itemis AG in Stuttgart, wo er als Architecture & Technology Manager neue Trends und Technologien bewertet und erprobt.
* Dr. Markus Völter arbeitet als freiberuflicher Berater und Coach für die itemis AG in Stuttgart.
(ID:44309111)