1 背景
在紫金橋軟件的實(shí)時(shí)數(shù)據(jù)庫(kù)版本中,提供了一組與關(guān)系數(shù)據(jù)庫(kù)通訊的工具——數(shù)據(jù)轉(zhuǎn)儲(chǔ)工具,數(shù)據(jù)轉(zhuǎn)儲(chǔ)工具包括數(shù)據(jù)轉(zhuǎn)儲(chǔ)組態(tài)和數(shù)據(jù)轉(zhuǎn)儲(chǔ)運(yùn)行兩部分。數(shù)據(jù)轉(zhuǎn)儲(chǔ)組態(tài)主要用于定義通訊過程和數(shù)據(jù)交換機(jī)制;數(shù)據(jù)轉(zhuǎn)儲(chǔ)運(yùn)行是數(shù)據(jù)交換的執(zhí)行機(jī)構(gòu),它按照數(shù)據(jù)轉(zhuǎn)儲(chǔ)組態(tài)的定義來(lái)完成紫金橋軟件實(shí)時(shí)數(shù)據(jù)庫(kù)與其它系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)之間的通訊。但用戶在使用過程中會(huì)對(duì)該功能的配置參數(shù)和效率產(chǎn)生疑問,為此,我們對(duì)該功能進(jìn)行全面測(cè)試,得出了測(cè)試結(jié)論為用戶提供參考。
2 環(huán)境
本次測(cè)試的測(cè)試環(huán)境,包括硬件配置、所使用的軟件及軟件版本號(hào)如下所示:
表1 紫金橋軟件客戶端配置表

表2 關(guān)系數(shù)據(jù)庫(kù)服務(wù)器配置表

3 方法及原理
3.1 方法
測(cè)試將3000點(diǎn)、5000點(diǎn)、8000點(diǎn)、10000點(diǎn)、15000點(diǎn)、20000點(diǎn)、30000點(diǎn)、50000點(diǎn)實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)到關(guān)系數(shù)據(jù)庫(kù)所用的時(shí)間。
3.2 原理
以轉(zhuǎn)儲(chǔ)3000點(diǎn)實(shí)時(shí)數(shù)據(jù)到關(guān)系數(shù)據(jù)庫(kù)為例,在關(guān)系庫(kù)記錄每條數(shù)據(jù)的生成時(shí)間,生成第3000條數(shù)據(jù)記錄的時(shí)間減去生成第1條數(shù)據(jù)記錄的時(shí)間就是我們想獲取的目標(biāo)時(shí)間。
關(guān)系數(shù)據(jù)庫(kù)中表的列名:UPDATETIME,TAGNAME,TAGVALUE,LOCALTIME
UPDATETIME :實(shí)時(shí)數(shù)據(jù)采集時(shí)間
TAGNAME : 點(diǎn)名
TAGVALUE : 點(diǎn)參數(shù),這里為PV
LOCALTIME : 關(guān)系數(shù)據(jù)庫(kù)生成此條數(shù)據(jù)的時(shí)間
假設(shè)第1個(gè)點(diǎn)的點(diǎn)名為TAG00000,第3000個(gè)點(diǎn)名為TAG02999,則目標(biāo)TIME為:
TIME = TAG02999.LOCALTIME - TAG00000.LOCALTIME
4 過程
以3000點(diǎn)實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)到關(guān)系數(shù)據(jù)庫(kù)為例,介紹測(cè)試過程,其它點(diǎn)數(shù)測(cè)試過程與其一致。
1.創(chuàng)建3000點(diǎn)工程,要求所有點(diǎn)保存歷史,保存精度為0。
2.利用紫金橋COMAPI接口編寫自動(dòng)設(shè)值程序給點(diǎn)設(shè)值,為3000個(gè)點(diǎn)同時(shí)設(shè)值,值為當(dāng)前時(shí)間的分鐘和秒數(shù).
如:當(dāng)前時(shí)間為4點(diǎn)30,則設(shè)值為430。
3.實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)組態(tài)
創(chuàng)建實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)任務(wù),小于10000點(diǎn)的實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ),只創(chuàng)建一個(gè)轉(zhuǎn)儲(chǔ)任務(wù),大于10000點(diǎn)的實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)任務(wù),每10000萬(wàn)點(diǎn)創(chuàng)建一個(gè)轉(zhuǎn)儲(chǔ)任務(wù),剩余不足10000點(diǎn)的數(shù)據(jù)劃分到一個(gè)轉(zhuǎn)儲(chǔ)任務(wù)中。
轉(zhuǎn)儲(chǔ)任務(wù)創(chuàng)建過程如下:
在紫金橋軟件的安裝目錄,找到DBMSDEF.exe雙擊運(yùn)行,對(duì)實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)組態(tài)進(jìn)行配置。

選擇【數(shù)據(jù)庫(kù)】選項(xiàng)卡,進(jìn)行如下配置。
名稱:T3000
數(shù)據(jù)庫(kù)名稱:新建數(shù)據(jù)源
數(shù)據(jù)表:T3000
表結(jié)構(gòu):窄行(每個(gè)位號(hào)一個(gè)記錄)

