李繁榮 (慶新油田開(kāi)發(fā)有限責(zé)任公司,黑龍江 安達(dá)151413)
近年來(lái),隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,虛擬現(xiàn)實(shí)仿真技術(shù)在石油化工、電力和城市規(guī)劃等領(lǐng)域得到了廣泛的應(yīng)用[1-4]。該技術(shù)不但具有直觀的整體和細(xì)節(jié)表現(xiàn)能力,而且能夠?qū)崿F(xiàn)各種硬件設(shè)備與三維場(chǎng)景的實(shí)時(shí)交互功能,其中中視典公司發(fā)布的VRP虛擬現(xiàn)實(shí)軟件以其簡(jiǎn)潔易用和中文腳本編程等特點(diǎn)受到國(guó)內(nèi)業(yè)界的廣泛關(guān)注[5]。
大慶油田慶新油田有限責(zé)任公司自2010年以來(lái),大力開(kāi)展數(shù)字化油田建設(shè)并取得顯著成果,油田生產(chǎn)運(yùn)行管理水平和工藝設(shè)備的智能化程度得到全面提升,這給油田技術(shù)人才培養(yǎng)和崗位培訓(xùn)工作提出了全新要求。因此,基于VRP虛擬現(xiàn)實(shí)技術(shù)的數(shù)字化油田崗位仿真培訓(xùn)系統(tǒng) (簡(jiǎn)稱(chēng)仿真培訓(xùn)系統(tǒng))的開(kāi)發(fā)成為必然趨勢(shì)。在仿真培訓(xùn)系統(tǒng)的開(kāi)發(fā)過(guò)程中,如何實(shí)現(xiàn)VRP與數(shù)據(jù)庫(kù)交互是系統(tǒng)開(kāi)發(fā)人員感到棘手的一個(gè)問(wèn)題。下面,筆者結(jié)合仿真培訓(xùn)系統(tǒng)的開(kāi)發(fā)過(guò)程,著重探討VRP訪問(wèn)SQL Server數(shù)據(jù)庫(kù)技術(shù)的實(shí)現(xiàn)方法。
圖1 虛擬仿真系統(tǒng)的功能結(jié)構(gòu)圖
根據(jù)油田石油開(kāi)采和集輸崗位培訓(xùn)的要求,虛擬仿真系統(tǒng)應(yīng)具備工藝覆蓋全面性、操作流程準(zhǔn)確性、仿真場(chǎng)景真實(shí)性、系統(tǒng)交互實(shí)時(shí)性等特點(diǎn)。另外,還要兼顧正常流程操作和事故應(yīng)急操作,實(shí)現(xiàn)原油集輸工藝過(guò)程的全方位仿真模擬。虛擬仿真系統(tǒng)的功能結(jié)構(gòu)圖如圖1所示,具體功能要求可以歸納為以下幾個(gè)方面:①建立三維模型清晰描述原油集輸各生產(chǎn)設(shè)備結(jié)構(gòu)原理,真實(shí)反映設(shè)備內(nèi)部器件構(gòu)造以及器件間相互作用機(jī)理;②借助聲音、圖像、動(dòng)畫(huà)、文字等信息手段準(zhǔn)確描繪原油集輸各生產(chǎn)環(huán)節(jié)工藝流程、技術(shù)操作和安全事項(xiàng);③建立虛擬現(xiàn)實(shí)場(chǎng)景,虛擬真實(shí)生產(chǎn)設(shè)備和流程;④建立正常生產(chǎn)操作和事故應(yīng)急操作任務(wù)庫(kù),模擬真實(shí)系統(tǒng)存在的各種生產(chǎn)和應(yīng)急操作,并能根據(jù)學(xué)員的操作過(guò)程進(jìn)行智能判識(shí)。⑤建立交互功能良好的用戶(hù)操作界面,利用數(shù)據(jù)庫(kù)技術(shù)實(shí)現(xiàn)用戶(hù)登錄和設(shè)備信息管理。
為了實(shí)現(xiàn)虛擬仿真系統(tǒng)用戶(hù)登錄管理和設(shè)備信息查詢(xún)功能,必須建立數(shù)據(jù)庫(kù)對(duì)相應(yīng)信息進(jìn)行存儲(chǔ)和管理,由于VRP與SQL Server數(shù)據(jù)庫(kù)兼容性較好,因此在系統(tǒng)設(shè)計(jì)中使用SQL Server數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ)。在VRP編輯器中,訪問(wèn)SQL Server數(shù)據(jù)庫(kù)的常用方法包括利用lua文件訪問(wèn)和利用VRP數(shù)據(jù)庫(kù)工具訪問(wèn)。
圖2 VRP加載lua文件腳本
lua是一個(gè)小巧的腳本語(yǔ)言,由標(biāo)準(zhǔn)C編寫(xiě)而成,代碼簡(jiǎn)潔優(yōu)美,幾乎在所有操作系統(tǒng)和平臺(tái)上都可以編譯和運(yùn)行[6]。該語(yǔ)言能嵌入應(yīng)用程序中,為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。在VRP訪問(wèn)數(shù)據(jù)庫(kù)應(yīng)用中,需要先編寫(xiě)lua腳本文件,然后在VRP腳本編輯器中加載lua文件即可,VRP腳本編輯器加載lua文件腳本如圖2所示。
VRP編輯器支持?jǐn)?shù)據(jù)庫(kù)訪問(wèn),內(nèi)部集成了數(shù)據(jù)庫(kù)工具,當(dāng)前Vision 11.0版本支持ACCESS、Oracle、SQL Server以及 MySQL數(shù)據(jù)庫(kù)的連接與訪問(wèn)。在VRP編輯器數(shù)據(jù)庫(kù)工具欄下,設(shè)有“連接數(shù)據(jù)庫(kù)”、“關(guān)聯(lián)操作”和“搜索查詢(xún)”3個(gè)選項(xiàng)卡,分別負(fù)責(zé)數(shù)據(jù)庫(kù)連接、虛擬對(duì)象與數(shù)據(jù)庫(kù)的關(guān)聯(lián)操作和數(shù)據(jù)庫(kù)查詢(xún)功能的實(shí)現(xiàn)。
圖3 虛擬仿真系統(tǒng)登錄界面
系統(tǒng)登錄界面主要用于學(xué)員登錄權(quán)限信息的查詢(xún)和管理,保障系統(tǒng)的安全性和使用范圍 (見(jiàn)圖3)。下面主要介紹基于lua語(yǔ)言的數(shù)據(jù)庫(kù)訪問(wèn)腳本的編寫(xiě)過(guò)程。
登錄程序主要由數(shù)據(jù)庫(kù)連接子程序、初始化子程序、用戶(hù)登錄子程序、用戶(hù)注冊(cè)子程序和數(shù)據(jù)庫(kù)關(guān)閉子程序構(gòu)成。數(shù)據(jù)庫(kù)連接和關(guān)閉子程序主要用于數(shù)據(jù)庫(kù)的連接、數(shù)據(jù)表的打開(kāi)、存儲(chǔ)數(shù)據(jù)的提交以及數(shù)據(jù)庫(kù)的關(guān)閉;初始化子程序主要完成變量及其類(lèi)型的定義和賦值;用戶(hù)登錄子程序用于獲取用戶(hù)輸入的“用戶(hù)名”和“密碼”數(shù)據(jù),并將該數(shù)據(jù)與數(shù)據(jù)庫(kù)內(nèi)存儲(chǔ)的注冊(cè)數(shù)據(jù)進(jìn)行比較,如果與注冊(cè)數(shù)據(jù)一致則系統(tǒng)轉(zhuǎn)入歡迎界面,否則提示錯(cuò)誤用戶(hù)信息;用戶(hù)注冊(cè)子程序?qū)⒂脩?hù)在文本輸入框中輸入的“用戶(hù)名”和“密碼”數(shù)據(jù)存儲(chǔ)在SQL Sever數(shù)據(jù)庫(kù)中并形成數(shù)據(jù)列表,作為用戶(hù)再次登錄的權(quán)限信息。
圖4 虛擬設(shè)備功能描述數(shù)據(jù)庫(kù)工具設(shè)置
在虛擬仿真系統(tǒng)設(shè)計(jì)中,為實(shí)現(xiàn)與三維仿真設(shè)備部件有關(guān)的功能信息描述和賦值等操作,可以通過(guò)VRP數(shù)據(jù)庫(kù)工具連接SQL Server數(shù)據(jù)庫(kù),并進(jìn)行關(guān)聯(lián)操作。下面以減速箱為例說(shuō)明具體設(shè)計(jì)過(guò)程。
1)數(shù)據(jù)庫(kù)連接 打開(kāi) [數(shù)據(jù)庫(kù)]面板,在 [連接數(shù)據(jù)庫(kù)]面板下選擇數(shù)據(jù)庫(kù)類(lèi)型為 [SQL Server],然后單擊 [設(shè)置]按鈕,在彈出的面板中輸入數(shù)據(jù)庫(kù)服務(wù)器地址與數(shù)據(jù)庫(kù)名稱(chēng),輸入數(shù)據(jù)庫(kù)的 [用戶(hù)]和 [密碼],接著點(diǎn)擊 [連接數(shù)據(jù)庫(kù)]按鈕,將當(dāng)前的數(shù)據(jù)庫(kù)進(jìn)行連接。檢查數(shù)據(jù)庫(kù)的連接狀態(tài)是否成功,如果連接成功,數(shù)據(jù)庫(kù)連接狀態(tài)會(huì)更新,并顯示當(dāng)前連接的數(shù)據(jù)庫(kù)和連接狀態(tài)。連接成功后,單擊[顯示數(shù)據(jù)]按鈕,可以顯示數(shù)據(jù)庫(kù)記錄信息。在 [連接數(shù)據(jù)庫(kù)]面板下面,勾選 [保存登錄信息到vrp文件]選項(xiàng)和勾選 [下次打開(kāi)場(chǎng)景自動(dòng)連接數(shù)據(jù)庫(kù)]選項(xiàng)。數(shù)據(jù)庫(kù)連接界面如圖4(a)所示。
2)關(guān)聯(lián)操作設(shè)置 關(guān)聯(lián)操作目的是將數(shù)據(jù)庫(kù)記錄和VRP對(duì)象建立起聯(lián)系,建立起聯(lián)系以后,點(diǎn)擊場(chǎng)景中的對(duì)象,就能根據(jù)關(guān)聯(lián)信息查詢(xún)到對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄。VRP中數(shù)據(jù)庫(kù)關(guān)聯(lián)操作設(shè)置如圖4(b)所示。
選擇減速箱模型,單擊 [記錄列表]按鈕,在彈出的數(shù)據(jù)庫(kù)記錄中,選擇相應(yīng)的記錄。然后單擊 [新建關(guān)聯(lián)]按鈕,完成模型與數(shù)據(jù)庫(kù)的關(guān)聯(lián),關(guān)聯(lián)操作設(shè)置完成,列表中會(huì)列出當(dāng)前已經(jīng)添加的關(guān)聯(lián)。點(diǎn)擊快捷鍵F5,預(yù)覽添加數(shù)據(jù)庫(kù)后的效果圖如圖5所示。
圖5 模型添加數(shù)據(jù)庫(kù)后信息顯示效果圖
針對(duì)仿真培訓(xùn)系統(tǒng)的開(kāi)發(fā)過(guò)程中VRP與數(shù)據(jù)庫(kù)交互的問(wèn)題,提出了VRP訪問(wèn)SQL Server數(shù)據(jù)庫(kù)的方法。應(yīng)用實(shí)例分析表明,采用VRP訪問(wèn)SQL Server數(shù)據(jù)庫(kù)的方法是可行的,能夠提高仿真培訓(xùn)系統(tǒng)設(shè)計(jì)的靈活性和可擴(kuò)展性。
[1]朱巖,鮑泓,張姝,等 .場(chǎng)景三維仿真漫游系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [J].2010,24(4):7-11.
[2]張永翔,段少輝,楊衛(wèi)東,等 .深圳供電局變電培訓(xùn)仿真系統(tǒng) [J].電網(wǎng)技術(shù),2000,24(1):16-18.
[3]張東英,葛亮,楊以涵,等.500kV綜合自動(dòng)化變電站仿真培訓(xùn)系統(tǒng)的實(shí)現(xiàn) [J].電網(wǎng)技術(shù),2001,25(6):64-67.
[4]唐小惠,楊濤 .基于虛擬現(xiàn)實(shí)技術(shù)的變電站檢修系統(tǒng)研究與設(shè)計(jì) [J].農(nóng)業(yè)科技與裝備,2011(12):40-42.
[5]羅陸鋒,鄒湘軍,劉天湖,等 .大數(shù)據(jù)量虛擬景觀的三維模型優(yōu)化與漫游 [J].系統(tǒng)仿真學(xué)報(bào),2009,21(6):1654-1657.
[6]曹彤 .虛擬博物館的三維場(chǎng)景構(gòu)造及交互漫游實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(2):6006-6011.