Zum Inhalt springen

Digitale Vernetzung und Industrial IoT – Zeitreihen für Anlagenzustände speichern

Aus MOOCsWiki Staging
Die Druckversion wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.
aiMOOC-Siegel aiMOOC

Digitale Vernetzung und Industrial IoT – Zeitreihen für Anlagenzustände speichern

QR-Code



Digitale Vernetzung und Industrial IoT – Zeitreihen für Anlagenzustände speichern

Zielgruppe: Ausbildung in Mechatronik, Automatisierungstechnik, IT und Industrie 4.0

Kurzbeschreibung: Zeitauflösung und Aufbewahrung von Messdaten.

Dauer: Ca. 90 Minuten einschließlich Praxis und Lernkontrolle.

Vorkenntnisse: Grundkenntnisse in Python und Messdatenerfassung sind hilfreich.


Einleitung

Wie speicherst Du Temperatur-, Druck- oder Schwingungswerte einer Anlage so, dass Du Störungen später noch erkennen kannst?

In diesem aiMOOC lernst Du, Zeitreihen zu speichern, passende Messintervalle zu wählen und Aufbewahrungsfristen zu begründen.

Abbildung: Entwicklung zur Industrie 4.0. Die dargestellte Grafik ist ein allgemeines Überblicksbild und zeigt nicht unsere fiktive Ausbildungsanlage.

Dein Lernweg:

  1. IIoT und Zeitreihen verstehen.
  2. Zeitauflösung festlegen.
  3. Messwerte verdichten und Spitzen erkennen.
  4. Zeitreihen lokal speichern.
  5. Aufbewahrung und Löschung simulieren.

Wichtig: Alle praktischen Übungen verwenden ausschließlich fiktive Daten in lokalen, voneinander getrennten Testumgebungen. Du benötigst keine SPS, keine Cloud, keine Zugangsdaten und keine Netzwerkverbindung.


Ausbildungsfall: Förderband A

Du arbeitest in einer Ausbildungswerkstatt. Ein fiktives Förderband besitzt einen Temperaturfühler am Motorlager.

Die Instandhaltung stellt zwei Fragen:

  1. Gab es eine kurze Temperaturüberschreitung?
  2. Wie lange müssen Rohdaten und verdichtete Daten gespeichert werden?

Beispiel für die Überwachung einer industriellen Fertigung. Das Foto zeigt nicht das Förderband aus dem Ausbildungsfall.


Die Ausgangsdaten

Merkmal Wert
Anlagenname Förderband A, fiktiv
Sensor Motorlager-Temperatur
Normalwert 42 °C
Künstlicher Testimpuls 82 °C
Impulsdauer 5 Sekunden
Rohdatenintervall 1 Sekunde
Beobachtungsdauer 120 Sekunden
Beispiel-Aufbewahrung 7 Tage Rohdaten, 90 Tage Kennwerte

Hinweis: Der abrupte Temperaturimpuls ist bewusst künstlich. Er dient der Prüfung des Datenverhaltens und ist kein physikalisches Modell eines Motorlagers.

Dein Auftrag: Entscheide, welche Zeitauflösung Störungen sichtbar macht und welche Informationen nach einer Verdichtung erhalten bleiben.


Lerneinheit 1: Was ist eine Zeitreihe?

Lernzeit: 8 Minuten

Eine Zeitreihe besteht aus Werten mit zeitlicher Zuordnung. Im IIoT werden beispielsweise Temperatur, Stromaufnahme, Druck und Vibration als Zeitreihen erfasst.

Beispiel eines digitalen Temperatursensors. Für unseren Versuch wird kein echter Sensor angeschlossen.


Der Weg eines Messwerts

Schritt Aufgabe
Sensor Messgröße erfassen
Zeitstempel Messzeitpunkt festhalten
Rohdatenbank Einzelmessungen speichern
Aggregation Kennwerte für Zeitfenster bilden
Retention Aufbewahrung begrenzen

Merkregel: Ein Messwert ohne zuverlässigen Zeitpunkt ist für die zeitliche Fehleranalyse nur eingeschränkt brauchbar.

Speichere möglichst eine Sensor-ID, einen eindeutigen Zeitstempel, den Wert und die physikalische Einheit. Für systemübergreifende Auswertungen sind UTC-Zeitstempel zweckmäßig.

