无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
首頁 | 培訓研討 | 公司簡介 | 聯系方式 | 公司動態(tài) | 產品 | 應用實例 | 下載 | 文摘 | 誠聘 |
紫金橋實時數據庫的應用——通過函數寫入數據到關系數據庫典型案例

紫金橋軟件技術有限公司
收藏本文     查看收藏

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

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

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

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


 

狀 態(tài): 離線

公司簡介
產品目錄

公司名稱: 紫金橋軟件技術有限公司
聯 系 人: 李磊
電  話: 0459-8151391-808
傳  真: 0459-8151391-804
地  址: 大慶市高新區(qū)服務外包產業(yè)園C-1座817室
郵  編: 163316
主  頁:
 
紫金橋軟件相關解決方案:
跨平臺實時數據庫歷史回放功能介紹
跨平臺實時數據庫如何實現表格的保存和讀取
跨平臺實時數據庫腳本系統(tǒng)介紹
基于紫金橋實時數據庫實現焦化廠生產能源調度信息管理系統(tǒng)
紫金橋聲音報警實現的幾種方式
基于紫金橋監(jiān)控組態(tài)軟件的天然氣計量系統(tǒng)
基于紫金橋軟件抄表系統(tǒng)解決方案
火狐瀏覽器紫金橋軟件Web發(fā)布(open in ie方式)
紫金橋軟件在供水泵站遠程監(jiān)控系統(tǒng)中的應用
基于紫金橋實時數據庫實現焦化廠生產能源調度信息管理系統(tǒng)
紫金橋組態(tài)軟件在除塵控制系統(tǒng)中的應用
紫金橋軟件在水文監(jiān)測系統(tǒng)中的應用
更多紫金橋軟件解決方案...
通過中華工控網在線留言紫金橋軟件技術有限公司:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡
 
中華工控網 GKong.com制作發(fā)布 廣告聯系
无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频
亚洲性色视频| 国产毛片一区| 欧美精品91| 日韩av专区| 日韩av影院| 2023国产精品久久久精品双| 国产欧美欧美| 欧美日韩国产精品一区二区亚洲| 国内自拍视频一区二区三区| 亚洲午夜视频| 国产精品久久久一区二区| 99热免费精品| 精品资源在线| 日韩国产在线不卡视频| 激情欧美国产欧美| 国产日韩欧美| 日韩av一二三| 久久xxxx精品视频| 午夜欧美精品| 99成人在线| 中文字幕日韩欧美精品高清在线| 国产一区91| 在线一区免费| 99精品一区| 日韩一级欧洲| 99国产精品免费视频观看| 波多野结衣久久精品| 国产一区丝袜| 国产一区久久| 美美哒免费高清在线观看视频一区二区| 欧美日韩国产高清| 老司机精品久久| 老司机精品久久| 日本不卡一区二区| 日本午夜精品视频在线观看| 日本va欧美va精品发布| 免费在线亚洲| 日韩欧美精品一区| 欧美另类综合| 欧美视频二区| 日韩88av| 视频一区视频二区在线观看| 中文字幕亚洲在线观看| 日本va欧美va精品| 日韩福利一区| 国产精品日本| 蜜桃精品视频| 不卡在线一区| 国产精品探花在线观看| 一区二区三区四区日本视频| 在线视频观看日韩| 日韩av午夜在线观看| 一区二区三区四区日本视频| 亚洲欧美日韩专区| 九九久久国产| 91久久午夜| 国产高清亚洲| 午夜av一区| 国内一区二区三区| 一区二区三区国产盗摄| 国产高清精品二区| 女人天堂亚洲aⅴ在线观看| 日韩中文字幕一区二区高清99| 国产精品色婷婷在线观看| 成人午夜国产| 97成人超碰| 日韩视频一区| 精品少妇一区| 亚洲在线久久| 国产综合精品| 国产伊人久久| 日韩精品国产欧美| 免费不卡中文字幕在线| 国产精品入口久久| 日本亚洲三级在线| 欧美~级网站不卡| 国产不卡一区| 日韩午夜视频在线| 亚洲一区观看| 在线一区视频观看| 国产精品18| 日本成人中文字幕在线视频| 亚洲五月婷婷| 999精品色在线播放| 四虎成人av| 欧美日韩一区二区三区在线电影| 激情五月色综合国产精品| 中文字幕在线免费观看视频| 国产精品多人| 国产欧美精品久久| 欧美激情福利| 精品伊人久久久| 毛片不卡一区二区| 国产精品极品| 精品视频国产| 97精品在线| 伊伊综合在线| 亚洲成人一区在线观看| 日韩美女一区二区三区在线观看| 国产日韩亚洲欧美精品| 91成人福利| 国产精品久久| 亚洲欧洲美洲av| 日韩中文影院| 99精品综合| 亚洲女同一区| 在线国产日韩| 国产日韩欧美一区二区三区在线观看| 四虎精品一区二区免费| 日韩高清在线一区| 黄色日韩精品| 国产a亚洲精品| 电影天堂国产精品| 天堂资源在线亚洲| 国产视频一区欧美| 久久av一区二区三区| 影音先锋久久精品| 91亚洲无吗| 国产精品成人一区二区不卡| 国产色播av在线| 日本免费在线视频不卡一不卡二| 91精品在线观看国产| 中文字幕日韩欧美精品高清在线| 日本在线观看不卡视频| 亚洲97av| 日本成人在线网站| 美女高潮久久久| 国产精品久久久久av电视剧| 久久久一本精品| 亚洲精品一区二区妖精| 午夜电影亚洲| 国产劲爆久久| 日韩亚洲国产欧美| 精品国产亚洲日本| 在线观看免费一区二区| 欧美日韩中文| 五月天久久久| 国内精品美女在线观看| 亚洲免费一区二区| av日韩中文| 日韩高清一区在线| 国产精品久久久久av电视剧| 日韩 欧美一区二区三区| 国产在线看片免费视频在线观看| 夜夜精品视频| 国产精品毛片一区二区在线看| 亚洲成人va| 麻豆精品在线| 免费视频一区二区| 久久久一本精品| 精品亚洲a∨一区二区三区18| 欧美日韩国产高清| 久久久精品午夜少妇| 欧美一区不卡| 免费观看在线综合| 欧洲一级精品| 国模精品一区| 日本在线视频一区二区| 99免费精品| 日本蜜桃在线观看视频| 欧美国产不卡| 在线亚洲精品| 日韩不卡免费高清视频| 国产亚洲欧美日韩精品一区二区三区 | 亚洲欧美网站| 中文一区一区三区高中清不卡免费| 综合激情一区| 日韩亚洲国产欧美| 好吊日精品视频| 精品欧美久久| 亚洲高清av| 五月综合激情| 99精品网站| 99久久精品费精品国产| 成人亚洲一区二区| 97精品一区| 在线一区av| 欧美天堂视频| 久久久精品日韩| 999久久久亚洲| 国内精品99| 狠狠爱成人网| 免费高潮视频95在线观看网站| 国产一区二区三区免费在线| 欧美国产另类| 欧美国产美女| 国产福利电影在线播放| 在线人成日本视频| 精品三级久久| 99在线精品免费视频九九视| 午夜精品影院| 日韩欧美中文字幕一区二区三区| 亚洲伊人精品酒店| 国产精品免费精品自在线观看| 国产精品综合| 国产理论在线| 日韩亚洲在线| 亚洲天堂av资源在线观看| 日本久久一区| 91嫩草亚洲精品|