Embedded Systeme
Programmierung per Blockschaltbild
Mit immer mehr Funktionen und Komfortwünschen bei der Bedienung konfrontiert, steigt die Komplexität mechatronischer Systeme exponenziell. Demgegenüber steht für die Entwicklung immer weniger Zeit, Geld und Personal zur Verfügung. Lösen lässt sich dieses Problem mittels funktionsorientierter grafischer Programmiersprachen wie Labview und deren Ansi-C-Code-Generator – vorausgesetzt man kennt die Grenzen der unterlagerten Mikroprozessor-Plattformen.
Gerade die Applikationssoftware mechatronischer Systeme stellt eine Art Worst-Case-Szenario dar: Die verschiedensten Sensoren müssen integriert und unterschiedliche Motorarten geregelt werden. Parallel dazu muss das System über unterschiedliche Schnittstellen und Bussysteme kommunizieren. Das erfordert eine abstrakte und dennoch hardwarenahe Programmiersprache.
Bislang vom Platzhirsch C/C++ dominiert, legitimieren eine Reihe von Eigenschaften das grafische Programmiersystem Labview für den Einsatz in „deeply-embedded“ Mechatroniksystemen. An erster Stelle steht die Produktivität, mit der sich Ideen umsetzen lassen. Die Grundlage dafür bilden der Funktionsumfang vom logischen Inverter über Fehlererkennung und -behebung bis zur konfigurierbaren Task. Hinzu kommt die breite Palette fertiger Bibliotheken, zum Beispiel für Signalverarbeitung und Mathematik. „Trockene“ Algorithmen lassen sich damit zügig per Drag&Drop mit I/Os verknüpfen. Die implizite Parallelität der Blockschaltbild-Programmierung ermöglicht auf einfache Weise Multicore- und Multitasking-Betrieb. Zudem erleichtert eine durchgängige Entwicklungsumgebung die Prüfung der Programme und das Arbeiten in Teams mit unterschiedlichen Programmiermodellen. Dieser Sprachmix lässt sich dann wieder zusammenführen und auf verschiedene Hardware-Plattformen verteilen. So gesehen funktioniert Labview wie ein Cross-Compiler.
Welchen Mikroprozessor nehmen?
Kompakter, batteriebetriebener Datenlogger für Maschinenservice, gesteuert von einem grafisch programmierten ARM-Cortex-M3-Mikrocontroller.
© SchmidDabei ist die Wahl des Mikroprozessors ein wichtiger Meilenstein. Schließlich haben dessen Leistungsreserven direkten Einfluss darauf, ob sich die Projektanforderungen später umsetzen lassen oder ein aufwendiges Redesign anfällt. Entsprechend wichtig ist daher eine Plattform, mit der sich Software rasch erstellen und bei Notwendigkeit portieren lässt. Bei der grafischen Programmierumgebung von National Instruments ermöglicht ein Ansi-C-Code-Generator beispielsweise die Verteilung der Labview-Blockschaltbilder auf verschiedene 8/16/32-Bit-Mikrocontroller. Derzeit ste-hen Lösungen für zwei in der Industrie verbreitete Plattformen bereit: der Mikrocontroller ARM-Cortex-M3 und die Blackfin-Mikroprozessorfamilie von Analog Devices. Deren Programmierung war bislang Spezialisten im Umgang mit Interrupts, CPU-Registern und der textbasierten Sprachen wie C und C++ vorbehalten. Mit dem unterlagerten Code-Generator schlägt Labview eine Brücke zwischen zwei unterschiedlichen Welten und macht Mechatronikern, Prozessspezialisten und Wissenschaftlern eine komplexe Technologie zugänglich, die bislang spezielles Embedded-Know-how erfordert. Die entsprechenden Entwicklungsumgebungen der Controller-Plattformen compilieren diesen C-Code und erzeugen daraus über den Linker/Loader eine ausführbare Anwendungsfirmware. Nach wie vor gilt bei der Implementierung, den Kriterien Portierbarkeit, Speicherbedarf und Ausführungsgeschwindigkeit die volle Aufmerksamkeit zu schenken – so wie bei traditionellen Entwicklungsmethoden auch.
Grafische Programmierung kostet Performance
Die umfangreiche Sensorik und Aktorik der intelligenten Toilette wird mittels Labview-programmiertem Blackfin-Prozessor überwacht und gesteuert.
© SchmidVerlangt die Anwendung nach stromsparenden, kleinsten Formfaktoren im Scheckkartenformat und Boardpreisen im zweistelligen Eurobereich, ist ein ARM-Cortex-M3-Mikrocontroller (32 Bit) mit skalierbarer Onchip-Peripherie die erste Wahl. Den Vorteilen großer Peripherievielfalt und interessanter Komponentenpreise stehen im Hinblick auf Labview-Applikationen Nachteile wie die limitierte CPU-Leistung (50 MHz Prozessortakt) und der geringe Speicher (64 kByte RAM, 256 kByte Flash) gegenüber. Obwohl Compiler und Linker über Optimierungsroutinen für Code-Länge oder -Performance verfügen, entsteht bei grafischer Programmierung wegen der hohen Abstraktion immer ein Overhead gegenüber manueller C-Programmierung. Das geht zu Lasten des Speicherbedarfs und der Ausführungszeit. Damit stehen der Anwendung die im Datenblatt des Prozessors spezifizierten Ressourcen nicht komplett zur Verfügung. Eine frühzeitige Festlegung auf diese Hardwareplattform könnte deshalb gravierende Konsequenzen haben. Und zwar dann, wenn die An-forderungen die Möglichkeiten der ARM-Plattform derart übersteigen, dass selbst Optimierungsmaßnahmen nicht mehr zum Ziel führen.
Ein Beispiel aus der Praxis zeigt, welche Arten von Anwendungen mit Labview auf ARM realisierbar sind: einfache, zeitunkritische Anwendungen, die eher sequenziell ablaufen. Ein batteriebetriebener Datalogger im Zigarettenschachtelformat wird über einen Stecker an einen intelligenten Aktor angeschlossen und liest im Sekundentakt Zustandsdaten über dessen RS-232-Schnittstelle aus. Diese Daten sind anschließend mit einem Analogsignal (10 Hz Abtastrate) und einem per Pulsweitenmodulation erfassten und gemittelten Temperaturwert zu kombinieren und zusammen mit einem Datum- und Zeitstempel versehen auf eine Micro-SD-Card abzuspeichern.
Ist der Bedarf an Rechenleistung und Speicher deutlich höher, bietet sich der Blackfin-Prozessor an. Aufgrund seiner CPU (500 MHz/32-Bit), flexiblen I/O-Ports, High-Speed-Prozessorbussen mit DMA-Support (Direct Memory Support), extern ausbaubarem DDR-RAM und schnellem Flash-Interface, lassen sich damit MSR-, Mechatronik- und Robotik-Anwendungen mit hoher Komplexität und nahezu beliebigen Prozess-I/Os realisieren. Die Plattform ermöglicht analoge Signalerfassung im dreistelligen kHz-Bereich, kontinuierliche Regelungen im zweistelligen kHz-Bereich sowie grafische Benutzerschnittstellen mit Touchbedienung. Ebenso stehen mobile und Solid-State-Speichermedien, Kommunikation über Ethernet und Wireless bis hin zum integrierten Webserver zur Verfügung, die Mechatroniker sofort in Projekten nutzen können. Für mobile Serviceroboter, Maschinen mit Standby-Betrieb oder batteriegestützte Messgeräte interessant ist der skalierbare Stromverbrauch bis in den zweistelligen Milliwattbereich. Mit Bootzeiten unter einer Sekunde sind auch Systeme realisierbar, die schnell betriebsbereit sein müssen. Ebenso unterstützt der Prozessor mit Mechanismen zur Fehlererkennung und -behebung den Dauerbetrieb.
High-Tech hinterm Abfluss
Eine „intelligente Toilette“, das aktuelle Serienprodukt eines Schweizer Herstellers, skizziert das typische Einsatzgebiet von Labview auf Blackfin in einem mechatronischen System, das Elektronik, Regelungstechnik, Software und Mechanik auf engstem Raum integriert.
Dank grafischer Fernbedienung im Smartphone-Stil, Geruchsabsaugung und -neutralisierung und anschließender Dusche sorgt diese Generation von Toiletten für maximalen Komfort und Hygiene. Dazu sind eine Reihe von Komponenten notwendig: Ventilator, Heißwasserboiler, mehrere Ventile, Warm/Kalt-Mischer, mehrere Schrittmotoren mit Encoder und Endschaltern für die Dusche, diverse Temperatursensoren und ein Fön. Die objektorientiert entwickelte Software für die Auswertung der Sensoren und Ansteuerung der Aktoren wurde als mehrstufige Statemachine rea-lisiert. Sobald jemand auf der Toilette sitzt, löst der Drucksensor einen Interrupt aus, der den Prozessor startet. Deshalb durfte der Bootzyklus auch nicht länger als 750 ms dauern. Realisiert wur- de das über einen Standby-Betrieb mit weniger als 500 mW Leistungsaufnahme für die komplette Embedded-Hardware inklusive Leistungselektronik. Dazu wird der Blackfin-Prozessor im Idle-Betrieb komplett abgeschaltet und die verschiedenen Bausteine in ihrem Low-Power-Mode betrieben. In einer künftigen Ausbaustufe soll die Toilette sogar die Ausscheidungen analysieren und so helfen, mögliche Krankheiten frühzeitig zu diagnostizieren. Auch für dieses Szenario mit seinen komplexen mathematischen Modellen stellt Labview eine geeignete Plattform dar.
Mit dem Singleboard-Computer SBRIO von National Instruments steht in Verbindung mit einem separaten Baseboard eine weitere Option zur Verfügung. Mit dieser Plattform lassen sich Mechatronik-Anwendungen höchster Komplexität mit High-Speed-Datenerfassung, Regelungen und Kommunikation realisieren. Interessant ist dessen nahezu beliebige Skalierung von Rechenleistung und I/O. Diese Plattform kombiniert einen typischerweise mit bis zu 800 MHz getakteten Floating-Point-Prozessor mit einem parallel arbeitenden FPGA, der die zeitkritischen Aufgaben übernehmen kann. Über Funktionsblöcke lässt sich dazu ein breites Spektrum analoger, digitaler und serieller Prozess-Signale einbinden, verknüpfen und parallel im FPGA vorverarbeiten.
Neben der Funktionalität einer Applikation stehen vor allem Qualitätsmerkmale wie Stromverbrauch, Bootzyklen, Determinismus, stabiler Dauerbetrieb, Formfaktor und Kosten im Vordergrund. Die Wahl eines von Labview direkt unterstützten Mikroprozessors beeinflusst diese Parameter und auch, in welchem Maß die Software gegebenenfalls optimiert werden muss. Ist ein ARM-Cortex-M3 zu schwach und stößt sogar der leistungsstärkere Blackfin an seine Grenzen, gilt es, das Pflichtenheft zu hinterfragen und die Spezifikationen notfalls zu ändern, Kosten neu zu kalkulieren und die Lösungs-Alternativen abzusichern. Für den Mechatroniker zählt bei solchen Machbarkeitsprüfungen wie auch beim Rapid-Prototyping und in der Entwicklung von Seriengeräten dann vor allem der Zeitgewinn, der sich mittels grafischer Programmierung erzielen lässt.
Autor: Marco Schmid ist Mitglied der Geschäftsleitung der Firma Schmid Elektronik in Münchwilen (CH).












