1. 程式人生 > 其它 >iNeuOS工業聯網平臺,實時視窗聚合計算和變化率計算的設計與實現

iNeuOS工業聯網平臺,實時視窗聚合計算和變化率計算的設計與實現

iNeuOS工業網際網路作業系統集成了實時視窗聚合計算和實時資料變化率計算,這是能源行業的使用者在使用的過程中提出來的需求,我們對需求、框架和實現技術進行綜合評審後,最終實現了這個需求。考慮到其他計算的方式,具有很好的擴充套件性。

目 錄

1. 概述... 2

2. 應用場景... 2

3. 設計實現... 2

1.1 自定義時鐘... 3

1.2 服務驅動時鐘視窗事件... 4

1.3 實時計算... 4

4. 應用效果... 5


1. 概述

iNeuOS工業網際網路作業系統集成了實時視窗聚合計算和實時資料變化率計算,這是能源行業的使用者在使用的過程中提出來的需求,我們對需求、框架和實現技術進行綜合評審後,最終實現了這個需求。考慮到其他計算的方式,具有很好的擴充套件性。

能夠實現的路徑有很多,例如比較流行的flink、spark等框架,但是這些框架比較重,另外實現產品化應用需求有一定的技術積累和深度。我們的技術實現與iNeuOS平臺的業務結合更緊密。

2. 應用場景

一般系統使用上下限來對資料進行判斷,但是上下限無法準確判斷資料的變化趨勢。當前資料點的值與過去一般視窗時間範圍的均值進行變化率計算,並且對變化率進行預警判斷,就算當前資料點值在上下限範圍,但是出現數據變化抖動的情況也能準確監測到。例如能源行業,用電、用水、裝置振動等引數進行變化率的監測,能夠準確掌握資料的細節變化。

當然,資料變化監測還有其他方式,例如複合條件邏輯推理、機器學習的資料空間判斷等手段。

3. 設計實現

設計實現包括三部分:自定義時鐘、驅動時鐘視窗事件和實時計算。程式碼部分省略。

1.1 自定義時鐘

一般使用時鐘都是週期性事件觸發,這種週期性的開始和結束取決於時鐘第一次啟動的時間點。

而視窗聚合計算在週期時間間隔的基礎上,還要確定事件觸發的時間點,例如小時視窗的均值計算,00點、01點、…、23點分別要觸發時鐘事件。視窗示意如下圖:

CustomTimer類的Interval屬性代表時鐘的間隔時間和能夠被整除的時間點觸發,CustomTimerManager類可以增加多個不同間隔時間的時鐘,並且進行管理和資源的銷燬。

自定義TimerEventHandler委託事件,傳遞TimerEventArgs自定義類作為引數,其中包括:Interval間隔時間和EventTime當前時鐘觸發的時間。

程式碼類結構,如下圖:

1.2 服務驅動時鐘視窗事件

在服務例項中整合CustomTimer自定義時鐘,並且在自定義事件觸發委託函式中對當前裝置驅動和資料點進行CPU的並行操作,提高執行過程的效率。

程式碼類結構,如下圖:

1.3 實時計算

在裝置驅動完成兩個執行緒的操作:(1)接收時鐘委託事件的觸發,計算小時均值,使用AvgCalculate類完成;(2)實時資料流計算當前資料點值的變化率,使用PreCalculate類完成。這兩個執行緒即相互獨立、但是在計算過程中又有互動,涉及到執行緒之間資料的原子操作。

當然,在裝置驅動中計算過程中還涉及到其他的業務問題,例如計算的結果自動生成新的資料點以及與其他資料點的關係等。

程式碼類結構,如下圖:

4. 應用效果

實際應用過程中只需要配置資料點:是否小時均值計算、是否實時變化率真計算和預警正負偏差等,會在當前裝置驅動自動生成均值資料點和變化率資料點,在業務模型、資產模型、組態建模等工具中應用這些資料。如下圖:

資料查詢,如下圖:


物聯網&大資料技術 QQ群:54256083
物聯網&大資料合作 QQ群:727664080
網站:http://www.ineuos.net
聯絡QQ:504547114
合作微信:wxzz0151
官方部落格:https://www.cnblogs.com/lsjwq
iNeuOS工業網際網路作業系統 公眾號