基于PLC的壓入機(jī)控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于PLC的壓入機(jī)控制系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于PLC的壓入機(jī)控制系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于PLC的壓入機(jī)控制系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于PLC的壓入機(jī)控制系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、江蘇財(cái)經(jīng)職業(yè)技術(shù)學(xué)院綜合畢業(yè)設(shè)計(jì)標(biāo)題:基于PLC的壓入機(jī)控制系統(tǒng)設(shè)計(jì)系 別: 機(jī)械電子與信息工程學(xué)院專(zhuān) 業(yè): 11111111111 學(xué) 號(hào): 1222222222 姓 名: 1111111111 指導(dǎo)教師: 11111111111 2015 年5月28日 摘 要伴隨著科技的不斷創(chuàng)新和社會(huì)生產(chǎn)能效的不斷進(jìn)步,社會(huì)對(duì)于產(chǎn)品的要求也越來(lái)越發(fā)雜。產(chǎn)品的復(fù)雜性對(duì)生產(chǎn)上的技術(shù)精準(zhǔn)度也更加嚴(yán)格。多樣性的產(chǎn)品使產(chǎn)品的加工環(huán)境也極為復(fù)雜。復(fù)雜的現(xiàn)場(chǎng)操作環(huán)境,有些人是無(wú)法適應(yīng)的。所以在現(xiàn)代化的生產(chǎn)實(shí)踐中。用機(jī)械去取代人力,自動(dòng)化的生產(chǎn)方式更加適應(yīng)當(dāng)前的生產(chǎn)方式。壓入機(jī)是通過(guò)現(xiàn)代控制理論以及工業(yè)生產(chǎn)自動(dòng)化的實(shí)踐相

2、結(jié)合生產(chǎn)的自動(dòng)設(shè)備。壓入機(jī)可以代替人力去完成機(jī)械的壓入動(dòng)作,從而避免人在惡劣的生產(chǎn)環(huán)境下去進(jìn)行生產(chǎn)操作。本篇論文主要研究的是通過(guò)PLC來(lái)控制壓入機(jī)的一個(gè)程序設(shè)計(jì)系統(tǒng)。壓入機(jī)的系統(tǒng)構(gòu)成是由供應(yīng)電源、感應(yīng)裝置、可編程控制器、驅(qū)動(dòng)裝置和傳動(dòng)裝置構(gòu)成。系統(tǒng)的主要工作原理是供應(yīng)電源供電,外部的感應(yīng)裝置感應(yīng)外部信號(hào)將信號(hào)傳送到PLC中,PLC再綜合收到的外部信號(hào)進(jìn)行判斷進(jìn)行置位和復(fù)位動(dòng)作,對(duì)驅(qū)動(dòng)裝置進(jìn)行信號(hào)輸出驅(qū)動(dòng),再通過(guò)傳動(dòng)裝置帶動(dòng)壓入機(jī)的運(yùn)轉(zhuǎn),繼而完成整個(gè)壓入的完整動(dòng)作。關(guān)鍵詞:PLC;壓入;控制 目 錄TOC f t 樣式1,1,樣式2,1,樣式3,1,樣式6,1,樣式7,1,樣式8,1,樣式9,1

3、,樣式4,2,樣式5,3 h HYPERLINK l _Toc5017 摘 要 PAGEREF _Toc5017 1 HYPERLINK l _Toc9851 目 錄 PAGEREF _Toc9851 2 HYPERLINK l _Toc2517 引言 PAGEREF _Toc2517 3 HYPERLINK l _Toc19910 1 可編程控制器(PLC)的概述 PAGEREF _Toc19910 3 HYPERLINK l _Toc20969 1.1 可編程控制器 PAGEREF _Toc20969 3 HYPERLINK l _Toc18378 1.2 PLC的組成和工作原理 PAGE

4、REF _Toc18378 4 HYPERLINK l _Toc18612 1.2.2 PLC工作原理 PAGEREF _Toc18612 5 HYPERLINK l _Toc8703 1.3 PLC的發(fā)展趨勢(shì)和現(xiàn)狀 PAGEREF _Toc8703 6 HYPERLINK l _Toc14070 1.3.1 PLC的發(fā)展趨勢(shì) PAGEREF _Toc14070 6 HYPERLINK l _Toc14012 1.3.2 PLC的發(fā)展?fàn)顩r PAGEREF _Toc14012 7 HYPERLINK l _Toc22487 1.4 PLC的分類(lèi) PAGEREF _Toc22487 8 HYPER

5、LINK l _Toc15862 1.4.1 功能分類(lèi) PAGEREF _Toc15862 8 HYPERLINK l _Toc28475 1.4.2 結(jié)構(gòu)分類(lèi) PAGEREF _Toc28475 8 HYPERLINK l _Toc12468 1.4.3 I/O分類(lèi) PAGEREF _Toc12468 8 HYPERLINK l _Toc11228 1.5 PLC選型 PAGEREF _Toc11228 9 HYPERLINK l _Toc32087 1.5.1 選型依據(jù) PAGEREF _Toc32087 9 HYPERLINK l _Toc31489 2 壓入機(jī)的簡(jiǎn)述 PAGEREF _

6、Toc31489 10 HYPERLINK l _Toc15077 2.1 壓入機(jī)的主要運(yùn)用方面 PAGEREF _Toc15077 10 HYPERLINK l _Toc25346 2.2 壓入機(jī)的結(jié)構(gòu)原理 PAGEREF _Toc25346 10 HYPERLINK l _Toc15358 2.3 壓入機(jī)應(yīng)用的意義 PAGEREF _Toc15358 11 HYPERLINK l _Toc25352 3 基于PLC的壓入機(jī)控制系統(tǒng)設(shè)計(jì) PAGEREF _Toc25352 11 HYPERLINK l _Toc9760 3.1 基于PLC壓入系統(tǒng)的概述 PAGEREF _Toc9760 11

