基于PLC自動(dòng)換刀系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
基于PLC自動(dòng)換刀系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)_第2頁(yè)
基于PLC自動(dòng)換刀系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)_第3頁(yè)
基于PLC自動(dòng)換刀系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)_第4頁(yè)
基于PLC自動(dòng)換刀系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、PAGE PAGE 36華東交通大學(xué)理工學(xué)院課程設(shè)計(jì) 說(shuō) 明 書(shū) 題 目: 基于PLC自動(dòng)換刀系統(tǒng)設(shè)計(jì) 姓 名: 劉剛 李省 吳蕓 高峰 學(xué) 號(hào): 306 312 314 302 班 級(jí): 09機(jī)電(3)班 專(zhuān) 業(yè): 機(jī)械電子工程 指導(dǎo)教師: 余宏濤 目 錄一、摘要3 二、自動(dòng)換刀系統(tǒng)機(jī)械設(shè)計(jì)4 2.1 數(shù)控臥式銑床的結(jié)構(gòu)42.2 最優(yōu)方案設(shè)計(jì)4 2.2.1刀庫(kù)橫移裝置4 2.2.2刀庫(kù)分度裝置4 2.3刀庫(kù)結(jié)構(gòu)組成5 2.3.1 刀庫(kù)裝置主要技術(shù)參數(shù)5 2.3.2 刀庫(kù)容量的確定52.4刀庫(kù)驅(qū)動(dòng)轉(zhuǎn)矩的計(jì)算6 2.4.1 刀庫(kù)分傳動(dòng)設(shè)計(jì)及計(jì)算6 2.4.2旋轉(zhuǎn)部件轉(zhuǎn)動(dòng)慣量計(jì)算8 2.4.3刀庫(kù)

2、驅(qū)動(dòng)轉(zhuǎn)矩計(jì)算82.5選擇電動(dòng)機(jī)容量82.6刀庫(kù)驅(qū)動(dòng)轉(zhuǎn)矩的校核92.7 直齒圓錐齒輪傳動(dòng)設(shè)計(jì)10 2.7.1齒輪疲勞強(qiáng)度設(shè)計(jì)102.8 氣缸設(shè)計(jì)和選擇11 2.8.1氣缸的選擇要點(diǎn)11 2.8.2氣缸初選11 2.8.3 驅(qū)動(dòng)力校核12 2.9絲杠傳動(dòng)工作臺(tái)總體設(shè)計(jì)方案122.9.1工作臺(tái)的尺寸設(shè)計(jì)122.9.2導(dǎo)軌類(lèi)型設(shè)計(jì)122.9.3電機(jī)的選擇122.9.4減速器的選擇122.9.5聯(lián)軸器和軸承的選擇132.10工作臺(tái)的設(shè)計(jì)13 2.10.1工作臺(tái)外形尺寸及重量初步估計(jì)13 2.10.2工作臺(tái)簡(jiǎn)圖132.11導(dǎo)軌的設(shè)計(jì)13 2.11.1導(dǎo)軌材料和類(lèi)型選擇13 2.11.2導(dǎo)軌額定載荷的預(yù)算

3、142.12絲杠的設(shè)計(jì)14三、PLC控制硬件設(shè)計(jì)163.1 PLC簡(jiǎn)介163.2 自動(dòng)換刀控制系統(tǒng)要求163.3 PLC型號(hào)的選擇163.4 系統(tǒng)控制元件列表173.5 PLC的I/O地址的分配183.6 PLC程序梯形圖183.7程序的調(diào)試19四、心得體會(huì)20五、參考文獻(xiàn)21一、摘 要隨著數(shù)控車(chē)床的發(fā)展,數(shù)控刀架開(kāi)始向快速換刀、電液組合驅(qū)動(dòng)和伺服驅(qū)動(dòng)刀庫(kù)方向發(fā)展。電動(dòng)刀架是數(shù)控車(chē)床重要的傳統(tǒng)結(jié)構(gòu),合理地選配電動(dòng)刀架,并正確實(shí)施控制,能夠有效的提高勞動(dòng)生產(chǎn)率,縮短生產(chǎn)準(zhǔn)備時(shí)間,消除人為誤差,提高加工精度與加工精度的一致性等.本設(shè)計(jì)采用電氣組合驅(qū)動(dòng),主要完成了八工位臥式刀架的機(jī)械結(jié)構(gòu)設(shè)計(jì)和利用三

4、菱FX2N可編程控制器(PLC)對(duì)自動(dòng)換刀系統(tǒng)的控制系統(tǒng)進(jìn)行設(shè)計(jì)。其自動(dòng)換刀的形式為無(wú)機(jī)械手換刀,換刀過(guò)程中刀盤(pán)需要橫向移動(dòng)到合適的位置,使機(jī)床主軸便于與刀庫(kù)交換刀具。刀庫(kù)的選刀方式為任意選刀,換刀過(guò)程中,刀盤(pán)需要轉(zhuǎn)動(dòng)從而進(jìn)行選刀,這就需要刀庫(kù)分度裝置對(duì)裝有刀具的刀盤(pán)進(jìn)行分度,并且利用接觸傳感器對(duì)刀具進(jìn)行計(jì)數(shù),并把所得的電信號(hào)傳遞給數(shù)控系統(tǒng),從而實(shí)現(xiàn)刀具的快速準(zhǔn)確選擇。在本設(shè)計(jì)中,刀庫(kù)橫移裝置的設(shè)計(jì)利用的是氣壓傳動(dòng)機(jī)構(gòu)來(lái)實(shí)現(xiàn)刀庫(kù)的橫移運(yùn)動(dòng);而刀庫(kù)分度裝置的設(shè)計(jì)利用的是槽輪機(jī)構(gòu)對(duì)刀盤(pán)進(jìn)行分度。機(jī)械設(shè)計(jì)主要包括分度機(jī)構(gòu)及定位機(jī)構(gòu)的選擇和刀架主軸,電機(jī)的選擇,工作臺(tái)和絲桿,氣缸等設(shè)計(jì)??刂撇糠譃樽詣?dòng)

5、換刀工作方式。關(guān)鍵詞:數(shù)控刀架,PLC控制,電機(jī),橫移裝置,分度裝置,刀庫(kù)二、自動(dòng)換刀系統(tǒng)機(jī)械設(shè)計(jì)2.1 數(shù)控臥式銑床的結(jié)構(gòu) 數(shù)控立臥式銑床主要由機(jī)床床身、機(jī)床數(shù)控系統(tǒng),刀庫(kù)裝置,進(jìn)給電機(jī),單氣缸等零部件組成。從數(shù)字控制技術(shù)特點(diǎn)看由于效控機(jī)床采用了HYPERLINK /view/515079.htm伺服電機(jī),應(yīng)用數(shù)字技術(shù)實(shí)現(xiàn)了對(duì)機(jī)床執(zhí)行部件工作順序和運(yùn)動(dòng)位移的直接控制,傳統(tǒng)機(jī)床的變速箱結(jié)構(gòu)被取消或部分取消了,因而機(jī)械結(jié)構(gòu)也大大簡(jiǎn)化了。數(shù)字控制還要求機(jī)械系統(tǒng)有較高的傳動(dòng)剛度和無(wú)傳動(dòng)間隙,以確??刂浦噶畹膱?zhí)行和控制品質(zhì)的實(shí)現(xiàn)。同時(shí)由于計(jì)算機(jī)水平和控制能力的不斷提高,同一臺(tái)機(jī)床上允許更多功能部件同時(shí)

