鄧成俊, 譚世海, 汪 超
(1.重慶電力高等專(zhuān)科學(xué)校,重慶 400053;2.武漢科碼軟件有限公司,武漢 430000)
電力安全工程實(shí)驗(yàn)培訓(xùn)系統(tǒng)是基于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、3D虛擬技術(shù),將電力安全法律法規(guī)、電力安全管理、電力安全技術(shù)、電力安全事故分析、現(xiàn)場(chǎng)緊急救護(hù)幾個(gè)方面的培訓(xùn)考試內(nèi)容融合成一個(gè)個(gè)具體的操作任務(wù),培訓(xùn)考試人員依照任務(wù)要求一步一步完成類(lèi)似真實(shí)場(chǎng)景的工作,在3D環(huán)境中完成角色選擇、工作票領(lǐng)取、在500多種工器具庫(kù)中選取適宜的工器具及個(gè)人防護(hù)用品并正確檢查和使用,身臨其境去認(rèn)知、決策和處理各種突變情況,熟悉各個(gè)任務(wù)的操作流程、操作要點(diǎn)、操作方法,并得到操作處理結(jié)果反饋,通過(guò)3D操作后再進(jìn)行理論考試測(cè)試,從而提升整體培訓(xùn)效果。
以電力施工作業(yè)人員為培訓(xùn)對(duì)象的電力安全培訓(xùn)考試3D仿真軟件系統(tǒng)的主要功能就是在融會(huì)貫通安全理論知識(shí)的基礎(chǔ)上,提高他們的安全技能水平,強(qiáng)化標(biāo)準(zhǔn)化作業(yè)執(zhí)行過(guò)程,進(jìn)一步熟悉工作票執(zhí)行規(guī)范及流程,防止人身、設(shè)備及電網(wǎng)事故的發(fā)生。系統(tǒng)整體設(shè)計(jì)架構(gòu)采用開(kāi)放性、通用性的原則。適合于企業(yè)內(nèi)部所有崗位的培訓(xùn)資料閱讀、客觀題和主觀題考試。所有培訓(xùn)學(xué)員只要通過(guò)局域網(wǎng)進(jìn)入系統(tǒng),就可以進(jìn)行培訓(xùn)學(xué)習(xí)和考試。
電力行業(yè)作為當(dāng)前不可缺少的行業(yè)之一,而電力施工從業(yè)人員的生命安全和身體健康是供電企業(yè)安全生產(chǎn)工作的重中之重。一旦發(fā)生電力事故,將造成較大的人身傷亡,如何有效防止或減少電力安全事故,成為目前亟待解決的問(wèn)題,而虛擬仿真技術(shù)可以有效彌補(bǔ)這些缺陷,利用unity3D技術(shù)制作3D場(chǎng)景,讓電力施工從業(yè)人員通過(guò)計(jì)算機(jī)來(lái)模擬操控整個(gè)檢修過(guò)程。通過(guò)模擬操作過(guò)程和理論考試結(jié)果來(lái)分析人員的業(yè)務(wù)水平,從而提升電力施工從業(yè)人員的整體業(yè)務(wù)水平。
系統(tǒng)整體架構(gòu)采用基于B/S模式和C/S模式的有效結(jié)合,實(shí)現(xiàn)模擬場(chǎng)景培訓(xùn)和理論知識(shí)培訓(xùn)(見(jiàn)圖1)。本系統(tǒng)分為兩大模塊:實(shí)驗(yàn)培訓(xùn)系統(tǒng)和3D虛擬場(chǎng)景系統(tǒng)。實(shí)驗(yàn)培訓(xùn)系統(tǒng)采用ASP.NET技術(shù)與MYSQL數(shù)據(jù)技術(shù)來(lái)實(shí)現(xiàn);3D虛擬場(chǎng)景系統(tǒng)采用unity3D引擎和C#語(yǔ)言的有效結(jié)合而開(kāi)發(fā)。系統(tǒng)運(yùn)用面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法,統(tǒng)一采用重慶電力高等專(zhuān)科學(xué)校數(shù)字化校園統(tǒng)一身份認(rèn)證標(biāo)準(zhǔn),以最優(yōu)的方式與學(xué)校數(shù)字化校園平臺(tái)進(jìn)行數(shù)據(jù)對(duì)接管理。
圖1 系統(tǒng)整體架構(gòu)
2.2.1 Web實(shí)驗(yàn)培訓(xùn)系統(tǒng)的功能設(shè)計(jì)
Web培訓(xùn)考試系統(tǒng)采用純B/S模式,系統(tǒng)軟件無(wú)需部署在客戶端上,軟件的維護(hù)、更新和升級(jí)均在服務(wù)器端進(jìn)行見(jiàn)表1。系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)完成后,本文以考生在線考試交卷為例來(lái)闡述使用Asenet來(lái)構(gòu)建3層架構(gòu)流程。
試卷生成核心代碼參考:
public static string choice = "";//選項(xiàng)內(nèi)容
public static string[] array;//試題選項(xiàng)信息列表
public static int arrayCount = 0;//試題選項(xiàng)個(gè)數(shù)
public static int PID;//試題編號(hào)
public static
List〈p_question_model〉 questionList = new List〈p_question_model〉();//試卷所有考題信息
public static int totalScore = 0;
public static
List〈p_question_model〉 query1 = new List〈p_question_model〉();//判斷考題信息
public static
List〈p_question_model〉 query2 = new List〈p_question_model〉();//單項(xiàng)考題信息
public static
List〈p_question_model〉 query3 = new List〈p_question_model〉();//多選考題信息
public static paperscoreModel
paperscoreM = new paperscoreModel();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session["id"] == null || Session["name"] == null)
Response.Redirect("~/index/Default.aspx");
else
{
表1 Web實(shí)驗(yàn)培訓(xùn)系統(tǒng)的功能設(shè)計(jì)
labID.Text =
Session["id"].ToString();
labName.Text =
Session["name"].ToString();
getPaperQuestion();
}
}
this.ImageButton1.Attributes["onmouseover"] =
"this.src='images/btnPaper12.png'";
this.ImageButton1.Attributes["onmouseout"] =
"this.src='images/btnPaper1.png'";
}
//獲取試卷試題信息
protected void getPaperQuestion()
{
if
(Request.QueryString["PID"] == null)
Response.Redirect("~/index/paperList.aspx");
else
{
PID =
int.Parse(Request.QueryString["PID"]);
questionList =
paperBLL.getPaperQus(PID, 0);//獲取試卷所有考題信息
totalScore =
questionList.Sum(r =>r.score);//試卷總分
query1 =
questionList.Where(w => w.qusType == 1).ToList();
//判斷考題信息
query2 =
questionList.Where(w => w.qusType== 2).ToList();
//單項(xiàng)考題信息
query3 =
questionList.Where(w =>w.qusType== 3).ToList();
//多選考題信息
}
}
2.2.2 模擬考試系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)現(xiàn)
系統(tǒng)數(shù)據(jù)庫(kù)采用MYSQL關(guān)系型數(shù)據(jù)庫(kù)見(jiàn)表2:①兼容多種操作系統(tǒng)使用系統(tǒng)(如:windows、linux、Unix等主流操作系統(tǒng));全開(kāi)源數(shù)據(jù)庫(kù),提供的數(shù)據(jù)連接接口支持多種主流開(kāi)發(fā)語(yǔ)言(如:PHP,JAV,ASP.NET等)連接操作,MySql的核心程序采用完全的多線程編程。②支持大中小型的數(shù)據(jù)庫(kù), 可以非常方便地支持上千萬(wàn)條記錄的數(shù)據(jù)庫(kù);作為一個(gè)開(kāi)放源代碼的數(shù)據(jù)庫(kù),可針對(duì)不同的應(yīng)用進(jìn)行相應(yīng)的自定義。③擁有一個(gè)快速而且穩(wěn)定的基于線程的內(nèi)存分配系統(tǒng),可持續(xù)使用面不必?fù)?dān)心其穩(wěn)定性;MySQL同時(shí)提供高度多樣性,能夠提供很多不同的使用者介面,包括命令行客戶端操作,網(wǎng)頁(yè)瀏覽器,以及各式各樣的程序語(yǔ)言介面。④提供主從數(shù)據(jù)實(shí)時(shí)熱備、確保線上數(shù)據(jù)安全,同時(shí)通過(guò)多份備份機(jī)制保存多天的數(shù)據(jù),提高在災(zāi)難情況下的數(shù)據(jù)可靠性。⑤在應(yīng)對(duì)應(yīng)用的高訪問(wèn)量,具有讀寫(xiě)分離功能,能夠降低數(shù)據(jù)庫(kù)主實(shí)例的總體負(fù)載。
表2 模擬考試系統(tǒng)的題庫(kù)表設(shè)計(jì)
2.2.3 3D模擬考試場(chǎng)景設(shè)計(jì)實(shí)現(xiàn)
系統(tǒng)虛擬仿真場(chǎng)景采用Unity 3D引擎,Unity3D是由Unity Technologies開(kāi)發(fā)的一個(gè)讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫(huà)等類(lèi)型互動(dòng)內(nèi)容的多平臺(tái)的綜合型游戲開(kāi)發(fā)工具,是一個(gè)全面整合的專(zhuān)業(yè)游戲引擎。該引擎開(kāi)發(fā)的虛擬仿真系統(tǒng)具有寫(xiě)實(shí)風(fēng)格、動(dòng)作感操作的特征,滿足學(xué)員自學(xué)、教員教學(xué)、學(xué)員互學(xué)、比賽教學(xué)等在線多角色的互動(dòng)教學(xué)。仿真場(chǎng)景整體采用任務(wù)下達(dá)的方式來(lái)展現(xiàn),完全體現(xiàn)電力施工的整個(gè)操作過(guò)程。任務(wù)由培訓(xùn)教師下達(dá),通過(guò)對(duì)天氣環(huán)境、檢修時(shí)間、檢修任務(wù)類(lèi)型等設(shè)置來(lái)模擬整個(gè)任務(wù)下達(dá)過(guò)程。而培訓(xùn)學(xué)員接到下達(dá)任務(wù)后,必須按照電力安全相關(guān)操作規(guī)程一步一步的進(jìn)行操作,從而增加電力施工從業(yè)人員的操作技能。
(1) 系統(tǒng)初始化設(shè)置。系統(tǒng)初始化設(shè)置由培訓(xùn)教師根據(jù)模擬相應(yīng)的操作環(huán)境來(lái)完成,培訓(xùn)教室通過(guò)教師賬戶登錄后進(jìn)行任務(wù)下達(dá),并按照電力安全規(guī)程設(shè)置好標(biāo)準(zhǔn)的操作流程;培訓(xùn)教師可根據(jù)系統(tǒng)配置來(lái)設(shè)置操作的天氣環(huán)境、操作完成時(shí)長(zhǎng)、相應(yīng)的必備工具、參加的培訓(xùn)學(xué)員等,具體操作可見(jiàn)圖2。
圖2 系統(tǒng)初始化設(shè)置
(2) 3D模擬考試培訓(xùn)模塊。培訓(xùn)學(xué)員通過(guò)自己的賬戶密碼進(jìn)去系統(tǒng)(系統(tǒng)所體現(xiàn)的賬戶密碼都與學(xué)校數(shù)字化校園進(jìn)行對(duì)接,實(shí)現(xiàn)統(tǒng)一身份認(rèn)證)后進(jìn)行任務(wù)的接收來(lái)完成培訓(xùn)教室下達(dá)的相應(yīng)任務(wù),任務(wù)的操作過(guò)程由系統(tǒng)全程記錄,產(chǎn)生的操作過(guò)程考試數(shù)據(jù)作為培訓(xùn)學(xué)員的考試成績(jī)記錄。整個(gè)培訓(xùn)過(guò)程可單人培訓(xùn),也可以由團(tuán)隊(duì)完成。整個(gè)操作過(guò)程安全電力法律法規(guī)的相關(guān)操作規(guī)定進(jìn)行完成。
簡(jiǎn)約示意性操作流程見(jiàn)圖3。
其核心代碼參考如下:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public delegate void MGFunc();
public delegate void
SetMeetingContentVTV(string name,string typename);
public class GlobalRPC:
MonoBehaviour
{
public VTV mVtv;
public SetMeetingContentVTV mSMC;
(a) 學(xué)員登錄
(c) 工具選擇與檢查
(e) 檢修工作開(kāi)始
[HideInInspector]
public NetworkView mNV;
void Start()
{
mNV =
transform.GetComponent〈NetworkView〉();
}
[RPC]
void
IfHaveSimilarAccountRPC(string name, NetworkMessageInfo info) { }
public VTV VReplayIfAccount;
[RPC]
void
ReplayIfHaveSimilarAccountRPC(bool isExit)
{
zDebug.Log("isExit" + isExit);
if (!isExit)
{ zDebug.Log("can enter");
Application.LoadLevel("MainMenu"); }
else
{
zDebug.Log("cant enter");
if (VReplayIfAccount != null)
{
VReplayIfAccount();
}
}
}
[RPC]
void
StartUpdateRoomsInfoRPC(NetworkMessageInfo info) { }
[RPC]
void CreatRoomRPC(string name, string creater, string taskName, NetworkMessageInfo info) { }
[RPC]
void SetRoomID(string id)
{
GlobalData.RoomName = id;
if (mVtv != null)
{
mVtv();
mVtv = null;
}
}
}
(3) 法律法規(guī)學(xué)習(xí)模塊。法律法規(guī)模塊專(zhuān)為培訓(xùn)學(xué)員而設(shè)計(jì),該模塊保存有大量的最新研究成果、電力標(biāo)準(zhǔn)、電力法規(guī)、作業(yè)操作指導(dǎo)書(shū)、項(xiàng)目視頻的文獻(xiàn)資料,文字資料包含PPT內(nèi)容、pdf內(nèi)容、視頻內(nèi)容,樣式多樣化。培訓(xùn)學(xué)員可根據(jù)分類(lèi)進(jìn)行專(zhuān)項(xiàng)學(xué)習(xí),學(xué)員可通過(guò)閱讀的方式來(lái)學(xué)習(xí),也可通過(guò)看視頻的方式來(lái)學(xué)習(xí)。學(xué)習(xí)的整個(gè)過(guò)程系統(tǒng)進(jìn)行全方位的記錄,在整個(gè)培訓(xùn)學(xué)習(xí)中心占比一定的分?jǐn)?shù)。資料學(xué)習(xí)完成后可參加針對(duì)學(xué)習(xí)的內(nèi)容進(jìn)行考核,根據(jù)考核情況可了解本次資料學(xué)習(xí)的情況。
本文針對(duì)電力施從業(yè)人員操作中存在的危險(xiǎn)性的特點(diǎn),參考眾多虛擬培訓(xùn)系統(tǒng)的構(gòu)建,提出了基于3D虛擬仿真電力安全的整體設(shè)計(jì)方案和實(shí)現(xiàn)方法,即采用Unity 3D引擎技術(shù)和ASP.NET WEB技術(shù)組合以作業(yè)人員為培訓(xùn)對(duì)象的電力實(shí)驗(yàn)安全培訓(xùn)考試3D仿真軟件系統(tǒng)的主要功能就是在融會(huì)貫通安全理論知識(shí)的基礎(chǔ)上,提高他們的安全技能水平,強(qiáng)化標(biāo)準(zhǔn)化作業(yè)執(zhí)行標(biāo)準(zhǔn),進(jìn)一步熟悉電力工作票執(zhí)行規(guī)范及流程,防止人身、設(shè)備及電網(wǎng)事故的發(fā)生。