《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ISP微控制器的PLC實(shí)現(xiàn)方法
基于ISP微控制器的PLC實(shí)現(xiàn)方法
摘要: 本文以自帶在系統(tǒng)中編程(ISP)功能的、高性價(jià)比的微控制器SM2965為核心,研制了基于ISP功能的可編程序控制器,,用于PLC控制實(shí)驗(yàn),。下面介紹PLC的設(shè)計(jì)思路、硬件構(gòu)成和軟件設(shè)計(jì)方法。
關(guān)鍵詞: PLC 微控制器 SM2965
Abstract:
Key words :

     可編程序控制器(Programmable Logic Controller,簡(jiǎn)稱PLC)把自動(dòng)化技術(shù)、計(jì)算機(jī)技術(shù)和通信技術(shù)融為一體,,按照成熟而有效的繼電控制概念和設(shè)計(jì)思想,用先進(jìn)的微控制器技術(shù)來實(shí)現(xiàn)I/O的實(shí)時(shí)檢測(cè)和控制,。由于PLC具有編程簡(jiǎn)單,、可靠性高、通用性強(qiáng)和使用方便等特點(diǎn),,因此得到廣泛應(yīng)用,。PLC技術(shù)已經(jīng)成為工科院校電工學(xué)的必修內(nèi)容。但PLC的種類很多,,發(fā)展很快,,而指令系統(tǒng)和使用方法又不盡相同,使PLC的教學(xué)內(nèi)容總是滯后于PLC的技術(shù)發(fā)展,。為了改變這種狀況,,我們以自帶在系統(tǒng)中編程(ISP)功能的、高性價(jià)比的微控制器SM2965為核心,,研制了基于ISP功能的可編程序控制器,,用于PLC控制實(shí)驗(yàn)。下面介紹PLC的設(shè)計(jì)思路、硬件構(gòu)成和軟件設(shè)計(jì)方法,。

一,、采用ISP微控制器SM2965設(shè)計(jì)PLC的思路

      為了滿足對(duì)嵌入式系統(tǒng)采用高級(jí)語(yǔ)言開發(fā)的需求,新一代微控制器配置了ISP功能,,它是指在用戶設(shè)計(jì)的微控制器系統(tǒng)中為配置新的系統(tǒng)功能對(duì)器件進(jìn)行重新編程的技術(shù),。在PLC中采用具有ISP功能的微控制器,不僅可以在線更新用戶程序,,而且還可以在線升級(jí)系統(tǒng)程序,。使PLC教學(xué)能緊跟PLC最新技術(shù)發(fā)展。

(一)SM2965的特點(diǎn)

SM2965的內(nèi)核是標(biāo)準(zhǔn)的80C52,,但在此基礎(chǔ)上擴(kuò)展了以下功能:

在系統(tǒng)中編程,編程電壓為+5V,;

64k字節(jié)快閃存儲(chǔ)器(FLASH E2PROM),,ISP功能使FLASH E2PROM可在線編程;

1k字節(jié)的RAM空間—256字節(jié)的片內(nèi)RAM和768字節(jié)的片內(nèi)擴(kuò)展內(nèi)存(EXRAM),;

可編程的看門狗定時(shí)器,。

    可見,一片SM2965包含了標(biāo)準(zhǔn)的80C32,、FLASH,、E2PROM(28SF512)、SRAM(靜態(tài)數(shù)據(jù)存儲(chǔ)器)和WDT(看門狗定時(shí)器)SM2965是性價(jià)比極相當(dāng)高的“單片”計(jì)算機(jī),。而其ISP特性使得FLASH E2PROM既可作為程序空間,,也可像E2PROM一樣保存數(shù)據(jù)。以其為核心設(shè)計(jì)的PLC具有成本低,、體積小,、擴(kuò)展方便及使用靈活等優(yōu)點(diǎn)。