6、執(zhí)行所需要的各種輔助功能已成為可能,因而數(shù)控機(jī)床的機(jī)械結(jié)掏比傳統(tǒng)機(jī)床具有更高的集成化功能要求。2.2最優(yōu)方案設(shè)計(jì)2.2.1刀庫(kù)橫移裝置 利用氣壓傳動(dòng)機(jī)構(gòu)。氣缸類(lèi)型為雙作用氣缸,氣壓缸固定安裝在刀庫(kù)介面支架上,活塞桿則與刀庫(kù)固定連接。通過(guò)氣源的供給,可以使刀庫(kù)沿著導(dǎo)軌軸作往復(fù)橫向移動(dòng)。這種方案比較直接,而且氣缸所占用的空間要比使用電機(jī)要小許多,而且通過(guò)磁環(huán)開(kāi)關(guān)的控制,能夠較為精準(zhǔn)地控制刀庫(kù)的橫向移動(dòng)。2.2.2刀庫(kù)分度裝置通過(guò)圓錐齒輪機(jī)構(gòu)來(lái)實(shí)現(xiàn)。其工作原理如下:刀盤(pán)與錐齒輪同軸固定連接,電動(dòng)機(jī)通過(guò)聯(lián)軸器與錐齒輪固定連接,這樣就可以通過(guò)錐齒輪機(jī)構(gòu)的傳動(dòng)來(lái)實(shí)現(xiàn)刀盤(pán)的旋轉(zhuǎn)運(yùn)動(dòng),完成選刀工作。這種機(jī)構(gòu)可

7、以較好的實(shí)現(xiàn)選到工作,錐齒輪機(jī)構(gòu)可以將電動(dòng)機(jī)的高轉(zhuǎn)速轉(zhuǎn)化成刀盤(pán)的低轉(zhuǎn)速旋轉(zhuǎn)運(yùn)動(dòng)。本設(shè)計(jì)的自動(dòng)換刀裝置,其刀庫(kù)橫移裝置采用氣壓傳動(dòng),而刀庫(kù)分度裝置則采用槽輪機(jī)構(gòu)來(lái)實(shí)現(xiàn)。 最終設(shè)計(jì)最優(yōu)方案如下效果圖: 圖1 整體效果圖2.3刀庫(kù)結(jié)構(gòu)組成:刀庫(kù)結(jié)構(gòu)組成如下圖所示:圖2 結(jié)構(gòu)圖2.3.1 刀庫(kù)裝置主要技術(shù)參數(shù)刀庫(kù)裝置技術(shù)參數(shù)表主軸鼻端BT40刀庫(kù)規(guī)格BT40-T10刀具容量10馬達(dá)規(guī)格M6IK200-A刀具換刀時(shí)間8Sec氣缸規(guī)格63290行程氣壓管線8氣動(dòng)壓力0.50.6Mpa刀具最大長(zhǎng)度250mm刀具最大重量8Kg刀具最大外徑90mm(滿刀狀態(tài));150(臨空刀狀態(tài))2.3.2 刀庫(kù)容量的確定在確

8、定刀庫(kù)容量時(shí),要進(jìn)行大量的分析調(diào)查,同時(shí)要考慮工藝需要及使用場(chǎng)合。一般來(lái)說(shuō),需要承擔(dān)多個(gè)工件的切削任務(wù)時(shí),需要配備的刀庫(kù)容量較大。換句話來(lái)說(shuō),配備的刀具愈多,機(jī)床能加工工件的比率也越高,但它們并不是成正比例關(guān)系。圖3.1為刀庫(kù)容量與機(jī)床能加工工件的比率統(tǒng)計(jì)曲線。 圖3 刀具數(shù)量統(tǒng)計(jì) 刀庫(kù)的刀具并不是越多越好,太大的容量會(huì)增和占地面積和刀庫(kù)的尺寸,使選刀時(shí)間增長(zhǎng);儲(chǔ)存量過(guò)小,則不能滿足復(fù)雜零件的加工要求。因此,刀庫(kù)容量應(yīng)在經(jīng)濟(jì)合理的條件下,力圖將一組類(lèi)似的零件所需的全部刀具裝入刀庫(kù),以縮短每次裝刀所需的裝調(diào)時(shí)間。對(duì)圖3-1進(jìn)行分析可知,5把刀可完成加工工件的95左右的銑削工藝,15把孔加工刀具可

9、完成80的鉆削工藝, 20把刀的容量就可完成90以上工件的鉆銑工藝。本文設(shè)計(jì)的刀庫(kù)如需能達(dá)到加工90以上的工件要求,那刀庫(kù)就需要有20把刀具的容量,故可將本刀庫(kù)的容量設(shè)定為10。2.4刀庫(kù)驅(qū)動(dòng)轉(zhuǎn)矩的計(jì)算2.4.1 刀庫(kù)分傳動(dòng)設(shè)計(jì)及計(jì)算下圖為刀庫(kù)效果圖: 圖4 刀庫(kù)實(shí)物效果圖刀庫(kù)在換刀前,首先需要選刀。選刀的過(guò)程,就是使刀庫(kù)輪轂滿足一個(gè)周向間歇運(yùn)動(dòng),也就是分度盤(pán)在分度過(guò)程中,轉(zhuǎn)位開(kāi)始與轉(zhuǎn)位結(jié)束位置上的瞬時(shí)角速度=0。在圖3.3中得出,為了使圓柱滾子能順利進(jìn)入和脫出分度盤(pán)上的徑向槽,在槽口的瞬時(shí)位置時(shí),必須使轉(zhuǎn)臂中心線PQ與分度槽的中心線OQ相垂直,即OQP=90。在圓柱滾子從進(jìn)入至脫離徑向槽的過(guò)

10、程中,這位法蘭的轉(zhuǎn)動(dòng)角度為162,而刀盤(pán)轉(zhuǎn)動(dòng)的角度則為18。設(shè)電機(jī)負(fù)載時(shí),法蘭盤(pán)上的滾子以1的角速度轉(zhuǎn)動(dòng),轉(zhuǎn)速為n1,此時(shí)分度盤(pán)以3的角速度轉(zhuǎn)動(dòng),轉(zhuǎn)速為n3;而電機(jī)空轉(zhuǎn)時(shí)以n2=1.25n1轉(zhuǎn)動(dòng),在滾子撥動(dòng)分度盤(pán)一次的一個(gè)周期內(nèi)的分度時(shí)間為t1,間歇時(shí)間為t2。圖5 刀庫(kù)分度裝置運(yùn)動(dòng)分析簡(jiǎn)圖 t1 =16260(360n1) ; t2 = 19860(360n2 ); t總 = t1 + t2 ;本設(shè)計(jì)刀庫(kù)最大刀容量為10,分度槽數(shù)量亦為10,選刀時(shí)分度盤(pán)按最近原則選刀,選到最遠(yuǎn)處刀具所需的時(shí)間為T(mén)2 (令T2為3秒)則:T2 = 10 t總 = 3 Sec ;綜合以上各式并代入數(shù)據(jù)可得: n

11、1 = 178 rmin,t 1 = 0.152 ; 1 = 2n160=18.6 rads ;圓柱滾子從進(jìn)入至脫離徑向槽這個(gè)過(guò)程,定位法蘭的轉(zhuǎn)角為21=162,分度盤(pán)的轉(zhuǎn)角為23=2/z=18,(z為分度盤(pán)的槽數(shù))。在直角三角形PQO中,根據(jù)正切函數(shù),3=arctansin1(1-cos1) ,式中=R1a=sin3。分度機(jī)構(gòu)在轉(zhuǎn)位過(guò)程中,定位法蘭以勻角速度1轉(zhuǎn)動(dòng),分度盤(pán)以角速度反向轉(zhuǎn)動(dòng),分度盤(pán)每次分度轉(zhuǎn)過(guò)的角度與槽數(shù)z有嚴(yán)格的對(duì)應(yīng)關(guān)系(23=2/z),分度盤(pán)的角速度3為3對(duì)時(shí)間的導(dǎo)數(shù): 3 = = 分度盤(pán)的角加速度為: =代入數(shù)據(jù)得:-54.8 rads2 。2.4.2旋轉(zhuǎn)部件轉(zhuǎn)動(dòng)慣量計(jì)算

