Zum Hauptinhalt springen

Verbindungsliste / Tag-Liste (/ui/connect/list) — Vollständiger Leitfaden zu Spalten und Aktionen

Zentraler Betriebsbildschirm, auf dem alle dem Gateway bekannten OPC-(Verbindungs-)Listen und die darin enthaltenen Tag-Listen in einer Ansicht dargestellt werden — inklusive Start / Stopp / Bearbeiten / Löschen / Werte schreiben / Sofortlesen.

Über die Startkarte Verbundene Liste (N) → anklicken, oder direkt http://<gateway>/ui/connect/list.


1. Aufbau der Ansicht

┌────────────────────────────────────────────────────────────────┐
│ ⊙ 연결 목록 [←] [↻] [+ 연결 추가] │
├────────────────────────────────────────────────────────────────┤
│ [OPC 목록 테이블 — 14개 컬럼] │
│ PLC | 프로토콜 연결상태 OPC ID ... 수집상태 액션 │
│ ───────────────────────────────────────────────────────── │
│ (행 클릭 → 아래 태그 테이블 채워짐 / 행 하이라이트) │
├────────────────────────────────────────────────────────────────┤
│ 선택된 연결의 TAG 목록을 표시합니다 │
│ [태그 목록 테이블 — 14개 컬럼] │
│ ▣ TAG ID TAG 명 ... 마지막 값 업데이트시간 액션 │
└────────────────────────────────────────────────────────────────┘

Wird ein OPC mit dem Protokoll MOTOR_SENSE ausgewählt, erscheint anstelle der Tag-Tabelle ein HEALTH INDEX / SIGNAL Karten-Container (siehe eigener Abschnitt).


2. Obere Leiste — Schaltflächen

SchaltflächeFunktion
← (Backspace-Symbol)Wechsel zu /ui/main
↻ (Sync-Symbol)connect.search() — Liste erneut abfragen (die automatische Aktualisierung übernimmt die DataTable — dies dient dem erzwungenen Neuladen)
+ Verbindung hinzufügen (blaue Schaltfläche)/ui/connect/connect Wechsel zur Ansicht für das Anlegen einer neuen Verbindung

3. OPC-Listentabelle (14 Spalten)

Die Ergebnisse der /connect/opc/list API werden von DataTables gerendert.

#SpalteBedeutung / Anzeige
1PLC | ProtokollLogobild je Protokoll — MELSEC=mitsubishi.png / S7=siemens.png / MODBUS=modbus.svg / OPCUA=opcua.png / EIP=eip.png / LS=ls.png / GE=ge.png / PROFINET=profinet.png / FINS=fins.png / LOGIX=rockwell.png / CANOPEN=canopen.png / HTTP=http.png / OP=op.png / MOTOR_SENSE=MotorSense_Logo.svg
2VerbindungsstatusAbgerundetes Badge — 🟢 Verbunden / 🔴 Getrennt / ⬜ Unbekannt (noch nie gestartet)
3OPC IDEindeutige ID (z. B. OPC_LS_TEST) — Sortierkriterium (Standard ASC)
4OPC-NameBenutzerdefinierter Name
5BeschreibungFreie Notiz
6PLC IPIP der SPS, mit der sich das OPC verbindet
7PLC-PortOPC-Port (LS 2004, S7 102, MODBUS 502 usw.)
8Erfassungsintervalltimecycle (ms) — rechtsbündig, Tausendertrennzeichen
9AutostartBei auto_collect=true ✓, sonst -
10AsynchronBei async=true ✓, sonst -
11Anzahl verbundener TagsAnzahl der für dieses OPC registrierten Tags — rechtsbündig
12ErfassungsanzahlKumulierte Anzahl der Lesevorgänge (point_count) — große Zahlen werden per horizontalem Scrollen sichtbar
13ErfassungsstatusAbgerundetes Badge — 🟢 Normal (scan_status=START, rotierendes Sync-Symbol) / 🟧 Störung (NOT COLLECT, Warndreieck) / ⬜ Gestoppt (STOP, Stopp-Symbol)
14Aktionen▶ Start / ⏹ Stopp / 🔧 Bearbeiten / 🗑 Löschen (4 Symbole)

3.1 Aktionssymbole — im Detail

