基于Unity动态技术生成三维场景仿真方法_2

文档序号:9288831阅读:来源:国知局
建三维模型,其包括通信机房模型和通信设备模型,所述通信设备包括设备子架、单板和光纤。
[0024]1-1、电力系统通信机房规格有:省级调度中心通信机房、地市级调度中心通信机房、110KV/220KV/500KV等各级厂站通信机房;通信设备型号有:华为0SN1500、华为0SN2500、华为 0SN3500、华为 0SN7500 等系列。
[0025]通过对现场不同通信机房和通信设备的实际测量及通信机房建设资料和通信设备手册资料,获取每个通信机房和通信设备的三维尺寸、通信机房结构图、通信机房内饰图、通信机房设备布局图以及设备外观图。所述通信设备的三维尺寸即其长度、宽度和高度。
[0026]依据真实的通信机房和通信设备尺寸数据及机房结构图,在3DMAX建模工具中按照1:1的尺寸创建通信机房和通信设备的三维模型;并依据通信机房内饰图、通信设备外观图和通信设备布局图,创建通信机房、通信设备的材质来渲染通信机房和通信设备的三维模型效果。
[0027]1-2、在Unity中创建资源文件夹,并分类为通信机房模型库和通信设备模型库。将在3DMAX中创建好的通信机房.FBX三维模型文件拖入到通信机房模型库中,将通信设备.FBX三维模型文件拖入到通信设备模型库中。
[0028]在Unity中将机房模型库中每种规格的机房三维模型初始位置坐标(x,y, z),设置为(0,0,0);将设备模型库中每种类型的设备三维模型初始位置坐标(x,y,z),设置为(33,1-7, 3.8),此坐标为设备在机房模型中摆放时指定的起始坐标。将上述设置好初始坐标的机房模型和设备模型保存成为.prefab预设模型文件,并分别存到Unity的机房模型库和设备模型库中。
[0029]步骤2.、在Unity中新建C#程序读取自定义配置文件,自动生成三维场景。
[0030]2-1、自定义配置文件中分层次定义了机房类型、网元个数、每个网元的设备型号、设备每个槽位的单板型号,如图2所示。
[0031]所述自定义配置文件的第一层定义了机房类型的名称和网元的个数;其第二层定义了不同网元的网元编号、设备类型名称;其第三层定义了设备每个槽位编号及对应的单板类型名称。
[0032]所述自定义配置文件的层次结构如图2所示。
[0033]下列是一个应用实例中的配置文件定义格式:
[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”为机房规格名称,“2”为网元个数;
在<1_0SN7500>和<2_0SN7500>中,“ I ”和“2”为网元编号,“0SN7500”为网元编号对应的设备型号名称,
在Slot_l_SL16A和Slot_2_NULL中,“Slot”为设备槽位名称关键字,“ I”和“2”为设备槽位号,“SL16A”为该槽位所插单板的型号名称,“NULL”表示该槽位插入空单板。
[0034]2-2、读取所述自定义配置文件,解析该文件中的数据:
扫描文件中的“[]”,如果未找到“[]”结束处理;如果找到了,取出“ □”中的字符串,并分割前后的的字符串和数据,并分别赋值给程序中的机房名变量和循环变量;
扫描文件中的“〈>”,取出“〈>”中的字符串,并分割“_”前后的的数据和字符串,并分别赋值给程序中的循环变量和设备名变量;
扫描“Slot”关键字,分割前后的的数据和字符串,并分别赋值给程序中的循环变量和单板名变量;
2-3、根据从文件中读取到的机房名称、设备名称、单板名称以及网元数量,通过C#程序循环调用Unity中的Resources.Load (Name)方法,从Unity中的机房模型库和设备模型库中载入之前预设好的.prefab模型;机房模型和第一个载入的设备模型将会按照之前设定好的位置摆放到三维场景中,之后循环载入的设备模型将根据Unity中transform,posit1n = new Vector3 ((f loat) (33.0-2.0*i),1.7f, 3.8f)方法,重新自动设定相应的位置。
[0035]步骤3、如图3所示,在三维场景仿真模块中新建监听线程,订阅实时数据库的消息频道,获取通信设备仿真模块中仿真设备运行状态的实时消息。
[0036]3-1、三维场景仿真模块与通信设备仿真模块,通过Redis数据库的“订阅/发布”机制进行消息和数据的传输,三维场景仿真模块根据所订阅的消息频道,监听接收通信设备仿真模块发送来的消息,并根据消息中的内容,实时更新设备模型的指示灯的状态。
[0037]3-2、三维场景仿真模块接收来自通信设备仿真模块的消息并进行解析,此消息的协议格式为:“状态标志_故障类型_网元设备ID_设备槽位ID”。
[0038]当三维场景仿真模块接收到消息后,对消息进行解析:根据将消息进行分割,首先判断状态标志位,如果为0,则属于正常状态,此时根据正常状态的指示灯显示规则刷新三维设备模型的指示灯状态;如果标志位为1,则属于异常状态,此时继续判断故障类型,包括:断纤、光纤劣化、单板离线、单板损坏等;确定故障类型后,判断故障点:网元设备ID和设备槽位ID,此后根据设备故障状态时指示灯的显示规则,更改对应故障点模型的指示灯为告警状态。
[0039]监听线程接收消息示例如下:
“1_ 断纤 _2_8”;
“I”表示此时为故障状态,故障类型为“断纤”,故障点为网元2对应设备的第8槽位单板所接的光纤。
[0040]步骤4、在三维场景中操作设备或修复设备故障,并将操作信息发送给通信设备仿真模块,进行仿真计算和判断。
[0041]4-1、在三维场景中根据告警指示,在相应故障点查找引发告警的故障设备,并根据故障类型进行相应的修复操作,包括:更换光纤,更换单板等;
故障修复操作步骤为:键盘控制Unity场景中的主摄像机模型移动到故障点设备所处的位置,鼠标选中所要修复的设备模型,单击鼠标右键,在弹出的菜单中选择操作项,如“更换设备”,然后在弹出的设备选取界面中,选择相应型号的设备,点击更换按钮,完成更换设备的操作。
[0042]4-2、完成修复操作后,三维场景仿真模块向通信设备仿真模块发送操作消息,包括修复设备的ID和操作的类型。其消息格式为:“操作类型_网元设备ID_设备槽位ID”。
[0043]如下所示:
“更换光纤_2_8”;
此消息表示,更换了网元2设备第8槽位单板所接的光纤。
[0044]4-3、三维场景仿真模块中的监听线程,接收通信设备仿真模块发送来的仿真计算结果:
如果之前修复操作无误,则三维场景仿真模块中的监听线程会接收到正常状态的消息,从而更新三维场景中相应设备的指示灯恢复到正常状态;如果之前的故障修复操作有误,则三维场景仿真模块中的监听线程仍将接收到异常状态的消息,三维场景中相应设备的指示灯仍然显示异常状态,此时,可继续执行步骤4,进行故障的检查和修复并发送操作消息,如此训循环执行。
[0045]进一步的,所述自定义配置文件中分层次定义指的是第一层定义机房类型的名称和网元的个数;其第二层定义不同网元的网元编号、设备类型名称;其第三层定义设备每个槽位编号及对应的单板类型名称。
[0046]进一步的,所述步骤3中获取生成三维场景仿真模块所需的外部实时数据包括:设备单板指示灯状态、设备当前告警状态、设备光模块和光纤当前的光功率值。
[0047]进一步的,所述三维场景仿真模块包括场景显示模块和场景操作模块;所述场景显示模块的数据输入端接外部的三维仿真模型库和场景配置文件库,所述场景操作模块的控制输出端接入场景显示模块的指令输入端,所述场景操作模块经
数据通信模块与外部的设备仿真程序相通信。所述三维场景仿真模块是真实通信机房的虚拟化可视化仿真场景,培训人员可在该场景中完成巡视和操作设备等功能。
[0048]外部的所述三维仿真模型库包括通信机房模型库和通信设备模型库;所述通信机房模型库包括省级调度中心通信机房三维模型、地市级调度中心通信机房三维模型、110KV/22
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1