(二)由微控制器組成PLC的思路

     以微控制器為核心設(shè)計(jì)PLC,,其硬件組成與微控制器測(cè)控系統(tǒng)基本相同,。但在微控制器測(cè)控系統(tǒng)中,“測(cè)”和“控”的過程在時(shí)間上是串行關(guān)系,。而PLC是按循環(huán)掃描方式進(jìn)行工作的,,每個(gè)掃描周期包括輸入采樣、程序執(zhí)行和輸出刷新三個(gè)階段,,采用集中輸入,、集中輸出并行關(guān)系的工作方式。若像微控制器測(cè)控系統(tǒng)一樣,,對(duì)PLC梯形圖程序行依次實(shí)時(shí)采集輸入端子狀態(tài),,進(jìn)行處理后實(shí)時(shí)輸出,達(dá)不到PLC的控制效果。為此,,在RAM區(qū)設(shè)置輸入緩沖作為輸入映像寄存器,,采用一次性讀入全部輸入端子狀態(tài),并將其存入輸入緩沖區(qū),,然后,,按照梯形圖程序行的邏輯關(guān)系,從輸入緩沖區(qū)讀取相應(yīng)輸入端子狀態(tài),,運(yùn)算處理后將待輸出的結(jié)果存入輸出緩沖區(qū)—元件映像寄存器,。最后,當(dāng)梯形圖程序行全部執(zhí)行完畢,,一次性將輸出緩沖區(qū)的值輸出到相應(yīng)的輸出端子,,經(jīng)過上述三個(gè)階段,完成一個(gè)程序掃描周期,。如此往復(fù),,自動(dòng)進(jìn)行下一輪的掃描。這樣將串行程序工作和并行工業(yè)控制系統(tǒng)兩種關(guān)系協(xié)調(diào)起來,。雖然存在輸入/輸出滯后現(xiàn)象,,但微控制器執(zhí)行一條指令的時(shí)間是微秒級(jí),執(zhí)行一個(gè)掃描周期的時(shí)間為幾毫秒,,最大為幾十毫秒,。相對(duì)于電器的動(dòng)作時(shí)間而言,掃描周期是短暫的,,可以認(rèn)為在一個(gè)掃描周期內(nèi)輸入端子的狀態(tài)是不變的,,對(duì)其狀態(tài)變化的采集和處理也是實(shí)時(shí)的,從而滿足了實(shí)時(shí)控制的要求,。

二,、硬件配置及系統(tǒng)資源分析

      系統(tǒng)硬件配置以微控制器SM2965為核心,如圖1所示,。

34.jpg

        該微控制器有64k字節(jié)的FLASH存儲(chǔ)器和1k字節(jié)的RAM,,不必?cái)U(kuò)展外部存儲(chǔ)器,其接口P0~P3全部可作為I/O使用,。輸入端子經(jīng)光電隔離后連到P0口的8個(gè)腳,。用于開關(guān)量的輸入。開關(guān)接通時(shí),,相應(yīng)引腳為“1”,,開關(guān)斷開時(shí),相應(yīng)引腳為“0”,。在輸入采樣階段,,MCU(微控制器)讀P0口的狀態(tài),,存入輸入緩沖區(qū)相當(dāng)于輸入映像寄存器。P2口作為PLC的輸出鎖存器,。在輸出刷新階段,,將輸出緩沖區(qū)的內(nèi)容轉(zhuǎn)存到P2口鎖存器,P2口8個(gè)引腳經(jīng)光電隔離后直接驅(qū)動(dòng)輸出設(shè)備的執(zhí)行機(jī)構(gòu),。P3口將鍵盤,、顯示器和微型打印機(jī)等外設(shè)與PLC連接,使PLC可脫離主機(jī)單獨(dú)使用,。P1作為I/O擴(kuò)展接口,,當(dāng)輸入、輸出設(shè)備所需I/O點(diǎn)數(shù)超過P0和P2所提供的I/O點(diǎn)數(shù)時(shí),,可由P1口通過I/O擴(kuò)展單元加以擴(kuò)展,。用P1.6和P1.7口軟件模擬I2C總線接口,帶有I2C總線的I/O接口器件,、A/D和D/A轉(zhuǎn)換器件作為I2C的從器件與此相連后即可增加I/O點(diǎn)數(shù)和擴(kuò)展其他功能,。系統(tǒng)配置電平轉(zhuǎn)換集成電路ICL232,將TTL電平轉(zhuǎn)換為RS232C電平,,可直接與主機(jī)相連進(jìn)行串行通信。SM2965內(nèi)部自帶可編程看門狗電路,,其外部?jī)H用簡(jiǎn)單的阻容復(fù)位即可,。

      SM2965片內(nèi)ROM空間分配如圖2所示,PLC系統(tǒng)程序,、中斷控制設(shè)置在低地址空間,,系統(tǒng)上電復(fù)位從0000H地址直接跳轉(zhuǎn)到PLC系統(tǒng)程序的入口地址,進(jìn)入PLC監(jiān)控,。下載引導(dǎo)程序位于F000H~FFFFH地址范圍,,系統(tǒng)上電復(fù)位如檢測(cè)到0000H地址的內(nèi)容為空“#0FFH”,則自動(dòng)跳轉(zhuǎn)到下載引導(dǎo)程序的入口地址為F000H,,用于升級(jí)或更新PLC系統(tǒng)程序,。E000H~EFFFH空間固化了若干個(gè)PLC控制范例供實(shí)驗(yàn)時(shí)參照。

35.jpg

SM2965片內(nèi)768字節(jié)RAM作為PLC的梯形圖緩沖區(qū),,將源程序用PLC匯編器匯編成PLC目標(biāo)代碼文件,,并經(jīng)串行通信口發(fā)送到SM2965,由SM2965將其寫入梯形圖緩沖區(qū),。系統(tǒng)無須配置編程器,。

