建三維模型,其包括通信機(jī)房模型和通信設(shè)備模型,所述通信設(shè)備包括設(shè)備子架、單板和光纖。
[0024]1-1、電力系統(tǒng)通信機(jī)房規(guī)格有:省級(jí)調(diào)度中心通信機(jī)房、地市級(jí)調(diào)度中心通信機(jī)房、110KV/220KV/500KV等各級(jí)廠站通信機(jī)房;通信設(shè)備型號(hào)有:華為0SN1500、華為0SN2500、華為 0SN3500、華為 0SN7500 等系列。
[0025]通過對(duì)現(xiàn)場(chǎng)不同通信機(jī)房和通信設(shè)備的實(shí)際測(cè)量及通信機(jī)房建設(shè)資料和通信設(shè)備手冊(cè)資料,獲取每個(gè)通信機(jī)房和通信設(shè)備的三維尺寸、通信機(jī)房結(jié)構(gòu)圖、通信機(jī)房?jī)?nèi)飾圖、通信機(jī)房設(shè)備布局圖以及設(shè)備外觀圖。所述通信設(shè)備的三維尺寸即其長(zhǎng)度、寬度和高度。
[0026]依據(jù)真實(shí)的通信機(jī)房和通信設(shè)備尺寸數(shù)據(jù)及機(jī)房結(jié)構(gòu)圖,在3DMAX建模工具中按照1:1的尺寸創(chuàng)建通信機(jī)房和通信設(shè)備的三維模型;并依據(jù)通信機(jī)房?jī)?nèi)飾圖、通信設(shè)備外觀圖和通信設(shè)備布局圖,創(chuàng)建通信機(jī)房、通信設(shè)備的材質(zhì)來渲染通信機(jī)房和通信設(shè)備的三維模型效果。
[0027]1-2、在Unity中創(chuàng)建資源文件夾,并分類為通信機(jī)房模型庫和通信設(shè)備模型庫。將在3DMAX中創(chuàng)建好的通信機(jī)房.FBX三維模型文件拖入到通信機(jī)房模型庫中,將通信設(shè)備.FBX三維模型文件拖入到通信設(shè)備模型庫中。
[0028]在Unity中將機(jī)房模型庫中每種規(guī)格的機(jī)房三維模型初始位置坐標(biāo)(x,y, z),設(shè)置為(0,0,0);將設(shè)備模型庫中每種類型的設(shè)備三維模型初始位置坐標(biāo)(x,y,z),設(shè)置為(33,1-7, 3.8),此坐標(biāo)為設(shè)備在機(jī)房模型中擺放時(shí)指定的起始坐標(biāo)。將上述設(shè)置好初始坐標(biāo)的機(jī)房模型和設(shè)備模型保存成為.prefab預(yù)設(shè)模型文件,并分別存到Unity的機(jī)房模型庫和設(shè)備模型庫中。
[0029]步驟2.、在Unity中新建C#程序讀取自定義配置文件,自動(dòng)生成三維場(chǎng)景。
[0030]2-1、自定義配置文件中分層次定義了機(jī)房類型、網(wǎng)元個(gè)數(shù)、每個(gè)網(wǎng)元的設(shè)備型號(hào)、設(shè)備每個(gè)槽位的單板型號(hào),如圖2所示。
[0031]所述自定義配置文件的第一層定義了機(jī)房類型的名稱和網(wǎng)元的個(gè)數(shù);其第二層定義了不同網(wǎng)元的網(wǎng)元編號(hào)、設(shè)備類型名稱;其第三層定義了設(shè)備每個(gè)槽位編號(hào)及對(duì)應(yīng)的單板類型名稱。
[0032]所述自定義配置文件的層次結(jié)構(gòu)如圖2所示。
[0033]下列是一個(gè)應(yīng)用實(shí)例中的配置文件定義格式:
[220kv_2]
<1_0SN7500>
Slot_l_SL16A
Slot_2_NULL
Slot_38_NULL
<2_0SN7500>
Slot_l_SL16A
Slot_2_NULL
Slot_38_NULL
在[220kv_2]中,“220kv”為機(jī)房規(guī)格名稱,“2”為網(wǎng)元個(gè)數(shù);
在<1_0SN7500>和<2_0SN7500>中,“ I ”和“2”為網(wǎng)元編號(hào),“0SN7500”為網(wǎng)元編號(hào)對(duì)應(yīng)的設(shè)備型號(hào)名稱,
在Slot_l_SL16A和Slot_2_NULL中,“Slot”為設(shè)備槽位名稱關(guān)鍵字,“ I”和“2”為設(shè)備槽位號(hào),“SL16A”為該槽位所插單板的型號(hào)名稱,“NULL”表示該槽位插入空單板。
[0034]2-2、讀取所述自定義配置文件,解析該文件中的數(shù)據(jù):
掃描文件中的“[]”,如果未找到“[]”結(jié)束處理;如果找到了,取出“ □”中的字符串,并分割前后的的字符串和數(shù)據(jù),并分別賦值給程序中的機(jī)房名變量和循環(huán)變量;
掃描文件中的“〈>”,取出“〈>”中的字符串,并分割“_”前后的的數(shù)據(jù)和字符串,并分別賦值給程序中的循環(huán)變量和設(shè)備名變量;
掃描“Slot”關(guān)鍵字,分割前后的的數(shù)據(jù)和字符串,并分別賦值給程序中的循環(huán)變量和單板名變量;
2-3、根據(jù)從文件中讀取到的機(jī)房名稱、設(shè)備名稱、單板名稱以及網(wǎng)元數(shù)量,通過C#程序循環(huán)調(diào)用Unity中的Resources.Load (Name)方法,從Unity中的機(jī)房模型庫和設(shè)備模型庫中載入之前預(yù)設(shè)好的.prefab模型;機(jī)房模型和第一個(gè)載入的設(shè)備模型將會(huì)按照之前設(shè)定好的位置擺放到三維場(chǎng)景中,之后循環(huán)載入的設(shè)備模型將根據(jù)Unity中transform,posit1n = new Vector3 ((f loat) (33.0-2.0*i),1.7f, 3.8f)方法,重新自動(dòng)設(shè)定相應(yīng)的位置。
[0035]步驟3、如圖3所示,在三維場(chǎng)景仿真模塊中新建監(jiān)聽線程,訂閱實(shí)時(shí)數(shù)據(jù)庫的消息頻道,獲取通信設(shè)備仿真模塊中仿真設(shè)備運(yùn)行狀態(tài)的實(shí)時(shí)消息。
[0036]3-1、三維場(chǎng)景仿真模塊與通信設(shè)備仿真模塊,通過Redis數(shù)據(jù)庫的“訂閱/發(fā)布”機(jī)制進(jìn)行消息和數(shù)據(jù)的傳輸,三維場(chǎng)景仿真模塊根據(jù)所訂閱的消息頻道,監(jiān)聽接收通信設(shè)備仿真模塊發(fā)送來的消息,并根據(jù)消息中的內(nèi)容,實(shí)時(shí)更新設(shè)備模型的指示燈的狀態(tài)。
[0037]3-2、三維場(chǎng)景仿真模塊接收來自通信設(shè)備仿真模塊的消息并進(jìn)行解析,此消息的協(xié)議格式為:“狀態(tài)標(biāo)志_故障類型_網(wǎng)元設(shè)備ID_設(shè)備槽位ID”。
[0038]當(dāng)三維場(chǎng)景仿真模塊接收到消息后,對(duì)消息進(jìn)行解析:根據(jù)將消息進(jìn)行分割,首先判斷狀態(tài)標(biāo)志位,如果為0,則屬于正常狀態(tài),此時(shí)根據(jù)正常狀態(tài)的指示燈顯示規(guī)則刷新三維設(shè)備模型的指示燈狀態(tài);如果標(biāo)志位為1,則屬于異常狀態(tài),此時(shí)繼續(xù)判斷故障類型,包括:斷纖、光纖劣化、單板離線、單板損壞等;確定故障類型后,判斷故障點(diǎn):網(wǎng)元設(shè)備ID和設(shè)備槽位ID,此后根據(jù)設(shè)備故障狀態(tài)時(shí)指示燈的顯示規(guī)則,更改對(duì)應(yīng)故障點(diǎn)模型的指示燈為告警狀態(tài)。
[0039]監(jiān)聽線程接收消息示例如下:
“1_ 斷纖 _2_8”;
“I”表示此時(shí)為故障狀態(tài),故障類型為“斷纖”,故障點(diǎn)為網(wǎng)元2對(duì)應(yīng)設(shè)備的第8槽位單板所接的光纖。
[0040]步驟4、在三維場(chǎng)景中操作設(shè)備或修復(fù)設(shè)備故障,并將操作信息發(fā)送給通信設(shè)備仿真模塊,進(jìn)行仿真計(jì)算和判斷。
[0041]4-1、在三維場(chǎng)景中根據(jù)告警指示,在相應(yīng)故障點(diǎn)查找引發(fā)告警的故障設(shè)備,并根據(jù)故障類型進(jìn)行相應(yīng)的修復(fù)操作,包括:更換光纖,更換單板等;
故障修復(fù)操作步驟為:鍵盤控制Unity場(chǎng)景中的主攝像機(jī)模型移動(dòng)到故障點(diǎn)設(shè)備所處的位置,鼠標(biāo)選中所要修復(fù)的設(shè)備模型,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇操作項(xiàng),如“更換設(shè)備”,然后在彈出的設(shè)備選取界面中,選擇相應(yīng)型號(hào)的設(shè)備,點(diǎn)擊更換按鈕,完成更換設(shè)備的操作。
[0042]4-2、完成修復(fù)操作后,三維場(chǎng)景仿真模塊向通信設(shè)備仿真模塊發(fā)送操作消息,包括修復(fù)設(shè)備的ID和操作的類型。其消息格式為:“操作類型_網(wǎng)元設(shè)備ID_設(shè)備槽位ID”。
[0043]如下所示:
“更換光纖_2_8”;
此消息表示,更換了網(wǎng)元2設(shè)備第8槽位單板所接的光纖。
[0044]4-3、三維場(chǎng)景仿真模塊中的監(jiān)聽線程,接收通信設(shè)備仿真模塊發(fā)送來的仿真計(jì)算結(jié)果:
如果之前修復(fù)操作無誤,則三維場(chǎng)景仿真模塊中的監(jiān)聽線程會(huì)接收到正常狀態(tài)的消息,從而更新三維場(chǎng)景中相應(yīng)設(shè)備的指示燈恢復(fù)到正常狀態(tài);如果之前的故障修復(fù)操作有誤,則三維場(chǎng)景仿真模塊中的監(jiān)聽線程仍將接收到異常狀態(tài)的消息,三維場(chǎng)景中相應(yīng)設(shè)備的指示燈仍然顯示異常狀態(tài),此時(shí),可繼續(xù)執(zhí)行步驟4,進(jìn)行故障的檢查和修復(fù)并發(fā)送操作消息,如此訓(xùn)循環(huán)執(zhí)行。
[0045]進(jìn)一步的,所述自定義配置文件中分層次定義指的是第一層定義機(jī)房類型的名稱和網(wǎng)元的個(gè)數(shù);其第二層定義不同網(wǎng)元的網(wǎng)元編號(hào)、設(shè)備類型名稱;其第三層定義設(shè)備每個(gè)槽位編號(hào)及對(duì)應(yīng)的單板類型名稱。
[0046]進(jìn)一步的,所述步驟3中獲取生成三維場(chǎng)景仿真模塊所需的外部實(shí)時(shí)數(shù)據(jù)包括:設(shè)備單板指示燈狀態(tài)、設(shè)備當(dāng)前告警狀態(tài)、設(shè)備光模塊和光纖當(dāng)前的光功率值。
[0047]進(jìn)一步的,所述三維場(chǎng)景仿真模塊包括場(chǎng)景顯示模塊和場(chǎng)景操作模塊;所述場(chǎng)景顯示模塊的數(shù)據(jù)輸入端接外部的三維仿真模型庫和場(chǎng)景配置文件庫,所述場(chǎng)景操作模塊的控制輸出端接入場(chǎng)景顯示模塊的指令輸入端,所述場(chǎng)景操作模塊經(jīng)
數(shù)據(jù)通信模塊與外部的設(shè)備仿真程序相通信。所述三維場(chǎng)景仿真模塊是真實(shí)通信機(jī)房的虛擬化可視化仿真場(chǎng)景,培訓(xùn)人員可在該場(chǎng)景中完成巡視和操作設(shè)備等功能。
[0048]外部的所述三維仿真模型庫包括通信機(jī)房模型庫和通信設(shè)備模型庫;所述通信機(jī)房模型庫包括省級(jí)調(diào)度中心通信機(jī)房三維模型、地市級(jí)調(diào)度中心通信機(jī)房三維模型、110KV/22