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