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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

10、程中,這位法蘭的轉(zhuǎn)動角度為162,而刀盤轉(zhuǎn)動的角度則為18。設(shè)電機(jī)負(fù)載時,法蘭盤上的滾子以1的角速度轉(zhuǎn)動,轉(zhuǎn)速為n1,此時分度盤以3的角速度轉(zhuǎn)動,轉(zhuǎn)速為n3;而電機(jī)空轉(zhuǎn)時以n2=1.25n1轉(zhuǎn)動,在滾子撥動分度盤一次的一個周期內(nèi)的分度時間為t1,間歇時間為t2。圖5 刀庫分度裝置運(yùn)動分析簡圖 t1 =16260(360n1) ; t2 = 19860(360n2 ); t總 = t1 + t2 ;本設(shè)計刀庫最大刀容量為10,分度槽數(shù)量亦為10,選刀時分度盤按最近原則選刀,選到最遠(yuǎn)處刀具所需的時間為T2 (令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)入至脫離徑向槽這個過程,定位法蘭的轉(zhuǎn)角為21=162,分度盤的轉(zhuǎn)角為23=2/z=18,(z為分度盤的槽數(shù))。在直角三角形PQO中,根據(jù)正切函數(shù),3=arctansin1(1-cos1) ,式中=R1a=sin3。分度機(jī)構(gòu)在轉(zhuǎn)位過程中,定位法蘭以勻角速度1轉(zhuǎn)動,分度盤以角速度反向轉(zhuǎn)動,分度盤每次分度轉(zhuǎn)過的角度與槽數(shù)z有嚴(yán)格的對應(yīng)關(guān)系(23=2/z),分度盤的角速度3為3對時間的導(dǎo)數(shù): 3 = = 分度盤的角加速度為: =代入數(shù)據(jù)得:-54.8 rads2 。2.4.2旋轉(zhuǎn)部件轉(zhuǎn)動慣量計算

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

13、990.960.96=0.85得出電動機(jī)輸出功率:Pd=1.10.850.93KW(2)所需的驅(qū)動功率 刀盤的轉(zhuǎn)速為n1 = 178 rmin均角速度: =2n60 ,t1 = 18(180 )=0.152; 可得到轉(zhuǎn)位過程中,分度盤的平均轉(zhuǎn)速: n= 19.7 rmin;分度盤所需的驅(qū)動功率: Tmi= =50.136Nm ; 所選電機(jī)的輸出許用轉(zhuǎn)矩T應(yīng)該大于Tmiin .(3)確定電動機(jī)的轉(zhuǎn)速輸送機(jī)卷筒轉(zhuǎn)速:nw=121.02r/min 一般可選用同步轉(zhuǎn)速1000r/min或1500r/min的電動機(jī)作為原動機(jī)。單級緣錐齒輪的傳動比范圍i2=23,則電動機(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ī)重量大、價格昂貴;1000r/min,1500r/min電機(jī)從重量、價格及傳動比等方面考慮,選用TY90S-4型電動機(jī)。其相關(guān)參數(shù)如下:型號額定功率滿載轉(zhuǎn)速軸徑中心高TY90S-41.1KW1500r/min3.03.042mm160mm(4)計算傳動裝置總傳動比i總=12.392.6刀庫驅(qū)動轉(zhuǎn)矩的校核刀庫驅(qū)動轉(zhuǎn)矩最小應(yīng)為 T = 74 Nm;電機(jī)空轉(zhuǎn)轉(zhuǎn)速為n2=200 rmin;假設(shè)傳動效率為90%,則負(fù)載

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

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

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

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

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

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

21、00mm3工作臺質(zhì)量:m=V=7.06500010-6=0.455kg G=4.55N工作臺最大載荷:F=15N2.10.2工作臺簡圖 根據(jù)給定的有效行程,畫出工作臺簡圖。取兩道軌的中心距為50mm,設(shè)計工作臺簡圖如下:圖10 工作臺簡圖2.11導(dǎo)軌的設(shè)計2.11.1導(dǎo)軌材料和類型選擇滑動摩擦導(dǎo)軌的運(yùn)動件與承導(dǎo)件直接接觸,優(yōu)點(diǎn):結(jié)構(gòu)簡單、接觸剛度大,缺點(diǎn):摩擦阻力大、磨損快、低速時易產(chǎn)生爬行現(xiàn)象。在此我們選擇滑動三角形導(dǎo)軌。導(dǎo)軌簡圖如圖2-4所示圖11 導(dǎo)軌簡圖材料: 用于導(dǎo)軌的材料,應(yīng)具有耐磨性好,摩擦因數(shù)小,并具有良好的加工和熱處理性質(zhì)。本設(shè)計導(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ù)算 工作臺重量G=4.55N,工作臺最大載荷F=15N,因此導(dǎo)軌額定靜載荷為F靜=F+G=4.55+15=19.55N2.12絲杠的設(shè)計 滾珠螺旋的特點(diǎn):摩擦阻力小,傳動效率高;磨損小、壽命長、工作可靠性好;具有運(yùn)動的可逆性,應(yīng)設(shè)防逆動裝置;軸向剛度較高,抗沖擊性能較差;結(jié)構(gòu)復(fù)雜,加工制造較難;預(yù)緊后得到很高的定位精度(約達(dá)5um/300)和重復(fù)定位精度(可達(dá)12um)。參照設(shè)計要求發(fā)現(xiàn),滑動螺旋和滾動

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