Video: InfluxData – Introduction to Time Series Databases. Englisch, optional.


Mini-Aufgabe: Basis

Erstelle eine Tabelle mit fünf selbst erfundenen Temperaturmesswerten und eindeutigen Zeitstempeln.

Feedback: Eine gute Tabelle zeigt, welcher Sensor welchen Wert zu welcher Zeit geliefert hat. Fehlt der Zeitstempel, kannst Du den Verlauf nicht zuverlässig rekonstruieren.


Lerneinheit 2: Zeitauflösung verstehen

Lernzeit: 10 Minuten

Die Abtastrate beschreibt, wie häufig Messwerte erfasst werden.

Intervall Werte pro Sensor und Tag
1 Sekunde 86.400
10 Sekunden 8.640
60 Sekunden 1.440

Ein kürzeres Intervall liefert mehr zeitliche Details, erzeugt aber auch mehr Daten.

Kontinuierliche und diskrete Signale im Vergleich.


Warum kurze Ereignisse verschwinden können

Wenn Du nur zur vollen Minute misst, kann ein Ereignis zwischen zwei Messzeitpunkten unentdeckt bleiben.

Aliasing: Unterschiedliche Signalverläufe können bei ungünstiger Abtastung dieselben Messpunkte ergeben.

Bei periodischen Signalen ist zusätzlich das Nyquist-Shannon-Abtasttheorem wichtig. Für die hier betrachtete kurze Spitze gilt unmittelbar: Wird sie nie gemessen, kann auch eine spätere Datenbankaggregation sie nicht zurückholen.

Merke: Zeitauflösung, Messgenauigkeit und Aufbewahrungsdauer sind unterschiedliche Eigenschaften.


Visualisierung: Einzelstichprobe oder Fenstermaximum?

Für unser künstliches Beispiel gelten:

Zeitfenster UTC Einzelstichprobe am Minutenanfang Minutenmittelwert Minutenmaximum
08:00–08:00:59 42 °C 42,00 °C 42 °C
08:01–08:01:59 42 °C 45,33 °C 82 °C

Das Maximum wird aus den zuvor erfassten Sekundendaten berechnet. Der Mittelwert schwächt die kurze Spitze deutlich ab.

Kontrollfrage: Welcher Kennwert beweist im zweiten Fenster, dass mindestens ein hoher Wert aufgetreten ist?

Feedback: Das Maximum von 82 °C weist die Spitze nach. Es verrät allein aber weder den exakten Zeitpunkt noch die Dauer des Ereignisses.


Lerneinheit 3: Lokales Zeitreihenlabor

Lernzeit: 15 Minuten

Jetzt erzeugst und untersuchst Du eine Zeitreihe selbst.

SQLite ist eine eingebettete Datenbank. Mit Python kannst Du sie ohne zusätzlichen Datenbankserver nutzen.

Vorbereitung: Speichere das folgende Programm als zeitreihe_local.py. Starte es lokal mit python3 zeitreihe_local.py oder unter Windows mit py zeitreihe_local.py.

Das Programm benötigt nur Python 3 mit Standardbibliothek. Die Datenbank liegt ausschließlich im Arbeitsspeicher und verschwindet beim Beenden.


Testumgebung A: Zeitauflösung und Aggregation

from datetime import datetime, timezone
import sqlite3

# Ausschließlich fiktive Daten; keine Netzwerkzugriffe
start = int(datetime(
    2026, 1, 1, 8, 0, tzinfo=timezone.utc
).timestamp())

db = sqlite3.connect(":memory:")

db.execute("""
CREATE TABLE roh (
    sensor TEXT,
    ts INTEGER,
    c REAL,
    PRIMARY KEY(sensor, ts)
)
""")

# 120 Sekunden: normal 42 °C, Testimpuls 82 °C
db.executemany(
    "INSERT INTO roh VALUES (?, ?, ?)",
    (
        (
            "Motorlager_A",
            start + s,
            82.0 if 73 <= s <= 77 else 42.0
        )
        for s in range(120)
    )
)

db.execute("""
CREATE TABLE minute (
    sensor TEXT,
    bucket INTEGER,
    mittel REAL,
    minimum REAL,
    maximum REAL,
    n INTEGER,
    PRIMARY KEY(sensor, bucket)
)
""")

