移至主內容
 🔍 全台最大壓力錶・溫度計・壓差計權威知識庫|HVAC・半導體・冷凍空調專家選型指南・完整技術資料・工業儀表監測教學平台 
 

台灣數位壓力錶製造權威,數位壓力錶全台品項最齊全,業界最先進,歡迎詢價

台灣工業儀表領域少數長期深耕技術內容的平台,累積超過 1,256 篇壓力錶、壓差計、溫度計選型、校正與製程應用深度文章,由資深工程師團隊持續更新

 
 

數位壓力錶 × MySQL × API × 數位孿生:IT/OT 整合與工業物聯網架構完整指南

從現場一支數位壓力錶的 4–20mA、RS485 Modbus 或藍芽訊號出發,如何一路走到 MySQL 資料庫、REST API、儀表板,最後成為數位孿生模型裡一個「會說話」的資產?本文以昶特 ATLANTIS 31 年儀表製造經驗為基礎,替工廠工程師、系統整合商與 IT 團隊拆解整條資料鏈。

先講清楚分工:昶特 ATLANTIS 提供的是現場端的數位壓力錶、壓力傳送器、液位與溫度儀表,以及標準的類比與數位輸出介面。MySQL 資料庫、API 服務、雲端或內部平台與數位孿生模型,由客戶自己的 IT 團隊或系統整合商建置。本文的目的,是讓兩邊的人用同一套語言談需求、少走彎路,而不是宣稱昶特代為提供雲端整合服務。

本文目錄

  1. 前言:為什麼數位壓力錶會成為 IT/OT 整合的起點
  2. 第 1 章:整體架構——從現場儀表到數位孿生的五層模型
  3. 第 2 章:OT 端——訊號、通訊介面與量測資料品質
  4. 第 3 章:MySQL 資料層——資料表設計、寫入策略與保存期限
  5. 第 4 章:API 層——讀取、寫入、告警與權限設計
  6. 第 5 章:數位孿生——把壓力資料變成可推演的資產模型
  7. 第 6 章:昶特 ATLANTIS 產品與三層導入配置
  8. 第 7 章:情境推演與效益評估方法
  9. 第 8 章:資安、導入時程與驗收清單
  10. 第 9 章:20 個常見問題 FAQ
  11. 第 10 章:延伸閱讀與詢價

前言:為什麼數位壓力錶會成為 IT/OT 整合的起點

在多數工廠裡,壓力是最普遍、最便宜、也最容易被忽略的製程變數。冷卻水迴路、壓縮空氣、液壓系統、蒸汽管線、潔淨室壓差,幾乎每一個公用系統都有壓力點,而且很多壓力點到今天仍然是機械指針錶,靠人員巡檢、用眼睛讀數、寫在紙本點檢表上。這種做法在設備單純、人力充足的年代可以運作,但在今天會遇到三個越來越明顯的問題。

第一個問題是資料沒有時間軸。紙本點檢表一天記錄兩三次,等於把一天 86,400 秒的壓力變化壓縮成兩三個點。冷卻水泵浦在凌晨三點出現的短暫壓力下探、壓縮空氣在換班尖峰時的壓降、過濾器壓差在週末悄悄攀升,這些事件都不會出現在人工讀數裡。等到產線異常、品質異常,工程師回頭找證據,才發現沒有任何資料可以佐證。

第二個問題是資料沒辦法被機器使用。就算現場有智慧型儀表,如果訊號只進了單機的 PLC 或顯示器,沒有進入統一的資料庫,後續的趨勢分析、跨設備比較、預測性維護、數位孿生模型,全部都缺少輸入。IT 部門想做資料分析,卻不知道 OT 端有哪些點位、單位是什麼、校正日期是哪天;OT 部門想導入雲端或 AI,卻不確定資料要用什麼格式交給 IT。

第三個問題是責任界線模糊。當一個壓力讀值在儀表板上出現異常,到底是製程真的出問題、儀表漂移、訊號線受干擾、閘道器掉封包,還是資料庫寫入延遲?沒有一套清楚的資料品質標記與稽核欄位,這類問題只能靠人跑現場。時間一久,IT 與 OT 互相推責,整合專案也就難以延續。

因此,把數位壓力錶接進 MySQL 與 API,並進一步映射到數位孿生,不只是「加一個網頁看讀值」的小專案。它真正在處理的,是量測資料如何被可靠地採集、被正確地解讀、被安全地分享、被持續地使用。選擇壓力錶作為起點的好處是,量測原理成熟、介面標準、單點成本低,可以用最小的風險驗證整條資料鏈,再逐步擴展到溫度、液位、流量與設備狀態。

本文適合誰閱讀

  • 工廠的設備、機電、製程與廠務工程師:想知道現場儀表要怎麼規劃,才能讓 IT 好接。
  • 系統整合商與自動化工程師:需要一份能與客戶 IT 溝通的資料鏈設計參考。
  • IT 與資料團隊:需要理解 OT 端訊號特性、資料品質問題與資安邊界。
  • 採購與管理決策者:想評估「從機械錶升級到數位化」的範圍、分工與階段投入。

本文的範圍與誠實聲明

本文會提供具體的資料表設計、API 範例與數位孿生資料模型,讓您可以直接拿去做原型。這些範例屬於通用工程實務,目的在於說明概念與設計取捨,實際專案仍需依您的網路架構、資安政策、資料量與既有系統調整。昶特 ATLANTIS 不提供雲端平台、AWS 或資料庫整合服務,客戶需自行將儀表輸出接入自己的系統;我們能做的是在儀表選型、輸出介面、量程與環境適用性上,提供清楚的規格與建議,並協助您把需求講清楚。

本文提到的產品規格以昶特官網產品目錄為準,實際型號、量程、輸出選項與認證請以最新規格書與報價內容確認。昶特產品採報價制,本文不列任何價格。

第 1 章:整體架構——從現場儀表到數位孿生的五層模型

在討論 MySQL 表怎麼設計、API 怎麼寫之前,先把整條資料鏈切成清楚的層次。每一層只負責一件事,層與層之間用明確的介面溝通,這樣出問題時才知道往哪一層查,擴充時也不會牽一髮動全身。本文採用五層模型:儀表層、邊緣層、傳輸層、資料與 API 層、應用與孿生層。

1.1 五層模型總覽

[ 儀表層 ]  數位壓力錶 / 壓力傳送器 / 溫度 / 液位
     │  4–20mA · 0–10V · RS485 Modbus RTU · HART · 藍芽
     ▼
[ 邊緣層 ]  PLC / 遠端 I/O / Modbus 閘道器 / 工業電腦
     │  輪詢、換算工程單位、時間戳記、品質標記、緩衝
     ▼
[ 傳輸層 ]  MQTT / HTTPS / OPC UA(內網)/ VPN 或專線
     │  加密、重送、離線補傳
     ▼
[ 資料與 API 層 ]  MySQL(讀值、資產、校正、告警)+ REST API
     │  驗證、授權、查詢、寫入、事件
     ▼
[ 應用與孿生層 ]  儀表板 · 告警通知 · 數位孿生模型 · 分析與預測

表 1-1:五層模型的職責、常見技術與責任歸屬

層級主要職責常見技術典型責任方
儀表層把壓力轉為可靠的電訊號或數位資料,維持精度與長期穩定數位壓力錶、壓力傳送器、4–20mA、RS485、HART昶特 ATLANTIS 提供儀表與規格;客戶決定量測點
邊緣層採集、換算、加時間戳記、標記品質、暫存緩衝PLC、遠端 I/O、Modbus 閘道器、Node-RED、Python 服務客戶 OT 團隊或系統整合商
傳輸層安全可靠地把資料從廠區送到資料庫MQTT、HTTPS、OPC UA、VPN客戶 IT 與 OT 共同
資料與 API 層儲存、查詢、權限、告警規則、對外服務MySQL、REST API、訊息佇列客戶 IT 或軟體團隊
應用與孿生層呈現、分析、推演、決策支援Grafana 類儀表板、自建網頁、3D 或資產模型客戶 IT、資料團隊或外部顧問

這張表有一個重點:昶特 ATLANTIS 的責任集中在第一層。我們確保儀表本身的量測原理、精度、材質、防護等級與輸出介面符合現場需求。從第二層開始,是客戶自己的系統與團隊,我們不提供雲端平台或 AWS 整合服務。這個邊界必須在專案初期就講清楚,避免後期因期待落差導致爭議。

1.2 與 Purdue 模型和 ISA-95 的對應

資安與自動化領域常用 Purdue 參考模型描述工廠網路分層,IEC 62443 也是以區域(Zone)與管道(Conduit)的觀念來設計防護。把本文的五層對應過去,可以幫助 IT 與 OT 用同一套語言討論邊界。

表 1-2:五層模型與 Purdue 層級對照

本文分層約略對應 Purdue 層級網路特性設計重點
儀表層Level 0(現場設備)類比迴路、RS485 現場匯流排接地、屏蔽、迴路供電、防護等級
邊緣層Level 1–2(控制與監控)控制網路,可靠度優先不影響原有控制迴路,採唯讀方式取資料
傳輸層Level 3–3.5(營運與 DMZ)跨區流量,需分區控管單向或受控的資料流、不開放反向連入
資料與 API 層Level 4(企業網路)一般 IT 網路身分驗證、稽核、備份、高可用
應用與孿生層Level 4–5(企業與雲)一般 IT 或雲端權限分級、資料遮罩、版本管理

1.3 拉取(Pull)與推送(Push):兩種資料流方式

資料從邊緣送到資料庫,基本上有兩種模式。拉取是資料庫端或應用端定期向邊緣設備要資料,推送是邊緣設備在有資料時主動送出。工業現場多半建議採用推送,原因在於資安與可靠度:推送模式只需要廠區網路對外開放「出站」連線,不需要在防火牆上開「入站」埠讓外部連進控制網路。

  • 推送(建議):邊緣閘道器以 MQTT 或 HTTPS POST 把批次讀值送往資料庫前端的接收服務。斷線時閘道器本地緩衝,連線恢復後補傳。
  • 拉取(有條件使用):僅限於同一個受控網段內,例如資料庫伺服器與閘道器同在 DMZ,由內部服務定期向閘道器查詢。
  • 混合:即時告警用推送,歷史補齊用拉取。

1.4 資料量估算:先算清楚再選資料庫

很多專案在初期只接十幾個壓力點,覺得資料量很小,等到擴到數百個點才發現資料庫撐不住。先做一次粗估,可以提早決定要不要分區、降採樣或改用時序資料庫。下表以每筆讀值約 100 位元組(含索引的粗估)計算。

表 1-3:不同點位數與取樣週期下的資料量粗估

點位數取樣週期每日筆數每年筆數每年儲存量粗估
5060 秒72,000約 2,630 萬約 2.6 GB
5010 秒432,000約 1.58 億約 15.8 GB
20060 秒288,000約 1.05 億約 10.5 GB
20010 秒1,728,000約 6.31 億約 63 GB
1,00010 秒8,640,000約 31.5 億約 315 GB
1,0001 秒86,400,000約 315 億約 3.15 TB

從表中可以看出,取樣週期對資料量的影響遠大於點位數。多數公用系統(冷卻水、壓縮空氣、空調)的壓力變化是分鐘等級,60 秒甚至 30 秒取樣已經足夠;只有泵浦起停、水錘、液壓脈動等快速事件才需要秒級以下的取樣,而且通常只在事件觸發時才高頻記錄。

