喜歡這套資料就充值下載吧。。。資源目錄里展示的都可在線預(yù)覽哦。。。下載后都有,,請放心下載,,文件全都包含在內(nèi),,【有疑問咨詢QQ:414951605 或 1304139763】
==========================================
喜歡這套資料就充值下載吧。。。資源目錄里展示的都可在線預(yù)覽哦。。。下載后都有,,請放心下載,,文件全都包含在內(nèi),,【有疑問咨詢QQ:414951605 或 1304139763】
==========================================
目錄
摘要 1
Abstract 2
主要符號表 1
1 緒論 1
1.1引言 1
1.2研究意義 1
1.3國內(nèi)外發(fā)展?fàn)顩r 1
1.4本文的主要任務(wù) 3
2 齒輪測量原理與總體方案設(shè)計 4
2.1齒輪齒形測量的方法與誤差分析 4
2.1.1齒形誤差的定義 4
2.1.2齒形誤差測量方法 4
2.1.3齒形測量范圍的確定 4
2.1.4齒形誤差評定與分析 6
2.2齒輪齒向測量的方法與誤差分析 8
2.2.1齒向誤差的定義 8
2.2.2齒向誤差測量方法 8
2.2.3齒向誤差評定與分析 8
2.3 總體方案設(shè)計 10
3 板卡操作 11
3.1接口方案 11
3.2 HY6040板卡介紹及操作 11
3.3 HY6110板卡介紹及操作 11
3.4 CA220-PCI 12
3.4.1 CA220-PCI簡介 12
3.4.2 CA220-PCI操作過程 12
4 EFRS-401MZ齒輪測量機(jī)軟件設(shè)計 14
4.1開發(fā)軟件簡介 14
4.2用戶需求 14
4.3軟件的界面設(shè)計 15
4.3.1界面應(yīng)具備的功能元素 15
4.3.2具體界面設(shè)計 16
4.4總體程序流程圖 20
4.5分功能模塊的實(shí)現(xiàn) 22
4.5.1齒形測量程序流程設(shè)計 22
4.5.2數(shù)據(jù)處理程序流程設(shè)計 23
4.5.3數(shù)據(jù)采樣流程及部分程序代碼 25
4.5.4按鍵掃描流程圖設(shè)計 26
5 伺服機(jī)械子系統(tǒng)設(shè)計及校核 29
5.1原理方案設(shè)計 29
5.2結(jié)構(gòu)方案設(shè)計 29
5.2.1結(jié)構(gòu)布局 29
5.2.2驅(qū)動裝置 29
5.2.3傳動系統(tǒng) 30
5.2.4滾動導(dǎo)軌 30
5.3伺服機(jī)械子系統(tǒng)設(shè)計計算 30
5.3.1伺服電機(jī)的選擇 30
5.3.2設(shè)計并校核齒輪 31
5.3.3同步帶傳動設(shè)計 33
5.3.4導(dǎo)軌設(shè)計 35
5.3.5各支承件的設(shè)計 35
5.4強(qiáng)度校核 36
5.4.1伺服電機(jī)校核 36
5.4.2軸承校核 37
6 結(jié)論 38
7 致謝 39
參考文獻(xiàn) 40
3
主要符號表
n 轉(zhuǎn)速 F 集中載荷,力
V 線速度 M 彎矩,力矩
傳動效率 計算拉壓應(yīng)力
P 功率 E 材料的彈性模量
i 傳動比 L、l 長度
T 轉(zhuǎn)矩 齒形系數(shù)
Z 齒輪齒數(shù) J 轉(zhuǎn)動慣量
m 模數(shù) 應(yīng)力校正系數(shù)
d 直徑 K 載荷系數(shù)
KV 動載荷系數(shù) B 寬度
a 中心距 ZE 彈性影響系數(shù)
KA 使用系數(shù) ZP 接觸系數(shù)
Vs 相對滑動速度 N 應(yīng)力循環(huán)次數(shù)
載荷分布不均系數(shù) KHN 壽命系數(shù)
1
1 緒論
1 緒論
1.1引言
齒輪傳動是廣泛應(yīng)用于機(jī)器和儀表中的一種重要形式。它用來傳遞位移、速度和動力。隨著我國汽車摩托車制造業(yè)的迅速發(fā)展,汽摩齒輪制造業(yè)也得到了空前快速的發(fā)展。盡快成為汽摩齒輪的全球制造與供應(yīng)基地,是我國齒輪制造業(yè)的總體發(fā)展戰(zhàn)略,并已經(jīng)成為我國眾多齒輪制造商的共識。航空航天工業(yè)的崛起、造船業(yè)的興盛、機(jī)械裝備制造業(yè)的復(fù)蘇以及IT行業(yè)的快速發(fā)展,都對齒輪制造業(yè)提出了更高的要求,也提供了前所未有的機(jī)遇。無論是國有企業(yè)、股份公司還是民營企業(yè),齒輪制造商在擴(kuò)大齒輪產(chǎn)量、品種的同時,更加注重提高齒輪制造質(zhì)量。為此,最近幾年來在引進(jìn)技術(shù)、購置設(shè)備、更新工藝、加強(qiáng)信息化管理等技術(shù)改造和技術(shù)升級方面進(jìn)行了大量的投入;強(qiáng)化并提高齒輪制造全過程的測量與監(jiān)控技術(shù)水平獲得了空前的重視,并成為確保齒輪質(zhì)量的一個關(guān)鍵。開發(fā)具有自主知識產(chǎn)權(quán)的齒輪測量技術(shù)和儀器,滿足我國齒輪制造質(zhì)量檢測的迫切需要,提高國產(chǎn)齒輪儀器在國內(nèi)市場的占有率,是我國齒輪測量儀器制造業(yè)當(dāng)前所面臨的一項(xiàng)重要而緊迫的任務(wù)。
1.2研究意義
目前,我國齒輪行業(yè)測試儀器和設(shè)備十分缺少,有不少齒輪生產(chǎn)企業(yè)竟然沒有一臺齒輪量儀;有些國有大中型企業(yè)所使用的齒輪量儀,還是國外六七十年代的產(chǎn)品,已遠(yuǎn)遠(yuǎn)滿足不了技術(shù)發(fā)展的要求。造成這種現(xiàn)象的主要原因是:a. 前幾年齒輪制造業(yè)的發(fā)展以量為主,對質(zhì)的要求尚不迫切,但今后,能否保證齒輪產(chǎn)品的質(zhì)量,是否擁有與產(chǎn)品等級相適應(yīng)的齒輪量儀,將成為企業(yè)能否生存的關(guān)鍵;b.信息溝通不夠,技術(shù)交流偏少是造成我國齒輪生產(chǎn)企業(yè)儀器裝備落后的另外一個原因。許多齒輪生產(chǎn)企業(yè)對國內(nèi)齒輪量儀的發(fā)展了解不夠,對齒輪量儀的性能了解不夠,制約著齒輪量儀進(jìn)入齒輪生產(chǎn)企業(yè)。事實(shí)上,這幾年在齒輪制造業(yè)迅猛發(fā)展的同時,我國齒輪量儀制造水平也經(jīng)歷了跨越式發(fā)展,特別是2000年以來,以3903系列為代表的CNC齒輪測量中心投放市場,標(biāo)志著我國齒輪量儀的制造水平達(dá)到了當(dāng)今國際先進(jìn)水平,基本上可以滿足齒輪行業(yè)對測量儀器的需求。
1.3國內(nèi)外發(fā)展?fàn)顩r[1]
1923年,德國Zeiss公司在世界上首次研究成功一種被稱為“Tooth surface Tester”的儀器,實(shí)際上是機(jī)械展成式萬能漸開線檢查儀。1965年,英國的
45
R.Munro博士研制成功光柵式單嚙儀,標(biāo)志著高精度測量齒輪動態(tài)性能成為可能。
1970年,美國Fellow公司在芝加哥博覽會展出Microlog50,標(biāo)志著數(shù)控齒輪測量中心開始投入使用,這是齒輪測量技術(shù)發(fā)展的轉(zhuǎn)折點(diǎn)。70年代以前,機(jī)械展成式測量技術(shù)已經(jīng)發(fā)展成熟,并在生產(chǎn)實(shí)踐中經(jīng)受了考驗(yàn)。經(jīng)過30多年的完善和推廣,齒輪整體誤差測量方法在我國已發(fā)展成為傳統(tǒng)元件的運(yùn)動幾何測量法,其基本思想是將被測對象作為一個剛性的功能元件或傳動元件與另一標(biāo)準(zhǔn)元件作嚙合運(yùn)動,通過測量嚙合運(yùn)動誤差來反求被測量的誤差。
最近幾年一些新的齒輪測量儀器也在不斷的涌現(xiàn),在新的齒輪精度國家標(biāo)準(zhǔn)中,齒輪精度的檢測項(xiàng)目有齒距偏差、齒廓偏差、螺旋線偏差、切向綜合偏差、徑向綜合偏差、徑向跳動等項(xiàng)目。這里主要介紹以下幾種最為先進(jìn)的齒輪測量儀:a. CNC齒輪測量中心3903/3906
3903/3906型CNC齒輪測量中心是哈量集團(tuán)精密量儀公司開發(fā)出的新產(chǎn)品,具有測量功能強(qiáng)、精度高、速度快等特點(diǎn),達(dá)到了當(dāng)代國際先進(jìn)水平.該中心可滿足用戶對齒輪精度的全面檢測,工藝間檢測、刀具檢測等需求。可完成齒輪的齒距、齒廓 、螺旋線、徑跳、切向綜合(單截面整體誤差)等項(xiàng)目的檢測,可測量的工件有齒輪、齒輪刀具(滾刀、插齒刀、剃齒刀等)、蝸輪、蝸桿、弧齒錐齒輪等。由于其工作原理上不需要標(biāo)準(zhǔn)齒輪、標(biāo)準(zhǔn)蝸桿等標(biāo)準(zhǔn)件和機(jī)械展成機(jī)構(gòu),測量運(yùn)動由計算機(jī)數(shù)控系統(tǒng)來完成,因此可以根據(jù)用戶的要求,開發(fā)出各種特殊軟件。整個操作界面漢字提示,操作簡單,對操作人員的要求不高
b. PFSU系列齒輪測量機(jī)640/1200/1600[2]
該系列測量機(jī)是引進(jìn)德國克林貝格公司技術(shù)生產(chǎn)的,主要用于對大齒輪的測量。目前哈量集團(tuán)精密量儀公司已經(jīng)完成了該測量機(jī)控制系統(tǒng)國產(chǎn)化改造.將過時的控制電路、記錄器等全部淘汰,采用新的工業(yè)控制計算機(jī)和可編程控制器,改造后的PFSU系列齒輪測量機(jī)不僅保留了儀器原有的全部功能,而且使儀器的功能和性能都有很大提升。齒輪的測量項(xiàng)目有齒廓、螺旋線、齒距、徑跳等,還可以測量齒輪刀具(滾刀、插齒刀、剃齒刀等)、蝸桿及工件表面粗糙度、工件錐度、圓度等形位誤差。針對國內(nèi)已有PFSU系列測量機(jī)的用戶,公司可提供升級改造服務(wù)。
c. 3004B、3006B、3008B系列萬能齒輪測量機(jī)
該系列齒輪測量機(jī)是哈量集團(tuán)具有自主知識產(chǎn)權(quán)的智能化齒輪量儀,在工作原理和儀器功能上接近CNC齒輪測量中心.測量中不需要標(biāo)準(zhǔn)齒輪、標(biāo)準(zhǔn)蝸桿,即可測量齒輪、齒輪刀具等工件的多項(xiàng)誤差,在測量效率要求不很高的情況下,可廣泛用于工廠計量室和車間檢測站,進(jìn)行精密測量。
d. 3100系列雙面嚙合檢查儀
主要檢測齒輪的徑向綜合誤差,可廣泛用于除汽車、摩托車行業(yè)4級以下精度齒輪的分選檢測,工作效率高,精度穩(wěn)定。
e. 3200、3300系列齒形、齒向檢查儀
該系列測量儀是機(jī)械展成式測量機(jī).根據(jù)測量要求的不同,有多種不同的機(jī)械結(jié)構(gòu),主要完成對齒輪齒形、齒向等單項(xiàng)誤差測量,儀器結(jié)構(gòu)簡單、效率高、精度穩(wěn)定,可廣泛用于生產(chǎn)車間使用。
1.4本文的主要任務(wù)
本文分析了齒輪誤差測量的發(fā)展?fàn)顩r和特點(diǎn),針對國內(nèi)外出現(xiàn)的各種測量儀器的局限和不足,提出改進(jìn)齒輪測量軟件測量齒輪的方法,并設(shè)計完成一種新型的、人機(jī)界面友好的,自動化程度較高的齒輪測量軟件。
a. 首先通過對齒輪齒形和齒向測量原理以及齒輪測量機(jī)機(jī)械部分運(yùn)動機(jī)理的理解,完成總體方案設(shè)計;
b. 依據(jù)齒形、齒向測量原理建立齒形、齒向誤差測量算法,并完成齒形誤差軟件的程序流程;
c. 針對測量中出現(xiàn)特性和整個界面的易于操作性和美觀性,利用VisualC++6.0編程語言來實(shí)現(xiàn)齒形測量系統(tǒng)軟件的設(shè)計;
d. 最后對所編寫的測量軟件進(jìn)行模擬調(diào)試,并進(jìn)一步肯定了整個測量系統(tǒng)的合理性和實(shí)用性。
2 齒輪測量原理與總體方案設(shè)計
2 齒輪測量原理與總體方案設(shè)計
2.1齒輪齒形測量的方法與誤差分析
2.1.1齒形誤差的定義[3]
根據(jù)標(biāo)準(zhǔn)J B179-83規(guī)定,齒形誤差的定義是:在端截面上,齒形工作部分內(nèi)(齒頂?shù)估獠糠殖猓┌輰?shí)際齒形的兩條最近的設(shè)計齒形間的法向距離。由定義可知,在齒形誤差測量中應(yīng)測出實(shí)際齒形相對于設(shè)計齒形之誤差,設(shè)計齒形是指以漸開線理論齒形為基礎(chǔ),考慮彈性變形和誤差對噪聲的影響而加以修正的齒形,在成對齒輪副中,可以設(shè)計為兩個齒輪都作齒頂修緣,也可以設(shè)計為一個齒輪(常是小齒輪)作齒頂修緣,齒根過切或設(shè)計為凸齒形,另一個相配的齒輪不作修正,修正量是很小的,僅有(0.01-0.05)m,或從2-3μm到30-50μm。因此,齒形誤差測量還是以實(shí)際齒形與理論漸開線進(jìn)行比較作為基礎(chǔ)。
2.1.2 齒形誤差測量方法
a. 坐標(biāo)法 將被測齒形上若干點(diǎn)的實(shí)際坐標(biāo)與相應(yīng)的計算坐標(biāo)進(jìn)行比較從而計算出齒形誤差的方法稱為齒形誤差坐標(biāo)測量法。以坐標(biāo)法測量齒形誤差,既可以在以坐標(biāo)為測量原理所構(gòu)成的專用齒形誤差測量儀上進(jìn)行,也可以在坐標(biāo)測量機(jī)或測量顯微鏡上測量。
b. 標(biāo)準(zhǔn)軌跡法 將被測齒形與儀器復(fù)現(xiàn)的理論漸開線軌跡進(jìn)行比較從而求出齒形誤差的方法稱為齒形誤差的標(biāo)準(zhǔn)軌跡測量法。由于電子和計算機(jī)技術(shù)的發(fā)展,出現(xiàn)了用電子和機(jī)械共同組成的系統(tǒng)來復(fù)線理論漸開線軌跡,這種系統(tǒng)可以進(jìn)行數(shù)控(NC),也可以由計算機(jī)進(jìn)行數(shù)控(CNC),稱這種方法為電子展成法。電子展成法正在發(fā)展中。
c. 標(biāo)準(zhǔn)曲線法 這種方法是使被測齒形與標(biāo)準(zhǔn)漸開線齒形曲線直接進(jìn)行比較,從而測出齒形誤差,(標(biāo)準(zhǔn)漸開線齒形曲線應(yīng)具有一定的準(zhǔn)確度)。這種方法可用于車間條件下的生產(chǎn)測量,也可用于高準(zhǔn)確度的實(shí)驗(yàn)室測量。
本文采用標(biāo)準(zhǔn)軌跡法進(jìn)行齒形與齒向的測量。
2.1.3齒形測量范圍的確定[4]
a. 確定起測圓的方法
(1).按與配對齒輪對嚙合的工作確定:當(dāng)被測齒輪Z1配對齒輪Z2相嚙合時,被測齒輪Z1的實(shí)際部分是齒頂圓與工作圓之間的一段漸開線齒形。所謂工作圓是指通過相嚙合的齒輪Z2的齒頂圓與嚙合線的交點(diǎn)a1。,其半徑為RA1的圓 [如
圖2.1a] ,
圖2.1 齒輪漸開線
Ra1的計算如下:
Ra1= (2.1)
(2.2)
其中
(2.3)
(2.4)
(2.5)
式中Xt,Xn----端面和法向變位系數(shù);
--法向齒頂高降低系數(shù),高度變位時=0,角度變位時≠0。
(2.6)
(2.7)
(2.8)
式中---端面齒頂高將位系數(shù);
---端面中心距變動系數(shù).
(2).按與標(biāo)準(zhǔn)齒條的工作圓確定:由于在測量單位個齒輪時,常常不知與其嚙合的齒輪的參數(shù),為使測量的齒形工作部分稍大于齒形有效部分,可以按照被測齒輪與標(biāo)準(zhǔn)齒條嚙合時的有效工作部分來計算其工作圓。此時工作圓是指通過齒條的齒頂線與嚙合線的交點(diǎn)a2,其半徑為RA2的圓,[如圖2.1b]所示。RA2的計算如下:
(2.9)
(2.10)
(3).按進(jìn)入圓確定:為了簡化計算,可以按進(jìn)入圓來確定起測點(diǎn)。進(jìn)入圓是指其半徑RA3與分度圓半徑相差C=(ha*-xs)ms的圓 [如圖2.1c]所示.RA3由下式計算:
RA3=(mn*z/2cos)-C (2.11)
C=hn*mn-Xnmn (2.12)
當(dāng)齒數(shù)少時按基圓確定:當(dāng)齒數(shù)Z≤33時;rb≥RA3;當(dāng)Z≦16時,rb≥RA2。因?yàn)橹辉诨鶊A外才有漸開線,當(dāng)齒數(shù)少時,應(yīng)該以基圓作為起測圓。
以上三種計算結(jié)果相比較,RA1≥RA2≥RA3,當(dāng)起測圓按進(jìn)入圓計算時,齒形上被測范圍為最大,這將對切齒條件要求嚴(yán)格.如果測量高精度齒輪時,應(yīng)當(dāng)選RA1來確定起測圓,以免對加工條件要求過嚴(yán).對非特殊要求的齒輪可按RA2確定起測圓.
b. 起測和終測展開角和展開長度的計算[5]
由于齒形測量是按照展成角度或展開長度進(jìn)行的,實(shí)際的測量范圍是以展成角或展成長度來表示的。[如圖2.2]所示 起測點(diǎn)A所對應(yīng)的展開角與展開長度稱為起測展開角ΦA(chǔ)與起測展開長度LA.終測點(diǎn)B所對應(yīng)的為終測展開角ΦB,終測展開長度LB.
ΦA(chǔ)與LA根據(jù)起測圓半徑RA計算:
ΦA(chǔ)= (2.13)
LA= (2.14)
(2.15)
RA根據(jù)選用的RA1,RA2或RA3代入上式
ΦB與LB一般按齒頂圓作為終測圓計算:
ΦB= (2.16)
LB=
(2.17)
2.1.4 齒形誤差評定與分析
a. 齒形誤差的評定
用齒形誤差曲線圖表示齒形誤差。曲線圖的橫坐標(biāo)表示展開角度Φ或展開長度L,縱坐標(biāo)表示個測量點(diǎn)的齒形誤差Δffi(即展開長度的誤差ΔLi),見圖2.1。如果被測齒形與理論漸開線沒有差別,在記錄圖上記錄為平行于橫坐標(biāo)的直線。在確定了齒形測量范圍(A、B)之后,在此范圍內(nèi)作兩條平行線分別與齒形誤差曲線的上下兩個最高點(diǎn)相切,平行線間的縱坐標(biāo)格數(shù)乘以誤差放大比即可得到齒形誤差Δff。為了反映齒輪偏心等因素的影響,測量均布的四個齒面的齒形誤差,以期最大值作為該齒輪的齒形誤差,用來評定該齒輪的齒形質(zhì)量是否合于要求。
b. 齒形誤差的分析
對方程式L=γbΦ=(mzφcosα/2)全微分并取增量形式,可得
ΔL=ΔγbΦ+γbΔΦ (2.18)
或 ΔL=-bΔΦ。 (2.19)
展開長度的變化就是齒形誤差,有上式可以看出,基圓半徑的變化Δγb或壓力角的變化Δα都是影響齒形誤差的因素,其主要的工藝原因是刀具的齒形角有誤差。由于齒形角誤差Δα在一般情況下可以認(rèn)為是定值,所以,ΔL與Φ的關(guān)系是線性關(guān)系。如果沒有其他的誤差因素,僅有由于齒形角誤差所造成的壓力角誤差,齒形誤差的記錄曲線是一條與橫坐標(biāo)有一定夾角的傾斜直線。
由以上分析可知,齒形誤差由兩部分組成:①由壓力角誤差Δα(或基圓半徑誤差Δγb)引起的漸開線齒形的傾斜誤差Δffα,以齒形誤差曲線的中線Cc在測量范圍內(nèi)相對于橫坐標(biāo)的最大偏移量來度量;②由機(jī)床傳動鏈誤差引起的漸開線齒形的形狀誤差Δffx,沿中線Cc的方向左兩條能包容齒形誤差曲線的平行線,它們之間沿著橫坐標(biāo)的距離即為Δffx。
圖2.2 齒形誤差分析
c. 確定中線cc的方法
為了求出Δfα和Δfx的數(shù)值,首先要確定中線cc的位置。
(1).計算法:根據(jù)最小二乘法原理求出齒形誤差曲線的擬合直線即為中線。表征直線方程的參數(shù)為直線的斜率,計算擬合直線的斜率K的方法為:在測得的曲線上取一系列點(diǎn)的坐標(biāo)值(φ1, ΔL1 ),(φ2, ΔL2 )……(φi,ΔLi),
斜率計算式為:
(2.20)
式中 ΔLi: i點(diǎn)的展開長度增量;
、分別為及的平均值;
n: 測量點(diǎn)的總數(shù)。
這種方法的精度高,但計算較為復(fù)雜,一般為手工計算所不用,當(dāng)測量系統(tǒng)由計算機(jī)控制和進(jìn)行數(shù)據(jù)處理時常常用這種方法,這時可由測出的各個坐標(biāo)值直接進(jìn)行計算。
(2).作圖法:對于一般精度的測量,常常用目估作圖法確定中線。即在所得的齒形誤差曲線圖上畫一條直線,使在測量范圍內(nèi),直線兩邊的齒形誤差曲線與直線間所包容的面積相等,這條直線就是中線cc。
這種方法精度不高,但簡單易性。而且目估的方向,對于一個熟練的測量者來說也不會偏離最小二乘法所確定中線的2度的范圍,這是測量精度所允許的。
d. 基圓半徑誤差Δrb
由式(2.18)的前一項(xiàng)可以知道,當(dāng)僅有基圓半徑誤差Δrb時,齒形誤差曲線是一條與橫坐標(biāo)有夾角的直線,由計算法求出中線的斜率即為基圓半徑誤差:
Δrb=K (2.21)
由作圓法確定中線后可以在曲線上直接量出傾斜誤差Δfa,這時由下式計算基圓半徑誤差:
Δrb=Δfa/Φab (2.22)
式中 Δfa----曲線圖中傾斜誤差的坐標(biāo)值,單位為μm;
Φab----曲線圖中測量范圍內(nèi)展開角,單位為rab;
Rb----基圓半徑,單位μm.
2.2齒輪齒向測量的方法與誤差分析
2.2.1齒向誤差的定義
在分度圓柱面(允許在齒高中部測量)上,齒寬工作部分范圍內(nèi)(端部倒角部分除外)包容實(shí)際齒向線的兩條最近的設(shè)計齒向線之間的端面距離。
2.2.2齒向誤差測量方法
(1). 標(biāo)準(zhǔn)軌跡法 測量儀器形成標(biāo)準(zhǔn)的螺旋運(yùn)動與被測齒輪的螺旋線進(jìn)行比較測量,齒向誤差直接由測量裝置指示出來。形成標(biāo)準(zhǔn)的螺旋線軌跡的裝置可以是機(jī)械式的、光學(xué)機(jī)械式的,也可以是電子展成式的。
(2). 坐標(biāo)測量法 螺旋線是一條空間曲線,可按照螺旋線形成原理分別測量齒輪轉(zhuǎn)角和測頭齒輪方向的位置,然后與相應(yīng)的理論值進(jìn)行比較,計算出齒輪向的誤差;或者按照空間直角坐標(biāo)沿螺旋線逐點(diǎn)測量其三個坐標(biāo)值,然后計算出齒向誤差。
2.2.3齒向誤差評定與分析
齒向誤差在一般情況下是由兩部分組成的,即齒向線的位置誤差和形狀,如下圖2.3所示。齒向線的位置誤差也就是螺旋線角誤差的線值,用Δfhβ來表示。確定Δfhβ數(shù)值時要用最小二乘法回歸出一條中線,在要求不十分精確的情況下也可以用作圖法使中線兩邊曲線多包圍的面積相等來確定中線的位置。包容實(shí)際齒向誤差曲線且與中線平行的兩條直線之間的距離(仍為齒輪端面距離,在ΔFβ方向計算)即為形狀誤差,用Δfhβ來表示。將齒向誤差分為位置誤差和形狀誤差將有助于分析齒向的加工誤差。
由Δfhβ即可以求的螺旋角的誤差,因?yàn)?
tgβ=rφ/b` (2.23)
將此式微分并取增量形式,且Δ(rφ)=Δfhβ,則
Δβ=(Δfhβ/b`) cosβ*cosβ (2.24)
式中b`----齒寬工作部分。
圖2.4給出了兩種典型的齒向誤差曲線。圖a是左、右齒面的齒向線位置誤差Δfhβ數(shù)值相近而符號相同(偏向齒體內(nèi)的誤差為負(fù)值),其螺旋角誤差方向相反,主要是由于加工時刀具沿著工件軸線方向進(jìn)給時,刀具的運(yùn)動方向與工件軸線方向不平行所引起的,其不平行度由左、右齒面的齒向線位置誤差的平均值來確定的,即:
Δ=(ΔfhβL+ΔfhβR)/2tga (2.25)
圖2.4是左、右齒面的齒向線位置誤差Δfhβ的數(shù)值相近而符號相反,即左、右齒面螺旋角誤差方向相同的情況。這主要是由于刀具軸向進(jìn)給方向相對于工件軸線傾斜所造成的,其傾斜度按左、右齒面齒向線位置誤差的絕對值之平均值來確定,即:
Δ=ΔfhβL+ΔfhβR/2 (2.26)
工件的安裝誤差也會造成工件軸線相對于刀具軸向進(jìn)給方向傾斜,而且二者相對的傾斜度是工件轉(zhuǎn)角的函數(shù),這就導(dǎo)致一個齒輪上各個齒的齒向誤差數(shù)值不同。
圖2.3齒向誤差評定法
圖2.4齒向誤差曲線
由于機(jī)床傳動鏈的傳動比不準(zhǔn)確也會造成Δfhβ的值相近而異號的誤差,因此在分析工藝誤差的時候要結(jié)合具體加工條件進(jìn)行分析。
當(dāng)左、右齒面的齒向誤差曲線較大,ΔfhβL的值也相差較大,則是兼有幾種工藝誤差因數(shù)的綜合作用,可先找出主要工藝誤差因數(shù),再按照任一齒面的Δfhβ值對兩齒面Δfhβ的平均值之間來估算其它工藝誤差的因數(shù)。
齒向誤差的形狀誤差 Δfβf 是由于切齒加工中刀具相對于工件軸線移動的導(dǎo)軌的直線度誤差及軸向進(jìn)給絲杠的軸向竄動等因數(shù)所引起。
2.3 總體方案設(shè)計
本設(shè)計采用標(biāo)準(zhǔn)軌跡法進(jìn)行齒輪齒形齒向的誤差測量,將被測齒輪的實(shí)際齒形與儀器復(fù)現(xiàn)的理論漸開線進(jìn)行比較從而得出誤差的測量方法,運(yùn)動的合成經(jīng)參數(shù)設(shè)置完成后計算機(jī)自動進(jìn)行計算,控制控制系統(tǒng)發(fā)出指令脈沖,驅(qū)動執(zhí)行機(jī)構(gòu)完成相應(yīng)的運(yùn)動,硬件數(shù)據(jù)采集系統(tǒng)從安裝在滑架上的測頭采集數(shù)據(jù),送入計算機(jī)進(jìn)行計算,得出誤差結(jié)果,轉(zhuǎn)化為圖形和數(shù)字量形式的結(jié)果輸出。
根據(jù)系統(tǒng)的特點(diǎn),對軟件的編寫擬采用可視化編程語言Visual C++6.0進(jìn)行開發(fā),因?yàn)樵撜Z言執(zhí)行速度快,人機(jī)界面友好,具有較高的操作系統(tǒng)訪問權(quán)。齒形測量程序設(shè)計時主要完成齒形測量中的數(shù)據(jù)采樣和結(jié)果的處理,并根據(jù)測量算法得到齒廓總偏差、齒廓斜率偏差、齒廓形狀偏差和齒廓誤差曲線,通過對齒形誤差測量方法的分析并結(jié)合機(jī)械部分運(yùn)動機(jī)理,齒形誤差測量的理論方方法采樣坐標(biāo)法;齒向測量程序設(shè)計時主要完成齒向測量中的數(shù)據(jù)采樣和結(jié)果的處理,并根據(jù)測量算法得到齒向總偏差ΔFβ、齒向斜率偏差Δfhβ、齒向形狀偏差Δffβ和齒向誤差曲線,通過對齒形誤差測量方法的分析并結(jié)合機(jī)械部分運(yùn)動機(jī)理,齒向誤差測量的理論方方法采樣標(biāo)準(zhǔn)軌跡法。最后所有的誤差結(jié)果以文字和圖形的方式顯示在屏幕上,而且用戶的所由參數(shù)以對話框的形式由用戶通過鍵盤輸入。
3 板卡操作
3 板卡操作
3.1接口方案[6]
綜合考慮此設(shè)計,計算機(jī)需要完成如下任務(wù):a.從控制面板讀鍵產(chǎn)生相應(yīng)動作,當(dāng)測量者按下操作面板的按鍵時,計算機(jī)要能對其識別并發(fā)出指令,驅(qū)動系統(tǒng)動作完成測量,為此,測量系統(tǒng)需要一個開關(guān)量輸入設(shè)備;b.由于計算機(jī)只能對數(shù)字量進(jìn)行處理,而數(shù)據(jù)采集系統(tǒng)采集到的信號為電壓模擬信號,因此在計算機(jī)與數(shù)據(jù)采集系統(tǒng)之間需要一塊 A/D轉(zhuǎn)換卡,本設(shè)計中采用北京華遠(yuǎn)自動化公司的HY6040A/D轉(zhuǎn)化卡、HY 6110數(shù)字量輸入卡,光柵數(shù)據(jù)采集卡選用CA220 -PCI,其中前兩個板卡為ISA接口,設(shè)計中采用Ntport library軟件,它允許win32程序?qū)崟r直接訪問pc機(jī)的i/o端口而無須使用windows drivers development kit(ddk) 或其他工具。Ntport library支持windows 95/98 和windows nt/2000/xp。并且非常容易使用,在windows nt/2000/xp下,ntport library 驅(qū)動程序可以動態(tài)地加載和卸載,不需要做任何設(shè)置工作。ntport library也是basic的inp或out命令的替代品。ntport library還可以獲得lpt端口的基地址。而PCI-CA220是基于PCI總線的采集卡,PCI總線系統(tǒng)要求有一個PCI控制卡,它必須安裝在一個PCI插槽內(nèi)。根據(jù)實(shí)現(xiàn)方式,PCI控制器可以與一次交換32位或64位數(shù)據(jù),它允許智能PCI輔助適配器利用一種總線主控技術(shù)與CPU并行地執(zhí)行任務(wù)。
3.2 HY6040板卡介紹及操作[7]
HY6040板是一種光電隔離型的多功能A/D板,它有三種不同的觸發(fā)方式:軟件觸發(fā)、定時觸發(fā)和外部觸發(fā)。
本設(shè)計采用軟件觸發(fā),主要操作步驟如下:
(1). 對“BASE+4”口進(jìn)行讀操作,清除A/D完成位,避免引起系統(tǒng)誤操作。
(2). 對“BASE+1”口進(jìn)行寫操作,選擇模擬輸入通道和程控增益。
(3). 對“BASE+0”口進(jìn)行寫操作,關(guān)閉定時觸發(fā)、外觸發(fā)。
(4). 對“BASE+2”口進(jìn)行寫操作,觸發(fā)A/D轉(zhuǎn)換。
(5). 從“BASE+0”口進(jìn)行讀操作,讀取板狀態(tài)字,檢測A/D的轉(zhuǎn)換完成位 是否為“1”。
(6). 當(dāng)A/D轉(zhuǎn)換完成位為“1”后,延時大約25μs。
(7). 從“BASE+3”和“BASE+4”口讀取轉(zhuǎn)換結(jié)果。
軟件在查詢方式下,用戶編程自行決定在檢測到A/D轉(zhuǎn)換完成后延時多長時間,才讀取A/D轉(zhuǎn)換結(jié)果。對應(yīng)部分程序代碼如下
_outp(base_ad+2,0); //讀基地址+2位,是否啟動A/D轉(zhuǎn)換
_inp(base_ad+3); //讀A/D轉(zhuǎn)換結(jié)果低8位
_inp(base_ad+4)&0x0f; //讀A/D轉(zhuǎn)換結(jié)果高4位
int mydata=ldata|(hdata<<8); //獲得采樣數(shù)據(jù)
3.3 HY6110板卡介紹及操作
HY6110板是IBM-PC XT/AT總線兼容的32通道隔離型數(shù)字量輸入板。電路中74LS244構(gòu)成4*8Bit(32通道)并進(jìn)行輸入通道。每一路通道輸入均用光電耦合器件將計算機(jī)系統(tǒng)地與現(xiàn)場信號地隔離。為了使阻斷現(xiàn)場信號與計算機(jī)系統(tǒng)地間的地環(huán)流通道,采用光電耦合器件作為輸入電路。由于光電耦合器件的初,次級間受上千伏的電壓,因此,不斷阻斷了地環(huán)流通道,而且可以有效防止誤輸入高壓損壞計算機(jī)。這大大的提高了計算機(jī)監(jiān)測系統(tǒng)的工作穩(wěn)定和可靠性,6110板的操作非常方便,其方式有兩種:一是直接用I/O 命令操作,二是用中斷方式操作。HY6110板的操作非常簡便。方式有:一是直接用I/O命令操作,二是用中斷方式操作。
D/I00-D/I37數(shù)字量信號,可以是開關(guān)接點(diǎn),也可以是電平信號,當(dāng)數(shù)字量信號為開關(guān)接點(diǎn)時,開關(guān)的一端接D/I輸入端,另一端接外加電源地,HY6110即可檢測到開關(guān)的通斷。開關(guān)斷開時,輸入數(shù)字量為1,開關(guān)接通時,輸入數(shù)字量0。
板內(nèi)地址分配:基地址+0:讀D/I00-D/I07 基地址+1:讀D/I10-D/I17
基地址+2:讀D/I20-D/I27 基地址+3:讀D/I30-D/I47
設(shè)計中通過HY6110把計算機(jī)與控制面板連接起來,進(jìn)行實(shí)時通訊,當(dāng)檢測到操作面板有鍵按下時,6110把這種開關(guān)量輸入給計算機(jī),計算機(jī)接收到指令后根據(jù)軟件產(chǎn)生相應(yīng)的動作,例如,當(dāng)用戶在操作面板上按下“齒形測量”鍵時,計算機(jī)通過檢測到測量鍵的位值為“1”時,便進(jìn)入齒形測量的子程序,此過程稱為一個線程。操作面板就是這樣通過6110與計算機(jī)連接的。
3.4 CA220-PCI
3.4.1 CA220-PCI簡介[8]
CA系列光柵細(xì)分?jǐn)?shù)據(jù)采集卡廣泛應(yīng)用于測量與控制領(lǐng)域,有的還成為測量儀器的核心部件,所有CA系列產(chǎn)品都采用硬件細(xì)分、硬件計數(shù)、硬件鎖存,采樣速度高,完全能滿足精密測量和數(shù)控的要求。從接口上分為ISA類卡和PCI類卡,采用PCI總線規(guī)范設(shè)計,適用于目前流行Windows平臺。
3.4.2 CA220-PCI操作過程
對CA220卡的操作過程基本上分為如下幾步:啟動設(shè)備、獲得X、Y雙坐標(biāo)過零清零狀態(tài)、讀取X、Y雙坐標(biāo)的值、關(guān)閉設(shè)備。
打開CA設(shè)備數(shù)據(jù)結(jié)構(gòu)對應(yīng)代碼:
typedef struct _devinfo
{
BYTE SlotNum;
BYTE BusType;
BYTE Axise;
BYTE Init_Times;
char DevName[40];
BOOL Int_Flag;
}DEVINFO;
計數(shù)器值數(shù)據(jù)結(jié)構(gòu):(雙坐標(biāo))
typedef struct_TWO
{
long x;
long y;
} Two;
BOOL WINAPI CAisXPassedZeroClear(long Index) 獲得X坐標(biāo)過零清零狀態(tài)。
BOOL WINAPI CAisYPassedZeroClear(long Index) 獲得Y坐標(biāo)過零清零狀態(tài)。
BOOL WINAPI CASetXPassedZeroClear(long Index,BOOL Enable)啟動X坐標(biāo)過零清零功能。
BOOL WINAPI CASetXPassedZeroClear(long Index,BOOL Enable)…啟動Y坐標(biāo)過零清零功能。
BOOL WINAPI CAGetTwoZeroIntCoord(long Index ,Two *d)…得到過零中斷雙坐標(biāo)指定設(shè)備的坐標(biāo)值。
(pGetTwoCoord)(ch1,&_two); 獲得X,Y當(dāng)前坐標(biāo)
typedef void(_stdcall CA2CloseAll)(void);//關(guān)閉所有CA設(shè)備
4 EFRS-401MZ齒輪測量機(jī)軟件設(shè)計
4 EFRS-401MZ齒輪測量機(jī)軟件設(shè)計
4.1開發(fā)軟件簡介[9]
EFRS-401MZ齒輪測量機(jī)的軟件設(shè)計擬采用VisualC++6.0語言進(jìn)行編制。 Visual C++6.0是Microsoft公司開發(fā)的基于C/C++的集成開發(fā)工具,它是Visual Studio中功能最為強(qiáng)大、代碼效率最高的開發(fā)工具。
另外,Visual C++6.0還提供了很多的向?qū)?。MFC提供了一些新的類,提供了更強(qiáng)大的數(shù)據(jù)訪問功能,微軟基礎(chǔ)類庫MFC(Microsoft Foundation Classes)有三個基本的架構(gòu):
a.單文檔
b.多文檔
c.對話框
本設(shè)計采用基于單文檔視圖的框架結(jié)構(gòu)來實(shí)現(xiàn)軟件編程。
4.2 用戶需求
整個軟件設(shè)計的基本要素包括:軟件設(shè)計的目的、設(shè)計實(shí)現(xiàn)的方法、軟件設(shè)計的內(nèi)容。軟件設(shè)計就是要利用各種設(shè)計方法把要設(shè)計的內(nèi)容有機(jī)的結(jié)合起來以實(shí)現(xiàn)軟件設(shè)計的目的。在本課題中,系統(tǒng)軟件設(shè)計的目的是實(shí)現(xiàn)測量齒輪齒形和齒向的誤差,并且要有良好的人機(jī)界面,使用軟件操作簡單明了,系統(tǒng)運(yùn)行安全穩(wěn)定。軟件設(shè)計的內(nèi)容包括:齒形采樣程序設(shè)計、齒向采樣程序設(shè)計、齒形誤差的分析與計算、齒向誤差的分析與計算、齒形和齒向誤差結(jié)果數(shù)據(jù)的顯示等。軟件設(shè)計的方法有很多種,不同的設(shè)計方法就有不同的效果,這是軟件設(shè)計的關(guān)鍵。
根據(jù)齒輪測量機(jī)這一要求,程序必須具有實(shí)時性并且能夠?qū)τ嬎銠C(jī)的接口進(jìn)行編程并加以控制;在軟件設(shè)計中,用戶的界面是否良好,直接關(guān)系到人們的使用效果和整個儀器的的實(shí)用性,根據(jù)本測量系統(tǒng)自身的特點(diǎn),為了設(shè)計開發(fā)一個方便美觀利于操作者使用的用戶界面,具有人機(jī)交換的功能,整個系統(tǒng)界面使用VisualC++6.0編程語言來實(shí)現(xiàn),因?yàn)閂isualC++6.0語言具有強(qiáng)大的接口訪問能力,并且能夠進(jìn)行計算機(jī)的中斷控制,同時VisualC++6.0語言運(yùn)行速度快,占用的計算機(jī)的資源相對較小,所以對于計算機(jī)控制來說,使用VisualC++6.0語言進(jìn)行編程是最佳的選擇,同時VisualC++6.0是一種可視化的、面向?qū)ο蟮?、采用事件?qū)動結(jié)構(gòu)的高級程序設(shè)計語言,可視化可以使開發(fā)人員不必為界面設(shè)計
而編寫大量的程序代碼,只需要按設(shè)計要求屏幕布局,用系統(tǒng)提供的工具在屏幕上畫出各個部件,并設(shè)置這些對象的屬性即可生成相應(yīng)的程序。從而大大的提高了程序設(shè)計的效率,并為每個對象賦予應(yīng)有的屬性,是對象成為實(shí)在的東西,在設(shè)計對象時,不必編寫建立和描述每個對象的程序代碼,這樣可以使程序設(shè)計結(jié)構(gòu)更加嚴(yán)謹(jǐn),設(shè)計效率大大提高。傳統(tǒng)的編程是面向過程,按規(guī)定的順序進(jìn)行的,程序設(shè)計人員總是在關(guān)心什么時候會發(fā)生什么事情,而用事件驅(qū)動方式設(shè)計程序時,程序員不必給出按精確次序執(zhí)行的每個步驟,只是編寫相應(yīng)的用戶動作的程序,這些程序都是由用戶啟動的事件來激發(fā),從而大大降低了編程的難度和工作量,提高了編程效率。
通過以上的分析,本次軟件采用VisualC++6.0語言來實(shí)現(xiàn)。這樣既可以實(shí)現(xiàn)在機(jī)測量的硬件控制,又具有優(yōu)美大方的操作界面[10]。
4.3軟件的界面設(shè)計
測量系統(tǒng)軟件要求具有友好的人機(jī)對話界面,齒輪的相關(guān)參數(shù)、最終結(jié)果的顯示等都需要界面來實(shí)現(xiàn)。由于測量軟件的編寫采用VisualC++6.0,而VisualC++6.0是一種可視化編程語言,它具有設(shè)計方便、界面美觀大方、易于控制的特點(diǎn),完全可以滿足設(shè)計需要。
在本設(shè)計中,采用單文檔滾動視圖的方法來實(shí)現(xiàn)。
4.3.1界面應(yīng)具備的功能元素
由于要進(jìn)行齒形與齒向的測量,主界面應(yīng)包括以下單元:
a.被測工件的基本參數(shù),即工件序號、齒數(shù)、模數(shù)等等,這些信息在參數(shù)設(shè)置完成后被保存,在結(jié)果輸出中顯示。因此在進(jìn)行對話框的設(shè)置時主要添加靜態(tài)文本控件(static text)以及編輯框(Edit box)兩大類,單擊完成后軟件自動從編輯框中讀取數(shù)據(jù)保存在地址變量中,還應(yīng)添加按鈕(pushbotton)來實(shí)現(xiàn)。
b.主界面顯示的測量結(jié)果。結(jié)果的輸出形式有兩種:一是表現(xiàn)形式為數(shù)字量的一個誤差值。二是誤差曲線圖,本設(shè)計中采用如下繪圖指令:
選擇CDC派生類中的CpaintDC指令,繪圖在WM_PAINT消息的響應(yīng)函數(shù)OnPaint()中進(jìn)行。繪圖使用的設(shè)備對象就是CpaintDC類對象。一條曲線可以看作是由許多條短直線組成的,在此測量中,橫坐標(biāo)表示采樣點(diǎn),縱坐標(biāo)表示每一個采樣點(diǎn)的誤差值,由于采樣點(diǎn)足夠多,故只需在每兩個采樣點(diǎn)間繪出直線,其最終的連接圖形即為誤差曲線。其繪圖指令為:
dc.MoveTo(x0,y0); 將畫筆的起始點(diǎn)移至(x0,y0)坐標(biāo)。dc為指向指定的裝置.
dc.LineTo(x1,y1); 從(x0,y0)畫直線至(x1,y1)
dc.TextOut(x,y,“xxxx”); 在(x,y)坐標(biāo)中輸出文字“xxxx”。
c.進(jìn)行零位調(diào)整時采用了進(jìn)度條顯示選項(xiàng),設(shè)計時在界面中添加進(jìn)度條控件,它是用來顯示操作過程進(jìn)度的窗口,對應(yīng)的常用函數(shù)如下:
void SetRange(short nLower,short n Upper); 設(shè)置進(jìn)度條范圍函數(shù)。
void GetRange(int&nlower,int&nUpper); 得到進(jìn)度條范圍函數(shù)。
int SetPos(nit nPos); 設(shè)置當(dāng)前進(jìn)度條函數(shù)。
nLower 為進(jìn)度條下限,nUpper 為進(jìn)度條上限。
d.測量選項(xiàng)中有左右齒面的測量選擇,故還應(yīng)添加單選按鈕,對應(yīng)CBOTTON類。
void SetCheck(int nCheck); 設(shè)置按鈕選中。
void GetCheck(); 獲取按鈕選中狀態(tài)。
4.3.2具體界面設(shè)計
a.如下圖4.1所示,為參數(shù)設(shè)置輸入窗口,在此窗口中輸入進(jìn)行測量和計算所需的各種基礎(chǔ)數(shù)據(jù),如:工件圖號、順序號、齒數(shù)、法向壓力角、法向模數(shù)、測頭外徑、變?yōu)橄禂?shù)、齒面寬度等、螺旋角等。這些數(shù)據(jù)必須在測量計算前輸入,輸入后按“完成”即可。
圖4.1 參數(shù)設(shè)置對話框
界面的制作主要是通過給對話框添加控件來完成的,Visual C++提供了許多控件類型,例如編輯框、按鈕、組框、進(jìn)度條等等,添加控件完成后,先對控件編制ID號、變量名,然后對不同的控件類型建立類向?qū)?,添加響?yīng)函數(shù),再給其中添加指令語句進(jìn)行控制以實(shí)現(xiàn)預(yù)定的功能。
此對話框中,在用戶從編輯框輸入相關(guān)參數(shù)后,這些參數(shù)便被保存在編輯框?qū)?yīng)的變量名中,便于后續(xù)計算時調(diào)入。
b.圖4.2為零點(diǎn)校正對話框,此時用戶通過手動調(diào)整T軸與Z軸的位置使得通過兩軸的光柵位移為零,進(jìn)度條顯示調(diào)整的進(jìn)度,當(dāng)藍(lán)條充滿時代表調(diào)整完畢,單擊“確定”完成零點(diǎn)校正,進(jìn)入測量下一步。
圖4.2 零點(diǎn)校正對話框
c.如圖4.3,在此界面下,測量人員可以根據(jù)所要求測量的項(xiàng)目進(jìn)行選擇,確定是測量齒形誤差還是齒向誤差,在選定所要測量的項(xiàng)目后點(diǎn)“確定”。
圖4.3 測量項(xiàng)目選擇對話框
d.圖4.4為測量選項(xiàng)對話框,用戶在測量選項(xiàng)欄中選擇要測量的齒面,在繪
圖參數(shù)中選擇繪圖位置,并輸入齒序號。單擊確定完成輸入,系統(tǒng)開始測量。
圖4.4 測量選項(xiàng)對話框
e. 圖4.5為結(jié)果輸出欄,齒形誤差和齒向誤差都有兩種顯示方式:即誤差曲線和數(shù)據(jù)報表。如圖4.5所示為他可以同時顯示出齒輪的誤差 并以圖像的形式展現(xiàn)在測量者的面前,使測量者一目了然的就可以看出齒輪的等級和誤差。
圖4.5 結(jié)果輸出
4.4總體程序流程圖
開 始
系統(tǒng)初始化上電
參數(shù)設(shè)置
保存參數(shù)
調(diào)整齒輪與測頭位置
采集光柵值
讀數(shù)據(jù)
數(shù)據(jù)運(yùn)算
N
初值為零?
Y
讀6110數(shù)據(jù)
齒向測量
齒形測量
進(jìn)入測量子程序
數(shù)據(jù)運(yùn)算
儀器調(diào)整
生成運(yùn)動控制指令
讀測量鍵
N
開始測量?
Y
運(yùn)動合成
采集數(shù)據(jù)
啟動A/D轉(zhuǎn)換
N
轉(zhuǎn)換結(jié)束?
Y
讀數(shù)據(jù)
得單次采樣值
讀光柵示值
N
X2-X1〉齒面寬度?
Y
數(shù)據(jù)采集結(jié)束
數(shù)據(jù)處理
顯示誤差結(jié)果
測量結(jié)束
圖4.6 總體流程圖
這是總體程序流程圖[11],可以反映出整個測量過程的基本流程和操作步驟,首先進(jìn)入測量界面,初始化完畢后開始參數(shù)設(shè)置并保存,接著進(jìn)入測量主程序,在接收用戶選擇測量選項(xiàng)后開始測量,系統(tǒng)自動實(shí)現(xiàn)數(shù)據(jù)的采集并送入計算機(jī)進(jìn)行數(shù)據(jù)運(yùn)算,最后將計算的結(jié)果以數(shù)字和圖形化的方式輸出。
4.5分功能模塊的實(shí)現(xiàn)
4.5.1 齒形測量程序流程設(shè)計
開 始
系統(tǒng)初始化上電
儀器調(diào)整
選擇操作界面
參數(shù)設(shè)置
測量齒面選擇
采樣并完成數(shù)據(jù)處理
結(jié)果的顯示和評定
結(jié)束
圖4.7 齒形測量程序流程圖
齒形測量程序完成齒形測量中的數(shù)據(jù)采集并根據(jù)相應(yīng)的算法對數(shù)據(jù)進(jìn)行處理,采樣時主要讀取數(shù)據(jù)采集卡的轉(zhuǎn)換數(shù)據(jù)和計數(shù)卡的計數(shù)脈沖個數(shù),實(shí)現(xiàn)采樣。
利用VisualC++6.0語言來編程實(shí)現(xiàn),整個測量程序框架圖如4.7所示。
4.5.2 數(shù)據(jù)處理程序流程設(shè)計
數(shù)據(jù)處理程序主要是根據(jù)計算機(jī)采樣得來的數(shù)據(jù)使用求平均值法求齒廓總偏差,根據(jù)最小二乘法求齒廓形狀偏差、齒廓斜率偏差。
數(shù)據(jù)處理程序流程圖如圖4.8:
齒廓總偏差的計算方法:先對所有項(xiàng)的測量結(jié)果求平均值,再用每一點(diǎn)的實(shí)測值與平均值相減求得每一項(xiàng)的誤差值,最終把每一項(xiàng)的誤差值再求一次平均即得到齒廓總偏差。齒廓形狀偏差與齒廓斜率偏差在第二章中已作介紹。
a. (4.1)
b. (4.2)
c. (4.3)
式中:為第一次求得的平均值;
為每一項(xiàng)求得誤差值;
為齒廓總偏差。
初始化參數(shù)
取采樣數(shù)據(jù)長度
根據(jù)T軸移動長度及評定終點(diǎn)和起點(diǎn)確定評定終點(diǎn)n1和起點(diǎn)n2
n1>n2?
N=(n1+n2)/2
nm=n1-n2+1
取n點(diǎn)對應(yīng)的誤差
計算每個采樣點(diǎn)誤差和n點(diǎn)對應(yīng)的誤差的偏差
求所有偏差的和除以nm得到總偏差
對nm個點(diǎn)根據(jù)最小二乘法確定中線c的斜率k和在y軸的截距
由y=kx+b及實(shí)際采樣點(diǎn)處的偏差求形狀偏差和斜率偏差
返回計算結(jié)果及測量值
返 回
圖4.8 數(shù)據(jù)處理程序流程圖
4.5.3 數(shù)據(jù)采樣流程及部分程序代碼
初始化
給6040基地址+2寫控制程序
讀基地址控制變量
Y&0X40=1?
讀基地址+3的數(shù)據(jù)
送給Ldata
送給Ldata
讀基地址+4的數(shù)據(jù)
送給Hdata
Ldata+(Hdata<<8)送給data
data=data-2047
data=data*400/1000/4096
data=data*400/1000/4096
data=data*400/1000/4096
data=data*400/1000/4096
返回data
圖4.9 采樣函數(shù)流程圖
采樣函數(shù)程序代碼如下[12]:
double Sample(int n_channel)
{
int y=0;
int i=0;
//采樣
_outp(base_ad+2,0); //寫控制字觸發(fā)A/D轉(zhuǎn)換
do
{
y=_inp(base_ad); //讀基地址
}
while(!(y&0x40)); //檢測A/D轉(zhuǎn)化是否完成
int ldata=_inp(base_ad+3); //讀A/D轉(zhuǎn)換低8位
int hdata=_inp(base_ad+4)&0x0f; //讀A/D轉(zhuǎn)換高4位
int mydata=ldata|(hdata<<8); //得到采樣數(shù)據(jù)送入data
int mydata0=mydata-2047;
double sample=0;
sample=400;//AD分辨率 400um/10v
double data=mydata0*sample/1000/4096; //數(shù)據(jù)運(yùn)算
return data;
}
4.5.4 按鍵掃描流程圖設(shè)計
初始化KEY=0
讀6110值 賦Nowintdat
i=0
Nowintda&(o﹡01≤2*)
Key=i
i++
i<4?
i=8
Nowintdat&(0x01<<2*i)
data=data*400/1000/4096
data=data*400/1000/4096
data=data*400/1000/4096
Key=i
i<10?
Key=i
結(jié)束
圖4.10 按鍵掃描流程圖
由于整個測量軟件要根據(jù)輸入按鍵的狀態(tài)決定什么時候開始測量,具體測量什么項(xiàng)目什么時候測量結(jié)束,開始測量時要控制電機(jī)帶動運(yùn)動部件按要求軌跡運(yùn)動,結(jié)束時還要控制電機(jī)停止運(yùn)動。所以按鈕檢測與控制程序就顯的很重要,在按鈕檢測與控制程序中主要完成按鍵的讀取。
按鈕檢測與控制程序代碼如下: