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

接続一覧 / タグ一覧 (/ui/connect/list) — カラム / アクション完全ガイド

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

ホームカード 接続された一覧 (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) — ソート基準 (default 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 で両者の状態が異なる場合:

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

4. 行の選択 → タグ一覧

OPC 行をクリックすると:

  1. その行が selected クラスでハイライト(他の行は解除)
  2. connect.tag_list(opcId) を呼び出し → その OPC のタグを取得して下部の タグ一覧テーブル に描画
  3. その OPC の opc_typeMOTOR_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. さらに詳しく