iNeuOS工業網際網路作業系統,指令碼化實現裝置執行時長和效率計算與統計

2022-12-01 21:00:20
目       錄

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


  購買《物聯網軟體架構設計與實現》:京東購買