12、刀具最大重量為8Kg;分度盤(pán)與刀庫(kù)輪轂質(zhì)量估計(jì)為15Kg;刀盤(pán)及圓盤(pán)罩蓋等總質(zhì)量估計(jì)為7Kg;故刀庫(kù)旋轉(zhuǎn)部件的總質(zhì)量M=30Kg;將整個(gè)旋轉(zhuǎn)部件等效為質(zhì)量均勻、半徑R為300mm的圓盤(pán),則其轉(zhuǎn)動(dòng)慣量 J = 0.5MR2 = 1.35 Kgm2;2.4.3刀庫(kù)驅(qū)動(dòng)轉(zhuǎn)矩計(jì)算 T = J=1.3554.8Nm 74 Nm2.5選擇電動(dòng)機(jī)容量(1)計(jì)算電動(dòng)機(jī)輸出功率Pd按常用機(jī)械傳動(dòng)效率簡(jiǎn)表確定各部分效率為滾動(dòng)軸承效率2=0.99,圓錐齒輪傳動(dòng)效率3=0.95,彈性聯(lián)軸器效率4=0.99,卷筒軸滑動(dòng)效率5=0.96,卷筒效率6=0.96。傳動(dòng)裝置總效率為: =223456 =0. 9920.950.

13、990.960.96=0.85得出電動(dòng)機(jī)輸出功率:Pd=1.10.850.93KW(2)所需的驅(qū)動(dòng)功率 刀盤(pán)的轉(zhuǎn)速為n1 = 178 rmin均角速度: =2n60 ,t1 = 18(180 )=0.152; 可得到轉(zhuǎn)位過(guò)程中,分度盤(pán)的平均轉(zhuǎn)速: n= 19.7 rmin;分度盤(pán)所需的驅(qū)動(dòng)功率: Tmi= =50.136Nm ; 所選電機(jī)的輸出許用轉(zhuǎn)矩T應(yīng)該大于Tmiin .(3)確定電動(dòng)機(jī)的轉(zhuǎn)速輸送機(jī)卷筒轉(zhuǎn)速:nw=121.02r/min 一般可選用同步轉(zhuǎn)速1000r/min或1500r/min的電動(dòng)機(jī)作為原動(dòng)機(jī)。單級(jí)緣錐齒輪的傳動(dòng)比范圍i2=23,則電動(dòng)機(jī)轉(zhuǎn)速可選范圍為nd=nw i1 i

14、2=121.02(2243)=484.081452.24r/min符合這一同步轉(zhuǎn)速范圍的有750r/min,1000r/min,1500r/min。選用750r/min同步轉(zhuǎn)速電機(jī),則電機(jī)重量大、價(jià)格昂貴;1000r/min,1500r/min電機(jī)從重量、價(jià)格及傳動(dòng)比等方面考慮,選用TY90S-4型電動(dòng)機(jī)。其相關(guān)參數(shù)如下:型號(hào)額定功率滿載轉(zhuǎn)速軸徑中心高TY90S-41.1KW1500r/min3.03.042mm160mm(4)計(jì)算傳動(dòng)裝置總傳動(dòng)比i總=12.392.6刀庫(kù)驅(qū)動(dòng)轉(zhuǎn)矩的校核刀庫(kù)驅(qū)動(dòng)轉(zhuǎn)矩最小應(yīng)為 T = 74 Nm;電機(jī)空轉(zhuǎn)轉(zhuǎn)速為n2=200 rmin;假設(shè)傳動(dòng)效率為90%,則負(fù)載

15、時(shí)電機(jī)輸出轉(zhuǎn)速為: n1=20090 rmin=180 rmin;一個(gè)周期內(nèi)的轉(zhuǎn)位時(shí)間為: t1=16260(360n1) = 0.15 Sec ;一個(gè)周期內(nèi)的電機(jī)空轉(zhuǎn)時(shí)間; t2 = 19860(360n2 ) =0.165 Sec; 又 3=2n360 ,t1 = 18180 ;故此時(shí)分度盤(pán)的轉(zhuǎn)速為: n3= 20 rmin ;減速電機(jī)傳遞到分度盤(pán)上的功率為: P1 = 0.290=0.18 Kw;減速電機(jī)傳遞到分度盤(pán)上的轉(zhuǎn)矩: T1 = = =86Nm74 Nm;所以,刀庫(kù)的驅(qū)動(dòng)轉(zhuǎn)矩滿足要求。2.7直齒圓錐齒輪傳動(dòng)設(shè)計(jì)錐 HYPERLINK /cat_1230003.html t _bl

16、ank 齒輪是圓錐齒輪的簡(jiǎn)稱,它用來(lái)實(shí)現(xiàn)兩相交軸之間的傳動(dòng),兩軸交角S稱為軸角,其值可根據(jù)傳動(dòng)需要確定,一般多采用90。如下圖:圖6 錐齒輪嚙合圖2.7.1齒輪疲勞強(qiáng)度設(shè)計(jì)查表,取載荷系數(shù)K=1.1,推薦齒寬系數(shù)R=0.250.3,取R=0.3。小齒輪上的轉(zhuǎn)矩:T1=1.7297105Nmm(1)計(jì)算分度圓錐角1=arctan= arctan=69.722=90-1=90-69.72=20.28(2)計(jì)算當(dāng)量齒數(shù)Zv1=18.12Zv2=132.71(3)計(jì)算模數(shù)查的YF1=3.02, YF2=2.16因?yàn)?0.023,=0.011,故將代入計(jì)算。 mm=3.43(4)計(jì)算大端模數(shù)m =4.0

17、4查表取m=4.5(5)計(jì)算分度圓直徑: d1=mZ1=4.517=76.50mmd2=mZ2=4.546=207.00mm(6)計(jì)算外錐距R=109.16mm(7)計(jì)算齒寬:b=RR=0.3109.16=32.75mm取b1=b2=35mm(8)計(jì)算齒輪的圓周速度齒寬中點(diǎn)處直徑:dm1=d1(1-R)=76.50(1-0.50.3)=65.025mm則圓周速度 :v =1.10m/s由表可知,選擇8級(jí)精度合適。(9)驗(yàn)算輪齒彎曲疲勞強(qiáng)度F1=95.38MpaF1=129Mpa, F1F1,故安全。2.8氣缸設(shè)計(jì)和選擇2.8.1氣缸的選擇要點(diǎn) 根據(jù)工件機(jī)構(gòu)所需力的大小,考慮氣缸載荷率確定活塞桿

18、上的推力與壓力,從而確定氣缸內(nèi)徑。氣缸由于其工作壓力較小(0.50.6Mpa),一般在10000N以內(nèi),輸出力過(guò)大其體積會(huì)太大,因此在氣動(dòng)設(shè)備上,應(yīng)盡量采用擴(kuò)力機(jī)構(gòu),以減小氣缸尺寸。2.8.2氣缸初選初選氣缸類(lèi)型為10A-5系列氣缸,氣缸內(nèi)徑D=,活塞桿直徑d=,氣缸行程L=290,氣源氣壓p=0.5Mpa,工作頻率較高,載荷率取0.3。2.8.3 驅(qū)動(dòng)力校核 向左推力P = d2p =6320.50.3 = 467N 向右拉力Q =(D2-d2)p=394N 估計(jì)刀庫(kù)總重量M=70Kg,則橫向往復(fù)運(yùn)動(dòng)所需的驅(qū)動(dòng)力 F =Mg =0.17010N=70N其中,是導(dǎo)軌摩擦系數(shù),取0.1;g是重力

19、加速度,取10NKg。PF且QF,所以驅(qū)動(dòng)力方面滿足設(shè)計(jì)要求2.9絲杠傳動(dòng)工作臺(tái)總體設(shè)計(jì)方案 絲杠傳動(dòng)工作臺(tái)總體設(shè)計(jì)方案的內(nèi)容包括工作臺(tái)尺寸設(shè)計(jì)、導(dǎo)軌設(shè)計(jì)、減速器的選擇、聯(lián)軸器和軸承的選擇以及直流電機(jī)的選擇。圖7 絲杠傳動(dòng)工作臺(tái)圖2.9.1工作臺(tái)的尺寸設(shè)計(jì) 由于所要承受的負(fù)載的重量較小,并且導(dǎo)軌的行程比較小,所以根據(jù)負(fù)載的重量可設(shè)計(jì)矩形工作臺(tái)。2.9.2導(dǎo)軌類(lèi)型設(shè)計(jì)由于工作臺(tái)的運(yùn)動(dòng)部件重量和工作載荷不大,故設(shè)計(jì)滑動(dòng)直線導(dǎo)軌副,從而減小工作臺(tái)的摩擦系數(shù),提高運(yùn)動(dòng)穩(wěn)定性。2.9.3電機(jī)的選擇根據(jù)負(fù)載和工作臺(tái)及零部件的重量較小,所以選用的電機(jī)的功率較小,可選用普通的直流電機(jī),結(jié)合絲杠的轉(zhuǎn)矩可選擇所需

