薛晗光 劉聰?!〈奚片|
摘要:
傳統(tǒng)的電廠設(shè)備缺陷管理方式多為通過紙質(zhì)單據(jù)或在Web系統(tǒng)上進(jìn)行記錄、管理,及時(shí)性和準(zhǔn)確性較差。針對(duì)該問題,設(shè)計(jì)開發(fā)了基于Android平臺(tái)的設(shè)備缺陷管理系統(tǒng)。用戶通過普通的Android智能手機(jī)就可實(shí)現(xiàn)在設(shè)備現(xiàn)場即時(shí)創(chuàng)建缺陷單,全過程移動(dòng)辦理,簡化了用戶操作,提高了工作效率和設(shè)備缺陷管理水平。
關(guān)鍵詞:
電廠;智能手機(jī);缺陷管理;Android;移動(dòng)應(yīng)用
DOIDOI:10.11907/rjdk.171292
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2018)003014603
英文摘要Abstract:The Power plant traditional management of equipment defect, is mostly through the paper documents or the web system for recording and management, lack of timeliness and accuracy. In response to this problem, the device defect management system based on the Android platform is designed and developed. Users can easily create defects at the equipment site by Android smart phone. The whole process of defects management can be executed by smart phone. The system simplified the user operation, improved the efficiency and management level of equipment defects.
英文關(guān)鍵詞Key Words:power plant; smart phone; defects management; Android; mobile application
0引言
設(shè)備缺陷管理是電廠設(shè)備管理的基礎(chǔ),設(shè)備運(yùn)行的基本狀況及健康水平來自于日積月累的設(shè)備缺陷數(shù)據(jù)。設(shè)備缺陷管理水平高低是衡量設(shè)備管理好壞的標(biāo)志之一,關(guān)系到電廠的安全運(yùn)行、設(shè)備維護(hù)及經(jīng)濟(jì)效益[1]。
得益于硬件技術(shù)的進(jìn)步和移動(dòng)互聯(lián)網(wǎng)普及,基于智能手機(jī)的應(yīng)用日益豐富。在電廠信息化蓬勃發(fā)展的趨勢下,將智能手機(jī)應(yīng)用于設(shè)備缺陷管理,利用其強(qiáng)大的功能,包括拍照、錄制音視頻、nfc近場通訊、掃描二維碼、無線網(wǎng)絡(luò)連接等,實(shí)現(xiàn)對(duì)缺陷登錄、確認(rèn)、提交、消缺驗(yàn)收等流程管理[2]。
1缺陷管理系統(tǒng)整體設(shè)計(jì)
1.1系統(tǒng)業(yè)務(wù)流程
根據(jù)電廠的缺陷管理流程和實(shí)際需求,設(shè)計(jì)出系統(tǒng)整體業(yè)務(wù)執(zhí)行流程,如圖1所示。巡檢員或其他人員在現(xiàn)場發(fā)現(xiàn)設(shè)備缺陷后,在智能手機(jī)上創(chuàng)建缺陷單,添加音視頻文件,通過廠內(nèi)無線局域網(wǎng)上傳至服務(wù)器。服務(wù)器將缺陷單推送至運(yùn)行人員手機(jī)進(jìn)行審核。審核不通過將退回創(chuàng)建狀態(tài)或取消缺陷單;審核通過后,推送至檢修人員手機(jī)進(jìn)行確認(rèn)。如果檢修人員不認(rèn)可所提缺陷,可以回退重新分配。確認(rèn)后,檢修人員在現(xiàn)場對(duì)缺陷進(jìn)行消缺。消缺過程中,如無法按時(shí)完成可發(fā)起延期、掛起和開工子流程。消缺完成后,檢修人員在手機(jī)上對(duì)該缺陷單提交驗(yàn)收,推送至運(yùn)行人員手機(jī),最終進(jìn)行驗(yàn)收操作。
1.2系統(tǒng)架構(gòu)
系統(tǒng)架構(gòu)由移動(dòng)端、Web端、服務(wù)端和移動(dòng)服務(wù)總線4部分組成。移動(dòng)端實(shí)現(xiàn)用戶登錄、缺陷業(yè)務(wù)處理功能,Web端用于展示所有的缺陷單數(shù)據(jù)信息,服務(wù)端為移動(dòng)服務(wù)總線提供數(shù)據(jù)接口。移動(dòng)服務(wù)總線用于實(shí)現(xiàn)用戶登錄管理及任務(wù)在上位機(jī)和移動(dòng)端間的傳輸。移動(dòng)服務(wù)總線作為上位機(jī)、移動(dòng)端的中間件,接收各方數(shù)據(jù)請求并將其分發(fā)至相應(yīng)的接收方,最后從接收方獲取數(shù)據(jù)并返回請求方。整個(gè)過程不對(duì)數(shù)據(jù)進(jìn)行任何操作,只作轉(zhuǎn)發(fā)。移動(dòng)服務(wù)總線采用Restful技術(shù)實(shí)現(xiàn)。
移動(dòng)服務(wù)總線輪詢從Web端接口中讀取當(dāng)前在線用戶的移動(dòng)端待辦任務(wù)。取得待辦任務(wù)后,移動(dòng)服務(wù)總線在表中創(chuàng)建該任務(wù)記錄,生成任務(wù)編號(hào)并將任務(wù)通知推入移動(dòng)任務(wù)隊(duì)列中,由移動(dòng)任務(wù)隊(duì)列推送通知至移動(dòng)端。移動(dòng)端收到通知后,后臺(tái)自動(dòng)向移動(dòng)服務(wù)總線請求任務(wù)數(shù)據(jù),收到數(shù)據(jù)后將其存入移動(dòng)端數(shù)據(jù)庫中。
移動(dòng)端每次進(jìn)入任務(wù)列表時(shí)(包括點(diǎn)擊首頁業(yè)務(wù)按鈕進(jìn)入、程序掛起后再次進(jìn)入及移動(dòng)端黑屏后重新解鎖進(jìn)入任務(wù)界面3種情況),先判斷WiFi連接情況,若有WiFi連接則主動(dòng)向移動(dòng)服務(wù)總線請求當(dāng)前任務(wù)列表。任務(wù)列表基礎(chǔ)信息包括任務(wù)ID、名稱及任務(wù)狀態(tài)。移動(dòng)端獲取數(shù)據(jù)后,比對(duì)每一個(gè)任務(wù)狀態(tài),若有狀態(tài)變化(Web端狀態(tài)節(jié)點(diǎn)比移動(dòng)端狀態(tài)節(jié)點(diǎn)靠后)的任務(wù),則將其詳細(xì)信息獲取至移動(dòng)端;若無WiFi連接,則直接顯示當(dāng)前移動(dòng)端數(shù)據(jù)庫中的數(shù)據(jù)。在執(zhí)行完任務(wù)后,將結(jié)果數(shù)據(jù)打包發(fā)送至服務(wù)端,再由服務(wù)端發(fā)送至Web端,更新Web端數(shù)據(jù)。
1.3任務(wù)接收和提交
任務(wù)推送服務(wù)器自動(dòng)搜索所有可以在移動(dòng)終端執(zhí)行的任務(wù),下載任務(wù)并打包,通過廣播方式發(fā)送到每一個(gè)移動(dòng)終端,終端接收到任務(wù)會(huì)提醒用戶收到新的任務(wù),任務(wù)接收成功發(fā)送“接收成功”標(biāo)志給接收服務(wù)器,則Web應(yīng)用的任務(wù)處于鎖定狀態(tài),此時(shí)任務(wù)只能在移動(dòng)終端辦理。如果任務(wù)接收失敗,服務(wù)器需在一定時(shí)間后重新發(fā)送,服務(wù)器端有任務(wù)指定重發(fā)功能。
任務(wù)發(fā)送給崗位時(shí),在其中一個(gè)移動(dòng)終端點(diǎn)擊打開任務(wù),認(rèn)為該移動(dòng)終端接收到此任務(wù),此任務(wù)在Web應(yīng)用鎖定,其它移動(dòng)終端中該任務(wù)取消。在無網(wǎng)絡(luò)情況下不允許打開發(fā)送給崗位的任務(wù)。任務(wù)發(fā)送給個(gè)人時(shí),移動(dòng)終端接受到任務(wù)即在Web應(yīng)用鎖定。
移動(dòng)端執(zhí)行完任務(wù)后將結(jié)果放入任務(wù)提交隊(duì)列,隊(duì)列保證任務(wù)數(shù)據(jù)不丟失,且在離線環(huán)境下緩存數(shù)據(jù),不影響提交操作,提交隊(duì)列將逐個(gè)提交任務(wù)至服務(wù)端移動(dòng)服務(wù)總線。提交任務(wù)數(shù)據(jù)的同時(shí),通知服務(wù)端該任務(wù)附件個(gè)數(shù)。服務(wù)端先驗(yàn)證該任務(wù)數(shù)據(jù)是否存在錯(cuò)誤,通過驗(yàn)證后,移動(dòng)服務(wù)總線將任務(wù)傳輸至Web端。Web端對(duì)任務(wù)進(jìn)行數(shù)據(jù)、邏輯、權(quán)限等多重校驗(yàn),判斷該任務(wù)是否提交。如不能提交(如移動(dòng)辦理權(quán)被收回、缺少權(quán)限等),則返回提交失敗至服務(wù)端,反之返回提交成功。服務(wù)端再將提交結(jié)果發(fā)送到移動(dòng)端。任務(wù)提交成功后,如果附件個(gè)數(shù)大于0,則開始上傳附件。移動(dòng)端遍歷全部附件,依次上傳至服務(wù)端。服務(wù)端再遍歷全部附件,并依次上傳至Web端和任務(wù)數(shù)據(jù)進(jìn)行關(guān)聯(lián),同時(shí)更新任務(wù)狀態(tài),并返回結(jié)果至移動(dòng)端。任務(wù)提交流程如圖2所示。
2系統(tǒng)實(shí)現(xiàn)
2.1數(shù)據(jù)交互實(shí)現(xiàn)
本文選擇Java語言開發(fā)Android版本的移動(dòng)端應(yīng)用,數(shù)據(jù)上傳/下載采用WebService技術(shù)。在上位機(jī)服務(wù)啟動(dòng)后,系統(tǒng)生成WSDL服務(wù)描述文件。移動(dòng)端通過調(diào)用WebService請求,得到WSDL文件后解析該文件內(nèi)容,了解上位機(jī)的服務(wù)信息及調(diào)用方式,并生成相應(yīng)的SOAP請求消息。上位機(jī)收到客戶端的SOAP消息后,解析其中的方法調(diào)用和參數(shù)格式,調(diào)用相應(yīng)的COM對(duì)象完成指定功能,并把返回值放入SOAP回應(yīng)消息返回給移動(dòng)端。
在數(shù)據(jù)格式的選擇上,重點(diǎn)對(duì)比和測試XML和JSON格式??紤]到XML文件格式復(fù)雜,傳輸占用帶寬較高,故沒有選用XML語言,而是采用JSON這一輕量級(jí)的數(shù)據(jù)交換格式[3]。JSON數(shù)據(jù)格式簡單,易于讀寫,占用帶寬小,易于解析,客戶端JavaScript可以簡單通過eval()進(jìn)行JSON數(shù)據(jù)讀取。JSON格式能直接為服務(wù)器端代碼使用,大大簡化了服務(wù)器端和客戶端的代碼開發(fā)量,且易于維護(hù)。JSON格式的任務(wù)結(jié)果數(shù)據(jù)示例如下:
{
"processCode":"yxgl_qx_v1_ws",
"mobileCode":"868403029354245",
"inputData":{
"qxData":"{"ARBPL":"01QJ01","ARBPL2":"W0403","ARBPL2_DESC":"3號(hào)機(jī)組管轄設(shè)備",
"isCreate":"1","isNew":"0","isSuccess":1,"taskId":"7d384a95-27f3-4ba8-9b13-1ceaf85d461a"}",
"Webservice_staffcode":"lr",
"Webservice_staffname":"劉睿",
"method":"mobile_upload_qxNew" }
}
2.2業(yè)務(wù)功能實(shí)現(xiàn)
用戶在移動(dòng)端登錄后,首先看到一個(gè)缺陷單任務(wù)列表,顯示該用戶待辦和已辦任務(wù),如圖3所示。當(dāng)智能手機(jī)收到一條任務(wù)通知時(shí),會(huì)對(duì)其進(jìn)行下載并解析,顯示在任務(wù)列表中,并在該條任務(wù)的左側(cè)顯示紅色氣泡用以提示用戶。當(dāng)用戶辦理完成后,氣泡自動(dòng)消失。任務(wù)列表支持下拉刷新,可即時(shí)更新已辦理任務(wù)的狀態(tài)、辦理人、詳細(xì)信息等,方便用戶跟蹤查詢。
在創(chuàng)建缺陷單界面(見圖3)時(shí),所有必填項(xiàng)以紅色框線標(biāo)示,包含缺陷級(jí)別、功能位置、缺陷現(xiàn)象、缺陷描述、發(fā)現(xiàn)人等。一類缺陷和二類缺陷默認(rèn)要求24小時(shí)和48小時(shí)內(nèi)完成消缺;三類缺陷和其它缺陷需要手動(dòng)選擇“結(jié)束時(shí)間”。功能位置即設(shè)備所在地的系統(tǒng)編碼,是該位置的唯一標(biāo)識(shí),也是缺陷單的關(guān)鍵信息之一。為方便用戶快速輸入該數(shù)據(jù),系統(tǒng)提供兩種方式。首先支持用智能手機(jī)接觸現(xiàn)場張貼的NFC卡片。NFC即近場通訊,是一種近距離無線通訊技術(shù),在13.56MHz頻率運(yùn)行于10cm距離內(nèi),為ISO/IEC IS 18092國際標(biāo)準(zhǔn)[4]、ECMA-340標(biāo)準(zhǔn)和ETSI TS 102 190標(biāo)準(zhǔn)。在NFC卡片中寫入該設(shè)備的功能位置編碼,當(dāng)手機(jī)NFC感應(yīng)區(qū)與之接觸時(shí),卡內(nèi)數(shù)據(jù)會(huì)傳輸?shù)绞謾C(jī)并顯示。此外,也可打開手機(jī)的攝像頭掃描現(xiàn)場張貼的功能位置二維碼,同樣可把二維碼中包含的數(shù)據(jù)信息讀取到手機(jī)。將手機(jī)用于電廠設(shè)備缺陷管理系統(tǒng),巧妙解決了設(shè)備缺陷定位問題,使得用戶能夠快捷簡單地創(chuàng)建缺陷單。
為了更準(zhǔn)確記錄缺陷情況,系統(tǒng)支持附件上傳。用戶可在現(xiàn)場拍照或攝像,將圖片或音視頻文件作為缺陷單的附件。在附件上傳時(shí)對(duì)附件個(gè)數(shù)進(jìn)行計(jì)數(shù),確保該缺陷單的所有附件都上傳成功后,再調(diào)用任務(wù)推送接口,避免丟失附件的情況發(fā)生。
在提交缺陷單時(shí),對(duì)上傳的json字符串進(jìn)行UTF-8編碼。UTF-8是一種針對(duì)Unicode的可變長度字符編碼[5],用1~4個(gè)字節(jié)編碼Unicode字符,避免json字符串中包含一些特殊字符時(shí)出現(xiàn)亂碼導(dǎo)致上傳任務(wù)失敗。
對(duì)于用戶已經(jīng)辦理完成的業(yè)務(wù),系統(tǒng)設(shè)置了延時(shí)刪除。例如,設(shè)置已辦理的任務(wù)在移動(dòng)端上只保留3天。超過3天后,通過定時(shí)輪詢的后臺(tái)服務(wù),在移動(dòng)端的SQLite數(shù)據(jù)庫中刪除該條數(shù)據(jù),解決了移動(dòng)端存儲(chǔ)空間占用累積增大的問題,保證了系統(tǒng)長期正常使用。
3結(jié)語
本系統(tǒng)基于電廠設(shè)備缺陷管理的業(yè)務(wù)流程,用Java語言開發(fā)出Android版本的手機(jī)應(yīng)用,將傳統(tǒng)的辦理模式轉(zhuǎn)換為在智能手機(jī)上移動(dòng)辦理,并形成業(yè)務(wù)閉環(huán),利用智能手機(jī)的硬件性能和功能特點(diǎn),提高了缺陷管理的及時(shí)性、準(zhǔn)確性和工作效率。同時(shí),該系統(tǒng)可安裝于當(dāng)前主流的任意一款A(yù)ndroid智能手機(jī)上,普適性高,設(shè)備成本低,易于推廣和維護(hù)。
參考文獻(xiàn)參考文獻(xiàn):
[1]李文,應(yīng)啟戛.電廠設(shè)備缺陷管理系統(tǒng)的開發(fā)[J].動(dòng)力工程,2004,24(4):533536.
[2]鄧其軍,孟波,牛曉太.基于工作流的電廠缺陷管理系統(tǒng)[J].計(jì)算機(jī)工程,2004,30(10):167169.
[3]高靜,段會(huì)川.JSON數(shù)據(jù)傳輸效率研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(7):22672270.
[4]國際標(biāo)準(zhǔn)組織.ISO/IEC 18092:2013.信息技術(shù)-系統(tǒng)之間的電信和信息交換-近場通信-接口和協(xié)議[EB/OL]. http://www.doc88.com/p9738231540275.html.
[5]鹿文鵬,薛若娟.Unicode與UTF8編碼轉(zhuǎn)換方法研究[J].計(jì)算機(jī)時(shí)代,2005(9):4445.
責(zé)任編輯(責(zé)任編輯:杜能鋼)