7、 HYPERLINK l _Toc2467 3.2 基于PLC壓入系統(tǒng)的控制要求 PAGEREF _Toc2467 11 HYPERLINK l _Toc6247 3.2.1 仿真GX-Works2 PAGEREF _Toc6247 15 HYPERLINK l _Toc16680 3.2.2 GX-works2模擬運(yùn)行 PAGEREF _Toc16680 16 HYPERLINK l _Toc1258 結(jié)束語(yǔ) PAGEREF _Toc1258 22 HYPERLINK l _Toc2046 致謝 PAGEREF _Toc2046 23 HYPERLINK l _Toc14949 參考文獻(xiàn) P

8、AGEREF _Toc14949 24 HYPERLINK l _Toc15417 附錄 PAGEREF _Toc15417 25基于PLC的壓入機(jī)控制系統(tǒng)設(shè)計(jì)引言可編程序控制器( PLC)是在邏輯電路開(kāi)關(guān)的基礎(chǔ)上,綜合運(yùn)用計(jì)算機(jī)技術(shù)、自動(dòng)控制技術(shù)和通訊技術(shù)而發(fā)展起來(lái),用來(lái)取代傳統(tǒng)繼電器的一種新型的工業(yè)控制裝置。對(duì)于傳統(tǒng)的繼電器來(lái)講,它的可靠性相對(duì)較高、程序相對(duì)簡(jiǎn)便、修護(hù)組裝方便等優(yōu)點(diǎn)。在工業(yè)控制方面被廣泛地運(yùn)用。壓入機(jī)是種無(wú)人操作可獨(dú)立進(jìn)行生產(chǎn)加工的自動(dòng)化設(shè)備,要求其結(jié)構(gòu)必須可靠、穩(wěn)定、準(zhǔn)確和執(zhí)行效率高。對(duì)于壓入機(jī)而言,操作人員能夠通過(guò)人機(jī)界面與PLC之間進(jìn)行相互作用,是溝通PLC的橋梁。伴

9、隨著人力資源的緊張以及人力成本的增加,傳統(tǒng)的手工作業(yè)方式已不能適應(yīng)當(dāng)前的生產(chǎn)節(jié)奏。自動(dòng)機(jī)械的推行,可以很好的解決了這一現(xiàn)狀。在各式各樣的自動(dòng)化機(jī)械中,壓入機(jī)是種運(yùn)用比較廣范的機(jī)臺(tái)。傳統(tǒng)的手工壓入機(jī),需要人去操作驅(qū)動(dòng)馬達(dá),實(shí)現(xiàn)機(jī)臺(tái)的運(yùn)轉(zhuǎn),從而完成工件的加工。既費(fèi)時(shí)又費(fèi)力。而自動(dòng)壓入機(jī)的推行,可以縮減人力,實(shí)現(xiàn)機(jī)器的自動(dòng)運(yùn)轉(zhuǎn),無(wú)人看管的工作方式。本課題通過(guò)推現(xiàn)場(chǎng)生產(chǎn)的觀察,以節(jié)約人力資源為理念,進(jìn)行自動(dòng)機(jī)臺(tái)的設(shè)計(jì)研發(fā)。以達(dá)到精簡(jiǎn)人力,全面達(dá)成自動(dòng)化的目標(biāo)。主要是研究自動(dòng)機(jī)的相關(guān)程序部分,即機(jī)臺(tái)軟元件。對(duì)PLC的邏輯控制系統(tǒng)設(shè)計(jì)。一個(gè)完善的PLC程序,可以出色的執(zhí)行相關(guān)的機(jī)械動(dòng)作。通過(guò)對(duì)PLC編程的

10、熟練運(yùn)用,撰寫(xiě)自動(dòng)程序。同時(shí),還需要對(duì)機(jī)器的運(yùn)轉(zhuǎn)方式十分熟悉。通過(guò)模擬運(yùn)行,實(shí)驗(yàn)是否能夠達(dá)到理想的工作狀態(tài)。1 可編程控制器(PLC)的概述1.1 可編程控制器于工業(yè)制造和階段性的實(shí)踐生產(chǎn)中,會(huì)運(yùn)用到大批量的開(kāi)關(guān)邏輯來(lái)達(dá)成順序控制,能夠按照預(yù)先設(shè)定好的順序進(jìn)行動(dòng)作,通過(guò)邏輯聯(lián)系來(lái)達(dá)成邏輯控制保護(hù),以及對(duì)海量的數(shù)據(jù)采集??删幊绦蚩刂破?,英文稱(chēng) Programmable Controller,簡(jiǎn)稱(chēng) PC。為了與個(gè)人計(jì)算機(jī)(Personal Computer)區(qū)別,把PLC當(dāng)作可編程控制器的英文縮寫(xiě)。隨著計(jì)算機(jī)的不斷推進(jìn)及跳躍性發(fā)展,PLC的功能也在不斷的成熟。隨著用戶(hù)需求的不斷提高和信息篩選和應(yīng)用

11、網(wǎng)絡(luò)的不斷發(fā)展。PLC在原有的開(kāi)關(guān)量的基本控制上,可達(dá)成事物的模擬處理以及運(yùn)動(dòng)的實(shí)時(shí)監(jiān)控。可編程控制器是和個(gè)人PC一樣,通過(guò)微處理器作為核心部件,去達(dá)成數(shù)字運(yùn)算操作,在工業(yè)生產(chǎn)表現(xiàn)進(jìn)行應(yīng)用從而體現(xiàn)出它的實(shí)際價(jià)值。通過(guò)運(yùn)用其內(nèi)部存儲(chǔ)單元來(lái)執(zhí)行邏輯運(yùn)算、順序控制、定時(shí)/計(jì)數(shù)和算術(shù)運(yùn)算等操作指令,并且通過(guò)存在的內(nèi)部達(dá)成執(zhí)行反饋進(jìn)行信息的判斷,對(duì)外部的輸入、輸出點(diǎn)的置位或復(fù)位來(lái)控制機(jī)械的動(dòng)作或生產(chǎn)過(guò)程。PLC強(qiáng)大的控制能力以及超強(qiáng)的運(yùn)算能力在過(guò)程控制得到極為廣泛的應(yīng)用,小到一些十分簡(jiǎn)單的家用設(shè)備,大到工業(yè)生產(chǎn)的過(guò)程,以及交通運(yùn)輸?shù)鹊?,無(wú)不體現(xiàn)出PLC存在的必要1.2 PLC的組成和工作原理圖1-1 P