# Verdichten: zuerst Rohdaten, dann Minutenkennwerte
db.execute("""
INSERT INTO minute
SELECT sensor, (ts / 60) * 60,
       ROUND(AVG(c), 2), MIN(c), MAX(c), COUNT(*)
FROM roh
GROUP BY sensor, (ts / 60) * 60
""")

wahl = input(
    "Einzelstichprobe alle 1, 10 oder 60 s? [60]: "
).strip()

intervall = int(wahl) if wahl in ("1", "10", "60") else 60

werte = [
    c for (c,) in db.execute(
        """SELECT c FROM roh
           WHERE (ts - ?) % ? = 0
           ORDER BY ts""",
        (start, intervall)
    )
]

print("Stichproben:", len(werte))
print("Hoechster Einzelwert:", max(werte), "Grad C")

if max(werte) == 82:
    print("Feedback: Testimpuls erkannt.")
else:
    print("Feedback: Testimpuls durch Stichprobe verfehlt.")

print("\nMinutenkennwerte in UTC:")
for bucket, mittel, minimum, maximum, n in db.execute(
    """SELECT bucket, mittel, minimum, maximum, n
       FROM minute ORDER BY bucket"""
):
    uhr = datetime.fromtimestamp(
        bucket, timezone.utc
    ).strftime("%H:%M")

    print(
        f"{uhr} | Mittel {mittel:.2f} | "
        f"Min {minimum:.0f} | Max {maximum:.0f} | n={n}"
    )

print("\n10-Sekunden-Maxima")
print("Ein # entspricht 2 Grad C ueber 40 Grad C.")

for s in range(0, 120, 10):
    spitze = db.execute(
        """SELECT MAX(c) FROM roh
           WHERE ts >= ? AND ts < ?""",
        (start + s, start + s + 10)
    ).fetchone()[0]

    balken = "#" * int((spitze - 40) / 2)
    print(f"{s:03d}-{s+9:03d} s | {balken} {spitze:.0f} C")

assert db.execute(
    "SELECT MAX(maximum) FROM minute"
).fetchone()[0] == 82.0

db.close()


Erwartetes Bild der Daten

10-Sekunden-Maxima
Ein # = 2 Grad C ueber 40 Grad C

000-009 s | #                     42 C
010-019 s | #                     42 C
020-029 s | #                     42 C
030-039 s | #                     42 C
040-049 s | #                     42 C
050-059 s | #                     42 C
060-069 s | #                     42 C
070-079 s | ##################### 82 C
080-089 s | #                     42 C
090-099 s | #                     42 C
100-109 s | #                     42 C
110-119 s | #                     42 C

Aufgabe: Führe das Programm dreimal mit den Einstellungen 1, 10 und 60 Sekunden aus.

Einstellung Erwartung Begründetes Feedback
1 Sekunde 82 °C erkannt Der Impuls gehört zu den erfassten Einzelmessungen.
10 Sekunden Nur 42 °C Der Impuls liegt zwischen den ausgewählten Stichproben.
60 Sekunden Nur 42 °C Auch die beiden Minuten-Stichproben verpassen den Impuls.

Wichtig: Das 10-Sekunden-Fenstermaximum ist nicht dasselbe wie eine Einzelmessung alle zehn Sekunden. Ein Maximum benötigt die zuvor tatsächlich erfassten feineren Rohwerte.


Gestufte Hilfen für Labor A

Hilfe 1 – Orientierung: Prüfe zuerst, wann der Testimpuls beginnt und endet.

Hilfe 2 – Vorgehen: Vergleiche die Sekunden 73 bis 77 mit den Messzeitpunkten Deiner eingestellten Stichprobe.

Hilfe 3 – Lösung: Nur die Einzelstichprobe mit 1-Sekunden-Abstand erfasst die Spitze. Das berechnete 10-Sekunden-Maximum bewahrt sie ebenfalls, weil es auf allen Sekundendaten basiert.


Lerneinheit 4: Aufbewahrung und Datenmenge

Lernzeit: 10 Minuten

Die Aufbewahrungsdauer wird häufig als Retention bezeichnet.

Für unser Beispiel kannst Du zwei Speicherstufen vorsehen:

Datenart Auflösung Beispiel-Aufbewahrung
Rohdaten 1 Sekunde 7 Tage
Minutenkennwerte 1 Minute 90 Tage

Dies sind didaktische Beispielwerte, keine allgemeingültigen gesetzlichen oder technischen Vorgaben.

Wichtige Regel: Erzeuge und sichere die benötigten Kennwerte, bevor die zugehörigen Rohdaten ablaufen. Ein Mittelwert allein ist ungeeignet, wenn kurze Spitzen nachgewiesen werden müssen. Ergänze in solchen Fällen beispielsweise Minimum, Maximum und Anzahl der Messwerte.

Video: InfluxData – Retention Policies in InfluxDB. Englisch, optional.


Speicherbedarf abschätzen

Bei vier Sensoren mit jeweils einem Messwert pro Sekunde entstehen:

4 Sensoren x 86.400 Sekunden
= 345.600 Messpunkte pro Tag

7 Tage Rohdaten:
= 2.419.200 Messpunkte

90 Tage mit einem Minuten-Datensatz je Sensor:
= 518.400 Minuten-Datensaetze

Die Datensatzanzahl entspricht nicht unmittelbar dem Speicherbedarf in Byte. Dieser hängt unter anderem von Datentypen, Indexen, Datenbankformat und Kompression ab.

Praxisfrage: Warum können 90 Tage verdichtete Daten weniger Speicher beanspruchen als sieben Tage Rohdaten?

Feedback: Der entscheidende Faktor ist die Anzahl und Größe gespeicherter Datensätze, nicht allein die Aufbewahrungsdauer.


Lerneinheit 5: Interaktives Retention-Labor

Lernzeit: 15 Minuten

In einer zweiten isolierten Testumgebung simulierst Du das Löschen alter Rohwerte.

So funktioniert es: Das Programm legt für zehn fiktive Tage jeweils einen Temperaturwert pro Minute an. Danach berechnet es Tageskennwerte und löscht Rohdaten nach einer von Dir gewählten Frist.

Die simulierte Zeit ist fest auf den 11. Januar 2026 um 00:00 UTC eingestellt.

Speichere den Code als retention_sandbox.py und starte ihn lokal.


Testumgebung B: Aufbewahrungsdauer ändern

from datetime import datetime, timezone
import sqlite3

# Feste Simulationszeit; nur fiktive Daten
jetzt = int(datetime(
    2026, 1, 11, tzinfo=timezone.utc
).timestamp())

start = jetzt - 10 * 86400
db = sqlite3.connect(":memory:")

db.execute("""
CREATE TABLE roh (
    ts INTEGER PRIMARY KEY,
    c REAL
)
""")

db.execute("""
CREATE TABLE tageswerte (
    tag INTEGER PRIMARY KEY,
    mittel REAL,
    maximum REAL
)
""")

# Zehn Tage, ein fiktiver Messwert pro Minute
db.executemany(
    "INSERT INTO roh VALUES (?, ?)",
    (
        (
            start + tag * 86400 + minute * 60,
            72.0 if minute == 73 else 42.0 + tag % 3
        )
        for tag in range(10)
        for minute in range(1440)
    )
)

# Tageskennwerte vor der Löschung erzeugen
db.execute("""
INSERT INTO tageswerte
SELECT (ts / 86400) * 86400,
       ROUND(AVG(c), 2),
       MAX(c)
FROM roh
GROUP BY (ts / 86400) * 86400
""")

wahl = input(
    "Rohdaten 2, 7 oder 10 Tage behalten? [7]: "
).strip()

tage = int(wahl) if wahl in ("2", "7", "10") else 7

# Ausschließlich lokale Löschung in der RAM-Datenbank
db.execute(
    "DELETE FROM roh WHERE ts < ?",
    (jetzt - tage * 86400,)
)

# Tageskennwerte bleiben bis zu 90 Tage erhalten
db.execute(
    "DELETE FROM tageswerte WHERE tag < ?",
    (jetzt - 90 * 86400,)
)

anzahl_roh = db.execute(
    "SELECT COUNT(*) FROM roh"
).fetchone()[0]

anzahl_tage = db.execute(
    "SELECT COUNT(*) FROM tageswerte"
).fetchone()[0]

