基于ISP微控制器的PLC實現(xiàn)方法
可編程序控制器(Programmable Logic Controller,簡稱PLC)把自動化技術(shù)、計算機技術(shù)和通信技術(shù)融為一體,按照成熟而有效的繼電控制概念和設(shè)計思想,用先進的微控制器技術(shù)來實現(xiàn)I/O的實時檢測和控制。由于PLC具有編程簡單、可靠性高、通用性強和使用方便等特點,因此得到廣泛應(yīng)用。PLC技術(shù)已經(jīng)成為工科院校電工學(xué)的必修內(nèi)容。但PLC的種類很多,發(fā)展很快,而指令系統(tǒng)和使用方法又不盡相同,使PLC的教學(xué)內(nèi)容總是滯后于PLC的技術(shù)發(fā)展。為了改變這種狀況,我們以自帶在系統(tǒng)中編程(ISP)功能的、高性價比的微控制器SM2965為核心,研制了基于ISP功能的可編程序控制器,用于PLC控制實驗。下面介紹PLC的設(shè)計思路、硬件構(gòu)成和軟件設(shè)計方法。
本文引用地址:http://butianyuan.cn/article/172117.htm一、采用ISP微控制器SM2965設(shè)計PLC的思路
為了滿足對嵌入式系統(tǒng)采用高級語言開發(fā)的需求,新一代微控制器配置了ISP功能,它是指在用戶設(shè)計的微控制器系統(tǒng)中為配置新的系統(tǒng)功能對器件進行重新編程的技術(shù)。在PLC中采用具有ISP功能的微控制器,不僅可以在線更新用戶程序,而且還可以在線升級系統(tǒng)程序。使PLC教學(xué)能緊跟PLC最新技術(shù)發(fā)展。
(一)SM2965的特點
SM2965的內(nèi)核是標準的80C52,但在此基礎(chǔ)上擴展了以下功能:
在系統(tǒng)中編程,編程電壓為+5V;
64k字節(jié)快閃存儲器(FLASH E2PROM),ISP功能使FLASH E2PROM可在線編程;
1k字節(jié)的RAM空間—256字節(jié)的片內(nèi)RAM和768字節(jié)的片內(nèi)擴展內(nèi)存(EXRAM);
可編程的看門狗定時器。
可見,一片SM2965包含了標準的80C32、FLASH、E2PROM(28SF512)、SRAM(靜態(tài)數(shù)據(jù)存儲器)和WDT(看門狗定時器)SM2965是性價比極相當高的“單片”計算機。而其ISP特性使得FLASH E2PROM既可作為程序空間,也可像E2PROM一樣保存數(shù)據(jù)。以其為核心設(shè)計的PLC具有成本低、體積小、擴展方便及使用靈活等優(yōu)點。
(二)由微控制器組成PLC的思路
以微控制器為核心設(shè)計PLC,其硬件組成與微控制器測控系統(tǒng)基本相同。但在微控制器測控系統(tǒng)中,“測”和“控”的過程在時間上是串行關(guān)系。而PLC是按循環(huán)掃描方式進行工作的,每個掃描周期包括輸入采樣、程序執(zhí)行和輸出刷新三個階段,采用集中輸入、集中輸出并行關(guān)系的工作方式。若像微控制器測控系統(tǒng)一樣,對PLC梯形圖程序行依次實時采集輸入端子狀態(tài),進行處理后實時輸出,達不到PLC的控制效果。為此,在RAM區(qū)設(shè)置輸入緩沖作為輸入映像寄存器,采用一次性讀入全部輸入端子狀態(tài),并將其存入輸入緩沖區(qū),然后,按照梯形圖程序行的邏輯關(guān)系,從輸入緩沖區(qū)讀取相應(yīng)輸入端子狀態(tài),運算處理后將待輸出的結(jié)果存入輸出緩沖區(qū)—元件映像寄存器。最后,當梯形圖程序行全部執(zhí)行完畢,一次性將輸出緩沖區(qū)的值輸出到相應(yīng)的輸出端子,經(jīng)過上述三個階段,完成一個程序掃描周期。如此往復(fù),自動進行下一輪的掃描。這樣將串行程序工作和并行工業(yè)控制系統(tǒng)兩種關(guān)系協(xié)調(diào)起來。雖然存在輸入/輸出滯后現(xiàn)象,但微控制器執(zhí)行一條指令的時間是微秒級,執(zhí)行一個掃描周期的時間為幾毫秒,最大為幾十毫秒。相對于電器的動作時間而言,掃描周期是短暫的,可以認為在一個掃描周期內(nèi)輸入端子的狀態(tài)是不變的,對其狀態(tài)變化的采集和處理也是實時的,從而滿足了實時控制的要求。
二、硬件配置及系統(tǒng)資源分析
系統(tǒng)硬件配置以微控制器SM2965為核心,如圖1所示。
該微控制器有64k字節(jié)的FLASH存儲器和1k字節(jié)的RAM,不必擴展外部存儲器,其接口P0~P3全部可作為I/O使用。輸入端子經(jīng)光電隔離后連到P0口的8個腳。用于開關(guān)量的輸入。開關(guān)接通時,相應(yīng)引腳為“1”,開關(guān)斷開時,相應(yīng)引腳為“0”。在輸入采樣階段,MCU(微控制器)讀P0口的狀態(tài),存入輸入緩沖區(qū)相當于輸入映像寄存器。P2口作為PLC的輸出鎖存器。在輸出刷新階段,將輸出緩沖區(qū)的內(nèi)容轉(zhuǎn)存到P2口鎖存器,P2口8個引腳經(jīng)光電隔離后直接驅(qū)動輸出設(shè)備的執(zhí)行機構(gòu)。P3口將鍵盤、顯示器和微型打印機等外設(shè)與PLC連接,使PLC可脫離主機單獨使用。P1作為I/O擴展接口,當輸入、輸出設(shè)備所需I/O點數(shù)超過P0和P2所提供的I/O點數(shù)時,可由P1口通過I/O擴展單元加以擴展。用P1.6和P1.7口軟件模擬I2C總線接口,帶有I2C總線的I/O接口器件、A/D和D/A轉(zhuǎn)換器件作為I2C的從器件與此相連后即可增加I/O點數(shù)和擴展其他功能。系統(tǒng)配置電平轉(zhuǎn)換集成電路ICL232,將TTL電平轉(zhuǎn)換為RS232C電平,可直接與主機相連進行串行通信。SM2965內(nèi)部自帶可編程看門狗電路,其外部僅用簡單的阻容復(fù)位即可。
SM2965片內(nèi)ROM空間分配如圖2所示,PLC系統(tǒng)程序、中斷控制設(shè)置在低地址空間,系統(tǒng)上電復(fù)位從0000H地址直接跳轉(zhuǎn)到PLC系統(tǒng)程序的入口地址,進入PLC監(jiān)控。下載引導(dǎo)程序位于F000H~FFFFH地址范圍,系統(tǒng)上電復(fù)位如檢測到0000H地址的內(nèi)容為空“#0FFH”,則自動跳轉(zhuǎn)到下載引導(dǎo)程序的入口地址為F000H,用于升級或更新PLC系統(tǒng)程序。E000H~EFFFH空間固化了若干個PLC控制范例供實驗時參照。
SM2965片內(nèi)768字節(jié)RAM作為PLC的梯形圖緩沖區(qū),將源程序用PLC匯編器匯編成PLC目標代碼文件,并經(jīng)串行通信口發(fā)送到SM2965,由SM2965將其寫入梯形圖緩沖區(qū)。系統(tǒng)無須配置編程器。
三、系統(tǒng)軟件組成
系統(tǒng)軟件包括微控制器軟件和PC機集成軟件兩部分。為方便系統(tǒng)維護和升級,微控制器軟件采用C51編寫,對實時性要求較高的部分使用匯編語言編寫。微控制器軟件主要包括下載引導(dǎo)程序、系統(tǒng)主程序、PLC指令分析程序及串行口中斷程序。下載引導(dǎo)程序僅在系統(tǒng)升級時調(diào)用。微控制器軟件組成如圖3所示。
PLC程序按輸入采樣、執(zhí)行梯形圖程序行及輸出刷新三個階段進行周期性的循環(huán)掃描,在輸入采樣時,間隔2ms連續(xù)三次采集P0口狀態(tài),結(jié)果全相同時為有效,即將其存入輸入緩沖區(qū),否則重新采樣,以此提高抗干擾能力。執(zhí)行梯形圖程序行時依次讀取PLC運行緩沖區(qū)數(shù)據(jù)進行運算,遇到“=”指令時將運算結(jié)果存入輸出緩沖區(qū)。當MCU從運行緩沖區(qū)讀到“MEND”指令的二進制代碼時,表示梯形圖程序結(jié)束,然后將輸出緩沖區(qū)的內(nèi)容一次性輸出到P2口,從而完成輸出端子的刷新。
PLC上位機軟件如圖4所示,采用Visual C++6.0編寫,主要由串行通信程序和PLC匯編語言匯編器組成,還包括更新范例、裝載范例、裝載指定實驗、系統(tǒng)實時監(jiān)控、模擬仿真、系統(tǒng)升級和在線幫助等輔助模塊。寫完梯形圖源程序后,用PLC匯編器將其匯編成目標程序文件(OBJ文件)。選取主菜單裝載指定實驗,再選定相應(yīng)的OBJ文件,該段目標代碼即被傳送到PLC運行緩沖區(qū)。主菜單上的“更新范例”對應(yīng)于微控制器的“更新指定范例”模塊。調(diào)用更新范例和系統(tǒng)升級命令時需要輸入權(quán)限密碼。
c++相關(guān)文章:c++教程
評論