Zum Hauptinhalt springen

Punktsuche (/ui/point) — Zeitreihendaten abfragen

Bildschirm zum Abfragen der erfassten Zeitreihendaten eines bestimmten Tags über einen Zeitraum sowie zum Herunterladen der Ergebnisse als Tabelle bzw. CSV. Operatoren nutzen ihn, um schnell Inspektionen wie lagen die PLC-Werte gestern zwischen 09:00 und 11:00 Uhr im Normalbereich? durchzuführen.

Linke Seitenleiste, Symbol Datenbank (fa-database) → anklicken oder direkt http://<gateway>/ui/point.


1. Bildschirmaufbau

┌────────────────────────────────────────────────────────────────┐
│ ⊙ 포인트 검색 — 시계열 데이터 조회 · TM_TAG_POINT [←] [↻] │
├────────────────────┬───────────────────────────────────────────┤
│ [검색 조건] │ [포인트 목록 — 최신 순] [CSV 다운로드] │
│ ─ 검색 기간 │ ┌──────────────────────────────────────┐ │
│ ─ OPC ID * │ │ 시각 │ 태그 ID │ 값 │ 타입 │ 품질 │ 에러 │ │
│ ─ 태그 ID * │ └──────────────────────────────────────┘ │
│ [검색] │ … │
└────────────────────┴───────────────────────────────────────────┘

Die Breite des linken Panels ist gegenüber dem Standard col-md-2 um +50 px erhöht, damit Beschriftungen und Kombinationsfelder nicht abgeschnitten werden.


2. Obere Leiste

SchaltflächeAktion
← (fa-arrow-left)Zurück zu /ui/main
↻ (fa-sync)point.search() erneut aufrufen (bestehende Bedingungen bleiben erhalten, zum Aktualisieren)

3. Suchbedingungen (linkes Panel)

3.1 Suchzeitraum (s_date_range)

  • Basiert auf daterangepicker — Format YYYY-MM-DD HH:mm ~ YYYY-MM-DD HH:mm
  • Beim Öffnen des Bildschirms automatisch auf die letzte Stunde gesetzt (moment().subtract(1, 'hours') ~ moment())
  • Klick → Popup mit Kalender + Zeitauswahl

3.2 OPC ID (Pflichtfeld)

  • Kombinationsfeld wird aus dem Ergebnis von POST /connect/opc/list befüllt — alphabetisch aufsteigend nach opc_id sortiert
  • Label-Format: OPC_ID (OPC_NAME) — ist name leer, wird nur OPC_ID angezeigt
  • Bei einer Änderung der Auswahl wird das darunterliegende Kombinationsfeld Tag ID mit den Tags dieser OPC neu geladen

3.3 Tag ID (Pflichtfeld)

  • Vor der OPC-Auswahl: disabled + Hinweisoption — Laden nach OPC-Auswahl —
  • Nach der OPC-Auswahl aus dem Ergebnis von POST /connect/tag/list { opc_id } befüllt — tag_id aufsteigend sortiert
  • Label-Format: TAG_ID (TAG_NAME) — ist name leer, nur TAG_ID
  • Schlägt das Laden fehl, erscheint die Option — Laden fehlgeschlagen — plus Toast-Fehlermeldung
Wenn Sie ohne Tag-Auswahl auf Suchen klicken

Es erscheint das Modal "Bitte wählen Sie zuerst OPC und Tag aus." (bootbox alert) — ein Schutz, der leere Ergebnisse mangels Daten und damit reine Zeitverschwendung verhindert.


4. Ergebnistabelle (6 Spalten)

Die Antwort von GET /point/search wird von DataTables gerendert. Standardsortierung: Zeitpunkt absteigend (neueste zuerst).

#SpalteBreiteSortierungAnzeige / Bedeutung
1Zeitpunkt180pxdesc defaulttimestamp.iso oder raw timestamp — zentriert
2Tag ID180pxGesuchte Tag ID — zentriert
3Wert* (variabel)Die Ausrichtung hängt vom Typ ab — integer/long/float/double rechts, boolean/string usw. zentriert (Ausrichtungsregeln für Tabellenwerte aus UI-DESIGN) — fett
4Typ100pxFarbiges Badge, erzeugt mit formatTypeBadge() (z. B. STRING / INT / DOUBLE / BOOL)
5Qualität70pxOPC quality code (z. B. 192=Good). Leer, wenn nicht vorhanden
6Fehler70pxIst error_code 0/null, erscheint (grau), andernfalls der Code in Rot

Seitenlänge: 10 / 20 / 50 / 100 / 1000 — Standard 100. Koreanische Oberfläche (Korean.json).


5. CSV-Download

Schaltfläche CSV-Download oben rechts — ruft point.csv() auf.

  • Lokaler Export — das letzte Suchergebnis (point._lastData) wird clientseitig in CSV umgewandelt → sofortiger Download. Kein zusätzlicher Serveraufruf
  • Dateiname: Form point_<TAG_ID>_<TIMESTAMP>.csv (z. B. point_TAG_LS_XBC_0001_20260510_1530.csv)
  • Spalten: Zeitpunkt / Tag ID / Wert / Typ / Qualität / Fehler — identisch mit der UI-Tabelle
CSV-Klick ohne vorhandenes Suchergebnis

Hinweismodal "Bitte führen Sie zuerst eine Suche durch." — verhindert die Erzeugung leerer CSV-Dateien.


6. Datenherkunft

Backend-Ablauf der Abfrage:

PLC → Collector → PointProcessor → Cassandra: tm_tag_point (TTL = edge.ttl 일)

/point/search?tag_id&from&to
  • Daten mit abgelaufener TTL können nicht mehr abgefragt werden. edge.ttl in app.properties standardmäßig 30 Tage.
  • Die Zeilen in tm_tag_point sind nach (tag_id, time_bucket, time) geclustert — Suchen über kurze Zeiträume sind schnell. Wird mehr als ein Monat auf einmal abgerufen, kann die Antwort langsam werden; empfohlen sind Bereiche von einigen zehn Minuten bis wenigen Stunden.

7. Betriebstipps

  • Auffällige Werte verfolgen: Legen Sie den Zeitpunkt des Alarms in den Suchzeitraum und fragen Sie den betreffenden Tag ab — plötzliche Spikes, 0-Werte oder Qualitätsänderungen werden sichtbar
  • PLC-Kommunikationsabbruch: Ist die Spalte Fehler desselben Tags über einen Zeitraum durchgehend mit roten Codes gefüllt, liegt ein Abschnitt mit fehlgeschlagenen PLC-Antworten vor — gegenprüfen mit Erfassungsstatus in /ui/connect/list
  • CSV in Excel: Öffnen Sie die heruntergeladene CSV-Datei in Excel/LibreOffice und erstellen Sie über die Spalte Wert ein Trenddiagramm für eine schnelle Visualisierung — für vollwertige Diagramme nutzen Sie Echtzeitwerte anzeigen oder Tag-Werteverlauf anzeigen

8. Verwandte Dokumente