12、LC的組成和工作原理圖由圖1-1所示,我們可以看出PLC主要由:電源組件、中央處理器(CPU)、存儲(chǔ)器、I/O擴(kuò)展接口、外部設(shè)備接口以及輸入輸出接口組成,下面即對(duì)各主要部件作詳細(xì)描述:(1)CPU:PLC與個(gè)人計(jì)算機(jī)的功用有些相類(lèi)似,CPU同樣是PLC的核心部件。它主要由寄存器、運(yùn)算器、控制器以及能夠?qū)崿F(xiàn)各個(gè)部件之間的數(shù)據(jù)的傳輸以及控制輸入輸出狀態(tài)的完整總線組成,核心作用是:收集存儲(chǔ)用戶(hù)撰寫(xiě)的程序以及數(shù)字文本;掃描診斷接收的程序是否存在語(yǔ)法上的錯(cuò)誤;編譯用戶(hù)撰寫(xiě)的程序,并逐步進(jìn)行掃描執(zhí)行,將執(zhí)行的結(jié)果存儲(chǔ)在內(nèi)部的寄存器里面;當(dāng)PLC掃描寄存器時(shí)執(zhí)行存儲(chǔ)結(jié)果動(dòng)作。(2)電源組件:電源為PLC持續(xù)

13、供應(yīng)電源。電源類(lèi)型主要有AD/DC型。(3)存儲(chǔ)器:內(nèi)部的存儲(chǔ)器核心作用是能夠存儲(chǔ)自身的應(yīng)用程序、用戶(hù)撰寫(xiě)的程序及數(shù)據(jù),對(duì)于PLC而言?xún)?nèi)部存儲(chǔ)器的內(nèi)存大小決定了PLC的可適應(yīng)范圍。(4)I/O擴(kuò)展接口:PLC和外部建立起通信都是運(yùn)用I/O來(lái)完成的。對(duì)于PLC而言,他不能直接識(shí)別外部信號(hào),所以輸入端子是將外部的電信號(hào)轉(zhuǎn)換成PLC可識(shí)別的數(shù)字信號(hào)。輸端子是講PLC的數(shù)字信號(hào)轉(zhuǎn)換成外部電路可識(shí)別的電信號(hào)。(5)外部設(shè)備接口:外接設(shè)備是溝通PLC的橋梁??梢詫?duì)PLC進(jìn)行輸入、輸出。一般的外部設(shè)備如上圖所示。如上位計(jì)算機(jī)、圖形監(jiān)控系統(tǒng)、打印機(jī)等。1.2.2 PLC工作原理圖1-2 PLC工作原理圖從圖1

14、-2所示,我們可以看出PLC的一個(gè)完整的掃描周期包括自診斷、通訊、輸入采樣、用戶(hù)程序執(zhí)行、輸出刷新所用時(shí)間:(1)上電:對(duì)PLC進(jìn)行持續(xù)供電保持電路,是PLC工作的前提條件。(2)RUN:只有把PLC打到RUN可以對(duì)PLC進(jìn)行調(diào)試輸入輸出。(3)自診斷:PLC通過(guò)對(duì)自己內(nèi)部電路以及用戶(hù)撰寫(xiě)的程序等進(jìn)行自我診斷,檢查是否出現(xiàn)故障,若PLC診斷出現(xiàn)異常,PLC會(huì)停止工作,相對(duì)應(yīng)后面的操作就不會(huì)執(zhí)行。反之,PLC會(huì)正常的執(zhí)行掃描動(dòng)作。(4)通訊:是PLC對(duì)用戶(hù)撰寫(xiě)的程序和內(nèi)部程序的聯(lián)系,將用戶(hù)撰寫(xiě)的程序中數(shù)據(jù)傳輸?shù)絻?nèi)部程序里面。(5)輸入采樣:PLC并不知道外部信號(hào)是個(gè)什么東西,在外部信號(hào)需要進(jìn)行輸

15、入時(shí),這時(shí)候PLC就要通過(guò)一個(gè)人中間裝置來(lái)識(shí)別,即映像寄存器來(lái)達(dá)成輸入采樣,使外部的電信號(hào)進(jìn)行轉(zhuǎn)換為0和1能夠被PLC進(jìn)行識(shí)別。(6)用戶(hù)程序執(zhí)行:PLC進(jìn)行輸入信號(hào)的采集存儲(chǔ),PLC對(duì)存儲(chǔ)器的掃描做出的程序執(zhí)行動(dòng)作。即PLC對(duì)程序的掃描執(zhí)行。(7)輸出刷新:在PLC里,他不會(huì)直接的輸出信號(hào),即輸出信號(hào)處于接通狀態(tài)。只有在PLC完成掃描一個(gè)周期的時(shí)候,才能根據(jù)輸出狀態(tài)控制外部動(dòng)作。PLC就是在不停地往復(fù)進(jìn)行掃描來(lái)達(dá)成輸入與輸出。從自診斷執(zhí)行開(kāi)始到輸出刷新我們把他理解為一個(gè)完整掃描周期。PLC遵循順序掃描的邏輯方式,并且不斷的進(jìn)行循環(huán)往復(fù)的工作。1.3 PLC的發(fā)展趨勢(shì)和現(xiàn)狀1.3.1 PLC的

16、發(fā)展趨勢(shì)(1)良好的人機(jī)交互界面PLC的軟件和硬件的相互結(jié)構(gòu),很大程度上提高PLC的系統(tǒng)性能。軟件的水平不斷提高,能夠幫助用戶(hù)實(shí)現(xiàn)復(fù)雜程序的撰寫(xiě)。同時(shí),又大大的降低了生產(chǎn)維護(hù)成本。可以更好的達(dá)成人和機(jī)器的緊密聯(lián)系。目前的發(fā)展?fàn)顩r而言,PLC+(PLC+網(wǎng)絡(luò)+IPC +CRT)的模式更容易被認(rèn)可。(2)開(kāi)放性和相互滲透性在PLC的發(fā)展過(guò)程,最初沒(méi)有標(biāo)準(zhǔn)的設(shè)計(jì)形式,不同廠家的標(biāo)準(zhǔn)都不相同。系統(tǒng)無(wú)法做到兼容。在這種基礎(chǔ)上,系統(tǒng)的開(kāi)放性是必然的。有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)。IEC現(xiàn)場(chǎng)總線的標(biāo)準(zhǔn),即指令表、順序功能圖、梯形圖、結(jié)構(gòu)化文本、功能模塊。(PAC)表示可編程自動(dòng)化的控制器,是用于描述PLC和個(gè)人計(jì)算機(jī)的

