黃 意 閆愛軍 王智濤 雷雙全 高澤松 廖強強
1.武漢海關信息中心
2.西安熱工研究院有限公司
3.中國華能集團有限公司
4.西安清宇網(wǎng)絡科技有限公司
5.上海電力大學
樣品檢測是保障火力發(fā)電廠安全穩(wěn)定運行的重要保障手段之一,通過出具準確的數(shù)據(jù)評判產品是否合格、查找發(fā)電過程中異常的原因、尋求異常解決方法。樣品檢測涉及樣品種類繁多,主要有水、煤、油、金屬材料、催化劑等,通常由發(fā)電廠所屬的檢測實驗室承擔著本單位例行檢測、大小修事故排查的檢測測試工作,但有些檢測測試項目,由于所使用的儀器昂貴、檢測頻次低或不具備檢測資質等原因,需要委托相關單位檢測測試[1]。
委托檢測是檢測過程中的重要環(huán)節(jié)和關鍵控制點,但是由于涉及待檢測樣品的跨區(qū)域流通、檢測周期長、中間環(huán)節(jié)多[2],極易造成樣品混淆、原始樣品難以追溯、多項檢測結果不易整合、檢測結果不便查看、異常結果不便追溯等問題[3]。
本項目針對上述問題,提出了采用基于區(qū)塊鏈的發(fā)電廠樣品委托檢測物流及信息管理系統(tǒng),設計了樣品標識子系統(tǒng)、樣品物流子系統(tǒng)和樣品信息流子系統(tǒng),最后通過使用Python 機器語言中Django模塊完成程序的架構部分,通過結合MySQL 數(shù)據(jù)庫,采用B/S(Browser/Server,瀏覽器/服務器)模式,以完成面向Web端的應用系統(tǒng)[4]。實現(xiàn)委托樣品全過程閉環(huán)管理,動態(tài)實時靈活的控制訪問,提升了樣品檢測的可靠性、及時性和可溯源性。
物流:樣品準備→樣品傳遞→樣品接收→樣品檢測→樣品處置。
信息流:一次標識→二次標識→三次標識→檢測分析及報告(編寫、審核、批準、蓋章)→報告查看。
1.2.1 樣品準備
樣品的準備由電廠來完成,分為取樣、分割、存儲、標識等。在此過程中,需取得最具代表性的樣品,并按照規(guī)定分割,在發(fā)電廠所屬的檢測實驗室存儲留樣;采用有效的標識方法,在每個分割后的樣品上,盡可能準確、詳盡地獲取樣品重要信息和全面信息。
最常用的信息記錄了樣品的品名、型號、數(shù)量、依據(jù)標準、生產日期、制造單位以及其他的信息。對于產品類樣品,上述信息基本上滿足了檢測的要求;但是對于從主體設備或流程上取樣獲得的樣品,除了上述信息,最好有取樣部位的描述、照片、狀態(tài)、取樣人、取樣方法等記錄。
1.2.2 樣品傳遞
樣品傳遞通常由物流公司來完成。通過物流郵寄方式傳遞;也有可能由電廠使用自有運輸工具傳遞。有可能出現(xiàn)丟失、延期、損壞等意外。
在此過程中,如果是物流公司承運,則其按照本公司的編碼規(guī)則重新進行標識,將樣品運輸至檢測機構所在的地址。電廠在運輸過程中只能獲取主要的運輸進度信息,但是不能獲取樣品在運輸過程中的狀態(tài)信息。
1.2.3 樣品接收
樣品接收由檢測機構來完成,需要從物流公司收取樣品,并確認樣品是否完好。
需要對樣品重新登記、存儲、加工(分割)、標識等。重新標識后的樣品作為檢測機構內部流通時的信息傳遞載體。
1.2.4 樣品檢測
樣品檢測由檢測機構來完成,按照需求和程序完成樣品的檢測。對于有多個檢測項目時,樣品通常被分割成多份,并分別檢測。有可能檢測流程是并行的,有可能是串行的,也有可能是串行+并行。
每一個檢測項目結束后,需要對檢測的結果進行復核、確認,形成分項目檢測單或檢測報告。
所有檢測項目結束后,形成總的檢測報告,經(jīng)過三級審核后傳遞至電廠,完成信息流的閉環(huán)。
檢測報告按照不同授權,可實現(xiàn)檢測信息在不同機構、不同層級人員的查閱、分發(fā)和跟蹤。涉及一定密級的報告,可實現(xiàn)查閱報告人的詳細記錄,包括人員的信息、時間、簽閱或分發(fā)等。
1.2.5 樣品處置
樣品處置由檢測機構來完成,按照電廠的需求或需要,選擇寄回、廢棄或長期存儲。形成樣品物流的閉環(huán)。
2.1.1 系統(tǒng)需求體系架構
基于區(qū)塊鏈的發(fā)電廠樣品委托檢測物流及信息管理系統(tǒng)具有4 層體系架構,頂層用戶業(yè)務服務層,應用服務設計層,中間層節(jié)點服務和底層區(qū)塊鏈網(wǎng)絡,如圖1所示。
圖1 系統(tǒng)需求體系架構
2.1.2 頂層用戶
基于區(qū)塊鏈的發(fā)電廠樣品委托檢測物流及信息管理系統(tǒng)中各用戶和角色的需求如下。
1)檢驗檢測責任人個體需求
每個檢驗檢測責任人通過掃描樣品包裝上的二維碼。
(1)進入電廠樣品檢驗檢測聯(lián)盟系統(tǒng)快速了解樣品的標識、分割、流轉、檢測數(shù)據(jù)、存儲等相關信息并進行相關操作。
(2)使用防偽溯源功能,獲得樣品標識信息,查詢樣品真?zhèn)?,通過溯源知曉樣品的采樣單位、流轉、分割、檢測、保存等全過程所有信息。
(3)使用流程監(jiān)控功能,接收樣品開始工作,或者樣品不滿足測試條件,發(fā)現(xiàn)和拒收樣品,并提交相關部門跟蹤處理。
(4)使用下載功能,下載樣品相關數(shù)據(jù)或者檢測報告。
(5)使用整合功能,自動生成樣品的全流程測試報告。
(6)使用查詢功能,根據(jù)樣品工作進度、協(xié)作程度,預估并安排自己的工作計劃,增加組織的協(xié)作效率,降低樣品的檢測周期,并提高樣品的檢測效率。
2)檢驗檢測單位(節(jié)點)需求
(1)二維碼生成功能,自定義秘鑰,為每個樣品生成個性化加密二維碼。
(2)數(shù)據(jù)錄入功能,實現(xiàn)全流程數(shù)據(jù)采集。
(3)防偽溯源功能,生成唯一區(qū)塊鏈ID,產生防偽碼,將關聯(lián)數(shù)據(jù)作為溯源信息。
(4)精準查詢功能,通過智能合約獲得樣品檢測精準結果;
(5)數(shù)據(jù)統(tǒng)計功能,獲得樣品在檢測的時間周期,工作量,以及出錯概率。
3)監(jiān)管方需求
(1)樣品的檢驗周期監(jiān)督功能,實現(xiàn)樣品的全流程跟蹤,并根據(jù)樣品的流轉和檢測數(shù)據(jù),核查樣品在每個節(jié)點所消耗的時間,明確樣品檢測的瓶頸。
(2)樣品檢測報告的效果監(jiān)督,根據(jù)實時報告生成系統(tǒng),了解樣品的檢測結果,指導電廠的合理安全運營。
(3)節(jié)點工作量優(yōu)化功能,根據(jù)每個節(jié)點的檢驗檢測結果,和檢驗檢測效率,以及人員與實驗儀器配比,合理調整檢驗檢測工作流程,提高組織的檢測效率和檢測質量。
4)區(qū)塊鏈系統(tǒng)管理員需求
(1)用戶角色和權限管理功能,按不同節(jié)點、不同職位和不同工作崗位,設計合理的用戶權限,在提高節(jié)點之間數(shù)據(jù)共享效率的同時,又保持每個節(jié)點單位的數(shù)據(jù)安全。
(2)用戶應用層業(yè)務設計功能,根據(jù)用戶的需求不同,結合用戶權限,定制用戶個人服務內容,比如樣品延時報警功能,樣品標識數(shù)據(jù)丟失拒收功能,以及樣品全流程測試完成提醒功能。
2.1.3 中間應用服務
使用區(qū)塊鏈技術、二維碼技術和web技術將樣品的標識、流轉數(shù)據(jù)以及檢測報告和處理意見制作成數(shù)字資源,保存在高性能服務器中,并通過網(wǎng)絡給不同角色和用戶提供個性化服務。中間應用服務層,主要包括用戶權限系統(tǒng)、任務系統(tǒng)和業(yè)務數(shù)據(jù)庫。
2.1.4 系統(tǒng)服務層
系統(tǒng)服務層主要包括區(qū)塊鏈共識機制以及算法,不同檢驗檢測單位節(jié)點數(shù)據(jù)庫,滿足了不同節(jié)點之間的數(shù)據(jù)共享,滿足了多副本、可靠記錄、不可竄改、多方透明的四個特性。
2.1.5 底層區(qū)塊鏈網(wǎng)絡
底層區(qū)塊鏈網(wǎng)絡主要是對數(shù)據(jù)進行處理,用中間系統(tǒng)服務進行交互,以實現(xiàn)數(shù)據(jù)協(xié)作功能,如:去中心化,安全可信,不可竄改,智能合約,集體維護。一個區(qū)塊能同時保留同一數(shù)據(jù)庫的多個共享副本,使分布式賬本難以被黑客攻擊竄改;將樣品的標識、流轉過程、檢測過程、不同節(jié)點不同檢測項目的信息進行整合并寫入?yún)^(qū)塊鏈,每一條信息都擁有唯一的區(qū)塊鏈ID,且附有樣品的數(shù)字簽名和時間戳,這提供了良好的底層數(shù)據(jù)支撐,使用戶能對樣品檢測結果進行有效的把控;將不同來源的樣品在檢測過程中的參與主體(包括原電廠、檢驗檢測中心、內部流轉信息、分割保存信息、檢測結果)的信息數(shù)字化后存進區(qū)塊鏈中,使每一個參與者的信息在區(qū)塊鏈中可被查看;實現(xiàn)一物一碼全流程防偽追溯,使整個樣品檢驗檢測內所有流程都清晰可見。
2.2.1 系統(tǒng)功能業(yè)務流程分析
根據(jù)上述需求,本系統(tǒng)分為3 個子系統(tǒng)即二維碼子系統(tǒng)、樣品檢驗檢測流程監(jiān)控子系統(tǒng)和防偽溯源子系統(tǒng)。本課題組基于區(qū)塊鏈、二維碼技術,通過使用Python 機器語言中Django 模塊完成程序的架構部分,通過結合MySQL 數(shù)據(jù)庫,采用B/S(Browser/Server,瀏覽器/服務器)模式,以完成面向Web端的應用系統(tǒng)。本應用系統(tǒng)的業(yè)務流程如圖2所示。其中,每個節(jié)點檢測責任人掃描二維碼后,只有合法用戶才可以進行樣品的報告檢索、狀態(tài)更新等相關操作。
圖2 系統(tǒng)功能業(yè)務流程示意圖
2.2.2 二維碼子系統(tǒng)
二維碼子系統(tǒng)包括以下功能
1)二維碼與樣品的信息關聯(lián)。提取需要二維碼攜帶的信息,并在數(shù)據(jù)庫中與樣品做好相應關聯(lián)。
2)密鑰對生成器。采用通用算法隨機生成公鑰和私鑰。
3)信息加密和解密。節(jié)點根據(jù)自己的私鑰進行加密,用戶利用系統(tǒng)公鑰進行解密。
4)二維碼生成。將需要傳遞的信息生成二維碼。
2.2.3 樣品檢驗檢測流程監(jiān)控子系統(tǒng)
通過區(qū)塊鏈平臺實現(xiàn)各個檢驗檢測中心節(jié)點的數(shù)據(jù)同步,樣品檢測流程精確化、科學化、數(shù)字化與智能化,提高樣品檢驗檢測的效率。樣品檢驗檢測流程監(jiān)控子系統(tǒng)包括以下功能。
1)樣品狀態(tài)信息錄入。對電廠樣品的標識、分割、流轉、保存等全過程信息錄入和測試責任人信息的采集。
2)測試數(shù)據(jù)與樣品的精確匹配。對樣品信息,測試單位、測試責任人、測試事件以及測試結果通過區(qū)塊鏈技術進行存儲。
3)測試流程監(jiān)控。系統(tǒng)可以根據(jù)測試計劃,監(jiān)控測試進度,共享測試數(shù)據(jù)。
4)數(shù)據(jù)統(tǒng)計分析。根據(jù)樣品測試周期分析,測試節(jié)點或者測試步驟的瓶頸,提高工作效率。
5)獎勵機制。對于測試完成的數(shù)量與質量,量化分析每個節(jié)點甚至責任人的工作績效,給予適當?shù)莫剟睢?/p>
2.2.4 樣品防偽溯源子系統(tǒng)
在整個樣品檢驗檢測流程中,通過終端化的防偽溯源二維碼及公開透明的區(qū)塊鏈技術,讓用戶可以編輯查詢樣品的實時狀態(tài)和相關檢驗檢測數(shù)據(jù),對于提高工作效率,保障電廠的安全運營具有深遠意義。該系統(tǒng)具體功能如下。
1)樣品狀態(tài)信息采集與同步更新。從標識,分割,流轉,檢測與存儲,對樣品的生命全周期進行信息采集,特別是檢測時間、地點以及責任人的相關信息。
2)防偽。每個樣品,包括樣品的分割都會生成防偽碼,方便防偽查詢。
3)溯源。溯源碼生成,樣品檢測的全流程溯源,用戶可以查詢樣品的溯源信息。
4)樣品的歸屬關系。樣品從電廠取樣標識后,由于工作的要求,可能會在測試節(jié)點進行分割,分割后的樣品與原有樣品產生不同層級的歸屬關系,通過區(qū)塊鏈ID,智能合約,可以方便地查詢到每個樣品的狀態(tài)以及從屬關系。
5)數(shù)據(jù)統(tǒng)計分析。對樣品的檢測結果進行數(shù)據(jù)分析,生成樣品多級測試報告。
6)獎勵機制。對節(jié)點的工作質量,以及檢驗檢測責任的工作質量和數(shù)量的分析,觸發(fā)相應的獎勵。
2.3.1 本應用系統(tǒng)采用SQL數(shù)據(jù)庫
1)用戶信息表包括ID, 用戶名,密碼,email,所屬單位,登錄IP,登錄時間,登錄次數(shù),狀態(tài),角色ID是否匿名。
2)樣品標識表包括,樣品ID,二維碼ID,所屬類別,內容,環(huán)境條件,電廠名稱, 位置信息,取樣時間,原材料情況,錄入人,是否分割,防偽碼等。
3)樣品的層級關系表,樣品ID, 父ID, 名稱,類別,層級是否分割。
4)測試進度表包括,樣品ID, 父ID, 二維碼,防偽碼,所屬電廠,所屬類別,內容,發(fā)布位置,所屬節(jié)點,測試內容,測試步驟,測試責任人,是否完成測試,審核人,審核時間。
5)二維碼表包括,ID,二維碼,密鑰,內容。
6)審核信息表包括,二維碼ID, 二維碼掃描位置,掃描時間,是否通過,評價星級,評價內容。
7)獎勵表包括ID,節(jié)點ID, 責任人ID, 完成測試樣品數(shù)量,五星評價樣品數(shù)量,累計每月測試時間。
2.3.2 區(qū)塊鏈數(shù)據(jù)采用NoSQL數(shù)據(jù)庫
區(qū)塊鏈數(shù)據(jù)通過文檔進行存儲,是一種使用JSON(JavaScript object notation) 格式、以Key-Value 存儲數(shù)據(jù)的方式。區(qū)塊鏈信息存儲如下。
{
"block": "
00006aa49f0f24bb0e84460469591595e
43c28f1e157f2c75068d81a9c527568",
"header":{
"merkle_root": "
04c119e51d2ad166c71166770
8e1d2728839559886c74981f8f29476f721f15e",
"nonce":518370,
"parent": "
0000a59bf06d82cf571f37b46c6d67
45887e45e3acf8ad2d145e9931e32f95d7",
"target":4,
"timestamp": "2018-07-29 17: 00:
02.362425","version":"00000001",
"data":""
},
"size":120,"transactions":{
"
04c119e51d2ad166c711667708e1d2728839559 88 6c74981f8f29476f721f15e":{
"input_count": 0, "inputs": [], "output_count":1,"outputs":[
{
"address":"b2c2dd63a731f3ca4bcc5c9
860e7d90f8d1f3b024def2dfe5347e1ab1cf3e 308","amount":100
}]
}},
"txcount":1
}
本課題組基于以太坊開發(fā),使用Truffle v4.1.14 和Solidity 0.4.24 編碼,具有二維碼包裝廣告監(jiān)管和防偽溯源功能的品牌鏈Dapp 代碼。后端區(qū)塊鏈使用Geth(go ethereum)設置私有以太坊網(wǎng)絡,并 通 過Web 3 JavaScript 庫、Node.js、liteserver 實現(xiàn)交互。前端應用系統(tǒng)是使用Python Django Web框架實現(xiàn)。本系統(tǒng)的實現(xiàn)架構圖如圖3所示。本系統(tǒng)分為前端和后端。
1)前端
通過瀏覽器提供樣品信息和測試信息的錄入、節(jié)點測試責任人防偽溯源查詢、測試流程監(jiān)控和監(jiān)管等功能。
2)后端
Web 服務器提供系統(tǒng)的Web 服務; RPC(remote procedure call)提供了以太坊虛擬網(wǎng)絡;智能合約實現(xiàn)數(shù)據(jù)存入?yún)^(qū)塊鏈、數(shù)據(jù)查詢及系統(tǒng)獎勵機制;區(qū)塊鏈為每一個樣品數(shù)據(jù)塊實體。
圖3 系統(tǒng)的實現(xiàn)架構圖
第一步,下載Ganache,Ganache 用于提供節(jié)點。網(wǎng)絡以及初始賬號,如圖4所示。
第二步,進入cmd,下載lite-server,進入項目目錄,使用npm run dev開啟服務,如下圖所示。
第三步,在瀏覽器中使用MateMask錢包插件,用Ganache提供的初始賬號登錄系統(tǒng)。
圖4 網(wǎng)絡以及初始賬號圖
3.3.1 智能合約
商品查詢函數(shù)如下。
function getproduce(bytes j) constant returns(bytes,string,string,string,string,string,string){
return (f1[j].pid,f1[j].pname,f1[j].pplace,f1[j].ptime,f1[j].ltime,f1[j].lplace,f1[j].xplace);
}
設置交易信息函數(shù)如下。
function setTxInfo(bytes _pid, string _txplace,string_txtime){
f1[_pid].lplace=_txplace;
f1[_pid].ptime=_txtime;}
防偽溯源查詢函數(shù)如下。
function query(bytes _pid) constant returns(uint256,uint256){
uint256 _time=now; uint256 money=5; return(_time,money);
}
3.3.2 系統(tǒng)界面
用戶端包括樣品信息錄入、測試數(shù)據(jù)信息錄入、樣品信息查詢、防偽查詢、樣品層級歸屬關系、測試流程監(jiān)管6個功能界面。
二維碼技術和區(qū)塊鏈技術的快速發(fā)展,針對電廠樣品檢驗檢測這個跨地域多部門協(xié)作工作場景,建立一個高效的線上合作組織。該組織的構建基于區(qū)塊鏈的二維碼包裝監(jiān)管和防偽溯源系統(tǒng),完善并提高了樣品檢驗檢測流程和效率。運用Python Django 技術和Web3.0 技術,將樣品檢驗檢測流程和檢測數(shù)據(jù)以及防偽標識的豐富內容通過掃描包裝上的二維碼能夠圖文聲像并茂快速展示,這種樣品監(jiān)管的新模式,為樣品檢驗檢測工作節(jié)省了大量的時間和精力。
通過互聯(lián)網(wǎng)傳播和共享信息,有利于各個檢驗檢測節(jié)點相互協(xié)作提高工作效率,降低工作成本;有利于監(jiān)管部門,實時查看檢驗檢測進度和最終檢驗檢測結果;有利于樣品的管理,溯源包括責任劃分;研究樣品檢測數(shù)據(jù),提高電廠運行效率。因此,通過基于區(qū)塊鏈的發(fā)電廠樣品委托檢測物流及信息管理系統(tǒng)的研究,有利于提升電廠樣品檢驗檢測單位多部門協(xié)作的整體工作效率,并且有利于電廠的安全運營與維護;有利于量化每個節(jié)點的工作質量;通過數(shù)據(jù)的積累有利于電廠樣品跨地域多部門協(xié)作的流程創(chuàng)新,為進一步優(yōu)化資源,為電廠的數(shù)字化運營打下基礎。