生成式AI進入工廠後,壓力錶與溫度計會變成什麼?從感測器、PLC、SCADA 到 AI 異常偵測與預測維護的完整指南
昶特 ATLANTIS|台灣 31 年工業儀錶製造商|壓力錶、溫度計、壓力傳送器、溫度傳送器完整選型知識庫
核心洞察(先讀這一段就夠決定方向)
生成式 AI 進入工廠之後,壓力錶與溫度計不會消失,反而會變得更重要。原因很單純:AI 不能憑空「看見」製程,它只能讀取儀錶送出的數字。當模型愈聰明,儀錶的量測準確度、訊號穩定度、校正紀錄與通訊能力就愈決定 AI 的上限。過去一支壓力錶的價值,是讓巡檢人員在現場「看一眼」;未來一支壓力錶或溫度計的價值,是持續提供「可信、可追溯、可被機器讀取」的資料點。
換句話說,儀錶從「顯示設備」升級為「資料源」。本文用一條完整的資料鏈說明這個轉變:感測器 → PLC → SCADA → AI → 異常偵測 → 預測維護,並附上 Python、Modbus、MQTT 等範例程式,讓工程師可以直接拿去驗證資料流。
責任邊界聲明(請務必閱讀)
昶特 ATLANTIS 是儀錶製造商,提供壓力錶、溫度計、壓力傳送器、溫度傳送器等量測硬體。本公司不提供 IoT 平台、AWS 或其他雲端服務的串接與代工服務,PLC 程式、SCADA 畫面、雲端帳號、資料庫、AI 模型與其部署維運,均需由客戶或客戶委任的系統整合商自行規劃與建置。本文所附範例程式僅為技術參考與資料流驗證用途,不構成軟體產品或服務承諾,使用前請依貴廠資安規範與實際設備完成測試。
本文目錄
- 前言:為什麼「AI 進廠」的第一個問題是儀錶,而不是模型
- 第 1 章 六層資料鏈:感測器 → PLC → SCADA → AI → 異常偵測 → 預測維護
- 第 2 章 壓力錶與溫度計的角色轉變:從「看」到「被讀取」
- 第 3 章 感測層選型:類比、HART、RS-485 與藍牙如何取捨
- 第 4 章 PLC 與 SCADA:資料怎麼從現場走到畫面(含範例程式 1~3)
- 第 5 章 生成式 AI 在工廠的真實定位(含範例程式 4)
- 第 6 章 異常偵測:從門檻警報到機器學習(含範例程式 5~6)
- 第 7 章 預測維護:儀錶漂移、校正週期與剩餘壽命(含範例程式 7~8)
- 第 8 章 三個情境案例與效益推估
- 第 9 章 90 天導入路線圖與常見的十個坑
- 第 10 章 OT 資安與責任邊界
- 第 11 章 20 個常見問題(FAQ)
- 第 12 章 延伸閱讀與相關資源
- 結論與聯絡方式
前言:為什麼「AI 進廠」的第一個問題是儀錶,而不是模型
過去兩年,台灣製造業的會議室裡出現同一種對話。管理階層看完生成式 AI 的展示,回頭問工廠:「我們能不能也做一套?」工程團隊通常會先想到算力、模型、平台與資料湖,但真正動手的第一個月,卡關的地方幾乎都不在模型,而在最基礎的一件事:資料進不來,或進來的資料不能信。
在半導體廠、石化廠、食品廠、空調機房或壓縮空氣站,現場最常見的量測儀器就是壓力錶與溫度計。它們已經服役十年、二十年,讀數靠人眼巡檢,紀錄靠紙本或 Excel。這些儀錶本身通常沒有問題,問題在於它們沒有被設計成「持續輸出資料」。當 AI 要學習製程的正常樣貌、要在異常發生前提早警示,就需要每分鐘甚至每秒鐘一筆、而且準確度有保證的壓力與溫度資料。
因此,「生成式 AI 進入工廠」對儀錶的影響可以濃縮成三句話:第一,讀數必須能被機器取得;第二,讀數必須有明確的準確度、量程與校正紀錄;第三,儀錶本身的健康狀態,也要成為資料的一部分。這三件事,正是本文要拆解的重點。
6 層
從感測器到預測維護的完整資料鏈
4–20 mA
至今仍是工廠最普及的類比訊號標準
31 年
昶特 ATLANTIS 工業儀錶製造經驗
8 支
本文附上的可執行範例程式
為什麼是「壓力」與「溫度」?
在流程工業與設備工程裡,壓力與溫度是最基本的兩個狀態變數。泵浦的入口壓力下降,可能代表過濾器堵塞或汽蝕;冷卻水的出水溫度上升,可能代表熱交換器結垢;壓縮機的排氣溫度與壓力同時偏離,可能是閥片磨損。這些「因果關係」都寫在壓力與溫度的組合變化裡。AI 不需要懂你的每一台設備,只要有足夠乾淨的壓力與溫度時序資料,就能學到「正常」的樣子,並在偏離時提醒你。
這也是為什麼許多預測維護專案的第一階段,都從壓力與溫度開始:感測點多、成本低、物理意義明確、與設備故障的關聯性高。振動與電流分析固然重要,但往往需要更專業的分析能力;壓力與溫度則是工廠人員本來就熟悉的語言,最容易讓現場工程師與 AI 系統「對得上話」。
本文適合誰閱讀
本文寫給正在評估或已在推動智慧製造的工程師與決策者,包括:設備與儀控工程師、廠務與設施管理人員、製程工程師、自動化系統整合商、以及需要為儀錶採購與 AI 專案共同背書的採購與資訊部門。內容以繁體中文與台灣業界習慣用語撰寫,所有案例均已匿名化。
第 1 章 六層資料鏈:感測器 → PLC → SCADA → AI → 異常偵測 → 預測維護
談「AI 進廠」最容易犯的錯,是把它想成一個單一的系統。實際上,從現場一支壓力錶到管理者手機上的一則維護提醒,中間至少經過六個層次。每一層有不同的責任、不同的技術語言,也由不同的團隊負責。看懂這六層,才知道自己的專案卡在哪裡、該找誰、該買什麼。
表 1-1 六層資料鏈的責任分工與關鍵產出
| 層次 | 主要任務 | 典型技術 | 關鍵產出 | 常見卡關點 |
|---|---|---|---|---|
| ① 感測器 | 把壓力、溫度轉換成可傳輸的訊號 | 壓力錶、壓力傳送器、RTD、熱電偶、溫度傳送器 | 準確、穩定、可追溯的原始量測值 | 量程選錯、安裝點不佳、漂移未察覺 |
| ② PLC | 採集訊號、工程單位換算、連鎖控制 | 類比輸入模組、Modbus、PROFINET、EtherNet/IP | 換算後的工程值與狀態位元 | 換算公式錯誤、掃描週期太慢 |
| ③ SCADA | 集中監控、歷史紀錄、警報管理 | OPC UA、Historian、HMI | 時序資料庫與警報事件 | 標籤命名混亂、紀錄週期不一致 |
| ④ AI 平台 | 資料清洗、特徵工程、模型推論 | Python、時序資料庫、機器學習框架、大型語言模型 | 特徵、預測值、自然語言說明 | 資料品質差、缺少製程脈絡 |
| ⑤ 異常偵測 | 判斷「與正常不同」並分級 | 統計控制圖、Isolation Forest、自編碼器 | 異常分數與警報等級 | 誤報過多導致現場不信任 |
| ⑥ 預測維護 | 預估剩餘壽命、排定維修與校正 | 趨勢回歸、存活分析、工單系統整合 | 維護建議與工單 | 缺少歷史故障標籤、流程未閉環 |
1.1 「垃圾進,垃圾出」在儀錶層最致命
在資料科學領域,「垃圾進、垃圾出」是老生常談,但在工廠現場它有更具體的樣貌。一支量程選得太大的壓力傳送器,在正常操作壓力只有滿量程 15% 時,解析度與精度都被犧牲,AI 看到的其實是被量化噪聲放大的雜訊。一支安裝在死角、受環境溫度影響劇烈的溫度計,AI 學到的則是廠房空調的日夜變化,而不是製程本身。這些錯誤,後段的任何演算法都無法救回來。
所以我們主張:AI 專案的第一筆預算,應該先投在「量測品質稽核」上。盤點哪些測點值得被 AI 使用、它們的量程與精度是否匹配、有沒有校正紀錄、安裝方式是否合理。這件事看起來不像 AI,卻是整個專案成功率最高的投資。
1.2 OT 與 IT 兩種語言
六層資料鏈裡,前三層屬於 OT(營運技術)領域,後三層屬於 IT(資訊技術)領域。OT 人員講的是 4-20 mA、隔離、接地、防爆等級、掃描週期;IT 人員講的是 API、資料表、模型、雲端與延遲。兩邊都沒有錯,但常常彼此聽不懂。一個好的 AI 專案,會刻意安排一位「翻譯者」,通常是熟悉 PLC 與 SCADA 的自動化工程師,他能把「這支壓力傳送器輸出 4-20 mA、量程 0-10 bar、精度 ±0.5%」翻譯成「這個欄位的解析度、極限與可信區間」。
這一章的決策重點
- 先確認每個測點「是否值得被 AI 使用」,而不是一次接上全廠。
- 把儀錶層的品質規格(量程、精度、校正日期)視為資料欄位的一部分保存下來。
- OT 與 IT 之間需要一個翻譯者,通常是自動化工程師。
- 本文提到的雲端與 IoT 串接,均由客戶自行規劃,昶特專注在量測硬體。
第 2 章 壓力錶與溫度計的角色轉變:從「看」到「被讀取」
如果把儀錶的演進放在一條時間軸上,可以看到清楚的三個階段。第一階段是「現場指示」:機械式壓力錶與雙金屬溫度計,由巡檢人員定時抄錄。第二階段是「訊號傳送」:壓力傳送器與溫度傳送器輸出 4-20 mA,接進 PLC 與 DCS,成為控制迴路的一部分。第三階段,也就是生成式 AI 時代正在發生的,是「資料資產」:儀錶不只輸出當下數值,還輸出品質、診斷與履歷,並且被長期保存與反覆分析。
表 2-1 傳統儀錶思維與 AI-Ready 儀錶思維對照
| 比較面向 | 傳統思維 | AI-Ready 思維 |
|---|---|---|
| 儀錶的角色 | 現場人員的讀數工具 | 持續供應資料的感測節點 |
| 讀取頻率 | 每班或每日人工抄錄 1~3 次 | 每秒至每分鐘自動記錄,形成時序資料 |
| 準確度關注點 | 出廠精度等級是否符合規格 | 長期穩定度、溫漂、遲滯與重複性 |
| 校正管理 | 固定週期,例如每年一次 | 依漂移趨勢與重要度動態調整 |
| 故障處理 | 壞了再換 | 從趨勢與診斷預判,排入停機視窗 |
| 資料保存 | 紙本或 Excel | 時序資料庫,附測點、量程、校正履歷 |
| 對 AI 的意義 | 幾乎沒有 | 模型的輸入來源與可信度基礎 |
2.1 機械式壓力錶不會被淘汰,但用途會被重新定義
很多人一聽到「智慧製造」就想把所有機械式壓力錶換掉,這是不必要的。機械式壓力錶結構簡單、不需要電源、可靠度高,即使控制系統全部失效,現場人員仍可以憑指針判斷壓力。在 AI 時代,它的角色更接近「現場的獨立驗證者」:當 AI 判斷某個測點異常,工程師到現場看一眼機械錶,就能快速確認是真的製程異常,還是傳送器本身出了問題。
因此,比較務實的做法是採用「雙軌並行」:關鍵測點同時保留機械式壓力錶作為現場指示與交叉檢核,並加裝壓力傳送器負責資料採集。兩者的讀數差異本身,就是一個很好的儀錶健康指標。當差異逐漸擴大,代表其中一支開始漂移。
2.2 數位壓力錶與藍牙錶:讓現場巡檢也數位化
對於不方便拉線、或測點分散的區域,數位壓力錶與具備藍牙功能的數位壓力錶提供了另一條路徑:儀錶本身有高解析度顯示,巡檢人員可用手機或平板讀取數值並自動上傳,減少手抄錯誤,也讓「人工巡檢資料」直接進入資料庫。這類做法適合作為 AI 專案的第一步,因為導入門檻低,不需要動到既有的 PLC 配線。
2.3 溫度計的三種資料化路徑
溫度量測的資料化通常有三條路徑。第一條是雙金屬溫度計搭配溫度傳送器:保留現場指示,再以傳送器取得電訊號。第二條是直接使用 RTD(例如 Pt100)或熱電偶,接入 PLC 的溫度輸入模組,適合需要高準確度或多點量測的場合。第三條是使用智慧型溫度傳送器,將感測元件與訊號調理整合,輸出 4-20 mA 並疊加 HART 數位訊號,除了溫度值,還能取得感測器斷線、超出範圍等診斷資訊。
選擇哪一條路徑,取決於量測點的重要度、環境條件與既有系統。原則是:重要度愈高、愈需要診斷資訊,愈應該使用具備數位通訊的智慧型傳送器;重要度較低、僅需趨勢觀察的測點,則可用成本較低的方案先行導入。
2.4 儀錶「健康狀態」也是資料
最後一個常被忽略的觀念是:儀錶本身也會老化。膜片疲勞、感壓元件漂移、填充液洩漏、RTD 元件受潮,這些都會讓讀數慢慢偏離真實值。如果 AI 把一個漂移中的感測器當成真值,就會得出錯誤的結論,例如誤判製程劣化,或是漏掉真正的異常。因此在 AI 時代,需要為每個測點建立「儀錶健康檔案」,包含安裝日期、量程、精度等級、最近校正日期與偏差值。第 7 章我們會示範如何用簡單的程式估算漂移速率,並預測下一次校正的最佳時間點。
給採購與工程的實務建議
- 關鍵測點採「機械錶+傳送器」雙軌,兩者差異即為健康指標。
- 不方便拉線的區域,可先以數位壓力錶或藍牙錶做人工巡檢資料化。
- 重要溫度點優先選用具診斷能力的智慧型溫度傳送器。
- 為每個測點建立儀錶健康檔案,並讓 AI 讀得到。
第 3 章 感測層選型:類比、HART、RS-485 與藍牙如何取捨
感測層是整條資料鏈的地基。選錯訊號型式,後面的 PLC、SCADA、AI 都要額外花力氣補救;選對了,資料鏈往往可以「一路順到底」。這一章從訊號型式、量程與精度、環境條件三個角度,整理出實務上最常用的選型邏輯。
3.1 四種常見輸出型式的比較
表 3-1 壓力/溫度儀錶常見輸出型式與適用場合
| 輸出型式 | 特點 | 優點 | 限制 | 適合的 AI 專案階段 |
|---|---|---|---|---|
| 4-20 mA 類比 | 電流迴路,兩線式供電與訊號共用 | 抗干擾佳、傳輸距離長、與既有 PLC 相容度最高 | 單一變數、無診斷資訊、解析度受 AI 模組位元數限制 | 既有產線升級、快速取得資料 |
| 4-20 mA+HART | 類比訊號上疊加數位通訊 | 保留類比可靠度,並可讀取診斷、組態與多變數 | 需要 HART 多工器或支援 HART 的輸入模組才能發揮 | 重要測點、需要儀錶健康資訊 |
| RS-485 Modbus RTU | 串列匯流排,多台儀錶共線 | 可直接取得數位值,減少 A/D 轉換誤差,配線省 | 需規劃位址、鮑率與終端電阻,輪詢速度受限 | 多點採集、邊緣閘道 |
| 藍牙/無線 | 短距離數位傳輸 | 免拉線、適合巡檢與臨時量測 | 穩定度與資安需另行評估,不建議用於控制迴路 | 巡檢資料化、試點驗證 |
需要特別說明的是,各儀錶型號實際支援哪些輸出與通訊選項並不相同,部分型式屬於選配。採購時請提供測點清單與整體系統架構,由昶特業務與技術團隊協助確認型號與通訊規格,避免買了儀錶才發現接不進既有系統。
3.2 量程選擇:AI 專案最常見的隱形錯誤
量程選擇看似基礎,卻是影響資料品質最深的因素。工業實務上有一個常見經驗法則:正常操作壓力落在滿量程的 30% 到 70% 之間。低於 30%,相對誤差會放大,訊號解析度也不足;高於 70% 甚至接近滿量程,遇到壓力突波時容易過載,也失去監測異常上升的空間。
以一個正常操作壓力約 6 bar 的冷卻水系統為例,若選用 0~100 bar 的傳送器,正常值只佔量程的 6%,以 ±0.5% FS 的精度計算,誤差就是 ±0.5 bar,占讀數的 8% 以上,AI 幾乎不可能從中判讀出 0.3 bar 的微小壓降。若改選 0~10 bar,同樣的精度誤差降為 ±0.05 bar,占讀數不到 1%,資料的可用性完全不同。
表 3-2 同一製程壓力下,不同量程對資料可用性的影響(以精度 ±0.5% FS 計算)
| 正常操作壓力 | 選用量程 | 操作點佔量程比例 | 最大誤差 | 誤差占讀數比例 | AI 可用性評估 |
|---|---|---|---|---|---|
| 6 bar | 0~100 bar | 6% | ±0.50 bar | 約 8.3% | 差:微小變化被誤差淹沒 |
| 6 bar | 0~25 bar | 24% | ±0.125 bar | 約 2.1% | 可用但偏保守 |
| 6 bar | 0~10 bar | 60% | ±0.05 bar | 約 0.8% | 佳:兼顧解析度與過載空間 |
| 6 bar | 0~6 bar | 100% | ±0.03 bar | 約 0.5% | 不佳:無突波餘裕 |
3.3 昶特 ATLANTIS 感測層產品組合
昶特 ATLANTIS 擁有 31 年的工業儀錶製造經驗,產品涵蓋壓力錶、溫度計、壓力傳送器、溫度傳送器、差壓傳送器與液位傳送器。以下挑選與本文資料鏈最相關的幾項產品做簡要說明,完整規格請參閱官方產品目錄。所有產品均採報價制,請透過詢價管道取得報價與交期。