17、功能結(jié)合體的控制器。傳統(tǒng)的PAC概念是描述高端系統(tǒng),而PC控制則是用來(lái)描述工業(yè)自動(dòng)領(lǐng)域的控制實(shí)現(xiàn)平臺(tái)。軟PLC在中國(guó),一般來(lái)說(shuō)軟PLC某種意義上就是在個(gè)人計(jì)算機(jī)運(yùn)用實(shí)踐里,基于Windows操作系統(tǒng),通過(guò)用APP來(lái)達(dá)成PLC所具備的功能。(3)網(wǎng)絡(luò)通訊能力PLC在PC已經(jīng)擁有的CPU基礎(chǔ)上增加了各種通信的外部接口,并且提供了完整的網(wǎng)絡(luò)聯(lián)通性。1.3.2 PLC的發(fā)展?fàn)顩r最早提出去代替繼電器是美國(guó)的通用公司,但是美國(guó)另外一家公司,數(shù)字公司自主開(kāi)發(fā)一種使用集成電路及電子運(yùn)用技術(shù)的新型控制設(shè)備。這是真正意義上的第一代PLC。 為了和個(gè)人計(jì)算機(jī)區(qū)分,用PLC來(lái)作為英文縮寫(xiě)以示區(qū)別。在上個(gè)世紀(jì)8090年

18、代,PLC進(jìn)入快速發(fā)展階段,PLC運(yùn)用能力實(shí)現(xiàn)了大幅度的提高,逐漸取代了在過(guò)程控制領(lǐng)域處于領(lǐng)導(dǎo)地位的DCS系統(tǒng)。目前,可編程控制器在制造業(yè)和重工業(yè)以及輕工業(yè)領(lǐng)域都有極為廣泛的發(fā)展。改革開(kāi)放開(kāi)始的時(shí)候,我國(guó)開(kāi)始對(duì)可編程控制器進(jìn)行引進(jìn)和運(yùn)用。并且開(kāi)始進(jìn)行研發(fā)和生產(chǎn)的變更。企業(yè)對(duì)PLC的運(yùn)用更加頻繁。目前而言,我們國(guó)家可以自主生產(chǎn)中小型的PLC。隨著現(xiàn)代化進(jìn)程的不斷推進(jìn),PLC在我國(guó)的運(yùn)用會(huì)更加寬泛。PLC的發(fā)展是社會(huì)需求的必然結(jié)果,在未來(lái)的很長(zhǎng)時(shí)間里PLC能夠?qū)崿F(xiàn)進(jìn)一步的提高。從技術(shù)水平來(lái)說(shuō),計(jì)算機(jī)運(yùn)用技術(shù)的不斷創(chuàng)新發(fā)展必然可以達(dá)成更多的研究成果。能夠?qū)⑦@些研究成果應(yīng)用于可編程控制器的設(shè)計(jì)上來(lái)。P

19、LC的運(yùn)算速率更快,智能性更加完善。從產(chǎn)品的規(guī)格方面來(lái)闡述,超小型化的PLC是未來(lái)實(shí)際需求的主要趨勢(shì)。PLC不是一個(gè)單獨(dú)的個(gè)體,他需要相應(yīng)的配套設(shè)配來(lái)更同協(xié)調(diào)完成動(dòng)作。所以未來(lái)的產(chǎn)品規(guī)格會(huì)更加齊全,配件更加豐富,性能更加穩(wěn)定能夠更好地適應(yīng)工業(yè)就、控制要求。而目前市面上的主流廠家主導(dǎo)的情況也能夠得到完美的改善。PLC的運(yùn)用區(qū)間也會(huì)變得更加廣泛。1.4 PLC的分類(lèi)PLC的分類(lèi)主要按照結(jié)構(gòu)、功能以及I/O三大類(lèi)方式進(jìn)行區(qū)分。1.4.1 功能分類(lèi)按照PLC的功能不同,可將PLC分為高檔、中檔、低檔三種。(1)低檔的PLC就是具備PLC的基本功能,包括邏輯運(yùn)算功能、計(jì)時(shí)功能、計(jì)數(shù)功能,以及PLC的自我

20、診斷功能。同時(shí),它還具有少量的輸入/輸出端,能夠進(jìn)行數(shù)據(jù)的比較、傳輸和通信等功能。主要運(yùn)用于小型的單機(jī)邏輯控制系統(tǒng)。(2)中檔的PLC具有低檔PLC所有的功能。同時(shí),它還有較強(qiáng)的輸入輸出功能。運(yùn)用的范圍寬泛,可運(yùn)用于比較發(fā)雜的邏輯系統(tǒng)。(3)高檔的PLC具有中檔PLC的所有功能。同時(shí),它還增加了函數(shù)及特殊功能函數(shù)的運(yùn)算。高檔的PLC通信功能更加強(qiáng)大,能夠適用于大規(guī)模的過(guò)程控制,是實(shí)現(xiàn)工廠自動(dòng)化的基礎(chǔ)。1.4.2 結(jié)構(gòu)分類(lèi)結(jié)構(gòu)分類(lèi)又可以分為整體式、模塊式和疊裝式三種。(1)整體式是把CPU、電源、通信設(shè)備等部件集成為一體的PLC類(lèi)型。(2)模塊化的PLC各部件相對(duì)比較清晰,它的每個(gè)單元都是獨(dú)立的