三、系統(tǒng)軟件組成

       系統(tǒng)軟件包括微控制器軟件和PC機(jī)集成軟件兩部分,。為方便系統(tǒng)維護(hù)和升級(jí),,微控制器軟件采用C51編寫,,對(duì)實(shí)時(shí)性要求較高的部分使用匯編語(yǔ)言編寫。微控制器軟件主要包括下載引導(dǎo)程序,、系統(tǒng)主程序,、PLC指令分析程序及串行口中斷程序。下載引導(dǎo)程序僅在系統(tǒng)升級(jí)時(shí)調(diào)用,。微控制器軟件組成如圖3所示,。

38.jpg

      PLC程序按輸入采樣、執(zhí)行梯形圖程序行及輸出刷新三個(gè)階段進(jìn)行周期性的循環(huán)掃描,,在輸入采樣時(shí),,間隔2ms連續(xù)三次采集P0口狀態(tài),結(jié)果全相同時(shí)為有效,,即將其存入輸入緩沖區(qū),,否則重新采樣,以此提高抗干擾能力,。執(zhí)行梯形圖程序行時(shí)依次讀取PLC運(yùn)行緩沖區(qū)數(shù)據(jù)進(jìn)行運(yùn)算,,遇到“=”指令時(shí)將運(yùn)算結(jié)果存入輸出緩沖區(qū)。當(dāng)MCU從運(yùn)行緩沖區(qū)讀到“MEND”指令的二進(jìn)制代碼時(shí),,表示梯形圖程序結(jié)束,,然后將輸出緩沖區(qū)的內(nèi)容一次性輸出到P2口,從而完成輸出端子的刷新,。

       PLC上位機(jī)軟件如圖4所示,,采用Visual C++6.0編寫,主要由串行通信程序和PLC匯編語(yǔ)言匯編器組成,,還包括更新范例,、裝載范例、裝載指定實(shí)驗(yàn),、系統(tǒng)實(shí)時(shí)監(jiān)控,、模擬仿真、系統(tǒng)升級(jí)和在線幫助等輔助模塊,。寫完梯形圖源程序后,,用PLC匯編器將其匯編成目標(biāo)程序文件(OBJ文件)。選取主菜單裝載指定實(shí)驗(yàn),,再選定相應(yīng)的OBJ文件,,該段目標(biāo)代碼即被傳送到PLC運(yùn)行緩沖區(qū)。主菜單上的“更新范例”對(duì)應(yīng)于微控制器的“更新指定范例”模塊,。調(diào)用更新范例和系統(tǒng)升級(jí)命令時(shí)需要輸入權(quán)限密碼,。

39.jpg

四、應(yīng)用實(shí)例

     某送料小車自動(dòng)控制系統(tǒng)如圖5所示,,STa,、STb分別為左行和右行限位開關(guān),。小車碰到STa自動(dòng)停下來裝料,10s后裝料完畢自動(dòng)開始右行,,碰到STb自動(dòng)停下來卸料,,15s后卸料完畢自動(dòng)往左行,這樣不停地循環(huán)工作,,直到按下停止按鈕為止,。

36.jpg

輸入:
SBF(右行手動(dòng)按鈕):I0.0
SBR(左行手動(dòng)按鈕):I0.1
SB1(手動(dòng)停止按鈕):I0.2
STa(左行限位):I0.3
STb(右行限位):I0.4

輸出:
KMF(左行線圈):Q0.0
KMR(右行線圈):Q0.1
裝料:Q0.2
卸料:Q0.3

此例屬于一個(gè)被控對(duì)象(送料小車)的兩種相反的工作狀態(tài)(左行和右行),所以基本電路采用雙向控制電路,,結(jié)合其他控制條件,,可以設(shè)計(jì)出小車控制的梯形圖如圖7所示。

圖7 繼電器梯形圖

五,、系統(tǒng)特點(diǎn)

根據(jù)PLC的發(fā)展,,可在線升級(jí)部分或全部系統(tǒng)程序;

可通過I2C總線擴(kuò)展系統(tǒng)功能,;

無需配置編程器,,使用標(biāo)準(zhǔn)的串行口下載梯形圖程序;

調(diào)用ISP功能把梯形圖范例固化到MCU內(nèi)部FLASH中,,具有斷電數(shù)據(jù)保持特性,;

對(duì)RAM寫操作把梯形圖實(shí)驗(yàn)寫到MCU內(nèi)部EXRAM中,EXRAM擦寫次數(shù)無限,;

在實(shí)驗(yàn)中可參考PLC控制范例,;

PLC控制范例可以根據(jù)不同專業(yè)要求自行配置;

用于實(shí)際控制時(shí),,只需將該梯形圖程序形成的OBJ文件在線裝載到范例1位置;

系統(tǒng)程序具有梯形圖語(yǔ)句翻譯功能,,可外接鍵盤/顯示器,,PLC可獨(dú)立使用;

通用性強(qiáng),,不局限于某種指令系統(tǒng),,用戶可自行設(shè)計(jì)匯編器;

成本低,,器件主要有SM2965,、232電平轉(zhuǎn)換器、光電耦合器,、穩(wěn)壓塊,、接線端子以及幾個(gè)電阻和電容。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。