SymbolFunktionAufruf
Start (fa-play)Erfassung startenconnect.start(opcId)POST /connect/start
Stopp (fa-stop)Erfassung stoppen (TCP-Verbindung bleibt bestehen)connect.stop(opcId)POST /connect/stop
🔧 Bearbeiten (fa-wrench)Wechsel zur Bearbeitungsansicht je OPC-Typ (z. B. /ui/connect/ls usw., Verzweigung gemäß opc_type)connect.edit(opcId&opcType)
🗑 Löschen (fa-trash)Bestätigungsdialog → OPC + untergeordnete Tags werden gesammelt gelöschtconnect.del(opcId&opcType)
Löschen kann nicht rückgängig gemacht werden

Beim Löschen eines OPC verschwinden auch die darunterliegenden Tag-Zeilen. Die Zeitreihendaten (Cassandra tm_tag_point) bleiben bis zum Ablauf der TTL erhalten, es kommen jedoch keine neuen Lesewerte mehr hinzu.

3.2 Unterschied zwischen Verbindungsstatus und Erfassungsstatus

Fälle, in denen beide Zustände für dasselbe OPC voneinander abweichen:

VerbindungErfassungBedeutung
🟢 Verbunden🟢 NormalNormalbetrieb
🟢 Verbunden🟧 StörungTCP-Verbindung besteht, aber innerhalb einer bestimmten Zeit kommt keine Leseantwort — SPS-Programm / Tippfehler in der Adresse / Berechtigungen prüfen
🟢 Verbunden⬜ GestopptBenutzer hat ⏹ Stopp gedrückt
🔴 Getrennt⬜ GestopptNormaler Zustand nicht gestartet
🔴 Getrennt🟧 StörungLief einmal, die SPS hat die Verbindung aber getrennt — IP/Port/Firewall prüfen
⬜ Unbekannt⬜ GestopptNeues OPC, nur registriert und noch nie gestartet

4. Zeilenauswahl → Tag-Liste

Beim Klick auf eine OPC-Zeile:

  1. Die Zeile wird mit der Klasse selected hervorgehoben (andere Zeilen werden abgewählt)
  2. Aufruf von connect.tag_list(opcId) → die Tags dieses OPC werden geladen und in der unteren Tag-Listentabelle dargestellt
  3. Ist opc_type dieses OPC gleich MOTOR_SENSE, wird anstelle der Tag-Tabelle der HEALTH INDEX / SIGNAL Karten-Container angezeigt

Das Ergebnis der Zeilenauswahl wird in window.__connect_list_selected_opc_id gespeichert — beim Inline-Schreiben eines Tags wird es als Parameter opc_id verwendet.


5. Tag-Listentabelle (14 Spalten)

Zeigt die Tags innerhalb des ausgewählten OPC. Letzter Wert / Zeitstempel / Lesestatus werden innerhalb der Seite periodisch aktualisiert (writejs.value() — separates Polling).

#SpalteBedeutung / Anzeige
1(Symbol)Tag-Symbol (fa-tag)
2TAG IDEindeutige ID (z. B. TAG_LS_TEST_1000)
3TAG-NameBenutzerdefinierter Name
4BeschreibungFreie Notiz
5DatentypInteger / Boolean / Float / Long / String usw.
6PLC-AdresseAdresse je SPS-Protokoll (z. B. D1000, ns=2;s=...)
7PLC-DatenformatFormatoptionen (X / B / W / DW / Float usw. — dienen der genauen Verzweigung von Lese-/Schreibvorgängen je Treiber)
8BerechnungFormel (fomula) — einfache Arithmetik wie ${VALUE} * 10 wird angewendet
9ErfassungsanzahlKumulierte Anzahl der Lesevorgänge — rechtsbündig
10Letzter WertAktuellster Wert — grüner Hintergrund + weiße Schrift. Bei langem Text (STRING/Array) scrollt die Zelle horizontal
11Zeitpunkt der letzten AktualisierungDunkelgrauer Hintergrund + weiße Schrift, mit Millisekunden
12Lesestatus🟢 SUCCESS (grün) / 🔴 ERROR (rot)
13LesefehlermeldungNur bei Status ERROR gefüllt — roter Hintergrund + weiße Schrift
14Aktionen✏ Schreiben / 🔄 Sofortlesen (2 Symbole)

5.1 Tag-Aktionen — im Detail

✏ Schreiben (fa-pen)

Inline-Aktion, die einmalig einen Wert auf das jeweilige Tag schreibt.