圖說:ATLANTIS SDPT-3100 HART 智能型壓力傳送器 — 類比加數位診斷,適合重要測點

圖說:ATLANTIS DPG-X112 高精度藍芽數位壓力錶 — 巡檢資料化的入門選擇

圖說:ATLANTIS STT HART 智能型溫度傳送器 — 溫度訊號調理與診斷

圖說:ATLANTIS RTD-907A 白金電阻溫度計 — 高準確度溫度量測

圖說:ATLANTIS PTX-CC HART 通訊防爆壓力傳送器 — 危險場所的資料源

圖說:ATLANTIS DPT-AC HART 差壓傳送器 — 過濾器堵塞與流量監測
表 3-3 與本文資料鏈最相關的昶特產品對照
| 產品 | 類型 | 主要用途 | 在 AI 資料鏈中的角色 |
|---|---|---|---|
| SDPT-3100 | HART 智能型壓力傳送器 | 製程壓力、泵浦出口壓力、管線壓力 | 高品質壓力資料源,可讀取儀錶診斷資訊 |
| AT-PT186 | 智慧型壓力傳送器 | 一般工業壓力監測 | 通用型壓力資料源 |
| PTX-CC | HART 通訊防爆壓力傳送器 | 石化、溶劑、粉塵等危險場所 | 危險區域的壓力資料源 |
| DPT-AC | HART 防腐型差壓傳送器 | 過濾器壓差、腐蝕性介質 | 濾網堵塞預測的關鍵輸入 |
| DPG-X112 / DPG-X002 | 高精度數位壓力錶 | 現場指示與巡檢、校驗參考 | 現場驗證與人工巡檢資料化 |
| STT | HART 智能型溫度傳送器 | 溫度訊號調理與傳送 | 高準確度溫度資料源 |
| RTD-907A | 白金電阻溫度計 | 製程溫度、冷卻水、熱媒 | 精準溫度感測元件 |
| ATT-P4/D4 系列 | 管路型溫度傳送器 | 食品、製藥、化工管線溫度 | 衛生管線的溫度資料源 |
| TDL-R/D-6C | 可攜式多通道溫度紀錄器 | 臨時量測、製程驗證、試點資料收集 | AI 專案前期的資料蒐集工具 |
3.4 材質、防護與環境條件
資料品質同樣受到環境條件影響。腐蝕性介質需要選用相容的接液材質,例如不鏽鋼或更高等級的耐腐蝕材質;含固體顆粒或高黏度的介質,可考慮搭配隔膜座避免取壓孔堵塞;蒸汽或高溫介質,需要加裝虹吸管或散熱管,以保護感壓元件並避免溫漂;戶外或潮濕場所,則要留意 IP 防護等級。若測點位於可燃氣體或粉塵區域,必須選用符合防爆規範的產品,並依當地法規安裝。這些細節不會出現在 AI 簡報裡,卻決定了資料能否長期穩定。
3.5 安裝細節決定資料品質:六個常被忽略的要點
同一支儀錶,安裝方式不同,資料品質可能天差地遠。第一,取壓點位置:應避開管線彎頭、閥門與泵浦出口的強烈紊流區,選擇直管段穩定處,否則壓力讀數會帶著不必要的波動,AI 會把這些波動當成製程特徵學進去。第二,介質特性:蒸汽與高溫介質需加裝虹吸管或散熱管,避免高溫直接衝擊感壓元件;黏稠、易結晶或含顆粒的介質,則要考慮隔膜座,防止取壓孔堵塞造成「讀數看起來很穩、其實早已失真」。第三,導壓管管理:導壓管內若殘留氣泡或積液,會造成讀數遲滯,氣體量測與液體量測的導壓管走向與洩放方式並不相同。第四,溫度感測器插入深度:熱電偶或 RTD 的插入深度不足,會受管壁溫度影響而讀值偏低或偏高,一般建議插入深度須足夠涵蓋感測元件的有效量測段,並視管徑選擇適當的保護套管。第五,接地與屏蔽:4-20 mA 與 RS-485 線路建議使用屏蔽雙絞線,屏蔽層單點接地,並與動力線分開走線,降低變頻器與大型馬達造成的雜訊。第六,標示與履歷:每支儀錶應有唯一編號並與標籤命名一致,銘牌、量程、安裝日期、校正日期都要能與資料庫對應。這些工作看似瑣碎,卻是資料品質的最後一哩路。
表 3-4 安裝問題對資料的影響與檢查方式
| 安裝問題 | 在資料上的樣貌 | AI 可能的誤判 | 檢查方式 |
|---|---|---|---|
| 取壓點靠近泵浦出口 | 高頻脈動、標準差大 | 把脈動誤認為異常振盪 | 比較不同取壓點的波動,必要時加阻尼或改位置 |
| 導壓管積氣或積液 | 反應遲緩、與實際變化有時間差 | 低估變化速度、誤判因果順序 | 洩放檢查,對照現場機械錶 |
| 溫度插入深度不足 | 讀值偏離製程真實溫度並受環境影響 | 把日夜溫差當成製程變化 | 比對手持校驗儀,調整插入深度 |
| 訊號線未屏蔽 | 週期性尖峰或雜訊 | 誤報頻繁 | 頻譜觀察、改善接地與屏蔽 |
| 隔膜或取壓孔堵塞 | 讀數異常平穩、不隨製程變化 | 誤以為製程非常穩定 | 與雙儀錶或機械錶比對,定期沖洗 |
第 4 章 PLC 與 SCADA:資料怎麼從現場走到畫面
當傳送器把壓力或溫度轉成 4-20 mA,接下來進入 PLC 的類比輸入模組。這一段看似陽春,卻是資料鏈中最常出現「小錯誤、大後果」的地方。換算公式寫錯、濾波參數不恰當、掃描週期與記錄週期不一致,都會讓 AI 拿到的資料與現場實況產生落差。
4.1 類比訊號到工程值:換算公式與斷線判斷
4-20 mA 訊號進入 PLC 後,會被 A/D 轉換成整數計數值,例如 12 位元模組的 0~4095,或是廠牌自訂的 0~27648。工程師需要把這個計數值換算成工程單位,例如 bar 或 °C。線性換算公式為:
工程值 = (原始值 − 原始下限) ÷ (原始上限 − 原始下限) × (量程上限 − 量程下限) + 量程下限
此外,4-20 mA 迴路的優勢之一,是「4 mA 為活零點」。當電流低於約 3.6 mA,通常代表斷線或感測器故障;高於約 21 mA,則可能是超量程或短路。好的 PLC 程式一定會為每個類比點加上故障判斷,並把狀態位元一併送到 SCADA,AI 才能知道「這筆數據是不是有效」。下面是一段以結構化文本(Structured Text,IEC 61131-3)撰寫的通用換算範例。
(* ===== 通用 IEC 61131-3 結構化文本範例 ===== *)
(* 用途:把 4-20 mA 對應的原始計數值換算成 bar,並產生品質旗標 *)
(* 注意:原始計數範圍依 PLC 模組而異,請依廠牌手冊修改 RAW_MIN / RAW_MAX *)
VAR_INPUT
raw_value : INT; (* 類比輸入模組的原始計數值 *)
END_VAR
VAR CONSTANT
RAW_MIN : REAL := 0.0; (* 4 mA 對應的原始值,依模組調整 *)
RAW_MAX : REAL := 27648.0; (* 20 mA 對應的原始值,依模組調整 *)
ENG_LOW : REAL := 0.0; (* 量程下限 bar *)
ENG_HIGH : REAL := 10.0; (* 量程上限 bar,須與傳送器量程一致 *)
FAULT_LOW : REAL := -1000.0; (* 低於此原始值視為斷線 *)
FAULT_HIGH: REAL := 29000.0; (* 高於此原始值視為超量程或短路 *)
END_VAR
VAR_OUTPUT
pressure_bar : REAL; (* 換算後的工程值 *)
sensor_ok : BOOL; (* TRUE 表示資料有效,需一併送給 SCADA *)
wire_break : BOOL;
over_range : BOOL;
END_VAR
VAR
raw_r : REAL;
END_VAR
raw_r := INT_TO_REAL(raw_value);
wire_break := raw_r < FAULT_LOW;
over_range := raw_r > FAULT_HIGH;
sensor_ok := NOT (wire_break OR over_range);
IF sensor_ok THEN
pressure_bar := (raw_r - RAW_MIN) / (RAW_MAX - RAW_MIN)
* (ENG_HIGH - ENG_LOW) + ENG_LOW;
ELSE
pressure_bar := 0.0; (* 無效時不要輸出看似合理的數值,並保留 sensor_ok 供上層判斷 *)
END_IF;為什麼要輸出 sensor_ok?
許多專案把斷線時的數值直接歸零或維持最後一筆,資料庫裡就多了一段「看起來很正常」的假資料。AI 一旦學進去,會誤以為那是正常製程。把品質旗標和數值一起記錄,是保護模型最簡單有效的方法。
4.2 通訊協定:Modbus、OPC UA 與其他選項
PLC 與 SCADA 之間,以及 SCADA 與上層 AI 系統之間,需要選擇通訊協定。在台灣工廠最常遇到的是 Modbus(RTU 與 TCP)與 OPC UA,其次是各家 PLC 的原生協定。選擇的核心原則是「開放性」與「語意完整」:Modbus 簡單、普及、容易實作,但只傳遞暫存器數值,缺少單位與描述;OPC UA 則能提供資料模型、單位、時間戳記與安全機制,較適合作為 OT 與 IT 之間的標準介面。
表 4-1 常見通訊協定在 AI 專案中的適用性
| 協定 | 特性 | 優點 | 限制 | 建議用途 |
|---|---|---|---|---|
| Modbus RTU(RS-485) | 主從式串列匯流排 | 簡單、便宜、儀錶普遍支援 | 速度有限、無資料語意、無內建安全 | 儀錶到 PLC 或邊緣閘道 |
| Modbus TCP | 乙太網路版 Modbus | 易於與 IT 系統整合 | 無內建加密與驗證 | 廠內網段的資料採集 |
| OPC UA | 物件導向資料模型與安全機制 | 具語意、時間戳記、加密與驗證 | 設定較複雜 | SCADA 對外的標準出口 |
| MQTT | 發布/訂閱的輕量訊息協定 | 低頻寬、適合邊緣到雲端 | 需另行定義資料格式與主題規範 | 邊緣閘道對資料平台 |
| HART | 疊加於 4-20 mA 的數位通訊 | 取得儀錶診斷與多變數 | 速度慢、需要專用介面 | 儀錶健康與組態管理 |
4.3 邊緣閘道:把儀錶資料安全地送出現場
在不想動到既有 PLC 程式的情況下,許多專案會在現場加裝一台邊緣閘道(工業電腦或嵌入式盒子),以 RS-485 直接輪詢支援 Modbus 的儀錶,並將資料轉發給上層。這種做法的好處是「旁路採集」:不影響原本的控制迴路,風險最低,也最容易做試點。下面是一段以 Python 與 pymodbus 撰寫的參考範例,示範如何輪詢一台支援 Modbus RTU 的儀錶,並輸出帶有時間戳記與品質旗標的資料。
# ===== 檔案名稱:modbus_poller.py =====
# ===== 執行環境:工業電腦 / 邊緣閘道,Python 3.9+,pip install pymodbus =====
# 說明:暫存器位址、資料型態與位元組順序「因儀錶型號而異」,
# 請以該型號的 Modbus 位址表為準,以下位址僅為示意。
import time
import json
import struct
from datetime import datetime, timezone
from pymodbus.client import ModbusSerialClient
# ---------- 設定區 ----------
PORT = "/dev/ttyUSB0" # RS-485 轉 USB 裝置
BAUDRATE = 9600
PARITY = "N"
STOPBITS = 1
BYTESIZE = 8
POLL_SEC = 5 # 輪詢週期(秒)
DEVICES = [
# id:Modbus 從站位址;reg:起始暫存器(示意);tag:測點名稱;unit:單位
{"slave": 1, "reg": 0, "tag": "P-101_pump_outlet", "unit": "bar"},
{"slave": 2, "reg": 0, "tag": "T-201_cw_return", "unit": "degC"},
]
def regs_to_float(high, low):
"""把兩個 16 位元暫存器組成 32 位元浮點數(大端序,須依型號確認)"""
raw = struct.pack(">HH", high, low)
return struct.unpack(">f", raw)[0]
def read_device(client, dev):
rr = client.read_holding_registers(dev["reg"], count=2, slave=dev["slave"])
if rr.isError():
return {"tag": dev["tag"], "value": None, "quality": "BAD"}
value = regs_to_float(rr.registers[0], rr.registers[1])
return {"tag": dev["tag"], "value": round(value, 4),
"unit": dev["unit"], "quality": "GOOD"}
def main():
client = ModbusSerialClient(port=PORT, baudrate=BAUDRATE, parity=PARITY,
stopbits=STOPBITS, bytesize=BYTESIZE, timeout=1)
if not client.connect():
raise SystemExit("無法開啟序列埠,請檢查接線與埠號")
try:
while True:
ts = datetime.now(timezone.utc).isoformat()
for dev in DEVICES:
record = read_device(client, dev)
record["ts"] = ts
print(json.dumps(record, ensure_ascii=False))
# 這裡可改為寫入本機資料庫或轉發給上層系統(由客戶自行規劃)
time.sleep(POLL_SEC)
finally:
client.close()
if __name__ == "__main__":
main()4.4 SCADA 的三個資料管理重點
SCADA 通常是工廠第一個真正「留存」歷史資料的系統,也是 AI 專案最主要的資料來源。與其急著另建一套資料平台,不如先把 SCADA 的資料管理做好。以下三個重點特別影響後續 AI 的表現。
重點一:標籤命名規則。一致的命名能讓 AI 與工程師一眼看出測點的物理意義。建議採用「區域-設備-測點類型-編號」的結構,例如 UTL-CH01-PT-001 代表公用系統、冰水主機 1 號、壓力測點 001。命名規則看似瑣碎,但當測點超過一千個時,它是資料能否被自動化處理的關鍵。
重點二:記錄策略。歷史庫常採用「變化才記錄」(死區壓縮)以節省空間,但對 AI 而言,不規則的時間間隔會增加處理難度。建議關鍵測點採固定週期記錄,例如每秒或每 5 秒,並保留原始未壓縮資料至少 90 天,供模型訓練與驗證。
重點三:警報與事件分離。SCADA 的警報事件(誰在何時確認、如何處置)是極為珍貴的「標籤資料」,代表人類專家對異常的判斷。把警報事件與時序資料一起保存,未來才有機會訓練出真正有用的異常分類模型。
接著,我們示範如何從 SCADA 常見的 OPC UA 介面讀取資料。以下範例使用開源的 Python 套件 asyncua,展示讀取節點值與時間戳記的最小流程。實際的節點識別碼、驗證與憑證設定,須依貴廠 SCADA 而定。
# ===== 檔案名稱:opcua_reader.py =====
# ===== 執行環境:Python 3.9+,pip install asyncua =====
# 說明:端點網址、節點 ID、安全模式均為示意,請依貴廠 SCADA 設定修改。
# 正式環境務必啟用憑證與帳號驗證,並限制為唯讀帳號。
import asyncio
from asyncua import Client
ENDPOINT = "opc.tcp://192.168.10.20:4840" # 示意位址
NODES = {
"UTL-CH01-PT-001": "ns=2;s=UTL.CH01.PT001.PV",
"UTL-CH01-TT-001": "ns=2;s=UTL.CH01.TT001.PV",
}
async def read_once():
async with Client(url=ENDPOINT) as client:
for tag, node_id in NODES.items():
node = client.get_node(node_id)
dv = await node.read_data_value() # 含值、狀態碼與時間戳記
print({
"tag": tag,
"value": dv.Value.Value,
"status": str(dv.StatusCode),
"source_ts": dv.SourceTimestamp.isoformat() if dv.SourceTimestamp else None,
})
if __name__ == "__main__":
asyncio.run(read_once())這一章的決策重點
- PLC 端一定要輸出「數值+品質旗標」,別讓斷線資料混入歷史庫。
- 不動 PLC 的旁路採集(邊緣閘道)最適合作為試點。
- OPC UA 是 SCADA 對外的標準出口,Modbus 適合儀錶到閘道。
- 保存警報事件與處置紀錄,它們是未來 AI 的標籤資料。
- 範例程式需依貴廠設備與資安規範調整,並由客戶自行部署與維運。
第 5 章 生成式 AI 在工廠的真實定位
「生成式 AI 進工廠」這句話,常被解讀成一個萬能大腦接管產線。這是誤解。就目前工業實務而言,生成式 AI(大型語言模型為主)擅長的是理解與整理文字、關聯多來源資訊、以自然語言與人溝通;至於高頻率的即時控制、精確的數值預測,仍然由 PID、模型預測控制與傳統機器學習負責。理解這個分工,才不會把錢花在錯的地方。
5.1 生成式 AI 適合做什麼、不適合做什麼
表 5-1 生成式 AI 與傳統控制/機器學習的分工
| 任務 | 適合的技術 | 原因 | 生成式 AI 的角色 |
|---|---|---|---|
| 閉迴路壓力/溫度控制 | PID、MPC(PLC/DCS 內) | 需要毫秒到秒級的確定性回應 | 不參與即時控制,可協助整理調校紀錄 |
| 時序異常偵測 | 統計方法、Isolation Forest、自編碼器 | 對數值型時序資料效率高、可解釋 | 解讀異常結果、以白話說明可能原因 |
| 剩餘壽命預測 | 趨勢回歸、存活分析、深度學習 | 需要數值預測與信賴區間 | 彙整預測結果並生成維護建議 |
| 警報說明與處置建議 | 生成式 AI+知識庫(RAG) | 需要理解手冊、SOP 與歷史工單 | 核心角色 |
| 維修報告與交班紀錄 | 生成式 AI | 文字整理與格式化 | 核心角色 |
| 自然語言查詢資料 | 生成式 AI+資料查詢工具 | 讓非資料人員也能提問 | 核心角色,需限制權限 |
5.2 四個最務實的應用場景
場景一:警報解讀。一個大型 SCADA 每天可能產生數百則警報,多數是連鎖反應的「警報雪崩」。生成式 AI 可以把同一時間窗內的相關警報聚合,對照設備手冊與過去工單,給出「最可能的根因排序」與建議的檢查步驟,讓值班人員在最短時間內找到重點。
場景二:自然語言查詢。「上週三夜班冰水主機 2 號的出水溫度為什麼偏高?」這類問題,過去需要工程師登入 SCADA 拉趨勢、比對操作紀錄。搭配資料查詢工具後,生成式 AI 可以自動撈出相關趨勢、彙整事件並回答。重點是資料查詢的權限與範圍必須由工廠自行控管。
場景三:維護知識庫。老師傅的經驗、設備手冊、校正報告、歷年故障紀錄,往往散落在各處。以檢索增強生成(RAG)技術建立知識庫,AI 就能在回答時引用具體出處,降低「一本正經胡說八道」的風險,也讓經驗得以傳承。
場景四:報告與工單自動化。異常事件結束後,需要撰寫事件報告、更新維護紀錄、開立工單。這些文字工作恰好是生成式 AI 的強項,可以節省工程師大量文書時間。
5.3 AI 幻覺與工廠現場:三道防線
在工廠裡,AI 說錯話的代價遠高於一般辦公場景。設計系統時建議建立三道防線:第一,所有數值與事實必須來自查詢工具或知識庫,而不是模型記憶;第二,AI 的輸出僅作為建議,任何影響製程的動作必須經過人員確認;第三,保留完整的輸入、輸出與引用來源紀錄,方便事後稽核。這三點,比選擇哪一家模型更重要。
請不要這樣做
- 讓生成式 AI 直接寫入 PLC 設定值或控制輸出。
- 讓模型以自己的「記憶」回答數值問題,而不去查詢實際資料。
- 在未取得授權與去識別化的情況下,把敏感製程資料送到外部服務。
5.4 範例:把異常事件整理成給模型的結構化提示
要讓生成式 AI 給出有用的回答,關鍵在於「餵給它什麼」。與其把一大串原始資料丟進去,不如先由程式整理出結構化的事件摘要,再交給模型解讀。下面的範例示範如何把一次壓力異常,整理成包含測點資訊、統計特徵、儀錶健康狀態與相關警報的提示內容。範例中「呼叫模型」的部分以佔位函式表示,實際使用哪一家服務、如何取得授權與資安審查,均由客戶自行決定。
# ===== 檔案名稱:build_llm_prompt.py =====
# ===== 執行環境:Python 3.9+,僅使用標準函式庫 =====
# 說明:本範例只負責「整理資料與組合提示」,不綁定任何雲端服務。
# 如何呼叫模型(自架或雲端)、金鑰管理與資安審查,由客戶自行規劃。
import json
from statistics import mean, pstdev
def summarize_window(values):
"""計算異常窗口的基本統計特徵"""
return {
"count": len(values),
"mean": round(mean(values), 3),
"std": round(pstdev(values), 3),
"min": round(min(values), 3),
"max": round(max(values), 3),
"delta_first_last": round(values[-1] - values[0], 3),
}
def build_event_context(tag, unit, window, baseline_mean, baseline_std,
instrument_info, related_alarms):
stats = summarize_window(window)
z = (stats["mean"] - baseline_mean) / baseline_std if baseline_std else 0.0
return {
"tag": tag,
"unit": unit,
"window_stats": stats,
"baseline": {"mean": baseline_mean, "std": baseline_std},
"z_score_of_window_mean": round(z, 2),
"instrument": instrument_info, # 量程、精度、最近校正日期、與現場錶的差異
"related_alarms": related_alarms, # 同一時間窗內的相關警報
}
SYSTEM_RULES = (
"你是工廠儀控與設備維護的輔助分析員。"
"只能根據下方提供的資料回答,資料不足時請明確說明缺少什麼。"
"請列出最可能的三個原因並排序,每個原因附上應檢查的項目,"
"並說明哪些結論需要現場人員確認。不得建議直接修改控制參數。"
)
def build_prompt(context):
return (
SYSTEM_RULES
+ "\n\n【事件資料(JSON)】\n"
+ json.dumps(context, ensure_ascii=False, indent=2)
+ "\n\n請用繁體中文回答,格式:1) 現象摘要 2) 可能原因排序 3) 建議檢查步驟 4) 需人員確認事項。"
)
if __name__ == "__main__":
window = [5.92, 5.88, 5.71, 5.55, 5.41, 5.30, 5.22, 5.18]
ctx = build_event_context(
tag="UTL-CH01-PT-001",
unit="bar",
window=window,
baseline_mean=5.95,
baseline_std=0.05,
instrument_info={
"range": "0-10 bar", "accuracy": "±0.5% FS",
"last_calibration": "2026-03-12",
"deviation_vs_local_gauge_bar": 0.02,
},
related_alarms=[{"time": "02:14", "text": "冷卻水泵出口壓力低"}],
)
prompt = build_prompt(ctx)
print(prompt)
# response = call_your_llm(prompt) # 由客戶自行實作模型呼叫與權限控管請注意提示中包含了「儀錶資訊」與「與現場錶的差異」。這是刻意的設計:讓模型在推理時,把「儀錶本身可能有問題」也納入考慮,而不是一律假設數據為真。這正是儀錶健康資料在 AI 時代的價值所在。
5.5 建立工廠知識庫:讓 AI「有所本」地回答
檢索增強生成(RAG)是目前讓生成式 AI 在專業領域可靠回答的主流做法:先把設備手冊、SOP、校正報告、歷年工單與事件報告切成適當大小的片段並建立索引,提問時先檢索出最相關的片段,再交給模型整合成答案,並附上引用來源。對於儀錶相關的知識庫,建議收錄以下幾類文件:儀錶型號的規格書與通訊位址表、安裝與維護手冊、歷次校正報告與偏差紀錄、故障與維修工單、製程 SOP 與操作限值、以及過去的警報事件與處置紀錄。
知識庫的品質,比模型的大小更影響答案的可靠度。實務上有四個要點:其一,文件要有版本與生效日期,避免模型引用過期的規格;其二,切片要保留脈絡,例如把表格與其標題一起保存,避免模型看到一串數字卻不知道單位與意義;其三,要求模型附出處,並在答案中標明「文件名稱與章節」,讓使用者可以回頭查證;其四,建立「不知道」的機制,當檢索不到足夠依據時,讓模型明確回答資料不足,而不是勉強編造。這些設計,對於降低幻覺風險,往往比更換模型更有效。
此外,知識庫也牽涉權限與機密。不同部門、不同廠區的文件敏感度不同,應依據使用者身分過濾可檢索的範圍。若要使用外部雲端模型服務,須先評估資料是否可以離開廠區、是否需要去識別化,並與貴廠的資安與法務單位確認。這些決定與相關費用,均由客戶自行負責。
5.6 三個實用的提示詞設計原則
第一,角色與邊界明確:告訴模型它的身分是輔助分析員,只能根據提供的資料回答,資料不足就要說明缺少什麼。第二,輸出格式固定:要求以固定欄位(現象摘要、可能原因排序、建議檢查、需人員確認事項)輸出,方便值班人員快速閱讀,也方便後續程式解析與歸檔。第三,禁止越權建議:明確要求不得建議直接修改控制參數或繞過連鎖,任何涉及安全連鎖的建議都必須標示為「需由授權人員評估」。把這些規則寫進系統提示,能顯著降低模型給出危險建議的機率,但仍須搭配人員審核與紀錄機制,不能只依賴提示詞。
這一章的決策重點
- 生成式 AI 不取代 PID 與傳統機器學習,而是負責理解、彙整與溝通。
- 優先從警報解讀、知識庫與報告自動化開始,風險低、見效快。
- 事實與數值必須來自查詢工具,建議必須經過人員確認。
- 把儀錶健康資訊一併餵給模型,能顯著降低誤判。
第 6 章 異常偵測:從門檻警報到機器學習
異常偵測是資料鏈中最能立即展現價值的一環,也是預測維護的前哨站。它的目標很單純:在人來不及發現、或傳統門檻不會觸發的時候,先一步提醒「有東西不太對勁」。好的異常偵測不是追求最先進的演算法,而是追求「現場人員願意相信」。一個每天誤報二十次的系統,第三天就會被靜音。
6.1 異常偵測的四個層級
表 6-1 異常偵測方法由簡入深
| 層級 | 方法 | 特點 | 優點 | 限制 |
|---|---|---|---|---|
| L1 | 固定門檻(高高、高、低、低低) | SCADA 內建 | 簡單、可靠、必備的安全網 | 無法偵測緩慢漂移與工況相依的異常 |
| L2 | 統計方法(移動平均、控制圖、Z 分數、EWMA) | 與歷史正常區間比較 | 可解釋、計算輕量、易於邊緣部署 | 對多變數關聯不敏感 |
| L3 | 機器學習(Isolation Forest、單類別 SVM) | 學習多變數的正常樣貌 | 能偵測變數之間關係的異常 | 需要清洗過的正常資料,解釋性較弱 |
| L4 | 深度學習(自編碼器、LSTM) | 學習複雜時序模式 | 處理高維度與長時序 | 資料需求大、維運複雜 |
建議的路徑是「由下往上、逐層加碼」:先確保 L1 門檻完整可靠,再導入 L2 統計方法處理緩慢劣化,最後才在有明確需求時導入 L3、L4。許多專案花大錢做了 L4,卻連 L1 的門檻設定都不合理,是本末倒置。
6.2 L2 實作:EWMA 與滾動 Z 分數
指數加權移動平均(EWMA)是製程管制中歷史悠久的方法,對小幅度、持續性的偏移特別敏感,很適合用來抓「壓力慢慢往下掉」或「溫度慢慢往上爬」這類緩慢異常。搭配滾動 Z 分數,可以快速判斷當前值相對於近期正常區間的偏離程度。以下範例使用 pandas 實作,並加入「連續 N 點超標才觸發」的機制,有效降低誤報。
# ===== 檔案名稱:rolling_anomaly.py =====
# ===== 執行環境:Python 3.9+,pip install pandas numpy =====
import numpy as np
import pandas as pd
def detect_anomaly(df, value_col="value", window=360, z_thresh=3.5,
ewma_span=60, consecutive=5):
"""
df 需含 'ts'(時間)與 value_col、'quality' 欄位。
window:計算基準的滾動視窗筆數(例如 5 秒一筆,360 筆約 30 分鐘)
consecutive:連續超標多少點才發出警報,降低瞬間雜訊造成的誤報
"""
df = df.copy()
df = df[df["quality"] == "GOOD"] # 只用品質良好的資料
df = df.sort_values("ts").reset_index(drop=True)
roll_mean = df[value_col].rolling(window, min_periods=window // 2).mean()
roll_std = df[value_col].rolling(window, min_periods=window // 2).std()
df["z"] = (df[value_col] - roll_mean) / roll_std.replace(0, np.nan)
df["ewma"] = df[value_col].ewm(span=ewma_span, adjust=False).mean()
df["ewma_dev"] = df["ewma"] - roll_mean # EWMA 相對基準的偏移
df["out_of_band"] = df["z"].abs() > z_thresh
# 連續 N 點皆超標才視為異常
df["alarm"] = (
df["out_of_band"]
.rolling(consecutive)
.apply(lambda x: 1.0 if x.all() else 0.0, raw=True)
.fillna(0) > 0
)
return df
if __name__ == "__main__":
rng = np.random.default_rng(42)
n = 2000
base = 5.95 + rng.normal(0, 0.03, n)
base[1500:] -= np.linspace(0, 0.6, n - 1500) # 模擬 1500 點之後壓力緩慢下降
df = pd.DataFrame({
"ts": pd.date_range("2026-09-01", periods=n, freq="5s"),
"value": base,
"quality": "GOOD",
})
out = detect_anomaly(df)
first = out[out["alarm"]].head(1)
print("首次異常警報:", first[["ts", "value", "z"]].to_string(index=False)
if not first.empty else "未偵測到異常")6.3 L3 實作:多變數的 Isolation Forest
許多故障的徵兆不在單一變數,而在變數之間的「關係」。例如,泵浦出口壓力沒有超標、軸承溫度也沒超標,但兩者的組合和平常不一樣;又如冷卻水供回水溫差不變,但壓差悄悄變大。Isolation Forest 是一種常用的無監督異常偵測演算法,不需要故障標籤,只需要一段「大致正常」的訓練資料,就能對新資料給出異常分數。
# ===== 檔案名稱:multivar_isoforest.py =====
# ===== 執行環境:Python 3.9+,pip install scikit-learn pandas numpy joblib =====
import numpy as np
import pandas as pd
from sklearn.ensemble import IsolationForest
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
FEATURES = ["p_out_bar", "p_in_bar", "t_supply_c", "t_return_c"]
def add_features(df):
"""加入有物理意義的衍生特徵,通常比原始值更能抓到異常"""
df = df.copy()
df["dp_bar"] = df["p_out_bar"] - df["p_in_bar"] # 泵浦揚壓
df["dt_c"] = df["t_return_c"] - df["t_supply_c"] # 供回水溫差
return df
def train(df_normal, contamination=0.01):
df = add_features(df_normal)
cols = FEATURES + ["dp_bar", "dt_c"]
model = make_pipeline(
StandardScaler(),
IsolationForest(n_estimators=200, contamination=contamination,
random_state=0)
)
model.fit(df[cols])
return model, cols
def score(model, cols, df_new):
df = add_features(df_new)
# decision_function 越低越異常;轉成 0~1 的異常分數方便分級
raw = model.decision_function(df[cols])
df["anomaly_score"] = 1 / (1 + np.exp(raw * 10))
df["level"] = pd.cut(df["anomaly_score"], [0, 0.55, 0.7, 1.0],
labels=["NORMAL", "WATCH", "ALERT"])
return df
if __name__ == "__main__":
rng = np.random.default_rng(7)
n = 3000
normal = pd.DataFrame({
"p_out_bar": 6.0 + rng.normal(0, 0.04, n),
"p_in_bar": 1.2 + rng.normal(0, 0.02, n),
"t_supply_c": 7.0 + rng.normal(0, 0.15, n),
"t_return_c": 12.0 + rng.normal(0, 0.20, n),
})
model, cols = train(normal)
# 模擬異常:揚壓下降,同時回水溫差變大
test = normal.tail(200).copy()
test["p_out_bar"] -= 0.35
test["t_return_c"] += 1.2
result = score(model, cols, test)
print(result["level"].value_counts())6.4 降低誤報的五個實務技巧
第一,排除非正常工況:開機、停機、切換負載期間的資料,不應混入「正常」訓練集,否則模型會把啟停視為常態。第二,分工況建模:夏季與冬季、滿載與輕載的正常範圍不同,分開建模比混在一起更準。第三,連續確認機制:連續多點超標才發警報,過濾瞬間雜訊。第四,警報分級:將異常分成「觀察」與「警報」兩級,前者只記錄與通知,後者才通知值班人員。第五,建立回饋迴路:值班人員可在系統中標記「誤報」或「確認異常」,這些標記日後能用來調整門檻與訓練模型。
6.5 警報管理:把「異常分數」變成人能行動的事
異常偵測產生的是分數與旗標,但現場需要的是「該做什麼」。因此,警報管理的設計要和演算法同樣用心。建議把警報分成三級:資訊級只寫入記錄、供事後分析,不主動通知;注意級透過看板或訊息通知相關工程師,要求在當班內確認;警報級則通知值班人員並要求立即處置,同時附上建議的檢查步驟。每一則警報都應該包含五項資訊:發生什麼(現象)、在哪裡(測點與設備)、與正常相比差多少(量化)、儀錶是否可信(品質旗標與健康狀態)、建議先做什麼(檢查步驟)。
「儀錶是否可信」這一項尤其重要。當異常分數升高,但同一時間雙儀錶的差值也在擴大,系統應該優先提示「請先確認儀錶」,而不是宣告製程故障;反之,若兩支儀錶一致且趨勢同步,則可信度較高。這種「先排除儀錶問題」的邏輯,能大幅減少無謂的緊急處置,也讓現場人員逐漸建立對系統的信任。
另一個實務要點是警報的「抑制與關聯」。設備停機、切換、校正作業期間,相關測點的異常應被自動抑制;同一根因引發的一連串警報,應聚合成一個事件,而不是各自獨立通知。這類規則不需要複雜的 AI,只需要把生產排程與設備狀態納入邏輯,往往就能讓誤報數量減少一半以上。
表 6-2 警報分級與處置建議
| 等級 | 觸發條件(示例) | 通知方式 | 期望回應時間 | 後續動作 |
|---|---|---|---|---|
| 資訊 | 異常分數略高但未持續,或工況切換期間 | 僅寫入紀錄 | 無需即時回應 | 每週檢視,作為調整門檻依據 |
| 注意 | 異常分數持續偏高,或 EWMA 顯示緩慢偏移 | 看板與訊息通知工程師 | 當班內確認 | 現場檢查並回填結果 |
| 警報 | 多變數同時偏離,或逼近固定門檻 | 通知值班人員與主管 | 立即,依 SOP 處置 | 處置、開立工單、事件檢討 |
| 儀錶待查 | 異常伴隨雙儀錶差值擴大或品質旗標異常 | 通知儀控人員 | 當班內確認 | 以校驗儀比對,必要時校正或更換 |
這一章的決策重點
- 由 L1 門檻開始,逐層加碼,不要跳級。
- 多變數與物理意義的衍生特徵(壓差、溫差)比原始值更有效。
- 誤報率決定專案生死,連續確認、分級與回饋迴路缺一不可。
- 訓練資料必須排除斷線、啟停與儀錶故障期間。
第 7 章 預測維護:儀錶漂移、校正週期與剩餘壽命
異常偵測回答的是「現在是不是不對勁」,預測維護要回答的是更進一步的問題:「還能撐多久?什麼時候該處理最划算?」在壓力與溫度量測領域,預測維護有兩個層面:一是利用儀錶資料預測設備(泵浦、熱交換器、濾網),二是預測儀錶本身(漂移、老化、校正時機)。後者往往被忽略,卻是最容易落地的項目。
7.1 為什麼要預測儀錶漂移?
傳統的校正做法是「固定週期」,例如每年一次。這種方式簡單,但有兩個問題:穩定的儀錶被過度校正,浪費人力;不穩定的儀錶在兩次校正之間早已超差,卻沒人知道,這段期間的資料與品質判定都是有風險的。若能根據歷次校正的偏差紀錄,估算每支儀錶的漂移速率,就可以為「容易漂移的」縮短週期、「非常穩定的」適度延長,把校正資源用在刀口上。當然,任何週期調整都必須遵循貴廠的品質系統、法規與客戶稽核要求,並保留完整的技術依據。
表 7-1 固定週期校正與資料驅動校正的比較
| 比較面向 | 固定週期校正 | 資料驅動校正 |
|---|---|---|
| 排程依據 | 日曆時間(每 12 個月) | 漂移趨勢、重要度與使用條件 |
| 穩定儀錶 | 被過度校正,浪費人力 | 經技術評估後可適度延長 |
| 易漂移儀錶 | 可能在兩次校正間已超差 | 提早排入校正,縮短風險窗口 |
| 品質風險 | 超差期間的資料無從追溯 | 可提前預警並標記可疑資料 |
| 所需資料 | 校正日期 | 歷次校正偏差、環境與操作條件 |
| 導入難度 | 低 | 中,需要校正履歷數位化 |
7.2 範例:用歷次校正資料估算漂移並預測超差時間
以下範例示範最基本的做法:取得某支傳送器歷次校正時量到的「零點偏差」,以線性回歸估算漂移速率,再推算何時會達到容許誤差的某個比例(例如 80%),提早提醒排入校正。這只是一個入門的統計模型,實際應用時還應考慮溫度、震動、過壓事件等因素,並由品質人員審核。
# ===== 檔案名稱:calibration_drift.py =====
# ===== 執行環境:Python 3.9+,pip install numpy =====
from datetime import date, timedelta
import numpy as np
def predict_calibration(history, tolerance, warn_ratio=0.8):
"""
history: [(校正日期, 量測偏差), ...],偏差單位與 tolerance 一致
tolerance: 容許誤差(例如 量程 10 bar × 0.5% = 0.05 bar)
warn_ratio: 偏差達容許誤差的多少比例時視為需要處理
"""
dates = [d for d, _ in history]
x = np.array([(d - dates[0]).days for d in dates], dtype=float)
y = np.array([abs(v) for _, v in history], dtype=float)
if len(history) < 3:
return {"status": "資料不足", "note": "至少需要 3 次校正紀錄才能估算趨勢"}
slope, intercept = np.polyfit(x, y, 1) # 每天的漂移量
limit = tolerance * warn_ratio
if slope <= 0:
return {"status": "穩定", "drift_per_year": round(slope * 365, 4),
"note": "無明顯單向漂移,建議維持現行週期並持續觀察"}
days_to_limit = (limit - intercept) / slope
target_date = dates[0] + timedelta(days=float(days_to_limit))
resid = y - (slope * x + intercept)
return {
"status": "有漂移趨勢",
"drift_per_year": round(slope * 365, 4),
"warn_level": round(limit, 4),
"suggest_calibrate_before": target_date.isoformat(),
"fit_residual_std": round(float(np.std(resid)), 4),
}
if __name__ == "__main__":
history = [
(date(2023, 3, 10), 0.004),
(date(2024, 3, 12), 0.011),
(date(2025, 3, 11), 0.021),
(date(2026, 3, 12), 0.032),
]
tolerance = 10 * 0.005 # 0-10 bar,精度 ±0.5% FS
print(predict_calibration(history, tolerance))7.3 用「雙儀錶差異」做在線健康監測
第 2 章提到的「機械錶+傳送器」雙軌配置,在預測維護上有一個很實用的延伸:如果同一測點同時有兩支獨立的儀錶(例如傳送器與數位壓力錶,或兩支溫度感測器),兩者的差值本身就是在線的健康指標。差值逐漸擴大,代表其中一支開始漂移;差值突然跳動,可能是取壓孔堵塞或感測器接線問題。相較於等到下次校正才發現,這種方式可以在線上持續監控,並在差值超過設定比例時自動提醒。
7.4 設備層面的預測維護:壓力與溫度能告訴我們什麼
表 7-2 常見設備劣化與壓力/溫度的關聯徵兆
| 設備/現象 | 壓力徵兆 | 溫度徵兆 | 可能原因 | 建議行動 |
|---|---|---|---|---|
| 過濾器堵塞 | 前後壓差緩慢上升 | 下游溫度通常無明顯變化 | 濾材積垢或阻塞 | 依壓差趨勢排定更換 |
| 泵浦劣化 | 出口壓力下降、波動加大 | 軸承或馬達溫度上升 | 葉輪磨損、汽蝕、軸承老化 | 檢查入口條件並排定檢修 |
| 熱交換器結垢 | 壓降增加 | 出水溫度上升、溫差縮小 | 水垢或生物膜 | 安排清洗或化學處理 |
| 管線洩漏 | 壓力異常下降、補水頻繁 | 局部溫度異常 | 接頭鬆脫、腐蝕穿孔 | 現場巡檢並隔離查漏 |
| 壓縮機閥片磨損 | 排氣壓力偏低、升壓時間變長 | 排氣溫度上升 | 閥片或密封老化 | 排定停機檢修 |
| 蒸汽疏水閥失效 | 凝結水側壓力異常 | 下游溫度偏低或偏高 | 疏水閥卡滯或漏汽 | 檢查疏水閥並更換 |
7.5 閉環:從預測到工單
預測維護若停在「看板上有個預測值」,價值就只有一半。真正的價值來自閉環:預測 → 通知 → 派工 → 維修 → 回填結果 → 模型改善。把維修結果(更換了什麼、發現什麼、是否為真實故障)回填到系統,是下一輪模型能否變聰明的關鍵。這也是為什麼我們建議儘早把 CMMS(維護管理系統)或工單系統納入專案範圍,而不是等模型做好再說。
7.6 範例:以 MQTT 將資料轉發給資料平台
資料要從現場送到上層的資料平台,MQTT 是常見選擇之一:輕量、支援斷線重連、適合頻寬受限的工廠網路。下面的範例示範以 Python 的 paho-mqtt 套件,將測點資料以 JSON 格式發布,並啟用 TLS 加密。範例中的代理伺服器位址、憑證與主題規範,均為示意;無論貴廠採用自建的 MQTT 代理伺服器,或是雲端業者提供的 IoT 服務,其帳號、憑證、政策與費用,皆由客戶自行規劃與管理,昶特不提供此類串接服務。
# ===== 檔案名稱:mqtt_publisher.py =====
# ===== 執行環境:Python 3.9+,pip install paho-mqtt =====
# 說明:BROKER、憑證與主題僅為示意,請依貴廠的 MQTT 代理或雲端服務規範設定。
# 憑證與私鑰請妥善保管,切勿寫死在程式碼或上傳到公開儲存庫。
import json
import ssl
import time
from datetime import datetime, timezone
import paho.mqtt.client as mqtt
BROKER = "mqtt.your-company.example" # 示意:客戶自行提供
PORT = 8883
CLIENT_ID = "edge-gw-line1"
TOPIC_FMT = "plant1/line1/{tag}/telemetry" # 主題階層建議:廠區/產線/測點/類型
CA_CERT = "/etc/edge/certs/ca.pem"
CLIENT_CERT = "/etc/edge/certs/client.pem"
CLIENT_KEY = "/etc/edge/certs/client.key"
def make_client():
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=CLIENT_ID)
client.tls_set(ca_certs=CA_CERT, certfile=CLIENT_CERT, keyfile=CLIENT_KEY,
tls_version=ssl.PROTOCOL_TLS_CLIENT)
client.reconnect_delay_set(min_delay=1, max_delay=60) # 斷線自動重連
return client
def publish_reading(client, tag, value, unit, quality="GOOD"):
payload = {
"tag": tag,
"value": value,
"unit": unit,
"quality": quality,
"ts": datetime.now(timezone.utc).isoformat(),
}
info = client.publish(TOPIC_FMT.format(tag=tag),
json.dumps(payload, ensure_ascii=False),
qos=1) # 至少送達一次
info.wait_for_publish(timeout=5)
if __name__ == "__main__":
c = make_client()
c.connect(BROKER, PORT, keepalive=60)
c.loop_start()
try:
while True:
# 實務上由 Modbus / OPC UA 讀取結果餵入,此處以固定值示意
publish_reading(c, "UTL-CH01-PT-001", 5.94, "bar")
publish_reading(c, "UTL-CH01-TT-001", 7.1, "degC")
time.sleep(5)
finally:
c.loop_stop()
c.disconnect()7.7 如何衡量預測維護專案的成效
沒有指標的專案,很容易在半年後被問「到底有沒有效」。建議在試點開始前就定義好基準值與評估方式。以下是儀錶與設備預測維護常用的幾個指標:非計畫性停機次數與時數,反映最直接的價值;平均故障間隔(MTBF)與平均修復時間(MTTR),衡量設備可靠度與維修效率;預警提前時間,也就是系統提早多久發現問題;警報精準率,即警報中屬於真實異常的比例,這與現場信任度直接相關;校正逾期件數與儀錶超差事件數,反映儀錶管理成熟度;以及維護工時結構,也就是計畫性維護與緊急搶修的比例。
需要提醒的是,預測維護的效益常常以「沒有發生的事」呈現,不容易被看見。因此,建議把每一次「系統提前發現、現場確認屬實」的案例都記錄下來,包含發現時間、若未處理可能的後果、實際的處置與所花時間。這些故事與數據,是說服管理層繼續投資、擴大範圍的最有力證據,也是模型持續改善的重要資料。
表 7-3 預測維護試點的建議評估指標
| 指標 | 定義 | 建議做法 | 解讀重點 |
|---|---|---|---|
| 非計畫性停機時數 | 因故障造成的非預期停機總時數 | 試點前先統計至少 12 個月基準 | 與同期基準比較,並排除季節與產量差異 |
| 預警提前時間 | 系統發出警示到故障或人工發現的時間差 | 逐案記錄 | 愈長愈有時間排入計畫維護 |
| 警報精準率 | 真實異常警報數 ÷ 總警報數 | 由值班人員標記確認 | 低於預期時先檢查資料品質與門檻 |
| 校正逾期件數 | 超過校正期限仍在使用的儀錶數 | 由校正履歷系統統計 | 應趨近於零 |
| 計畫性維護占比 | 計畫性維護工時 ÷ 總維護工時 | 由工單系統統計 | 比例上升代表由被動轉為主動 |
| 資料可用率 | 品質良好的資料點 ÷ 應有資料點 | 由資料庫每日統計 | 低於預期時優先處理儀錶與通訊問題 |
這一章的決策重點
- 預測儀錶本身(漂移、校正時機)是最容易落地的預測維護項目。
- 同一測點雙儀錶的差值,是低成本的在線健康指標。
- 壓差、溫差與壓力波動是設備劣化最常見的徵兆。
- 務必把維修結果回填,讓預測維護真正形成閉環。
- 任何校正週期的調整,都需符合品質系統與稽核要求。
第 8 章 三個情境案例與效益推估
案例說明
以下三個案例皆已匿名化,並依台灣製造業常見的設備規模與運轉條件整理為「典型情境」。數據為工程推估與情境模擬,用以示範分析方法與效益計算邏輯,並非特定客戶的實測保證。實際成效會因製程、設備狀況與導入範圍而異。為避免誤導,本文不列示任何價格,僅以停機時數、比例與回本月數表達效益,實際報價請洽業務。
案例一:北台灣某半導體廠的冰水主機房
背景。該廠廠務區有 4 台冰水主機、6 組冷卻水泵浦與數十個壓力與溫度測點。過去以每班巡檢加上固定門檻警報管理,曾發生過冷卻水泵浦劣化導致供水壓力緩降,在凌晨時段觸發低低壓連鎖,造成製程冷卻中斷的事件。
遭遇的問題。第一,壓力是緩慢下降而非突然掉落,固定門檻在最後一刻才動作;第二,部分測點量程選得過大(0~25 bar 卻只在 6 bar 附近操作),解析度不足;第三,儀錶的校正紀錄分散在紙本,無法判斷資料可信度;第四,警報事件與處置紀錄沒有數位化,難以事後分析。
解決方案。分三階段導入。第一階段(第 1~4 週):盤點 60 個關鍵測點,將量程不合適者更換為 0~10 bar,並為重要測點採用 HART 智能型壓力傳送器;第二階段(第 5~10 週):在 SCADA 建立固定週期記錄,導入 EWMA 與連續確認的異常偵測;第三階段(第 11~16 週):建立泵浦壓力與溫差的多變數模型,並接入工單系統。
表 8-1 案例一:導入前後指標對照(情境推估)
| 指標 | 導入前 | 導入後(6 個月) | 改善幅度 |
|---|---|---|---|
| 非計畫性冷卻中斷次數 | 約 3 次/年 | 0~1 次/年 | 約 ↓ 67%~100% |
| 泵浦劣化平均提前發現時間 | 幾乎為 0(連鎖動作才發現) | 約 5~10 天 | 由被動轉為主動 |
| 誤報數量 | 約 12 次/週(門檻過敏) | 約 2 次/週 | 約 ↓ 83% |
| 儀錶校正紀錄數位化比例 | 約 10% | 100% | 全面可追溯 |
| 巡檢人力(同等範圍) | 3 人次/班 | 1~2 人次/班 | 約 ↓ 33%~67% |
投資回報(以比例與時間表達)。這類專案的效益主要來自「避免一次非計畫性停機」。半導體製程一次冷卻中斷的損失,通常遠高於整個儀錶升級與資料化專案的總投入。以避免每年 1 次事件推估,整體回本期間約落在 6~12 個月之間;若加計巡檢人力節省與備品優化,回本時間可能更短。實際數字需依貴廠損失評估而定。
案例二:中部某食品飲料廠的殺菌與熱水系統
背景。該廠有多條殺菌線與一座集中式熱水系統,溫度與壓力直接影響產品安全與能耗。原本靠雙金屬溫度計與機械式壓力錶現場指示,品質紀錄為手寫,每年稽核前需要大量整理文件。
遭遇的問題。殺菌溫度雖有紀錄,但缺少連續資料,稽核時難以證明每一批次都達標;熱水管線疏水閥失效造成蒸汽浪費卻無人察覺;溫度計的定期校正靠人工排程,曾發生逾期未校的情形。
解決方案。殺菌管線採用衛生型管路溫度傳送器並保留現場雙金屬溫度計作為交叉檢核;關鍵點以 RTD 搭配溫度傳送器取得高準確度資料;以數位壓力錶取代部分人工抄錄點;建立校正履歷資料庫並以前述漂移估算輔助排程。生成式 AI 則用於自動彙整批次溫度曲線與稽核報告草稿,由品保人員審核後定稿。
表 8-2 案例二:導入前後指標對照(情境推估)
| 指標 | 導入前 | 導入後(6 個月) | 改善幅度 |
|---|---|---|---|
| 稽核前文件整理時間 | 約 5~7 個工作天 | 約 1 個工作天 | 約 ↓ 80% |
| 批次溫度紀錄完整率 | 約 85%(手寫遺漏) | 約 99% 以上 | 大幅提升 |
| 校正逾期件數 | 約 6 件/年 | 0 件/年 | ↓ 100% |
| 蒸汽疏水閥失效平均發現時間 | 約 2~3 個月 | 約 1~2 週 | 約 ↓ 80% |
| 熱能損耗(相關管線) | 基準值 | 約降低 4%~8% | 依系統而異 |
投資回報。此案例效益來自三個面向:稽核與文件人力節省、疏水閥失效造成的熱能損失減少、以及避免不合格批次的風險。以保守估計,回本時間約落在 10~18 個月。值得注意的是,食品廠對「資料完整與可追溯」的價值,往往高於單純的節能。
案例三:南台灣某石化廠的防爆區壓力監測
背景。該廠有多座反應與儲存單元位於防爆區,過去以機械式壓力錶巡檢,巡檢人員需要進入危險區域抄錄,效率低且有人員安全風險。
遭遇的問題。巡檢頻率受限於人力與安全規範,壓力異常常在下一輪巡檢才被發現;區域內無法隨意加裝耗電或無線設備;歷史資料不足以支撐任何分析。
解決方案。在防爆區採用符合防爆規範的壓力傳送器,以 4-20 mA 搭配 HART 傳輸至控制室,保留原機械錶作為現場獨立指示;重要點位加入壓力趨勢與變化率警報;累積資料後,以統計模型建立各單元的正常操作包絡線。安裝與防爆認證須依當地法規與廠區規範執行。
表 8-3 案例三:導入前後指標對照(情境推估)
| 指標 | 導入前 | 導入後(12 個月) | 改善幅度 |
|---|---|---|---|
| 防爆區人員進入巡檢次數 | 每班 2~3 次 | 每班 0~1 次(異常時才進入) | 約 ↓ 60%~100% |
| 壓力異常發現延遲 | 最長約 4~8 小時 | 約 1~5 分鐘 | 約 ↓ 98% 以上 |
| 手抄錯誤率 | 約 1%~2% | 接近 0 | 消除人工抄錄 |
| 壓力資料可用於分析的比例 | 幾乎為 0 | 100% | 由無到有 |
投資回報。石化廠的價值主要體現在「安全」與「風險降低」,這類效益難以完全金額化。若僅以巡檢人力與異常延遲造成的損失估算,回本時間約為 12~24 個月;若納入避免重大事故的風險價值,實質回報遠高於此。
三個案例的共通規律
- 效益最大的環節,往往是「避免一次非計畫性事件」,而不是節省少量能源。
- 三個案例都從儀錶層的品質改善開始,而非直接上複雜模型。
- 保留現場機械式儀錶作為獨立指示與交叉檢核,是共同做法。
- 資料完整與可追溯本身就是價值,特別是在稽核與安全領域。
第 9 章 90 天導入路線圖與常見的十個坑
與其一開始就規劃全廠數位轉型,我們建議用 90 天完成一個「小而完整」的試點:範圍不大,但六層資料鏈都要走過一遍。這樣既能快速驗證價值,也能提早暴露各層的問題,作為後續擴展的依據。
9.1 90 天路線圖
表 9-1 90 天試點導入路線圖
| 階段 | 時間 | 主要工作 | 產出 | 負責方 |
|---|---|---|---|---|
| 盤點與選點 | 第 1~2 週 | 選定一個高價值設備群(例如冰水系統或壓縮空氣站),盤點測點、量程、精度、校正紀錄 | 測點清冊、資料品質評估 | 客戶儀控/設備團隊,昶特可協助儀錶選型建議 |
| 儀錶補強 | 第 3~6 週 | 更換量程不合適或漂移的儀錶,補足關鍵點位的傳送器或數位錶 | 合格的資料源 | 客戶採購與施工,昶特提供儀錶 |
| 資料採集 | 第 5~8 週 | 建立 PLC/SCADA/邊緣閘道的資料流,統一標籤命名,固定週期記錄 | 穩定的時序資料 | 客戶或其系統整合商 |
| 異常偵測 | 第 7~10 週 | 建立 L1 至 L3 的偵測,調整門檻,設定連續確認與分級 | 可用的警報邏輯 | 客戶資料團隊或外部顧問 |
| AI 輔助 | 第 9~12 週 | 導入警報解讀、知識庫與報告草稿等生成式 AI 應用 | 輔助決策工具 | 客戶 IT/資料團隊 |
| 閉環與評估 | 第 11~13 週 | 接上工單,收集回饋,評估效益,決定擴展範圍 | 效益報告與擴展計畫 | 客戶 |
9.2 常見的十個坑
表 9-2 AI 專案在儀錶與資料鏈上最常見的十個坑
| 編號 | 坑 | 後果 | 預防方式 |
|---|---|---|---|
| 坑 #1 | 量程選得過大或過小 | 解析度不足或過載,資料淹沒在誤差中 | 正常操作點落在量程 30%~70% |
| 坑 #2 | 忽略儀錶漂移 | AI 把漂移當成製程劣化 | 建立儀錶健康檔案,雙儀錶交叉檢核 |
| 坑 #3 | 斷線資料混入訓練集 | 模型學到錯誤的正常 | PLC 輸出品質旗標,訓練前清洗 |
| 坑 #4 | 記錄週期不一致 | 時序對齊困難、特徵失真 | 關鍵測點固定週期記錄 |
| 坑 #5 | 標籤命名混亂 | 無法自動化處理與擴展 | 制定命名規範並嚴格執行 |
| 坑 #6 | 只做模型,不做閉環 | 預測無人處理,價值歸零 | 接上工單並回填維修結果 |
| 坑 #7 | 誤報太多 | 現場人員關閉警報 | 連續確認、分級、回饋迴路 |
| 坑 #8 | 讓 AI 直接控制製程 | 安全與品質風險 | AI 僅提供建議,人員確認 |
| 坑 #9 | 忽略 OT 資安 | 被入侵或誤操作風險 | 網路分區、單向傳輸、最小權限 |
| 坑 #10 | 一次擴太大 | 資源分散、看不到成果 | 先做 90 天試點,再複製 |
給決策者的一句話
AI 專案的成敗,八成取決於前三層(感測器、PLC、SCADA),只有兩成取決於模型。把預算優先花在資料品質與流程閉環,通常比追求最新模型更划算。
第 10 章 OT 資安與責任邊界
當儀錶資料開始離開現場、進入雲端或資料平台,OT 資安就不再是可有可無的選項。工廠網路長期以來仰賴「實體隔離」,但一旦串接 IT 系統與外部服務,攻擊面就大幅擴張。以下整理幾個基本原則,供工程與資訊團隊共同參考。
10.1 六個基本資安原則
網路分區。依據功能將 OT 與 IT 網路分區,並在中間設置防火牆與緩衝區(常稱為 DMZ),避免資料平台直接連入控制網段。
單向傳輸。資料只從 OT 往 IT 流動,不讓外部有回頭寫入控制系統的路徑。若必須雙向,應嚴格限制範圍並經過審核。
最小權限。AI 與資料平台使用唯讀帳號,且只能存取被授權的測點。
加密與驗證。對外傳輸使用 TLS 加密與憑證驗證,OPC UA 啟用安全模式,避免明文通訊。
稽核與紀錄。保留所有存取與 AI 查詢、輸出的紀錄,以便事後追查。
更新與備份。邊緣閘道與相關軟體需有更新機制與備援方案,並定期演練復原。
10.2 責任邊界一覽
為避免專案中出現「誰負責什麼」的爭議,我們將常見項目的責任歸屬整理如下。昶特 ATLANTIS 專注在量測硬體與其技術支援,其餘層級由客戶或客戶委任的整合商負責。
表 10-1 資料鏈各項工作的責任歸屬
| 項目 | 昶特 ATLANTIS | 客戶/系統整合商 |
|---|---|---|
| 壓力錶、溫度計、傳送器供應 | 負責(報價制) | 提出需求、確認規格 |
| 儀錶型號與輸出型式選型建議 | 提供技術建議 | 提供系統資訊並做最終確認 |
| 儀錶通訊位址表與技術資料 | 依型號提供 | 參考使用並負責整合測試 |
| PLC 程式與類比輸入設定 | 不提供 | 負責 |
| SCADA 畫面、歷史庫與警報設定 | 不提供 | 負責 |
| IoT 平台、AWS 或其他雲端串接 | 不提供 | 負責(帳號、憑證、費用、資安皆由客戶承擔) |
| AI 模型、異常偵測與預測維護軟體 | 不提供 | 負責 |
| OT 資安規劃與稽核 | 不提供 | 負責 |
| 現場安裝、配線與防爆施工 | 不提供(可提供安裝規範建議) | 負責,並依法規執行 |
| 儀錶校正與維修 | 依服務範圍另行洽詢 | 安排送修與校正排程 |
再次提醒
本文所有範例程式(PLC 換算、Modbus 輪詢、OPC UA 讀取、模型提示、異常偵測、漂移估算、MQTT 發布)均為技術示意,用於幫助工程師理解資料流與驗證概念。它們並非昶特的軟體產品,也不含任何 IoT/雲端串接服務。上線前請由貴廠工程師或系統整合商完成測試、資安審查與維運規劃。
第 11 章 20 個常見問題(FAQ)
以下整理工程師與採購人員在推動 AI 與智慧儀錶專案時最常提出的問題。點擊問題即可展開答案。
❓ Q1: 生成式 AI 進工廠後,壓力錶與溫度計會被取代嗎?
不會。生成式 AI 需要可信的資料才能運作,而壓力與溫度是最基礎、最關鍵的製程變數。儀錶的角色會從「現場指示」擴展為「資料源」。機械式壓力錶與雙金屬溫度計仍有價值,可作為現場獨立指示與交叉檢核;需要資料化的測點,則搭配傳送器或數位儀錶輸出訊號。
❓ Q2: 感測器、PLC、SCADA、AI 各自負責什麼?
感測器負責把壓力、溫度轉成訊號;PLC 負責採集、換算與控制;SCADA 負責集中監控、歷史紀錄與警報;AI 平台負責清洗資料、建模與推論。其後的異常偵測與預測維護,則是在 AI 平台之上的應用。每一層責任不同,也常由不同團隊負責,需要一位熟悉 OT 與 IT 的窗口協調。
❓ Q3: 昶特 ATLANTIS 是否提供 IoT 或 AWS 等雲端串接服務?
不提供。昶特是儀錶製造商,提供壓力錶、溫度計、壓力傳送器、溫度傳送器等量測硬體與技術建議。PLC 程式、SCADA、IoT 平台、AWS 或其他雲端服務的帳號、串接、費用與資安,均需由客戶或客戶委任的系統整合商自行規劃與建置。
❓ Q4: 本文的範例程式可以直接用在產線嗎?
不建議未經測試直接上線。範例程式的目的是示意資料流與驗證概念,暫存器位址、節點 ID、憑證與網路設定均為示意。正式使用前,請依儀錶型號的通訊位址表與貴廠環境調整,完成測試、資安審查與備援規劃,並由客戶自行維運。
❓ Q5: AI 專案應該先從哪一種儀錶開始?
建議從高價值設備群的壓力與溫度測點開始,例如冰水系統、泵浦、壓縮空氣站或熱交換器。這些測點物理意義明確、與設備故障關聯度高,且多半已有既有儀錶可供盤點。先做一次量測品質稽核,再決定哪些點需要補強或更換。
❓ Q6: 量程選錯會怎麼影響 AI 的效果?
量程過大時,正常操作點只佔量程很小一部分,儀錶的精度誤差相對放大,微小變化被誤差淹沒;量程過小則容易過載且缺少異常上升的餘裕。一般建議正常操作點落在滿量程的 30% 到 70%,兼顧解析度與安全裕度。
❓ Q7: 4-20 mA、HART、Modbus 該怎麼選?
若目標是快速接入既有 PLC,4-20 mA 最通用;重要測點若需要儀錶診斷與組態資訊,可選用 4-20 mA 加 HART;多點採集或邊緣閘道場景,RS-485 Modbus 可減少配線與轉換誤差。各型號支援的輸出與通訊不同,請提供系統資訊給昶特業務協助確認。
❓ Q8: 藍牙數位壓力錶適合做什麼?
適合巡檢資料化與試點驗證:巡檢人員以手機或平板讀取數值並自動上傳,減少手抄錯誤,也不需要拉線。它不建議用於控制迴路或需要嚴格即時性的場合,且無線傳輸的資安需另行評估。
❓ Q9: 機械式壓力錶還要保留嗎?
建議關鍵測點保留。機械錶不需電源、結構簡單,在控制系統失效時仍可指示,也能與傳送器讀數交叉比對,作為儀錶健康的獨立指標。這種「雙軌配置」在 AI 專案中非常實用。
❓ Q10: 生成式 AI 可以直接控制閥門或修改設定值嗎?
不建議。即時控制應由 PID、MPC 等具確定性的機制在 PLC 或 DCS 內執行。生成式 AI 適合負責警報解讀、知識庫問答、報告與工單草稿,且輸出應視為建議,任何影響製程的動作都需經人員確認。
❓ Q11: 如何降低 AI 幻覺造成的風險?
採三道防線:一,數值與事實必須來自查詢工具或知識庫並附出處,而不是模型記憶;二,AI 只提供建議,重要動作由人員確認;三,保留完整的輸入、輸出與引用紀錄以便稽核。同時避免讓模型直接接觸控制寫入權限。
❓ Q12: 異常偵測應該用統計方法還是深度學習?
建議由簡入深:先確保固定門檻完整,再導入 EWMA、Z 分數等統計方法處理緩慢漂移,接著視需求導入 Isolation Forest 等機器學習處理多變數關聯。深度學習資料需求大、維運複雜,應在有明確需求且資料充足時再導入。
❓ Q13: 為什麼異常偵測常常誤報太多?
常見原因包括:訓練資料混入啟停與斷線期間、未分工況建模、缺少連續確認機制、警報未分級、沒有回饋迴路。改善方式是清洗資料、分季節與負載建模、連續多點超標才觸發、將異常分為觀察與警報兩級,並讓值班人員標記誤報。
❓ Q14: 儀錶漂移可以預測嗎?
可以做趨勢估算。收集歷次校正的偏差紀錄,以線性回歸等方法估算漂移速率,並推算何時接近容許誤差。這只是輔助決策,實際的校正週期調整仍須符合貴廠品質系統與稽核要求,並保留技術依據。
❓ Q15: 校正週期可以因此延長嗎?
有可能,但必須有充分依據。若某支儀錶多次校正的偏差都遠小於容許誤差且無單向漂移,經品質人員評估後可考慮適度延長;反之,易漂移的儀錶則應縮短。任何調整都應依貴廠的品質程序與客戶、法規要求辦理,不建議僅憑模型自動決定。
❓ Q16: 預測維護需要多少歷史資料?
異常偵測在累積約數週到數個月的正常運轉資料後即可初步建模;要涵蓋季節與不同負載,最好有至少一年。若要訓練「故障分類」或剩餘壽命模型,還需要足夠的故障案例與標籤,多數工廠故障案例稀少,因此初期以異常偵測與趨勢預警為主較務實。
❓ Q17: 防爆區可以做 AI 資料採集嗎?
可以,但須使用符合防爆規範的儀錶,並依當地法規與廠區規範安裝與認證。常見做法是採用防爆型壓力傳送器,以 4-20 mA 搭配 HART 傳輸到安全區的控制室。防爆區內不建議隨意加裝耗電或無線設備。
❓ Q18: OT 與 IT 網路要如何安全串接?
原則包括:網路分區與 DMZ、資料單向由 OT 往 IT、最小權限與唯讀帳號、對外傳輸啟用 TLS 與憑證驗證、保留稽核紀錄、定期更新與備份。串接方案與資安審查由客戶或其整合商負責。
❓ Q19: 導入一個試點需要多久?成本如何估算?
一個範圍明確的試點建議以 90 天為目標,涵蓋盤點、儀錶補強、資料採集、異常偵測、AI 輔助與閉環評估。昶特產品皆為報價制,儀錶部分請提供測點清單與規格需求,由業務團隊提供報價;系統整合與軟體部分則需向整合商另行詢價。
❓ Q20: 如何開始向昶特詢問儀錶選型與報價?
您可以準備測點清單(介質、量程、溫度、連接方式、輸出訊號、防爆或衛生需求)與現有系統資訊,透過官網的快速詢價連結,或直接聯絡業務一部 Ian、業務二部 Nori,我們的團隊會協助您確認型號與規格。
第 12 章 延伸閱讀與相關資源
如果您想進一步了解昶特 ATLANTIS 在不同應用場景下的儀錶配置與選型思路,以下資源可以作為延伸閱讀。
- 石化反應器 Physical AI 完整指南:從邊緣運算到預測維護的儀錶配置
- BMS 壓力監測怎麼選?壓力變送器、壓力錶與差壓計完整選型指南
- 天然氣設備壓力監測與供氣安全技術指南
- 壓力錶選型精靈:依介質、量程與環境快速篩選
- 壓力傳送器選型精靈:輸出訊號、精度與防護等級對照
- 昶特 ATLANTIS 工業儀表完整產品目錄
- 昶特 ATLANTIS 品牌故事:31 年台灣工業儀錶製造經驗

圖說:ATLANTIS AT-PT186 智慧型壓力傳送器 — 通用工業壓力資料源

圖說:ATLANTIS ATT-P4/D4 管路型溫度傳送器 — 管線溫度資料化

圖說:ATLANTIS DPG-X002 高精度數位壓力錶 — 現場驗證與校驗參考
結論:AI 越聰明,越需要可信的儀錶
回到本文一開始的問題:生成式 AI 進入工廠後,壓力錶與溫度計會變成什麼?答案是:它們會從「讓人看一眼的指示器」,變成「AI 的眼睛」。一條完整的資料鏈,從感測器、PLC、SCADA,到 AI、異常偵測、預測維護,每一層都在放大或稀釋前一層的品質,而第一層的量測品質,決定了整條鏈的上限。
對工廠而言,最務實的路徑不是追逐最新的模型,而是先把基礎打穩:確認測點選得對、量程配得好、儀錶有校正履歷、資料能穩定地被讀取;接著用簡單可靠的統計方法抓住緩慢劣化;再逐步引入生成式 AI 處理警報解讀、知識庫與報告;最後把預測與工單、維修結果串成閉環。這條路徑每一步都有明確的效益,也都能獨立驗證,風險可控。
昶特 ATLANTIS 累積 31 年的工業儀錶製造經驗,專注於提供準確、穩定、可追溯的壓力與溫度量測硬體,協助您把「資料源」這一層做好。至於 PLC、SCADA、IoT 平台、AWS 等雲端串接與 AI 軟體,則由貴廠或您的系統整合商依實際需求規劃,我們樂意在儀錶選型、通訊規格與安裝建議上提供技術支援。
聯絡 ATLANTIS 昶特
📞 業務一部 Ian|電話:02-2820-3405|信箱:ian@atlantis.com.tw
📞 業務二部 Nori|電話:02-2820-3405|信箱:nori@atlantis.com.tw
昶特有限公司|台北市北投區致遠一路二段 109 號
傳真:02-2827-0646 / 02-2820-3406|公司官網:re-atlantis.tw