Punktesuche
Dieser Bildschirm dient zum Abrufen der erfassten Zeitreihendaten eines bestimmten Tags über einen Zeitraum und zum Herunterladen der Ergebnisse als Tabelle / CSV. Er wird verwendet, wenn Bediener schnell eine Inspektion durchführen möchten, z. B. ob die PLC-Werte gestern zwischen 09:00 und 11:00 Uhr im normalen Bereich lagen.

Das Datenbank-Symbol in der oberen Leiste (fa-database, das sechste von links) → klicken oder direkt http://<gateway>/ui/point aufrufen.
1. Bildschirmaufbau
┌────────────────────────────────────────────────────────────────┐
│ ⊙ 포인트 검색 — 시계열 데이터 조회 · TM_TAG_POINT [←] [↻] │
├────────────────────┬───────────────────────────────────────────┤
│ [검색 조건] │ [포인트 목록 — 최신 순] [CSV 다운로드] │
│ ─ 검색 기간 │ ┌──────────────────────────────────────┐ │
│ ─ OPC ID * │ │ 시각 │ 태그 ID │ 값 │ 타입 │ 품질 │ 에러 │ │
│ ─ 태그 ID * │ └──────────────────────────────────────┘ │
│ [검색] │ … │
└────────────────────┴───────────────────────────────────────────┘
Die Breite des linken Panels ist um +50px größer als der Standard col-md-2, um das Abschneiden von Labels/Kombinationsfeldern zu verhindern.
2. Obere Leiste
| Schaltfläche | Aktion |
|---|---|
← (fa-arrow-left) | Zurück zu /ui/main |
↻ (fa-sync) | point.search() erneut aufrufen (bestehende Bedingungen beibehalten, zur Aktualisierung) |
3. Suchbedingungen (linkes Panel)
3.1 Suchzeitraum (s_date_range)
- Basierend auf daterangepicker — Format
YYYY-MM-DD HH:mm ~ YYYY-MM-DD HH:mm - Beim Aufrufen des Bildschirms automatisch mit letzte 1 Stunde gefüllt (
moment().subtract(1, 'hours')~moment()) - Klick → Kalender + Zeitauswahl-Popup
3.2 OPC ID (erforderlich)
- Kombinationsfeld wird mit
POST /connect/opc/list-Ergebnissen gefüllt — alphabetische ASC-Sortierung nachopc_id - Label-Format:
OPC_ID (OPC_NAME)— wenn name leer ist, nurOPC_IDanzeigen - Bei Änderung der Auswahl wird das Tag ID-Kombinationsfeld unten mit den zugehörigen Tags dieses OPC neu geladen
3.3 Tag ID (erforderlich)
- Vor OPC-Auswahl:
disabled+ Hinweisoption — Nach OPC-Auswahl laden — - Nach OPC-Auswahl mit
POST /connect/tag/list { opc_id }-Ergebnissen gefüllt — ASC-Sortierung nachtag_id - Label-Format:
TAG_ID (TAG_NAME)— wenn name leer ist, nurTAG_ID - Bei Ladefehler wird die Option — Ladefehler — angezeigt + Toast-Fehlermeldung
Dann erscheint ein Modal mit "Bitte wählen Sie zuerst OPC und Tag aus." (bootbox alert) — dies ist ein Schutz, um leere Ergebnisse und Zeitverschwendung durch fehlende Daten zu vermeiden.
4. Ergebnistabelle (6 Spalten)
Die GET /point/search-Antwort wird von DataTables gerendert. Standardsortierung ist Zeitpunkt desc (neueste zuerst).
| # | Spalte | Breite | Sortierung | Anzeige / Bedeutung |
|---|---|---|---|---|
| 1 | Zeitpunkt | 180px | desc default | timestamp.iso oder roh timestamp — zentriert |
| 2 | Tag ID | 180px | — | Durchsuchte Tag ID — zentriert |
| 3 | Wert | * (variabel) | — | Sortierung variiert je nach Typ — integer/long/float/double rechtsbündig, boolean/string usw. zentriert (Tabellenwert-Ausrichtungsregel von UI-DESIGN) — fett |
| 4 | Typ | 100px | — | Farbiges Badge erstellt mit formatTypeBadge() (z. B. STRING / INT / DOUBLE / BOOL) |
| 5 | Qualität | 70px | — | OPC-Qualitätscode (z. B. 192=Good). Wenn leer, leere Zelle |
| 6 | Fehler | 70px | — | Wenn error_code 0/null ist, — (grau), andernfalls roter Code |
Seitenlänge: 10 / 20 / 50 / 100 / 1000 — Standard 100. Koreanische Oberfläche (Korean.json).
5. CSV-Download
CSV-Download-Schaltfläche oben rechts — point.csv()-Aufruf.
- Lokaler Export — letztes Suchergebnis (
point._lastData) wird clientseitig in CSV umgewandelt → sofortiger Download. Kein zusätzlicher Serveraufruf - Dateiname:
point_<TAG_ID>_<TIMESTAMP>.csv-Format (z. B.point_TAG_LS_XBC_0001_20260510_1530.csv) - Spalten: Zeitpunkt / Tag ID / Wert / Typ / Qualität / Fehler — identisch mit der UI-Tabelle
Hinweis-Modal "Bitte suchen Sie zuerst." — verhindert die Ausgabe einer leeren CSV-Datei.
6. Datenquelle
Backend-Ablauf, den der Bildschirm abfragt:
PLC → Collector → PointProcessor → Cassandra: tm_tag_point (TTL = edge.ttl 일)
↑
/point/search?tag_id&from&to
- Daten mit abgelaufener TTL werden nicht mehr abgefragt.
app.propertiesvonedge.ttlStandard 30 Tage. - Zeilen in
tm_tag_pointsind mit(tag_id, time_bucket, time)-Clustering versehen — kurze Zeitraumabfragen sind schnell. Wenn Sie mehr als einen Monat auf einmal abrufen, kann die Antwort langsam sein, daher wird eine Aufteilung in zig Minuten bis einige Stunden empfohlen.
7. Betriebstipps
- Anomalieverfolgung: Legen Sie den Zeitpunkt, zu dem ein Alarm aufgetreten ist, in den Suchzeitraum und fragen Sie das betreffende Tag ab — plötzliche Spitzen / 0-Werte / Qualitätsänderungen werden sichtbar
- PLC-Kommunikationsausfall: Wenn die Fehler-Spalte desselben Tags über einen bestimmten Zeitraum mit roten Codes gefüllt ist, deutet dies auf einen Zeitraum mit PLC-Antwortausfällen hin — mit Erfassungsstatus in
/ui/connect/listabgleichen - CSV nach Excel: Öffnen Sie die heruntergeladene CSV-Datei in Excel/LibreOffice und erstellen Sie ein Trenddiagramm mit der Wert-Spalte für eine schnelle Visualisierung — für vollständige Diagramme nutzen Sie Echtzeitwertanzeige oder Tag-Wertverlauf anzeigen
8. Verwandte Dokumente
- Echtzeitwertanzeige (
/ui/connect/tag-view) — Einzel-Tag mit 1-Sekunden-Polling und Live-Diagramm - Erfassungsverlauf anzeigen
- REST API —
GET /api/v1/tag/{tag_id}/value— Direktes Abfragen derselben Daten von externen Systemen mit X-API-Key