print("Rohdatensaetze:", anzahl_roh)
print("Tageskennwerte:", anzahl_tage)

assert anzahl_roh == tage * 1440
assert anzahl_tage == 10

if tage == 2:
    print("Feedback: wenig Rohdaten, kurze Diagnosehistorie.")
elif tage == 7:
    print("Feedback: mehr Detailhistorie, mehr Speicherbedarf.")
else:
    print("Feedback: gesamte simulierte Rohhistorie erhalten.")

print("Die 10 Tageskennwerte bleiben erhalten.")
db.close()


Interaktiver Test mit Feedback

Probiere alle drei zulässigen Werte aus.

Eingabe Verbleibende Rohdatensätze Tageskennwerte Bewertung
2 2.880 10 Geringe Detailhistorie, aber weniger Daten.
7 10.080 10 Mehr rückwirkende Diagnosemöglichkeiten.
10 14.400 10 Vollständige Rohdatenhistorie des Beispiels.

Begründung: Ein Tageskennwert bleibt auch dann erhalten, wenn die zugehörigen Minuten-Rohdaten gelöscht wurden. Du kannst daraus aber nicht die vollständige ursprüngliche Messkurve rekonstruieren.

Die gezeigte Löschung ist eine vereinfachte Simulation. Reale Zeitreihendatenbanken können abgelaufene Werte zunächst aus Abfragen ausschließen und erst später physisch entfernen. Retention ersetzt außerdem weder Backups noch ein Lösch- und Berechtigungskonzept.


Gestufte Hilfen für Labor B

Hilfe 1 – Orientierung: Ein Tag besitzt 1.440 Minuten.

Hilfe 2 – Berechnung: Multipliziere die gewählte Tageszahl mit 1.440.

Hilfe 3 – Lösung: Bei sieben Tagen bleiben 10.080 Minutenmesswerte bestehen. Die zehn Tageskennwerte bleiben unabhängig davon erhalten, weil für sie eine längere Aufbewahrung festgelegt wurde.


Lerneinheit 6: Ein sinnvolles Speicherkonzept entwerfen

Lernzeit: 10 Minuten

Für eine Anlage musst Du mehrere Entscheidungen zusammen betrachten:

Leitfrage Entscheidungshilfe
Wie schnell verändert sich das Signal? Benötigte Abtastrate festlegen.
Welche Störungen sollen sichtbar sein? Kurzzeitereignisse und Grenzwerte berücksichtigen.
Welche Auswertungen werden benötigt? Mittelwert, Minimum, Maximum oder Ereignisse speichern.
Wie lange braucht man Details? Rohdatenfrist begründen.
Wie lange braucht man Trends? Aggregatfrist festlegen.
Was passiert bei fehlenden Messwerten? Lücken erkennen und dokumentieren.

Achtung: Eine industrielle Überwachung ist nicht automatisch ein geeignetes System für sicherheitsgerichtete Abschaltungen. Die Übung behandelt Datenspeicherung und Auswertung, nicht die Auslegung einer sicherheitsrelevanten Steuerungsfunktion.


Sicherheitsregeln für die Ausbildung

  1. Netzwerksicherheit: Nutze nur lokale oder ausdrücklich autorisierte Testumgebungen.
  2. Datenschutz: Verwende ausschließlich erfundene Messwerte, keine Kunden- oder Personendaten.
  3. IT-Sicherheit: Verbinde die Übungen nicht mit Produktivanlagen oder fremden Netzwerken.
  4. Datensicherung: Unterscheide Aufbewahrung, Löschung und Backup.
  5. Datenqualität: Achte auf korrekte Zeitstempel, Messlücken, Einheiten und fehlerhafte Sensorwerte.

Die Python-Programme benötigen keine Bibliotheksinstallation aus dem Internet, keine Zugangsdaten und keinen externen Dienst.


Interaktive Aufgaben


Quiz: Teste Dein Wissen

Welche Informationen gehören zu einer Zeitreihe? (Zeitstempel und Messwert) (!Nur die Sensorfarbe) (!Nur die Datenbankgröße) (!Nur der Anlagenname)




Wie viele Werte entstehen bei einer Messung pro Sekunde innerhalb einer Minute? (60) (!10) (!30) (!120)




