《電子技術(shù)應用》
您所在的位置:首頁 > 其他 > 設(shè)計應用 > 基于MFC的故障維修專家系統(tǒng)設(shè)計與實現(xiàn)
基于MFC的故障維修專家系統(tǒng)設(shè)計與實現(xiàn)
來源:微型機與應用2012年第22期
陳侃松, 劉洪波, 熊 攀, 唐 寅
(湖北大學 物理學與電子技術(shù)學院, 湖北 武漢 430062)
摘要: 針對現(xiàn)代工業(yè)機械設(shè)備維修的復雜性,根據(jù)設(shè)備的故障現(xiàn)象、故障原因、故障排除的原理,結(jié)合以往維修人員的經(jīng)驗,采用Access數(shù)據(jù)庫構(gòu)建樹狀結(jié)構(gòu)進行節(jié)點管理與節(jié)點消息響應,從而實現(xiàn)故障信息管理和故障信息提取。運用C++語言和面向?qū)ο蟮姆椒▽崿F(xiàn)了人機交互界面,開發(fā)出設(shè)備故障維修專家?guī)煜到y(tǒng)。實際應用表明,該系統(tǒng)提高了維修人員的維修效率、減少了人力成本,為實際維修提供參考和指導。
Abstract:
Key words :

摘  要: 針對現(xiàn)代工業(yè)機械設(shè)備維修的復雜性,根據(jù)設(shè)備的故障現(xiàn)象、故障原因、故障排除的原理,結(jié)合以往維修人員的經(jīng)驗,采用Access數(shù)據(jù)庫構(gòu)建樹狀結(jié)構(gòu)進行節(jié)點管理與節(jié)點消息響應,從而實現(xiàn)故障信息管理和故障信息提取。運用C++語言和面向?qū)ο蟮姆椒▽崿F(xiàn)了人機交互界面,開發(fā)出設(shè)備故障維修專家?guī)煜到y(tǒng)。實際應用表明,該系統(tǒng)提高了維修人員的維修效率、減少了人力成本,為實際維修提供參考和指導。
關(guān)鍵詞: Access數(shù)據(jù)庫;樹狀結(jié)構(gòu);故障信息;C++;專家?guī)煜到y(tǒng)

    由于現(xiàn)代工業(yè)機械設(shè)備的復雜性及其使用壽命要求的日益提高,對設(shè)備維修保障和質(zhì)量服務(wù)等方面提出了新的挑戰(zhàn)。有效存儲和使用設(shè)備的歷史維修案例、查詢設(shè)備的應用情況,為維護人員改進維修方式和解決新問題提供了參考依據(jù),也可提高設(shè)備的可維護性和穩(wěn)定性。
    根據(jù)維修經(jīng)驗、技巧、方法等構(gòu)建的設(shè)備故障維修專家?guī)煜到y(tǒng)包括故障現(xiàn)象、故障原因、排除方法等。它為解決設(shè)備出現(xiàn)的實際故障問題提供了重要依據(jù)。因此,如何有效存儲、檢索文本、圖片、視頻等數(shù)據(jù)資料是構(gòu)建故障維修專家?guī)煜到y(tǒng)的關(guān)鍵。本文針對機械設(shè)備引起的故障現(xiàn)象、原因及排除方法設(shè)計了一套設(shè)備故障維修專家?guī)煜到y(tǒng),通過關(guān)鍵詞匹配檢索故障案例,為設(shè)備維護提供參考和指導。
1 系統(tǒng)分析與總體設(shè)計
    系統(tǒng)設(shè)計思路主要由故障信息采集和故障信息錄入兩部分組成。故障信息采集:維修人員將設(shè)備產(chǎn)生的故障現(xiàn)象、故障原因及故障排除方法等信息收集。故障信息錄入:管理員將維修人員收集的信息錄入數(shù)據(jù)庫。當設(shè)備出現(xiàn)故障時,維修人員使用本系統(tǒng)查找出設(shè)備故障的排除方法;同時,對某些不準確的信息修改后重新收集,提供給超級用戶修改后錄入系統(tǒng)。其流程圖如圖1所示。根據(jù)系統(tǒng)流程圖設(shè)計專家?guī)煜到y(tǒng),主要由用戶管理、信息管理和信息顯示等組成,系統(tǒng)總體框圖如圖2所示。

