Zum Hauptinhalt springen

Architecture

In diesem Abschnitt sollen die Komponenten der smartCORE Edge-Device Software vorgestellt werden.

Achitektur

Maßgeblich für die smartCORE Software ist eine Producer-Consumer-basierte Datenfluss-Architektur. Hierbei werden produzierende Module (Quellen) über im smartCORE verwaltete Kanäle mit konsumierenden Modulen (Senken) verbunden. Diese Module können auf vielfältige Art und Weise durch den Benutzer konfiguriert bzw. parametrisiert werden.

Die Module werden normalerweise mittels Messkonfiguration an die Aufgabenstellung des Nutzers angepasst. Die Messkonfiguration ist in der Konfigurationsdatei

/sdi/config/smartcore_dynamic.json

auf dem Messgerät gespeichert und bleibt insbesondere bei einem Upgrade sowohl von smartCORE als auch Betriebssystem erhalten.

Modultypen

Es wird grundsätzlich aus Sicht der Software zwischen produzierenden und konsumierenden Modulen unterschieden, wobei

  • produzierende Module Kanäle erstellen und Daten-Samples in diese Kanäle schreiben
  • konsumierende Module Daten-Samples aus Kanälen lesen
info

Neben rein konsumierenden und rein produzierenden Modulen gibt es auch eine ganze Reihe von Modulen, die sowohl Producer als auch Consumer sind, um bidirektionale Kommunikation zu ermöglichen.

Aus Nutzersicht ist es jedoch sinnvoller, Module bzgl. ihrer Funktionalität zu kategorisieren. Als sinnvoll hat sich eine Kategorisierung in Anwendungs-bezogene sowie Anwender-bezogene Module erwiesen. Während anwendungs-bezogene Module die Kommunikation zur Mess-/Regelungstechnik-Seite sicherstellen, sind Anwender-bezogene Module (zumindest indirekt) für die Kommunikation mit dem Benutzer zuständig.

Anwendungs-bezogene Module

ModulBeschreibung
accelerometerSchnittstelle zum Beschleunigungssensor
batmonSchnittstelle zum batMON
canbusSchnittstelle zu CAN-Bus Interfaces zur Kommunikation roher CAN-Bus Daten
dbcInterpreter/Decoder für die Extraktion von Kanaldaten aus rohen CAN-Bus Daten anhand einer DBC Spezifikation
fmconsumerEncoder von Kanaldaten zur Bereitstellung roher Daten, die über externe Schnittstellen, wie z.B. CAN-Bus verschickt werden können
fmproducerInterpreter/Decoder für die Extraktion von Kanaldaten aus Rohdaten, die von externen Schnittstellen, wie z.B. CAN-Bus oder MVB gelesen werden können
fmudpUDP-Schnittstelle, die interpretierbare Rohdaten bereitstellt (nur in Leserichtung)
gpsSchnittstelle zum GPS (GPSD Service entweder auf Gerät oder im Internet)
hwioSchnittstelle zur Abbildung digitaler Ein- und Ausgänge sowie von LEDs des Messgeräts
modbusSchnittstelle zum ModBus
smiohpSchnittstelle zur optiMEAS smartIO High Performance Hardware
Anwendungs-bezogene Module für Schienenfahrzeuge
ModulBeschreibung
mvbSchnittstelle zum Auslesen des MVB via UDP-Protokoll, wie seitens duagon D503 bereitgestellt
smartmvbSchnittstelle zum Auslesen des MVB via optiMEAS smartIO MVB Hardware

Anwender-bezogene Module

ModulBeschreibung
csvwriterModul zur Erstellung von CSV Dateien aus Kanaldaten (inkl. vielfältiger Möglichkeiten zur getriggerten Aufzeichnung)
diagnosticsModul zur Überwachung von Kanälen und hierauf basierender Erstellung von Alarmen
eventcounterEreigniszähler
geofencingModul für Aufgaben des Geofencings
httpModul für die Kommunikation mittels HTTP-Anfragen
mathModul zur mathematischen Verarbeitung von Kanaldaten in Kanaldaten
mqttModul zur Kommunikation via MQTT
odometerModul zur Wegstreckenerfassung
opticloudModul zur Kommunikation mit der optiMEAS optiCLOUD
osfudpstreamerModul, dass Kanaldaten in Form eines OSF Daten-Streams via UDP verschickt
osfwriterModul, dass Kanaldaten in Form eines OSF Daten-Streams in Dateien schreibt
smsModul, dass in Reaktion auf ein Trigger Signal eine SMS verschickt
smsalarmsModul, dass in Reaktion auf eine neue Alarmmeldung eine SMS verschickt
sshModul zur Kommunikation via SFTP und SSH
systeminfosModul zur Bereitstellung von Systeminformationen des Messgeräts
uptimeModul zur Erfassung von Zählerständen (z.B. der Betriebsstunden eines Systems)

Sowohl im Anwendungs- als auch im Anwender-Kontext einsetzbare Module

ModulBeschreibung
opcuaclientClient zur Kommunikation mit OPC/UA Servern
opcuaserverServer zur Kommunikation mit OPC/UA Clients
remoteModul, dass eine bidirektionale Kanaldaten-Kommunikation via IPC bereitstellt

Module für Testszenarien

ModulBeschreibung
functiongeneratorFunktionsgenerator zur Produktion von Kanaldaten
playbackModul zur synthetischen Produktion von Kanaldaten anhand eines Playback-Protokolls