Warum kann eine einzelne Minuten-Stichprobe eine kurze Störung verpassen? (Weil die Störung zwischen zwei Messzeitpunkten liegen kann) (!Weil Minutenwerte grundsätzlich falsch sind) (!Weil Datenbanken keine Sekunden speichern können) (!Weil Sensoren nur Mittelwerte liefern)




Welcher Minutenkennwert zeigt die höchste gemessene Temperatur? (Maximum) (!Mittelwert) (!Minimum) (!Anzahl der Messwerte)




Was beschreibt die Retention? (Die Aufbewahrungsdauer von Daten) (!Die elektrische Spannung) (!Die Genauigkeit des Sensors) (!Die Anzahl der Anlagen)




Was bewirkt eine Verdichtung von Sekundendaten zu Minutenkennwerten? (Sie reduziert die zeitliche Detailtiefe) (!Sie verbessert automatisch die Messgenauigkeit) (!Sie stellt verlorene Einzelwerte wieder her) (!Sie verhindert jeden Datenverlust)




Wo liegen die Daten einer SQLite-Datenbank im Arbeitsspeicherbetrieb? (Im Arbeitsspeicher) (!Automatisch in einer Cloud) (!In einer fremden Anlagensteuerung) (!Auf einem öffentlichen Server)




Warum sind einheitliche UTC-Zeitstempel sinnvoll? (Sie erleichtern die zeitliche Zuordnung über Zeitzonen hinweg) (!Sie erhöhen die Temperaturauflösung) (!Sie ersetzen Sensoridentifikationen) (!Sie verhindern jeden Messfehler)




Wie viele Messwerte liefern vier Sensoren bei einem Wert pro Sekunde an einem Tag? (345600) (!86400) (!1440) (!240)




Welche Vorgehensweise ist in der Ausbildungsumgebung zulässig? (Lokale Simulation mit fiktiven Daten) (!Ungefragter Zugriff auf ein fremdes Netzwerk) (!Auslesen einer produktiven Steuerung ohne Freigabe) (!Übertragung echter Kundendaten an Testdienste)





Memory

Ordne jeweils den passenden Fachbegriff und seine Bedeutung zu.

Abtastintervall Abstand zwischen Messzeitpunkten
Zeitstempel Zeitpunkt einer Messung
Retention Festgelegte Aufbewahrungsdauer
Aggregation Zusammenfassung von Messwerten
Downsampling Verringerung der zeitlichen Detailtiefe
SQLite Eingebettete Datenbank
Maximum Höchster Messwert eines Fensters





Drag and Drop

Ordne die richtigen Begriffe zu. Funktion
Sensor Messwerterfassung
Zeitstempel Zeitzuordnung
Zeitreihe Chronologische Messwerte
Aggregation Bildung von Kennwerten
Retention Aufbewahrungsregel





Kreuzworträtsel

Zeitstempel Wie heißt die Information über den Zeitpunkt eines Messwerts?
Intervall Wie heißt der zeitliche Abstand zwischen zwei regelmäßigen Messungen?
Rohdaten Wie nennt man die ursprünglichen, noch nicht verdichteten Messwerte?
Mittelwert Wie heißt der Durchschnitt der Messwerte eines Zeitfensters?
Maximum Wie heißt der höchste Messwert in einem Zeitfenster?
Retention Welcher Fachbegriff beschreibt die Aufbewahrungsdauer?





LearningApps

Weitere thematische Übungen kannst Du über die folgende Suche entdecken. Sie sind optional und werden nicht für die lokalen Programmierübungen benötigt.


Lückentext

Vervollständige den Text.
Eine Zeitreihe ordnet einem Messwert einen

zu.
Bei einer Messung mit einem Hertz entsteht pro

ein neuer Messwert.
Die Zeitauflösung wird durch das gewählte Abtastintervall

.
Kurze Ereignisse können bei zu großen Messabständen

.
Das

zeigt den höchsten Wert eines Messfensters.
Der Durchschnitt eines Zeitfensters heißt

.
Die Verdichtung hochaufgelöster Daten wird als

bezeichnet.
Die festgelegte Aufbewahrungsdauer heißt

.
Eine SQLite-Datenbank kann vollständig im

