唐建華 王懷江 李志華 鄭莉 劉瑩瑩
摘 要:本文采用C#、NI、Matlab多語言混合編程,開發(fā)了一種應(yīng)用于管道內(nèi)檢測器的智能型人機(jī)交互軟件。本軟件基于面向過程思想,設(shè)計(jì)了不同工作模式,可良好服務(wù)于檢測器自產(chǎn)品出廠測試、管道檢測前自檢測試、管道檢測、檢測數(shù)據(jù)讀取與離線分析、產(chǎn)品定期質(zhì)檢維修等全壽命周期過程。軟件前臺遵循便捷、大眾邏輯型界面設(shè)計(jì)原則,最大程度降低軟件操作復(fù)雜度;后臺采用自動化數(shù)據(jù)管理,每一步交互操作均具備自動記錄日志功能,不同數(shù)據(jù)根據(jù)數(shù)據(jù)類型及操作時間自動分類,建立當(dāng)天的數(shù)據(jù)管理架構(gòu)并完成數(shù)據(jù)管理,所有數(shù)據(jù)均支持后續(xù)人工二次查詢分析功能,具備很大的智能性,解放了生產(chǎn)力。另外以動態(tài)鏈接庫方法內(nèi)嵌Matlab算法,可自動分析讀取數(shù)據(jù),大大提高了軟件工作效率,在工程中得到了成功應(yīng)用。
關(guān)鍵詞:管道檢測;人機(jī)交互軟件;智能型;自動化;工程應(yīng)用
中圖分類號:TE973.6 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-2064(2018)21-0025-03
1 軟件總體設(shè)計(jì)
1.1 前臺界面設(shè)計(jì)
基于面向過程思想,便捷、大眾邏輯型設(shè)計(jì)原則[1],軟件界面主要設(shè)計(jì)了軟件登錄與軟件主控管理兩部分。登錄界面如圖1所示;主控界面左側(cè)設(shè)計(jì)采樣數(shù)據(jù)曲線動態(tài)顯示功能,中間設(shè)計(jì)數(shù)據(jù)實(shí)時顯示功能,右側(cè)為人機(jī)交互操作功能,如圖2所示。界面設(shè)計(jì)清晰,且符合大眾常規(guī)操作邏輯。
1.2 后臺程序設(shè)計(jì)
對應(yīng)1.1小結(jié)軟件界面設(shè)計(jì),以及模塊化設(shè)計(jì)原則,軟件后臺亦包含軟件登錄與軟件主控管理兩部分,程序總體架構(gòu)如圖3所示。
軟件安裝完畢,程序控制安裝根目錄下自動創(chuàng)建“User_Info/UserData.txt”用戶管理文件,內(nèi)含默認(rèn)用戶名及默認(rèn)登錄密碼。啟動軟件,首先進(jìn)入登錄界面,輸入以上用戶名及密碼,匹配成功后自動進(jìn)入軟件主控界面,提示軟件啟動成功。點(diǎn)擊“開關(guān)”,系統(tǒng)首選進(jìn)行通信自檢,點(diǎn)擊“設(shè)備停止”,可根據(jù)需求選擇測試或工作模式,然后軟件進(jìn)行通信、數(shù)據(jù)解析、存儲等。操作完畢,可進(jìn)行USB數(shù)據(jù)讀取、回放、Matlab數(shù)據(jù)分析等[2]。
2 軟件詳細(xì)設(shè)計(jì)
2.1 端口自動識別
采用RS232人機(jī)接口。為提高軟件智能性及工作效率,設(shè)計(jì)端口自動識別功能。即PC終端與檢測器物理連接后,啟動軟件,自動讀取COM口并顯示[3],工作人員直接點(diǎn)擊“開關(guān)”對軟件進(jìn)行一鍵傻瓜式啟動,如圖4所示。
2.2 后臺數(shù)據(jù)管理
采用樹形層次型文件管理架構(gòu)設(shè)計(jì)[4]。軟件每次啟動后,首先根據(jù)數(shù)據(jù)類型檢索根目錄下是否存在PC檢測數(shù)據(jù)及USB數(shù)據(jù)文件夾,有則保持,無則建立;然后在文件夾內(nèi)根據(jù)當(dāng)天日期“年-月-日”建立子文件夾;其次在子文件夾內(nèi),整個檢測器當(dāng)天采樣數(shù)據(jù)、日志操作等,均按照軟件開關(guān)啟動、關(guān)閉時間保存為“*.Dat”文件,便于數(shù)據(jù)管理及查詢。如圖5所示。
2.3 高可靠性通信
所有指令,均設(shè)計(jì)為“幀頭-指令類型-指令內(nèi)容-校驗(yàn)位”模式。所有指令通信均設(shè)計(jì)握手協(xié)議,即PC終端向下位機(jī)發(fā)送指令后,等待下位機(jī)回傳握手指令,收到回傳指令后判定通信成功,否則再次發(fā)送指令,連續(xù)發(fā)送3次指令若均無握手回傳,則判斷通信失敗。
2.4 大數(shù)據(jù)處理
針對大數(shù)據(jù)快速通信,為提高軟件數(shù)據(jù)處理能力,設(shè)計(jì)乒乓工作機(jī)制,如圖6所示。
開辟兩個靜態(tài)緩存,采樣數(shù)據(jù)首先至串口緩存內(nèi),數(shù)據(jù)通信線程基于乒乓機(jī)制將n幀(n為整數(shù),根據(jù)實(shí)際需求設(shè)計(jì))采樣數(shù)據(jù)乒乓交替放入緩存1、2;數(shù)據(jù)處理線程交替將數(shù)據(jù)從兩個緩存內(nèi)讀出并處理。交替工作機(jī)制,提高線程并行工作能力,提高大處理處理實(shí)時性,同時亦保證數(shù)據(jù)完整性、可靠性。
2.5 多語言混合編程
NI搭建前臺界面,C#搭建后臺主程序,以.dll動態(tài)鏈接庫模式內(nèi)嵌Matlab算法,充分利用Matlab強(qiáng)大的數(shù)學(xué)處理工具,實(shí)現(xiàn)軟件負(fù)責(zé)處理算法設(shè)計(jì)[5]。且交互類軟件設(shè)計(jì)人員與Matlab算法設(shè)計(jì)人員可分工并行工作,提高工作效率。如圖7所示。
3 軟件工程應(yīng)用
本軟件已成功應(yīng)用于中海油集團(tuán)12英寸管道超聲內(nèi)檢測器上,2017~2018年初進(jìn)行了40余次內(nèi)場環(huán)路試驗(yàn),2018年4月在渤海油田海上平臺間進(jìn)行了9公里真實(shí)海管超聲波內(nèi)檢測作業(yè),軟件及整機(jī)使用效果良好,如圖8所示。
4 結(jié)語
基于面向過程思想,本文提出了一種應(yīng)用于管道檢測器的智能型人機(jī)交互軟件設(shè)計(jì),解決了檢測器自出廠測試、管道檢測前測試、管道檢測、數(shù)據(jù)讀取分析、產(chǎn)品周期質(zhì)檢等全生命周期需求,大大提高了工作效率,解放了生產(chǎn)力,間接產(chǎn)生了很大的經(jīng)濟(jì)效益,在工程中得到了成功應(yīng)用。
參考文獻(xiàn)
[1](美)拉斯基(Jef Raskin).人機(jī)界面[M].北京:機(jī)械工業(yè)出版社,2004.
[2]王坤.高清晰度油氣管道腐蝕檢測器數(shù)據(jù)分析系統(tǒng)設(shè)計(jì)[J].天然氣工業(yè),2007,27(1):108-110.
[3]王小科,王軍.C#開發(fā)實(shí)戰(zhàn)1200例[M].北京:清華大學(xué)出版社,2011.
[4]陳明.數(shù)據(jù)結(jié)構(gòu)與算法(C語言版)[M].北京:人民郵電出版社,2012.
[5]趙忠海,張洪文,劉秀峰.基于C#與MATLAB混合編程實(shí)現(xiàn)變形預(yù)測分析,測繪與空間地理信息,2012,35(5):122-124.