2 樹狀結(jié)構(gòu)的實現(xiàn)
    樹狀結(jié)構(gòu)是一類非常重要的非線性結(jié)構(gòu)數(shù)據(jù),它可以描述客觀世界中廣泛存在的具有分支關(guān)系或?qū)哟翁匦缘膶ο螅虼嗽谟嬎銠C領(lǐng)域里有著廣泛應用,如操作系統(tǒng)中的文件管理、編譯程序中的語法結(jié)構(gòu)、數(shù)據(jù)庫系統(tǒng)信息組織形式等。因此,本文將采用樹狀結(jié)構(gòu)實現(xiàn)專家?guī)煜到y(tǒng)的層次結(jié)構(gòu)管理和節(jié)點消息響應。
     參考文獻[1-2]中運用C++設(shè)計了樹狀結(jié)構(gòu),實現(xiàn)了節(jié)點的復制、剪切、粘貼等功能,但程序重啟后,修改好的節(jié)點信息將會丟失,未能實現(xiàn)樹狀結(jié)構(gòu)節(jié)點的存儲。 而本文通過Access數(shù)據(jù)庫構(gòu)建樹狀結(jié)構(gòu)[3-4],實現(xiàn)了樹狀結(jié)構(gòu)節(jié)點的存儲、節(jié)點信息提取,開發(fā)出故障維修專家?guī)煜到y(tǒng)。
2.1 節(jié)點在Access數(shù)據(jù)庫的排列原理
    樹狀結(jié)構(gòu)中的每個節(jié)點都包括ID、子節(jié)點、父節(jié)點、目錄號、路徑5個自定義的數(shù)據(jù),將這些節(jié)點包括的數(shù)據(jù)存放在Access數(shù)據(jù)庫表中,通過對節(jié)點數(shù)據(jù)的排列組合來實現(xiàn)樹狀分層結(jié)構(gòu),其數(shù)據(jù)的組合如圖3(a)所示。

    其中,數(shù)據(jù)的分層是根據(jù)子節(jié)點和父節(jié)點在數(shù)據(jù)表中的交替排列,每一個父節(jié)點下面包括子節(jié)點,而每一個子節(jié)點又可以作為新的父節(jié)點,依次類推。假設(shè)先定義一個3層的平面結(jié)構(gòu),從表格中可以看到節(jié)點1、2、3屬于總節(jié)點,而節(jié)點11、12屬于節(jié)點1的子節(jié)點;同理可以得出其他節(jié)點的從屬關(guān)系,而總節(jié)點是沒有父節(jié)點的,其設(shè)定值為0。如果需要設(shè)計多層的結(jié)構(gòu),只需將當前節(jié)點放在子節(jié)點一列,所從屬的節(jié)點放在父節(jié)點一列即可。
    為了實現(xiàn)數(shù)據(jù)管理,在數(shù)據(jù)庫中添加了目錄號(實際應用中可以省略),如目錄號101的意義是:前面1代表名稱(節(jié)點1),01是節(jié)點1的第1個子節(jié)點,102是節(jié)點1的第2個子節(jié)點,這樣節(jié)點1下面可以排99個子節(jié)點,子節(jié)點的個數(shù)可以根據(jù)自己的要求定義。
2.2 樹狀分層結(jié)構(gòu)的實現(xiàn)
    新建一個MFC[5]工程,在工程中創(chuàng)建一個對話框;添加Tree Control控件,控件屬性Styles中勾選Has buttons、Has lines、lines at root;通過ADO[6]連接圖3(a)所示的數(shù)據(jù)庫表,將數(shù)據(jù)信息添加到控件中;根據(jù)節(jié)點在數(shù)據(jù)庫中的排列編寫相關(guān)的函數(shù),部分代碼如下:
     tvInsert.item.pszText = _T("總節(jié)點");       //添加總節(jié)點
     hParent = m_ctrlTree.InsertItem(&tvInsert);
     TreeAddSubTree("總節(jié)點","1",hParent);    //添加子節(jié)點
  m_ctrlTree.Expand(hParent,TVE_EXPAND);     //展開節(jié)點
    樹狀結(jié)構(gòu)的界面如圖3(b)所示。
