スケジューリング推奨はしない
保全状態(超過、近く期日、OK)を報告しますが、次回サービスをいつスケジュールするかは決して推奨しません。スケジューリングの判断はフリート・マネージャーに属します。
PMS Agent は計画保全システム(Planned Maintenance System)を担うフェーズ1 専門家です。PostgreSQL から保全履歴を取得し、Alfa Laval のサービス間隔に対する超過状態を計算し、IOT Manager の相互参照ステップに使える構造化保全レポートを返します。
IOT Manager がフラグされたパラメータに対する PMS タスクを派遣すると、エージェントはそのパラメータを関連する物理コンポーネントにマップします:
| フラグされたパラメータ | 調査対象コンポーネント |
|---|---|
UV_INTENSITY | LAMP, QUARTZ-SLEEVE, UVR-UNIT, CIP |
FILTER_DP | FILTER, FILTER-ELEMENT, BACKWASH-MOTOR |
FLOW_RATE | PUMP, VALVE, FLOW-SENSOR |
マッピングで特定された各コンポーネントについて、PMS Agent は以下のシーケンスを実行します。
最終サービス検索
bwts_maintenance_log をクエリし、このコンポーネント種別に一致する最新のサービス記録を取得します。サービス日、作業内容、技術者メモを抽出します。
現在のランタイム
最終サービスからの経過時間または日数を計算します。時間ベースのコンポーネント(例:UVランプ)については、bwts_iot_telemetry のランタイム・カウンタを使用します。カレンダーベースのコンポーネント(例:石英スリーブ)については日付差を使用します。
超過チェック
現在のランタイムを Alfa Laval 保全スケジュールと比較します。超過分類システムを使ってコンポーネントを分類します。
次回サービス期日
最終サービス日とスケジュール間隔に基づいて、次回サービス期日を計算します。次回サービスが現運転セッション中に到来する場合はフラグします。
サービス履歴 — 直近3件
このコンポーネントの直近3件のサービス記録を取得します。パターンを探します:サービス間隔の短縮(摩耗加速)、繰り返し問題、不完全な修理など。
アラートとの文脈的関連付け
コンポーネントの保全状態が現在のアラートを説明できるかを評価します。例:「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 Lamp | 3,000時間 | ランタイム | 強度が定格出力以下または 3,000h のいずれか早い方で交換 |
| Quartz Sleeve | 90日 | カレンダー | 洗浄または交換。高濁度水域では汚損が加速 |
| CIP (Clean-In-Place) | 30日 | カレンダー | UV チャンバーと流路の化学洗浄サイクル |
| Filter Element | 6か月 | カレンダー | 交換または深部洗浄。差圧トレンドで早期目詰まりを確認 |
| Backwash Motor | 12か月 | カレンダー | ベアリング、シール、電気接続を点検 |
| Flow Sensor | 12か月 | カレンダー | 較正チェック。ドリフトが誤流量アラートを引き起こす可能性 |
| UVR Unit | 12か月 | カレンダー | ユニット全体点検 — 電子部品、配線、センサー較正 |
| Pump Seals | 6か月 | カレンダー | 漏れを点検。摩耗痕跡が見える場合は交換 |
| Valve Actuators | 12か月 | カレンダー | 全バルブの機能テスト。応答時間を仕様と比較 |
すべての PMS Agent 応答は、PMS REPORT 構造に従います。
| セクション | 内容 |
|---|---|
| コンポーネント別状態 | 各調査対象コンポーネントごとに1ブロック:最終サービス、ランタイム、超過分類、次回サービス期日、サービス履歴(直近3件) |
| 要約 | 全体保全姿勢 — OVERDUE、DUE SOON、OK、NO RECORD のコンポーネントが何件か |
| 保全ギャップ | NO RECORD 状態のコンポーネントや、サービス間に異常に長いギャップ |
| データギャップ | 欠落または不完全な記録、クエリできなかったテーブル、既知のデータ品質問題 |
=== PMS REPORT ===
COMPONENT: UV LAMP Last Service: 2026-03-12 (replaced — 4x UV lamps) Runtime Since Service: 3,247 hours Scheduled Interval: 3,000 hours Status: OVERDUE (247 hours past interval) Next Service Due: Was due at 3,000h — currently 247h overdue Service History: 1. 2026-03-12 — Full lamp replacement (4x) 2. 2025-11-08 — Lamp 3 replaced (single failure) 3. 2025-06-20 — Full lamp replacement (4x) Link to Alert: UV lamp is 247 hours past the 3,000-hour service interval. Consistent with the observed 27% decline in UV intensity.
COMPONENT: QUARTZ SLEEVE Last Service: 2026-04-15 (cleaned) Days Since Service: 36 days Scheduled Interval: 90 days Status: OK (40% through interval) Next Service Due: 2026-07-14 Link to Alert: Quartz sleeve recently serviced. Unlikely contributor to current UV intensity decline.
SUMMARY OVERDUE: 1 (UV Lamp) DUE SOON: 0 OK: 3 (Quartz Sleeve, UVR Unit, CIP) NO RECORD: 0graph 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 を通じて流れます。