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äche | Aktion |
|---|---|
← (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/listbefüllt — alphabetisch aufsteigend nachopc_idsortiert - Label-Format:
OPC_ID (OPC_NAME)— ist name leer, wird nurOPC_IDangezeigt - 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_idaufsteigend sortiert - Label-Format:
TAG_ID (TAG_NAME)— ist name leer, nurTAG_ID - Schlägt das Laden fehl, erscheint die Option — Laden fehlgeschlagen — plus Toast-Fehlermeldung
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).
| # | Spalte | Breite | Sortierung | Anzeige / Bedeutung |
|---|---|---|---|---|
| 1 | Zeitpunkt | 180px | desc default | timestamp.iso oder raw timestamp — zentriert |
| 2 | Tag ID | 180px | — | Gesuchte Tag ID — zentriert |
| 3 | Wert | * (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 |
| 4 | Typ | 100px | — | Farbiges Badge, erzeugt mit formatTypeBadge() (z. B. STRING / INT / DOUBLE / BOOL) |
| 5 | Qualität | 70px | — | OPC quality code (z. B. 192=Good). Leer, wenn nicht vorhanden |
| 6 | Fehler | 70px | — | Ist 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
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.ttlinapp.propertiesstandardmäßig 30 Tage. - Die Zeilen in
tm_tag_pointsind 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
- Echtzeitwerte anzeigen (
/ui/connect/tag-view) — einzelner Tag mit 1-Sekunden-Polling + Live-Diagramm - Erfassungshistorie anzeigen
- REST API —
GET /api/v1/tag/{tag_id}/value— dieselben Daten mit X-API-Key direkt aus externen Systemen abfragen