申秋羚 林毅
(海南水文地質(zhì)工程地質(zhì)勘察院,海南 ???571100)
建(構(gòu))筑物的沉降監(jiān)測(cè)是一項(xiàng)十分重要的工作,根據(jù)基準(zhǔn)點(diǎn)對(duì)在建(構(gòu))筑物上設(shè)置的觀測(cè)點(diǎn)進(jìn)行沉降監(jiān)測(cè),并對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、分析,得出沉降趨勢(shì),可提前對(duì)危險(xiǎn)狀況作出預(yù)警。沉降監(jiān)測(cè)周期較長(zhǎng),監(jiān)測(cè)數(shù)據(jù)量大,常規(guī)統(tǒng)計(jì)方法大多使用平差軟件對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行計(jì)算,并采用Excel 記錄和保存得到各監(jiān)測(cè)點(diǎn)的高程,再利用Excel 的簡(jiǎn)單計(jì)算功能統(tǒng)計(jì)出各觀測(cè)點(diǎn)的相關(guān)數(shù)據(jù),最后繪制出相應(yīng)的沉降曲線圖。上述方法采用人工統(tǒng)計(jì)數(shù)據(jù),效率低,易出錯(cuò)。為加強(qiáng)監(jiān)測(cè)數(shù)據(jù)管理,提高數(shù)據(jù)處理的效率和準(zhǔn)確性,基于Excel VBA 編程語(yǔ)言設(shè)計(jì)開發(fā)沉降監(jiān)測(cè)數(shù)據(jù)自動(dòng)化處理系統(tǒng),可以實(shí)現(xiàn)沉降監(jiān)測(cè)統(tǒng)計(jì)表、沉降監(jiān)測(cè)曲線圖的自動(dòng)化生成,具有較好的應(yīng)用效果。
Excel 具有強(qiáng)大的制表、運(yùn)算和數(shù)據(jù)分析功能[1],直觀的界面交互、便捷的數(shù)據(jù)錄入、強(qiáng)大的公式計(jì)算和豐富的圖表繪制功能成為最流行的數(shù)據(jù)處理軟件。
VBA 是一種通用程序設(shè)計(jì)開發(fā)編程語(yǔ)言,功能強(qiáng)大、直觀易用[2],以Excel 軟件本身作為開發(fā)平臺(tái),利用其內(nèi)嵌的VBA 語(yǔ)言進(jìn)行二次開發(fā),使得編程工作變得相對(duì)簡(jiǎn)單。VBA 嵌入Excel 中用于定制和擴(kuò)展Excel 功能,可方便地被其他應(yīng)用程序以O(shè)LE自動(dòng)化形式調(diào)用和控制,用戶可輕松錄制或開發(fā)出自動(dòng)化的處理程序。Excel VBA 中的應(yīng)用程序?qū)ο驛pplication、工作簿對(duì)象Workbook、工作表對(duì)象Worksheet、行列區(qū)域?qū)ο驲ange、單元格對(duì)象Cell、窗體控件、圖表控件等[3]對(duì)象層次分明,封裝的屬性和方法極大地方便了功能需求的實(shí)現(xiàn)。
Excel 可以存儲(chǔ)和輸出沉降監(jiān)測(cè)數(shù)據(jù),并完成復(fù)雜的數(shù)據(jù)運(yùn)算,但不能自動(dòng)化處理這些數(shù)據(jù)。要實(shí)現(xiàn)從導(dǎo)入監(jiān)測(cè)數(shù)據(jù)到輸出成果的全程自動(dòng)化處理,需要利用Excel 自帶的VBA 進(jìn)行二次開發(fā)。
系統(tǒng)開發(fā)流程為:(1)源數(shù)據(jù)預(yù)處理:對(duì)電子水準(zhǔn)儀的源數(shù)據(jù)進(jìn)行預(yù)處理,檢查限差,生成測(cè)段數(shù)據(jù)表和往返測(cè)觀測(cè)值平均值數(shù)據(jù)表等;(2)源數(shù)據(jù)計(jì)算:計(jì)算各測(cè)段高差、測(cè)段距離及測(cè)站數(shù),并生成平差軟件所需的數(shù)據(jù)格式并平差;(3)平差后數(shù)據(jù)導(dǎo)入:根據(jù)平差得出的沉降監(jiān)測(cè)點(diǎn)高程值,通過VBA 編程實(shí)現(xiàn)自動(dòng)導(dǎo)入沉降監(jiān)測(cè)成果表中;(4)生成變形曲線圖表:VBA 編程自動(dòng)生成各變形觀測(cè)點(diǎn)的高程值和變形曲線圖表;(5)編寫成果分析文件:提取各變形觀測(cè)點(diǎn)的本期沉降量、累積沉降量、沉降速率,并進(jìn)行統(tǒng)計(jì)分析,自動(dòng)編寫成果分析文件。
結(jié)合沉降監(jiān)測(cè)的工作流程,系統(tǒng)設(shè)置了一個(gè)較為簡(jiǎn)潔的用戶界面,通過點(diǎn)擊菜單按鈕即可調(diào)用各功能模塊,提高了使用的便利性,如圖1 所示。