20、的電機(jī)。2.9.4減速器的選擇因?yàn)楣ぷ髋_(tái)的水平行程比較小,絲杠的轉(zhuǎn)速比較小,結(jié)合電機(jī)的轉(zhuǎn)速較大,需選擇傳動(dòng)比較大的減速器,又因?yàn)樗韫β瘦^小,則可選用同軸圓柱齒輪減速器。2.9.5聯(lián)軸器和軸承的選擇根據(jù)所選用的電機(jī)的轉(zhuǎn)軸的尺寸和減速器的蝸輪和蝸桿的尺寸,可以選擇合適的聯(lián)軸器。由于在轉(zhuǎn)動(dòng)過(guò)程中,所受的軸向力比較小,主要承受徑向力,所以可選擇角接觸軸承。實(shí)物圖如下圖8所示: 結(jié)構(gòu)件圖如圖9所示:2.10工作臺(tái)的設(shè)計(jì)2.10.1工作臺(tái)外形尺寸及重量初步估計(jì)工作臺(tái)的相關(guān)參數(shù)設(shè)定為:材料:灰鑄鐵 HT200,密度=7.0g/cm3長(zhǎng)度寬度厚度:506010+5035102=30000+35000=650

21、00mm3工作臺(tái)質(zhì)量:m=V=7.06500010-6=0.455kg G=4.55N工作臺(tái)最大載荷:F=15N2.10.2工作臺(tái)簡(jiǎn)圖 根據(jù)給定的有效行程,畫(huà)出工作臺(tái)簡(jiǎn)圖。取兩道軌的中心距為50mm,設(shè)計(jì)工作臺(tái)簡(jiǎn)圖如下:圖10 工作臺(tái)簡(jiǎn)圖2.11導(dǎo)軌的設(shè)計(jì)2.11.1導(dǎo)軌材料和類(lèi)型選擇滑動(dòng)摩擦導(dǎo)軌的運(yùn)動(dòng)件與承導(dǎo)件直接接觸,優(yōu)點(diǎn):結(jié)構(gòu)簡(jiǎn)單、接觸剛度大,缺點(diǎn):摩擦阻力大、磨損快、低速時(shí)易產(chǎn)生爬行現(xiàn)象。在此我們選擇滑動(dòng)三角形導(dǎo)軌。導(dǎo)軌簡(jiǎn)圖如圖2-4所示圖11 導(dǎo)軌簡(jiǎn)圖材料: 用于導(dǎo)軌的材料,應(yīng)具有耐磨性好,摩擦因數(shù)小,并具有良好的加工和熱處理性質(zhì)。本設(shè)計(jì)導(dǎo)軌材料應(yīng)選用HT200,它具有較好的耐磨性,

22、灰鑄鐵密度為=7.0g/cm3。此灰鑄鐵導(dǎo)軌的硬度一般為180200HBW。為了提高導(dǎo)軌表面硬度,采用表明淬火工藝,表面硬度可達(dá)55HRC,導(dǎo)軌的耐磨性可提高13倍。2.11.2導(dǎo)軌額定載荷的預(yù)算 工作臺(tái)重量G=4.55N,工作臺(tái)最大載荷F=15N,因此導(dǎo)軌額定靜載荷為F靜=F+G=4.55+15=19.55N2.12絲杠的設(shè)計(jì) 滾珠螺旋的特點(diǎn):摩擦阻力小,傳動(dòng)效率高;磨損小、壽命長(zhǎng)、工作可靠性好;具有運(yùn)動(dòng)的可逆性,應(yīng)設(shè)防逆動(dòng)裝置;軸向剛度較高,抗沖擊性能較差;結(jié)構(gòu)復(fù)雜,加工制造較難;預(yù)緊后得到很高的定位精度(約達(dá)5um/300)和重復(fù)定位精度(可達(dá)12um)。參照設(shè)計(jì)要求發(fā)現(xiàn),滑動(dòng)螺旋和滾動(dòng)

23、螺旋均可滿足要求。擬選定滾動(dòng)螺旋傳動(dòng)方式。滾動(dòng)螺旋的工作原理如圖2-5所示,絲杠4和螺母1的螺紋滾道間置有滾珠2,當(dāng)絲杠或螺母轉(zhuǎn)動(dòng)時(shí),滾珠2沿螺紋滾道滾動(dòng),則絲杠與螺母之間相對(duì)運(yùn)動(dòng)時(shí)產(chǎn)生滾動(dòng)摩擦,為防止?jié)L珠從滾道中滾出,在螺母的螺旋槽兩端設(shè)有回程引導(dǎo)裝置3,如圖2-5a所示的反向器和圖2-5b所示的擋珠器,它們與螺紋滾道形成循環(huán)回路,使?jié)L珠在螺母滾道內(nèi)循環(huán)。圖12 滾珠絲杠副(1)滾珠絲桿副的選用與校核計(jì)算導(dǎo)軌摩擦力 Fu=u(m1+m2)g=2.874N ;其中m1 =1.5移動(dòng)負(fù)載;m2 =0.455工作臺(tái)質(zhì)量和滑塊質(zhì)量;u=0.15導(dǎo)軌與支撐之間的摩擦系數(shù)u查下表: 常用材料的滑動(dòng)摩擦系

24、數(shù)摩擦副材料靜摩擦系數(shù)us動(dòng)摩擦系數(shù)u無(wú)潤(rùn)滑有潤(rùn)滑無(wú)潤(rùn)滑有潤(rùn)滑鋼-鋼0.150.150.1鋼-青銅0.10.150.150.180.07(2)軸向載荷Fxmax和等效軸向載荷Fm的計(jì)算Fxmax=kFx+u(Fz+G)+( m1+ m2)a=12.08N 其中負(fù)載移動(dòng)阻力系數(shù)k=1.15 ; Fx負(fù)載移動(dòng)阻力; Fz= m2g; G= m1 g; a=v/t=5mm/s2; Fxmax=Fm=12.08N;(3)預(yù)設(shè)滾動(dòng)絲桿基本參數(shù) 螺紋公稱直徑d0=10 ; 導(dǎo)程Ph=2.5; 鋼球直徑Dw=1.488mm; 圈數(shù)列數(shù)ik=2.51;螺桿滾道曲率rs=0.52 Dw; 轉(zhuǎn)速n=V/Ph=12

25、0r/min;(4)計(jì)算動(dòng)載荷Ca Ca=khKFKHKlFm/kn=69.54N 壽命系數(shù)Kh =(Ln/500)1/3由于是普通絲桿傳動(dòng),選Lh =15000h;由知: 載荷系數(shù)KF=1.2;動(dòng)載荷硬度系數(shù)KH=1.0;轉(zhuǎn)速系數(shù)Kn=(33.3/n)1/3,其中n是絲桿轉(zhuǎn)速; 短行程系數(shù)KL=1.0。(5)螺旋導(dǎo)程角 =arctan Ph/d0= arctan0.417=4.6o(6)基本額定載荷校核Ca Ca=fc(icosa)0.7Z2/3Dwwtana=281.8N fc= KFKHKA Fm=14.533其中fc:與滾珠絲桿副滾道的幾何形狀制造精度和材料有關(guān)的系數(shù)一圈螺紋滾道內(nèi)的鋼