3 故障節(jié)點管理和消息響應的實現(xiàn)
3.1 故障節(jié)點管理

    故障節(jié)點管理即信息管理。筆者已在Access數(shù)據(jù)庫中實現(xiàn)了樹狀分層結(jié)構(gòu),每一個節(jié)點就是一條故障信息,實現(xiàn)故障信息的管理即是實現(xiàn)對節(jié)點的添加、刪除、修改等操作。
   以Access數(shù)據(jù)庫表的每行數(shù)據(jù)(一個節(jié)點)為出發(fā)點,對每行數(shù)據(jù)進行相關(guān)操作。直接采用ODBC [7]對數(shù)據(jù)庫訪問,在VC對話框里面添加相關(guān)的控件;將數(shù)據(jù)庫的信息映射到List Control控件中,編寫修改、添加、刪除、清空等函數(shù),其中圖片信息界面如圖4所示。通過目錄號來實現(xiàn)對信息的檢索。

3.2 節(jié)點消息響應
    節(jié)點的消息響應是通過節(jié)點提取故障信息,采用路徑的方法來實現(xiàn)。在樹狀結(jié)構(gòu)的基礎(chǔ)上,通過VC6.0編譯器的對話框添加Picture組件,Picture控件屬性中:General→Type→選擇Bitmap,Styles中勾選Center image,在點擊 (OnClick)和改變選擇項(SelchangedTree)事件中編寫圖片信息顯示、圖片路徑調(diào)用等相關(guān)程序。當點擊樹狀結(jié)構(gòu)節(jié)點時,程序訪問Access數(shù)據(jù)庫中路徑,并將圖片信息顯示在Picture控件中。如圖5所示,左邊為樹狀結(jié)構(gòu),右邊為故障圖片信息。視頻信息顯示的方法與圖片信息的方法相同,只需將Picture控件用Media Player控件替換。調(diào)用圖片信息部分程序代碼如下:

 

 

    hwnd = GetDlgItem(IDC_BITMAP);
              //指定對話框控件句柄
    hDesDC = hwnd->GetDC()->m_hDC;
    hSrcDC = CreateCompatibleDC(hDesDC);
    hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),
        strFieldValue,IMAGE_BITMAP,0,0,LR_LOADFROM
        FILE|LR_CREATEDIBSECTION);  //顯示位圖
    GetObject(hBitmap, sizeof BITMAP, &bm);
    //得到指定圖像信息
    SelectObject(hSrcDC, hBitmap);     //復原位圖數(shù)據(jù)
    hwnd->GetClientRect(&rect);   //獲取窗口客戶坐標
    ::SetStretchBltMode(hDesDC,COLORONCOLOR);   
                                    //指定伸拉模式
    ::StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.
        bottom, hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,
        +SRCCOPY);                     //將位圖載入目標區(qū)域
    SetTimer(IDT_TIMER,50,NULL);
3.3 系統(tǒng)管理
    系統(tǒng)管理實現(xiàn)三個功能:用戶管理、數(shù)據(jù)導入、數(shù)據(jù)備份。
    用戶管理包括超級用戶和普通用戶。超級用戶具有添加、修改、刪除普通用戶和操作某些系統(tǒng)功能的權(quán)限。本文采用一種有效的方法,即將采集到的用戶名與數(shù)據(jù)庫中的user_name對比來實現(xiàn)。通過建立兩張相同的Access數(shù)據(jù)庫表——超級用戶表和普通用戶表,在程序內(nèi)部定義一個字符串數(shù)組,編寫好字符比較函數(shù)[8],當用戶登錄時,用戶名被采集放在數(shù)組中,再將數(shù)組中的用戶名與Access數(shù)據(jù)庫表中的user_name比較,如果采集的字符串與超級用戶表中的user_name相同,則為超級用戶;否則為普通用戶。數(shù)據(jù)導入、導出即調(diào)用system("copy Database.mdb X:\\Database.mdb")函數(shù)。
