一、術語
英文名稱 | 中文名稱 | 說明 |
Asset | 資產 | 是工業設備、流程和設施的數字化表示,它可以是PLC、整個機床、生產線、棍床、汽車、電機等。每個資產都有與其關聯的數據。例如,一套設備可能具有序列號、位置、品牌和型號以及安裝日期。它還可能具有可用性、性能、質量、溫度、壓力等時間序列值。本產品支持空間類和設備類資產數字化管理,以及支持按空間或功能系統結構,進行資產層次管理。 |
AssetCode | 資產編碼 | 是資產的編碼系統,在項目中作為資產的唯一標識符,方便與第三方做對接開發 |
AssetTypeCode | 資產類型編碼 | 資產模型、資產類型 AssetTypeCode)是一個信息模板,資產可以基于模板快速創建。在每個資產模板中,用戶可以配置定義業務屬性、技術屬性(時序)、技術指標(時序轉換或聚合)、資產模板的父子關系、以及資產模板的可視模型(2D/3D)。注意:資產可以基于模板創建,也可以不依賴模板直接添加屬性。 |
AttributeName | 資產屬性 | 是每個資產中包含工業數據的元數據。從數據管理的角度,資產屬性分為四個類別:基礎屬性、管理屬性、業務屬性和技術屬性。業務屬性是具有靜態特征的數據表示,例如設備生產廠家和產品規格型號,業務屬性可以具有默認值,用戶從資產模型創建的每個資產都包含該模型的屬性默認值。技術屬性是具有時序特征的數據表示,比如設備的振動頻率,每個技術屬性都有一個數據類型,并可以有一個單位。 |
AttributeGroupName | 屬性分組名稱 | 用于屬性歸類,便于展示或檢索。 |
AssetIndicator | 資產指標 | 針對技術屬性數據做實時的ETL,主要包括兩個功能,分別是數據轉換和數據統計。 數據轉換:將資產屬性的數據點從一種形式映射到另一種形式的數學表達式。轉換表達式由資產屬性變量、文本、運算符和函數組成。轉換后的數據點與輸入數據點保持一對一的關系。每次當任何輸入屬性接收新數據點時,都會計算一個新的轉換數據點。例如,如果您的資產具有以攝氏度為單位的名為 Temperature_C 的溫度測量流,您可以使用公式 Temperature_F = 9/5 * Temperature_C + 32 將每個數據點轉換為華氏度。 數據統計:使用聚合函數處理所有輸入數據點并按指定時間間隔輸出單個數據點的數學表達式。例如,指標可以從溫度數據流計算每小時平均溫度。 |
View | 數據視圖 | 用于管理用戶編寫的SQL模板,和對執行 SQL后獲取到的數據模型進行配置 |
Widget | 數據圖表 | 依據數據視圖提供的數據模型對SQL結果進行二次聚合分組,然后將二次加工的數據進行可視化編碼。 |
DashBoard | 數據儀表板 | 儀表板提供自動布局和可交互能力,幫助用戶快速打造可視化報表。 |
二、需求描述
分析工廠車間設備能耗情況,分析維度可以是設備資產、資產模型、空間模型、時間。
取能耗比較高的TOP20設備,并且取設備的能耗平均值。
設備的能耗數據是通過PLC點位上報上來,數據類型是float類型,并且數值正常是單調遞增。
三、整體流程
邊緣數采一體機通過驅動程序采集PLC設備數據后,點位原始數據首先會保存到tsdb數據庫,點位數據和資產模型做映射轉換成技術屬性數據,最終會通過mqtt分發出來,其中包括設備能耗的數據。
資產指標會按照技術屬性維度訂閱mqtt數據,用戶可以按照業務需求定義數據轉換或者數據統計公式,技術屬性數據就會按照公式做實時計算。
計算后的資產指標結果數據會統一存儲到ClickHouse,平臺選擇ClickHouse做為平臺實時查詢引擎,該引擎具備寫入效率高、寬表查詢速度快、壓縮比高等特點,可滿足海量OT數據分析場景。
最后平臺提供了易用的BI工具,可以針對指標數據做建模和可視化多維鉆取分析。
四、操作步驟
1、資產指標定義
a、創建設備能耗指標
由于設備的能耗數據是逐漸累加的,并不需要記錄原始能耗值,只需要記錄固定周期內的能耗增量值即可。
因此我們只需要定義一個數據統計類型的能耗指標即可,統計周期比如30分鐘。
設備能耗的增量值只需要填寫這樣的計算公式即可:max(energy)-min(energy)
注意該統計周期是滾動窗口,滾動窗口(TUMBLE)將每個元素分配到一個指定大小的窗口中,滾動窗口有一個固定的大小,并且不會出現重疊。
創建完指標后平臺會自動運行一個實時計算任務,計算后的數據會自動存儲到ClickHouse中。
注意:目前暫時只針對增量的數據做計算,后續會增加功能可以針對某一時間段的技術屬性歷史數據重新針對該公式做計算。
b、查詢設備資產指標值
設備資產里面查詢對應的最新值。
另外可以在數據分析視圖里面通過編寫SQL語句獲取資產指標的各個時間段的值。
c、函數說明
支持的函數功能參考:二、資產指標公式函數說明
2、數據分析
針對資產指標平臺會默認創建一個資產模型數據源,也就是ClickHouse數據源。
所有資產指標的數據都會存儲在該數據源里面,接下來只需要針對該數據源做可視化建模分析即可。
a、數據視圖編輯
數據視圖就是寫SQL方式對資產指標數據做建模,用戶可以靈活編寫SQL來定義模型。
根據資產模型對應的資產指標,雙擊資產指標默認會生成SQL模板
用戶可以按照業務需求調整該SQL模板,平臺提供的是個常用的分析SQL Demo。
數據視圖SQL如下,把資產指標和空間資產、設備資產維度做關聯JOIN分析,生成一個DWD明細寬表。
select asset.assetTypeCode as "設備類型編碼"
,asset.assetTypeName as "設備類型名稱"
,asset.assetCode as "設備編碼"
,asset.assetName as "設備名稱"
-- 可自定義別名, 空間資產第一層級
,asset.level1 as level_1
-- 可自定義別名, 空間資產模型第二層級
,asset.level2 as level_2
-- 可自定義別名,空間資產模型第三層級
,asset.level3 as level_3
-- 可自定義別名, 空間資產模型第四層級
,asset.level4 as level_4
,metric.ts_second as "統計日期(ymdhms)"
,metric.ts_minute as "統計日期(minute)"
,metric.ts_hour as "統計日期(hour)"
,metric.ts_day as "統計日期(day)"
,metric.ts_month as "統計日期(month)"
,metric.ts_year as "統計日期(year)"
,metric.value as "采集值"
from (
select asset_code
,cast(ts / 1000 as DateTime) as ts
,formatDateTime(ts, '%F %T') as ts_second
,formatDateTime(ts, '%F %R') as ts_minute
,formatDateTime(ts, '%F %H') as ts_hour
,formatDateTime(ts, '%F') as ts_day
,formatDateTime(ts, '%G-%m') as ts_month
,formatDateTime(ts, '%G') as ts_year
,value
from (
select *
from FB_ENERGY_Data_Sfere_energySum
)
order by ts desc
) as metric
left join (
select *
from asset_location_view
) as asset
on metric.asset_code = asset.assetCode
;
SQL語法是ClickHouse語法,涉及的函數可以參考:ClickHouse SQL語法
資產指標ClickHouse表結構說明,也就是例子中:FB_ENERGY_Data_Sfere_energySum 結構說明
字段名 | 類型 | 描述 |
asset_code | String | 資產編碼 |
attribute_group_name | String | 技術屬性組名稱 |
attribute_name | String | 技術屬性名稱 |
attribute_code | String | 技術屬性編碼 |
ts | uint64 | 時間戳。 數據轉換類型該字段精度為納秒 數據統計類型該字段精度為毫秒 |
value | Float64/String | 轉換后的值 |
b、數據圖表設計
數據圖表是針對數據視圖用多樣的可視化組件展現,比如柱狀圖、表格、折線圖等。
c、數據應用開發
數據應用就是按照業務訴求把圖表關聯進來。
默認展示的是總的維度,平臺的BI工具可以按照各種維度做鉆取分析。
可以定義全局控制臺,比如定義日期范圍選擇,可以針對某一時間段數據做靈活查詢。
效果