Messen ohne Eingriff ins System

Nachrüstbares Aufzugsmonitoring

30. Mai 2018, 10:44 Uhr | Von Klaus Dembowski
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Programmierung und Datenaustausch

Die Firmware für den LPC4330-Mikrocontroller von NXP ist in C mit der Entwicklungsumgebung LPCXpresso erstellt worden. Dabei werden verschiedene Bibliotheken eingesetzt, z.B. Cortex Microcontroller Software Interface Standard Digital Signal Processing (CMSIS DSP) zur digitalen Signalverarbeitung für ARM-Cortex-Mikrocontroller. Neben den grundlegenden mathematischen Funktionen sind hiermit auch komplexere Funktionen, wie beispielsweise die für die Audiosignalverarbeitung notwendige Fast-Fourier-Transformationen, verfügbar. Die Bibliothek kann sowohl als Quellcode als auch als vorkompilierte Bibliothek in ein Programm eingebunden werden. Der entscheidende Vorteil bei der CMSIS-DSP-Bibliothek zeigt sich in der Optimierung für die verschiedenen Cortex-Mikrocontroller. Für den im Projekt verwendeten Cortex-M4 ergibt sich durch den Einsatz dieser Bibliothek, dass der Befehlssatz des M4-Kerns inklusive der SIMD-Befehle (Single Instruction Multiple Data) effektiv ausgenutzt werden kann, was zu einem großen Leistungsvorteil führt.

Die zweite wichtige Bibliothek ist LPCopen, die die wichtigsten Treiber für die Hardware-Kommunikation liefert sowie zusätzliche und optimierte Treiber für den LPC4330 bietet.

Für die Netzwerkkommunikation über die Powerline-Transceiver (Bild 9) wird der Lightweight TCP/IP Stack (LwIP [5]) eingesetzt, der im Vergleich mit einem üblichen TCP/IP-Stack nur relativ wenig Ressourcen benötigt, z.B. einen Arbeitsspeicher von lediglich 50 KB. Es werden unter anderem die Protokolle IPv4, TCP (Transmission Control Protocol) und UDP (User Datagram Protocol) sowie DHCP (Dynamic Host Configuration Protocol) unterstützt. LwIP ist unter der BSD-Lizenz (Berkeley Software Distribution) geführt, sodass es zulässig ist, den Code einzusetzen und auch zu modifizieren, solange die Lizenzbedingungen in jeder Datei als Kommentar in den ersten Zeilen stehen.

Für den Datenaustausch zwischen dem Mikrocontroller im Maschinenraum und dem Webserver, der vom Raspberry Pi im Basissystem auf dem Kabinendach realisiert wird, ist ein JSON-basiertes Format (JavaScript Object Notation) definiert worden. Die Daten werden im Klartext in einen String geschrieben, der anschließend über eine Kommunika-tionsschnittstelle versendet wird. Im String liegen die Daten als Liste von Name-Wert-Paaren vor.

In der Praxis zeigte sich jedoch, dass die Generierung eines JSON-Strings mit dem LPC4330-Mikrocontroller viel zu hohe Ausführungszeiten (20–35 ms) zur Folge hat, was im Wesentlichen in der Konvertierung vom Gleitkomma-Format in einen String begründet ist. Grundsätzlich sind derartige Konvertierungen mit einem Mikrocontroller relativ zeitaufwendig, weshalb ein neues, binäres Protokoll definiert wurde, bei dem die Daten nicht im Klartext, sondern als Byte-Parameter dargestellt werden, was zu akzeptablen Ausführungszeiten von 100 µs bis maximal 250 µs führt. Das neue Protokoll besteht aus einem Header mit fester und einer Nutzlast mit variabler Länge sowie drei verschiedenen Datenpaket-Typen: Client-Server, Server-Client, FFT-Paket.

 

Webserver und Darstellung

Das im Demonstrator realisierte Gesamtsystem für das Aufzugsmonitoring mit dem Basissystem in der Kabine (unten) und der Maschinenraumelektronik (oben)
Bild 10. Das im Demonstrator realisierte Gesamtsystem für das Aufzugsmonitoring mit dem Basissystem in der Kabine (unten) und der Maschinenraumelektronik (oben).
© Dembowski