4 結(jié)果與分析
    為了驗證故障專家?guī)煜到y(tǒng)的可行性,本文通過系統(tǒng)管理界面對樹狀結(jié)構(gòu)的節(jié)點進行添加、刪除、修改等調(diào)試;建立Access數(shù)據(jù)庫表,存放文字、圖片、視頻等故障信息,并通過節(jié)點的消息響應對信息進行讀取。系統(tǒng)在重新啟動后,節(jié)點信息沒有丟失;單擊樹狀結(jié)構(gòu)的節(jié)點,顯示其相應的故障信息,進而實現(xiàn)數(shù)據(jù)的有效存儲,以及節(jié)點的文本、圖片、視頻等故障信息的提取。經(jīng)過測試,該專家系統(tǒng)在Microsoft XP、Win7系統(tǒng)下運行穩(wěn)定, 并可根據(jù)需要進行功能擴展。人機交互界面如圖6所示。

    本文以Visual C++6.0為開發(fā)平臺,采用Access2003數(shù)據(jù)庫構(gòu)建樹狀結(jié)構(gòu),運用樹狀結(jié)構(gòu)中的節(jié)點管理和消息提取,并結(jié)合工業(yè)設(shè)備的故障現(xiàn)象、故障原因、故障排除原理以及維修人員的經(jīng)驗建立了具有文本、圖片、 視頻數(shù)據(jù)的Access知識庫,開發(fā)出故障維修專家?guī)煜到y(tǒng)。實際應用表明,該系統(tǒng)提高了設(shè)備維護人員的工作效率、極大地降低了人力成本,為設(shè)備維護與故障排除提供了重要參考和指導。