設計原則:用事件驅動取代全程高頻。平時以 30–60 秒記錄趨勢;當壓力變化率超過門檻或越過告警線時,邊緣端自動切換為 1 秒記錄並保留前後各數分鐘的緩衝,事件結束再降回低頻。這樣既不漏掉關鍵瞬間,也不會讓資料庫被無意義的穩態資料淹沒。

1.5 為什麼從壓力開始,而不是一次接全廠

整合專案最常見的失敗模式,是範圍一開始就太大:想一次接全廠、所有參數、所有系統。結果是現場施工拖延、資料格式不一致、各系統責任不清,三個月後仍然沒有任何一張可用的儀表板。更務實的做法是選一個有明確痛點的公用系統,先打通「儀表到 API 到儀表板」的完整鏈路,驗證資料品質與團隊協作流程,再複製到下一個系統。

壓力量測適合當作起點,有四個原因。第一,壓力與流量、液位、洩漏、堵塞等現象有直接關係,一個壓力點往往能提供多重診斷資訊。第二,壓力儀表的介面標準化程度高,4–20mA 與 RS485 幾乎是通用語言。第三,單點成本與安裝複雜度相對低,試點風險小。第四,壓力異常通常有明確的工程判斷準則,容易設定第一批告警規則並看到成效。

1.6 第一個試點的建議範圍

點位數

建議 10–30 點,涵蓋同一個系統的不同節點,例如冷卻水泵浦出口、主管、各支管與回水。

時間

四到八週完成:兩週選型與現場勘查、兩週施工與接線、兩到四週資料驗證與告警調校。

成功標準

資料完整率達 99% 以上、至少抓到一次人工巡檢沒發現的異常、IT 與 OT 雙方都能獨立說明各層責任。

第 2 章:OT 端——訊號、通訊介面與量測資料品質

資料庫裡的每一筆讀值,品質都取決於最前端那支儀表與它的訊號路徑。IT 團隊常見的誤解是「資料進來了就是對的」,但實際上,從感測元件到資料庫之間,至少有感測誤差、類比轉換誤差、換算誤差、時間誤差四種誤差來源。本章從 OT 的角度,把這些細節講清楚,讓資料表設計與 API 設計有正確的基礎。

2.1 數位壓力錶與壓力傳送器:兩種不同的角色

數位壓力錶與壓力傳送器常被混為一談,但在整合設計上扮演的角色不同。數位壓力錶以現場顯示為主要功能,操作人員走到現場就能讀值,部分型號另外提供類比輸出、RS485 或藍芽,作為資料採集的選配。壓力傳送器則以訊號輸出為核心,把壓力轉成標準電訊號送往控制系統,現場顯示是輔助。

如果目標是進入 MySQL 與 API,兩者都可以使用,選擇的關鍵在於現場需求:製程人員是否需要隨時在現場看讀值?是否需要現場快速校零?是否有多個點需要走同一條 RS485 匯流排?昶特產品目錄中,DPG 系列數位壓力錶與 SDPT、SPT 系列傳送器可依這些需求搭配,實際輸出選項依型號與訂購規格而異,下單前請務必以規格書與報價內容確認。

2.2 五種常見輸出介面比較

表 2-1:數位壓力儀表常見輸出介面比較

介面訊號形式優點限制適合場景
4–20mA電流迴路,兩線式迴路供電居多抗干擾佳、可長距離傳輸、可偵測斷線一對線一個變數,需 PLC 或 I/O 模組轉為數位既有 PLC/DCS 系統、最廣泛的現場標準
0–10V電壓訊號接線簡單、與樓宇控制器相容線路壓降與干擾影響較大,距離短BMS、空調控制箱附近的短距離點位
RS485 Modbus RTU數位串列匯流排,多點連接一條線掛多台、可讀多個暫存器(壓力、溫度、狀態)需設定位址與通訊參數,匯流排需終端電阻與接地規劃點位密集、希望減少佈線、需要讀取診斷資料
HART在 4–20mA 上疊加數位訊號不改線就能讀取設備資訊與診斷需要 HART 數據機或多工器,更新速率較慢既有 4–20mA 迴路上要加值,做遠端組態與診斷
藍芽短距離無線現場用手機讀值、設定、抽查記錄不適合作為全廠資料主幹,距離與穩定性受環境影響巡檢輔助、現場校正、臨時量測

提醒:藍芽功能適合巡檢與現場設定,但不建議當成 IT/OT 整合的主要資料通道。要進入資料庫的點位,仍應以 4–20mA、RS485 或 HART 這類有線介面為主,確保連續性與可稽核性。

2.3 4–20mA 迴路:換算、斷線偵測與解析度

4–20mA 是壓力量測最普遍的標準。4 mA 代表量程下限,20 mA 代表量程上限,中間成線性關係。邊緣端的換算公式很簡單:

壓力 P = P_min + (I - 4) / 16 × (P_max - P_min)

例:量程 0–10 bar,量到 12 mA
P = 0 + (12 - 4) / 16 × 10 = 5.0 bar

這個「活零點」設計的好處,是可以區分「0 壓力」與「斷線」。依 NAMUR NE43 的建議,正常量測範圍大約落在 3.8 到 20.5 mA,低於 3.6 mA 或高於 21 mA 通常被視為迴路故障(斷線、短路、感測器失效)。邊緣端在換算前,應先判斷電流是否落在合理範圍,超出就把該筆資料標記為品質不良,而不是直接換算成一個看似正常的壓力值寫進資料庫。

另一個常被忽略的是類比輸入的解析度。以 250 Ω 精密電阻把 4–20mA 轉成 1–5V 為例,不同位元數的類比轉換器,對應的最小可辨識變化量如下:

表 2-2:不同類比轉換器位元數對應的量測解析度(以 0–5V 輸入、1–5V 有效範圍估算)

轉換器位元數每計數電壓有效範圍內計數約佔量程比例對 0–10 bar 量程約相當於
10 位元約 4.88 mV約 819約 0.122%約 0.0122 bar
12 位元約 1.22 mV約 3,277約 0.031%約 0.0031 bar
16 位元約 76.3 μV約 52,429約 0.0019%約 0.0002 bar

如果儀表本身精度是 ±0.5% FS,用 10 位元的轉換器就會讓解析度成為瓶頸;12 位元以上才能讓轉換誤差相對於儀表誤差變得可以忽略。對於 ±0.1% 以內的高精度儀表,建議使用 16 位元的輸入模組,否則儀表的高精度在資料端被浪費。

2.4 RS485 Modbus RTU:位址、暫存器與現場佈線

RS485 的優勢是一條雙絞線可以掛多台儀表,除了壓力值,還可以同時讀取溫度、設備狀態、診斷旗標。要把它穩定地接進資料鏈,需要注意以下設計要點:

  • 通訊參數:每台儀表需設定唯一的從站位址,鮑率、同位元、停止位元整條匯流排必須一致。
  • 匯流排拓樸:採手牽手式(菊鍊)而非星狀,兩端各加一個 120 Ω 終端電阻,避免反射。
  • 距離與速率:鮑率越高可傳輸的距離越短,一般 9600 bps 在良好佈線下可達上千公尺等級,但仍需依電纜品質與干擾環境評估。
  • 屏蔽與接地:使用屏蔽雙絞線,屏蔽層單點接地,避免形成接地環路。
  • 暫存器對照表:向儀表供應商取得完整的暫存器位址、資料型態(16 位元整數、32 位元浮點)、位元組順序(Big-endian 或 word-swap)與比例係數。

暫存器對照表是 IT 與 OT 溝通最容易出錯的地方。同一個 32 位元浮點數,不同儀表可能採用不同的字組順序,如果邊緣端解析錯誤,讀值會是完全不合理的數字。建議每一款儀表建立一份「通訊規格卡」,並在試點階段用手持標準器比對確認:

表 2-3:儀表通訊規格卡範本(欄位說明)

欄位說明範例(示意,非實際型號)
從站位址匯流排上唯一識別12
通訊參數鮑率/資料位元/同位/停止位元9600/8/N/1
功能碼讀取保持暫存器或輸入暫存器03 或 04
壓力暫存器起始位址、長度、資料型態0x0000,2 字組,32 位元浮點
位元組順序決定如何拼接兩個字組以規格書為準,現場實測確認
工程單位讀值單位與可否切換bar 或 kPa(以儀表設定為準)
診斷暫存器感測器故障、過載、電池、溫度依規格書提供

2.5 誤差預算:資料到底準不準

進入資料庫的壓力值,誤差不只來自儀表。完整的誤差預算至少包含:儀表本身精度、溫度影響、類比轉換誤差、換算捨入、安裝誤差(取壓位置與高度差)。若各誤差來源彼此獨立,可以用方和根(RSS)估算整體不確定度:

U_total = √( U_儀表² + U_溫度² + U_ADC² + U_安裝² )

例:U_儀表 = 0.5%,U_溫度 = 0.2%,U_ADC = 0.05%,U_安裝 = 0.1%
U_total = √(0.25 + 0.04 + 0.0025 + 0.01) ≈ 0.55% FS

這個估算說明了一件事:在儀表精度為主要誤差來源時,花大錢升級類比轉換器效益有限,反過來,若儀表本身是 ±0.1% 的高精度款,卻接到解析度不足的輸入模組,整體精度就會被拖累。選型時應讓各環節的誤差量級相近,避免在某一環過度投資。

2.6 資料品質標記:讓壞資料有名字

工業資料最危險的不是「沒有資料」,而是「看起來正常、其實不可信的資料」。邊緣端與資料庫應該共同約定一組品質代碼,隨每筆讀值一起儲存,讓下游的分析、告警與數位孿生都能判斷該不該採信。

表 2-4:建議的資料品質代碼

代碼名稱判定條件下游處理建議
0GOOD通訊正常、數值在合理範圍正常使用
1UNCERTAIN剛開機、剛校正、溫度補償尚未穩定可顯示,但不觸發告警
2BAD_COMM通訊逾時、CRC 錯誤、閘道器離線不寫入數值,記錄為缺漏事件
3BAD_SENSOR電流低於 3.6 mA 或高於 21 mA、儀表自診斷故障觸發維修工單,不可用於分析
4OUT_OF_RANGE超出儀表量程或超出合理物理範圍保留原始值供檢討,不納入統計
5STALE數值長時間完全不變(疑似凍結)標記疑似卡值,提示現場檢查
6MAINTENANCE該點位處於校正或維修狀態暫停告警,保留記錄

2.7 時間:最容易被低估的資料欄位

壓力異常往往需要和泵浦起停、閥門動作、製程批次對時間線,如果各系統的時間不同步,因果關係就無從判斷。實務上有幾個原則:邊緣端在採集當下就打上時間戳記,不要等到入庫才由資料庫補;全系統一律儲存 UTC 時間,僅在顯示層轉換為本地時區;閘道器與伺服器都應同步到可靠的時間源(NTP),並定期監控時間偏移。

另外,要區分「測量時間」與「接收時間」兩個欄位。當網路中斷後補傳資料時,測量時間反映真實的物理事件,接收時間反映資料抵達的時刻,兩者的差距本身也是一項有價值的健康指標。

第 3 章:MySQL 資料層——資料表設計、寫入策略與保存期限

