iNeuOS工業(yè)互聯(lián)網(wǎng)操作系統(tǒng),腳本化實(shí)現(xiàn)設(shè)備運(yùn)行時(shí)長(zhǎng)和效率計(jì)算與統(tǒng)計(jì)
1. 概述... 2
2. 實(shí)時(shí)采集開(kāi)停狀態(tài)... 2
3. 增加虛擬設(shè)備... 2
4. 腳本統(tǒng)計(jì)和計(jì)算設(shè)備運(yùn)行時(shí)長(zhǎng)... 4
5. 設(shè)備運(yùn)行時(shí)長(zhǎng)報(bào)表... 7
1. 概述
有一個(gè)煤礦項(xiàng)目,使用iNeuOS系統(tǒng)時(shí)有一個(gè)需要是:要統(tǒng)計(jì)設(shè)備的運(yùn)行時(shí)長(zhǎng),進(jìn)一步統(tǒng)計(jì)設(shè)備運(yùn)行效率。主要是有效分析設(shè)備運(yùn)行狀態(tài),合理的進(jìn)行節(jié)能。
iNeuOS本身具備強(qiáng)大的腳本能力,需要現(xiàn)場(chǎng)實(shí)施人員有一定腳本編寫(xiě)能力,如果不具備腳本編寫(xiě)能力,那么下面的模板修改相應(yīng)的參數(shù)即可。
2. 實(shí)時(shí)采集開(kāi)停狀態(tài)
首先能夠?qū)崟r(shí)讀取到相應(yīng)設(shè)備的開(kāi)停狀態(tài),讀取數(shù)據(jù)點(diǎn)的參數(shù)根據(jù)現(xiàn)場(chǎng)實(shí)際設(shè)備情況設(shè)置。如下圖:

不iNeuKernel后臺(tái)服務(wù)讀取數(shù)據(jù),如下圖:

3. 增加虛擬設(shè)備
(1)增加虛擬設(shè)備
增加虛擬設(shè)備和虛擬數(shù)據(jù)點(diǎn)。所有虛擬設(shè)備關(guān)閉【是否啟用】,如下圖:

可以按實(shí)現(xiàn)物理層級(jí)增加相應(yīng)設(shè)備一一對(duì)應(yīng)的子設(shè)備,同樣關(guān)閉【是否啟用】,如下圖:

(2)增加虛擬數(shù)據(jù)點(diǎn)
編輯相應(yīng)的設(shè)備,在【數(shù)據(jù)點(diǎn)】選卡上添加數(shù)據(jù)點(diǎn),如下圖:

在數(shù)據(jù)點(diǎn)的基本信息的【點(diǎn)類型】選擇“虛擬點(diǎn)”,如下圖:

每臺(tái)虛擬設(shè)備創(chuàng)新4個(gè)虛擬數(shù)據(jù)點(diǎn):設(shè)備運(yùn)行開(kāi)始時(shí)間、設(shè)備運(yùn)行停止時(shí)間、設(shè)備運(yùn)行臨時(shí)狀態(tài)和設(shè)備運(yùn)行時(shí)長(zhǎng)。如下圖:

需要統(tǒng)計(jì)設(shè)備運(yùn)行時(shí)長(zhǎng)都按上面的流程配置,虛擬設(shè)備層級(jí)可以靈活調(diào)整。
4. 腳本統(tǒng)計(jì)和計(jì)算設(shè)備運(yùn)行時(shí)長(zhǎng)
在系統(tǒng)桌面打開(kāi)【流程控制】功能,如下圖:

增加流程控制任務(wù),如下圖:

統(tǒng)計(jì)設(shè)備時(shí)長(zhǎng)的腳本模板,如下腳本:
string io_signal=getvalue("i376006988762583040","signal"); //設(shè)備開(kāi)停狀態(tài) //記錄當(dāng)前設(shè)備狀態(tài),防止重新記錄 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")//運(yùn)行狀態(tài) { //記錄當(dāng)前為開(kāi)啟狀態(tài) save("i386181395921375232","device_run_temp_state","1"); //記錄開(kāi)始運(yùn)行時(shí)間點(diǎn) save("i386181533603598336","device_run_sdt",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } if(io_signal=="0" && temp_run_temp=="1")//停止?fàn)顟B(tài) { //記錄當(dāng)前為停止?fàn)顟B(tài) save("i386181395921375232","device_run_temp_state","0"); //記錄停止運(yùn)行時(shí)間點(diǎn) string edt=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); save("i386181687433891840","device_run_edt",edt); //計(jì)算時(shí)長(zhǎng) //獲得設(shè)備運(yùn)行的開(kāi)始時(shí)間節(jié)點(diǎn) string sdt=getvalue("i386181533603598336","device_run_sdt"); //計(jì)算時(shí)間差 TimeSpan ts = DateTime.Parse(edt) - DateTime.Parse(sdt); //獲得運(yùn)行時(shí)長(zhǎng),單分為分鐘。如果是小時(shí):ts.TotalHours double run_minute_num = ts.TotalMinutes; //保存運(yùn)行時(shí)長(zhǎng) save("i386181860411183104","device_run_minute_num",run_minute_num.ToString()); }
選擇【保存】,設(shè)置流程控制名稱、流程描述、是否啟動(dòng)和間隔時(shí)長(zhǎng)。如下圖:

當(dāng)設(shè)備狀態(tài)發(fā)生變化,后臺(tái)服務(wù)會(huì)根據(jù)狀態(tài)計(jì)算當(dāng)前設(shè)備運(yùn)行時(shí)長(zhǎng)。如下圖:

5. 設(shè)備運(yùn)行時(shí)長(zhǎng)報(bào)表
報(bào)表應(yīng)用操作參見(jiàn):《iNeuOS工業(yè)互聯(lián)網(wǎng)操作系統(tǒng),在線報(bào)表(Excel)開(kāi)發(fā)工具》。
在桌面打開(kāi)【報(bào)表設(shè)計(jì)】,如下圖:

選擇Excel的單元格,并且在右邊配置相應(yīng)數(shù)據(jù)點(diǎn),如下圖:

在運(yùn)行時(shí)長(zhǎng)單元格配置上的【統(tǒng)計(jì)】選擇“和值”,如下圖:

在【時(shí)間跨度】按需配置時(shí)間精度,如下圖:

選擇【保存】,在桌面上會(huì)顯示配置報(bào)表的應(yīng)用。如下圖:

最終呈現(xiàn)效果,如下圖:

物聯(lián)網(wǎng)&大數(shù)據(jù)技術(shù) QQ群:54256083
物聯(lián)網(wǎng)&大數(shù)據(jù)項(xiàng)目 QQ群:727664080
QQ:504547114
微信:wxzz0151
博客:http://www.rzrgm.cn/lsjwq
微信公眾號(hào):iNeuOS

購(gòu)買《物聯(lián)網(wǎng)軟件架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)》:京東購(gòu)買。


浙公網(wǎng)安備 33010602011771號(hào)