betrieben werden.
Die benötigten Kennwerte müssen vor dem Löschen der Rohdaten

werden.




Offene Aufgaben

Bearbeite die Aufgaben in aufsteigender Schwierigkeit. Jede Aufgabe erzeugt ein überprüfbares Ergebnis.


Leicht – Basisaufgaben

  1. Eigene Messreihe: Erstelle eine Tabelle mit zehn erfundenen Temperaturwerten und korrekten Zeitstempeln.
  2. Sensor-Steckbrief: Zeichne einen Sensor und beschrifte Messgröße, Einheit und Messintervall.
  3. Messkurve: Zeichne die Temperaturwerte des Ausbildungsfalls in einem Diagramm.
  4. Datenmodell: Entwirf eine Tabelle mit Sensor-ID, UTC-Zeitstempel und Temperatur.


Standard – Anwendungsaufgaben

  1. Intervallvergleich: Starte Labor A mit allen drei Messintervallen und dokumentiere die unterschiedlichen Ergebnisse.
  2. Kennwerte berechnen: Ändere den Testimpuls und überprüfe, wie sich Mittelwert und Maximum verändern.
  3. Retention vergleichen: Teste Labor B mit zwei, sieben und zehn Tagen und dokumentiere die Datensatzanzahl.
  4. Ergebnisgrafik: Erstelle aus den Ergebnissen ein Diagramm und erläutere, welche Informationen erhalten bleiben.


Schwer – Transferaufgaben

  1. Instandhaltungskonzept: Entwirf eine begründete Speicherstrategie für Temperatur- und Schwingungssensoren mit unterschiedlichen Anforderungen.
  2. Messlücken untersuchen: Erweitere das lokale Beispiel um fehlende Werte und entwickle eine Kennzeichnung unvollständiger Zeitfenster.
  3. Sicheres Laborkonzept: Plane eine isolierte Ausbildungsumgebung mit dokumentierten Zugriffsgrenzen und ohne Verbindung zu Produktionsnetzen.
  4. Projektpräsentation: Erstelle eine kurze Präsentation oder ein Erklärvideo, das Zeitauflösung, Aggregation und Retention anhand fiktiver Daten vergleicht.


Gestufte Hilfen und begründetes Feedback

Niveau Hilfe 1 Hilfe 2 Feedback und Lösungsorientierung
Basis Prüfe die Vollständigkeit der Tabelle. Suche nach Zeit, Einheit und Sensor-ID. Eine verwertbare Messreihe braucht eine eindeutige zeitliche Zuordnung. Nur Temperaturwerte ohne Zeitpunkt reichen nicht zur Fehlerdiagnose.
Anwendung Vergleiche Rohwerte und Fensterkennwerte. Nutze die Anzahl der Messwerte und die Maximalwerte. Korrekte Ergebnisse zeigen die Auswirkungen von Stichproben und Verdichtung. Weniger Messpunkte bedeuten nicht automatisch eine ausreichende Informationsqualität.
Transfer Beginne mit dem Diagnosezweck. Begründe erst das Messintervall, dann Kennwerte und Fristen. Ein gutes Speicherkonzept berücksichtigt Störungserkennung, Speicherbedarf, Datenqualität, Zugriffsgrenzen und die erforderliche Diagnosehistorie.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

Löse die folgenden Aufgaben schriftlich oder anhand Deiner lokalen Simulation. Begründe Deine Antworten.

  1. Kurze Störung: Eine Anlage meldet einen kurzen Schwingungsanstieg, aber die Minutenwerte erscheinen unauffällig. Erkläre zwei mögliche Ursachen und entwickle einen besseren Messansatz.
  2. Informationsverlust: Ein Betrieb möchte ausschließlich Stundenmittelwerte speichern. Prüfe, welche Diagnosefragen damit nicht mehr sicher beantwortet werden können.
  3. Speicherstrategie: Zwei Sensoren liefern Daten in sehr unterschiedlicher Geschwindigkeit. Entwickle eine begründete Aufbewahrungsstrategie für beide.
  4. Zeitqualität: Zwei Messsysteme verwenden unterschiedliche Zeitzonen. Beschreibe mögliche Fehler beim Zusammenführen und eine technische Gegenmaßnahme.
  5. Sicherheitskonzept: Ein Auszubildender möchte für einen Test direkt Messwerte aus einer Produktivanlage abrufen. Entwickle eine sichere Alternative und begründe sie.
  6. Unvollständige Daten: Ein Minutenfenster enthält nur 40 statt 60 erwarteter Sekundendaten. Erkläre, weshalb der Mittelwert und das Maximum vorsichtig interpretiert werden müssen.


