コンテンツにスキップ

PMS Agent

役割

PMS Agent は計画保全システム(Planned Maintenance System)を担うフェーズ1 専門家です。PostgreSQL から保全履歴を取得し、Alfa Laval のサービス間隔に対する超過状態を計算し、IOT Manager の相互参照ステップに使える構造化保全レポートを返します。


コンポーネント・マッピング

IOT Manager がフラグされたパラメータに対する PMS タスクを派遣すると、エージェントはそのパラメータを関連する物理コンポーネントにマップします:

フラグされたパラメータ調査対象コンポーネント
UV_INTENSITYLAMP, QUARTZ-SLEEVE, UVR-UNIT, CIP
FILTER_DPFILTER, FILTER-ELEMENT, BACKWASH-MOTOR
FLOW_RATEPUMP, VALVE, FLOW-SENSOR

コンポーネント別プロセス

マッピングで特定された各コンポーネントについて、PMS Agent は以下のシーケンスを実行します。

  1. 最終サービス検索

    bwts_maintenance_log をクエリし、このコンポーネント種別に一致する最新のサービス記録を取得します。サービス日、作業内容、技術者メモを抽出します。

  2. 現在のランタイム

    最終サービスからの経過時間または日数を計算します。時間ベースのコンポーネント(例:UVランプ)については、bwts_iot_telemetry のランタイム・カウンタを使用します。カレンダーベースのコンポーネント(例:石英スリーブ)については日付差を使用します。

  3. 超過チェック

    現在のランタイムを Alfa Laval 保全スケジュールと比較します。超過分類システムを使ってコンポーネントを分類します。

  4. 次回サービス期日

    最終サービス日とスケジュール間隔に基づいて、次回サービス期日を計算します。次回サービスが現運転セッション中に到来する場合はフラグします。

  5. サービス履歴 — 直近3件

    このコンポーネントの直近3件のサービス記録を取得します。パターンを探します:サービス間隔の短縮(摩耗加速)、繰り返し問題、不完全な修理など。

  6. アラートとの文脈的関連付け

    コンポーネントの保全状態が現在のアラートを説明できるかを評価します。例:「UVランプは 3,000時間のサービス間隔に対し 3,247 ランタイム時間 — 352時間超過。観測された UV 強度低下と整合的です。」


超過分類

PMS Agent はすべてのコンポーネントを4つの状態のいずれかに分類します:

状態基準
OVERDUEランタイムまたはカレンダー経過がスケジュールされたサービス間隔を超過
DUE SOONスケジュール間隔の 10% 以内(例:3,000時間間隔のランプが 2,700+ 時間)
OKスケジュール間隔内 — 保全上の懸念なし
NO RECORDデータベースにこのコンポーネントのサービス履歴が見つからない。状態判定不能。

保全スケジュール

Alfa Laval BWTS 機器マニュアルからのサービス間隔:

コンポーネント間隔基準注記
UV Lamp3,000時間ランタイム強度が定格出力以下または 3,000h のいずれか早い方で交換
Quartz Sleeve90日カレンダー洗浄または交換。高濁度水域では汚損が加速
CIP (Clean-In-Place)30日カレンダーUV チャンバーと流路の化学洗浄サイクル
Filter Element6か月カレンダー交換または深部洗浄。差圧トレンドで早期目詰まりを確認
Backwash Motor12か月カレンダーベアリング、シール、電気接続を点検
Flow Sensor12か月カレンダー較正チェック。ドリフトが誤流量アラートを引き起こす可能性
UVR Unit12か月カレンダーユニット全体点検 — 電子部品、配線、センサー較正
Pump Seals6か月カレンダー漏れを点検。摩耗痕跡が見える場合は交換
Valve Actuators12か月カレンダー全バルブの機能テスト。応答時間を仕様と比較

出力形式

すべての PMS Agent 応答は、PMS REPORT 構造に従います。

セクション内容
コンポーネント別状態各調査対象コンポーネントごとに1ブロック:最終サービス、ランタイム、超過分類、次回サービス期日、サービス履歴(直近3件)
要約全体保全姿勢 — OVERDUE、DUE SOON、OK、NO RECORD のコンポーネントが何件か
保全ギャップNO RECORD 状態のコンポーネントや、サービス間に異常に長いギャップ
データギャップ欠落または不完全な記録、クエリできなかったテーブル、既知のデータ品質問題

ツール

graph LR
PMS["PMS Agent"] --> DQ["db_query.py\nPMS query templates"]
DQ --> PG[("PostgreSQL")]
subgraph "Tables"
T1["bwts_maintenance_log\nNo vessel_id column"]
T2["bwts_iot_predictions\ncamelCase — needs double-quotes"]
T3["bwts_iot_telemetry\nRuntime counters"]
end
PG --- T1
PG --- T2
PG --- T3
style PMS fill:#1a1a2e,stroke:#e94560,stroke-width:3px,color:#fff
style DQ fill:#16213e,stroke:#0f3460,stroke-width:2px,color:#fff
style PG fill:#0d1b2a,stroke:#1b9aaa,stroke-width:2px,color:#fff
style T1 fill:#0d1b2a,stroke:#1b9aaa,stroke-width:1px,color:#fff
style T2 fill:#0d1b2a,stroke:#1b9aaa,stroke-width:1px,color:#fff
style T3 fill:#0d1b2a,stroke:#1b9aaa,stroke-width:1px,color:#fff
テンプレート目的
last_service指定コンポーネント種別の最新サービス記録を取得
current_runtime最終サービスイベント以降の時間または日数を計算
service_historyコンポーネントの直近 N 件のサービス記録を取得(既定:3件)
overdue_componentsランタイムまたはカレンダー経過がスケジュール間隔を超過する全コンポーネントを列挙
component_by_equipment指定機器タグに関連するすべてのコンポーネントを列挙

してはならないこと

スケジューリング推奨はしない

保全状態(超過、近く期日、OK)を報告しますが、次回サービスをいつスケジュールするかは決して推奨しません。スケジューリングの判断はフリート・マネージャーに属します。

センサー分析はしない

センサートレンドの分析、異常検出、テレメトリ・データの解釈は行いません。それは Data Analysis Agent の責務です。テレメトリ・テーブルはランタイム・カウンタにのみ使用します。

マニュアル検索しない

機器マニュアルの参照、文書化原因検索、トラブルシューティング・ガイドは Manual Agent の領域です。

レポート生成やメールはしない

所見はタスクシステムに書き込みます。クライアント向けレポートや HTML 文書を生成することも、メールを送信することも決してありません。すべての外部通信は Report Agent を通じて流れます。