Datalogger

Übersicht

PROCON-CONNECT verfügt über einen integrierten Datenlogger. Mit diesem können Prozessvariablen aufgezeichnet und in einer Datenbank gespeichert werden.

Als Datenbanken stehen zur Verfügung:

  • SQLite dateibasiert

  • SQLite In-Memory

  • InfluxDB v2

In der gewählten Zieldatenbank werden automatisch Metadaten der geloggten Tags gespeichert. Dies ermöglicht eine Auswertung der Daten auf Basis der Datenbank. Weitere API-Zugriffe auf PROCON-Connect sind dadurch häufig nicht notwendig. Details sind im Kapitel zur jeweiligen Datenbank auf dieser Hilfeseite beschrieben.

Datenbankverbindungen

Uebersicht

Die Übersicht über die Datenbankverbindungen ist wie folgt aufgebaut:

  1. Datenbankverbindungen: Vorhandene Datenbankverbindungen mit Name und Datenbanktyp.

  2. Datenlogger: Verbindungen können aufgeklappt werden, um die Datenlogger der Verbindung anzuzeigen.

  3. Datenlogger hinzufügen: Der Datenbankverbindung einen neuen Datenlogger hinzufügen.

  4. Neue Verbindung: Eine neue Datenbankverbindung hinzufügen. Verbindungen zu einer lokalen SQLite oder einer InfluxDB sind möglich.

  5. Dreipunktmenü: Über das Menü am Zeilenende können Datalogger bearbeitet, exportiert oder gelöscht werden.

Wahl des richtigen Datenbanktyps

PROCON-Connect unterstützt drei verschiedene Datenbanksysteme zur Speicherung von Zeitreihendaten, die durch Datalogger erfasst werden:

  • SQLite dateibasiert

  • SQLite In-Memory

  • InfluxDB v2

Jede dieser Optionen hat spezifische Eigenschaften sowie Vor- und Nachteile. Die Auswahl der richtigen Datenbank hängt maßgeblich vom Einsatzzweck, der Systemumgebung und den Leistungsanforderungen ab. In diesem Kapitel finden Sie eine Entscheidungshilfe zur Auswahl des geeigneten Datenbanksystems.

SQLite dateibasiert

SQLite ist eine leichtgewichtige, serverlose SQL-Datenbank, die Daten in einer einzelnen Datei auf dem Dateisystem speichert.

Vorteile:

  • Keine Installation oder Konfiguration eines externen Datenbankservers notwendig.

  • Geringe Systemanforderungen.

  • Leicht zu sichern und zu übertragen (eine einzelne .db-Datei).

  • Ideal für Embedded-Systeme oder Edge-Devices.

Nachteile:

  • Performance schnell begrenzt bei größeren Datenmengen.

  • Kein paralleler Zugriff.

  • Keine native Unterstützung für Zeitreihenanalysen.

Typische Anwendungsfälle:

  • Lokale Datenerfassung auf einem Raspberry Pi oder IPC.

  • Anwendungen mit begrenztem Speicherbedarf.

SQLite In-Memory

Bei der In-Memory-Variante von SQLite werden alle Daten ausschließlich im Arbeitsspeicher gehalten. Es erfolgt keine persistente Speicherung.

Vorteile:

  • Sehr hohe Lese- und Schreibgeschwindigkeit.

  • Minimale Latenzen, da nicht auf Dateien zugegriffen werden muss.

  • Ideal für temporäre Analysen mit edgeML.

Nachteile:

  • Daten gehen beim Neustart der Software verloren.

  • Begrenzte Speicherkapazität abhängig vom verfügbaren RAM.

Typische Anwendungsfälle:

  • Temporäre Datenanalyse oder -aggregation.

  • Kurzfristige Zwischenspeicherung in der Laufzeitumgebung.

  • Daten kurzfristig für andere Dienste wie edgeML bereitstellen.

InfluxDB v2

InfluxDB ist eine spezialisierte Zeitreihendatenbank, die für hohe Schreiblast und effiziente Abfragen über Zeitachsen hinweg optimiert ist. Die Version 2 bietet ein modernes API, integrierte Authentifizierung und eine leistungsstarke Abfragesprache (Flux).

Vorteile:

  • Hohe Performance bei großen Datenmengen.

  • Optimiert für Zeitreihenanalysen (z. B. Aggregationen, Windowing, Downsampling).

  • Webinterface und API-Zugriff.

  • Skalierbarkeit für produktive Systeme.