參考文獻
[1] 孫鑫,余安萍.VC++深入詳解[M]. 北京:電子工業(yè)出版社,2006.
[2] 潛繼成. 樹狀結(jié)構(gòu)數(shù)據(jù)管理[J].電腦編程技術(shù)與維護,2010(17):14-15。
[3] 李俊民,高春燕. Access數(shù)據(jù)庫開發(fā)實例解析[M].北京:機械工業(yè)出版社,2006.
[4] Xu Fengyuan.按數(shù)據(jù)庫記錄構(gòu)建樹控[EB/OL]. (2002-12-01).http://www.vckbase.com/document/viewdoc/?id=466.
[5] 曾凡峰,苗雨.MFC編程技巧與范例詳解[M].北京:清華大學出版社,2008.
[6] 劉銳寧,宋坤. Visual C++ 程序設(shè)計標準教程[M].北京:人民郵電出版社,2009.
[7] 任哲.MFC Windows 應用程序設(shè)計[M]. 北京:清華大學出版社,2004.
[8] 譚浩強.C++程序設(shè)計實踐指導[M]. 北京:清華大學出版社,2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美91精品| 国产一区二区三区在线免费观看 | 久久岛国电影| 亚洲欧美日韩一区在线观看| 亚洲午夜视频在线观看| 一区二区欧美日韩| 99re6热在线精品视频播放速度| 亚洲激情网站| 在线观看日产精品| 激情国产一区| 国产一区二区三区网站| 国产自产女人91一区在线观看| 国产欧美一区二区精品婷婷| 国产精品视频专区| 国产精品一区二区女厕厕| 国产精品乱码久久久久久| 国产精品久久久久久久7电影 | 激情文学综合丁香| 精品av久久久久电影| 在线电影一区| 亚洲国产日韩欧美一区二区三区| 亚洲国产精品福利| 亚洲精品孕妇| 一区二区三区高清在线观看| 亚洲婷婷国产精品电影人久久| 亚洲制服欧美中文字幕中文字幕| 亚洲一区二区久久| 亚洲欧美一区二区三区久久| 欧美一级视频免费在线观看| 久久se精品一区精品二区| 91久久在线播放| 一区二区三区鲁丝不卡| 亚洲一区中文| 久久精品123| 久久综合中文| 欧美精品激情| 欧美性做爰猛烈叫床潮| 国产日韩欧美在线视频观看| 尤物yw午夜国产精品视频明星| 亚洲国产精品va在线看黑人动漫| 日韩系列在线| 午夜精品视频在线观看| 91久久精品国产| 亚洲午夜羞羞片| 欧美怡红院视频| 蜜臀99久久精品久久久久久软件| 欧美精品久久99| 国产精品乱码人人做人人爱| 韩国v欧美v日本v亚洲v| 91久久精品国产| 亚洲性视频网站| 亚洲高清一区二| 亚洲一区二区少妇| 久久男女视频| 欧美日韩在线另类| 国内精品**久久毛片app| 亚洲理论在线| 久久成人精品电影| 亚洲视屏在线播放| 久久精品国产免费观看| 欧美激情一二三区| 国产欧美一区二区精品仙草咪| 亚洲国产综合在线| 亚洲欧美久久| 日韩视频免费在线观看| 欧美在线影院| 欧美日韩情趣电影| 极品少妇一区二区三区精品视频| 夜夜嗨av一区二区三区| 亚洲第一精品夜夜躁人人爽| 一区二区三区久久精品| 久久天堂av综合合色| 国产精品电影网站| 亚洲国产色一区| 欧美诱惑福利视频| 亚洲性人人天天夜夜摸| 欧美va天堂在线| 国产日韩欧美高清| 夜夜爽av福利精品导航 | 午夜精品偷拍| 欧美激情亚洲国产| 激情成人综合| 午夜免费久久久久| 亚洲桃花岛网站| 欧美成人免费全部| 黑丝一区二区| 午夜激情综合网| 亚洲一区中文| 欧美日本一区二区视频在线观看| 一区二区三区在线观看视频| 亚洲一区欧美| 亚洲视频一起| 欧美裸体一区二区三区| 在线观看国产日韩| 午夜精品免费在线| 亚洲欧美电影院| 欧美日韩在线一区二区| 亚洲日产国产精品| 最新日韩欧美| 两个人的视频www国产精品| 国产精品一区久久久| 99re8这里有精品热视频免费| 亚洲国产日韩一级| 久久精品视频免费| 国产目拍亚洲精品99久久精品| 一区二区三区精密机械公司| 99国内精品久久| 欧美国产一区二区三区激情无套| 韩国成人理伦片免费播放| 性久久久久久| 欧美一区二区三区免费观看视频| 国产精品theporn| 一区二区三区久久久| 亚洲天堂男人| 欧美日韩精品一区二区三区四区| 91久久久精品| 亚洲精品久久久久久久久久久久久| 久久资源在线| 国内精品福利| 亚洲国产视频一区二区| 老司机午夜免费精品视频| 精品不卡一区| 91久久精品国产| 欧美高清在线播放| 亚洲日韩中文字幕在线播放| av成人激情| 欧美日韩在线电影| 一本色道久久综合精品竹菊| 亚洲一区二区免费看| 国产精品黄视频| 亚洲已满18点击进入久久| 午夜久久黄色| 国产视频亚洲| 亚洲国产精品小视频| 久久在线播放| 亚洲激情精品| 亚洲午夜精品久久| 国产精品亚洲成人| 欧美一区二区三区四区视频| 久久精品在这里| 在线观看成人网| 日韩一级欧洲| 国产精品成人一区二区三区吃奶| 在线一区二区三区四区五区| 欧美在线日韩| 在线观看一区| 日韩亚洲精品在线| 欧美视频一区在线观看| 亚洲一区二区高清视频| 久久精品国产亚洲一区二区| 在线观看亚洲| 亚洲视频 欧洲视频| 国产精品亚洲成人| 亚洲大片av| 欧美日韩在线观看一区二区| 亚洲免费影视第一页| 久久夜色精品亚洲噜噜国产mv| 亚洲人成艺术| 午夜欧美大片免费观看| 久久综合五月| 一区二区三区精品| 久久久久青草大香线综合精品| 亚洲国产欧美另类丝袜| 亚洲综合大片69999| 国产一区深夜福利| 亚洲精品乱码久久久久久日本蜜臀| 欧美日韩亚洲一区在线观看| 香蕉久久a毛片| 欧美激情女人20p| 亚洲在线一区二区| 欧美va天堂在线| 亚洲综合久久久久| 欧美电影免费观看| 亚洲在线网站| 欧美—级在线免费片| 亚洲女女做受ⅹxx高潮| 欧美大片免费久久精品三p | 亚洲永久在线观看| 蜜桃伊人久久| 亚洲天堂男人| 欧美黄色精品| 亚洲欧美日韩一区二区| 欧美激情视频一区二区三区免费| 亚洲一二三区精品| 欧美激情国产日韩| 先锋影音久久久| 欧美激情一区二区三区不卡| 亚洲欧美一区二区原创| 欧美日韩国产专区| 亚洲第一偷拍| 国产精品亚洲不卡a| 99天天综合性| 永久免费精品影视网站| 欧美一区二区三区视频| 亚洲精品少妇30p| 欧美11—12娇小xxxx| 欧美在线视频一区二区| 国产精品二区在线观看| 日韩一区二区电影网| 加勒比av一区二区|