21、模塊。(3)疊裝式PLC是綜合整體式和模塊式的特點(diǎn),綜合運(yùn)用構(gòu)成。一般來(lái)說(shuō),整體式是一些比較低廉小型的PLC。大中型多選用模塊式。1.4.3 I/O分類(lèi)I/O分類(lèi)又可以分為開(kāi)關(guān)量輸入(D/I)、開(kāi)關(guān)量輸出(DO)、模擬量輸入(AI)、模擬量輸出(AO)。即開(kāi)關(guān)量和模擬量?jī)煞N。(1)開(kāi)關(guān)量是指只有開(kāi)和關(guān)兩種狀態(tài),即在PLC中的0和1兩種狀態(tài)信號(hào)。一般有按鈕、光電開(kāi)關(guān)、數(shù)字開(kāi)關(guān)等。(2)模擬量是指持續(xù)變化的動(dòng)態(tài)量,一般是物理量,如溫度、電壓、壓力等變化量。1.5 PLC選型1.5.1 選型依據(jù)因PLC的系統(tǒng)控制功能為順序控制,所以主要依據(jù)系統(tǒng)設(shè)計(jì)的 I/O 點(diǎn)數(shù)來(lái)確定選則 PLC 型號(hào)及 I/O

22、模塊的型號(hào)。首先對(duì)PLC的選型我們要對(duì)輸入輸出點(diǎn)的預(yù)估,即I/O點(diǎn)。通常情況下,我們會(huì)對(duì)所預(yù)估的點(diǎn)數(shù)進(jìn)行擴(kuò)充留有足夠的余量。一般擴(kuò)充10%30%足夠?qū)嶋H需求。但當(dāng)我們真正和廠商訂貨時(shí),還需要根據(jù)廠商提供的型號(hào)進(jìn)行實(shí)際考慮。其次,是對(duì)存儲(chǔ)器容量的需求,存儲(chǔ)器的容量是PLC自身硬件所能提供存儲(chǔ)單元的大小。程序容量是存儲(chǔ)在存儲(chǔ)器中用戶(hù)程序的存儲(chǔ)單位大小。對(duì)實(shí)際運(yùn)用而言,程序容量必須要小于存儲(chǔ)器的容量。在我們程序設(shè)計(jì)階段,對(duì)于程序的容量我們無(wú)從得知,只有在程序調(diào)試之后才能有一個(gè)結(jié)果。為了有一個(gè)良好的預(yù)估,我們需要用存儲(chǔ)器的容量來(lái)代替程序容量去做一個(gè)預(yù)估。再次,PLC的時(shí)間響應(yīng)同樣是選型的重要依據(jù)。PL

23、C的響音速度能夠表示響應(yīng)時(shí)間的多少。一個(gè)完整的響應(yīng)包括,輸入濾波的時(shí)間,輸出的濾波時(shí)間和完整的掃描周期。PLC以順序掃描的方式從左到右自上而下的方式進(jìn)行。當(dāng)輸入信號(hào)小于掃描所用的時(shí)間的時(shí)候,對(duì)于所接收到信號(hào)無(wú)法做出一個(gè)準(zhǔn)確的判斷。因此,當(dāng)對(duì)于一個(gè)短時(shí)性的輸入信號(hào)來(lái)說(shuō),有必要選用速度的掃描PLC。當(dāng)只需要一些小型的PLC就能夠完成預(yù)定的目標(biāo)時(shí),一些價(jià)格比較低廉的編程器相對(duì)來(lái)說(shuō),是我們最優(yōu)的選擇。但如果用到多個(gè)PLC或者系統(tǒng)比較大的時(shí)候,選用功能性比較強(qiáng),編程方便的編程器。無(wú)論是生產(chǎn)還是實(shí)驗(yàn)室的調(diào)試,一個(gè)功能完善可靠穩(wěn)定可靠的PLC更能滿(mǎn)足我們的實(shí)際需求。但當(dāng)一些對(duì)系統(tǒng)要求非常高的時(shí)候,我們要決定

24、是否繼續(xù)選用PLC。2 壓入機(jī)的簡(jiǎn)述對(duì)于現(xiàn)代化工業(yè)而言,人力資源的短缺以及生產(chǎn)成本的增加。機(jī)械化的推進(jìn)是唯一可以達(dá)成提高勞動(dòng)利用率的目標(biāo),以及降低生產(chǎn)的原始成本。繼續(xù)用人工生產(chǎn)方式已越來(lái)越不能適應(yīng)當(dāng)前的實(shí)踐要求。而對(duì)于連續(xù)性的生產(chǎn)來(lái)講,機(jī)械可以做到完美的執(zhí)行。但對(duì)于現(xiàn)場(chǎng)生產(chǎn)而言,專(zhuān)用機(jī)床的使用時(shí)解決大批量生產(chǎn)自動(dòng)化最有效的方式。壓入機(jī)是種仿真機(jī)器人的動(dòng)作方式,它可以按照預(yù)先設(shè)定好的順序要求定位輸出產(chǎn)品進(jìn)行生產(chǎn)加工的自動(dòng)化設(shè)備。2.1 壓入機(jī)的主要運(yùn)用方面(1)沖壓注塑沖壓注塑是種高溫作業(yè),操作的危險(xiǎn)是不可避免的。為了合理的分配人工,合理的保護(hù)工人安全。對(duì)于這種高熱量,高危險(xiǎn)的作業(yè)需要去用壓入機(jī)

25、來(lái)進(jìn)行操作加工(2)定位裁切對(duì)于工件的裁切而言,壓刀的鋒利性和裁切的精準(zhǔn)度都是有待考量的事件。對(duì)于壓入機(jī)而言,它可以完美的完成定位運(yùn)輸。裝載在其上的壓刀可以伴隨氣缸的驅(qū)動(dòng)完成工件的裁切動(dòng)作,從而避免了人工裁切的不精準(zhǔn)以及大大降低了危險(xiǎn)性。目前來(lái)說(shuō),計(jì)算機(jī)開(kāi)發(fā)技術(shù)的不斷革新以及電子傳感器的使用。我們可以對(duì)壓入機(jī)的進(jìn)行完善。壓入機(jī)已經(jīng)成為工業(yè)生產(chǎn)中提高生產(chǎn)效率的主導(dǎo)因素。2.2 壓入機(jī)的結(jié)構(gòu)原理目前的壓入設(shè)備組主要應(yīng)用于皮帶傳送、已經(jīng)工件的定位和工件的壓入鉚合功能。能過(guò)滿(mǎn)足工業(yè)自動(dòng)化生產(chǎn)的需求自動(dòng)形式的壓入機(jī)運(yùn)用于各個(gè)方面,它能夠降低人的勞動(dòng)強(qiáng)度,改變?nèi)说牟僮鳝h(huán)境。一個(gè)人完整的壓入機(jī)主要由執(zhí)行機(jī)構(gòu)

