時(shí)序數(shù)據(jù) - 匠聯(lián)邊緣服務(wù)系統(tǒng)
時(shí)序數(shù)據(jù)功能作為本系統(tǒng)的核心模塊之一,承擔(dān)著設(shè)備運(yùn)行數(shù)據(jù)的實(shí)時(shí)采集、存儲(chǔ)、處理與可視化任務(wù),為上層應(yīng)用(如設(shè)備監(jiān)控、預(yù)測性維護(hù)、能效分析等)提供堅(jiān)實(shí)的數(shù)據(jù)基礎(chǔ)。
1. 技術(shù)架構(gòu)與核心組件
該時(shí)序數(shù)據(jù)功能采用“邊緣采集 + 邊緣存儲(chǔ) + 邊緣計(jì)算 + 本地可視化”的架構(gòu)設(shè)計(jì),確保關(guān)鍵數(shù)據(jù)在本地閉環(huán)處理,降低對(duì)云端的依賴,提升系統(tǒng)響應(yīng)速度與可靠性。
其核心技術(shù)棧主要包括:
InfluxDB 作為時(shí)序數(shù)據(jù)庫引擎:
- 選型原因:InfluxDB 是專為處理高寫入、高查詢負(fù)載的時(shí)序數(shù)據(jù)而設(shè)計(jì)的開源數(shù)據(jù)庫。其針對(duì)時(shí)間序列數(shù)據(jù)的優(yōu)化(如時(shí)間索引、數(shù)據(jù)壓縮、連續(xù)查詢等)使其在工業(yè)場景下表現(xiàn)優(yōu)異。
- 部署模式:在邊緣服務(wù)系統(tǒng)中,部署 InfluxDB 2.x作為本地時(shí)序數(shù)據(jù)存儲(chǔ)的核心。它直接運(yùn)行在邊緣網(wǎng)關(guān)或邊緣服務(wù)器上,實(shí)現(xiàn)數(shù)據(jù)的就近存儲(chǔ)。
- 優(yōu)勢體現(xiàn):
- 高性能寫入:支持每秒數(shù)萬乃至更高的數(shù)據(jù)點(diǎn)寫入,滿足多臺(tái)設(shè)備高頻數(shù)據(jù)采集需求。
- 高效壓縮:顯著降低存儲(chǔ)空間占用,延長邊緣設(shè)備的存儲(chǔ)周期。
- Flux 查詢語言:提供強(qiáng)大的數(shù)據(jù)查詢、聚合與分析能力,支持在邊緣端進(jìn)行復(fù)雜的時(shí)間序列運(yùn)算。
腳本化數(shù)據(jù)處理與保存:
- 核心能力:系統(tǒng)支持用戶通過自定義腳本(JavaScript)來定義數(shù)據(jù)的預(yù)處理、過濾、轉(zhuǎn)換和存儲(chǔ)邏輯。
- 應(yīng)用場景:
- 數(shù)據(jù)清洗:過濾異常值、處理缺失數(shù)據(jù)、單位換算。
- 數(shù)據(jù)聚合:將原始秒級(jí)數(shù)據(jù)聚合成分鐘/小時(shí)級(jí)的統(tǒng)計(jì)值(如平均值、最大值、最小值、標(biāo)準(zhǔn)差)并存入 InfluxDB,減少存儲(chǔ)壓力。
- 事件觸發(fā):當(dāng)數(shù)據(jù)滿足特定條件時(shí)(如溫度超過閾值),執(zhí)行腳本觸發(fā)告警、記錄日志或調(diào)用其他服務(wù)。
- 靈活性與可擴(kuò)展性:通過腳本支持,系統(tǒng)無需修改核心代碼即可適應(yīng)不同客戶、不同設(shè)備的數(shù)據(jù)處理需求,極大地提升了系統(tǒng)的靈活性和可維護(hù)性。
ECharts 作為數(shù)據(jù)可視化引擎:
- 選型原因:ECharts 是百度開源的、功能強(qiáng)大且高度可定制的JavaScript 圖表庫,支持豐富的圖表類型(折線圖、柱狀圖、散點(diǎn)圖、儀表盤、熱力圖等),非常適合用于展示時(shí)間序列數(shù)據(jù)。
- 集成方式:在邊緣服務(wù)系統(tǒng)的 Web 管理界面或本地 HMI(人機(jī)界面)中,集成 ECharts 庫。前端通過調(diào)用邊緣服務(wù)提供的 API(通?;?InfluxDB 的查詢接口或系統(tǒng)自封裝的 RESTful API)獲取 InfluxDB 中的時(shí)序數(shù)據(jù),然后使用 ECharts 進(jìn)行渲染展示。
- 可視化功能:
- 實(shí)時(shí)監(jiān)控:以折線圖等形式實(shí)時(shí)顯示設(shè)備關(guān)鍵參數(shù)(溫度、壓力、轉(zhuǎn)速等)的變化趨勢。
- 歷史回溯:支持按時(shí)間范圍查詢歷史數(shù)據(jù),并以圖表形式展示,便于分析設(shè)備運(yùn)行狀態(tài)。
- 多維度分析:支持在同一圖表中對(duì)比多臺(tái)設(shè)備或多參數(shù)的數(shù)據(jù),或使用多圖表聯(lián)動(dòng)分析。
- 交互性:提供縮放、拖拽、數(shù)據(jù)點(diǎn)提示、圖例開關(guān)等交互功能,提升用戶體驗(yàn)。
- 自定義儀表盤:用戶可自由拖拽組件,構(gòu)建個(gè)性化的監(jiān)控看板。
2. 功能流程概述
- 數(shù)據(jù)采集:邊緣服務(wù)系統(tǒng)通過各種工業(yè)協(xié)議(如 Modbus, OPC UA, MQTT, CAN 等)從現(xiàn)場 PLC、傳感器、儀表等設(shè)備實(shí)時(shí)采集原始數(shù)據(jù)。
- 腳本處理:采集到的原始數(shù)據(jù)流經(jīng)用戶定義的腳本引擎。腳本對(duì)其進(jìn)行清洗、轉(zhuǎn)換、計(jì)算或聚合。
- 數(shù)據(jù)存儲(chǔ):處理后的時(shí)序數(shù)據(jù)被寫入本地部署的 InfluxDB 數(shù)據(jù)庫。數(shù)據(jù)按時(shí)間、設(shè)備標(biāo)簽等組織,便于后續(xù)高效查詢。
- 數(shù)據(jù)查詢:當(dāng)需要展示或分析時(shí),系統(tǒng)向 InfluxDB 發(fā)起查詢請(qǐng)求(
- 數(shù)據(jù)可視化:查詢結(jié)果返回后,前端利用 ECharts 庫將數(shù)據(jù)渲染成直觀的圖表,展示在 Web 界面或 HMI 屏幕上。