MySQL 是許多企業最熟悉、最容易取得維運人力的資料庫。對於數百到數千個壓力點、分鐘到十秒級的取樣,MySQL 8 搭配良好的資料表設計與分區策略,完全可以勝任。本章的重點不是教您 SQL 語法,而是說明為什麼這樣設計,讓您能依自己的規模調整。

3.1 先決定:MySQL 夠用嗎?

在動手之前,先誠實評估資料庫選型。MySQL 是通用關聯式資料庫,不是時序資料庫,兩者各有適用範圍。

表 3-1:MySQL 與時序資料庫的適用情境比較

評估面向MySQL 8(含分區)專用時序資料庫
團隊熟悉度多數 IT 團隊已具備維運經驗需要額外學習與維運投入
資產、校正、告警等關聯資料非常適合,可用外鍵與交易通常需另配關聯式資料庫
高頻寫入(每秒數萬筆以上)需批次寫入與調校,達上限較早為此設計,壓縮與寫入效率較佳
長期保存與降採樣需自行排程彙總與分區刪除多半內建保留策略與連續彙總
與既有應用整合驅動與工具生態完整視產品而定
建議使用時機點位數百至數千、取樣 10 秒以上、已有 MySQL 維運能力點位數千以上且高頻取樣,或需要大量長期時序分析

一個務實的做法是兩者並用:MySQL 保存資產主檔、儀表資訊、校正紀錄、告警事件等「關聯性強、量不大」的資料;讀值歷史若成長到 MySQL 吃力,再把歷史讀值搬到時序資料庫,API 層對外維持同一份介面,應用端不必改動。本文的資料表設計採用這個思路,讀值表與主檔表邊界清楚,日後要搬遷也容易。

3.2 資料表總覽

表 3-2:核心資料表與用途

資料表用途成長特性
assets資產階層:廠區、區域、系統、設備很少變動,數百到數千列
instruments儀表主檔:型號、序號、量程、輸出介面、安裝日期很少變動
tags量測點(Tag):單位、量程、告警限值、所屬資產與儀表很少變動
calibrations校正紀錄:日期、偏差、證書編號、下次到期緩慢成長
readings讀值歷史(核心大表,需分區)快速成長
readings_1min分鐘級彙總(平均、最大、最小、筆數)中度成長,保存較久
tag_latest每個點位的最新值,供儀表板快速查詢固定列數,頻繁更新
alarms告警事件與狀態視告警頻率
ingest_errors寫入失敗或被拒絕的資料(死信區)應維持很小,變大代表有問題

3.3 資產、儀表與點位:主檔設計

主檔設計決定了日後數位孿生能不能順利對應。核心觀念是把「資產」「儀表」「點位」三者分開:資產是工廠裡實際存在的東西(泵浦、過濾器、冷卻水主管),儀表是可被更換的量測設備,點位則是「某個資產上的某個量測意義」(泵浦出口壓力)。儀表壞了換新,點位與資產不變,歷史資料就不會斷。

