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

摘  要: 針對現代工業機械設備維修的復雜性,根據設備的故障現象、故障原因、故障排除的原理,結合以往維修人員的經驗,采用Access數據庫構建樹狀結構進行節點管理與節點消息響應,從而實現故障信息管理和故障信息提取。運用C++語言和面向對象的方法實現了人機交互界面,開發出設備故障維修專家庫系統。實際應用表明,該系統提高了維修人員的維修效率、減少了人力成本,為實際維修提供參考和指導。
關鍵詞: Access數據庫;樹狀結構;故障信息;C++;專家庫系統

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

2 樹狀結構的實現
    樹狀結構是一類非常重要的非線性結構數據,它可以描述客觀世界中廣泛存在的具有分支關系或層次特性的對象,因此在計算機領域里有著廣泛應用,如操作系統中的文件管理、編譯程序中的語法結構、數據庫系統信息組織形式等。因此,本文將采用樹狀結構實現專家庫系統的層次結構管理和節點消息響應。
     參考文獻[1-2]中運用C++設計了樹狀結構,實現了節點的復制、剪切、粘貼等功能,但程序重啟后,修改好的節點信息將會丟失,未能實現樹狀結構節點的存儲。 而本文通過Access數據庫構建樹狀結構[3-4],實現了樹狀結構節點的存儲、節點信息提取,開發出故障維修專家庫系統。
2.1 節點在Access數據庫的排列原理
    樹狀結構中的每個節點都包括ID、子節點、父節點、目錄號、路徑5個自定義的數據,將這些節點包括的數據存放在Access數據庫表中,通過對節點數據的排列組合來實現樹狀分層結構,其數據的組合如圖3(a)所示。

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

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

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

 

 

    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);     //復原位圖數據
    hwnd->GetClientRect(&rect);   //獲取窗口客戶坐標
    ::SetStretchBltMode(hDesDC,COLORONCOLOR);   
                                    //指定伸拉模式
    ::StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.
        bottom, hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,
        +SRCCOPY);                     //將位圖載入目標區域
    SetTimer(IDT_TIMER,50,NULL);
3.3 系統管理
    系統管理實現三個功能:用戶管理、數據導入、數據備份。
    用戶管理包括超級用戶和普通用戶。超級用戶具有添加、修改、刪除普通用戶和操作某些系統功能的權限。本文采用一種有效的方法,即將采集到的用戶名與數據庫中的user_name對比來實現。通過建立兩張相同的Access數據庫表——超級用戶表和普通用戶表,在程序內部定義一個字符串數組,編寫好字符比較函數[8],當用戶登錄時,用戶名被采集放在數組中,再將數組中的用戶名與Access數據庫表中的user_name比較,如果采集的字符串與超級用戶表中的user_name相同,則為超級用戶;否則為普通用戶。數據導入、導出即調用system("copy Database.mdb X:\\Database.mdb")函數。
