<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
        中華工控網(wǎng)首頁
          P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
          D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
          電 源 | 嵌入式系統(tǒng) | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
        紫金橋?qū)崟r數(shù)據(jù)庫的應用——通過函數(shù)寫入數(shù)據(jù)到關(guān)系數(shù)據(jù)庫典型案例
        收藏本文     查看收藏

                 某天然氣公司的生產(chǎn)信息平臺,是一個生產(chǎn)運行關(guān)鍵數(shù)據(jù)統(tǒng)計和展示的平臺,其中的裝置關(guān)鍵參數(shù)合格率、設備運行狀態(tài)、振動設備報警監(jiān)測這三部分,由紫金橋?qū)崟r數(shù)據(jù)庫提供數(shù)據(jù)。
           客戶在功能上要求是這樣的:
          1、裝置關(guān)鍵參數(shù)合格率,報警上下限值要從指定的關(guān)系數(shù)據(jù)庫表中讀取,該表由工藝人員根據(jù)需要修改報警上下限的限值,紫金橋軟件根據(jù)此限值計算裝置關(guān)鍵參數(shù)的合格率,計算完成后,再存入關(guān)系數(shù)據(jù)庫指定的表中。
          2、設備運行狀態(tài),實時值由信息平臺實時讀取,歷史值要定時存入關(guān)系數(shù)據(jù)庫指定的表中。
          3、設備振動報警監(jiān)測,實時值由信息平臺實時讀取,不需要存儲歷史值。
           設備運行狀態(tài)以及設備振動監(jiān)測的實時數(shù)據(jù)是通過開放OPC Server接口,由對方直接實時采集,裝置關(guān)鍵參數(shù)的合格率以及設備運行狀態(tài)歷史兩部分的數(shù)據(jù),是通過紫金橋?qū)崟r數(shù)據(jù)庫軟件,將歷史數(shù)據(jù)寫入到SQL Server數(shù)據(jù)庫中,再由生產(chǎn)信息平臺系統(tǒng)從SQL Server中按照需要讀取。
           系統(tǒng)使用的軟件版本:紫金橋?qū)崟r數(shù)據(jù)庫軟件V6.5。
          功能窗口截圖如下,由于該窗口不需要展示,故未做任何美化:

          各部分功能說明:
          1-報警時間統(tǒng)計組件,用于統(tǒng)計位號的累計報警時間,以便計算合格率。
          2-設備狀態(tài)實時報表,實時顯示設備狀態(tài)值,通過腳本將對應位號的值存儲到數(shù)據(jù)庫中。
          3-位號的報警上下限值報表,從關(guān)系數(shù)據(jù)庫讀取參數(shù)的報警限值。
          4-手動讀取合格率報警限值按鈕,點擊后讀取關(guān)系數(shù)據(jù)庫的報警限值。
          5-查看當天已經(jīng)寫入數(shù)據(jù)的報表,用來查看數(shù)據(jù)庫中已經(jīng)寫入的數(shù)據(jù)。
          6-查看設備狀態(tài)/合格率數(shù)據(jù)按鈕。點擊按鈕分別查看最近一天的設備狀態(tài)或者合格率數(shù)據(jù)。
          窗口最下方的部分即5、6兩塊實際上不是功能必須的,只是方便開發(fā)者自己查看遠程數(shù)據(jù)庫中的數(shù)據(jù)是否成功存儲。
          本文主要介紹“裝置關(guān)鍵參數(shù)合格率”這部分的功能,“設備運行狀態(tài)”部分大同小異,“設備振動監(jiān)測”部分不需要向關(guān)系數(shù)據(jù)庫存儲數(shù)據(jù),所以這兩部分不再過多敘述。接
          下來開始說明關(guān)鍵參數(shù)合格率功能部分:
          1、窗口中新增報警時間統(tǒng)計組件,命名為Alarm1,在組件中添加需要進行統(tǒng)計的位號,設置位號使用自身報警限值。
          2、點組態(tài)中,新增‘報表關(guān)系數(shù)據(jù)源點’,連接要讀取數(shù)據(jù)的關(guān)系數(shù)據(jù)庫。
          3、窗口中新增自由報表,關(guān)系數(shù)據(jù)庫連接里面,連接新建的報表關(guān)系數(shù)據(jù)源點,并將報表命名。本案例中,該報表名為Fr1 。
          4、建立表模板。
          使用紫金橋軟件預定義的SQL函數(shù)向關(guān)系數(shù)據(jù)庫插入數(shù)據(jù),首先要按照固定表結(jié)構(gòu)在關(guān)系數(shù)據(jù)庫先創(chuàng)建表, SQL函數(shù)無法直接生成表,而是需要一個給定的模板,按照模板進行表的創(chuàng)建,這就需要事先定義好一個表模板。
          下圖是合格率數(shù)據(jù)表要使用的表模板,要創(chuàng)建的表一共有4個字段,分別是‘日期、位號名、值、權(quán)重’,對應的字段名分別是‘UpdateTime、TagName、TagValue、TagLevel’,權(quán)重這個字段是客戶要求的。

          合格率表模版
           創(chuàng)建表使用函數(shù)SQLCreateTable(),這里定義一個窗口整型變量w_cID,供SQL函數(shù)使用。關(guān)于紫金橋?qū)崟r數(shù)據(jù)庫預定義的SQL函數(shù)的用法,請讀者自行查看幫助,這里不再詳述。
          一旦數(shù)據(jù)表創(chuàng)建完畢,表模板就不再需要了。基于此原因,最開始的數(shù)據(jù)表是使用按鈕創(chuàng)建的,創(chuàng)建完畢后,按鈕就刪除了,所以窗口中沒有創(chuàng)建數(shù)據(jù)表的腳本。
           5、建立綁定表。
          數(shù)據(jù)表創(chuàng)建完畢后,接下來就是向表內(nèi)插入數(shù)據(jù)了。要向關(guān)系數(shù)據(jù)庫表內(nèi)插入數(shù)據(jù),需要使用紫金橋?qū)崟r數(shù)據(jù)庫的‘綁定表’,綁定表里的字段名設置要和表模版里的字段完全一致,否則插入數(shù)據(jù)時會失敗。
          另外,需要建立4個中間變量(圖中變量名部分),分別對應數(shù)據(jù)表的4個字段,供綁定表使用,具體用法在后面腳本部分會詳細介紹。

          合格率綁定表
          6、腳本。
           由于紫金橋?qū)崟r數(shù)據(jù)庫6.5版軟件里,窗口周期執(zhí)行腳本的周期不能大于15分鐘,所以為了實現(xiàn)需要的功能,定義以下整型窗口變量:w_cID、w_t1、w_t2、w_t3、w_t4、w_TBegin,具體使用在后面的腳本中說明。
          進入窗口:
           進入窗口后,執(zhí)行下面腳本,前三行是給w_t1、w_t2、w_t3賦值為次日零點的時間;第五行w_TBegin賦值為當日零點的時間,是報警統(tǒng)計組件執(zhí)行統(tǒng)計的起始時間;第六行連接數(shù)據(jù)存儲所使用的數(shù)據(jù)庫,由于連接字符涉及到客戶信息,所以這里去掉了,讀者可以自己查看幫助中關(guān)于紫金橋軟件內(nèi)置SQL函數(shù)的用法,里面有關(guān)于連接數(shù)據(jù)庫的詳細說明。w_t4賦值為次日上午8:30分的時間,設備狀態(tài)數(shù)據(jù)存儲腳本使用,與合格率數(shù)據(jù)存儲無關(guān)。w
          _t1 = LongTime(StrLeft(StrTime($Curtime,0),10) + " 00:00:00") + 86400;
          w_t2 = w_t1;
          w_t3 = w_t1;
          w_t4 = LongTime(StrLeft(StrTime($Curtime,0),10) + " 08:30:00") + 86400;
          w_TBegin = LongTime(StrLeft(StrTime($Curtime,0),10) + " 00:00:00");
          SQLConnect(w_cID,"此部分是數(shù)據(jù)庫服務器連接字符串,不便公開");
          周期執(zhí)行:
          
        首先,每天凌晨前5分鐘,從關(guān)系數(shù)據(jù)庫讀取關(guān)鍵參數(shù)的報警限值到報表Fr1中。由于報警限值由工藝人員維護,可能根據(jù)工藝需要有修改,所以每天計算合格率之前要重新讀取。腳本如下:
           if $Curtime >= w_t1-300 && $Curtime < w_t1-240 then
          w_t1 = $Curtime + 86400;
          #Fr1.SqlSelectCmd("select 位號,指標級別,下限,上限 from TM_裝置關(guān)鍵控制參數(shù)");
          Delay(1500);
           for i = 1 to #Fr1.RowCount()+1
          #本地.SetDataStr(#Fr1.Txt(1,i)+".EU",#Fr1.Txt(2,i));
          #本地.SetDataReal(#Fr1.Txt(1,i)+".EULO",#Fr1.Val(3,i));
          #本地.SetDataReal(#Fr1.Txt(1,i)+".EUHI",#Fr1.Val(4,i));
          #next
          #本地.RegUpdate();
          endif
          腳本第1行是判斷本段腳本執(zhí)行的時間,當系統(tǒng)時間處于零點前5分鐘至前4分鐘這段時間內(nèi),開始執(zhí)行腳本;
          第2行是將變量w_t1的值增加一天的時間,以便下次執(zhí)行的時間是在下一天的同一時間;
          第3行是報表Fr1從關(guān)系數(shù)據(jù)庫的表中讀取報警限值;
          第4行是延遲時間,以便報表Fr1能夠完全讀取表中的數(shù)據(jù);
          第5~9行循環(huán),將報表Fr1中的報警限值以及權(quán)重設置到對應的位號,第6行是設置權(quán)重,第7行是設置報警下限,第8行是設置報警上限;
          第10行,刷新第6、7、8行操作以后的點的信息。
           讀取報警限值后,接下來就是根據(jù)報警限值計算位號的合格率了。下面這段腳本是判斷系統(tǒng)時間在零點前4分鐘至3分鐘之間,開始執(zhí)行,同樣把變量w_t2的值增加一天,即與w_t1相同,然后開始報警組件進行報警時間的統(tǒng)計,統(tǒng)計的時間是一天,即86400秒。
          if $Curtime >= w_t2-240 && $Curtime < w_t2-180 then
          #w_t2 = w_t1;
          #Alarm1.Start(w_TBegin,86400,1);
          endif
          在報警統(tǒng)計組件完成統(tǒng)計后,接下來就需要將統(tǒng)計的數(shù)據(jù)提取出來,然后計算,再把計算結(jié)果存入數(shù)據(jù)庫的表中了。
          if $Curtime > w_t3-60 && $Curtime <= w_t3 then
          w_t3 = w_t1;
          for i = 0 to #Alarm1.GetTagCount()
          Bind_TagValue = 1 - (#Alarm1.GetCellHi(0,i) + #Alarm1.GetCellLow(0,i))/86400;
          Bind_TagName = #Alarm1.GetTag(i) + ".PV";
          Bind_StrTime = StrTime($Curtime,1);
          for j = 0 to #Fr1.RowCount()
          if #Alarm1.GetTag(i) == #Fr1.Txt(1,j+1) then
          Bind_TagLevel = #Fr1.Txt(2,j+1)
          endif
          next
          SQLInsert(w_cID,"XHQ_HGL","XHQ_BindHGL");
          next
          endif
          這部分腳本就是向數(shù)據(jù)庫表內(nèi)寫入數(shù)據(jù)了。
          第1行仍然是判斷時間,當時間達到零點前一分鐘時,開始執(zhí)行腳本,首先還是將時間變量w_t3增加一天,與w_t1相同;
          第3~13行循環(huán),將報警組件中所有位號的值逐個進行計算,然后存入數(shù)據(jù)庫的表中。
          第4行是把報警組件第i列的位號報警上限時間和報警下限時間求和,然后除以一天的時間,得到不合格率,再用1減去不合格率得到合格率的數(shù)值,賦給綁定表使用的變量;
          第5行是把報警組件第i列的位號賦給綁定表變量;
          第6行是把當前時間賦給綁定表變量;
          第7~11行,是在報表Fr1中查找當前第i列位號的權(quán)重,然后賦給綁定表變量;
          第12行,4個綁定表變量都已經(jīng)賦值,此行使用紫金橋軟件的SQL函數(shù),將綁定表變量的值插入到關(guān)系數(shù)據(jù)庫表中。
          至此,完成報警組件第i列的一個循環(huán),直至報警組件中所有位號的合格率統(tǒng)計值都插入數(shù)據(jù)表后,循環(huán)完成。
          退出窗口:
          這里只有一行腳本,就是當退出窗口時,斷開與關(guān)系數(shù)據(jù)庫的連接。
          SQLDisconnect(w_cID);
           整個腳本的關(guān)鍵,就是周期執(zhí)行部分,這里使用了一個小技巧,由于紫金橋?qū)崟r數(shù)據(jù)庫6.5版,周期執(zhí)行腳本的周期不能大于15分鐘,所以這里使用一個整型變量,通過該變量的值與系統(tǒng)當前時間比較,只有符合條件才能執(zhí)行腳本,否則不執(zhí)行,這就保證了腳本只在每天指定的零點附近執(zhí)行。
          另外,為了保證每一部分的腳本能夠完全執(zhí)行完畢,并且不在時間上有交叉沖突,所以設置3個不同的時間變量,并且在不交叉的時間執(zhí)行。而且通過這樣的方法,不會影響其他需要頻繁執(zhí)行的周期腳本正常運行。
           總結(jié):
          本例中使用了報表關(guān)系數(shù)據(jù)源點與自由報表相結(jié)合,讀取關(guān)系數(shù)據(jù)庫表中的數(shù)據(jù),這樣的好處是操作簡單,不需要寫過多腳本,但是無法向數(shù)據(jù)庫表中寫入數(shù)據(jù)。
          又使用了紫金橋?qū)崟r數(shù)據(jù)庫軟件預定義的SQL函數(shù),向關(guān)系數(shù)據(jù)庫中寫入數(shù)據(jù)。SQL函數(shù)的優(yōu)點是功能全面,幾乎能夠完成對關(guān)系數(shù)據(jù)庫表的所有操作,包括查詢、插入、刪除、建表、刪表等等;缺點就是操作相對自由報表和報表關(guān)系數(shù)據(jù)源點的結(jié)合要繁瑣一些,需要建立表模版、綁定表,還要手動寫一些腳本等。


         

        狀 態(tài): 離線

        公司簡介
        產(chǎn)品目錄
        供應信息

        公司名稱: 紫金橋軟件技術(shù)有限公司
        聯(lián) 系 人: 李磊
        電  話: 0459-8151391-808
        傳  真: 0459-8151391-804
        地  址: 大慶市高新區(qū)服務外包產(chǎn)業(yè)園C-1座817室
        郵  編: 163316
        主  頁:
         
        該廠商相關(guān)解決方案:
        跨平臺實時數(shù)據(jù)庫歷史回放功能介紹
        跨平臺實時數(shù)據(jù)庫如何實現(xiàn)表格的保存和讀取
        跨平臺實時數(shù)據(jù)庫腳本系統(tǒng)介紹
        基于紫金橋?qū)崟r數(shù)據(jù)庫實現(xiàn)焦化廠生產(chǎn)能源調(diào)度信息管理系統(tǒng)
        紫金橋聲音報警實現(xiàn)的幾種方式
        基于紫金橋監(jiān)控組態(tài)軟件的天然氣計量系統(tǒng)
        基于紫金橋軟件抄表系統(tǒng)解決方案
        火狐瀏覽器紫金橋軟件Web發(fā)布(open in ie方式)
        紫金橋軟件在供水泵站遠程監(jiān)控系統(tǒng)中的應用
        基于紫金橋?qū)崟r數(shù)據(jù)庫實現(xiàn)焦化廠生產(chǎn)能源調(diào)度信息管理系統(tǒng)
        紫金橋組態(tài)軟件在除塵控制系統(tǒng)中的應用
        紫金橋軟件在水文監(jiān)測系統(tǒng)中的應用
        更多方案...
        立即發(fā)送詢問信息在線聯(lián)系該解決方案廠商:
        用戶名: 密碼: 免費注冊為中華工控網(wǎng)會員
        請留下您的有效聯(lián)系方式,以方便我們及時與您聯(lián)絡

        關(guān)于我們 | 聯(lián)系我們 | 廣告服務 | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
        工控網(wǎng)客服熱線:0755-86369299
        版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 中文字幕无线码免费人妻| 99视频30精品视频在线观看| 亚洲男人AV天堂午夜在| 国产高清免费午夜在线视频| 午夜一区欧美二区高清三区| 久久亚洲av成人无码软件| 黄a大片av永久免费| 免费无码中文字幕A级毛片| 国产精品午夜福利免费看| 人妻夜夜爽天天天爽欧美色院| 黄色一级片一区二区三区| 亚洲亚洲人成综合丝袜图片| 99riav精品免费视频观看| 亚洲男人电影天堂无码| 国产粉嫩学生高清专区麻豆 | 免费VA国产高清大片在线 | 亚洲国模精品一区二区| 亚洲色大成网站WWW永久麻豆| 亚洲一区二区视频在线观看| 亚洲国产精品一区二区视频| 国产欧美综合在线观看第十页| 在线播放亚洲一区蜜臀| 一级毛片在线观看免费| 高清不卡一区二区三区| 九九热视频在线免费观看| 国产中文字幕精品喷潮| 强伦姧人妻免费无码电影| 一本加勒比hezyo无码人妻| 亚洲情A成黄在线观看动漫尤物| 国产精品免费激情视频| 粉嫩小泬无遮挡久久久久久| 亚洲中文字字幕精品乱码| 国产一区二区三区精品综合 | 欧美人妻在线一区二区| 亚洲国产日韩伦中文字幕| 少妇真人直播免费视频| 最近的2019中文字幕视频| 亚洲精品日本久久一区二区三区| 国产午夜精品一区二区三| av中文字幕在线二区| 亚洲夂夂婷婷色拍WW47|