26、球數(shù)量Z=d0/Dw; 鋼球滾到便面在接觸點(diǎn)處的公法線與螺紋軸線的垂直線間的夾角a=45 o 由上可知:Ca大于Ca(7)基本靜載荷Coa計(jì)算 Coa=KFKHF=6.6N*1.2=7.92N F 軸向載荷 取F=6.6N; 基本額定靜載荷Coa =focizDw2sina=5261N 當(dāng)a=45 o時(shí),rs/ Dw=0.52, foc=63.7 Coa小于Coa,所以符合要求。(8)驅(qū)動(dòng)轉(zhuǎn)矩TT=(F* d0/2)tan(+)=6.6*5* tan(+)=13.8N*mm當(dāng)量摩擦角; 由旋動(dòng)運(yùn)動(dòng)變?yōu)橹本€運(yùn)動(dòng)時(shí)tan=0.0025三、PLC控制硬件設(shè)計(jì)3.1 PLC簡(jiǎn)介可編程控制器是一種數(shù)字運(yùn)

27、算操作的電子系統(tǒng),專(zhuān)為在工業(yè)環(huán)境應(yīng)用而設(shè)計(jì)的。它采用一類(lèi)可編程的存儲(chǔ)器,用于其內(nèi)部存儲(chǔ)程序,執(zhí)行邏輯運(yùn)算,順序控制,定時(shí),計(jì)數(shù)與算術(shù)操作等面向用戶的指令,并通過(guò)數(shù)字或模擬式輸入/輸出控制各種類(lèi)型的機(jī)械或生產(chǎn)過(guò)程。3.2 自動(dòng)換刀控制系統(tǒng)要求 針對(duì)自動(dòng)換刀系統(tǒng),PLC控制系統(tǒng)的重點(diǎn)和關(guān)鍵是接受來(lái)自數(shù)控系統(tǒng)的換刀指令即T指令,然后檢測(cè)當(dāng)前所在的刀位與T指令進(jìn)行比較。具體要求如下:換刀系統(tǒng)可以實(shí)現(xiàn)手動(dòng)和自動(dòng)換刀功能: 手動(dòng)換刀當(dāng)轉(zhuǎn)換開(kāi)關(guān)旋到手動(dòng)檔時(shí),按一下點(diǎn)動(dòng)換刀開(kāi)關(guān),刀盤(pán)就轉(zhuǎn)一個(gè)刀位; 自動(dòng)換刀1)當(dāng)轉(zhuǎn)換開(kāi)關(guān)旋到自動(dòng)檔時(shí),換刀系統(tǒng)接受來(lái)自數(shù)控系統(tǒng)的換刀指令進(jìn)行自動(dòng)換刀。設(shè)當(dāng)前的刀號(hào)為m號(hào)刀,這時(shí)T

28、指令要求換n號(hào)刀,如果m與n不相等則PLC通過(guò)比較選擇近的路線進(jìn)行換刀;2)如果m與n相等則不換刀;3.3 PLC型號(hào)的選擇兼顧系統(tǒng)中應(yīng)用到的能信功能,在眾多市面上的PLC產(chǎn)品中FX系列可編程控制器是當(dāng)今國(guó)內(nèi)外最新,最具特色、最具代表性的微型PLC。在FX系列PLC中設(shè)置通信功能,擴(kuò)大了PLC的應(yīng)用領(lǐng)域。本系統(tǒng)選擇了FX2N32MR001型PLC(輸入為16點(diǎn),輸出為16點(diǎn))。由PLC型號(hào)主回路電壓AC(100240)V;輸入端參數(shù)為電壓DC24V,電流5/7mA;繼電器輸出端電壓AC150V,DC30V以內(nèi)。本系統(tǒng)選用直流輸出方式。 PLC外接電氣元件選擇1)開(kāi)關(guān)的選擇本控制系統(tǒng)為PLC控制

29、,各種開(kāi)關(guān)的容量要求不高,普通的開(kāi)關(guān)足已,主要考慮輸入?yún)?shù)要求。對(duì)手動(dòng)和停止開(kāi)關(guān),選擇普通按鈕開(kāi)關(guān)LA系。手動(dòng)開(kāi)關(guān)為L(zhǎng)A2(綠色),停止開(kāi)關(guān)為L(zhǎng)A2(紅色)。本控制系統(tǒng)還要求有自動(dòng)和手動(dòng)控制之分,所以還要選擇一個(gè)轉(zhuǎn)換開(kāi)關(guān)LA18-22X3二位轉(zhuǎn)換開(kāi)關(guān)一個(gè)。2)熔斷器的選擇對(duì)于經(jīng)濟(jì)型控制系統(tǒng),對(duì)PLC的保護(hù)選用快速熔斷器FU。對(duì)應(yīng)于所選的PLC型號(hào)最大輸入電流3A,選擇型號(hào)RC13的熔斷器。該熔斷器額定電流為3A。PLC繼電器輸出時(shí),每一個(gè)輸出點(diǎn)為2A,輸出點(diǎn)控制為5點(diǎn),所以選額定電流為3A,型號(hào)為RC110的熔斷器。3)整流器的選擇為降低電壓的波動(dòng)對(duì)控制系統(tǒng)的不良影響,選擇把交流變?yōu)榈蛪褐绷鞴?/p>

30、電。因此,選擇型號(hào)為ZBA-10/24型整流器,它的輸入電壓為交流220V,輸出電壓為直流024V,額定電流10A。4)對(duì)輸入輸出口保護(hù)選擇對(duì)PLC輸入端電阻分析,自帶電阻為3k歐,對(duì)于DC24V的電流為標(biāo)準(zhǔn)電流,對(duì)輸入口保護(hù)不需做特別處理。輸出為直流感性負(fù)載時(shí),需在負(fù)載兩端并聯(lián)續(xù)流二極管或齊納二極管加以抑制。查有關(guān)資料時(shí),在直流感性負(fù)載輸出時(shí)可選電流為1A左右的二極管,電阻約為50歐左右。本系統(tǒng)中選二極管為2AK3型。5)抗電氣噪聲干擾的措施 不正確的接地和電氣控制柜走線不合理,均會(huì)導(dǎo)致PLC受電氣噪聲干擾而不能正常工作。為避免此類(lèi)故障的發(fā)生,要注意以下幾點(diǎn): a. 系統(tǒng)應(yīng)正確、良好地接地;

31、 b. 低電壓信號(hào)電纜與高壓電動(dòng)力電纜應(yīng)獨(dú)立走線; c. 將PLC上24VDC傳感電源的負(fù)端接地; d. I/O分配時(shí)輸入輸出模塊各應(yīng)可能相對(duì)集中地安排,防止輸出信號(hào)對(duì)輸入信號(hào)的干擾,并做到便于布線; e. 當(dāng)對(duì)輸入信號(hào)檢測(cè)頻率要求不高時(shí),可以將輸入點(diǎn)的輸入信號(hào)濾波時(shí)間延長(zhǎng);3.4 系統(tǒng)控制元件列表自動(dòng)換刀系統(tǒng)控制元件列表如下:表3.1 系統(tǒng)控制元件表序號(hào)符號(hào)名稱型號(hào)規(guī)格1SB1手動(dòng)開(kāi)頭LA2綠色2SB2停止開(kāi)關(guān)LA2紅色3PRS接近開(kāi)關(guān)LB08-2KM54SA轉(zhuǎn)換開(kāi)關(guān)LA18-22X3DC24V續(xù)表3.15FUPLC主回路熔斷器RC1106FUPLC輸出回路熔斷器RC1147PLC輸出端整流

32、器ZBA-10/24DC24V8PLC型號(hào)FX2N32MR0019馬達(dá)MFB510三位四通換向閥4WE5M5/OFA11VD續(xù)流二極管2AK31A3.5 PLC的I/O地址的分配通過(guò)對(duì)PLC選擇時(shí)對(duì)輸入輸出信號(hào)分析。已知輸入信號(hào)有手動(dòng)開(kāi)關(guān)、停止開(kāi)關(guān)、接近開(kāi)關(guān)、壓力繼電器等,輸出信號(hào)控制對(duì)象是換向閥。其I/O地址見(jiàn)下表所示。表3.2 輸入口地址分配輸出地址對(duì)應(yīng)的外部設(shè)配Y000刀盤(pán)(刀庫(kù)轉(zhuǎn)動(dòng)45度)Y001刀盤(pán)(刀庫(kù)轉(zhuǎn)動(dòng)90度)Y002電磁閥YA1(刀庫(kù)裝置前移到位)Y003電磁閥YA2(刀庫(kù)裝置后移到位)Y004電磁閥YA3(松開(kāi)刀動(dòng)作)Y005電磁閥YA4(夾緊刀動(dòng)作)Y006工作臺(tái)后移到位

