メインコンテンツまでスキップ

接続リストとタグリスト

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

ゲートウェイが認識しているすべての OPC(接続) リスト と、その中の タグリスト を1つの画面で確認し、開始 / 停止 / 編集 / 削除 / 値の書き込み / 即時読み取りまでをすべて処理する運用の核となる画面です。

接続リスト画面 — 左側 OPC リスト、右側タグリスト

ホームカード 接続済みリスト (N) → クリック、または http://<gateway>/ui/connect/list から直接。


1. 画面構成​

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

MOTOR_SENSE プロトコルの OPC を選択すると、タグテーブルの代わりに HEALTH INDEX / SIGNAL カードコンテナ が表示されます (別節参照)。


2. 上部バー — ボタン​

ボタン動作
← (バックスペースアイコン)/ui/main へ移動
↻ (sync アイコン)connect.search() — リスト再取得 (自動更新はデータテーブルが行う — 強制リフレッシュ用)
+ 接続追加 (青ボタン)/ui/connect/connect 新規接続追加画面へ移動

3. OPC リストテーブル (14 カラム)​

/connect/opc/list API 結果を DataTables が描画します。

#カラム意味 / 表示
1PLC | プロトコルプロトコル別ロゴ画像 — 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
2接続状態ラウンドバッジ — 🟢 接続 / 🔴 切断 / ⬜ 不明(一度も開始していない)
3OPC ID固有 ID (例: OPC_LS_TEST) — ソート基準 (デフォルト ASC)
4OPC 名ユーザー定義名
5説明自由メモ
6PLC IPOPC が接続する PLC の IP
7PLC ポートOPC ポート (LS 2004, S7 102, MODBUS 502 など)
8収集周期timecycle (ms) — 右揃え、桁区切りカンマ
9自動開始auto_collect=true なら ✓、そうでなければ -
10非同期async=true なら ✓、そうでなければ -
11接続済みタグ数この OPC に登録されているタグ数 — 右揃え
12収集件数累積 read 件数 (point_count) — 大きな数値は横スクロールで表示
13収集状態ラウンドバッジ — 🟢 正常 (scan_status=START、回転 sync アイコン) / 🟧 異常 (NOT COLLECT、警告三角形) / ⬜ 停止 (STOP、停止アイコン)
14アクション▶ 開始 / ⏹ 停止 / 🔧 編集 / 🗑 削除 (4 アイコン)

3.1 アクションアイコン — 詳細​

アイコン動作呼び出し
▶ 開始 (fa-play)収集開始connect.start(opcId) → POST /connect/start
⏹ 停止 (fa-stop)収集停止 (TCP 接続は維持)connect.stop(opcId) → POST /connect/stop
🔧 編集 (fa-wrench)OPC 種類別編集画面へ移動 (例: /ui/connect/ls など opc_type に応じて分岐)connect.edit(opcId&opcType)
🗑 削除 (fa-trash)確認ダイアログ → OPC + 配下タグを一括削除connect.del(opcId&opcType)
削除は元に戻せません

OPC 削除時、その下のタグ row も一緒に消えます。時系列データ (Cassandra tm_tag_point) は TTL 期限切れまで残りますが、新しい read は入ってきません。

3.2 接続状態 と 収集状態 の違い​

同じ OPC に対して2つの状態が異なる場合:

接続収集意味
🟢 接続🟢 正常正常動作
🟢 接続🟧 異常TCP 接続は生きているが、read 応答が一定時間内に来ない — PLC プログラム / アドレス誤記 / 権限を疑う
🟢 接続⬜ 停止ユーザーが ⏹ 停止を押した状態
🔴 切断⬜ 停止正常な 未開始 状態
🔴 切断🟧 異常一度動作したが PLC が切断 — IP/ポート/ファイアウォールを点検
⬜ 不明⬜ 停止登録のみで一度も開始していない新規 OPC

4. 行選択 → タグリスト​

OPC 行クリック時:

  1. その行が selected クラスでハイライト (他の行は解除)
  2. connect.tag_list(opcId) 呼び出し → その OPC のタグを取得し、下の タグリストテーブル に描画
  3. その OPC の opc_type が MOTOR_SENSE なら、タグテーブルの代わりに HEALTH INDEX / SIGNAL カードコンテナを表示

