1 背景
在紫金橋軟件的實時數(shù)據(jù)庫版本中,提供了一組與關(guān)系數(shù)據(jù)庫通訊的工具——數(shù)據(jù)轉(zhuǎn)儲工具,數(shù)據(jù)轉(zhuǎn)儲工具包括數(shù)據(jù)轉(zhuǎn)儲組態(tài)和數(shù)據(jù)轉(zhuǎn)儲運(yùn)行兩部分。數(shù)據(jù)轉(zhuǎn)儲組態(tài)主要用于定義通訊過程和數(shù)據(jù)交換機(jī)制;數(shù)據(jù)轉(zhuǎn)儲運(yùn)行是數(shù)據(jù)交換的執(zhí)行機(jī)構(gòu),它按照數(shù)據(jù)轉(zhuǎn)儲組態(tài)的定義來完成紫金橋軟件實時數(shù)據(jù)庫與其它系統(tǒng)關(guān)系數(shù)據(jù)庫之間的通訊。但用戶在使用過程中會對該功能的配置參數(shù)和效率產(chǎn)生疑問,為此,我們對該功能進(jìn)行全面測試,得出了測試結(jié)論為用戶提供參考。
2 環(huán)境
本次測試的測試環(huán)境,包括硬件配置、所使用的軟件及軟件版本號如下所示:
表1 紫金橋軟件客戶端配置表
表2 關(guān)系數(shù)據(jù)庫服務(wù)器配置表
3 方法及原理
3.1 方法
測試將3000點、5000點、8000點、10000點、15000點、20000點、30000點、50000點實時數(shù)據(jù)轉(zhuǎn)儲到關(guān)系數(shù)據(jù)庫所用的時間。
3.2 原理
以轉(zhuǎn)儲3000點實時數(shù)據(jù)到關(guān)系數(shù)據(jù)庫為例,在關(guān)系庫記錄每條數(shù)據(jù)的生成時間,生成第3000條數(shù)據(jù)記錄的時間減去生成第1條數(shù)據(jù)記錄的時間就是我們想獲取的目標(biāo)時間。
關(guān)系數(shù)據(jù)庫中表的列名:UPDATETIME,TAGNAME,TAGVALUE,LOCALTIME
UPDATETIME :實時數(shù)據(jù)采集時間
TAGNAME : 點名
TAGVALUE : 點參數(shù),這里為PV
LOCALTIME : 關(guān)系數(shù)據(jù)庫生成此條數(shù)據(jù)的時間
假設(shè)第1個點的點名為TAG00000,第3000個點名為TAG02999,則目標(biāo)TIME為:
TIME = TAG02999.LOCALTIME - TAG00000.LOCALTIME
4 過程
以3000點實時數(shù)據(jù)轉(zhuǎn)儲到關(guān)系數(shù)據(jù)庫為例,介紹測試過程,其它點數(shù)測試過程與其一致。
1.創(chuàng)建3000點工程,要求所有點保存歷史,保存精度為0。
2.利用紫金橋COMAPI接口編寫自動設(shè)值程序給點設(shè)值,為3000個點同時設(shè)值,值為當(dāng)前時間的分鐘和秒數(shù).
如:當(dāng)前時間為4點30,則設(shè)值為430。
3.實時數(shù)據(jù)轉(zhuǎn)儲組態(tài)
創(chuàng)建實時數(shù)據(jù)轉(zhuǎn)儲任務(wù),小于10000點的實時數(shù)據(jù)轉(zhuǎn)儲,只創(chuàng)建一個轉(zhuǎn)儲任務(wù),大于10000點的實時數(shù)據(jù)轉(zhuǎn)儲任務(wù),每10000萬點創(chuàng)建一個轉(zhuǎn)儲任務(wù),剩余不足10000點的數(shù)據(jù)劃分到一個轉(zhuǎn)儲任務(wù)中。
轉(zhuǎn)儲任務(wù)創(chuàng)建過程如下:
在紫金橋軟件的安裝目錄,找到DBMSDEF.exe雙擊運(yùn)行,對實時數(shù)據(jù)轉(zhuǎn)儲組態(tài)進(jìn)行配置。
選擇【數(shù)據(jù)庫】選項卡,進(jìn)行如下配置。
名稱:T3000
數(shù)據(jù)庫名稱:新建數(shù)據(jù)源
數(shù)據(jù)表:T3000
表結(jié)構(gòu):窄行(每個位號一個記錄)
通過引入功能將3000點導(dǎo)入,如上圖。
選擇【其他】選項卡,進(jìn)行如下配置:
數(shù)據(jù)流向:實時庫到管理庫
啟始時間:置為當(dāng)前時間
更新周期:30秒
存儲方式:插入
保存天數(shù)與啟用斷線恢復(fù):默認(rèn)
點擊確定。
1.在紫金橋軟件的安裝目錄,找到DBMSDEF.exe雙擊運(yùn)行。
2.在DBMSDEF.exe的運(yùn)行界面觀察,當(dāng)發(fā)現(xiàn)關(guān)系數(shù)據(jù)庫中已經(jīng)為數(shù)據(jù)轉(zhuǎn)儲創(chuàng)建完表T3000后,停止數(shù)據(jù)轉(zhuǎn)儲運(yùn)行。通過“Microsoft SQL Server Management Studio”工具查看關(guān)系庫中的數(shù)據(jù)轉(zhuǎn)儲情況,在數(shù)據(jù)庫“QWE”中修改表“T3000”增加列“l(fā)ocaltime”,將此字段綁定為getdate(),數(shù)據(jù)類型設(shè)為DATETIME,這樣在每生成一條數(shù)據(jù)時會自動將數(shù)據(jù)的生成時間記錄下來。
3.再次運(yùn)行數(shù)據(jù)轉(zhuǎn)儲,數(shù)據(jù)轉(zhuǎn)儲運(yùn)行一段時間后將數(shù)據(jù)導(dǎo)入Excel中,獲取TAG00000點在關(guān)系庫中的生成時間和TAG02999點在關(guān)系庫中的生成時間,取兩者之差就是我們所要的完成3000點實時數(shù)據(jù)轉(zhuǎn)儲到關(guān)系數(shù)據(jù)庫所用的時間。
4.每個數(shù)據(jù)轉(zhuǎn)儲最多只能轉(zhuǎn)儲10000點,當(dāng)一個工程需要轉(zhuǎn)儲的點數(shù)大于10000點時,需要創(chuàng)建多個數(shù)據(jù)轉(zhuǎn)儲。本次測試中轉(zhuǎn)儲點數(shù)小于10000點的,只創(chuàng)建了一個轉(zhuǎn)儲任務(wù)。大于10000點轉(zhuǎn)儲我們創(chuàng)建了多個轉(zhuǎn)儲任務(wù)。具體如下表:
表3 轉(zhuǎn)儲點數(shù)與轉(zhuǎn)儲任務(wù)對應(yīng)表
5 結(jié)果
表4 轉(zhuǎn)儲不同點數(shù)數(shù)據(jù)到關(guān)系數(shù)據(jù)庫所消耗的時間
6 結(jié)論
1.轉(zhuǎn)儲不同點數(shù)數(shù)據(jù)到關(guān)系數(shù)據(jù)庫所消耗的時間,為用戶做參考,如表4。
2.創(chuàng)建工程時,一個區(qū)域所創(chuàng)建的點數(shù)需小于30000點。
3.每個實時數(shù)據(jù)轉(zhuǎn)儲任務(wù)最多只能轉(zhuǎn)儲10000點數(shù)據(jù),多于10000點數(shù)據(jù),無法轉(zhuǎn)儲到關(guān)系數(shù)據(jù)庫,如果一個工程中需要做實時轉(zhuǎn)儲的數(shù)據(jù)大于10000點,請建多個實時數(shù)據(jù)轉(zhuǎn)儲任務(wù)。
4.當(dāng)轉(zhuǎn)儲的點數(shù)較大時,在點擊實時數(shù)據(jù)轉(zhuǎn)儲組態(tài)對話框中【點定義】選項卡時,界面會發(fā)生較長時間未響應(yīng)現(xiàn)象,但不影響使用。
5.實時數(shù)據(jù)轉(zhuǎn)儲的效率與計算機(jī)硬件配置、網(wǎng)絡(luò)通訊、SQL軟件版本等有很大關(guān)系,建議在使用數(shù)據(jù)轉(zhuǎn)儲工具時,先按照工程實際點數(shù)測試,得出轉(zhuǎn)儲時間,看其能否滿足實際需要。
有任何關(guān)于組態(tài)軟件的技術(shù)問題或需要更多的技術(shù)資料,可以在微信(微信號:Realinfo)留下聯(lián)系方式或者到http://www.realinfo.cc/交流論壇里提出,我們將及時為您解答。