Nachteile:

  • Externer Datenbankserver erforderlich.

  • Höherer Ressourcenverbrauch.

  • Initiale Einrichtung und Konfiguration notwendig.

Typische Anwendungsfälle:

  • Zentrale Datensammlung und Langzeitspeicherung.

  • Industrieumgebungen mit hoher Messfrequenz.

  • Integration in bestehende Monitoring- oder Visualisierungslösungen (z. B. Grafana).

Entscheidungshilfe

Die folgende Tabelle bietet eine kompakte Übersicht über die drei Optionen:

Kriterium

SQLite dateibasiert

SQLite In-Memory

InfluxDB v2

Persistenz

Ja

Nein

Ja

Setup-Aufwand

Kein Aufwand

Kein Aufwand

Mittel bis hoch

Performance

Mittel

Hoch

Hoch

Paralleler Zugriff

Nein

Nein

Ja

Eignung für Zeitreihen

Eingeschränkt

Eingeschränkt

Sehr gut

Typischer Einsatz

Lokal

Temporär

Vernetzte Systeme

SQLite dateibasiert

Dateibasierte SQLite Datenbanken können unter einem beliebigen Pfad erzeugt werden. Die Pfadangabe ist mit einem Default-Wert vorbelegt, kann jedoch geändert werden. Das Info-Feld zeigt den vollen Pfad auf die neue Datenbank an. Der Pfad setzt sich aus der Pfadeingabe sowie dem Datenbanknamen zusammen. Diese Kombination muss eindeutig sein.

Der Datenbankname darf aus Kompatibilitätsgründen zu verschiedenen Betriebssystemen nur die folgenden Zeichen enthalten:

  • Großbuchstaben: A-Z

  • Kleinbuchstaben: a-z

  • Ziffern: 0-9

  • Erlaubte Sonderzeichen: -_

Der Pfad kann auch auf ein USB-Gerät oder eine SD-Karte verweisen. In einer container-basierten Umgebung ist dabei auf Folgendes zu achten:

  • Das Speichermedium muss am Host-System gemountet und erkannt sein.

  • Der Container, in dem PROCON-Connect läuft, muss den Mount-Pfad des Speichermediums einbinden.

  • Der Container, in dem PROCON-Connect läuft, benötigt passende Zugriffsrechte auf das Speichermedium.

Der Zugriff auf den hinterlegten Pfad wird getestet:

  • Manuell: Bei Klick auf den Button Pfad prüfen,

  • Automatisch: Beim Versuch, die Konfiguration zu speichern.

Metadaten

Zu jedem geloggten Tag werden auch Metadaten in der SQLite Datenbank gespeichert, um eine Auswertung der Daten über die Datenbank selbst zu erleichtern.

Die Metadaten werden für SQLite Datenlogger in der Tabelle tagDefinitions abgelegt. Die Tabelle enthält folgende Felder:

  • id: Technischer Schlüssel, der auch einzelne Array-Felder eindeutig adressieren kann.

  • uuid: Technischer Schlüssel, der einen Tag bis auf Array-Ebene eindeutig identifiziert.

  • name: Name des Tags.

  • arraySize: Größe des Arrays. Für einfache Tags ist der Wert 1.

  • type: Datentyp des Tags. Numerisch, Boolean oder String.

  • ioType: Kommunikationsverhalten des Tags. Input, Output oder BiDir.

  • designerTagId: TagId im PROCON-WEB Designer. Nur für HMI-Tags verfügbar.

  • local: Flag für lokale Tags.

  • system: Flag für System-Tags. 1 für System-Tags, 0 für projektspezifische Tags.

  • driver: Name des Treibers, über den der Tag angebunden ist.

  • checksum: Check-Summe über die Metadaten.

Zeitreihendaten

Die geloggten Zeitreihendaten werden in der Tabelle loggerValues abgelegt. Die Tabelle enthält folgende Felder:

  • id: Technischer Schlüssel, der auch einzelne Array-Felder eindeutig adressieren kann.

  • dateTime: Zeitstempel des Werts als UNIX timestamp.

  • logValue: Feld für Booleans.

  • numValue: Feld für nummerische Werte.

  • stringValue: Feld für textuelle Werte.

Verkleinern der Datenbank

Nach dem Auftreten dieser Ereignisse wird die betroffene Datenbank automatisch verkleinert, sodass diese weniger Speicherlatz benötigt:

  • Löschen eines Datenloggers.

  • Reduktion des Löschintervalls eines Datenloggers.