Der Raspberry Pi im Basissystem auf dem Kabinendach stellt ein WLAN mit Verschlüsselung und Password-geschützter Benutzeranmeldung zur Verfügung (Bild 10). Weil ein Zugriff auf das Basissystem nur bei aktiver WLAN-Verbindung möglich ist, wurde keine separate Authentifizierung und auch keine Verschlüsselung der WebSocket-Verbindung implementiert.

Die Seite des Webservers, auf der die Parameter graphisch dargestellt werden, kann mit jedem beliebigen Internet-Browser über eine bestimmte URL erreicht werden, wofür sich das Endgerät, z.B. Smartphone, Tablet-PC, Laptop etc., natürlich im Funknetzwerk (WLAN) des Basissystems befinden muss.

Der finale Webserver basiert auf Netty [6], einem Java-Framework, das mit einer Hyper-SQL-Datenbank kommuniziert, um die Messwerte zu speichern. In der Webseite werden die letzten 120 Messwerte des ausgewählten Parameters grafisch dargestellt und fortlaufend aktualisiert. Über die Schaltknöpfe lässt sich der jeweils darzustellende Sensorwert selektieren (Bild 11).

Die Sensorsignale werden auf der Seite des Webservers grafisch dargestellt.
Bild 11. Die Sensorsignale werden auf der Seite des Webservers grafisch dargestellt. Die in diesem Beispiel gezeigte gemessene Beschleunigung wird zusammen mit den zurückliegenden 120 Messwerten als Verlauf in einem Diagramm angezeigt.
© Dembowski

Die Messdaten werden auf Client-Anforderung (http Pull Server) im JSON-Format übertragen und gleichzeitig in die lokale Datenbank sowie in einen Cache (120 Datensätze) geschrieben, um eine möglichst schnelle Weiterverarbeitung der Daten während der Datenerfassung zu ermöglichen. Mit Hilfe des TCP-Servers wird eine bidirektionale Verbindung zum NXP-Mikrocontroller im Maschinenraum über Powerline aufgebaut, der den Client bildet. Der TCP-Server besteht dabei aus zwei wesentlichen Teilen: Einem TCP-Server in der Klasse TcpServer und der Klasse Sensordaten für die JSON-Objekte. Einstiegspunkt in die Programmierung eines TCP-Servers in Java ist ein ServerSocket, der dabei den Endpunkt einer Verbindung repräsentiert. Ein Socket wird mit einem Port und einer IP-Adresse erstellt.

Die Datenbank (HSQLDB, [7]) im Basissystem enthält die einzelnen Sensordaten mit den Zeitstempeln und belegt lediglich 60 bis 70 MB im Arbeitsspeicher, womit der Raspberry Pi nicht überfordert ist. Die Verbindung zwischen der Datenbank und der Applikation wird über JDBC Connection realisiert. JDBC [8] ist ein Teil der Java-Standardbibliotheken und wird für den Zugriff auf Datenbanken genutzt, wodurch die Programmierung unabhängig von der verwendeten Datenbank ist.

Der Webserver bietet nicht nur die Darstellung der Sensordaten, sondern auch die Konfigurationsmöglichkeit für verschiedene Parameter, wie die Anzahl der Sektoren oder den Treibscheibendurchmesser mit Angaben für die Messintervalle der einzelnen Sensoren:

  • Kalibrierungen: Kalibrierung des Beschleunigungssensors
  • Sensoreninfo: Informationen über die Sensoren in der Sensorbox
  • Messintervalle: Einstellung der Messintervalle für die einzelnen Sensoren
  • Treibscheibe: Festlegen der Betriebsparameter

