基于單片機(jī)的微型PLC的研究畢業(yè)設(shè)計(jì)_第1頁
基于單片機(jī)的微型PLC的研究畢業(yè)設(shè)計(jì)_第2頁
基于單片機(jī)的微型PLC的研究畢業(yè)設(shè)計(jì)_第3頁
基于單片機(jī)的微型PLC的研究畢業(yè)設(shè)計(jì)_第4頁
基于單片機(jī)的微型PLC的研究畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)摘要PAGEPAGEII本科畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的微型PLC的研究攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)摘要摘要可編程邏輯控制器(PLC),是一種為工業(yè)控制特別設(shè)計(jì)的專用計(jì)算機(jī)。因?yàn)樗子谠O(shè)計(jì)和編程,運(yùn)行可預(yù)估,甚至在惡劣的環(huán)境下還可以保持正常的工作,所以廣泛運(yùn)用于工業(yè)控制。本課題在分析主流PLC的體系結(jié)構(gòu)、工作原理的基礎(chǔ)上,設(shè)計(jì)了一個(gè)基于單片機(jī)的微型PLC,目的是在小型控制系統(tǒng)中能夠代替小型PLC,實(shí)現(xiàn)更加靈活的應(yīng)用方案并在保證可靠性的基礎(chǔ)上大大降低成本。本課題設(shè)計(jì)的系統(tǒng)在硬件設(shè)計(jì)上參照PLC的體系結(jié)構(gòu),在單片機(jī)的基礎(chǔ)上擴(kuò)展了豐富的外圍設(shè)備,實(shí)現(xiàn)了PLC的大部分功能模塊,包括中央處理器(CPU)、電源模塊、振蕩電路、復(fù)位電路、數(shù)字量I/O、串口通信等,并設(shè)計(jì)了專門的輸入輸出點(diǎn)處理電路,使系統(tǒng)具有良好的抗干擾特性和驅(qū)動(dòng)能力。軟件設(shè)計(jì)上分為實(shí)驗(yàn)部分和實(shí)際運(yùn)用部分。實(shí)驗(yàn)部分是用C語言與匯編語言編寫的,測試了PLC控制板的可行性。實(shí)際運(yùn)用部分為了使編程簡單通過GXDeveloper編程軟件編寫梯形圖,再通過PMW-HEX轉(zhuǎn)換軟件將其轉(zhuǎn)換為單片機(jī)語言,再通過STC_ISP軟件將其下載到基于STC90C52單片機(jī)的微型PLC控制板上?;趩纹瑱C(jī)的微型PLC的設(shè)計(jì),提供了更靈活的軟、硬件方案,并大大降低了控制系統(tǒng)的成本,具有較高的實(shí)用價(jià)值。關(guān)鍵詞微型PLC,單片機(jī),GXDeveloper,PMW-HEX,STC90C52攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)ABSTRACTABSTRACTProgrammablelogiccontroller(PLC),isaspecial-purposecomputerforindustrialcontroldesign.Becauseitiseasytodesignandprogramming,runningcanbeestimated,evenintheworstofcircumstancescanalsomaintainnormalworking,sowidelyusedinindustrialcontrol.AnalysisofthisissueinthemainstreamofPLCsystemstructure,workingprincipleandonthebasisofcommoninstructions,designbasedonsingle-chipmicro-PLC,isaimedatsmalltoreplacesmallPLCinthecontrolsystem,formoreflexibleapplicationonthebasisoftheprogrammeandinensuringthereliabilityofsignificantlyreducingcosts.ThistopicsdesignofsysteminhardwaredesignShangreferencePLCofsystemstructure,insingletabletsmachineofFoundationShangextendedhasrichofperimeterdevice,implementationhasPLCofmostfunctionmodule,includingcentralprocessingunit(CPU),andpowermodule,andoscillationcircuit,andresetcircuit,anddigitalvolumeI/O,andserialcommunications,,anddesignhasspecificallyofenteredoutputpointsprocessingcircuit,makessystemhasgoodofanti-interferencecharacteristicsanddriveability.Micro-PLCbasedonsingle-chipdesign,providingamoreflexiblesoftwareandhardwaresolutions,anddramaticallyreducethecostofcontrolsystem,hasahighpracticalvalue.Experimentalpartandthepracticalapplicationofsoftwaredesignisdividedintosections.Experimentalsectioniswrittenincandassembler,testthefeasibilityofthePLCcontrolpanel.PracticalapplicationofparttomakeprogrammingsimplerbyGXDevelopersoftwarewritingladder,thenPWM-HEXlanguageconversionsoftwaretoconvertittoasingle-chip,thenthroughtheSTC_ISPsoftwaretodownloadittoaSTC90C52basedonasingle-chipmicro-PLCcontrolpanels.Keywordsmicro-PLC,singlechip,GXDeveloper,PWM-HEX,STC89C52攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)目錄PAGE45目錄TOC\o"1-3"\h\u30899摘要 I30541ABSTRACT II174231緒論 3127441.1課題的背景 390991.2課題研究的意義 3145081.3課題研究的內(nèi)容 4103651.4本章小結(jié) 4164112系統(tǒng)硬件設(shè)計(jì) 597302.1硬件設(shè)計(jì)總述 521052.2單片機(jī)最小系統(tǒng) 659472.2.1振蕩電路 7135522.2.2復(fù)位電路 7308672.3電源設(shè)計(jì) 883422.4輸入電路 9213362.5輸出電路 11269112.6串口通信電路 137733實(shí)驗(yàn)軟件設(shè)計(jì) 15131823.1系統(tǒng)程序結(jié)構(gòu) 15284183.2系統(tǒng)主程序 16162203.3初始化程序 17185763.4輸入程序 18300413.5輸出程序 20123553.6定時(shí)器程序 21113683.6.1定時(shí)器的定義 2280013.6.2定時(shí)中斷服務(wù)程序 2218053.6.3定時(shí)器邏輯指令程序 26276643.6.4定時(shí)器初始化 2939723.7計(jì)數(shù)程序 29303683.7.1計(jì)數(shù)器的定義 29128223.7.2計(jì)數(shù)器程序的實(shí)現(xiàn) 30158143.7.3計(jì)數(shù)器初始化 32284593.8例子實(shí)驗(yàn) 32290714實(shí)際運(yùn)用軟件 35109694.1實(shí)際運(yùn)用軟件的總述 35289374.2GXDeveloper軟件 35281604.3PMW-HEX轉(zhuǎn)換軟件 37223894.4STC_ISP通信軟件的下載 39197654.5實(shí)例 407176總結(jié) 413078參考文獻(xiàn) 428348附錄A:系統(tǒng)原理圖 4312034附錄B:實(shí)物圖 442063致謝 45攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)1緒論1緒論1.1課題的背景可編程邏輯控制器(PLC),又稱為可編程控制器(PC),是一種為工業(yè)控制特別設(shè)計(jì)的專用計(jì)算機(jī)。因?yàn)樗子谠O(shè)置和編程,運(yùn)行可預(yù)估,甚至在惡劣的生產(chǎn)環(huán)境下還可以保持正常的工作,所以廣泛應(yīng)用在各種機(jī)械設(shè)備和生產(chǎn)過程的自動(dòng)控制系統(tǒng)中,成為一種最重要、最普及、應(yīng)用場合最多的的工業(yè)控制裝置,成為工業(yè)自動(dòng)化領(lǐng)域強(qiáng)有力的工具,并與機(jī)器人、CAD并稱為工業(yè)生產(chǎn)自動(dòng)化的三大支柱。在所有的PLC種類中,微型PLC是占有市場份額最大的一種。微型PLC是指I/O點(diǎn)數(shù)少于64點(diǎn)的PLC,這一類PLC主要應(yīng)用于單臺(tái)設(shè)備的控制,在紡織機(jī)器、數(shù)控機(jī)床、小型包裝機(jī)械等設(shè)備上運(yùn)用廣泛。微型PLC的應(yīng)用比例占到所有PLC產(chǎn)品的40%以上。我國PLC市場絕大部分被國外的產(chǎn)品所占領(lǐng),主要是歐美、日韓等發(fā)達(dá)國家,國產(chǎn)占有率很低,國內(nèi)PLC的制造廠家基本上以合資企業(yè)為主,擁有自主知識(shí)產(chǎn)權(quán)的國內(nèi)廠家很少。這主要是由于PLC的核心技術(shù)被發(fā)達(dá)國家壟斷,尤其是CPU模塊,而CPU模塊又是PLC工作的核心部件。近幾年來,隨著微控制器技術(shù)的發(fā)展,高性能單片機(jī)層出不窮,功能日益強(qiáng)大,由于產(chǎn)量的大幅增加成本也不斷降低,使我們可以考慮使用現(xiàn)成的高性能的單片機(jī)作為CPU模塊來研發(fā)具有自主知識(shí)產(chǎn)權(quán)的PLC。由于微型PLC的研發(fā)相對(duì)比較容易且應(yīng)用最為廣泛,因此我們可以考慮從微型PLC入手,設(shè)計(jì)一個(gè)基于單片機(jī)的微型PLC,實(shí)現(xiàn)普通PLC的精簡控制功能。1.2課題研究的意義設(shè)計(jì)基于高性能單片機(jī)的微型PLC,實(shí)現(xiàn)普通PLC的主要控制功能,具有以下幾方面的意義:EQ\o\ac(○,1)實(shí)用價(jià)值在工業(yè)控制中,需要小型控制系統(tǒng)的的場合大量存在的。如電梯的升降系統(tǒng)、小型疲勞試驗(yàn)機(jī)的控制系統(tǒng)等等。這些場合的共有特點(diǎn)是需要控制的點(diǎn)數(shù)不多,一般輸入輸出的總和只有20到40點(diǎn),而且基本上是以邏輯控制為主。EQ\o\ac(○,2)經(jīng)濟(jì)價(jià)值如上所述的小型控制系統(tǒng)的背景下,系統(tǒng)的成本控制往往占有有重要的地位,對(duì)于系統(tǒng)不但要求實(shí)現(xiàn)控制目標(biāo),往往也要節(jié)約成本。目前市場上各大PLC廠商都提供微型PLC用于小型控制系統(tǒng),但他們價(jià)格普遍較高,最精簡的也在千元以上。而以單片機(jī)為核心的通用控制器,只需幾百的成本,如量產(chǎn)成本更低。因此基于單片的微型PLC的研究具有很高的經(jīng)濟(jì)價(jià)值。EQ\o\ac(○,3)社會(huì)價(jià)值我國雖然PLC市場龐大,但是90%以上的市場都是被外國品牌占據(jù),其中大型PLC市場被歐美占據(jù),小型PLC市場被日系品牌占據(jù),國內(nèi)廠商的市場份額幾乎沒有。因此大力發(fā)展以單片機(jī)為CPU的微型PLC可以打開國外廠商和合資企業(yè)的壟斷局面,對(duì)于推動(dòng)國內(nèi)PLC市場具有深遠(yuǎn)意義?;谏鲜龇治觯芯炕趩纹奈⑿蚉LC具有非常的現(xiàn)實(shí)意義。本文所研究的課題就是在這方面做一嘗試,希望用單片機(jī)為CPU來做微型PLC。1.3課題研究的內(nèi)容本課題的主要任務(wù)是通過研究PLC系統(tǒng)的工作原理以及PLC編程語言的特點(diǎn)等,設(shè)計(jì)一個(gè)基于單片機(jī)的微型PLC,能夠?qū)崿F(xiàn)普通PLC的大多數(shù)功能,滿足工業(yè)控制要求。系統(tǒng)在硬件設(shè)計(jì)上參照PLC的體系結(jié)構(gòu),在單片機(jī)的基礎(chǔ)上擴(kuò)展了豐富的外圍設(shè)備,實(shí)現(xiàn)了PLC的大部分功能模塊,包括中央處理器(CPU)、電源模塊、振蕩電路、復(fù)位電路、數(shù)字量I/O、串口通信等,并設(shè)計(jì)了專門的輸入輸出點(diǎn)處理電路,使系統(tǒng)具有良好的抗干擾特性和驅(qū)動(dòng)能力。軟件設(shè)計(jì)上分為實(shí)驗(yàn)部分和實(shí)際運(yùn)用部分。實(shí)驗(yàn)部分是用C語言與匯編語言編寫的,測試了PLC控制板的可行性。實(shí)際運(yùn)用部分為了使編程簡單通過GXDeveloper編程軟件編寫梯形圖,再通過PMW-HEX轉(zhuǎn)換軟件將其轉(zhuǎn)換為單片機(jī)語言,再通過STC_ISP軟件將其下載到基于STC90C52單片機(jī)的微型PLC控制板上。1.4本章小結(jié)本章首先介紹了本課題提出的背景,然后從三個(gè)方面分析了本課題研究的意義,最后指出了課題研究的內(nèi)容。攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)2系統(tǒng)硬件設(shè)計(jì)2系統(tǒng)硬件設(shè)計(jì)2.1硬件設(shè)計(jì)總述硬件設(shè)計(jì)主要是設(shè)計(jì)外圍電路,特別是設(shè)計(jì)I/O接口。系統(tǒng)硬件設(shè)計(jì)如圖2.1所示。本次設(shè)計(jì)的硬件部分這要有五個(gè)部分:輸入電路、輸出電路、振蕩和復(fù)位電路、電源轉(zhuǎn)換電路、串口通信電路。圖2.1硬件設(shè)計(jì)圖本次設(shè)計(jì)用STC90C52單片機(jī)設(shè)計(jì)了一個(gè)16輸入14輸出的簡單PLC。該P(yáng)LC含有10個(gè)定時(shí)器和10個(gè)計(jì)數(shù)器,每個(gè)定時(shí)器的最長定時(shí)時(shí)間為3276.75秒,每個(gè)計(jì)數(shù)器的最大計(jì)數(shù)值為65535。該P(yáng)LC的輸入方式為直流開關(guān)量,輸入電壓為24V。輸出采用繼電器輸出方式,采用JT繼電器JT32F-024-HS,該繼電器是小型、小功率繼電器,觸點(diǎn)形式是常開型,額定電壓為DC24V,直流電阻為1Ω,吸合電流為2A,釋放電流也為2A,線圈功率為4W,額定工作頻率為5Hz。為了提高系統(tǒng)的抗干擾能力,輸入輸出電路中都使用了光電耦合器。光電耦合器采用FL817C。該P(yáng)LC具有與計(jì)算通訊能力,可以在計(jì)算機(jī)上下載程序。輸入端口X0-X7,X17-X10分別于單片機(jī)的P0.0-P0.7,P2.0-P2.7通過輸入電路相連接。輸出端口Y0-Y7,Y10-Y15分別于單片機(jī)的P1.0-P1.7,P3.2-P3.7通過輸出電路相連接。+24V是輸入電源,電源與輸入端口間可以接開關(guān)等開關(guān)量輸入裝置。輸出端口和yCOM端之間接用戶的控制電路,可以是簡單的LED燈,也可以是直流電機(jī)、交流電機(jī)。用戶控制電路中的電源可以是直流也可以是交流。根據(jù)輸入端口的狀態(tài),單片機(jī)運(yùn)行梯形圖程序(已轉(zhuǎn)換成單片機(jī)可執(zhí)行的語言),控制輸出端口的狀態(tài)。對(duì)于用戶而言,只需知道30個(gè)外接的端口,至于輸入輸出電路以及單片機(jī)與這些電路的連接,用戶無需了解。這樣便實(shí)現(xiàn)了一個(gè)用單片機(jī)制作的簡單PLC。2.2單片機(jī)最小系統(tǒng)PLC控制系統(tǒng)的主要功能是實(shí)現(xiàn)各種邏輯和過程控制,因此硬件對(duì)輸入輸出接口有相當(dāng)高的要求。CPU是PLC的核心,起神經(jīng)中樞的作用,CPU的運(yùn)行速度和內(nèi)存容量是PLC的重要參數(shù),決定著PLC的工作速度、I/O數(shù)量及軟件容量等,因此也限制著控制規(guī)模。用單片機(jī)實(shí)現(xiàn)PLC,其CPU實(shí)際上就是單片機(jī),因此選用合適的單片機(jī)對(duì)于最終實(shí)現(xiàn)的PLC的功能影響很大。本次設(shè)計(jì)使用的單片機(jī)是STC90C52。STC90C52是WINBOND公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8KB的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大STC90C52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場合。STC90C52單片機(jī)為制作PLC應(yīng)用提供了靈活且低成本的方案。其最小系統(tǒng)設(shè)計(jì)如圖2.2所示。圖2.2單片機(jī)最小系統(tǒng)2.2.1振蕩電路單片機(jī)系統(tǒng)里都有晶振,結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時(shí)鐘頻率,單片機(jī)晶振提供的時(shí)鐘頻率越高,那么單片機(jī)運(yùn)行速度就越快,單片機(jī)的一切指令的執(zhí)行都需要單片機(jī)晶振提供的時(shí)鐘頻率。圖2.3振蕩電路圖單片機(jī)晶振的作用是為系統(tǒng)提供基本的時(shí)鐘信號(hào)。通常一個(gè)系統(tǒng)共用一個(gè)晶振,便于各部分保持同步。本設(shè)計(jì)使用12MHz的晶體振蕩器作為振蕩源,由于單片機(jī)內(nèi)部帶有振蕩電路,所以外部只要連接一個(gè)晶振和兩個(gè)電容即可,電容容量一般在15pF至50pF之間。2.2.2復(fù)位電路復(fù)位操作是單片機(jī)的初始化,其作用是時(shí)CPU和系統(tǒng)其他部件都處于一個(gè)確定的初始狀態(tài),系統(tǒng)從這個(gè)狀態(tài)開始工作。單片機(jī)有復(fù)位信號(hào)引腳RST,用于從外界引入復(fù)位信號(hào)。單片機(jī)的復(fù)位電路比較簡單,如圖2.4所示,RESET接單片機(jī)RST引腳。在單片機(jī)調(diào)試或程序運(yùn)行時(shí),若遇到死機(jī)、死循環(huán)或程序“跑飛”等情況,按下復(fù)位鍵S1,單片機(jī)就將重新啟動(dòng)。完成復(fù)位操作共需24個(gè)狀態(tài)周期。復(fù)位結(jié)束后,單片機(jī)從地址0000H開始執(zhí)行程序。圖2.4復(fù)位電路圖2.4中,RESET接單片機(jī)RST引腳。按鍵S1按下后,復(fù)位端接高電平,實(shí)現(xiàn)電路復(fù)位。單片機(jī)在RST端加一個(gè)正脈沖即可實(shí)現(xiàn)復(fù)位,在系統(tǒng)上電的瞬間,RST與電源電壓同電位,隨著電容的電壓逐漸上升,RST電位下降,于是在RST形成一個(gè)正脈沖。2.3電源設(shè)計(jì)PLC等系統(tǒng)工作時(shí),需要三種電源:一是輸入信號(hào)電源;二是內(nèi)部元器件工作電源;三是負(fù)載工作電源。電源模塊在整個(gè)系統(tǒng)中起十分重要的作用,如果系統(tǒng)沒有一個(gè)良好的、可靠的電源系統(tǒng),它是無法正常工作的,因此電源的設(shè)計(jì)和制造十分重要。負(fù)載工作電源是用來驅(qū)動(dòng)PLC輸出設(shè)備(負(fù)載)和提供輸入信號(hào)的,又稱用戶電源。用戶電源的容量由輸出設(shè)備和PLC的輸入電路決定。由于本系統(tǒng)中的I/O電路都有濾波、隔離功能,所以外部電源對(duì)PLC的性能影響不大。用戶電源不屬于本次設(shè)計(jì)中的內(nèi)容。為了減小設(shè)計(jì)的復(fù)雜性,電源模塊為系統(tǒng)運(yùn)行提供內(nèi)部工作電源,同時(shí)為輸入信號(hào)提供電源。本設(shè)計(jì)中的電源設(shè)計(jì)采用獨(dú)立的DC24V—DC5V電壓轉(zhuǎn)換模塊。輸入信號(hào)是開關(guān)量輸入,輸入電壓是24V,電源模塊將輸入信號(hào)的24V電壓轉(zhuǎn)換成供單片機(jī)工作的5V電壓。為了減小電源的數(shù)量,在選用繼電器時(shí)選用了24V的直流繼電器。電源模塊的電路如圖2.5所示。DC24V—DC5V電壓轉(zhuǎn)換模塊LM2576S。LM系列是獨(dú)立的直流/直流轉(zhuǎn)換器,開關(guān)噪聲小,組建電源系統(tǒng)非常簡單方便。圖2.5系統(tǒng)電源2.4輸入電路PLC為了提高系統(tǒng)的抗干擾能力,在輸入電路部分有各種抗干擾設(shè)計(jì)。本設(shè)計(jì)的輸入電路也仿照PLC,在信號(hào)輸入到單片機(jī)前進(jìn)行了濾波處理,采用光電耦合將輸入電源與系統(tǒng)電源隔開。圖2.6是輸入電路邏輯意義上的示意圖,圖中的IN是一個(gè)子電路圖,里面包含16個(gè)相同的輸入電路,實(shí)際的電路如2.7所示,圖2.7中只畫出了一路輸入,其他輸入電路與之相同。圖2.6中LI1-LI16是輸入狀態(tài)指示燈。兩組I0+-I7+是16個(gè)輸入端,當(dāng)開關(guān)按鈕按鍵按下,相應(yīng)的LED就會(huì)亮。兩組I0-I7分別接單片機(jī)的P0.0-P0.7和P2.0-P2.7。圖2.6輸入電路總圖本設(shè)計(jì)的輸入為開關(guān)量輸入。輸入電路接收工業(yè)現(xiàn)場輸入設(shè)備的開關(guān)信號(hào),將信號(hào)轉(zhuǎn)換為PLC內(nèi)部單片機(jī)可接受的低電壓信號(hào),實(shí)現(xiàn)PLC內(nèi)外信號(hào)的電氣隔離。本設(shè)計(jì)的輸入信號(hào)選用直流輸入方式,該方式延時(shí)時(shí)間較短,還可以直接與光電開關(guān)等電子輸入設(shè)備連接。開關(guān)量輸入模塊的輸入信號(hào)電壓等級(jí)選擇24V,適用于傳輸距離較近的場合。為了提高系統(tǒng)的可靠性,需要考慮輸入門檻電流的高低,門檻電流越高,抗干擾能力越強(qiáng),傳輸距離也越遠(yuǎn),文中設(shè)計(jì)保證信號(hào)為真時(shí)電流在5到7mA??紤]到控制電路的抗干擾性能,減少設(shè)備之間的干擾,開關(guān)量輸入電路的隔離采用光電耦合器。圖2.7輸入電路輸入信號(hào)與單片機(jī)之間用光電耦合器FL817C隔開。R2是限流電阻,同時(shí)與電容C1構(gòu)成濾波電路,去處高頻干擾。估算輸入電流約為:(24-2)/4.7=4.7mA,光電耦合器的一次側(cè)驅(qū)動(dòng)電流一般在4.5mA以上,滿足設(shè)計(jì)要求。R3和C1構(gòu)成延時(shí)電路,一次回路中輸入信號(hào)有延時(shí)。IN0連接單片機(jī)的輸入端口P0.0。在輸入端X0與電源端接入用戶輸入電路,用戶電路中都會(huì)設(shè)置開關(guān),如果開關(guān)閉合,光電耦合器的發(fā)光二極管所在的回路導(dǎo)通,光電耦合器的發(fā)光二極管發(fā)光,光電耦合器的三極管導(dǎo)通,IN0為高電平,LI1發(fā)光,表示該輸入點(diǎn)已經(jīng)導(dǎo)通。2.5輸出電路輸出電路用于將單片機(jī)內(nèi)部的低電壓信號(hào)轉(zhuǎn)換成驅(qū)動(dòng)外部輸出設(shè)備的開關(guān)信號(hào),并且實(shí)現(xiàn)PLC內(nèi)外信號(hào)的電氣隔離。本設(shè)計(jì)的輸出電路為繼電器輸出方式,這樣可以驅(qū)動(dòng)交流負(fù)載,也可以驅(qū)動(dòng)直流負(fù)載,使用的電壓大小范圍較寬,同時(shí)承受順勢(shì)過電壓和過電流的能力較強(qiáng)。與晶閘管輸出和晶體管輸出相比,唯一的缺點(diǎn)是觸電元件動(dòng)作較慢,壽命較短,不適用于頻繁通斷的場合。輸出電路的輸出電流驅(qū)動(dòng)能力必須大于PLC外接設(shè)備的額定電流,因此需要根據(jù)輸出設(shè)備的電流大小來確定輸出電路的輸出電流。圖2.8輸出電路總圖圖2.8是輸出電路邏輯意義上的示意圖,圖中的OUT是一個(gè)子電路圖,里面包含14個(gè)相同的輸出電路,實(shí)際的電路如2.9所示,圖2.9中只畫出了一路輸出,其他輸出電路與之相同。圖2.8中OUT0-OUT7、OUT8-OUT15接單片機(jī)的P1.0-P1.7、P3.2-P3.7。LQ1-LQ14是輸出狀態(tài)指示燈。Y0-Y7和Y10-Y15是14個(gè)輸出端,用戶電路接在輸出端和COMX(X為0-5)之間。圖2.9輸出電路圖2.9中5V電源為PLC的內(nèi)部電源,24V電源為開關(guān)量輸出電源,兩個(gè)電源是隔離的。圖2.9中,Y0是PLC的一個(gè)輸出端。LQ1用于指示該輸出點(diǎn)的開關(guān)狀態(tài)。輸出信號(hào)與單片機(jī)之間也用光電耦合器FL817C隔開。R1是限流電阻。D2用以防止繼電器開斷時(shí)的反向電流。D3是一個(gè)齊納穩(wěn)壓管,是Q1基極和發(fā)射極之間電壓穩(wěn)定。OUT0連接單片機(jī)的輸出端口P1.0。采用JT繼電器JT32F-024-HS,該繼電器是小型、小功率繼電器,觸點(diǎn)形式是常開型,額定電壓為DC24V,直流電阻為1Ω,吸合電流為2A,釋放電流也為2A,線圈功率為4W,額定工作頻率為5Hz。當(dāng)OUT0接口端輸出低電平時(shí),經(jīng)光電耦合器使驅(qū)動(dòng)晶體管Q1導(dǎo)通,繼電器K1得電吸合,同時(shí)LQ1發(fā)光。當(dāng)OUT0接口輸出高電平,經(jīng)光電耦合器使Q1截止,K1釋放,LQ1熄滅。2.6串口通信電路本設(shè)計(jì)上位機(jī)程序下載時(shí)采用RS-232C通信接口技術(shù),RS-232C是常用的點(diǎn)對(duì)點(diǎn)串行通信技術(shù),采用單端信號(hào)傳輸方式,將PC機(jī)和單片機(jī)連接至一起,實(shí)現(xiàn)梯形圖目標(biāo)代碼的下載。通訊電路如圖2.10所示。圖2.10中主要用到了芯片MAX232,該芯片是由美國德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。單片機(jī)使用的是TTL電平(+5V為高電平,低電平為0V),而計(jì)算機(jī)的串口為RS-232C電平,其中高電平為-12V,低電平為+12V,RS-232C電平為負(fù)邏輯電平。MAX232就是用來進(jìn)行電平轉(zhuǎn)換的。該器件包含兩個(gè)驅(qū)動(dòng)器、兩個(gè)接收器。它的的9、10、11、12引腳是TTL電平端,用來連接單片機(jī);7、8、13、14引腳是接PC機(jī)的。圖2.10串口通信電路在圖2.10中,D9、D10兩個(gè)發(fā)光二極管用來指示此時(shí)是否有通信正在進(jìn)行。串口通信的數(shù)據(jù)傳輸過程如下:MAX232的10腳T2IN接單片機(jī)TXD端P3.1,TTL電平從單片機(jī)的TXD端發(fā)出,經(jīng)過MAX232轉(zhuǎn)換為RS-232電平后從MAX232的7腳T2OUT發(fā)出,再連接到系統(tǒng)板上的串口座的第2腳RXD,至此計(jì)算機(jī)端接收到數(shù)據(jù)。PC機(jī)發(fā)送數(shù)據(jù)時(shí)從PC機(jī)串口座上的第3腳TXD端發(fā)出數(shù)據(jù),再逆向流向單片機(jī)的RXD端P3.0接收數(shù)據(jù)。攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)3實(shí)驗(yàn)軟件設(shè)計(jì)