26、、驅(qū)動(dòng)機(jī)構(gòu)、和控制系統(tǒng)組成。(1)執(zhí)行機(jī)構(gòu)執(zhí)行機(jī)構(gòu)主要是動(dòng)作的實(shí)現(xiàn)。一般采用的執(zhí)行機(jī)構(gòu)包括液壓氣缸、脈沖馬達(dá)、伺服電機(jī)等。機(jī)臺(tái)的骨架主要用來(lái)安裝機(jī)器的動(dòng)力源和各種執(zhí)行機(jī)構(gòu)等。(2)驅(qū)動(dòng)機(jī)構(gòu)一般我們常用的驅(qū)動(dòng)機(jī)構(gòu)主要是:液壓驅(qū)動(dòng)、氣壓驅(qū)動(dòng)、電氣驅(qū)動(dòng)以及機(jī)械驅(qū)動(dòng)四種。但在實(shí)際運(yùn)用中,電氣和氣壓的驅(qū)動(dòng)方式運(yùn)用的更為廣泛,在運(yùn)用比例中占的百分之九十以上。相對(duì)而言,我們運(yùn)用液壓和機(jī)械驅(qū)動(dòng)會(huì)比較少。(3)控制系統(tǒng)本篇設(shè)計(jì)是采用PLC來(lái)進(jìn)行動(dòng)作的實(shí)現(xiàn)。對(duì)于PLC而言,它的編程比較簡(jiǎn)單、邏輯比較清晰、便于修改,最為重要的一點(diǎn)是它的可靠性比較強(qiáng)。一般的控制要素包含了動(dòng)作的順序、動(dòng)作事件和機(jī)械的傳動(dòng)速度等。壓入機(jī)

27、是以點(diǎn)位的監(jiān)測(cè)進(jìn)行制動(dòng)。當(dāng)工件移動(dòng)到點(diǎn)位,會(huì)反饋信號(hào),進(jìn)而輸出信號(hào)動(dòng)作。2.3 壓入機(jī)應(yīng)用的意義機(jī)械能夠適應(yīng)各種各樣的環(huán)境,在這些惡劣的環(huán)境下,人沒(méi)法很好的完成加工要求。但機(jī)械可以不受任何影響的去工作。高強(qiáng)度單一的工作方式是對(duì)人身心的巨大摧殘,不符合人道主義精神。而用壓入機(jī)去取代人來(lái)工作,完全可以解放重復(fù)單一的工作給人帶來(lái)的精神壓力或造成不必要的人身傷害。機(jī)械生產(chǎn)自動(dòng)化技術(shù)把機(jī)械產(chǎn)業(yè)發(fā)展到了一個(gè)前所未有的高度。在機(jī)械行業(yè),自動(dòng)機(jī)械關(guān)乎一個(gè)國(guó)家世界競(jìng)爭(zhēng)力。在對(duì)于人才的儲(chǔ)備也同樣至關(guān)重要。加強(qiáng)工業(yè)創(chuàng)新能力。壓入機(jī)的運(yùn)用是符合時(shí)代的軌跡。3 基于PLC的壓入機(jī)控制系統(tǒng)設(shè)計(jì)3.1 基于PLC壓入系統(tǒng)的

28、概述對(duì)于PLC而言,一個(gè)完善的程序,可以很好的實(shí)現(xiàn)我們的設(shè)計(jì)要求。而對(duì)于本篇論文中的壓入機(jī)來(lái)說(shuō),通過(guò)安裝在機(jī)臺(tái)上的感應(yīng)裝置來(lái)感應(yīng)工件的位置,從而使輸入端得到一個(gè)輸入信號(hào),繼而編碼輸出信號(hào)完成機(jī)臺(tái)的運(yùn)轉(zhuǎn)。完成我們所需要的機(jī)臺(tái)的定位、移動(dòng)、壓入、搬運(yùn)等動(dòng)作。通過(guò)對(duì)程序的掃描輸出,完成我們所需要的機(jī)臺(tái)自行運(yùn)轉(zhuǎn),繼而達(dá)到自動(dòng)化的運(yùn)轉(zhuǎn)方式。3.2 基于PLC壓入系統(tǒng)的控制要求本篇畢業(yè)設(shè)計(jì)的壓入機(jī)系統(tǒng)示意圖如3-1所示。圖3-1 壓入機(jī)的工作示意圖上電,機(jī)臺(tái)進(jìn)入待機(jī)全天候等待狀態(tài),前段流道保持運(yùn)轉(zhuǎn)狀態(tài)。當(dāng)機(jī)臺(tái)上的來(lái)料感應(yīng)到工件移動(dòng)到位,機(jī)臺(tái)的第一個(gè)定位PING進(jìn)而進(jìn)行定位。當(dāng)?shù)谝粋€(gè)定位PING定位完成之后

29、,送料氣缸開(kāi)始動(dòng)作推送工件。當(dāng)機(jī)臺(tái)上的壓料感應(yīng)到工件拖運(yùn)到位后,送料氣缸停止保持狀態(tài),從而我們開(kāi)始工件的加工,即壓刀下壓。與此同時(shí),第二個(gè)定位PING開(kāi)始進(jìn)行定位。當(dāng)機(jī)器完成工件壓入后。即感應(yīng)器感應(yīng)到切刀下落到位,切刀會(huì)進(jìn)行置位。第一個(gè)定位PING會(huì)停止工作。當(dāng)?shù)谝粋€(gè)定位回復(fù)到位和第二個(gè)定位完成,出料拖運(yùn)動(dòng)作。出料拖運(yùn)進(jìn)而拖動(dòng)工件移動(dòng)到搬運(yùn)載具,繼而搬運(yùn)氣缸回復(fù)到位,完成整個(gè)壓入流程。到機(jī)臺(tái)再次感應(yīng)到工件時(shí),機(jī)臺(tái)循環(huán)運(yùn)轉(zhuǎn)。(1)輸入、輸出分配輸入、輸出分配如表3-1所示。表3-1 輸入/輸出分配表輸入輸出X0電源供電Y0來(lái)料定位出/回X1電源斷電Y1切料拖運(yùn)出X2來(lái)料到位感應(yīng)Y2切料拖運(yùn)回X3