行選択結果は window.__connect_list_selected_opc_id に保存 — タグインライン書き込み時に opc_id パラメータとして使用。


5. タグリストテーブル (14 カラム)​

選択された OPC 内のタグを表示。最後の値 / 時間 / read 状態がページ内で 周期的に 更新されます (writejs.value() — 別途ポーリング)。

#カラム意味 / 表示
1(アイコン)タグアイコン (fa-tag)
2TAG ID固有 ID (例: TAG_LS_TEST_1000)
3TAG 名ユーザー定義名
4説明自由メモ
5データタイプInteger / Boolean / Float / Long / String など
6PLC アドレスPLC プロトコル別アドレス (例: D1000、ns=2;s=...)
7PLC データフォーマットフォーマットオプション (X / B / W / DW / Float など — ドライバごとの read/write の精密分岐に使用)
8計算計算式 (fomula) — ${VALUE} * 10 のような単純な算術を適用
9収集件数累積 read 件数 — 右揃え
10最後の値最新の値 — 緑背景 + 白文字。大きなテキスト (STRING/配列) はセルが横スクロール
11最終更新時刻暗いグレー背景 + 白文字、ms まで
12読み取り状態🟢 SUCCESS (緑) / 🔴 ERROR (赤)
13読み取りエラーメッセージ状態が ERROR の時のみ表示 — 赤背景 + 白文字
14アクション✏ 書き込み / 🔄 即時読み取り (2 アイコン)

5.1 タグアクション — 詳細​

✏ 書き込み (fa-pen)​

対象タグに一度値を書き込むインラインアクション。

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 후 화면의 마지막 값 셀도 자동 갱신

内部的に ConnectService.tagWriteByTagId() が PLC プロトコルに応じて分岐 (HTTP / OPC-UA / Modbus / MELSEC / S7 / LS / EIP すべて対応)。

書き込みは危険です

実設備タグへ書き込む前に シミュレーター OPC または テストタグ で検証してください。write 権限は運用チームと合意したタグのみに。

🔄 即時読み取り (fa-sync-alt)​

収集キャッシュをバイパスし、PLC から 今 直接 read。

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

収集周期が長い PLC (例: 30秒) での 手動更新 用。頻繁に使用すると PLC 負荷が増えます。


6. MOTOR_SENSE 専用領域​

opc_type=MOTOR_SENSE OPC を選択すると、タグテーブルの代わりに以下が表示されます。

6.1 状態情報領域​

項目意味
最終更新時刻MOTOR_SENSE 資産の最新データ時点
読み取り状態SUCCESS / ERROR

6.2 HEALTH INDEX セクション​

❤ アイコン + 資産別カード — 横スクロール。各カードに資産 ID + 測定指標 (level, alarm など)。カード色: 薄い青背景 + 濃い青ボーダー。

6.3 SIGNAL セクション​

📶 アイコン + 資産別カード — 横スクロール。時系列シグナルメトリクス。カード色: 薄いグレー。

両セクションとも、資産が多くてもカードが横に無限に伸びるように 縦 スクロールは防ぎ、横 スクロールのみ許可。


7. よくある落とし穴​

症状原因 / 解決策
行クリックしてもタグテーブルが空その OPC に登録されたタグがない。編集 から入ってタグ追加
接続 なのに 収集異常アドレス形式 / データタイプ (format) / PLC Write 権限を点検
最後の値セルがなかなか更新されない収集周期 (timecycle) が長い、または PLC が変化しない値 — 即時読み取り で強制 read
✏ 書き込み後 読み取り結果が異なる 警告PLC プログラムが1秒以内に自ら上書き。正常な場合あり (lockout コイルなど)
最後の値が長すぎて読みにくいそのセルに横スクロールバーが自動生成 — セル内で左右スクロール
MOTOR_SENSE カードが空資産検索がまだ完了していない (/connect/motor-sense/asset-list 未応答) — 少し待つか OPC 再起動
開始直後に 収集状態 が 不明scan loop がまだ最初のサイクルを回していない — timecycle + α 待つ
削除直後に再度追加すると 不明 で再開始正常 — auto_collect が on なら自動で 接続 + 正常 に移行

8. 関連情報​