33、Y007工作臺(tái)前移到位輸入地址對(duì)應(yīng)的外部設(shè)配X001啟動(dòng)按鈕X002停止按鈕 3.6 PLC程序梯形圖在選擇用三菱FX2N32MR001型PLC情況下,我們自然是選擇三菱公司為其生產(chǎn)的PLC而開(kāi)發(fā)的編程軟件SWOPC-FXGP/WIN-C。結(jié)合以上的程序段和控制各種要求,對(duì)控制對(duì)象進(jìn)行綜合分析,得到梯形圖: 指令表:3.7程序的調(diào)試控制程序是控制整個(gè)系統(tǒng)工作的軟件,是保證系統(tǒng)工作正常、安全、可靠的關(guān)鍵。因此,控制系統(tǒng)的設(shè)計(jì)必須經(jīng)過(guò)反復(fù)調(diào)試、修改。程序一般在實(shí)驗(yàn)室進(jìn)行模擬調(diào)試,實(shí)際的輸入信號(hào)可采用三菱專(zhuān)用編程軟件根據(jù)流程圖將程序編制好編譯無(wú)誤后再傳入PLC,各輸出量的通斷狀態(tài)用發(fā)光二極管來(lái)顯示,

34、一般不用接PLC實(shí)際的負(fù)載(如電磁閥器等),實(shí)際的反饋信號(hào)(如接近開(kāi)關(guān)的接通等)。在調(diào)試時(shí)應(yīng)充分考慮各種可能的情況。系統(tǒng)和各種不同的工作方式,選擇流程圖中的每一條支路,各種可能的進(jìn)展路線,都應(yīng)逐一檢查,不能遺漏。發(fā)現(xiàn)問(wèn)題后及時(shí)修改程序,直到在各種可能的情況下輸入量與輸出量之間的關(guān)系完全符合要求四、心得體會(huì)和學(xué)別的學(xué)科一樣,在學(xué)完P(guān)LC理論課程后我們做了課程設(shè)計(jì),此次設(shè)計(jì)以分組的方式進(jìn)行,每組有一個(gè)題目。我們做的是自動(dòng)換刀的PLC控制系統(tǒng)。由于平時(shí)大家都是學(xué)理論,沒(méi)有過(guò)實(shí)際開(kāi)發(fā)設(shè)計(jì)的經(jīng)驗(yàn),拿到的時(shí)候都不知道怎么做。但通過(guò)各方面的查資料并學(xué)習(xí)。我們基本學(xué)會(huì)了PLC設(shè)計(jì)的步聚和基本方法。分組工作的方

35、式給了我與同學(xué)合作的機(jī)會(huì),提高了與人合作的意識(shí)與能力。通過(guò)這次設(shè)計(jì)實(shí)踐。我學(xué)會(huì)了PLC的基本編程方法,對(duì)PLC的工作原理和使用方法也有了更深刻的理解。在對(duì)理論的運(yùn)用中,提高了我們的工程素質(zhì),在沒(méi)有做實(shí)踐設(shè)計(jì)以前,我們對(duì)知道的撐握都是思想上的,對(duì)一些細(xì)節(jié)不加重視,當(dāng)我們把自己想出來(lái)的程序與到PLC中的時(shí)候,問(wèn)題出現(xiàn)了,不是不能運(yùn)行,就是運(yùn)行的結(jié)果和要求的結(jié)果不相符合。能過(guò)解決一個(gè)個(gè)在調(diào)試中出現(xiàn)的問(wèn)題,我們對(duì)PLC的理解得到加強(qiáng),看到了實(shí)踐與理論的差距。通過(guò)合作,我們的合作意識(shí)得到加強(qiáng)。合作能力得到提高。上大學(xué)后,很多同學(xué)都沒(méi)有過(guò)深入的交流,在設(shè)計(jì)的過(guò)程中,我們用了分工與合作的方式,每個(gè)人負(fù)責(zé)一定

36、的部分,同時(shí)在一定的階段共同討論,以解決分工中個(gè)人不能解決的問(wèn)題,在交流中大家發(fā)言,和提出意見(jiàn),同時(shí)我們還向別的同學(xué)請(qǐng)教。在此過(guò)程中,每個(gè)人都想自己的方案得到實(shí)現(xiàn),積極向同學(xué)說(shuō)明自己的想法。能過(guò)比較選出最好的方案。在這過(guò)程也提高了我們的表過(guò)能力。通過(guò)此次課設(shè),讓我了解了PLC梯形圖、指令表、順序功能圖有了更好的了解,也讓我了解了關(guān)于PLC設(shè)計(jì)原理。有很多設(shè)計(jì)理念來(lái)源于實(shí)際,從中找出最適合的設(shè)計(jì)方法。雖然本次課程設(shè)計(jì)是要求自己獨(dú)立完成,但是,彼此還是脫離不了集體的力量,遇到問(wèn)題和同學(xué)互相討論交流,多和同學(xué)討論。我們?cè)谧稣n程設(shè)計(jì)的過(guò)程中要不停的討論問(wèn)題,這樣,我們可以盡可能的統(tǒng)一思想,這樣就不會(huì)使

37、自己在做的過(guò)程中沒(méi)有方向,并且這樣也是為了方便最后設(shè)計(jì)合在一起。討論不僅是一些思想的問(wèn)題,還可以深入的討論一些技術(shù)上的問(wèn)題,這樣可以使自己的處理問(wèn)題要快一些,少走彎路。多改變自己設(shè)計(jì)的方法,在設(shè)計(jì)的過(guò)程中最好要不停的改善自己解決問(wèn)題的方法,這樣可以方便自己解決問(wèn)題在設(shè)計(jì)的過(guò)程中我們還得到了老師的幫助與意見(jiàn)。在學(xué)習(xí)的過(guò)程中,不是每一個(gè)問(wèn)題都能自己解決,向老師請(qǐng)教或向同學(xué)討論是一個(gè)很好的方法。五、參考文獻(xiàn)1 文懷興,夏田.數(shù)控機(jī)床系統(tǒng)設(shè)計(jì)M.化學(xué)工業(yè)出版社,2005.2 陳嬋娟.數(shù)控車(chē)床設(shè)計(jì)M.化學(xué)工業(yè)出版社,2006.3 惲達(dá)明.金屬切削機(jī)床M.機(jī)械工業(yè)出版社,2005.4 茍萁.數(shù)控車(chē)床自動(dòng)換

38、刀裝置研究J.青島大學(xué)學(xué)報(bào),2005,35-38 .5 陳是曜. 金屬切削原理M. 北京:機(jī)械工業(yè)出版社,2002.6 濮良貴,紀(jì)名剛. 機(jī)械設(shè)計(jì)M. 北京:高等教育出版社,2001.附錄資料:不需要的可以自行刪除C語(yǔ)言編譯器的設(shè)計(jì)與實(shí)現(xiàn) 我們?cè)O(shè)計(jì)的編譯程序涉及到編譯五個(gè)階段中的三個(gè),即詞法分析器、語(yǔ)法分析器和中間代碼生成器。編譯程序的輸出結(jié)果包括詞法分析后的二元式序列、變量名表、狀態(tài)棧分析過(guò)程顯示及四元式序列程序,整個(gè)編譯程序分為三部分:(1) 詞法分析部分(2) 語(yǔ)法分析處理及四元式生成部分 (3) 輸出顯示部分一詞法分析器設(shè)計(jì) 由于我們規(guī)定的程序語(yǔ)句中涉及單詞較少,故在詞法分析階段忽略了