CREATE TABLE assets (
  asset_id      INT UNSIGNED NOT NULL AUTO_INCREMENT,
  parent_id     INT UNSIGNED NULL,
  asset_code    VARCHAR(64)  NOT NULL,          -- 例:FAB1-CW-PUMP01
  name          VARCHAR(128) NOT NULL,
  asset_type    VARCHAR(32)  NOT NULL,          -- site / area / system / equipment
  PRIMARY KEY (asset_id),
  UNIQUE KEY uk_asset_code (asset_code),
  KEY idx_parent (parent_id),
  CONSTRAINT fk_asset_parent FOREIGN KEY (parent_id) REFERENCES assets(asset_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE instruments (
  instrument_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  model         VARCHAR(64)  NOT NULL,
  serial_no     VARCHAR(64)  NOT NULL,
  range_min     DOUBLE NOT NULL,
  range_max     DOUBLE NOT NULL,
  range_unit    VARCHAR(16)  NOT NULL,          -- bar / kPa / mbar ...
  output_type   VARCHAR(32)  NOT NULL,          -- 4-20mA / RS485 / HART ...
  installed_at  DATE NULL,
  PRIMARY KEY (instrument_id),
  UNIQUE KEY uk_serial (model, serial_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE tags (
  tag_id        INT UNSIGNED NOT NULL AUTO_INCREMENT,
  tag_name      VARCHAR(96)  NOT NULL,          -- 例:FAB1.CW.PUMP01.DISCH_P
  asset_id      INT UNSIGNED NOT NULL,
  instrument_id INT UNSIGNED NULL,
  measure_type  VARCHAR(32)  NOT NULL,          -- pressure / diff_pressure / level / temp
  eng_unit      VARCHAR(16)  NOT NULL,
  scan_sec      SMALLINT UNSIGNED NOT NULL DEFAULT 60,
  lo_lo DOUBLE NULL, lo DOUBLE NULL, hi DOUBLE NULL, hi_hi DOUBLE NULL,
  deadband      DOUBLE NOT NULL DEFAULT 0,
  is_active     TINYINT(1) NOT NULL DEFAULT 1,
  PRIMARY KEY (tag_id),
  UNIQUE KEY uk_tag_name (tag_name),
  KEY idx_asset (asset_id),
  CONSTRAINT fk_tag_asset FOREIGN KEY (asset_id) REFERENCES assets(asset_id),
  CONSTRAINT fk_tag_inst  FOREIGN KEY (instrument_id) REFERENCES instruments(instrument_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

點位命名建議採用固定層級的句點分隔,例如「廠區.系統.設備.量測意義」。命名規則在專案初期就要定案並文件化,否則三年後會出現「PUMP1_P」「Pump01Press」「泵浦一壓力」同時存在的混亂,任何跨系統分析都會變得痛苦。

3.4 讀值大表:readings 與分區

讀值表是整個資料庫最大、寫入最頻繁的表,設計上有三個重點:主鍵讓同一點位的時間序列在磁碟上相鄰、依時間分區方便清理、不使用外鍵(分區的 InnoDB 資料表不支援外鍵)。

CREATE TABLE readings (
  tag_id     INT UNSIGNED NOT NULL,
  ts         DATETIME(3)  NOT NULL,             -- 測量時間,UTC
  value      DOUBLE       NULL,                 -- 工程單位值
  raw_value  DOUBLE       NULL,                 -- 原始值(如 mA),可選
  quality    TINYINT UNSIGNED NOT NULL DEFAULT 0,
  recv_ts    DATETIME(3)  NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  PRIMARY KEY (tag_id, ts)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
PARTITION BY RANGE COLUMNS (ts) (
  PARTITION p202610 VALUES LESS THAN ('2026-11-01'),
  PARTITION p202611 VALUES LESS THAN ('2026-12-01'),
  PARTITION p202612 VALUES LESS THAN ('2027-01-01'),
  PARTITION pmax    VALUES LESS THAN (MAXVALUE)
);

主鍵採用 (tag_id, ts) 的好處有兩個。其一,InnoDB 的叢集索引會依主鍵排序,同一點位的連續時間資料會物理上聚集,查詢「某點位過去 24 小時」時只需讀取連續的資料頁。其二,主鍵天然提供冪等性:同一點位同一時間戳記的資料不會重複寫入,網路重送造成的重複資料可以被安全地忽略或覆寫。

每月建立一個分區,預先建立未來數個月的分區,並用排程在月底前新增下一個月、刪除超過保存期限的舊分區。刪除分區(DROP PARTITION)幾乎是瞬間完成,遠比對大表執行 DELETE 快,也不會產生大量交易日誌與碎片。

常見陷阱:忘記預先建立未來分區,月初資料就會全部落進 MAXVALUE 分區,日後拆分很費工。建議用排程每週檢查,確保至少有兩個月的預建分區,並在監控中加入「剩餘分區數」告警。

3.5 寫入策略:批次、冪等與背壓

逐筆 INSERT 是效能殺手。每一筆都要經過網路往返、解析、交易提交,數百個點位每十秒各寫一筆,就會讓資料庫忙於處理大量微小交易。正確做法是邊緣端或接收服務累積一小批(例如 500 到 5,000 筆)再一次寫入,使用多值 INSERT 或載入檔案方式。

INSERT INTO readings (tag_id, ts, value, raw_value, quality)
VALUES
  (101, '2026-10-28 03:10:00.000', 4.82, 12.51, 0),
  (102, '2026-10-28 03:10:00.000', 5.01, 12.82, 0),
  (103, '2026-10-28 03:10:00.000', NULL, 2.90, 3)
ON DUPLICATE KEY UPDATE
  value = VALUES(value), raw_value = VALUES(raw_value), quality = VALUES(quality);

其中第三筆示範了品質不良的資料:電流 2.90 mA 低於 3.6 mA,判定為感測器故障,value 留空、品質設為 3。這樣既保留了「當時發生過故障」的證據,也不會讓錯誤數值污染統計。

  • 冪等:靠主鍵與 ON DUPLICATE KEY UPDATE,讓補傳與重送都是安全的。
  • 背壓:當資料庫繁忙時,接收服務應回應「稍後再試」,邊緣端依指數退避重送並持續本地緩衝,而不是無限制地堆積。
  • 死信區:格式錯誤或未知點位的資料不要丟棄,寫入 ingest_errors 供事後排查。
  • 交易大小:單一批次不宜過大,避免長時間持有鎖與產生過大的複寫延遲。

3.6 最新值表與快速查詢

儀表板最常見的查詢是「每個點位現在是多少」。如果每次都去大表裡找最後一筆,成本會隨資料量上升。解法是另外維護一張固定列數的 tag_latest,每次批次寫入後順便更新。

CREATE TABLE tag_latest (
  tag_id   INT UNSIGNED NOT NULL,
  ts       DATETIME(3)  NOT NULL,
  value    DOUBLE NULL,
  quality  TINYINT UNSIGNED NOT NULL,
  PRIMARY KEY (tag_id)
) ENGINE=InnoDB;

INSERT INTO tag_latest (tag_id, ts, value, quality)
VALUES (101, '2026-10-28 03:10:00.000', 4.82, 0)
ON DUPLICATE KEY UPDATE
  ts = IF(VALUES(ts) >= ts, VALUES(ts), ts),
  value = IF(VALUES(ts) >= ts, VALUES(value), value),
  quality = IF(VALUES(ts) >= ts, VALUES(quality), quality);

這段語法特別處理了「補傳舊資料不應覆蓋較新的最新值」的情況:只有新資料的時間戳記不早於現有值時才更新。這是邊緣端斷線重連後最常見的資料錯亂來源之一。

3.7 降採樣:分鐘級彙總表

原始高頻資料只需保存較短期間,長期趨勢分析使用彙總即可。建議以排程每分鐘或每五分鐘,把已完成的時間區段彙總到 readings_1min。

CREATE TABLE readings_1min (
  tag_id  INT UNSIGNED NOT NULL,
  bucket  DATETIME     NOT NULL,                -- 分鐘起點,UTC
  avg_v   DOUBLE NULL, min_v DOUBLE NULL, max_v DOUBLE NULL,
  n_good  SMALLINT UNSIGNED NOT NULL,
  n_bad   SMALLINT UNSIGNED NOT NULL,
  PRIMARY KEY (tag_id, bucket)
) ENGINE=InnoDB;

INSERT INTO readings_1min (tag_id, bucket, avg_v, min_v, max_v, n_good, n_bad)
SELECT tag_id,
       DATE_FORMAT(ts, '%Y-%m-%d %H:%i:00') AS bucket,
       AVG(IF(quality = 0, value, NULL)),
       MIN(IF(quality = 0, value, NULL)),
       MAX(IF(quality = 0, value, NULL)),
       SUM(quality = 0), SUM(quality <> 0)
FROM readings
WHERE ts >= '2026-10-28 03:00:00' AND ts < '2026-10-28 03:05:00'
GROUP BY tag_id, bucket
ON DUPLICATE KEY UPDATE
  avg_v = VALUES(avg_v), min_v = VALUES(min_v), max_v = VALUES(max_v),
  n_good = VALUES(n_good), n_bad = VALUES(n_bad);

彙總時只計算品質良好的資料,同時記錄良好與不良筆數,讓使用者能判斷這一分鐘的平均值有多少可信度。最大值與最小值不可省略:平均值會抹平瞬間的壓力尖峰,而尖峰往往正是設備損傷與製程異常的關鍵證據。

3.8 常用查詢範例

以下三個查詢涵蓋了最常見的分析需求:趨勢、變化率與疑似卡值。

-- (1) 某點位最近 24 小時,每 5 分鐘一個點
SELECT FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(ts)/300)*300) AS t5,
       AVG(value) AS avg_v, MIN(value) AS min_v, MAX(value) AS max_v
FROM readings
WHERE tag_id = 101 AND quality = 0
  AND ts >= UTC_TIMESTAMP() - INTERVAL 24 HOUR
GROUP BY t5 ORDER BY t5;

-- (2) 壓力變化率:與前一筆相比每秒變化多少(MySQL 8 視窗函式)
SELECT ts, value,
       (value - LAG(value) OVER w) /
       NULLIF(TIMESTAMPDIFF(MICROSECOND, LAG(ts) OVER w, ts) / 1000000, 0) AS dp_per_sec
FROM readings
WHERE tag_id = 101 AND ts >= UTC_TIMESTAMP() - INTERVAL 1 HOUR
WINDOW w AS (ORDER BY ts);

-- (3) 疑似卡值:最近 30 分鐘數值完全沒變
SELECT tag_id
FROM readings
WHERE ts >= UTC_TIMESTAMP() - INTERVAL 30 MINUTE AND quality = 0
GROUP BY tag_id
HAVING COUNT(*) >= 20 AND MIN(value) = MAX(value);

注意第一個查詢的 FROM_UNIXTIME 會依資料庫連線時區轉換,建議連線時固定設定為 UTC,避免顯示層與資料層的時區混淆。

3.9 保存期限與容量規劃

表 3-3:建議的分層保存策略(可依法規與稽核需求調整)

資料層級取樣粒度建議保存用途
原始高頻事件資料1 秒以下,事件觸發30–90 天事故事後分析、水錘與脈動研究
原始讀值10–60 秒6–12 個月日常診斷、短期趨勢
分鐘彙總1 分鐘2–3 年季節比較、年度檢討
小時/日彙總1 小時、1 日5 年以上長期趨勢、設備壽命分析、稽核佐證
校正與告警紀錄事件依品質系統要求(常為設備壽命期間)稽核、追溯

若所屬產業有法規要求資料完整性與保存年限(例如製藥、食品、潔淨室),保存策略應先與品保單位確認,再決定彙總與刪除規則。刪除資料之前,務必確認已備份,且彙總結果已驗證正確。

第 4 章:API 層——讀取、寫入、告警與權限設計

資料庫裡有了乾淨的資料,下一步是讓各種應用安全地使用它。直接讓儀表板、報表工具、分析腳本都連進資料庫,短期看似省事,長期會造成權限失控、查詢互相拖累、資料結構變動牽動所有下游。引入 API 層,等於在資料庫與使用者之間建立一道清楚的契約:外界只能透過受控的介面存取資料,資料庫內部可以自由演進。

4.1 API 要解決的四件事

  • 寫入:讓邊緣閘道器安全、冪等地送入讀值。
  • 讀取:讓儀表板與分析工具查詢最新值、歷史趨勢、資產狀態。
  • 事件:告警的產生、確認與關閉,以及對外通知。
  • 主檔:點位、資產、儀表、校正資訊的查詢與維護。

4.2 端點設計總覽

表 4-1:REST API 端點設計範例

方法與路徑用途主要使用者權限
POST /api/v1/ingest/readings批次寫入讀值,冪等邊緣閘道器寫入專用金鑰
GET /api/v1/tags列出點位與其單位、限值儀表板、整合應用唯讀
GET /api/v1/tags/{id}/latest單一點位最新值與品質儀表板唯讀
GET /api/v1/tags/{id}/readings歷史讀值,可指定時間範圍與彙總粒度分析、報表唯讀
GET /api/v1/assets/{id}/state資產綜合狀態(供數位孿生使用)孿生模型、儀表板唯讀
GET /api/v1/alarms查詢告警,可依狀態與時間篩選維運人員唯讀
POST /api/v1/alarms/{id}/ack確認告警維運人員具備確認權限的使用者
GET /api/v1/instruments/{id}/calibrations校正歷史與到期日品保、維護唯讀

路徑中的 v1 代表版本。契約一旦對外開放,就不應該隨意破壞;新增欄位屬於向後相容,可以直接加入,欄位更名、型別變更或移除則應發布 v2,並讓 v1 保留一段轉換期。

4.3 寫入端點:批次、冪等與部分成功

寫入端點是整條鏈路最容易出事的地方,設計上要處理網路重送、部分資料錯誤、時間戳記異常與流量尖峰。請求格式範例如下:

POST /api/v1/ingest/readings
Authorization: Bearer <gateway-api-key>
Idempotency-Key: gw-fab1-20261028T031000Z-0001
Content-Type: application/json

{
  "gateway_id": "gw-fab1-cw-01",
  "readings": [
    { "tag": "FAB1.CW.PUMP01.DISCH_P", "ts": "2026-10-28T03:10:00.000Z",
      "value": 4.82, "raw": 12.51, "quality": 0 },
    { "tag": "FAB1.CW.PUMP01.SUCT_P",  "ts": "2026-10-28T03:10:00.000Z",
      "value": null, "raw": 2.90, "quality": 3 }
  ]
}

回應採用「部分成功」模式。一批資料中若有幾筆格式錯誤,不應讓整批失敗,而是回報每一筆的處理結果,由邊緣端決定重送哪些:

HTTP/1.1 207 Multi-Status
{
  "accepted": 1,
  "rejected": 1,
  "errors": [
    { "index": 1, "code": "UNKNOWN_TAG",
      "message": "tag FAB1.CW.PUMP01.SUCT_P not registered" }
  ]
}

表 4-2:寫入端點建議的驗證規則

驗證項目規則不符時處理
點位是否存在tag 必須已在 tags 表且為啟用狀態拒絕該筆,寫入死信區,回報 UNKNOWN_TAG
時間戳記格式必須為 ISO 8601 且為 UTC拒絕,回報 BAD_TIMESTAMP
未來時間不得晚於伺服器時間超過 5 分鐘拒絕,並提示檢查閘道器時鐘
過舊時間超過允許補傳期限(例如 7 天)需特殊流程拒絕或轉入人工補資料流程
數值合理性在點位定義的物理範圍內(可略寬於量程)仍可寫入,但品質改為 OUT_OF_RANGE
批次大小單批上限(例如 5,000 筆)超過回應 413,請閘道器分批
重複請求相同 Idempotency-Key 在有效期內只處理一次回傳先前結果,不重複寫入

4.4 讀取端點:彙總、分頁與效能保護

歷史查詢是最容易被濫用的端點。使用者要求「過去一年、每秒一筆」的資料,就足以讓資料庫癱瘓。API 必須主動保護資料庫:限制單次查詢的時間範圍與回傳筆數、依查詢區間自動選擇資料來源(短區間用原始資料、長區間用彙總表)、並支援游標分頁。

GET /api/v1/tags/101/readings?from=2026-10-27T00:00:00Z&to=2026-10-28T00:00:00Z&interval=5m&agg=avg,min,max

{
  "tag": "FAB1.CW.PUMP01.DISCH_P",
  "unit": "bar",
  "interval": "5m",
  "points": [
    { "t": "2026-10-27T00:00:00Z", "avg": 4.81, "min": 4.77, "max": 4.86, "good": 30, "bad": 0 },
    { "t": "2026-10-27T00:05:00Z", "avg": 4.80, "min": 4.76, "max": 4.85, "good": 30, "bad": 0 }
  ],
  "next_cursor": null
}

表 4-3:依查詢區間自動選擇資料來源的建議規則

查詢區間資料來源最大回傳點數建議
6 小時以內readings 原始資料約 2,000 點
6 小時到 7 天readings_1min 彙總約 10,000 點
7 天到 1 年小時彙總約 9,000 點
超過 1 年日彙總依需求

4.5 錯誤格式與狀態碼

一致的錯誤格式能大幅降低整合成本。建議採用 RFC 7807(Problem Details)的結構,包含類型、標題、狀態碼與可讀的說明。狀態碼的使用要遵循慣例:400 代表請求本身有誤、401 代表未通過驗證、403 代表已驗證但無權限、404 代表資源不存在、409 代表衝突(例如重複確認告警)、413 代表請求過大、429 代表流量超限、503 代表暫時無法服務。其中 429 與 503 都應附上 Retry-After,讓邊緣端知道多久後重試。

4.6 驗證與授權:機器與人要分開

  • 邊緣閘道器:使用專屬的 API 金鑰或雙向 TLS 憑證,權限僅限寫入讀值,且綁定特定閘道器 ID。金鑰可定期輪替,洩漏時可單獨撤銷,不影響其他閘道器。
  • 人員與應用:使用企業的身分提供者(OIDC/OAuth 2.0),發放短效 Token,依角色控管。例如操作員可確認告警、工程師可修改告警限值、稽核員只能查閱。
  • 最小權限:讀取專用的帳號不得具備寫入權限;資料庫連線帳號也應依 API 的用途分開。
  • 稽核紀錄:所有寫入與設定變更記錄操作者、時間、前後值,尤其是告警限值與校正資料的修改。
  • 傳輸加密:全面使用 TLS,內網也不例外。

4.7 告警:避免「狼來了」

告警設計不佳是監控專案失敗的首要原因。值班人員被每天上百則誤報淹沒,一個月後就會開始忽略所有通知,真正的異常反而被淹沒。以下是降低誤報的四個機制:

  • 延遲確認(On-delay):壓力越線必須持續一段時間(例如 30 秒)才算告警,過濾瞬間尖峰。
  • 遲滯(Deadband):告警解除的門檻比觸發門檻寬鬆一點,避免讀值在門檻附近來回跳動造成反覆告警。
  • 品質閘門:品質不良的資料不觸發壓力告警,而是觸發「儀表或通訊異常」這個獨立類型的告警。
  • 分級與抑制:區分警告與緊急,並在維修狀態下暫停該點位的告警。
CREATE TABLE alarms (
  alarm_id    BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  tag_id      INT UNSIGNED NOT NULL,
  alarm_type  VARCHAR(24) NOT NULL,   -- HI / HI_HI / LO / LO_LO / RATE / BAD_SENSOR / STALE
  severity    TINYINT UNSIGNED NOT NULL,
  state       VARCHAR(12) NOT NULL,   -- ACTIVE / ACKED / CLEARED
  triggered_at DATETIME(3) NOT NULL,
  trigger_value DOUBLE NULL,
  acked_at    DATETIME(3) NULL,
  acked_by    VARCHAR(64) NULL,
  cleared_at  DATETIME(3) NULL,
  note        VARCHAR(255) NULL,
  PRIMARY KEY (alarm_id),
  KEY idx_tag_state (tag_id, state),
  KEY idx_time (triggered_at),
  CONSTRAINT fk_alarm_tag FOREIGN KEY (tag_id) REFERENCES tags(tag_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

4.8 邊緣端範例:把兩個暫存器解成浮點數

下面是邊緣端解析 Modbus 暫存器的簡化範例,示範字組順序處理與 4–20mA 換算及品質判定。請依您所用的 Modbus 函式庫與儀表規格書調整,這裡只是概念說明,不是可直接上線的完整程式。

import struct

def decode_float32(regs, word_swap=False):
    """regs: 兩個 16 位元暫存器值;word_swap 依儀表規格書決定"""
    hi, lo = (regs[1], regs[0]) if word_swap else (regs[0], regs[1])
    return struct.unpack(">f", struct.pack(">HH", hi, lo))[0]

def ma_to_pressure(i_ma, p_min, p_max):
    """4–20mA 換算並判定品質;回傳 (value, quality)"""
    if i_ma < 3.6 or i_ma > 21.0:
        return None, 3                      # BAD_SENSOR
    value = p_min + (i_ma - 4.0) / 16.0 * (p_max - p_min)
    if value < p_min - 0.02 * (p_max - p_min) or value > p_max * 1.05:
        return value, 4                     # OUT_OF_RANGE
    return value, 0                         # GOOD

4.9 API 的非功能需求

表 4-4:API 上線前建議確認的非功能需求

面向需確認事項
可用性接收服務是否可水平擴充?資料庫故障時邊緣端緩衝可撐多久?
延遲從儀表量測到儀表板顯示的端到端延遲目標(例如 15 秒內)
流量控制每個金鑰的速率限制、批次大小上限、突發流量的處理
文件以 OpenAPI 規格維護,並提供範例請求與錯誤碼表
可觀測性請求量、錯誤率、寫入延遲、死信區筆數、各閘道器最後上線時間
備份與還原資料庫備份頻率、還原演練紀錄、分區表備份方式
相容性版本策略、廢止通知期限

第 5 章:數位孿生——把壓力資料變成可推演的資產模型

「數位孿生」是近年被過度使用的詞,從簡單的 3D 看板到複雜的物理模擬都自稱孿生。對工程師而言,與其爭論定義,不如問一個實際的問題:這個模型能不能回答「接下來會發生什麼」與「如果我這樣做會怎樣」?只能顯示「現在是多少」的,是儀表板;能比對「應該是多少」、「趨勢往哪走」、「改變條件會如何」的,才開始具備孿生的價值。本章以壓力資料為核心,說明如何循序漸進建立有用的資產模型。

5.1 孿生成熟度的四個階段

表 5-1:以壓力資料為基礎的孿生成熟度

階段名稱能力所需資料技術難度
1數位模型資產階層與關係的靜態描述,手動更新主檔資料低
2數位影子資產狀態即時反映現場,單向資料流(現場到模型)即時讀值、品質、告警低至中
3診斷與預測比對預期值、偵測偏離、估算趨勢與到達限值的時間歷史讀值、運轉條件(流量、轉速、溫度)中
4推演與最佳化改變條件進行假設分析,提出建議,必要時回寫控制完整的製程模型、驗證過的物理或統計模型高

多數工廠現階段最有價值、風險也最低的目標是階段 2 到階段 3。階段 4 的「回寫控制」涉及製程安全,需要完整的功能安全評估與責任界定,不建議作為首批專案目標。本文的設計預設為唯讀架構:模型從現場取資料、產生建議,由人決定是否採取行動。

5.2 資產模型:用關係描述系統

孿生的骨架是資產之間的關係。冷卻水迴路不是一堆獨立的壓力點,而是「水源槽 → 泵浦 → 過濾器 → 主管 → 支管 → 負載 → 回水」這條有方向的路徑。把這種上下游關係存進資料庫,才能做到「下游壓力異常時,自動往上游找原因」。

CREATE TABLE asset_links (
  from_asset_id INT UNSIGNED NOT NULL,
  to_asset_id   INT UNSIGNED NOT NULL,
  link_type     VARCHAR(24)  NOT NULL,     -- FEEDS / RETURNS / CONTAINS / MEASURES
  PRIMARY KEY (from_asset_id, to_asset_id, link_type),
  KEY idx_to (to_asset_id)
) ENGINE=InnoDB;

有了這張關係表,API 可以提供「資產狀態」端點,把某個資產及其相關點位、告警、校正狀態彙整成一份文件,孿生模型與儀表板都用這份文件作為輸入:

GET /api/v1/assets/812/state

{
  "asset": { "id": 812, "code": "FAB1-CW-FILTER01", "type": "equipment" },
  "upstream":   [ { "id": 811, "code": "FAB1-CW-PUMP01" } ],
  "downstream": [ { "id": 813, "code": "FAB1-CW-HEADER" } ],
  "measurements": {
    "inlet_p":  { "value": 4.62, "unit": "bar", "quality": 0, "ts": "2026-10-28T03:10:00Z" },
    "outlet_p": { "value": 4.14, "unit": "bar", "quality": 0, "ts": "2026-10-28T03:10:00Z" },
    "delta_p":  { "value": 0.48, "unit": "bar", "derived": true }
  },
  "health": { "score": 82, "status": "WATCH", "reasons": ["delta_p_trend_rising"] },
  "calibration": { "due": "2027-03-15", "overdue": false },
  "alarms": []
}

注意 delta_p 是「衍生量」,由進出口兩個壓力點即時計算,而不是另外裝一個儀表。這是數位孿生很實用的特色:用已有的量測推算出沒有直接量測的量。但衍生量的品質取決於所有輸入的品質,只要任一個輸入品質不良,衍生量就必須標記為不可信。

5.3 預期值模型:先有「應該是多少」,才談得上異常

偵測異常的前提,是知道正常長什麼樣子。最簡單的預期值是固定門檻,但現實中壓力會隨運轉條件變化:泵浦轉速上升,出口壓力隨之變化;流量增加,過濾器壓差也會增加。固定門檻要不就過嚴造成誤報,要不就過鬆漏掉真正的異常。

以過濾器壓差為例,在紊流條件下,壓差大致與流量的平方成正比。要判斷濾網是否變髒,必須先把流量的影響扣掉,換算成「參考流量下的壓差」,才能公平比較不同時間的數據:

ΔP_norm = ΔP_measured × ( Q_ref / Q_measured )²

例:參考流量 Q_ref = 100 m³/h
    今日量測 ΔP = 0.48 bar,流量 Q = 90 m³/h
    ΔP_norm = 0.48 × (100/90)² ≈ 0.593 bar

若沒有流量量測,只能在相對穩定的運轉條件下比較,或使用泵浦轉速與其他壓力作為替代變數建立統計模型。這也說明了一個重要的整合觀念:孿生模型需要的不只是壓力,還有運轉條件,規劃儀表時要把流量、轉速、溫度一併納入考量。

5.4 趨勢外推:估算多久後會到達限值

濾網堵塞、結垢、泵浦磨耗都是漸進式劣化,壓力或壓差會緩慢單調地變化。對這類現象,最簡單也最實用的預測方法,是對正規化後的壓差做線性迴歸,外推何時會到達維護限值。

表 5-2:過濾器壓差趨勢外推範例(數字為示意)

項目數值說明
60 天前正規化壓差0.35 bar剛更換濾網時的基準
目前正規化壓差0.80 bar經流量正規化後
平均上升速率(0.80 − 0.35) ÷ 60 = 0.0075 bar/天線性假設
維護限值1.20 bar依濾網規格與系統允許壓損設定
預估到達限值天數(1.20 − 0.80) ÷ 0.0075 ≈ 53 天建議在約 70% 的剩餘時間時開立維護工單

線性外推有明顯的限制:堵塞速度常常隨時間加速(越堵越快),所以應同時監控上升速率本身的變化,一旦發現斜率明顯變大,就要縮短預估時間。另外,預測應該附帶信賴區間,並在資料不足、品質不良比例偏高時,主動表示「無法預測」,而不是輸出一個看似精確的錯誤答案。

5.5 從規則到統計,再到機器學習

表 5-3:異常偵測方法的選擇

方法做法優點限制建議使用時機
固定門檻高高、高、低、低低限值簡單、可解釋、符合現場慣例無法適應運轉條件變化第一階段,所有點位都應設定
變化率單位時間內壓力變化超過門檻能抓到突發事件(洩漏、爆管、閥門誤動作)對緩慢劣化無感搭配固定門檻使用
滾動統計與過去 N 天同時段的平均與標準差比較(如 z 分數、EWMA)能適應日週期與季節需要足夠歷史資料、需調參累積一到三個月資料後
殘差分析以運轉條件預測壓力,比對實測與預測的差排除運轉條件影響,靈敏度高需要可靠的運轉條件資料與模型驗證具備流量、轉速等輔助量測後
機器學習非監督式異常偵測或預測性模型能處理多變數複雜關係需要大量標註或乾淨資料,可解釋性較差,維護成本高前述方法已穩定運作,仍有明確缺口時

經驗法則:先把固定門檻與變化率做好,兩者已經能涵蓋大多數公用系統的重大異常。在沒有足夠乾淨資料、沒有可信的運轉條件量測之前,直接跳到機器學習,往往只是把資料品質問題包裝成演算法問題。

5.6 泵浦與管路:用壓力推算水頭與效率線索

在水系統中,壓力可以換算成水頭(以水柱高度表示),用來與泵浦特性曲線比對。對於水,1 bar 約等於 10.2 公尺水柱:

H(公尺水柱)= ΔP / (ρ × g)

水(ρ ≈ 1000 kg/m³,g ≈ 9.81 m/s²):
1 bar = 100,000 Pa → H ≈ 100,000 / (1000 × 9.81) ≈ 10.2 m

泵浦出口壓力減去入口壓力,得到泵浦實際提供的揚程。若在相同轉速與流量下,揚程相比過去明顯下降,可能代表葉輪磨耗、內部洩漏或入口吸入條件不佳。入口壓力過低則要留意空蝕(Cavitation)風險,需要核對有效吸入水頭是否大於泵浦所需。這些判斷都只需要最基本的進出口壓力量測,卻能提供很高的診斷價值,這也是為什麼泵浦進出口永遠是壓力量測的優先點位。

5.7 孿生所需點位:用途決定量測

表 5-4:常見孿生應用與所需量測點

孿生應用必要量測建議輔助量測主要輸出
泵浦健康入口壓力、出口壓力電流或功率、轉速、流量揚程趨勢、空蝕風險、劣化提示
過濾器壽命濾網前後壓力流量、溫度(黏度影響)正規化壓差、剩餘天數估算
管網洩漏偵測多個節點壓力流量、閥門開度壓力下降事件定位、疑似洩漏區段
壓縮空氣系統空壓機出口、主管、末端壓力流量、露點、電力壓降分析、供氣穩定度、節能機會
潔淨室壓差各區與走廊的差壓溫濕度、風量壓差級聯狀態、濾網負荷、門開啟事件影響
水箱與儲槽液位(靜壓式)進出流量庫存估算、補水預測

5.8 孿生的呈現:給人看的與給機器用的

孿生的呈現不需要華麗的 3D。工程師真正需要的,是能快速理解的資產狀態圖:用系統流程圖呈現上下游關係,每個節點用顏色表示健康狀態,點擊進入該資產的趨勢、告警與校正資訊。3D 模型在大型設施的導覽、空間定位與簡報展示上有價值,但不應先於資料品質與分析邏輯投入。同時,同一份資產狀態資料也應以機器可讀的 API 形式提供,讓維護管理系統(CMMS)、能源管理系統與報表系統能自動取用,避免資訊孤島。

最後要提醒的是,孿生模型本身也是需要維護的資產。儀表更換、管路改造、泵浦汰換,都必須同步更新資產關係與參數,否則模型會悄悄地與現場脫節。建議把「模型更新」納入工程變更管理流程,任何現場變更單都必須包含對孿生資料的檢視項目。

第 6 章:昶特 ATLANTIS 產品與三層導入配置

前五章討論的是資料鏈的設計。回到儀表層,昶特 ATLANTIS 擁有 31 年的壓力錶、溫度計與相關儀表製造經驗,產品線涵蓋機械式與數位式壓力錶、壓力開關、壓力傳送器、差壓、液位與溫度儀表。下面整理與 IT/OT 整合最相關的幾個系列,並說明如何依資料鏈需求搭配。再次強調:以下內容用於選型參考,實際的量程、精度、輸出選項、防護等級與防爆認證,請以最新規格書與報價內容為準,昶特產品採報價制。

責任界線再確認:昶特提供儀表與標準輸出介面,不提供雲端平台、AWS 或其他資料庫整合服務。客戶需自行(或委託系統整合商)把儀表輸出接入自己的邊緣設備、資料庫與應用系統。我們樂於在選型階段提供輸出介面、量程與環境適用性的建議,讓您的整合團隊有明確的規格可以依循。

6.1 產品介紹與整合角色

昶特ATLANTIS DPG-X112 高精度藍芽數位壓力錶

圖 6-1:ATLANTIS DPG-X112 高精度藍芽數位壓力錶——現場讀值與巡檢設定,並可依訂購規格搭配類比輸出

DPG-X112 高精度藍芽數位壓力錶的特色是現場大螢幕顯示與藍芽功能,適合需要巡檢人員在現場用手機讀值與設定的場合。依官網產品目錄,本系列提供 4–20mA/0–10V 輸出選項並可選配 HART 通訊(實際可選配置以規格書與報價為準)。在資料鏈中,它可以同時扮演兩個角色:現場可視化的儀表,以及透過類比輸出進入 PLC 或遠端 I/O 的資料源。

昶特ATLANTIS DPG-X002 高精度數位壓力錶

圖 6-2:ATLANTIS DPG-X002 高精度數位壓力錶——高精度顯示,支援 4–20mA 與 485 通訊選項

DPG-X002 高精度數位壓力錶在產品目錄中標示支援 4–20mA 與 485 通訊,具備數據記錄功能,適合需要較高精度、並希望以 RS485 掛載多台的製程壓力監測與能效管理點位。若您的資料庫設計需要讀取診斷資訊,建議在選型時一併向我們索取暫存器對照表。

昶特ATLANTIS SDPT-3100 HART智能型壓力傳送器

圖 6-3:ATLANTIS SDPT-3100 HART 智能型壓力傳送器——4–20mA/0–10V 輸出與 HART 通訊,適合遠端診斷

SDPT-3100 HART 智能型壓力傳送器在目錄中標示 4–20mA/0–10V 雙輸出、支援 HART 通訊與遠端診斷,防護等級為 IP67,可直接安裝於管線。對於已經有 4–20mA 迴路的既有系統,HART 能在不改線的前提下,取得設備組態與診斷資訊,是 IT/OT 整合中「增值而不大改」的選項。

昶特ATLANTIS SLPTX 數位式HART液位傳送器

圖 6-4:ATLANTIS SLPTX 數位式 HART 智能型液位傳送器——靜壓式液位量測,適合儲槽與水池

SLPTX 數位式 HART 智能型液位傳送器採用靜壓式液位量測原理,輸出 4–20mA/0–10V,防護達 IP68 可浸沒使用。液位資料與壓力資料同屬靜壓量測的延伸,進入同一套資料表與 API 的成本幾乎為零,非常適合在試點成功後把儲槽與水池納入同一套孿生模型。

昶特ATLANTIS DPG-X3.0 數位壓力錶

圖 6-5:ATLANTIS DPG-X3.0 系列——微差壓與過濾器壓差監測方向,現場可視化

DPG-X3.0 系列在產品目錄中定位於微小差壓的量測,應用方向包括無塵室壓差與過濾器壓差監測。前面第 5 章的「過濾器壽命」孿生應用,正是以這類差壓量測作為核心輸入。如需把讀值接入資料庫,請於選型時確認該型號是否提供您需要的輸出方式。

昶特ATLANTIS DPS-ED3.0 數位壓力開關

圖 6-6:ATLANTIS DPS-ED3.0 數位壓力開關——設定點與連鎖保護,補足資料鏈的本地安全動作

DPS-ED3.0 數位壓力開關用於泵浦保護、低壓與高壓連鎖等「需要在本地立即動作」的場合。這裡有一個重要的設計觀念:安全連鎖不應依賴資料庫與網路。資料鏈(儀表到 API)是用來監看與分析,真正攸關設備與人員安全的保護動作,應由本地的壓力開關、PLC 或安全控制器獨立完成,網路斷線不能影響保護功能。

6.2 產品與資料鏈角色對照

表 6-1:ATLANTIS 產品與 IT/OT 整合角色對照(輸出選項以規格書為準)

產品系列量測類型目錄所列輸出或通訊在資料鏈中的角色
DPG-X112壓力(數位壓力錶)藍芽;4–20mA/0–10V,可選 HART現場可視化加類比資料源
DPG-X002壓力(高精度數位壓力錶)4–20mA/485 通訊高精度製程點位、RS485 多點
SDPT-3100壓力或差壓傳送器4–20mA/0–10V、HART關鍵點位、遠端診斷
SLPTX液位(靜壓式)4–20mA/0–10V儲槽與水池資料源
DPG-X3.0 系列微差壓、壓差依型號而定,請洽詢確認過濾器與潔淨室壓差
DPS-ED3.0壓力開關開關接點、設定值本地保護連鎖,不依賴網路

更多型號可參考昶特工業儀表完整產品目錄,也可以使用壓力錶選型精靈快速縮小範圍;若想比較數位壓力錶的精度、量程、解析度與輸出差異,請見數位壓力錶選型對照表。

6.3 三層導入配置

不同規模與成熟度的工廠,適合不同的導入深度。以下三層配置是從實務經驗整理出來的建議,您可以從基礎層開始,逐步升級。

表 6-2:基礎、進階、企業三層導入配置

項目基礎層進階層企業層
目標讀值上線、基本趨勢與告警診斷、衍生量、資產狀態孿生推演、跨系統整合、全廠複製
點位規模10–30 點30–200 點200 點以上
儀表配置數位壓力錶加 4–20mA 輸出,關鍵點加壓力開關加入 RS485 或 HART 傳送器,補充流量、溫度、液位完整點位矩陣,關鍵設備冗餘量測
邊緣層單一閘道器,唯讀採集多閘道器,本地緩衝與事件觸發取樣高可用閘道器,邊緣端預處理
資料層單台 MySQL,讀值表分區MySQL 主從、分鐘彙總、tag_latestMySQL 加時序資料庫,分層保存策略
API 層基本讀寫端點資產狀態、告警管理、權限分級完整 OpenAPI、事件推送、與 CMMS 與能源系統整合
孿生層階段 1 至 2:資產階層與即時狀態階段 3:預期值、趨勢外推、健康指標階段 3 至 4:假設分析與最佳化建議(唯讀)
建議時程4–8 週3–6 個月6–18 個月,分階段

6.4 選型時要先問的八個問題

  1. 這個點位的資料要進資料庫嗎?還是只需要現場讀值?
  2. 現場已有 PLC 或遠端 I/O 嗎?它的類比輸入解析度夠嗎?
  3. 點位密集嗎?是否適合用 RS485 一條匯流排掛多台?
  4. 是否需要讀取儀表診斷資訊(HART 或 RS485 暫存器)?
  5. 量程是否涵蓋正常運轉與最大過載?正常壓力是否落在量程的 30%–70% 之間?
  6. 介質、溫度、震動與防護等級(粉塵、潮濕、沖洗)有什麼要求?
  7. 是否位於防爆區域,需要特殊認證?
  8. 校正週期與追溯要求為何?校正資料是否要匯入資料庫?

量程選擇尤其值得多花時間。量程過大,正常運轉落在量程前段,解析度與相對精度都會變差;量程過小,一旦過載就可能損壞感測元件。一般建議正常工作壓力落在量程的三分之一到三分之二之間,並確認最大瞬間壓力不超過過載耐壓。

第 7 章:情境推演與效益評估方法

B2B 的導入決策最終都要回答一個問題:投入值不值得?本章提供一套不依賴單價、可由您自行代入數字的效益評估框架,並以三個推演情境說明資料鏈在不同場景下能帶來哪些改變。

重要聲明:本章的三個情境是依常見工廠狀況設計的推演範例,用來示範評估方法,不是特定客戶的實際導入成果。其中的數字皆為假設值,請以您自己的現場數據替換。昶特產品採報價制,本章不涉及任何金額,效益以工時、次數與比例表達。

7.1 效益的五個來源

表 7-1:資料鏈導入的效益類型與衡量方式

效益類型怎麼發生衡量指標資料來源
巡檢工時節省自動採集取代人工抄表,保留抽查每年節省工時點檢表、排班紀錄
非計畫停機減少提前偵測劣化與異常停機次數與總時數設備停機紀錄
能源與耗材節省發現壓力設定過高、洩漏、過度更換耗電、補水量、耗材更換次數能源系統、採購紀錄
品質損失減少壓力或壓差異常即時示警,避免批次受影響報廢或重工比例品質系統
稽核與追溯效率電子化資料、校正紀錄集中管理稽核準備工時、缺失項目數稽核報告

7.2 評估公式

年度總效益 = 工時節省 + 停機損失減少 + 能源耗材節省 + 品質損失減少 + 稽核效率
年度總成本 = 儀表與周邊設備攤提 + 系統建置與維運 + 校正與維護
投資回收期(月)= 初期投入 ÷ (年度總效益 − 年度總成本)× 12
投資報酬率 = (年度總效益 − 年度總成本)÷ 初期投入

評估時有一個常見的偏誤:把所有效益都歸功於新系統。比較誠實的做法是只計入可以明確歸因的效益,並對不確定性高的項目(例如避免的停機)採保守估計,同時列出「悲觀、基準、樂觀」三種情境,讓決策者看到風險範圍。

7.2.1 工時節省的算法示範

工時節省是最容易量化、最少爭議的效益,建議作為評估的基礎。假設某廠區有 40 個機械壓力錶需要每日巡檢:

表 7-2:巡檢工時節省計算範例(假設值)

項目假設計算
每日巡檢班次3 班—
每點讀值與記錄時間1.5 分鐘(含走動)40 點 × 1.5 分鐘 = 60 分鐘/班
每日巡檢總時間—3 班 × 60 分鐘 = 180 分鐘 = 3 小時
每年巡檢總時數365 天3 × 365 = 1,095 小時
導入後保留抽查比例20%—
每年節省工時—1,095 × (1 − 0.2) = 876 小時

這 876 小時並不代表人力裁減,而是巡檢人員可以轉去做更有價值的事:處理告警、做預防保養、執行校正。把「節省的時間」轉化為「更高價值的工作」,才是這類導入真正的效益所在。

7.3 情境一:冷卻水迴路的壓力與壓差監測(推演)

情境背景:一個中型廠區的冷卻水系統,包含兩台並聯泵浦、一組過濾器、主管與六條支管,目前以機械壓力錶人工巡檢,每班記錄一次。

常見痛點:泵浦切換時的壓力瞬降不被記錄;過濾器壓差只在每週保養時才看;支管流量不均導致部分負載偏熱,但無法判斷源頭。

建議的資料鏈範圍:泵浦進出口各一點、過濾器前後各一點、主管一點、六條支管末端各一點,共約 15 點,取樣 30 秒,事件觸發時 1 秒。孿生層建立「泵浦到過濾器到主管到支管」的資產關係。

表 7-3:情境一的推演目標與可驗證指標(目標值為假設,需以現場基線驗證)

指標導入前(基線,需實測)導入後的推演目標驗證方式
泵浦切換壓力瞬降的記錄率幾乎無記錄100% 可追溯事件檢視事件觸發資料
過濾器更換時機判斷依固定週期依正規化壓差趨勢,提前約 2–3 週預警比對預測與實際更換時點
支管壓力失衡的定位時間數小時,需人員現場排查縮短到數十分鐘內可指向疑似區段統計歷次事件處理時間
巡檢工時以表 7-2 方法實測降低約 70–80%(保留抽查)排班紀錄比較

7.4 情境二:壓縮空氣系統的壓降與穩定度(推演)

情境背景:廠內壓縮空氣由多台空壓機供應,主管延伸到各產線,末端壓力不足時,產線氣動設備動作變慢或停頓。

常見痛點:空壓機出口壓力設定偏高以「保險」,造成耗能;各產線末端的壓降無人掌握;洩漏長期存在卻難以量化。

建議的資料鏈範圍:空壓機出口、儲氣槽、主管幹線數處、各產線入口末端,共約 12–20 點。這個情境的關鍵洞察是:壓力設定每降低一些,壓縮機耗能就會相應下降,但前提是末端壓力仍然穩定在需求之上。只有同時看見出口與末端壓力的長期資料,才敢放心調整設定值。

  • 用壓降資料找出「主管瓶頸」:出口與末端壓差過大的區段,通常有管徑不足、過濾器堵塞或洩漏。
  • 用夜間與假日的壓力下降速率估算洩漏:無生產期間壓力仍持續下降,代表系統存在洩漏。
  • 用事件資料連結產線動作與壓力波動,找出突發大量用氣的設備。

7.5 情境三:潔淨室過濾器壓差與孿生預測(推演)

情境背景:潔淨室的風機過濾單元與高效率過濾器,需要維持房間與走廊之間的壓差級聯,濾網堵塞會影響風量與壓差。

建議的資料鏈範圍:各區與走廊的微差壓量測、主要過濾器前後差壓、搭配溫濕度,約 20–40 點。孿生層採用第 5 章的正規化壓差與趨勢外推,對每一組過濾器估算剩餘壽命,並把更換排程與生產排程整合,避免在關鍵批次期間被迫停機更換。

此情境對資料品質與稽核追溯的要求特別高:壓差紀錄常屬於品質文件,需要時間戳記可靠、資料不可竄改、告警與確認動作都有紀錄。因此 API 層的稽核紀錄與資料庫的備份策略,在這個情境下是必要條件而非加分項。

7.6 敏感度分析:哪些假設最影響結果

表 7-4:效益評估的敏感度檢視

假設影響程度建議處理
非計畫停機減少次數高以歷史停機紀錄為基準,採保守估計,不重複計入多重原因
巡檢保留比例中依品質與法規要求設定,不要假設完全取消人工
資料可用率高以試點期間實測的資料完整率為準
告警誤報率高誤報過高會讓整套系統失去信任,需預留告警調校時間
系統維運人力中至高明確指定維運責任人,納入成本

三個反思問題可以幫助您檢視評估是否紮實:第一,這項效益是否有可驗證的基線數據?第二,如果效益只達預期的一半,專案還值得做嗎?第三,誰負責在導入後持續追蹤這些指標?如果三個問題都答得出來,這份評估才經得起管理層的檢視。

第 8 章:資安、導入時程與驗收清單

IT/OT 整合最大的風險不在技術,而在「把原本隔離的控制網路接上了外部世界」。一次疏忽的設定,可能讓資料庫的漏洞變成產線停擺的入口。本章整理資安設計原則、分階段導入時程、驗收清單與常見故障排查表,協助您把專案做得穩。

8.1 資安設計原則

表 8-1:IT/OT 整合的資安控制措施

面向建議措施為什麼
網路分區依 IEC 62443 的區域與管道觀念,把儀表與控制網路、邊緣層、企業網路分開,區域之間只開放必要的連線限制單一入侵點的擴散範圍
資料方向採集一律唯讀;資料由內往外送,不開放外部連入控制網路避免外部攻擊者透過資料鏈操作現場設備
DMZ在控制網路與企業網路之間設置緩衝區,接收服務放在 DMZ讓高風險的對外服務與控制網路隔離
身分與憑證閘道器使用專屬金鑰或憑證,可獨立撤銷;人員使用企業身分提供者與多因素驗證降低憑證外洩的影響範圍
傳輸加密全程 TLS,MQTT 啟用 TLS 與帳號權限控制防止竊聽與竄改
密鑰管理不將密碼與金鑰寫入程式碼或設定檔,使用密鑰管理服務或環境保護機制避免程式碼外流造成金鑰洩漏
修補與漏洞管理資料庫、作業系統、閘道器韌體定期更新,更新前先在測試環境驗證工業環境的更新需謹慎,但不可長期不更新
稽核與監控集中收集存取日誌與變更紀錄,對異常登入與異常流量告警事後調查與即時偵測
備份與還原定期備份並實際演練還原勒索軟體與誤操作的最後防線
實體安全閘道器與交換器置於上鎖機櫃,停用未使用的埠防止現場直接接入

藍芽與無線的提醒:藍芽功能很方便,但會增加現場無線攻擊面。若儀表具備藍芽,建議在不需要時關閉,或啟用配對保護,並在資安政策中明確規範誰可以在現場連線與修改設定。

8.2 責任矩陣:誰負責什麼

專案失敗常常卡在「這件事到底誰管」。建議在專案啟動時就用責任矩陣把各項工作的負責人講清楚:

表 8-2:IT/OT 整合專案責任矩陣(範例)

工作項目儀表供應商(昶特)OT/廠務IT/資料團隊系統整合商
儀表選型建議與規格提供主責協作—協作
現場安裝、接線、迴路測試技術諮詢主責—協作
儀表校正與維護提供校正資訊與建議週期主責——
邊緣層採集與換算提供通訊規格協作協作主責
資料庫與 API 建置—需求提出主責協作
告警規則與門檻設定提供量測與規格建議主責協作協作
資安政策與審查—協作主責協作
孿生模型建置與維護—提供製程知識主責協作

8.3 分階段導入時程

表 8-3:試點專案八週時程範例

週次工作內容產出
第 1 週確認目標系統、痛點與成功標準;現場勘查;盤點既有 PLC、I/O 與網路需求說明、點位初稿
第 2 週儀表選型與規格確認、通訊規格卡、點位命名規則定案點位清單、規格卡、命名規範
第 3–4 週儀表安裝、接線、迴路測試;邊緣閘道器佈建;資料庫與 API 開發迴路測試紀錄、測試環境上線
第 5 週端到端測試:以標準器比對現場讀值與資料庫讀值比對報告、偏差分析
第 6 週告警門檻初調、儀表板與資產狀態頁建立第一版儀表板、告警規則
第 7 週平行運行:自動資料與人工抄表並行,統計差異與資料完整率資料品質報告
第 8 週驗收、教育訓練、維運交接、規劃下一階段驗收報告、維運手冊

8.4 驗收清單

  • 每一個點位都有完整的主檔資料:點位名稱、資產關聯、儀表序號、量程、單位、校正日期。
  • 端到端比對:同一時刻,現場標準器讀值、儀表顯示、資料庫讀值三者差異在規定誤差預算內。
  • 斷線與故障測試:模擬 4–20mA 斷線、RS485 離線,確認品質代碼正確且不產生假壓力值。
  • 網路中斷測試:拔掉對外連線一段時間,確認邊緣緩衝運作,恢復後補傳完整且順序正確、不覆蓋較新資料。
  • 重複送資料測試:同一批資料送兩次,確認資料庫不重複、最新值表不被舊資料覆蓋。
  • 權限測試:唯讀帳號無法寫入,閘道器金鑰無法查詢其他資料,撤銷金鑰立即生效。
  • 時間同步:閘道器與伺服器的時間偏移在容許範圍內,並有監控。
  • 備份與還原演練:實際從備份還原一次並驗證資料。
  • 告警測試:每一類告警都實際觸發並確認通知、確認、關閉流程。
  • 文件齊備:網路圖、資料流圖、API 文件、通訊規格卡、維運手冊、緊急聯絡人。

8.5 常見問題排查表

表 8-4:現場常見現象、可能原因與檢查方向

現象可能原因檢查方向
讀值與現場錶頭差一個固定偏差零點偏移、取壓位置高度差、換算參數設定錯誤確認量程設定、單位、取壓點高度;以標準器比對
讀值是離譜的大數字或負數浮點數字組順序解析錯誤核對暫存器對照表,嘗試切換字組順序
某幾台儀表偶爾通訊逾時匯流排終端電阻缺失、屏蔽接地不良、位址衝突、鮑率設定不一致檢查終端電阻、接地、位址表與通訊參數
讀值有規律的鋸齒或跳動電氣干擾、變頻器雜訊、取壓管內有氣泡或脈動檢查屏蔽與走線;現場確認取壓管排氣;評估阻尼或平均
數值長時間完全不變邊緣程式卡住、儀表凍結、取壓孔堵塞檢查疑似卡值告警;對照鄰近點位;現場檢查取壓管
資料庫出現未來時間的資料閘道器時鐘錯誤檢查 NTP 同步;啟用 API 的未來時間檢查
斷線重連後最新值變成舊資料最新值表未判斷時間戳記先後採用第 3.6 節的條件式更新
儀表板很慢查詢直接掃描原始大表、缺少彙總、索引使用不當改用彙總表與最新值表;檢查執行計畫
告警一直反覆開關沒有延遲確認與遲滯加入 on-delay 與 deadband

8.6 持續維運:資料鏈不是裝好就結束

整合專案上線後,維運才真正開始。建議建立固定的檢視節奏:每日檢視各閘道器最後上線時間與資料完整率,每週檢視死信區與告警品質(誤報與漏報),每月檢視分區與容量、備份驗證,每季檢視校正到期清單與告警門檻是否仍合理,每年檢視資安政策、使用者權限與整體架構是否需要調整。校正管理尤其重要:儀表的精度會隨時間漂移,過期未校正的儀表所產生的資料,品質再高的資料鏈也無法彌補。

第 9 章:20 個常見問題 FAQ

以下整理工程師、IT 團隊與採購在規劃數位壓力錶、MySQL、API 與數位孿生整合時最常提出的問題。點擊問題即可展開答案。

❓ Q1: 數位壓力錶可以直接把資料寫進 MySQL 嗎?

不行,中間一定需要一層「邊緣」。儀表本身只輸出 4–20mA、0–10V、RS485 或 HART 這類現場訊號,不會自己連到資料庫。實務上由 PLC、遠端 I/O 或 Modbus 閘道器負責採集、換算工程單位、加上時間戳記與品質標記,再透過 MQTT 或 HTTPS 送到接收服務,最後寫入 MySQL。

這個邊緣層的好處是把現場可靠度與資料庫維運分開,資料庫維護或網路中斷時,邊緣端仍可本地緩衝,不會遺失資料。

❓ Q2: 昶特 ATLANTIS 有提供雲端、AWS 或資料庫整合服務嗎?

沒有。昶特提供的是現場儀表(數位壓力錶、壓力傳送器、液位與溫度儀表等)以及標準的輸出介面與規格資料。邊緣設備、資料庫、API、雲端平台與數位孿生,需由客戶自己的 IT 團隊或系統整合商建置。

我們可以在選型階段協助您確認輸出介面、量程、環境適用性,並提供通訊規格資料,讓整合團隊有明確依據。

❓ Q3: 4–20mA、RS485 Modbus 與 HART,應該怎麼選?

沒有絕對的好壞,取決於現場條件。

  • 已有 PLC 或 DCS、點位分散:4–20mA 最通用,抗干擾佳,可偵測斷線。
  • 點位密集、希望減少佈線、需要讀取診斷資料:RS485 Modbus 一條匯流排可掛多台。
  • 已有 4–20mA 迴路、想在不改線下取得設備診斷與遠端組態:HART。
  • 兩種並用也很常見:4–20mA 供控制系統使用,另以數位通訊讀取診斷與組態。
❓ Q4: 藍芽數位壓力錶可以當作資料庫的主要資料來源嗎?

不建議。藍芽適合巡檢人員用手機在現場讀值、設定與抽查,但距離、穩定性與連續性都不適合作為全廠資料主幹,也會增加無線攻擊面。要進入資料庫的點位,應以 4–20mA、RS485 或 HART 等有線介面為主,藍芽作為現場輔助功能。

❓ Q5: 壓力資料的取樣週期要設多快?

依現象的變化速度而定。冷卻水、空調、壓縮空氣等公用系統的壓力變化多為分鐘等級,30 至 60 秒取樣已足夠。泵浦起停、水錘、液壓脈動等快速事件,則需要秒級甚至更快的取樣。

  • 平時以 30–60 秒記錄趨勢。
  • 壓力變化率超過門檻或越過告警線時,自動切換為 1 秒記錄並保留前後緩衝。
  • 事件結束後降回低頻,避免資料量無謂膨脹。
❓ Q6: MySQL 撐得住工業壓力資料嗎?

在合理的規模下可以。點位數百到數千、取樣週期 10 秒以上時,MySQL 8 搭配依時間分區的讀值表、批次寫入、最新值表與分鐘彙總表,通常足以應付。

若點位數達數千以上且需高頻取樣與大量長期時序分析,可考慮把歷史讀值搬到時序資料庫,MySQL 保留資產、校正與告警等關聯資料。因為有 API 層隔離,這種搬遷不需要改動應用端。

❓ Q7: 為什麼要多一層 API,而不是讓儀表板直接連資料庫?

直接連資料庫短期省事,長期會造成權限難以控管、不同工具的查詢互相拖累、資料表結構一改所有下游都壞。API 層提供一份穩定的契約:可以做驗證與授權、限制單次查詢範圍保護資料庫、依區間自動選擇原始或彙總資料、留下稽核紀錄,資料庫內部也能自由演進。

❓ Q8: 網路重送或補傳資料時,如何避免資料重複?

以資料庫主鍵與請求冪等設計處理。讀值表的主鍵採用(點位、測量時間),同一筆資料重送時,用 ON DUPLICATE KEY UPDATE 覆寫而不會新增重複列。寫入端點另可支援 Idempotency-Key,相同請求只處理一次。

最新值表則需要加上時間戳記先後判斷,避免補傳的舊資料覆蓋較新的最新值。

❓ Q9: 網路或資料庫中斷時,資料會不會遺失?

只要邊緣端設計了本地緩衝就不會。邊緣閘道器應把待送資料暫存於本地儲存,連線恢復後依序補傳,並以指數退避避免瞬間灌爆接收服務。需要事先評估緩衝容量,確認能撐過預期的最長中斷時間,並在驗收時實際拔線測試。

❓ Q10: 如何分辨是儀表壞了,還是壓力真的很低?

4–20mA 的活零點設計正是為此而生。壓力為零時電流是 4 mA,不是 0 mA;若量到低於約 3.6 mA 或高於約 21 mA,依 NAMUR NE43 的建議通常視為迴路故障(斷線、短路、感測器失效)。

邊緣端應先判斷電流是否在合理範圍,超出時把資料標記為 BAD_SENSOR,而不是直接換算成一個看似正常的壓力值。數位通訊的儀表也可讀取自身診斷旗標。

❓ Q11: 校正週期與資料庫有什麼關係?

校正狀態是資料品質的一部分。建議在資料庫建立校正紀錄表,記錄校正日期、偏差、證書編號與下次到期日,並讓 API 的資產狀態端點一併回傳校正是否逾期。逾期儀表所產生的資料可以被標記,分析與稽核時就能判斷該採信多少。校正週期本身則依儀表精度等級、使用環境與品質系統要求決定。

❓ Q12: 數位孿生一定要有 3D 畫面嗎?

不需要。對工程師而言,孿生的價值在於能比對預期值、判斷趨勢與推演情境,而不在於畫面是否華麗。用系統流程圖呈現上下游關係、以顏色標示健康狀態,已能滿足大多數維運需求。3D 在大型設施導覽與簡報上有價值,但應在資料品質與分析邏輯穩定之後再投入。

❓ Q13: 數位孿生可以直接回寫、控制現場設備嗎?

技術上可行,但不建議作為第一批專案目標。回寫控制牽涉製程安全、功能安全評估與責任界定。比較穩健的做法是先建立唯讀的孿生:模型從現場取資料、產生診斷與建議,由人決定是否採取行動。待資料與模型長期驗證可靠,再依風險評估逐步考慮有限度的自動化。

❓ Q14: 預測性維護需要累積多少資料才有意義?

視方法而定。固定門檻與變化率告警不需要歷史資料,上線即可使用。滾動統計與殘差分析,通常需要至少數週到數個月涵蓋不同運轉條件與季節的乾淨資料。機器學習方法需要的資料量與資料品質要求更高。

對漸進式劣化(濾網堵塞、結垢),只要有穩定的正規化壓差資料,數週的趨勢就足以做線性外推的初步預估,並隨資料累積持續修正。

❓ Q15: 壓力量測點位(Tag)要怎麼命名?

建議採用固定層級、句點分隔的命名,例如「廠區.系統.設備.量測意義」:FAB1.CW.PUMP01.DISCH_P。命名規則在專案初期就要定案並文件化,並規範縮寫、大小寫與單位表示方式。同時把點位與資產、儀表分成不同資料表,儀表更換時點位與歷史資料才不會中斷。

❓ Q16: 安全連鎖可以仰賴這套資料庫與 API 系統嗎?

不可以。資料鏈用於監看、分析與預警,不是安全保護系統。攸關人員與設備安全的連鎖動作,必須由本地的壓力開關、PLC 或安全控制器獨立完成,網路中斷、資料庫維護或軟體故障都不能影響保護功能。資料鏈上看到的告警,是輔助而非取代本地保護。

❓ Q17: 時區與時間同步要怎麼處理?

全系統一律儲存 UTC 時間,僅在顯示層轉換為本地時區,避免日光節約時間與跨地區的混淆。邊緣端在採集當下打上時間戳記,而不是等入庫時才補。閘道器與伺服器都應同步到可靠的時間源,並監控時間偏移。資料表另可保留「測量時間」與「接收時間」兩個欄位,兩者差距本身就是一項有用的健康指標。

❓ Q18: 量程要怎麼選,才不會浪費解析度?

一般建議正常工作壓力落在量程的三分之一到三分之二之間,並確認最大瞬間壓力不超過儀表的過載耐壓。量程過大,正常值落在量程前段,解析度與相對精度都會變差;量程過小,過載時可能損壞感測元件。同時要讓類比輸入模組的解析度與儀表精度相匹配,避免整體精度被轉換環節拖累。

❓ Q19: 第一次導入,建議從哪裡開始、需要多久?

建議選一個有明確痛點的公用系統當試點,例如冷卻水迴路、壓縮空氣或過濾器壓差,規模 10 至 30 點,約四到八週完成選型、施工、資料驗證與告警調校。重點是打通「儀表到 API 到儀表板」的完整鏈路、驗證資料品質與團隊分工,再複製到下一個系統,而不是一開始就想接全廠。

❓ Q20: 要如何取得規格書與通訊資料,並進行詢價?

昶特產品採報價制,請告知量測介質、量程、所需輸出介面(4–20mA、RS485、HART 等)、安裝環境與數量,我們會協助確認適用型號並提供規格書與通訊資料。您可以使用官網的線上詢價表單,或直接聯絡業務一部 Ian、業務二部 Nori,聯絡方式請見本文結尾。

第 10 章:延伸閱讀與相關資源

想進一步了解儀表選型、讀值診斷與各類系統的壓力監測,可以從以下資源繼續閱讀:

結論:從一支儀表開始,建立可信的資料鏈

回顧整條資料鏈,數位壓力錶只是起點,真正決定成敗的是每一層的細節:儀表的量程與精度是否符合需求、訊號換算與品質標記是否嚴謹、資料表是否支援冪等與分區、API 是否提供穩定且安全的契約、孿生模型是否建立在可信的資料與合理的預期值之上。

我們建議的路徑是:選一個有明確痛點的系統做試點,用最小的範圍打通完整鏈路;先做好固定門檻與變化率告警,再逐步加入正規化壓差、趨勢外推與資產關係;永遠把安全連鎖留在本地,把資料鏈定位為監看與分析;並且清楚劃分各方責任,讓昶特專注在儀表端的可靠度,讓您的團隊掌握資料與應用端的自主性。

再次說明,昶特 ATLANTIS 不提供雲端或 AWS 整合服務,但我們樂意在儀表選型、輸出介面與通訊規格上,與您的 IT 與整合團隊一起把需求講清楚,讓整合專案有堅實的起點。

聯絡 ATLANTIS 昶特

想確認適合的數位壓力錶、壓力傳送器與輸出介面,歡迎提供量測介質、量程、安裝環境與數量,我們協助您選型並提供規格資料與報價。