30、定位PING到位感應(yīng)Y3切刀出X4切料定位PING回復(fù)到位Y4出料定位出/回X5切料拖運(yùn)到位感應(yīng)Y5切刀回X6切刀下落到位感應(yīng)Y6出料運(yùn)輸出X7切刀上升到位感應(yīng)Y7出料運(yùn)輸回X10出料定位PING到位感應(yīng)X11出料托運(yùn)到位感應(yīng)X12出料定位PING回復(fù)到位X13來(lái)料拖運(yùn)原點(diǎn)感應(yīng)X14切料拖運(yùn)原點(diǎn)感應(yīng)(2)控制動(dòng)作控制動(dòng)作如表3-2所示。表3-2 控制動(dòng)作表指令動(dòng)作X0閉合自動(dòng)X1閉合急停X2閉合Y0工作X3閉合T0計(jì)時(shí)1ST0閉合Y1工作X5閉合Y1停 T1計(jì)時(shí)1ST1閉合Y3工作X6閉合Y3停 Y4工作 Y0停 Y5工作X4閉合Y2工作X7閉合Y5停 T2計(jì)時(shí)1SX10T2閉合 Y6工作X1

31、1閉合Y6停 T3計(jì)時(shí)1SX12閉合Y7工作X13閉合Y2停X14閉合Y7停(3)梯形圖梯形圖如圖3-1,3-2,3-3所示。圖3-1梯形圖圖3-2梯形圖圖3-3梯形圖3.2.1 仿真GX-Works2GX-works是在Windows的基礎(chǔ)上運(yùn)行。主要針對(duì)三菱所生產(chǎn)的PLC進(jìn)行設(shè)計(jì)、維護(hù)以及調(diào)試的工作。對(duì)比GX-developer的功能性,GX-works2性能和操作更加完善。同時(shí),GX-works2支持在線模擬調(diào)試,相對(duì)而言適應(yīng)性更加廣泛。在GX-works2中,可以把工程分為兩個(gè)類(lèi)別,即簡(jiǎn)單工程和結(jié)構(gòu)化工程。它還使用了標(biāo)簽的編程,在標(biāo)簽的編程中創(chuàng)建的程序能夠通過(guò)自動(dòng)編譯分配軟元件,可以作

32、為實(shí)際的程序來(lái)使用。相對(duì)而言,GX-works2可以根據(jù)用戶(hù)的喜好來(lái)進(jìn)行畫(huà)面的排布,通過(guò)拖動(dòng)懸浮的窗口,可以對(duì)畫(huà)面的排列進(jìn)行自由修改。GX-works2,通過(guò)模擬的、功能可以進(jìn)行離線調(diào)試。在不連接可編程控制器CPU的情況下,能夠?qū)?chuàng)建的順序控制進(jìn)行調(diào)試來(lái)確定是否可以正常的動(dòng)作。GX-works2具備GX-developer的相同工作性能。主要是程序的創(chuàng)建、參數(shù)的設(shè)置、CPU寫(xiě)入/讀取功能、監(jiān)視/調(diào)試以及自我診斷。3.2.2 GX-works2模擬運(yùn)行(1)PLC的寫(xiě)入。(2)PLC打到RUN 接通X000。當(dāng)系統(tǒng)上電的時(shí)候M8002的觸點(diǎn)可以把M0M5寄存器的狀態(tài)置為最初狀態(tài)。X000接通為主

33、程序執(zhí)行的前提條件。(3)X000接通的前提下接通X002。(4)X002接通,M1自鎖,狀態(tài)寄存器M1置位Y000動(dòng)作。(5)X000接通前提下接通X003。(6)X003接通,T0計(jì)時(shí)10SY001動(dòng)作。(7)X000接通前提下X005接通(8)X005接通,Y1停止動(dòng)作、T1計(jì)時(shí)10S Y3動(dòng)作。(9)X000接通前提下X006接通。(10)X006接通,M2自鎖,Y3 Y0停止動(dòng)作,Y4 Y5動(dòng)作。(11)X000接通前提下X004接通。(12)X004接通,M3自鎖,Y002動(dòng)作。(13)X000接通前提下X007 X010接通。(14)X007 X010接通,X007接通T2計(jì)時(shí)1

34、0S 后 M4自鎖Y006動(dòng)作。(15)在X000接通前提下接通X012。(16)X012接通,M5自鎖,Y007動(dòng)作。(17)當(dāng)X013 X014接通時(shí),Y002 Y007停止動(dòng)作。結(jié)束語(yǔ):對(duì)于自己的所編寫(xiě)的壓入機(jī),是運(yùn)用于生產(chǎn)實(shí)踐中的機(jī)器。而本篇論文研究的壓入機(jī)系統(tǒng)是針對(duì)于它的自動(dòng)化程序段。其發(fā)生故障和故障排查不在本篇論文的考慮方位之內(nèi)。在搜集PLC的資料時(shí),自己對(duì)它理解也逐漸加深。之前在書(shū)本上學(xué)的東西。只是單純的知道他的一些功能。當(dāng)自己真正去運(yùn)用的時(shí)候,反而不知道該如何下手。從PLC發(fā)展到現(xiàn)在,它的運(yùn)用非常寬泛。而且,它的品種比較豐富。不同的設(shè)計(jì)要求,要選用的PLC型號(hào)也不同。選用合適的