4 結果與分析
    為了驗證故障專家庫系統的可行性,本文通過系統管理界面對樹狀結構的節點進行添加、刪除、修改等調試;建立Access數據庫表,存放文字、圖片、視頻等故障信息,并通過節點的消息響應對信息進行讀取。系統在重新啟動后,節點信息沒有丟失;單擊樹狀結構的節點,顯示其相應的故障信息,進而實現數據的有效存儲,以及節點的文本、圖片、視頻等故障信息的提取。經過測試,該專家系統在Microsoft XP、Win7系統下運行穩定, 并可根據需要進行功能擴展。人機交互界面如圖6所示。

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品videosex极品| 一区二区三区在线看| 久久一区二区三区四区五区| 亚洲综合色激情五月| 99视频精品免费观看| 亚洲精华国产欧美| 欧美一区激情视频在线观看| 亚洲一区二区网站| 亚洲午夜一区二区| 亚洲在线第一页| 亚洲一区二区在线| 亚洲欧美国内爽妇网| 亚洲欧美不卡| 午夜久久福利| 欧美在线资源| 亚洲第一福利在线观看| 亚洲高清视频一区| 亚洲品质自拍| 夜夜嗨av一区二区三区四季av| 99热在线精品观看| 亚洲社区在线观看| 亚洲在线视频网站| 欧美一区在线直播| 久久精品中文字幕免费mv| 久久久高清一区二区三区| 久久久久久婷| 欧美+日本+国产+在线a∨观看| 美女精品一区| 欧美精品成人| 欧美午夜在线视频| 国产日韩精品在线| 永久域名在线精品| 亚洲人成网站色ww在线| 一本色道久久综合亚洲精品小说 | 亚洲精品一品区二品区三品区| 亚洲欧洲精品成人久久奇米网| 亚洲美女毛片| 亚洲综合视频网| 久久国产日韩| 99一区二区| 午夜在线a亚洲v天堂网2018| 久久久久久网址| 欧美激情在线播放| 国产精品久久久久久久久久尿| 国产一区二区三区精品久久久| 亚洲第一色在线| 亚洲毛片播放| 欧美一区不卡| 99国产精品久久久久久久久久 | 国内精品国产成人| 亚洲欧洲综合另类| 亚洲欧美国产精品va在线观看| 亚洲成人资源网| 亚洲小视频在线观看| 久久狠狠亚洲综合| 欧美精品一区在线观看| 国产精品女同互慰在线看| 黑人中文字幕一区二区三区| 亚洲伦理中文字幕| 欧美影院视频| 亚洲天堂激情| 蜜桃av一区二区在线观看| 国产精品狠色婷| 亚洲二区三区四区| 亚洲欧美成人网| 日韩视频在线观看一区二区| 欧美在线观看网站| 欧美精品在线观看91| 国产婷婷色一区二区三区四区| 91久久精品一区| 欧美一站二站| 亚洲一区二区高清视频| 美女在线一区二区| 国产精品视频专区| 亚洲毛片av| 亚洲国产精品第一区二区| 亚洲一区二区在| 欧美成人在线网站| 国产一区二区三区在线观看免费视频| 日韩视频免费在线| 亚洲国产成人久久综合| 亚洲欧美日韩一区二区三区在线观看| 欧美xxx成人| 国产亚洲毛片在线| 亚洲一品av免费观看| 99视频精品| 欧美+日本+国产+在线a∨观看| 国产麻豆91精品| 一本色道久久综合狠狠躁的推荐| 亚洲国产视频一区二区| 亚洲一区二区视频在线观看| 欧美黑人一区二区三区| 黄色精品一区二区| 性欧美videos另类喷潮| 亚洲一区二区三区四区视频| 欧美fxxxxxx另类| 激情综合亚洲| 欧美在线视频播放| 午夜精品久久久久久久蜜桃app | 欧美日本在线视频| 亚洲电影在线看| 久久狠狠一本精品综合网| 欧美一区二区视频在线| 欧美视频四区| 亚洲美女视频网| 亚洲美女91| 欧美超级免费视 在线| 国产主播精品在线| 亚洲伊人网站| 亚洲欧美日本精品| 国产精品激情av在线播放| 日韩视频一区二区在线观看 | 欧美日韩国产丝袜另类| 亚洲国产二区| 亚洲国产精品热久久| 可以看av的网站久久看| 黄色av成人| 亚洲第一页在线| 久久性天堂网| 红桃av永久久久| 久久精品国产亚洲一区二区三区| 久久久午夜精品| 在线精品国精品国产尤物884a| 亚洲成色777777女色窝| 久久综合一区二区三区| 一区在线播放| 亚洲人成网站影音先锋播放| 欧美成年人视频| 亚洲精品久久久久久下一站| 99日韩精品| 国产精品国产三级国产普通话99| 一本久久综合亚洲鲁鲁五月天| 亚洲一区日韩在线| 国产麻豆精品久久一二三| 午夜精品成人在线视频| 久久久精品一区二区三区| 激情校园亚洲| 亚洲精品一区二区三区福利| 欧美日韩ab| 亚洲一区二区网站| 久久精品av麻豆的观看方式| 黄色免费成人| 亚洲免费观看在线观看| 欧美视频在线看| 亚洲欧美在线免费观看| 久久久精品免费视频| 亚洲国产高清在线| 中日韩男男gay无套| 国产精品一区二区男女羞羞无遮挡| 亚洲欧美视频在线| 免费在线国产精品| 日韩视频一区二区三区在线播放 | 国产精品一区二区久激情瑜伽| 欧美亚洲一区二区三区| 狂野欧美一区| 99re在线精品| 久久国产直播| 亚洲激情在线观看视频免费| 亚洲一区二区黄色| 国模私拍视频一区| 一本色道久久综合狠狠躁篇怎么玩 | 国产婷婷97碰碰久久人人蜜臀| 亚洲国产综合视频在线观看| 欧美日韩中文字幕在线视频| 亚洲欧美精品suv| 免费日韩一区二区| 亚洲一区二区三区四区在线观看| 美女网站久久| 亚洲一区二区精品| 欧美 日韩 国产 一区| 亚洲一区二区三区中文字幕| 男人插女人欧美| 一区二区三区回区在观看免费视频| 久久aⅴ乱码一区二区三区| 91久久国产综合久久| 欧美在线日韩精品| 亚洲日本欧美| 久久久噜噜噜久久中文字免 | 亚洲视频一区二区在线观看| 美女视频网站黄色亚洲| 亚洲午夜国产成人av电影男同| 可以看av的网站久久看| 亚洲午夜免费福利视频| 欧美大胆a视频| 亚洲欧美另类综合偷拍| 欧美精品久久久久久| 欧美伊久线香蕉线新在线| 欧美日韩一区在线| 亚洲激情视频网| 国产色综合网| 亚洲影音一区| 亚洲日韩视频| 久久先锋资源| 亚洲在线第一页| 欧美日韩一区免费| 亚洲乱码精品一二三四区日韩在线 | 欧美日韩国产经典色站一区二区三区| 欧美一区2区三区4区公司二百| 欧美日韩综合视频| 亚洲精品一二三|