3實(shí)驗(yàn)軟件設(shè)計(jì)3.1系統(tǒng)程序結(jié)構(gòu)一個(gè)完整的PLC系統(tǒng)程序流程圖如圖3.1所示,本設(shè)計(jì)的軟件部分主要是模仿PLC的循環(huán)工作。輸入采樣程序和輸出程序?qū)θ魏螒?yīng)用程序都是一樣的,這部分屬于系統(tǒng)程序,但梯形圖處理處理程序需要針對(duì)不同的應(yīng)用編寫不同的程序。圖3.1系統(tǒng)程序流程圖本設(shè)計(jì)的編程語言用了C語言和匯編語言兩種。匯編語言的執(zhí)行效率要比C語言高,但可讀性比較差。C語言編程簡潔,可讀性好,但C語言會(huì)占用更多的內(nèi)存資源。C語言程序含有六個(gè)文件:“IO.h”、“timer_counter.h”、“main.c”、“functions.c”、“timer_counter.c”和“process.c”。頭文件“IO.h”是對(duì)輸入輸出端口以及輸入輸出端口映像寄存器的聲明。頭文件“timer_counter.h”是定時(shí)器和計(jì)數(shù)器的聲明,定時(shí)器和計(jì)數(shù)器的定義在C文件“timer_counter.c”中。C文件“main.c”是系統(tǒng)的主程序。C文件“functions.c”中是初始化程序、輸入程序、輸出程序等的具體實(shí)現(xiàn)。C文件“process.c”是用戶編寫不同控制程序的文件,該文件中內(nèi)容需要用戶根據(jù)梯形圖程序來填寫,其他五個(gè)文件不需要用戶關(guān)心,用戶只需要了解一些接口即可。這種設(shè)計(jì)使用戶只要關(guān)注如何將梯形圖程序轉(zhuǎn)換成C語言,而這種轉(zhuǎn)換往往相對(duì)比較簡單。匯編語言程序只有一個(gè)文件,含有三個(gè)個(gè)部分:預(yù)定義部分,系統(tǒng)函數(shù)部分和用戶程序部分。預(yù)定義部分是對(duì)輸入輸出端口以及輸入輸出端口映像寄存器的定義,還包括計(jì)數(shù)器和定時(shí)器的定義。系統(tǒng)程序部分包括主函數(shù),輸入/輸出函數(shù),定時(shí)器程序個(gè)計(jì)數(shù)器程序。用戶程序是供用戶根據(jù)梯形圖程序填寫的部分。3.2系統(tǒng)主程序系統(tǒng)主程序是主要是模擬PLC的循環(huán)工作方式。主程序中調(diào)用了四個(gè)函數(shù):initi()是初始化程序,getIn()是輸入采樣程序,process()是用來翻譯梯形圖程序的梯形圖處理程序,getOut()是輸出刷新程序。主程序如下:voidmain(){initi(); while(1){ getIn(); process(); getOut(); }}匯編程序如下Main: ACALLIniti Loop:ACALLGetIn LCALLProcess ACALLGetOut SJMPLoop匯編語言中的Initi是初始化程序,GetIn是輸入采樣程序,Process是用來翻譯梯形圖程序的梯形圖處理程序,GetOut是輸出刷新程序。由以上的程序可以發(fā)現(xiàn),用單片機(jī)實(shí)現(xiàn)PLC的循環(huán)掃描過程,在程序上比較容易實(shí)現(xiàn),結(jié)構(gòu)清晰,易于理解。主程序中各個(gè)子函數(shù)的具體定義見本章以下各節(jié)內(nèi)容。3.3初始化程序初始化程序是在系統(tǒng)進(jìn)入循環(huán)掃描所必須的預(yù)處理。本設(shè)計(jì)的初始化化程序主要完成以下一些工作:輸入、輸出初始化,設(shè)置所有定時(shí)器的時(shí)間基數(shù),定時(shí)器初始化、計(jì)數(shù)器初始化化。C語言程序如下。voidiniti(){ P0=0x00; P1=0xFF; TMOD=0x01; TH0=0x3C; TL0=0x0B0; EA=1; ET0=1; initi_timer(); initi_counter(); TR0=1;}initi_timer()是定時(shí)器初始化程序,initi_counter()是計(jì)數(shù)器初始化程序。如本章開始所述,把這兩個(gè)函數(shù)定義放在在C文件"process.c"中是為了方便用戶,用戶在編寫用戶處理程序時(shí)可能會(huì)使用定時(shí)器和計(jì)數(shù)器,這就需要對(duì)定時(shí)器和計(jì)數(shù)器進(jìn)行初始化,把這兩個(gè)程序和用戶處理程序放在一個(gè)文件中,使用戶只需要關(guān)注一個(gè)文件,專注于梯形圖程序的轉(zhuǎn)換。匯編程序如下:Initi: MOV SP, #78HMOV P0, #00H MOV P1, #0FFH MOV TMOD, #01H MOV TH0, #3CH MOV TL0, #0B0H SETBEA SETB ET0 LCALLIniti_Timer LCALLIniti_CounterSETBTR0 RETIniti_Timer和Initi_Counter分別是定時(shí)器初始化程序和計(jì)數(shù)器初始化程序。定時(shí)器程序和計(jì)數(shù)器程序見本章的3.6和3.7。3.4輸入程序輸入程序用以檢測16個(gè)輸入點(diǎn)的開關(guān)狀態(tài)。程序首先把16個(gè)輸入映像寄存器清零,然后依次檢測16個(gè)輸入端口,如果檢測到該輸入端為高電平,則延時(shí)10毫秒,主要用于去除按鍵抖動(dòng),如果延時(shí)10毫秒之后,再次檢測到得該輸入端仍為高電平,則將該輸入點(diǎn)的映像寄存器置1,否則置0。掃描得到的輸入映像寄存器的不同狀態(tài)將在用戶程序中使用。In0-In7、In17-In10分別代表單片機(jī)的16個(gè)輸入端口P0.0-P0.7、P2.0-P2.7。InMap0-InMap7、InMap17-InMap10分別是16個(gè)輸入端口的映像存儲(chǔ)器,每個(gè)映像存儲(chǔ)器占一位存儲(chǔ)空間。定義映像存儲(chǔ)器實(shí)際上也有效地防止了輸入信號(hào)的干擾,提高了系統(tǒng)的抗干擾能力。輸入程序如下:voidgetIn(){ InMap0=0; InMap7=0; InMap17=0; InMap10=0;if(In0) { delay10ms(); if(In0) InMap0=1; } if(In7) { delay10ms(); if(In7) InMap7=1; } if(In17) { delay10ms(); if(In17) InMap17=1; } if(In10) { delay10ms(); if(In10) InMap10=1; }}匯編程序如下:GetIn: CLRInMap0 CLRInMap7 CLRInMap17 CLRInMap10JNB In0, CHK1 LCALL KT10MS JNB In0, CHK1 SETB InMap0 CHK1:JNB In1, CHK2 LCALL KT10MS JNB In1, CHK2 SETB InMap1CHK7:JNB In7, CHK17 LCALL KT10MS JNB In7, CHK17 SETB InMap7CHK17:JNBIn17,CHK16LCALLKT10MSJNBIn17,CHK16SETBInMap17CHK10:JNB In10, EndCHK LCALL KT10MS JNB In10, EndCHK SETB InMap10EndCHK:RET3.5輸出程序輸出程序比較簡單,在每個(gè)掃描周期,都需要把輸出映像寄存器的值賦給輸出端,即所謂的輸出刷新。Out0-Out7、Out10-Out15分別代表單片機(jī)的14個(gè)輸出端口P1.0-P1.7、P3.2-P3.7。OutMap0-OutMap7、OutMap10-OutMap3分別是14個(gè)輸出端口的映像存儲(chǔ)器,每個(gè)映像存儲(chǔ)器占一位存儲(chǔ)空間。輸出程序如下:voidgetOut(){ Out0=~OutMap0; Out7=~OutMap7; Out10=~OutMap10; Out15=~OutMap15;}匯編程序如下:GetOut: MOV C, OutMap0 CPL C MOV Out0, C MOV C, OutMap1 CPL C MOV Out7, CMOV C, OutMap10 CPL C MOV Out10, CMOV C, OutMap11 CPL CMOV Out14, CMOV C, OutMap15 CPL CMOV Out15, C RET特別要注意的是,本設(shè)計(jì)在輸出時(shí)是低電平表示輸出有效(見圖3.9),是負(fù)邏輯,為了在梯形圖處理程序中減小用戶的負(fù)擔(dān),在梯形圖處理程序中使用易于理解的正邏輯,只在輸出時(shí)對(duì)所有的映像寄存器取反,但是這里的取反并不是讓映像存儲(chǔ)器里的值取反,這樣會(huì)破壞用戶編寫的程序,而是將映像存儲(chǔ)器相反的值賦給相應(yīng)的輸出端。3.6定時(shí)器程序PLC中的定時(shí)器代表延時(shí)繼電器的功能,通??梢杂卸鄠€(gè),考慮到單片機(jī)內(nèi)存資源有限,本設(shè)計(jì)中定義了10個(gè)定時(shí)器。定時(shí)器需要一個(gè)統(tǒng)一的時(shí)鐘,用單片機(jī)片內(nèi)的T0來作統(tǒng)一的時(shí)鐘。T0每0.05秒中斷一次,T0的設(shè)置在初始化程序中。因此定時(shí)器程序包兩個(gè)部分,一個(gè)是定時(shí)中斷服務(wù)程序,另一個(gè)是定時(shí)器邏輯指令程序。3.6.1定時(shí)器的定義定時(shí)器有四個(gè)部分組成:定時(shí)器邏輯位,初始值,定時(shí)器計(jì)數(shù)器,觸發(fā)啟動(dòng)標(biāo)志。定時(shí)器如果用C語言的結(jié)構(gòu)體定義比較容易理解。定時(shí)器的結(jié)構(gòu)體定義如下。structtim{ BitDT; //定時(shí)器邏輯位(溢出標(biāo)志) unsignedintK; //初值 unsignedintTC; //定時(shí)器計(jì)數(shù)器 BitST; //觸發(fā)啟動(dòng)標(biāo)志}timer[10];定時(shí)器的計(jì)數(shù)器占兩個(gè)字節(jié),最大值是65535,由于每中斷一次,計(jì)數(shù)器加1,因此定時(shí)器的最長定時(shí)時(shí)間為3276.75秒。3.6.2定時(shí)中斷服務(wù)程序定時(shí)中斷服務(wù)程序的流程圖如3.2所示。圖3.2中斷服務(wù)程序流程圖根據(jù)流程圖,寫出C程序如下。voidinterT0()interrupt1{ unsignedchari; TR0=0; TH0=0x3c; TL0=0xb0; for(i=0;i<10;i++) {if(timer[i].ST) timer[i].TC++; } TR0=1;}匯編程序如下:IT0Int:CLR TR0 PUSH PSW PUSH ACC MOV TH0, #3CH MOV TL0, #0B0H JNB ST0, Next1 INC TC0_L MOVA,TC0_L JNZNext1INC TC0_HNext1:JNB ST1, Next2 INC TC1_L MOVA,TC1_L JNZNext2INC TC1_H Next2:JNB ST2, Next3 INC TC2_H MOVA,TC2_L JNZNext3 INC TC2_LNext3:JNB ST3, Next4 INC TC3_LMOVA,TC3_L JNZNext4INC TC3_H Next4:JNB ST4, Next5 INC TC4_L MOVA,TC4_L JNZNext5INC TC4_HNext5:JNB ST5, Next6 INC TC5_L MOVA,TC5_L JNZNext6INC TC5_H Next6:JNB ST6, Next7INC TC6_L MOVA,TC6_L JNZNext7INC TC6_HNext7:JNB ST7, Next8 INC TC7_L MOVA,TC7_L JNZNext8INC TC7_H Next8:JNB ST8, Next9 INC TC8_L MOVA,TC8_L JNZNext9INC TC8_HNext9:JNB ST9, EndInt INC TC9_L MOVA,TC9_L JNZEndIntINC TC9_H EndInt:POPACC POPPSW SETBTR0 RETI3.6.3定時(shí)器邏輯指令程序定時(shí)器邏輯指令程序中需要注意觸發(fā)啟動(dòng)標(biāo)志何時(shí)打開。流程圖如圖3.3所示。圖3.3定時(shí)器程序流程圖根據(jù)以上的流程圖寫出的C語言程序如下。voidtime(unsignedcharn,bitin){ if(in) { if(timer[n].ST) { if(timer[n].TC==timer[n].K) { timer[n].DT=1; timer[n].ST=0; timer[n].TC=0; } } else { if(timer[n].DT!=1) timer[n].ST=1; } } else { timer[n].DT=0; timer[n].ST=0; timer[n].TC=0; }}程序中的n是定時(shí)器的編號(hào),有效值是0到9,in是當(dāng)前的邏輯運(yùn)算值。匯編程序需要對(duì)分別寫出每個(gè)定時(shí)器的邏輯指令程序,但它們都是相同的。下面定時(shí)器0為例,寫出匯編程序如下。匯編程序中當(dāng)前邏輯運(yùn)算值在位累加器C中。Tim0: JNC Off0 JNB ST0, Open0 MOV A, TC0_L CJNEA, K0_L, Exit0 MOV A, TC0_H CJNEA, K0_H, Exit0 SETB DT0 SJMPRest0Open0: JB ST0, Exit0 JB DT0, Exit0 SETB ST0 RETOff0: CLR DT0 Rest0: CLR ST0 MOVTC0_H, #00H MOVTC0_L, #00HExit0: RET3.6.4定時(shí)器初始化用戶需要對(duì)用到得定時(shí)器進(jìn)行初始化,C語言初始化程序如下。程序中已對(duì)初始化的方法做了詳細(xì)的說明。voidiniti_timer(){ /*timer[n].K=t/0.05;*/}程序中的n是使用的定時(shí)器編號(hào)(0-9)。t是定時(shí)的時(shí)間,最長定時(shí)時(shí)間為3276.75秒。匯編語言定時(shí)器的初始化方法如下。Initi_Timer: /* MOV Kn_L, #Low MOV Kn_H, #High*/ RET程序中Low=t/0.05/256,High=t/0.05/256。3.7計(jì)數(shù)程序計(jì)數(shù)器有加計(jì)數(shù)器、減計(jì)數(shù)器和加減計(jì)數(shù)器。本設(shè)計(jì)的計(jì)數(shù)器屬于加計(jì)數(shù)器。計(jì)數(shù)器如圖3.4所示。當(dāng)計(jì)數(shù)器的復(fù)位端R斷開,且輸入脈沖CU檢測到輸入信號(hào)正跳變時(shí)當(dāng)前值加1,直到達(dá)到PV端設(shè)定值時(shí),計(jì)數(shù)器的邏輯位置位。圖3.4加計(jì)數(shù)器3.7.1計(jì)數(shù)器的定義下面的結(jié)構(gòu)體定義了計(jì)數(shù)器的結(jié)構(gòu)。structct{ BitCnt; //計(jì)數(shù)器邏輯位(溢出標(biāo)志)unsignedintPV; //初值 unsignedintCT; //計(jì)數(shù)器 BitRST; //復(fù)位標(biāo)志}counter[10];定義了10個(gè)計(jì)數(shù)器,計(jì)數(shù)器初始值最大為65535。3.7.2計(jì)數(shù)器程序的實(shí)現(xiàn)加計(jì)數(shù)器的流程圖如圖3.4所示。圖3.4計(jì)數(shù)器程序流程圖根據(jù)以上的流程圖寫出計(jì)數(shù)器的C語言程序如下。voidcount(unsignedcharn,bitin){ if(!counter[n].RST) { if(in){ if(!counter[n].Cnt) counter[n].CT++; if(counter[n].CT==counter[n].PV) { counter[n].Cnt=1; counter[n].CT=0; }}elsecounter[n].Cnt=0; } } else { counter[n].Cnt=0; counter[n].CT=0; }}程序中的n是計(jì)數(shù)器的編號(hào),有效值是0到9,in是當(dāng)前的邏輯運(yùn)算值。匯編程序需要對(duì)分別寫出每個(gè)計(jì)數(shù)器的程序,但它們都是相同的。下面計(jì)數(shù)器0為例,寫出匯編程序如下。匯編程序中當(dāng)前邏輯運(yùn)算值在位累加器C中。COUNT0:JB RST0,Reset0 JNCCExit0 JBC0,End0 INCC0_L MOVA,C0_L JNZCN0 INCC0_HCN0:MOV A, C0_L CJNEA, PV0_L, End0 MOV A, C0_H CJNEA, PV0_H, End0 SETBC0 MOV C0_L,#0 MOVC0_H,#0 RETReset0:MOV C0_L,#0 MOVC0_H,#0CExit0:CLRC0End0:RET3.7.3計(jì)數(shù)器初始化用戶需要對(duì)用到得計(jì)數(shù)器進(jìn)行初始化,計(jì)數(shù)器的初始化很簡單,C語言初始化程序如下。voidiniti_counter(){ /*counter[n].PV=;*/ }程序中的n是使用的計(jì)數(shù)器編號(hào)(0-9)。設(shè)置計(jì)數(shù)器初始值,最大值為65535。匯編語言定時(shí)器的初始化方法如下。Initi_Counter:/* MOV PVn_L, #Low MOV PVn_H, #High*/ RET 程序中Low=PV/256,High=PV/256。3.8例子實(shí)驗(yàn)實(shí)驗(yàn)時(shí)我們對(duì)梯形圖進(jìn)行了直接的處理。梯形圖處理程序如下。voidprocess(){//先定義輔助繼電器//用戶根據(jù)梯形圖在此填寫程序}匯編程序如下:Process: /*用戶根據(jù)梯形圖在此填寫程序*/RET下面舉一個(gè)例子?,F(xiàn)設(shè)計(jì)一個(gè)使用一個(gè)按鈕控制電機(jī)的啟、停,第一次按動(dòng)按鈕,電機(jī)啟動(dòng),第二次按動(dòng)按鈕,電機(jī)停止轉(zhuǎn)動(dòng)。梯形圖程序如圖3.5所示。圖3.5梯形圖程序圖3.5轉(zhuǎn)換成C語言或者匯編語言是很容易的。假設(shè)按扭使用X0接口,電機(jī)使用Y0接口。在寫匯編語言之前要先定義映像寄存器和輔助寄存器:M0_0BIT26H.1 M0_1BIT26H.2 M0_2BIT26H.3寫出的匯編程序如下:Process:MOV C, InMap0 ANL C, /M0_1 MOV M0_0, CMOVC, InMap0 MOVM0_1, CMOV C, M0_0 ANL C, OutMap0 MOV M0_2, CMOV C, M0_0 ORL C, OutMap0 ANL C, /M0_2 MOV OutMap0, CRET如果寫成C語言則更加容易:voidprocess(){bitM0_0,M0_1,M0_2;M0_0=InMap0&(~M0_1);M0_1=InMap0;M0_2=M0_0&OutMap0;OutMap0=(M0_0|OutMap0)&(~M0_2);}通過上述簡單例子的實(shí)驗(yàn),基于單片機(jī)的微型PLC控制板可以正常控制。攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)4實(shí)際運(yùn)用軟件4實(shí)際運(yùn)用軟件4.1實(shí)際運(yùn)用軟件的總述以上為實(shí)驗(yàn)時(shí)所使用的軟件設(shè)計(jì),我們?cè)趯?shí)際運(yùn)用中其實(shí)有更方便的方法來實(shí)現(xiàn)軟件的設(shè)計(jì)。首先在編寫梯形圖時(shí),我們?cè)谶@用GXDeveloper梯形圖編譯軟件,通過此軟件編好用戶自己想要的程序之后,我們要對(duì)梯形圖程序進(jìn)行轉(zhuǎn)換,是它成為能應(yīng)用于單片機(jī)的語言。這時(shí)我們將使用一款轉(zhuǎn)換軟件PMW-HEX轉(zhuǎn)換軟件。用戶使用此款軟件的前提是在GXDeveloper梯形圖編譯軟件中編譯的程序以PMW的格式保存。用戶使用轉(zhuǎn)換軟件將編譯程序轉(zhuǎn)換為.HEX文本之后,就轉(zhuǎn)換為單片機(jī)可運(yùn)行的語言了。我們要將轉(zhuǎn)換后的程序下載到PLC控制板上,這是我們要使用STC_ISP串口通信軟件來將PC與PLC控制板連接進(jìn)行下載。上面是用戶程序的處理過程。4.2GXDeveloper軟件GXDeveloper軟件使用起來靈活、簡單、方便,我們把它安裝在程序中,使用時(shí)只要進(jìn)入程序,選中MELSECApplications→在WINDOWS下運(yùn)行的GXDeveloper,打開工程,選中新建,出現(xiàn)如下圖4.1畫面,先在PLC系列中選出你所使用的程控器的CPU系列,如在我們的實(shí)驗(yàn)中,選用的是FX系列,所以選FXCPU,PLC類型是指選機(jī)器的型號(hào),我們實(shí)驗(yàn)用FX1N系列,所以選中FX1N(C),確定后出現(xiàn)如圖4.2畫面,在畫面上我們清楚地看到,最左邊是根母線,藍(lán)色框表示現(xiàn)在可寫入?yún)^(qū)域,上方有菜單,你只要任意點(diǎn)擊其中的元件,就可得到你所要的線圈、觸點(diǎn)等。圖4.1選CPU型號(hào)圖圖4.2窗口圖如你要在某處輸入X000,只要把藍(lán)色光標(biāo)移動(dòng)到你所需要寫的地方,然后在菜單上選中┫┣觸點(diǎn),出現(xiàn)如下圖4.3畫面:圖4.3觸點(diǎn)圖再輸入X000,即可完成寫入X000。如要輸入一個(gè)定時(shí)器,先選中線圈,再輸入一些數(shù)據(jù),圖4.4顯示了其操作過程。圖4.4定時(shí)器線圈圖對(duì)于計(jì)數(shù)器,因?yàn)樗袝r(shí)要用到兩個(gè)輸入端,所以在操作上既要輸入線圈部分,又要輸入復(fù)位部分,其操作過程如圖4.5、4.6所示。圖4.5定時(shí)器復(fù)位圖注意,在圖4.5中的箭頭所示部分,它選中的是應(yīng)用指令,而不是線圈。圖4.6定時(shí)器復(fù)位圖上面是軟件編梯形圖的基本方法,具體的資料可以在網(wǎng)上搜GXDeveloper軟件的使用手冊(cè)。編譯完程序之后將它保存為.PMW文本。4.3PMW-HEX轉(zhuǎn)換軟件我們?cè)贕XDeveloper梯形圖編程軟件中保存生成了.PMW文本,這時(shí)我們打開PMW-HEX轉(zhuǎn)換軟件,在文件夾中找到該文本,如圖4.7。然后點(diǎn)一下打開,它就開始轉(zhuǎn)換,轉(zhuǎn)換完成之后如圖4.8所示。這時(shí)我們可以在轉(zhuǎn)換文件的文件夾中找到一個(gè)fx1n.hex,如圖4.9,這就是我們要下載到PLC控制板中的程序。 圖4.7打開PMW圖4.8PMW轉(zhuǎn)HEX完成 圖4.9找HEX文件4.4STC_ISP通信軟件的下載通過上面的轉(zhuǎn)換軟件我們已經(jīng)生成了fx1n.hex文件,這時(shí)我們打開STC_ISP通信軟件,打開文件fx1n.hex(在轉(zhuǎn)換軟件的根目錄下)。選擇相應(yīng)的COM口,如果不知道那個(gè)口可以在桌面右鍵單機(jī)<我的電腦>在設(shè)備管理器理查看,(如果有多個(gè)COM口,可以看下插上USB轉(zhuǎn)串口線之前和之后出現(xiàn)的是那個(gè))。按下載當(dāng)文本框出現(xiàn)<仍在連接中,請(qǐng)給MCU上電取下PLC的保險(xiǎn)絲斷電再重新放上,或者斷開24V電源(注意是24V的電源不是你220V轉(zhuǎn)24V那個(gè)電源220V,不要搞錯(cuò)了,不然下載不進(jìn)去),文本框出現(xiàn)<Havealreadyencrypt./已加密>說明已經(jīng)下載完成PLC就可以使用了。STC_ISP窗口圖4.10圖4.10STC_ISP窗口上面就是用戶編寫的梯形圖處理的所有步驟,下面是個(gè)實(shí)例,我將在答辯時(shí)現(xiàn)場演示上面的操作。4.5實(shí)例四個(gè)人的搶答器,控制要求是:出題人出問題,答題人按動(dòng)開關(guān)搶答,只有最先按動(dòng)的人有輸出,除此沒有,出題人按復(fù)位開關(guān)時(shí),引出下一個(gè)問題。輸入輸出分配如表4.1表4.1I/O分配表輸入I輸出O答題人AX0搶答指示1Y0答題人BX1搶答指示2Y1答題人CX2搶答指示3Y2答題人DX3搶答指示4Y3復(fù)位(主持人)X4攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)總結(jié)總結(jié)單片機(jī)和PLC都是在工業(yè)控制領(lǐng)域有著廣泛應(yīng)用的工業(yè)控制裝置,它們各有各自的特點(diǎn)。本設(shè)計(jì)用STC90C52單片機(jī)設(shè)計(jì)了一個(gè)16輸入14輸出的簡單PLC。該P(yáng)LC含有10個(gè)定時(shí)器和10個(gè)計(jì)數(shù)器,每個(gè)定時(shí)器的最長定時(shí)時(shí)間為3276.75秒,每個(gè)計(jì)數(shù)器的最大計(jì)數(shù)值為65535。該P(yáng)LC的輸入方式為直流開關(guān)量,輸入電壓為24V。輸出采用繼電器輸出方式,繼電器的額定電壓為DC24V,吸合電流為2A,線圈功率為4W。為了提高系統(tǒng)的抗干擾能力,輸入輸出電路中都使用了光電耦合器。該P(yáng)LC具有與計(jì)算通訊能力,可以在計(jì)算機(jī)上下載程序。在設(shè)計(jì)時(shí),設(shè)計(jì)了較多的輸入輸出。軟件方面,先用C語言與匯編語言進(jìn)行了測試,后面實(shí)際運(yùn)用時(shí)用了GXDeveloper編程軟件、PMW-HEX轉(zhuǎn)換軟件和STC_ISP通信軟件,這樣PLC控制板的使用將更簡單方便。為了能滿足復(fù)雜的控制需要,在功能上還可以進(jìn)行拓展:EQ\o\ac(○,1)增加不同的輸入方式和輸出方式。EQ\o\ac(○,2)為適應(yīng)工業(yè)環(huán)境的要求,就要有極為可靠的抗干擾措施。EQ\o\ac(○,3)加大負(fù)載能力,以滿足工業(yè)控制對(duì)象的一般需要。EQ\o\ac(○,4)增加處理模擬量的能力,以滿足模擬量的控制需要。EQ\o\ac(○,5)增加通訊能力,以滿足控制系統(tǒng)網(wǎng)絡(luò)的需要。EQ\o\ac(○,6)拓展單片機(jī)的內(nèi)存,使制作的PLC能夠運(yùn)行更加復(fù)雜的程序。EQ\o\ac(○,7)增加更加豐富的人機(jī)接口,比如撥盤預(yù)置程序輸入預(yù)置值,LCD顯示工作狀態(tài)等。攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)參考文獻(xiàn)參考文獻(xiàn)[1]周萬珍,高鴻斌編著.PLC的分析與應(yīng)用.北京:電子工業(yè)出版社,2004[2]刑亞從.AT89C51單片機(jī)在微型PLC中的應(yīng)用[J].裝備制造技術(shù),2008[3]隋振有,隋鳳香主編.可編程控制器應(yīng)用解析.北京:中國電力出版社,2006[4]孫明江.用MCS-51單片機(jī)實(shí)現(xiàn)PLC功能的軟硬件設(shè)計(jì)[J].上海電力學(xué)院學(xué)報(bào),1994[5]靳達(dá)主編.單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航.北京:人民郵電出版社,2003[6]張衛(wèi)東,沈中澤.嵌入式軟PLC系統(tǒng)硬件設(shè)計(jì)[J].中國科技論文在線[7]姜琳.基于單片機(jī)的PLC設(shè)計(jì)與實(shí)現(xiàn):[碩士學(xué)位論文].南京:東南大學(xué),2008[8]熊波.PLC程序快速轉(zhuǎn)換成單片機(jī)語言初探[J].電子報(bào),2009.6.7[9]李道霖主編.電器控制與PLC原理及應(yīng)用(西門子系列).北京:電子工業(yè)出版社,2004[10]高春俠,張磊.一種單片機(jī)嵌入式PLC系統(tǒng)的研究與開發(fā)[J].石油電氣,2010[11]葛紹仁,郭延齡.用8031單片機(jī)模擬PLC的工作過程[J].撫順石油學(xué)院學(xué)報(bào),1992[12]秦曾煌主編.電工學(xué)(電工技術(shù)).北京:高等教育出版社,2004[13]吳曉淵,趙德安.單片機(jī)PLC編譯程序設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2008[14]吳曉淵.梯形圖邏輯功能的單片機(jī)直接實(shí)現(xiàn)核心技術(shù)[J].江蘇理工大學(xué)學(xué)報(bào),1997[15]孟慶濤,鄭鳳翼編著.例說只讀PLC梯形圖的方法與技巧.北京:電子工業(yè)出版社2010[16]唐中燕.單片機(jī)作為PLC的新用法[J].自動(dòng)化技術(shù)與應(yīng)用,2002[17]李曉龍.基于MCS-51單片機(jī)的PLC仿真器[J].合肥工業(yè)大學(xué)學(xué)報(bào),2002[18]盛莉.簡易可編程邏輯控制器的單片機(jī)實(shí)現(xiàn)[J].電腦與電信,2004[19]李廣第,朱月秀,冷祖祁編著.單片機(jī)基礎(chǔ):北京航空航天大學(xué)出版社,2007攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)附錄A:系統(tǒng)原理圖附錄A:系統(tǒng)原理圖 攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)附錄B:實(shí)物圖附錄B:實(shí)物圖攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)致謝致謝在畢業(yè)論文即將完成之際,我要衷心感謝范方靈老師和同學(xué)們?cè)诋厴I(yè)設(shè)計(jì)期間給予的指導(dǎo)和幫助!范老師工作繁忙,但依然十分關(guān)心我們的畢業(yè)設(shè)計(jì),每周都抽出時(shí)間悉心指導(dǎo)我們。范老師淵博的知識(shí)和嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)深深地影響了我。同時(shí)也要感謝大學(xué)期間所有的任課老師,他們教授的知識(shí)是我大學(xué)期間獲得的寶貴財(cái)富?;贑8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制HYPERLINK"/detail.htm

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論