SQLite In-Memory

In-Memory SQLite Datenbanken werden ausschließlich im Arbeitsspeicher gehalten. Die Daten werden nicht dauerhaft persistiert. Für die Konfiguration muss lediglich der eindeutige Datenbankname angegeben werden.

Der Datenbankname darf aus Kompatibilitätsgründen zu verschiedenen Betriebssystemen nur die folgenden Zeichen enthalten:

  • Großbuchstaben: A-Z

  • Kleinbuchstaben: a-z

  • Ziffern: 0-9

  • Erlaubte Sonderzeichen: -_

Leerung der Datenbank

Die Datenbank wird lediglich im Arbeitsspeicher gehalten. Dadurch wird die Datenbank inklusive aller Daten bei bestimmten Aktionen verworfen. Beim nächsten Start des Datalogger Service wird die Datenbank von Grund auf neu aufgebaut.

Aktionen, die zum Verwerfen von In-Memory SQLite Datenbanken führen, sind:

  • Projektwechsel in PROCON-Connect.

  • Beenden/Neustart des Datalogger Service.

  • Beenden/Neustart von PROCON-Connect.

  • Beenden/Neustart des Geräts.

  • Sonstige Aktionen, die den Datalogger Service beenden oder neustarten.

Metadaten

Zu jedem geloggten Tag werden auch Metadaten in der SQLite Datenbank gespeichert, um eine Auswertung der Daten über die Datenbank selbst zu erleichtern.

Die Metadaten werden für SQLite Datenlogger in der Tabelle tagDefinitions abgelegt. Die Tabelle enthält folgende Felder:

  • id: Technischer Schlüssel, der auch einzelne Array-Felder eindeutig adressieren kann.

  • uuid: Technischer Schlüssel, der einen Tag bis auf Array-Ebene eindeutig identifiziert.

  • name: Name des Tags.

  • arraySize: Größe des Arrays. Für einfache Tags ist der Wert 1.

  • type: Datentyp des Tags. Numerisch, Boolean oder String.

  • ioType: Kommunikationsverhalten des Tags. Input, Output oder BiDir.

  • designerTagId: TagId im PROCON-WEB Designer. Nur für HMI-Tags verfügbar.

  • local: Flag für lokale Tags.

  • system: Flag für System-Tags. 1 für System-Tags, 0 für projektspezifische Tags.

  • driver: Name des Treibers, über den der Tag angebunden ist.

  • checksum: Check-Summe über die Metadaten.

Zeitreihendaten

Die geloggten Zeitreihendaten werden in der Tabelle loggerValues abgelegt. Die Tabelle enthält folgende Felder:

  • id: Technischer Schlüssel, der auch einzelne Array-Felder eindeutig adressieren kann.

  • dateTime: Zeitstempel des Werts als UNIX timestamp.

  • logValue: Feld für Booleans.

  • numValue: Feld für nummerische Werte.

  • stringValue: Feld für textuelle Werte.

InfluxDB

Über diesen Zieltyp wird eine Verbindung zu einer InfluxDB v2 hergestellt. Die Datenbank selbst sowie der Bucket müssen bereits existieren. Andere Hauptversionen von InfluxDB werden aufgrund des stark abweichenden Datenmodells zwischen den Versionen nicht unterstützt.

Das Ereignisprotokoll gibt Auskunft darüber, ob ein Verbindungsversuch erfolgreich war und gibt Hinweise auf eventuelle Fehlerquellen.

InfluxDB
  1. Verbindungsname: Eindeutiger Verbindungsname, kann individuell vergeben werden.

  2. URL: Hostname oder IP inkl. Port zur InfluxDB v2 z.B. 192.168.1.164:8080.

  3. Datenbank: Name der Datenbank (optional).

  4. Organisation: Untergliederung der Datenbank.

  5. Bucket: Bucket, in das geloggt werden soll. Das Bucket muss bereits in der InfluxDB angelegt worden sein.

  6. Aufbewahrungsregel: Name der Aufbewahrungsregel aus InfluxDB. Der Default autogen wählt die Voreinstellung der Datenbank.

  7. API-Token: Zugriffs- bzw. Authentifizierungsschlüssel der InfluxDB. Muss während des Erzeugens eines Clients aus der InfluxDB kopiert werden. Ein späterer Zugriff auf den Token ist nicht möglich.

Metadaten und Zeitreihendaten

