版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于at89s52單片機的小型plc的設計與實現(xiàn)the designation and accomplishment of the small plc which is based on at89s52 singlechip摘 要可編程控制器(plc)以抗干擾性強、可靠性高和編程靈活等特點在工業(yè)上得到廣泛應用。其缺點是價格比較昂貴。單片機也以其價格低廉,編程靈活,控制能力強等優(yōu)點廣泛應用于工業(yè)控制領域。把兩者的優(yōu)點結合起來,利用plc的編程思想和實現(xiàn)方法,結合單片機價格低,編程靈活的特點,設計了一種小型可編程控制器。本文介紹了基于at89s52單片機的小型plc的設計,闡述了軟硬件結構和實現(xiàn)的
2、基本方法。關鍵字 可編程序控制器(plc);單片機abstract programmable logic controller (plc) has been widely applied in industry because its strong antidisturbance, high reliability and flexible. its disadvantage is very expensive. but single chip microcomputer has been widely applied because its low price flexible and st
3、rong control ability.combining their advantage together, this paper designs a smart plc with using the method of plc programmer and advantage of single chip microcomputer. this paper introduce a hardware and software design method of smart plc based on mcs-8051。 keyword programmable logic controller
4、 (plc); single chip;1.引言可編程序控制器(plc)是按照成熟的繼電器控制思想,結合計算機技術、自動化技術、通訊技術來實時控制的先進控制系統(tǒng)。plc廣泛應用于工業(yè)生產(chǎn),在工業(yè)控制領域占有重要地位,與機器人、cad/cam并稱為當代工業(yè)自動化的三大支柱??煽啃愿?、接口類型豐富、能適應各種復雜的工業(yè)環(huán)境是plc的突出優(yōu)點,同時plc采用面向過程的編程語言,編程簡單直觀,易學易懂,使用靈活方便,工程技術人員經(jīng)過短期學習即能上手。但它也存在不少缺點:內存有限,編程優(yōu)化調試困難;產(chǎn)品多為進口,價格昂貴;針對性比較差。特別是當環(huán)境條件尚佳,控制量不大,控制邏輯不太復雜,控制要求不高時,
5、它的優(yōu)勢不能完全發(fā)揮出來,而且會提高系統(tǒng)的成本。鑒于此,根據(jù)可編程序控制器的實現(xiàn)思想和理念,設計小型的plc控制系統(tǒng)具有較大的實際意義。本文中筆者借鑒plc的實現(xiàn)思想和運行原理,利用性價比比較高的at89s52單片機設計了了一種小型plc。2.硬件設計 此次設計筆者在plc結構和實現(xiàn)思想的基礎上進行了一些嘗試,把系統(tǒng)程序和用戶程序合并到一起,即不區(qū)別系統(tǒng)存儲區(qū)和用戶存儲區(qū),不設常駐cpu的系統(tǒng)程序,而是在上位機通過編程軟件將用戶程序和系統(tǒng)程序合并在一起。此方法簡化了硬件結構了,整個硬件系統(tǒng)由單片機at89s52以及外圍接口電路構成。其硬件結構圖如圖1所示:2.1 cpuplc常用的cpu有8位
6、16位及32位通用微處理器和單片機。自從單片機問世以來,已有不少產(chǎn)品采用單片機制造可編程控制器,如常見的msc-8051系列單片機,就被一些公司用來制造小型可編程序控制器,特別是該系列的單片機具有較強的布爾處理機,更適合用來制造plc。此次采用的at89s52單片機即是msc-8051系列的衍生產(chǎn)品。2.2 i/o單元i/o接口的數(shù)量是衡量cpu性能的主要標準之一。本系統(tǒng)的設計定位是:應用于控制量較小,控制要求不高的控制場合的微型可編程控制器,故本系統(tǒng)設置了8個輸入點和8個輸出點,這種設計完全可以滿足該工況的需要。plc工作于工業(yè)控制現(xiàn)場,而工業(yè)控制現(xiàn)場往往環(huán)境惡劣,存在著電磁、噪聲、振動等各
7、種干擾,因此plc要正常工作必須具備良好的抗干擾性能。工業(yè)現(xiàn)場中,電磁干擾是較為嚴重的,因此為了實現(xiàn)良好的抗干擾性能必須把i/o接口和cpu從物理上隔離開來,以防止干擾信號的串入。plc產(chǎn)品為了實現(xiàn)接口電路與cpu隔離通常采用光電耦合器隔離的方法。本設計已采用了這種方法,使用光電耦合器把輸入輸出接口同cpu隔離開來。光電隔離電路如圖2所示:圖1 硬件電路圖at89s52p2.7 · · ·p2.0ledr1cr210k+5vsw 圖1 光電隔離電路圖2.3 電源部分為了取材方便節(jié)約成本,電源部分采用二手的計算機開關電源,取+5v供給單片機,+12v供給接口電路。為
8、了避免干擾的串入,控制部分和接口電路分離供電,分別用兩塊電源供給,提高了抗干擾性能。3.軟件設計軟件系統(tǒng)的設計思想是:編程軟件將編制的助記符指令翻譯為mcs-8051的匯編語言,用戶只需通過文本編輯軟件建立助記符程序源文件并存為.plc格式,即可直接運行翻譯程序進行翻譯,生成.asm格式的文件,再通過匯編器的編譯后生成目標碼.hex文件,最后裝入單片機。3.1系統(tǒng)運行程序依照plc循環(huán)掃描、集中采集輸入、集中輸出的設計思想,設計了系統(tǒng)運行程序。由于單片機并行口在上電復位后都為高電平,而輸出設計為高電平有效,因而在程序運行一開始首先向輸出口p1寫“1”,將輸出口電平拉低。而后調用mov 20h,
9、#00h將輸入映像區(qū)20h清空,隨后進入一個“讀輸入邏輯運算寫輸出”循環(huán)周期。在每個循環(huán)的開始調用mov p2,#0ffh 和mov 20h,p2兩條指令讀取輸入口的狀態(tài),由于系統(tǒng)邏輯運算部分設計為高電平有效,而輸入狀態(tài)掃描設計為低電平有效,所以當我們采集輸入點信息并讀入輸入映像區(qū)后,首先要將輸入映像區(qū)的值全部取反,再進行邏輯運算。邏輯與運算完畢后將進入寫輸出操作,由于在翻譯邏輯運算的同時已經(jīng)將輸出量寫到了輸出映像區(qū)24h的對應位,因而在循環(huán)末尾只需調用mov p1,24h將輸出緩沖區(qū)全部寫到引腳即可。3.2 翻譯程序設計軟件設計的思路是設計翻譯程序將助記符程序.plc翻譯成為匯編語言程序.a
10、sm。通過研究我們不難發(fā)現(xiàn)plc助記符程序和mcs-51匯編語言存在著一定的對應關系,我們可以利用這一對應關系進行翻譯。 具體方法是:先確定plc助記符指令語句與匯編語句組的隊醫(yī)關系,翻譯時派發(fā)地址即可。plc助記符指令與mcs-51匯編指令對應表如表3所示:整個翻譯程序共分為四個模塊:文件掃描、錯誤檢查、邏輯翻譯、結果輸出。邏輯翻譯模塊式翻譯程序的核心。翻譯是通過i/o映像區(qū)地址表的建立,操作數(shù)字段操作數(shù)類型與標號的分離,操作碼字段翻譯,i/o點對應的位地址的確定等幾個階段完成的。翻譯是通過函數(shù)interpreter()的調用實現(xiàn)的。plc助記符程序mcs-51匯編語言-ldmov c ,
11、bitldnotmov c , bit cpl cororl c , bitornotorl c , /bitandanl c , bitandnotanl c,/bitorldorl c , 22h.0andldanl c , 22h.0outmov 24h.x , c表1 plc助記符指令與mcs-51匯編指令對應表(1)i/o映像區(qū)地址表的建立輸入輸出映像區(qū)地址表中包含了目標程序中全部可用的輸入輸出點的位地址。首先建立輸入映像區(qū)地址表和輸出映像區(qū)地址表,表結構定義如下:typedef struct ibitadress char *b; int iid; iadress;/*輸入映像區(qū)定
12、義*/字符指針分別指向輸入緩沖區(qū)20h和輸出緩沖區(qū)24h,iid標示輸入緩沖區(qū)每一位的位地址標號,xid標示輸出緩沖區(qū)每一位的位地址標號。究竟怎樣表示的呢,讓我們看一下輸入映像區(qū)表和輸出映像區(qū)表的初始化:iadress ibit8= "20h.00",0, "20h.10",1, "20h.20",2, "20h.30",3, "20h.40",4, "20h.50",5, "20h.60",6, "20h.70",7, ;/*輸入映像
13、區(qū)表初始化*/由該初始化過程我們可以發(fā)現(xiàn):輸入(輸出)表的iid字段和位地址與每字節(jié)位地址的位標號是相對應的,如輸入(輸出)映像區(qū)地址“20h.0(24h.0)”對應的標號iid為“0(0)”,與“20h.1(24h.1)”對應的iid為“1(0)”。 在翻譯的時候我們通過源文件鏈表節(jié)點中的i/o點類型來決定從那個映像表中取用地址,再結合輸入點號最終唯一確定一個位地址作為程序地址。(2)源文件操作碼類型和i/o點號的分離當遍歷到一個節(jié)點時,從節(jié)點數(shù)據(jù)域中取出操作數(shù)(poprand)字段,并對操作數(shù)字段的i/o點類型和i/o點號進行分離,具體方法是:先取出poprand字段第一個字符popran
14、d0存入變量poprand_1,該字段表示了i/o點的類型,“i”是輸入點,“x”代表輸出點,“0”是orld/andld指令使用的固定操作碼。然后取出poprand字段的第二個字符poprand1存入變量poprand_1,該字段表示了i/o點的標號。(3)操作碼字段翻譯當掃描到節(jié)點時,首先取出節(jié)點的操作碼字斷popcode 進行判別,通過判別可以確定最終翻譯生成的匯編代碼的操作碼字斷和操作數(shù)字段中的某一個,表示位地址的操作碼字段,須通過分離后的poprand_2和poprand_1共同確定。在生成目標程序的操作數(shù)字段的時候,邏輯量的暫存選用了程序狀態(tài)字psw的最高位cy,這是由位尋址指令的
15、特點決定的。邏輯節(jié)點組暫存選用了位地址22h.0。源文件操作碼字段popcode 的翻譯分以下三種情況:1)目標代碼地址固定的語句的翻譯orld 0. 譯為 orl c,22h.0andld 0. 譯為 anl c,22h.0這類指令中的位地址是不變的,因而翻譯是固定的,表示將組節(jié)點并聯(lián)時的中間結果存入固定的暫存區(qū)22h.0.2)通過操作碼字段的翻譯后只需確定位地址的語句的翻譯 or(ornot) i1. 譯為 orl c,i1(orl c,/i1)and(andnot) i1. 譯為 anl c,i1(anl c,/i1)這兩句中已確定了目標程序的操作碼字段和操作數(shù)字段的一個值,只剩下i/o
16、點地址i1等待確定。3)需保存中間結果的語句的翻譯 遇到成組串并聯(lián)的情況,需先將上一組邏輯的結果存入暫存區(qū)。即翻譯為:當ldflag=0時 ld i1 譯為 mov c,i1當ldflag=1時 ld i1 譯為 mov 22h.0,c mov c,i1 兩句需要指出的是在進行判斷的時候需要先判斷條件(ldfalg=1)再判斷條件(ldfalg=0),否則可能漏掉需要暫存的中間點。當遇到out指令時,把ldflag清零,因為out表示一個邏輯回路的結束(4)i/o點對應的位地址的確定經(jīng)過對源文件操作碼字段的分析翻譯后,少量源程序的語句已經(jīng)被完整的翻譯出來,這些語句涉及的位置都是固定地址。多數(shù)已
17、經(jīng)得到了目標程序也就匯編代碼的操作碼字段和一個操作數(shù)字段, 剩下一個位地址字段等待確定。確定了位地址以后,整個程序的翻譯也就都完成了。這是翻譯中最關鍵的一步。這里就用到了前面建立的i/o映像區(qū)地址表,和分離源文件操作數(shù)字段poprand的得到的i/o點標號poprand_1。確定位地址的方法是首先分析分離得到的poprand_0,若poprand_0為”i”則查找輸入映像區(qū),這時再用變量poprand_1和輸入映像區(qū)地址表的iid字段匹配,匹配成功則取出iid對應的位地址,這樣就完成了位地址的確定。系統(tǒng)程序分別在邏輯翻譯之前和之后導入到輸出鏈表,最后輸出的就是具備了完整控制功能的程序。通過后接匯編編譯器翻譯為.hex文件,用下載器下載到單片機即可。翻譯軟件部分運行圖片如圖4、5、6、7所示。圖4 主程序界面圖5 讀入plc源程序圖6 錯誤檢查圖7 翻譯結果4.結論本設計是在分析可編程控制系統(tǒng)的工作原理和實現(xiàn)思想后,通過查閱相關資料完成的。實踐證明,用單片機仿真可編程序控制器是合理可行的。軟、硬件部分均實現(xiàn)了預想的功能。將plc的設計實現(xiàn)思想用于單片機系統(tǒng)的設計,降低了系統(tǒng)造價,縮短了開發(fā)周期,并具有良好的經(jīng)濟性,實驗室樣板的造價大約在70至80元,遠低于市場同類產(chǎn)品,具有很高的性能價格比,在一些要求
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024產(chǎn)品銷售區(qū)域代理合同模板
- 2024租車合同協(xié)議書公司單位租車協(xié)議書
- 2024版獨家代理合同樣本
- 2024年廣場文化建設施工合同
- 2024年度貨物采購與供應協(xié)議
- 陀螺課件圖片教學課件
- 2024年度勞動合同標的:高級管理人員雇傭
- 2024解除土地流轉合同
- 2024年度環(huán)保項目技術研發(fā)與許可使用合同
- 2024年度房屋買賣合同(高檔住宅)
- 小腦梗死的護理查房
- 人教版四年級上冊三位數(shù)乘兩位數(shù)豎式練習400題及答案
- 大學生國防教育
- 智慧校園匯報材料課件
- 2024年遼寧盤錦國發(fā)實業(yè)有限公司招聘筆試參考題庫附帶答案詳解
- 樓蘭古國完整
- 青茶專業(yè)知識
- 加大技術研發(fā)投入推動技術創(chuàng)新
- 醫(yī)院管理學教學完整版
- 老人艾滋病防控知識講座
- 基因突變的發(fā)生和表達的實驗探究
評論
0/150
提交評論