1. 클릭 → prompt 창: "태그 [<TAG_ID>] 에 쓸 값을 입력하세요"
2. 값 입력 후 OK → confirm: "<OPC_ID> / <TAG_ID> 에 [<VALUE>] 쓰기?"
3. POST /connect/write { tag_id, opc_id, value }
4. 성공 시 toastr: "쓰기 완료: <TAG_ID> = <VALUE>"
5. 서버가 write 직후 같은 connection 으로 즉시 read 한 결과를 함께 반환:
- 동일 ↔ 동일하지 않음 비교 후 추가 안내
· "읽기 확인" (info) — 같음 → 정상
· "읽기 결과 다름" (warning) — PLC 자체 프로그램이 즉시 덮어쓴 가능성
6. 약 800ms 후 화면의 마지막 값 셀도 자동 갱신

Intern verzweigt ConnectService.tagWriteByTagId() je nach SPS-Protokoll (HTTP / OPC-UA / Modbus / MELSEC / S7 / LS / EIP werden alle unterstützt).

Schreiben ist riskant

Prüfen Sie den Schreibvorgang vor dem Einsatz an Tags realer Anlagen mit einem Simulator-OPC oder einem Test-Tag. Schreibrechte nur für Tags, die mit dem Betriebsteam abgestimmt sind.

🔄 Sofortlesen (fa-sync-alt)

Umgeht den Cache des Erfassungsmoduls und liest jetzt direkt aus der SPS.

GET /api/v1/tag/<TAG_ID>/value?fresh=true
→ 성공: toastr.info "지금 읽기: <TAG_ID> = <VALUE>"
→ 값 없음: toastr.warning "읽음 (값 없음): <TAG_ID>"
→ 실패: toastr.error "읽기 실패: ..."

Gedacht für die manuelle Aktualisierung bei SPS mit langem Erfassungsintervall (z. B. 30 Sekunden). Häufige Nutzung erhöht die Last der SPS.


6. Bereich exklusiv für MOTOR_SENSE

Bei Auswahl eines opc_type=MOTOR_SENSE OPC wird anstelle der Tag-Tabelle Folgendes angezeigt.

6.1 Bereich Statusinformationen

ElementBedeutung
Zeitpunkt der letzten AktualisierungZeitpunkt der aktuellsten Daten des MOTOR_SENSE-Assets
LesestatusSUCCESS / ERROR

6.2 Abschnitt HEALTH INDEX

❤ Symbol + Karten je Asset — horizontal scrollbar. Jede Karte enthält die Asset-ID + Messgrößen (level, alarm usw.). Kartenfarbe: hellblauer Hintergrund + dunkelblauer Rahmen.

6.3 Abschnitt SIGNAL

📶 Symbol + Karten je Asset — horizontal scrollbar. Zeitreihen-Signalmetriken. Kartenfarbe: hellgrau.

In beiden Abschnitten ist vertikales Scrollen gesperrt und nur horizontales Scrollen erlaubt, damit sich die Karten auch bei vielen Assets beliebig weit nach rechts erstrecken können.


7. Häufige Stolperfallen

SymptomUrsache / Lösung
Tag-Tabelle bleibt nach Zeilenklick leerFür dieses OPC sind keine Tags registriert. Über Bearbeiten öffnen und Tags hinzufügen
Verbunden, aber ErfassungsstörungAdressformat / Datentyp (format) / SPS-Schreibrechte prüfen
Zelle „Letzter Wert" wird lange nicht aktualisiertErfassungsintervall (timecycle) ist lang oder der Wert in der SPS ändert sich nicht — mit Sofortlesen einen Lesevorgang erzwingen
Warnung Leseergebnis weicht ab nach ✏ SchreibenDas SPS-Programm überschreibt den Wert innerhalb einer Sekunde selbst. Kann normal sein (z. B. Lockout-Spulen)
Letzter Wert zu lang und schlecht lesbarIn der Zelle erscheint automatisch eine horizontale Scrollleiste — innerhalb der Zelle nach links/rechts scrollen
MOTOR_SENSE-Karten sind leerDie Asset-Suche ist noch nicht abgeschlossen (/connect/motor-sense/asset-list antwortet nicht) — kurz warten oder OPC neu starten
Erfassungsstatus direkt nach dem Start UnbekanntDie Scan-Loop hat den ersten Zyklus noch nicht durchlaufen — timecycle + α abwarten
Nach Löschen und erneutem Hinzufügen startet es wieder als UnbekanntNormal — ist auto_collect aktiviert, wechselt der Status automatisch zu Verbunden + Normal

8. Weiterführende Informationen