通過引入功能將3000點(diǎn)導(dǎo)入,如上圖。
選擇【其他】選項(xiàng)卡,進(jìn)行如下配置:
數(shù)據(jù)流向:實(shí)時(shí)庫(kù)到管理庫(kù)
啟始時(shí)間:置為當(dāng)前時(shí)間
更新周期:30秒
存儲(chǔ)方式:插入
保存天數(shù)與啟用斷線恢復(fù):默認(rèn)
點(diǎn)擊確定。
1.在紫金橋軟件的安裝目錄,找到DBMSDEF.exe雙擊運(yùn)行。
2.在DBMSDEF.exe的運(yùn)行界面觀察,當(dāng)發(fā)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)中已經(jīng)為數(shù)據(jù)轉(zhuǎn)儲(chǔ)創(chuàng)建完表T3000后,停止數(shù)據(jù)轉(zhuǎn)儲(chǔ)運(yùn)行。通過“Microsoft SQL Server Management Studio”工具查看關(guān)系庫(kù)中的數(shù)據(jù)轉(zhuǎn)儲(chǔ)情況,在數(shù)據(jù)庫(kù)“QWE”中修改表“T3000”增加列“localtime”,將此字段綁定為getdate(),數(shù)據(jù)類型設(shè)為DATETIME,這樣在每生成一條數(shù)據(jù)時(shí)會(huì)自動(dòng)將數(shù)據(jù)的生成時(shí)間記錄下來(lái)。
3.再次運(yùn)行數(shù)據(jù)轉(zhuǎn)儲(chǔ),數(shù)據(jù)轉(zhuǎn)儲(chǔ)運(yùn)行一段時(shí)間后將數(shù)據(jù)導(dǎo)入Excel中,獲取TAG00000點(diǎn)在關(guān)系庫(kù)中的生成時(shí)間和TAG02999點(diǎn)在關(guān)系庫(kù)中的生成時(shí)間,取兩者之差就是我們所要的完成3000點(diǎn)實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)到關(guān)系數(shù)據(jù)庫(kù)所用的時(shí)間。
4.每個(gè)數(shù)據(jù)轉(zhuǎn)儲(chǔ)最多只能轉(zhuǎn)儲(chǔ)10000點(diǎn),當(dāng)一個(gè)工程需要轉(zhuǎn)儲(chǔ)的點(diǎn)數(shù)大于10000點(diǎn)時(shí),需要?jiǎng)?chuàng)建多個(gè)數(shù)據(jù)轉(zhuǎn)儲(chǔ)。本次測(cè)試中轉(zhuǎn)儲(chǔ)點(diǎn)數(shù)小于10000點(diǎn)的,只創(chuàng)建了一個(gè)轉(zhuǎn)儲(chǔ)任務(wù)。大于10000點(diǎn)轉(zhuǎn)儲(chǔ)我們創(chuàng)建了多個(gè)轉(zhuǎn)儲(chǔ)任務(wù)。具體如下表:
表3 轉(zhuǎn)儲(chǔ)點(diǎn)數(shù)與轉(zhuǎn)儲(chǔ)任務(wù)對(duì)應(yīng)表

5 結(jié)果
表4 轉(zhuǎn)儲(chǔ)不同點(diǎn)數(shù)數(shù)據(jù)到關(guān)系數(shù)據(jù)庫(kù)所消耗的時(shí)間

6 結(jié)論
1.轉(zhuǎn)儲(chǔ)不同點(diǎn)數(shù)數(shù)據(jù)到關(guān)系數(shù)據(jù)庫(kù)所消耗的時(shí)間,為用戶做參考,如表4。
2.創(chuàng)建工程時(shí),一個(gè)區(qū)域所創(chuàng)建的點(diǎn)數(shù)需小于30000點(diǎn)。
3.每個(gè)實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)任務(wù)最多只能轉(zhuǎn)儲(chǔ)10000點(diǎn)數(shù)據(jù),多于10000點(diǎn)數(shù)據(jù),無(wú)法轉(zhuǎn)儲(chǔ)到關(guān)系數(shù)據(jù)庫(kù),如果一個(gè)工程中需要做實(shí)時(shí)轉(zhuǎn)儲(chǔ)的數(shù)據(jù)大于10000點(diǎn),請(qǐng)建多個(gè)實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)任務(wù)。
4.當(dāng)轉(zhuǎn)儲(chǔ)的點(diǎn)數(shù)較大時(shí),在點(diǎn)擊實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)組態(tài)對(duì)話框中【點(diǎn)定義】選項(xiàng)卡時(shí),界面會(huì)發(fā)生較長(zhǎng)時(shí)間未響應(yīng)現(xiàn)象,但不影響使用。
5.實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)的效率與計(jì)算機(jī)硬件配置、網(wǎng)絡(luò)通訊、SQL軟件版本等有很大關(guān)系,建議在使用數(shù)據(jù)轉(zhuǎn)儲(chǔ)工具時(shí),先按照工程實(shí)際點(diǎn)數(shù)測(cè)試,得出轉(zhuǎn)儲(chǔ)時(shí)間,看其能否滿足實(shí)際需要。
有任何關(guān)于組態(tài)軟件的技術(shù)問題或需要更多的技術(shù)資料,可以在微信(微信號(hào):Realinfo)留下聯(lián)系方式或者到http://www.realinfo.cc/交流論壇里提出,我們將及時(shí)為您解答。
|