Zu den Betriebsparametern zählen:

  • SamplingRateSend: Sendepause zwischen den Messdaten aus dem Maschinenraum.
  • StandbyTime: Nach dieser Zeit ohne Interrupt wird der Aufzug als stehend angenommen.
  • Richtung: Korrekturwert für die Drehrichtung (entweder 0 oder 1).
  • Sektoren: Anzahl der schwarzen oder weißen Markierungen auf der Treibscheibe.
  • Treibscheibendurchmesser: Durchmesser der Treibscheibe in Millimetern.
  • Stockwerkshöhe: Durchschnittliche Stockwerkshöhe in Metern.
  • Aktuelles Stockwerk: Das aktuelle Stockwerk, in dem sich der Aufzug momentan befindet.

Das Touch-Display ist in der finalen Version nicht mehr notwendig, weil sich sämtliche Einstellungen und Updates nunmehr über das per WLAN verbundene Endgerät vornehmen lassen, d.h. nach der Montage der Elektronik auf dem Dach der Aufzugskabine (Bild 10) kann dieser Teil quasi als erledigt betrachtet werden.

Das Basissystem mit dem Raspberry Pi arbeitet seit über einem Jahr ohne Probleme, inklusive der WLAN-Kommunikation zwischen dem Raspberry Pi und Endgeräten innerhalb wie außerhalb der Kabine. In der Praxis zeigte sich, dass die Funkkommunikation mit einem Notebook, das die Entwicklungsumgebung nebst den notwendigen Werkzeugen, z.B. PuTTY, enthält, vom Maschinenraum aus über sieben Stockwerke bis hinunter in den Keller (Kanalwirkung) zuverlässig funktioniert.

 

Literatur

[1] Wenn Aufzüge sprechen lernen. TÜV Nord Group, www.tuev-nord-group.com/de/innovation/wenn-aufzuege-sprechen-lernen
[2] LPC4300 Series: High Performance Microcontrollers (MCUs) based on Arm Cortex-M4/M0 Cores. NXP,
www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc4300-cortex-m4-m0:MC_1403790133078?&cof=0&am=0&tab=Products
[3] Präzisions-Barometer Sensormodul MS5611. Amsys, www.amsys.de/products/ms5611.htm
[4] Die Fourier-Transformation, TU Chemnitz, www.tu-chemnitz.de/informatik/ThIS/downloads/courses/ws02/datkom/Fouriertransformation.pdf
[5] LwIP - A Lightweight TCP/IP stack – Summary. Free Software Foundation Inc., http://savannah.nongnu.org/projects/lwip
[6] Netty Documentation. Netty project, http://netty.io/wiki/index.html
[7] HyperSQL. The HSQL Development Group, http://hsqldb.org
[8] The Java Tutorials, Establishing a Connection. Oracle, https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

 

Der Autor

 

Klaus-Dembowski von der TU Hamburg
Klaus-Dembowski von der TU Hamburg.
© Dembowski

Klaus Dembowski

ist Wissenschaftlicher Angestellter im Institut für Mikrosystemtechnik an der Technischen Univer­sität Hamburg. Sein Zuständigkeitsbereich be­inhaltet die Entwicklung von Hard- und Software für Mikrosysteme mit dem Schwerpunkt Anwendungen von Energy Harvesting. Er wurde 2011 und 2017 von der Redaktion der Elektronik für seine Fachaufsätze »Sensornetze mit energiesparender Funktechnik« und »Funkelektroden zur Messung bioelektrischer Si­gnale: EKG ohne Kabel« als »Autor des Jahres« ausgezeichnet.

dembowski@tuhh.de


  1. Nachrüstbares Aufzugsmonitoring
  2. Sensorik an der Treibscheibe
  3. Abtastung der Treibscheibe
  4. Programmierung und Datenaustausch

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu TU Hamburg-Harburg Inst. Für Mikrosystemtechnik

Weitere Artikel zu TÜV NORD CERT GmbH & Co. KG

Weitere Artikel zu TÜV Nord Mobilität GmbH & Co. KG

Weitere Artikel zu Messgeräte

Weitere Artikel zu Messdatenerfassung

Weitere Artikel zu Zertifizierung und Prüfung

Weitere Artikel zu Mikrocontroller

Weitere Artikel zu SBCs / CPU-Boards / CoM / SoM

Weitere Artikel zu Sensoren & -systeme

Weitere Artikel zu Maker-Boards

Weitere Artikel zu Automatisierung