圖1 系統(tǒng)界面
(1)沉降監(jiān)測(cè)數(shù)據(jù)處理
在Excel 表中新增“沉降監(jiān)測(cè)數(shù)據(jù)處理”工具欄,在該工具欄中編程添加“手簿檢查”“統(tǒng)計(jì)觀測(cè)數(shù)據(jù)”“往返測(cè)數(shù)據(jù)取平均值”“生成平差易數(shù)據(jù)”子命令菜單。分別實(shí)現(xiàn)對(duì)原始監(jiān)測(cè)數(shù)據(jù)的限差檢查、生成測(cè)段數(shù)據(jù)表格、生成往返測(cè)觀測(cè)值平均值數(shù)據(jù)表格、生成符合要求的數(shù)據(jù)格式。
該模塊的編程思路為:①把控制網(wǎng)的原始監(jiān)測(cè)數(shù)據(jù)導(dǎo)入同一個(gè)Excel 文檔不同的表中,在文檔工具欄位置調(diào)出“沉降監(jiān)測(cè)數(shù)據(jù)處理”菜單。② 通過“統(tǒng)計(jì)觀測(cè)數(shù)據(jù)”,輸入往測(cè)或返測(cè)數(shù)據(jù)所在的工作表名,可自動(dòng)生成測(cè)段起點(diǎn)號(hào)、測(cè)段終點(diǎn)號(hào)、測(cè)段距離、測(cè)段高差及測(cè)段測(cè)站數(shù),同時(shí)自動(dòng)生成一個(gè)“往返測(cè)較差比較”表,數(shù)據(jù)可自動(dòng)導(dǎo)入該表。③ 往返測(cè)測(cè)段數(shù)據(jù)生成后,通過“往返測(cè)取平均”命令,在“往返測(cè)較差比較”表中生成測(cè)段平均距離、平均高差、測(cè)段測(cè)站數(shù)。如測(cè)段高差超限,高差的差值欄則以紅色來(lái)標(biāo)示,該測(cè)段的平均高差不再進(jìn)行計(jì)算,需外業(yè)返工重測(cè)。④ 往返測(cè)測(cè)段數(shù)據(jù)合限取平均后,自動(dòng)生成符合要求的數(shù)據(jù)格式。該模塊的部分代碼如下:

(2)導(dǎo)入平差高程數(shù)據(jù)
自動(dòng)生成一個(gè)Excel 工作簿,把平差后的沉降監(jiān)測(cè)點(diǎn)高程全部導(dǎo)入表格中。該模塊的編程思路為:①打開平差軟件進(jìn)行平差計(jì)算,得到平差計(jì)算后的點(diǎn)高程值。②通過“導(dǎo)入平差高程數(shù)據(jù)”命令,把監(jiān)測(cè)點(diǎn)高程成果導(dǎo)入Excel 工作表。部分代碼如下:

(3)往沉降表中填寫高程
在Excel 中增加一個(gè)“往沉降表中填寫高程”工具欄,把平差得到的各沉降監(jiān)測(cè)點(diǎn)的高程按照點(diǎn)名一一對(duì)應(yīng),導(dǎo)入各建(構(gòu))筑物沉降監(jiān)測(cè)成果表。該模塊的編程思路為:①點(diǎn)擊“統(tǒng)計(jì)觀測(cè)數(shù)據(jù)”,根據(jù)輸入沉降監(jiān)測(cè)路線的表名,自動(dòng)在該表中生成測(cè)段起點(diǎn)號(hào)、測(cè)段終點(diǎn)號(hào)、測(cè)段距離、測(cè)段高差及測(cè)段測(cè)站數(shù),把在該沉降監(jiān)測(cè)路線表中生成的平差成果數(shù)據(jù)輸出到保存目錄下,并以表名稱.txt 文件來(lái)保存。② 選擇需要填入沉降監(jiān)測(cè)點(diǎn)成果的建(構(gòu))筑物名稱,點(diǎn)擊命令按鈕“往沉降表中填寫高程”,在彈出的對(duì)話框中,輸入建(構(gòu))筑物表名稱、觀測(cè)點(diǎn)數(shù)及第幾次觀測(cè)等,便自動(dòng)把“平差后高程”表中的與建(構(gòu))筑物表觀測(cè)點(diǎn)號(hào)相同的沉降數(shù)據(jù)填寫到該表中。部分代碼如下:

(4)建立變形曲線圖表
利用VBA 編程對(duì)各變形觀測(cè)點(diǎn)的高程值自動(dòng)生成直觀的變形曲線圖表,繪制曲線為系統(tǒng)的重要功能和核心部分,根據(jù)時(shí)間和沉降量組成的點(diǎn)陣畫出一列點(diǎn),用輕量級(jí)多義線連接所有點(diǎn),最后對(duì)多義線擬合成沉降量曲線圖表和累計(jì)沉降量曲線圖表[4]。代碼如下:

(5)成果分析
提取各變形觀測(cè)點(diǎn)的本期沉降量、累積沉降量、沉降速率等,并進(jìn)行統(tǒng)計(jì)分析,導(dǎo)出分析結(jié)果。

2021 年7 月,在某電廠建(構(gòu))筑物沉降監(jiān)測(cè)項(xiàng)目中,采用沉降監(jiān)測(cè)數(shù)據(jù)處理系統(tǒng)對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行統(tǒng)計(jì),系統(tǒng)可直接調(diào)入原始監(jiān)測(cè)數(shù)據(jù),避免手工輸入的錯(cuò)誤;然后依次按照程序設(shè)計(jì)的步驟,利用軟件自動(dòng)進(jìn)行各項(xiàng)數(shù)據(jù)的計(jì)算和處理,最終自動(dòng)生成相應(yīng)的表格和變形曲線圖表,如表1 和圖2 所示。

表1 累計(jì)沉降成果

圖2 累計(jì)沉降量曲線
Excel VBA 簡(jiǎn)單易掌握,其代碼便于修改的特性為普通Excel 用戶的日常工作帶來(lái)了便利[5]。本文利用Excel VBA 設(shè)計(jì)并開發(fā)了沉降監(jiān)測(cè)數(shù)據(jù)自動(dòng)化處理系統(tǒng),實(shí)現(xiàn)了沉降監(jiān)測(cè)數(shù)據(jù)的自動(dòng)化統(tǒng)計(jì),可直接生成可視化監(jiān)測(cè)成果,與傳統(tǒng)方式相比,系統(tǒng)減少了人為干預(yù),降低了勞動(dòng)強(qiáng)度,提高了數(shù)據(jù)處理的效率和準(zhǔn)確度,具有較強(qiáng)的實(shí)用性。