39、單詞輸入錯(cuò)誤的檢查,而將編譯程序的重點(diǎn)放在中間代碼生成階段。詞法分析器的功能是輸入源程序,輸出單詞符號(hào)。我們規(guī)定輸出的單詞符號(hào)格式為如下的二元式: (單詞種別,單詞自身的值)#define ACC -2#define syl_if 0#define syl_else 1#define syl_while 2#define syl_begin 3#define syl_end 4#define a 5#define semicolon 6#define e 7#define jinghao 8#define s 9#define L 10#define tempsy 11#define EA 1

40、2#define EO 13#define plus 14#define times 15#define becomes 16#define op_and 17#define op_or 18#define op_not 19#define rop 20#define lparent 21#define rparent 22#define ident 23#define intconst 24函數(shù)說(shuō)明 讀取函數(shù) readline( )、readch( )詞法分析包含從源文件讀取字符的操作,但頻繁的讀文件操作會(huì)影響程序執(zhí)行效率,故實(shí)際上是從源程序文件” source.dat ”中讀取一行到輸入緩

41、沖區(qū),而詞法分析過(guò)程中每次讀取一個(gè)字符時(shí)則是通過(guò)執(zhí)行 readch( )從輸入緩沖區(qū)獲得的;若緩沖區(qū)已被讀空,則再執(zhí)行readline( )從 source.dat 中讀取下一行至輸入緩沖區(qū)。掃描函數(shù) scan( ) 掃描函數(shù) scan( )的功能是濾除多余空格并對(duì)主要單詞進(jìn)行分析處理,將分析得到的二元式存入二元式結(jié)果緩沖區(qū)。變量處理 find( )變量處理中首先把以字母開(kāi)頭的字母數(shù)字串存到 spelling 數(shù)組中,然后進(jìn)行識(shí)別。識(shí)別過(guò)程是先讓它與保留關(guān)鍵字表中的所有關(guān)鍵字進(jìn)行匹配,若獲得成功則說(shuō)明它為保留關(guān)鍵字,即將其內(nèi)碼值寫(xiě)入二元式結(jié)果緩沖區(qū);否則說(shuō)明其為變量,這時(shí)讓它與變量名表中的變量

42、進(jìn)行匹配( 變量匹配函數(shù) find( ) ),如果成功,則說(shuō)明該變量已存在并在二元式結(jié)果緩沖區(qū)中標(biāo)記為此變量( 值填為該變量在變量名表中的位置),否則將該變量登記到變量名表中,再將這個(gè)新變量存入二元式緩存數(shù)組中。數(shù)字識(shí)別 number( ) 數(shù)字識(shí)別將識(shí)別出的數(shù)字填入二元式結(jié)果緩存數(shù)組。顯示函數(shù) 顯示函數(shù)的功能在屏幕上輸出詞法分析的結(jié)果( 即二元式序列程序),同時(shí)給出二元式個(gè)數(shù)及源程序行數(shù)統(tǒng)計(jì)。二語(yǔ)法分析器設(shè)計(jì) 語(yǔ)法分析器的核心是三張 SLR 分析表以及針對(duì)這三張 SLR 分析表進(jìn)行語(yǔ)義加工的語(yǔ)義動(dòng)作。編譯程序中語(yǔ)法分析處理及四元式生成部分主要是以二元式作為輸入,并通過(guò) SLR 分析表對(duì)語(yǔ)法分

43、析處理過(guò)程進(jìn)行控制,使四元式翻譯的工作有條不紊的進(jìn)行,同時(shí)識(shí)別語(yǔ)法分析中的語(yǔ)法錯(cuò)誤。在處理 if 和 while 語(yǔ)句時(shí),需要進(jìn)行真值或假值的拉鏈和返填工作,以便轉(zhuǎn)移目標(biāo)的正確填入。1. 控制語(yǔ)句的 SLR 分析表1 設(shè)計(jì)過(guò)程如下: 將擴(kuò)展文法GS S1)S if e S else S2)S while e S3)S L 4)S a;5)L S6)L SL用_CLOSURE方法構(gòu)造LR(0)項(xiàng)目規(guī)范簇為:I0: S SS if e S else SS while e S S L S a ;I1: S SI2: S ife S else SI3: S while e SI4: S L L S L

44、 SL S if e S else SS while e S S L S a ; I5: S a; I6: S if e S else S S if e S else SS while e S S L S a ; I7: S while e S S if e S else SS while e S S L S a ; I8: S L I9: L S L SL L SL L S S if e S else SS while e S S L S a ; I10: S a ; I11: S if e S else SI12: S while e S I13: S L I14: S SL I15: S

45、 if e S else S S if e S else SS while e S S L S a ; I16: S if e S else S 構(gòu)造文法G中非終結(jié)符的FOLLOW集如下:FOLLOW(S) = # S if e S else S得FOLLOW(S) = else S L 得FOLLOW(L) = 3) S S 得FOLLOW(S) = else , # L S 因?yàn)镕IRST(S) = ,所以FOLLOW(S) = else , #, 在()項(xiàng)目規(guī)范簇中,只有9有“移進(jìn)歸約”沖突,L SL SL因?yàn)镕OLLOW(L) FIRST(L) = 所以可以用方法解決以上沖突,最后我們

46、得到的分析表如下:ACTIONGOTO ifElsewhilea;e#SL0S2S3S4S511ACC2S63S74S2S3S4S5985S106S2S3S4S5117S2S3S4S5128S139S2S3S4R5S591410R4R4R4111512R2R2R213R3R3R314R615S2S3S4S51616R1R1R1static int action2011=/* 0 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 1, -1,/* 1 */ -1, -1, -1, -1, -1, -1, -1, -1,ACC, -1, -1,/* 2 */ -1, -1, -

47、1, -1, -1, -1, -1, 6, -1, -1, -1,/* 3 */ -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1,/* 4 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 9, 8,/* 5 */ -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1,/* 6 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 11, -1,/* 7 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 12, -1,/* 8 */ -1, -1, -1, -1, 13,

48、 -1, -1, -1, -1, -1, -1,/* 9 */ 2, -1, 3, 4,105, 5, -1, -1, -1, 9, 14,/* 10*/ -1,104, -1, -1,104, -1, -1, -1,104, -1, -1,/* 11*/ -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,/* 12*/ -1,102, -1, -1,102, -1, -1, -1,102, -1, -1,/* 13*/ -1,103, -1, -1,103, -1, -1, -1,103, -1, -1,/* 14*/ -1, -1, -1, -1,106

49、, -1, -1, -1, -1, -1, -1,/* 15*/ 2, -1, 3, 4, -1, 5, -1, -1, -1, 16, -1,/* 16*/ -1,101, -1, -1,101, -1, -1, -1,101, -1, -1;其中,前 9 列為 action 值,后 2 列為 goto 值;016 表示 17 個(gè)移進(jìn)狀態(tài)( 即 Si);-1表示出錯(cuò);ACC 表示分析成功;而 100106 對(duì)應(yīng) 7 個(gè)歸約產(chǎn)生式:S SS if e S else SS while e SS L S a;L SL SL2. 算術(shù)表達(dá)式的 LR 分析表 2 設(shè)計(jì)如下:S EE E+EE E*EE

50、 (E)E i (過(guò)程略)ACTIONGOTOI+*()#E0S3S211S4S5ACC2S3S263R4R4R4R44S3S275S3S286S4S5S97R1R5R1R18R2R2R2R29R3R3R3R3static int action1107=/* 0 */ 3, -1, -1, 2, -1, -1, 1,/* 1 */ -1, 4, 5, -1, -1,ACC, -1,/* 2 */ 3, -1, -1, 2, -1, -1, 6,/* 3 */ -1,104,104, -1,104,104, -1,/* 4 */ 3, -1, -1, 2, -1, -1, 7,/* 5 */ 3

51、, -1, -1, 2, -1, -1, 8,/* 6 */ -1, 4, 5, -1, 9, -1, -1,/* 7 */ -1,101, 5, -1,101,101, -1,/* 8 */ -1,102,102, -1,102,102, -1,/* 9 */ -1,103,103, -1,103,103, -1;3.布爾表達(dá)式的 SLR 分析表3 設(shè)計(jì)如下:(過(guò)程略)S BB iB i rop iB ( B )B ! BA B &B ABO B |B OBACTIONGOTOiRop()!&|#BAO0S1S4S513781S2R1R1R1R12S33R2R2R2R24S1S4S51178