35、PLC可以避免不必要的資源浪費(fèi)。在程序的編寫(xiě)上,自己還會(huì)犯一些低級(jí)錯(cuò)誤,不過(guò)每次自己都會(huì)去努力找出自己的不足之處加以修改。在資料的整理過(guò)程里,自己對(duì)PLC目前的發(fā)展?fàn)顩r有了更深的了解。學(xué)習(xí)到了很多的新知識(shí),讓自己活的充實(shí)。自己開(kāi)始喜歡上這種生活,充實(shí)而又有趣。在以后的生活工作中,努力做一名對(duì)社會(huì)有用的人。致 謝從最初的畢業(yè)選題提交開(kāi)題報(bào)告和任務(wù)書(shū),以及論文的編寫(xiě)過(guò)程,到最后完成論文的編寫(xiě),每一步走的都顯得有些磕磕絆絆,但在老師的孜孜教導(dǎo)下和與同學(xué)的熱切討論中,才有了頭緒去完成。書(shū)本上的東西固然重要但沒(méi)有實(shí)戰(zhàn)經(jīng)驗(yàn)還是沒(méi)有足夠的信心支撐自己去完成整篇論文。因此次研究課題所涉及的知識(shí)面比較寬泛且需要

36、一定的創(chuàng)新能力和實(shí)踐經(jīng)驗(yàn),我在開(kāi)始面對(duì)這個(gè)課題時(shí)一籌莫展,甚至搜集資料都無(wú)從下手。然而,人貴在堅(jiān)持,我沒(méi)有放棄,對(duì)于不懂的問(wèn)題及時(shí)向?qū)煂で髱椭蛳蚱渌瑢W(xué)討教,努力通過(guò)各種渠道獲取自己所需的知識(shí)。在不斷的學(xué)習(xí)中,我取得了很大進(jìn)步,不但成功完成畢業(yè)論文,而且實(shí)現(xiàn)了自我提升和完善。時(shí)光飛逝,三年的時(shí)間轉(zhuǎn)瞬即逝。大學(xué)的生活即將結(jié)束。三年的學(xué)習(xí)生涯里。老師們用他們豐富的專(zhuān)業(yè)知識(shí)以及無(wú)私的奉獻(xiàn)精神,給我們打下了堅(jiān)實(shí)的專(zhuān)業(yè)基礎(chǔ)。同時(shí),教會(huì)了我們很多做人的道理。在此,我要向我的母校,我的導(dǎo)師,我的同窗表達(dá)最熱烈的感謝,因?yàn)橛兴麄兊膸椭?,我才有信心走出大學(xué)這座象牙塔,面向未知的社會(huì)。最后,在這里,衷心地感謝

37、各位老師能在百忙之中評(píng)閱論文和參加答辯的各位老師!愿你們工作順利、萬(wàn)事稱(chēng)心。參考文獻(xiàn)1 王中杰,于章雄,柴天佑.智能控制綜述J.基礎(chǔ)自動(dòng)化,20062 趙松年.機(jī)電一體化數(shù)控系統(tǒng)設(shè)計(jì)M. 機(jī)械工業(yè)出版社,19983 李運(yùn)華.機(jī)電控制M.北京航空航天大學(xué)出版社,20034 鄧星鐘.機(jī)電傳動(dòng)控制M.華中科技大學(xué)出版社.20015 李靜.機(jī)電一體化技術(shù)基礎(chǔ)與產(chǎn)品設(shè)計(jì)M.機(jī)械工業(yè)出版社,19966 楊長(zhǎng)能,張興毅.可編程控制器基礎(chǔ)及應(yīng)用M.重慶大學(xué)出版社,19997 廖常初.PLC編程及應(yīng)用(第3版)M.機(jī)械工業(yè)出版社,20118 高欽和,黃焱.PLC應(yīng)用開(kāi)發(fā)案例精選(第二版)M.人民郵電出版社,20

38、089 陸鑫盛,周洪.氣動(dòng)自動(dòng)化系統(tǒng)的優(yōu)化設(shè)計(jì)M.上??茖W(xué)技術(shù)文獻(xiàn)出版社,2000附錄:語(yǔ)句指令表0 LD M80021 ZRST M0 M56 LD X0007 OR M08 ANI X0019 OUT M010 LD M011 MPS12 LD X00213 OR M114 ANB15 OUT M116 MRD17 AND x00318 OUT TO k1021 MRD22 AND X00523 OUT T1 K1026 MRD27 LD X00628 OR M229 ANB30 OUT M231 MRD32 LD X00433 OR M334 ANB35 OUT M336 MRD37 A

39、ND X00738 OUT T2 K1041 MRD42 LD X01043 AND T244 OR M445 ANB46 OUT M447MRD48 AND X01149 OUT T3 K1052 MPP53 LD X01254 OR M555 ANB56 OUT M557 LD M158 ANI M259 OUT Y00060 LD T061 ANI X00562 OUT Y00163 LD M364 ANI X01365 OUT Y00266 LD T 167 ANI M268 OUT Y00369 LD M270 MPS71 ANI T3 72 OUT Y00473 MPP74 ANI

40、 X00775 OUT Y00576 LD M477 ANI X01178 OUT Y00679 LD M580 ANI X01481 OUT Y00782 END附錄資料:不需要的可以自行刪除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ǔ)句中涉及單詞較少,故在詞法分析階段忽略了單詞輸入錯(cuò)誤的檢查,

41、而將編譯程序的重點(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 12#define E

42、O 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 ”中讀取一行到輸入緩沖區(qū),而詞法分析過(guò)程

43、中每次讀取一個(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í)讓它與變量名表中的變量進(jìn)行匹配( 變量匹配

44、函數(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ǔ)法分析處理過(guò)程進(jìn)行控制,

45、使四元式翻譯的工作有條不紊的進(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 SL S if e

46、 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 if e S el

47、se 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) = 所以可以用方法解決以上沖突,最后我們得到的分析表如下:A

48、CTIONGOTO 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, -1, -1, -1,

49、 -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, -1, -1, -

50、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, -1, -1,

51、-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 (E)E i (過(guò)

52、程略)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, -1, -1,

53、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()!&|#BAO0S1S4S513781S2R1R1R1R12S33R2R2R2R24S1S4S511785S1S4S5678

54、6R4S9S10R47S1S4S514788S1S4S515789R5R5R510R7R7R711S12S9S1012R3R3R3R313S9S10ACC14R6S9S10R615R8S9S10R8static 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, -1,102,10

55、2,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, -1, -1,

56、-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,108, -1, -

57、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)的翻譯工作。現(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 + 3 ) * 6 #

58、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,即按第(4)個(gè)產(chǎn)生

59、式 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)步的狀態(tài)。三中間代碼生成

60、器設(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)先級(jí)都是相同的,而且

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論