有一個煤礦項目,使用iNeuOS系統時有一個需要是:要統計設備的運行時長,進一步統計設備運行效率。主要是有效分析設備運行狀態,合理的進行節能。iNeuOS本身具備強大的腳本能力,需要現場實施人員有一定腳本編寫能力,如果不具備腳本編寫能力,那麼下麵的模板修改相應的參數即可。 ...
目 錄
1. 概述... 2
2. 實時採集開停狀態... 2
3. 增加虛擬設備... 2
4. 腳本統計和計算設備運行時長... 4
5. 設備運行時長報表... 7
1. 概述
有一個煤礦項目,使用iNeuOS系統時有一個需要是:要統計設備的運行時長,進一步統計設備運行效率。主要是有效分析設備運行狀態,合理的進行節能。
iNeuOS本身具備強大的腳本能力,需要現場實施人員有一定腳本編寫能力,如果不具備腳本編寫能力,那麼下麵的模板修改相應的參數即可。
2. 實時採集開停狀態
首先能夠實時讀取到相應設備的開停狀態,讀取數據點的參數根據現場實際設備情況設置。如下圖:
不iNeuKernel後臺服務讀取數據,如下圖:
3. 增加虛擬設備
(1)增加虛擬設備
增加虛擬設備和虛擬數據點。所有虛擬設備關閉【是否啟用】,如下圖:
可以按實現物理層級增加相應設備一一對應的子設備,同樣關閉【是否啟用】,如下圖:
(2)增加虛擬數據點
編輯相應的設備,在【數據點】選卡上添加數據點,如下圖:
在數據點的基本信息的【點類型】選擇“虛擬點”,如下圖:
每台虛擬設備創新4個虛擬數據點:設備運行開始時間、設備運行停止時間、設備運行臨時狀態和設備運行時長。如下圖:
需要統計設備運行時長都按上面的流程配置,虛擬設備層級可以靈活調整。
4. 腳本統計和計算設備運行時長
在系統桌面打開【流程式控制制】功能,如下圖:
增加流程式控制制任務,如下圖:
統計設備時長的腳本模板,如下腳本:
string io_signal=getvalue("i376006988762583040","signal"); //設備開停狀態 //記錄當前設備狀態,防止重新記錄 string temp_run_temp=getvalue("i386181395921375232","device_run_temp_state"); if(string.IsNullOrEmpty(temp_run_temp)) { temp_run_temp="0"; } if(io_signal=="1" && temp_run_temp=="0")//運行狀態 { //記錄當前為開啟狀態 save("i386181395921375232","device_run_temp_state","1"); //記錄開始運行時間點 save("i386181533603598336","device_run_sdt",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } if(io_signal=="0" && temp_run_temp=="1")//停止狀態 { //記錄當前為停止狀態 save("i386181395921375232","device_run_temp_state","0"); //記錄停止運行時間點 string edt=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); save("i386181687433891840","device_run_edt",edt); //計算時長 //獲得設備運行的開始時間節點 string sdt=getvalue("i386181533603598336","device_run_sdt"); //計算時間差 TimeSpan ts = DateTime.Parse(edt) - DateTime.Parse(sdt); //獲得運行時長,單分為分鐘。如果是小時:ts.TotalHours double run_minute_num = ts.TotalMinutes; //保存運行時長 save("i386181860411183104","device_run_minute_num",run_minute_num.ToString()); }
選擇【保存】,設置流程式控制制名稱、流程描述、是否啟動和間隔時長。如下圖:
當設備狀態發生變化,後臺服務會根據狀態計算當前設備運行時長。如下圖:
5. 設備運行時長報表
報表應用操作參見:《iNeuOS工業互聯網操作系統,線上報表(Excel)開發工具》。
在桌面打開【報表設計】,如下圖:
選擇Excel的單元格,並且在右邊配置相應數據點,如下圖:
在運行時長單元格配置上的【統計】選擇“和值”,如下圖:
在【時間跨度】按需配置時間精度,如下圖:
選擇【保存】,在桌面上會顯示配置報表的應用。如下圖:
最終呈現效果,如下圖:
註:一個開啟和停止應該顯示在一行上,這塊我們再優化。
物聯網&大數據技術 QQ群:54256083
物聯網&大數據項目 QQ群:727664080
QQ:504547114
微信:wxzz0151
博客:https://www.cnblogs.com/lsjwq
微信公眾號:iNeuOS
購買《物聯網軟體架構設計與實現》:京東購買。