Metadaten und Zeitreihendaten werden in Influx gemeinsam abgelegt. Die Felder sind wie folgt:

  • id: Technischer Schlüssel, der auch einzelne Array-Felder eindeutig adressieren kann.

  • uuid: Technischer Schlüssel, der einen Tag bis auf Array-Ebene eindeutig identifiziert.

  • name: Name des Tags.

  • arraySize: Größe des Arrays. Für einfache Tags ist der Wert 1.

  • type: Datentyp des Tags. Numerisch, Boolean oder String.

  • ioType: Kommunikationsverhalten des Tags. Input, Output oder BiDir.

  • designerTagId: TagId im PROCON-WEB Designer. Nur für HMI-Tags verfügbar.

  • local: Flag für lokale Tags.

  • system: Flag für System-Tags. 1 für System-Tags, 0 für projektspezifische Tags.

  • driver: Name des Treibers, über den der Tag angebunden ist.

  • checksum: Check-Summe über die Metadaten.

  • dateTime: Zeitstempel des Werts als UNIX timestamp.

  • logValue: Feld für Booleans.

  • numValue: Feld für nummerische Werte.

  • stringValue: Feld für textuelle Werte.

Konfiguration eines Datenloggers

Datenlogger werden unabhängig vom Typ der Zieldatenbank gleich konfiguriert.

Logger_Settings
  1. Allgemeine Einstellungen: Tab für die allgemeine Konfiguration des Datenloggers.

  2. Tags: Tab für Auswahl der aufzuzeichnenden Variablen.

  3. Verbindungsname: Frei wählbarer Verbindungsname. Der Verbindungsname muss eindeutig sein.

  4. Loggername: Frei wählbarer Name eines Datenloggers. Der Loggername muss eindeutig sein.

  5. Abtastrate: Nummerische Konfiguration des Speicherzyklus. Das Minimum beträgt 200 Millisekunden.

  6. Einheit: Auswahl der Einheit für den Speicherzyklus. Auswählbar sind Minuten, Sekunden oder Millisekunden.

  7. Schalter-Tag: Auswahl für ein Boolean Flag, das als Schalter agiert. Ist das gewählte Boolean 1, wird geloggt. Ist das Boolean 0, wird nicht geloggt.

  8. Löschintervall: Intervall in Tagen, nach dem die gespeicherten Werte automatisch gelöscht werden.

  9. Hat Prüfsumme: Aufnahme einer Prüfsumme für die geloggten Werte, um deren Integrität nachvollziehen zu können. Wird bspw. für FDA Konformitätsprüfung benötigt.

Im Tab Tags werden die zu speichernden Tags ausgewählt.

Tags
  1. Filter: Ermöglicht Filterung der Tag-Liste nach den Namen der Tags.

  2. Name: Name des Tags.

  3. Typ: Typ der Variablen.

  4. Schwellwert: Notwendige, absolute Wertänderung im Vergleich zum Vorgängerwert, ab der ein Datensatz geschrieben wird.

  5. Löschen: Den Tag aus dem Datalogger entfernen. Der Tag selbst wird nicht gelöscht.

  6. Erfasste Tags definieren: Konfiguration der aufzuzeichnenden Tags über Checkboxes.

Exportieren von geloggten Daten

Geloggte Daten können exportiert werden. Der Einstiegspunkt befindet sich am Datalogger, zu sehen im Kapitel Datenbankverbindungen.

Der Dateiname der Export-Datei wird automatisch vergeben nach dem Muster [Datalogger-Name]_[Exportzeitraum].

Export dialog
  1. Zeitauswahl: Die Zeitauswahl erlaubt eine zeitliche Filterung der Daten für den Export.

  2. Exportformat: Wählen Sie das Zielformat für den Export. Aktuell steht nur csv-Export zur Verfügung.

  3. Ziel des Exports: Die Exportdatei kann entweder auf den Client oder das Host-System exportiert werden. Für den Client-Export wird die Download-Funktion des Browsers genutzt.

  4. Pfadauswahl: Soll auf das Host-System exportiert werden, wird die Export-Datei auf dem Dateisystem des Host-Systems gespeichert. Hier geben Sie den Pfad an, in dem die Export-Datei gespeichert werden soll. Der Dateiname wird automatisch erzeugt.

  5. Tag-Auswahl: Die Tag-Auswahl erlaubt eine Filterung auf bestimmte Tags für den Export. Nur ausgewählte Tags werden in den Export aufgenommen.

  6. Export-Button: Nach Klick des Buttons wird der Export unmittelbar angestoßen.