<dfn id="u2o6b"><rp id="u2o6b"></rp></dfn>
<wbr id="u2o6b"><fieldset id="u2o6b"><menu id="u2o6b"></menu></fieldset></wbr>

  • <output id="u2o6b"><big id="u2o6b"></big></output>
    1. <center id="u2o6b"><tbody id="u2o6b"></tbody></center>
    2. <menuitem id="u2o6b"><sup id="u2o6b"></sup></menuitem>
        <rt id="u2o6b"></rt>
        女人色熟女乱,国产精品国产三级国av,色综合久久中文综合网,精品一区二区三区日韩版,无码精品人妻一区二区三区中,又粗又硬又黄a级毛片,四虎国产精品永久在线下载,色综合视频一区二区三区
      1. 紫金橋巧用累計點實現班組統計———紫金橋巧用累計點實現班組統計
        紫金橋軟件技術有限公司

        應用問題

        在實際應用中我們經常會遇到這樣的問題:在我們構建了一個實時監控管理系統時,我們可以直接獲得一些被監測量的瞬時值;在進行統計核算時,這些瞬時值不能有效地反應在一定時間段內的生產產量、原料用量、能源消耗等生產情況。要反應類似這些信息就需要對相關的瞬時值進行累計計算,得到即時累計值,然后通過即時累計再獲取某時間段內的階段統計值。

        下面我們就介紹一下通過紫金橋軟件如果實現這一應用需求。

        實現過程

        • 瞬時值采集及累計

        瞬時值的采集和累計過程是通過紫金橋的累計點來完成的。關于累計點各參數的意思可以查看在線幫助,但這里需要強調的是一定要注意“時間基”設置,否則可能得到錯誤的累計結果。

        再有累計點的過程值(PV)表示是被監測量的瞬時值,需要通過數據連接與I/O數據關聯起來,這樣才能利用累計點的計算功能通過TOTAL參數獲取累計值。如果我們需要系統重新啟動后,累計量能從上次累計值繼續累計,我們需要在歷史組態中將TOTAL參數的“退出時保存實時值作為下次啟動初值”選項選中。

        在這里我們建立“累計量1”和“累計量2”兩個累計點,并以這兩個點為例介紹一下前述需求的實現過程。

        • 階段累計量保存及清零

        我們假設要統計時間段為每8小時統計一次。由于某一時段內的統計結果一旦統計完成就應在以后的查詢和使用過程保持不變,這樣我們可以通過另外一個點將這個統計結果保存下來,下次使用時我們可以直接讀取,而不需要重復計算了。這樣也可以簡化后續的查詢組態。

        既然這里我們是8小時統計一次,我們就可以將系統小時變量($SYSTEM.Hour)的變化作為事務處理的觸發條件(實際應用時,我們可以統計周期選擇其它觸發條件)。每當系統小時值發生變化時,首先檢查是否到了8小時的時間間隔,如果到了就將“累計量1”和“累計量2”的當前值累計值(參數TOTAL)通過歷史插值的方法保存到“累計統計1”和“累計統計2”過程值中(參數PV),然后再將“累計量1”和“累計量2”的當前值累計值復位(清零)。通過這樣處理我們得到了一個每8小時統計一次的階段累計量值。

        建立步驟如下:

        在點組態中新建兩個模擬I/O點(累計統計1和累計統計2)用于形成累計量1和累計量2的歷史統計結果。

        在“數據庫”導航樹中的“腳本/值改變”下建立值改變動作腳本,變量名為“$SYSTEM.Hour”,

        腳本如下:

        int 開始時刻=0;

        int 時間間隔=8;

        if( mod($SYSTEM.Hour + 24 - 開始時刻, 0, 時間間隔) == 0) then

        InsertHisData(累計統計1.PV,累計量1.Total,$system.Year,

        $system.Month,$system.Day,$system.Hour,0,0,0);

        InsertHisData(累計統計2.PV,累計量2.Total,$system.Year,

        $system.Month,$system.Day,$system.Hour,0,0,0);

        累計量1.RESET=1;

        累計量2.RESET=1;

        endif

         

        • 統計結果查詢顯示

        統計結果已經有了,下面介紹如何查詢顯示:

        假設我們要查詢的是一天內每8小時的統計結果,那么我們首先需要指定查詢日期,這需要使用一個啟始時間組件;再有我們需要將查詢的結構顯示出來,這可以通過一個自由報表組件來完成。下面介紹一下實現步驟:

        A.定義一個整型中間變量tm,用于要查詢記錄的開始時間。

        B.新建一個窗口,在窗口中建立一個開始時間組件將其命名為:StartTime;在此開始時間組件的事件腳本中對其進行初始化:

        time=$system.longtime;

        time = time - GetHour()*3600- GetMinute()*60-GetSecond();//修正為一天啟始時間

        tm = time;

        C.再建立一個自由報表,進入報表設置窗口,將報表第一列顯示屬性設置為“日期和時間”型;在這列的第二行、第三行和第四行分別公式:=tm+8*3600、=tm+16*3600、=tm+24*3600。

        在第二列的第二行、第三行和第四行分別公式:

        =GetHisData2(累計統計1.PV,VAL(1,$R),0)

        注:GetHisData2為獲得指定數據庫變量,指定時刻的歷史記錄值;VAL(1,$R)表示獲得第一列,當前行單元格內的值,即為第一列指定的時間;這列主要是獲得“累計統計1.PV”每8小時的歷史記錄。

        D.在第三列的第二行、第三行和第四行分別公式:

        =GetHisData2(累計統計2.PV,VAL(1,$R),0)

        注:這列主要是獲得“累計統計2.PV”每8小時的歷史記錄。

        E.在窗中建立一個按鈕,在按鈕的鼠標自定義動作中輸入腳本:tm = #time.time,用來變換查詢啟始時間。

        小結

        上面例子只是介紹了一下在紫金橋軟件中實現累計統計的一種思路,在實際應用中還會有許多要處理的事項,實現過程也要比這復雜的多。希望這個小例子能達到拋磚引玉的作用,對您解決類似問題有所幫助。

         
         
        網站首頁  |  關于我們  |  聯系我們  |  廣告服務  |  版權隱私  |  友情鏈接  |  站點導航
         
        主站蜘蛛池模板: 欧美日韩中文国产一区发布| 欧美老人巨大XXXX做受视频| 国产精品久久久久久99人妻精品| 亚洲国产精品人人做人人爱| 国精品午夜福利视频不卡| 精品国产乱码久久久久乱码| 亚洲AV无码一区东京热久久| 国产91PORN中文| 久久人妻在线| 农村老熟妇乱子伦视频| av亚洲一区二区在线| 国产日本一线在线观看免费| 国产自产av一区二区三区性色| av在线免费看网站| 韩国一区二区视频| 国产日韩A∨无码免费播放| 久久综合开心激情五月天| 91亚洲色图| 屏山县| 成人免费AV一区二区三区| 99久久免费精品国产色| 国产真实露脸乱子伦原著| 污网站免费在线观看| 男人的天堂av一二三区| 成人欧美一区二区三区在线观看| 熟妇高潮一区二区| 国产在线精品视频你懂的| 中文字幕有码高清日韩| 亚洲老熟女| 色猫AV| 成人在线观看网址| 亚洲一区在线成人av| 91在线小视频| 中文字幕成人小说| 亚洲午夜福利网在线观看| 亚洲精品日本久久一区二区三区| 国产精品大全中文字幕| 亚洲a成人电影| 视频一区视频二区国产| 伊人久久大香线蕉AV网禁呦| 免费午夜无码片在线观看影院|