Lernnachweis

Dein Lernnachweis sollte zeigen, dass Du sowohl die technischen Zusammenhänge als auch die praktischen Entscheidungen verstanden hast.

  1. Eine eigene fiktive Messreihe mit Sensor-ID, Einheit und Zeitstempeln.
  2. Eine dokumentierte Durchführung beider lokalen Python-Programme.
  3. Einen Vergleich verschiedener Messintervalle.
  4. Ein Diagramm mit nachvollziehbaren Kennwerten.
  5. Eine Berechnung der benötigten Datensatzanzahl.
  6. Eine begründete Aufbewahrungsstrategie für Roh- und Aggregatdaten.
  7. Eine Erklärung des möglichen Informationsverlusts.
  8. Eine kurze Dokumentation zu Testumgebung, Datenschutz und Netzwerksicherheit.

Bewertungskriterien: Fachliche Richtigkeit, nachvollziehbare Berechnungen, funktionierender lokaler Code, sachgerechte Visualisierung, reflektierte Entscheidungen und sichere Arbeitsweise.


OERs zum Thema

Der folgende Wikipedia-Artikel erklärt grundlegende Eigenschaften und Auswertungsverfahren von Zeitreihen.


Geprüfte Fachquellen

  1. Wikipedia: Zeitreihenanalyse – Definition und Eigenschaften zeitlich geordneter Daten.
  2. Wikipedia: Abtastung – Grundlagen der zeitlichen Abtastung.
  3. Python-Dokumentation: sqlite3 – lokale In-Memory-Datenbanken und parametrisierte SQL-Befehle.
  4. SQLite: Date and Time Functions – Zeitformate und Unix-Zeitstempel.
  5. InfluxDB 3: Data retention – Aufbewahrungsregeln und zeitversetzte physische Löschung.
  6. InfluxDB: Downsample data – Aggregation zeitlich hochaufgelöster Daten.

Die InfluxDB-Quellen dienen zur Erklärung von Zeitreihenkonzepten. Die lokalen Übungen benötigen keine InfluxDB-Installation.


Medienrechte und Quellenprüfung

Alle verwendeten Wikimedia-Commons-Dateien wurden anhand ihrer Dateibeschreibungsseiten ausgewählt. Die Nachweise enthalten Urheber und ausgewiesene Lizenz.

Medium Urheber Lizenz und Nachweis
Industry 4.0 NoText.png Christoph Roser, AllAboutLean.com CC BY-SA 4.0, Dateiseite
Industry 4.0 Reflow Oven Monitoring.jpg ProfileMarkus CC BY-SA 4.0, Dateiseite
Sensor DS18B20.jpg Leonardo Postay CC BY-SA 4.0, Dateiseite
Übersicht kontinuierliche und diskrete Signale.svg wdwd CC BY 3.0, Dateiseite
Signal aliasing demonstration.svg Laurens R. Krol CC0 1.0, Dateiseite
SQLite Logo.svg Bestandteil des von D. Richard Hipp freigegebenen SQLite-Codes, SVG-Version Raphael Javaux Public Domain gemäß Dateiseite

Videos: Die eingebetteten YouTube-Videos stammen vom Anbieter InfluxData. Eine Einbettung ist keine Aussage darüber, dass die Videos unter einer freien OER-Lizenz stehen. Beachte die Nutzungsbedingungen des jeweiligen Plattformbetreibers.

Datenschutz beim Medienabruf: Externe Videos, Wikipedia- und LearningApps-Einbettungen können beim Laden Verbindungen zu Drittanbietern herstellen. Verwende sie nur in einer dafür freigegebenen Browserumgebung. Die beiden Python-Testumgebungen sind unabhängig davon vollständig lokal nutzbar und senden keinerlei Messdaten an diese Dienste.


Verknüpfte Lernbereiche


aiMOOC-Projekte



Schulfach+




aiMOOCs



aiMOOC Projekte