52、5S1S4S56786R4S9S10R47S1S4S514788S1S4S515789R5R5R510R7R7R711S12S9S1012R3R3R3R313S9S10ACC14R6S9S10R615R8S9S10R8static int action21611=/* 0 */ 1, -1, 4, -1, 5, -1, -1, -1, 13, 7, 8,/* 1 */ 1, 2, -1,101, -1,101,101,101, -1, -1, -1,/* 2 */ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,/* 3 */ -1, -1, -1,102,

53、 -1,102,102,102, -1, -1, -1,/* 4 */ 1, -1, 4, -1, 5, -1, -1, -1, 11, 7, 8,/* 5 */ 1, -1, 4, -1, 5, -1, -1, -1, 6, 7, 8,/* 6 */ -1, -1, -1,104, -1, 9, 10,104, -1, -1, -1,/* 7 */ 1, -1, 4, -1, 5, -1, -1, -1, 14, 7, 8,/* 8 */ 1, -1, 4, -1, 5, -1, -1, -1, 15, 7, 8,/* 9 */ 105, -1,105, -1,105, -1, -1, -1

54、, -1, -1, -1,/*10 */ 107, -1,107, -1,107, -1, -1, -1, -1, -1, -1,/*11 */ -1, -1, -1, 12, -1, 9, 10, -1, -1, -1, -1,/*12 */ -1, -1, -1,103, -1,103,103,103, -1, -1, -1,/*13 */ -1, -1, -1, -1, -1, 9, 10,ACC, -1, -1, -1,/*14 */ -1, -1, -1,106, -1, 9, 10,106, -1, -1, -1,/*15 */ -1, -1, -1,108, -1, 9, 10,

55、108, -1, -1, -1;LR 分析表控制語(yǔ)義加工的實(shí)現(xiàn):當(dāng)掃描 LR 分析表的當(dāng)前狀態(tài)為歸約狀態(tài)時(shí),則在調(diào)用與該狀態(tài)對(duì)應(yīng)的產(chǎn)生式進(jìn)行歸約的同時(shí),調(diào)用相應(yīng)的語(yǔ)義子程序進(jìn)行有關(guān)的翻譯工作?,F(xiàn)在對(duì) LR 分析器的分析棧加以擴(kuò)充,使得每個(gè)文法符號(hào)之后都跟著它的語(yǔ)義值。為了清晰起見(jiàn),我們把這個(gè)棧的每一項(xiàng)看成由三部分組成:狀態(tài) state ,文法符號(hào) syl 和語(yǔ)義值 val。編譯程序?qū)崿F(xiàn)算術(shù)表達(dá)式、布爾表達(dá)式及程序語(yǔ)句的語(yǔ)義加工時(shí),都是按這種狀態(tài)棧加工方式進(jìn)行的。例如:( 5 + 3 ) * 6的分析過(guò)程序號(hào)STATEValsylinput10-#( 5 + 3 ) * 6 #202-#(5 +

56、 3 ) * 6 #3023#(5+ 3 ) * 6 #4026-5#(E+ 3 ) * 6 #50264-5-#(E+3 ) * 6 #602643-5-#(E+3 ) * 6 #702647-5-3#(E+E) * 6 #8026-8#(E) * 6 #90269-8-#(E)* 6 #1001-8#E* 6 #11015-8-#E* 6 #120153-8-#E*6#130158-8-6#E*E#1401-48#E#15ACC在分析過(guò)程中,第(3)步操作后的狀態(tài)棧為 023,根據(jù)棧頂狀態(tài)“ 3”和現(xiàn)行輸入符號(hào)“ +”( input 欄字符串的第一個(gè)字符)查分析表 ACTION3,+=R4

57、,即按第(4)個(gè)產(chǎn)生式 En 來(lái)進(jìn)行歸約;由于產(chǎn)生式右部?jī)H含一項(xiàng),故去掉狀態(tài)棧棧頂“3”;此時(shí) 2 變?yōu)樾碌臈m敔顟B(tài),再查( 2,E)的下一狀態(tài) s:GOTO2,E=6,即將狀態(tài) 6 和文法符號(hào) E 壓棧,最后得到第( 4)步的狀態(tài)。第( 7)步操作后也是如此,當(dāng)前狀態(tài)棧為 02647,根據(jù)棧頂狀態(tài) 7 和現(xiàn)行輸入符號(hào)“ )”查分析表 ACTION7,)=R1,即按第(1)個(gè)產(chǎn)生式 EE1+E2進(jìn)行歸約;由于產(chǎn)生式右部有三項(xiàng),故去掉狀態(tài)棧棧頂?shù)?647 三項(xiàng);此時(shí) 2 變?yōu)樾碌臈m敔顟B(tài),再查( 2,E)的下一狀態(tài) s:GOTO2,E=6,即將狀態(tài) 6 和文法符號(hào) E 壓棧,最后得到第(8)步的

58、狀態(tài)。三中間代碼生成器設(shè)計(jì):布爾表達(dá)式 布爾表達(dá)式在程序語(yǔ)言中有兩個(gè)基本作用:一是用作控制語(yǔ)句( 如 if -else 或 while語(yǔ)句)的條件式;二是用于邏輯演算,計(jì)算邏輯值。布爾表達(dá)式是由布爾算符( &、| 、?。┳饔糜诓紶栕兞浚?或常數(shù))或關(guān)系表達(dá)式而形成的。關(guān)系表達(dá)式的形式是 E1 rop E2,其中 rop 是關(guān)系符( 如或),E1和 E2是算術(shù)式。在這里,我們只考慮前面給定文法所產(chǎn)生的布爾表達(dá)式:BB &B | B | B | ! B | (B) | i rop i | i遵照我們的約定,布爾算符的優(yōu)先順序( 從高到低)為:!、&、|,并假定&和|都服從左結(jié)合規(guī)則。所有關(guān)系符的優(yōu)

59、先級(jí)都是相同的,而且高于任何布爾算符,低于任何算術(shù)算符,關(guān)系算符不得結(jié)合。表達(dá)式的真、假出口的確定:考慮表達(dá)式 B1 | B2 ,若 B1為真,則立即知道 B 也為真;因此,B1的真出口也就是整個(gè) B 的真出口。若 B1?為假,則 B2必須被計(jì)值,B2的第一個(gè)四元式就是 B1的假出口。當(dāng)然,B2的真、假出口也就是整個(gè) B的真、假出口。類(lèi)似的考慮適用于對(duì) B1 & B2的翻譯,我們將 B1 | B2和 B1 & B2 的翻譯用下圖表示,在自下而上的分析過(guò)程中,一個(gè)布爾式的真假出口往往不能在產(chǎn)生四元式的同時(shí)就填上。我們只好把這種未完成的四元式的地址( 編號(hào))作為 B 的語(yǔ)義值暫存起來(lái),待到整個(gè)表達(dá)

60、式的四元式產(chǎn)生完畢之后再來(lái)回填這個(gè)未填入的轉(zhuǎn)移目標(biāo)。條件語(yǔ)句對(duì)條件語(yǔ)句 if e S1 else S2 中的布爾表達(dá)式 e,其作用僅在于控制對(duì) S1和 S2的選擇。因此,作為轉(zhuǎn)移條件的布爾式e,我們可以賦予它兩種“ 出口”:一是“ 真”出T口,出向 S1;一是“ 假”出口,出向 S2。于是,e的代碼F條件語(yǔ)句可以翻譯成如圖的一般形式。非終結(jié)符 e 具有兩項(xiàng)語(yǔ)義值 e _TC 和e_FC,它們分別指出了尚待回填真、S2的代碼假出口的四元式串。e 的“ 真”出口只有在往回掃描到if時(shí)才能知道,而它圖 3-2 條件語(yǔ)句的代碼結(jié)構(gòu) 的“ 假”出口則需到處理過(guò) S1并且到達(dá) else 才能明確。這就是說(shuō)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論