24、數(shù)摩擦副材料靜摩擦系數(shù)us動摩擦系數(shù)u無潤滑有潤滑無潤滑有潤滑鋼-鋼0.150.150.1鋼-青銅0.10.150.150.180.07(2)軸向載荷Fxmax和等效軸向載荷Fm的計算Fxmax=kFx+u(Fz+G)+( m1+ m2)a=12.08N 其中負(fù)載移動阻力系數(shù)k=1.15 ; Fx負(fù)載移動阻力; Fz= m2g; G= m1 g; a=v/t=5mm/s2; Fxmax=Fm=12.08N;(3)預(yù)設(shè)滾動絲桿基本參數(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)計算動載荷Ca Ca=khKFKHKlFm/kn=69.54N 壽命系數(shù)Kh =(Ln/500)1/3由于是普通絲桿傳動,選Lh =15000h;由知: 載荷系數(shù)KF=1.2;動載荷硬度系數(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計算 Coa=KFKHF=6.6N*1.2=7.92N F 軸向載荷 取F=6.6N; 基本額定靜載荷Coa =focizDw2sina=5261N 當(dāng)a=45 o時,rs/ Dw=0.52, foc=63.7 Coa小于Coa,所以符合要求。(8)驅(qū)動轉(zhuǎn)矩TT=(F* d0/2)tan(+)=6.6*5* tan(+)=13.8N*mm當(dāng)量摩擦角; 由旋動運(yùn)動變?yōu)橹本€運(yùn)動時tan=0.0025三、PLC控制硬件設(shè)計3.1 PLC簡介可編程控制器是一種數(shù)字運(yùn)

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

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

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

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

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

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

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

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

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

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

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

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

39、單詞輸入錯誤的檢查,而將編譯程序的重點(diǎn)放在中間代碼生成階段。詞法分析器的功能是輸入源程序,輸出單詞符號。我們規(guī)定輸出的單詞符號格式為如下的二元式: (單詞種別,單詞自身的值)#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ù)說明 讀取函數(shù) readline( )、readch( )詞法分析包含從源文件讀取字符的操作,但頻繁的讀文件操作會影響程序執(zhí)行效率,故實(shí)際上是從源程序文件” source.dat ”中讀取一行到輸入緩

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

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

43、析處理過程進(jìn)行控制,使四元式翻譯的工作有條不紊的進(jìn)行,同時識別語法分析中的語法錯誤。在處理 if 和 while 語句時,需要進(jìn)行真值或假值的拉鏈和返填工作,以便轉(zhuǎn)移目標(biāo)的正確填入。1. 控制語句的 SLR 分析表1 設(shè)計過程如下: 將擴(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 個移進(jìn)狀態(tài)( 即 Si);-1表示出錯;ACC 表示分析成功;而 100106 對應(yīng) 7 個歸約產(chǎn)生式:S SS if e S else SS while e SS L S a;L SL SL2. 算術(shù)表達(dá)式的 LR 分析表 2 設(shè)計如下:S EE E+EE E*EE

50、 (E)E i (過程略)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è)計如下:(過程略)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 分析表控制語義加工的實(shí)現(xiàn):當(dāng)掃描 LR 分析表的當(dāng)前狀態(tài)為歸約狀態(tài)時,則在調(diào)用與該狀態(tài)對應(yīng)的產(chǎn)生式進(jìn)行歸約的同時,調(diào)用相應(yīng)的語義子程序進(jìn)行有關(guān)的翻譯工作?,F(xiàn)在對 LR 分析器的分析棧加以擴(kuò)充,使得每個文法符號之后都跟著它的語義值。為了清晰起見,我們把這個棧的每一項(xiàng)看成由三部分組成:狀態(tài) state ,文法符號 syl 和語義值 val。編譯程序?qū)崿F(xiàn)算術(shù)表達(dá)式、布爾表達(dá)式及程序語句的語義加工時,都是按這種狀態(tài)棧加工方式進(jìn)行的。例如:( 5 + 3 ) * 6的分析過程序號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在分析過程中,第(3)步操作后的狀態(tài)棧為 023,根據(jù)棧頂狀態(tài)“ 3”和現(xiàn)行輸入符號“ +”( input 欄字符串的第一個字符)查分析表 ACTION3,+=R4

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

58、狀態(tài)。三中間代碼生成器設(shè)計:布爾表達(dá)式 布爾表達(dá)式在程序語言中有兩個基本作用:一是用作控制語句( 如 if -else 或 while語句)的條件式;二是用于邏輯演算,計算邏輯值。布爾表達(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、先級都是相同的,而且高于任何布爾算符,低于任何算術(shù)算符,關(guān)系算符不得結(jié)合。表達(dá)式的真、假出口的確定:考慮表達(dá)式 B1 | B2 ,若 B1為真,則立即知道 B 也為真;因此,B1的真出口也就是整個 B 的真出口。若 B1?為假,則 B2必須被計值,B2的第一個四元式就是 B1的假出口。當(dāng)然,B2的真、假出口也就是整個 B的真、假出口。類似的考慮適用于對 B1 & B2的翻譯,我們將 B1 | B2和 B1 & B2 的翻譯用下圖表示,在自下而上的分析過程中,一個布爾式的真假出口往往不能在產(chǎn)生四元式的同時就填上。我們只好把這種未完成的四元式的地址( 編號)作為 B 的語義值暫存起來,待到整個表達(dá)

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

溫馨提示

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

最新文檔

評論

0/150

提交評論