Zum Hauptinhalt springen

Verbindungsliste und Tag-Liste

🎬 Review your connections · 31초 · 2026.09 기준 화면

Dies ist der zentrale Betriebsbildschirm, auf dem Sie alle OPC-Verbindungen, die dem Gateway bekannt sind, und die darin enthaltenen Tag-Listen auf einen Blick sehen und gleichzeitig starten / stoppen / bearbeiten / löschen / Werte schreiben / sofort lesen können.

Verbindungsliste – links OPC-Liste, rechts Tag-Liste

Home-Karte Verbundene Liste (N) → klicken oder direkt http://<gateway>/ui/connect/list.


1. Bildschirmaufbau​

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

Wenn Sie die OPC des MOTOR_SENSE-Protokolls auswählen, wird anstelle der Tag-Tabelle ein HEALTH INDEX / SIGNAL Karten-Container angezeigt (siehe separater Abschnitt).


2. Obere Leiste – Schaltflächen​

SchaltflächeAktion
← (Backspace-Symbol)Navigation zu /ui/main
↻ (Sync-Symbol)connect.search() – Liste erneut abrufen (automatische Aktualisierung übernimmt die Datentabelle – dient nur zum erzwungenen Neuladen)
+ Verbindung hinzufügen (blaue Schaltfläche)/ui/connect/connect Wechsel zum Bildschirm zum Hinzufügen einer neuen Verbindung

3. OPC-Listentabelle (14 Spalten)​

/connect/opc/list API-Ergebnis wird von DataTables gezeichnet.

#SpalteBedeutung / Anzeige
1PLC | ProtokollLogo-Bild 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
2VerbindungsstatusRundes Badge – 🟢 Verbunden / 🔴 Getrennt / ⬜ Unbekannt (noch nie gestartet)
3OPC-IDEindeutige ID (z. B. OPC_LS_TEST) – Sortierkriterium (Standard ASC)
4OPC-NameBenutzerdefinierter Name
5BeschreibungFreier Kommentar
6PLC-IPPLC-IP, mit der die OPC verbunden ist
7PLC-PortOPC-Port (z. B. LS 2004, S7 102, MODBUS 502)
8Erfassungszyklustimecycle (ms) – rechtsbündig, Tausendertrennzeichen
9AutostartBei auto_collect=true ✓, sonst -
10AsynchronBei async=true ✓, sonst -
11Anzahl verbundener TagsAnzahl der in dieser OPC registrierten Tags – rechtsbündig
12ErfassungsanzahlKumulierte Anzahl der Reads (point_count) – große Zahlen werden horizontal scrollbar angezeigt
13ErfassungsstatusRundes Badge – 🟢 Normal (scan_status=START, rotierendes Sync-Symbol) / 🟧 Störung (NOT COLLECT, Warndreieck) / ⬜ Gestoppt (STOP, Stopp-Symbol)
14Aktion▶ Start / ⏹ Stopp / 🔧 Bearbeiten / 🗑 Löschen (4 Symbole)

3.1 Aktionssymbole – im Detail​

SymbolAktionAufruf
▶ 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 zum Bearbeitungsbildschirm je OPC-Typ (z. B. /ui/connect/ls etc., Verzweigung je opc_type)connect.edit(opcId&opcType)
🗑 Löschen (fa-trash)Bestätigungsdialog → OPC und zugehörige Tags werden gemeinsam gelöscht.connect.del(opcId&opcType)
Löschen kann nicht rückgängig gemacht werden

Beim Löschen einer OPC verschwinden auch die darunterliegenden Tag-Zeilen. Die Zeitreihendaten (Cassandra tm_tag_point) bleiben bis zum Ablauf der TTL erhalten, aber es werden keine neuen Reads mehr entgegengenommen.

3.2 Unterschied zwischen Verbindungsstatus und Erfassungsstatus​

Wenn sich die beiden Status für dieselbe OPC unterscheiden:

VerbindungErfassungBedeutung
🟢 Verbunden🟢 NormalNormalbetrieb
🟢 Verbunden🟧 StörungTCP-Verbindung besteht, aber die Read-Antwort bleibt innerhalb einer bestimmten Zeit aus – Verdacht auf PLC-Programm / Adressfehler / Berechtigungen
🟢 Verbunden⬜ GestopptBenutzer hat ⏹ Stopp gedrückt
🔴 Getrennt⬜ GestopptNormaler Nicht gestartet-Zustand
🔴 Getrennt🟧 StörungWar in Betrieb, aber PLC hat Verbindung verloren – IP/Port/Firewall prüfen
⬜ Unbekannt⬜ GestopptNur registriert, noch nie gestartet – neue OPC

4. Zeilenauswahl → Tag-Liste​

