飛泰超聲波探傷模塊的總體設(shè)計(jì)
超聲波探傷模塊在功能處理層中不像數(shù)據(jù)平面對時(shí)間有嚴(yán)格的要求,模塊要具體完成探傷的各種功能,其實(shí)現(xiàn)相對復(fù)雜。而整個超聲波探傷系統(tǒng)對該模塊的可重用性要求也最高。因?yàn)椴还苁乔度胧狡脚_還是基于 PC 機(jī)平臺,也不管是基于 Qt/Embedded 庫還是 MFC 實(shí)現(xiàn),超聲波探傷模塊要完成的許多探傷功能都很相似,所以超聲波探傷模塊的大部分代碼都應(yīng)該可以重用。所以超聲波探傷模塊不僅要實(shí)現(xiàn)探傷的各種功能,而且其設(shè)計(jì)和實(shí)現(xiàn)要層次和接口清晰、支持功能的裁剪和擴(kuò)展、代碼可重用性高、可移植性強(qiáng)等。
飛泰探傷系統(tǒng)中的超聲波探傷模塊采用分層和模塊化方法,利用面向?qū)ο蠓椒ㄔO(shè)計(jì)模塊中的所有類對象,使用標(biāo)準(zhǔn) C++語言實(shí)現(xiàn),以保證超聲波探傷模塊的可重用性和可移植性。模塊分為三層實(shí)現(xiàn),分別為基本參數(shù)層、生成參數(shù)層和功能應(yīng)用層?;緟?shù)層包括輔助參數(shù)設(shè)置、核心參數(shù)設(shè)置和計(jì)算以及設(shè)備控制參數(shù)設(shè)置三個模塊,用來保存探傷所需的基本參數(shù),并為上層提供計(jì)算等服務(wù)。生成參數(shù)層的通道參數(shù)預(yù)置測和測量步驟模塊用來對基本參數(shù)層的數(shù)據(jù)進(jìn)行設(shè)置,并生成正常探傷所需的 DAC 或 AVG 曲線和正、負(fù)報(bào)警閘門等參數(shù)。而功能應(yīng)用層則用來完成正常的探傷功能,如缺陷定量、B 掃描、曲面修正等。
軟件的對象指的是將數(shù)據(jù)和功能捆綁為一體的軟件結(jié)構(gòu),合在一起代表現(xiàn)實(shí)世界(包括物理的和概念的)對象的一個抽象。通過將對象的數(shù)據(jù)、狀態(tài)或?qū)傩院托袨?、操作或方法封裝在一起,實(shí)現(xiàn)信息的封裝和隱蔽。而類則是一組具有共同特性的所有對象成員的抽象描述。根據(jù)超聲波探傷模塊的總體設(shè)計(jì),系統(tǒng)采用了面向?qū)ο蟮姆椒?,將超聲波探傷模塊劃分為若干個類實(shí)現(xiàn)。其中探傷核心類、探傷輔助類和探傷設(shè)備類分別對應(yīng)基本參數(shù)層的核心參數(shù)設(shè)置計(jì)算模塊、輔助參數(shù)設(shè)置模塊和設(shè)備控制參數(shù)模塊,并且這三個類都繼承了探傷基類。探傷基類是一個純虛類,不能用來實(shí)例化任何對象,主要功能是提供一些文件操作的通用接口。探傷波形類和探傷曲線類也都繼承了探傷基類。而探傷報(bào)警閘門類和探傷跟蹤閘門類繼承了探傷閘門基類,而探傷閘門基類繼承了探傷基類。探傷閘門基類是一個純虛基類,提供閘門操作的通用接口。由于探傷核心類、探傷輔助類、探傷設(shè)備類、探傷波形類、探傷曲線類、探傷報(bào)警閘門類和探傷跟蹤閘門類是系統(tǒng)探傷必須的基本模塊,即它們是系統(tǒng)探傷的一部分,所以它們通過組合的方式形成探傷功能接口類。
探傷通用類提供相關(guān)的基本操作,如小數(shù)取整、字節(jié)轉(zhuǎn)換等。探傷通道校正類集成了通道校正的流程操作。探傷曲面修正類、探傷焊縫顯示類、探傷缺陷測高類、探傷缺陷定量類、探傷動態(tài)記錄類和探傷 B 掃描類用來實(shí)現(xiàn)相應(yīng)的探傷功能,并且它都繼承了探傷基類,以通過公共的文件操作接口實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入和導(dǎo)出;這些類并不是正常探傷所必須的,它們只在實(shí)現(xiàn)具體功能時(shí)才會使用,所以使用動態(tài)申請/釋放的方式使用這些類。
探傷功能模塊最終通過探傷功能接口類提供探傷的基本操作接口,而通過探傷通道校正類、探傷曲面修正類、探傷焊縫顯示類、探傷缺陷測高類、探傷缺陷定量類、探傷動態(tài)記錄類和探傷 B 掃描類提供探傷的功能應(yīng)用接口。通過分層和模塊化設(shè)計(jì),使得各個類的具體實(shí)現(xiàn)變得清晰和簡單。因篇幅所限,又鑒于探傷核心類和探傷通道校正類的重要性,本章將只對這兩個類的設(shè)計(jì)和實(shí)現(xiàn)做詳細(xì)論述。