Beim Klick auf eine OPC-Zeile:

  1. Diese Zeile wird mit der Klasse selected hervorgehoben (andere Zeilen werden abgewählt)
  2. connect.tag_list(opcId) wird aufgerufen → ruft die Tags dieser OPC ab und zeichnet sie in die untere Tag-Listentabelle
  3. Wenn die opc_type dieser OPC MOTOR_SENSE ist, 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 – wird als opc_id-Parameter beim Inline-Schreiben von Tags verwendet.


5. Tag-Listentabelle (14 Spalten)​

Zeigt die Tags innerhalb der ausgewählten OPC. Letzter Wert / Zeitpunkt / Read-Status werden periodisch innerhalb der Seite 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
4BeschreibungFreier Kommentar
5DatentypInteger / Boolean / Float / Long / String usw.
6PLC-AdresseAdresse je PLC-Protokoll (z. B. D1000, ns=2;s=...)
7PLC-DatenformatFormatoptionen (X / B / W / DW / Float usw. – verwendet für die präzise Verzweigung von Read/Write je Treiber)
8BerechnungFormel (fomula) – z. B. einfache Arithmetik wie ${VALUE} * 10
9ErfassungsanzahlKumulierte Anzahl der Reads – rechtsbündig
10Letzter WertNeuester Wert – grüner Hintergrund + weiße Schrift. Große Texte (STRING/Array) werden horizontal scrollbar in der Zelle
11Zeitpunkt der letzten AktualisierungDunkelgrauer Hintergrund + weiße Schrift, bis ms
12Lesestatus🟢 SUCCESS (grün) / 🔴 ERROR (rot)
13Fehlermeldung beim LesenNur bei Status ERROR gefüllt – roter Hintergrund + weiße Schrift
14Aktion✏ Schreiben / 🔄 Sofort lesen (2 Symbole)

5.1 Tag-Aktionen – im Detail​

✏ Schreiben (fa-pen)​

Inline-Aktion, um einmalig einen Wert an dieses Tag zu schreiben.

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 PLC-Protokoll (HTTP / OPC-UA / Modbus / MELSEC / S7 / LS / EIP werden alle unterstützt).

Schreiben ist gefährlich

Bevor Sie auf reale Anlagen-Tags schreiben, testen Sie mit einer Simulator-OPC oder Test-Tags. Schreibrechte nur für Tags, die mit dem Betriebsteam vereinbart wurden.

🔄 Sofort lesen (fa-sync-alt)​

Umgeht den Collector-Cache und liest jetzt direkt von der PLC.

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

Für die manuelle Aktualisierung bei PLCs mit langem Erfassungszyklus (z. B. 30 Sekunden). Häufiges Verwenden erhöht die PLC-Last.


6. Bereich für MOTOR_SENSE​

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

6.1 Statusinformationsbereich​

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

6.2 HEALTH INDEX-Bereich​

❤ Symbol + Karten je Asset – horizontal scrollbar. Jede Karte enthält Asset-ID + Messmetriken (Level, Alarm usw.). Kartenfarbe: hellblauer Hintergrund + dunkelblaue Umrandung.

6.3 SIGNAL-Bereich​

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

Beide Bereiche: Auch bei vielen Assets sollen sich die Karten seitlich unbegrenzt ausdehnen – vertikales Scrollen wird verhindert, nur horizontales Scrollen ist erlaubt.


7. Häufige Stolperfallen​

SymptomUrsache / Lösung
Tag-Tabelle bleibt leer beim Klick auf eine ZeileKeine Tags in dieser OPC registriert. Über Bearbeiten Tags hinzufügen
Verbunden, aber Erfassung gestörtAdressformat / Datentyp (Format) / PLC-Schreibberechtigung prüfen
Zelle "Letzter Wert" wird lange nicht aktualisiertErfassungszyklus (timecycle) ist lang oder PLC liefert unveränderte Werte – mit Sofort lesen erzwingen
Warnung "Leseergebnis weicht ab" nach ✏ SchreibenPLC-Programm überschreibt den Wert innerhalb von 1 Sekunde selbst. Kann normal sein (z. B. Lockout-Spule)
Letzter Wert ist zu lang zum LesenHorizontaler Scrollbalken erscheint automatisch in der Zelle – innerhalb der Zelle links/rechts scrollen
MOTOR_SENSE-Karten sind leerAsset-Suche hat noch nicht stattgefunden (/connect/motor-sense/asset-list keine Antwort) – kurz warten oder OPC neu starten
Erfassungsstatus direkt nach Start UnbekanntScan-Loop hat noch keinen ersten Zyklus durchlaufen – timecycle + α warten
Nach Löschen und erneutem Hinzufügen startet es wieder mit UnbekanntNormal – wenn auto_collect aktiv ist, wechselt es automatisch zu Verbunden + Normal

8. Weiterführende Informationen​