技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于LPC2294處理器的嵌入式PLC的設(shè)計(jì)

基于LPC2294處理器的嵌入式PLC的設(shè)計(jì)

時(shí)間:2018-02-02 10:24:47來源:網(wǎng)絡(luò)轉(zhuǎn)載

導(dǎo)語:?四十多年來,PLC已成為實(shí)現(xiàn)工業(yè)控制的中堅(jiān)力量。它的功能不斷完善,應(yīng)用領(lǐng)域不斷擴(kuò)大,對(duì)于工業(yè)控制技術(shù)的進(jìn)步與社會(huì)發(fā)展所發(fā)揮的作用無可估量。

四十多年來,PLC已成為實(shí)現(xiàn)工業(yè)控制的中堅(jiān)力量。它的功能不斷完善,應(yīng)用領(lǐng)域不斷擴(kuò)大,對(duì)于工業(yè)控制技術(shù)的進(jìn)步與社會(huì)發(fā)展所發(fā)揮的作用無可估量。PLC以它的高可靠性和易操作性,主導(dǎo)了工控行業(yè)數(shù)十年。PLC雖然有著它固有的優(yōu)勢(shì),但面對(duì)客戶需求的不斷變化,PLC要想生存,就必須突破傳統(tǒng)模式,積極求新求變以適應(yīng)新的市場(chǎng)發(fā)展。而具有低成本優(yōu)勢(shì)的嵌入式PLC,正好能夠滿足這一需求。所謂嵌入式PLC是指采用SoC嵌入式片上系統(tǒng)芯片和嵌入式實(shí)時(shí)操作系統(tǒng)實(shí)現(xiàn)PLC功能,并能用IEC61131-3的標(biāo)準(zhǔn)編程語言編程的PLC.隨著高性能的ARM嵌入式微處理器的發(fā)展,筆者設(shè)計(jì)了新一代微型嵌入式PLC.本文介紹了嵌入式PLC的體系結(jié)構(gòu),包含其硬件設(shè)計(jì)和軟件設(shè)計(jì)方案。

1嵌入式PLC的硬件結(jié)構(gòu)設(shè)計(jì)

1.1微控制器芯片的選取

CPU是PLC的核心,它能夠識(shí)別用戶按照特定的格式輸入的各種指令,并按照指令的規(guī)定,根據(jù)當(dāng)前的現(xiàn)場(chǎng)I/O信號(hào)的狀態(tài),發(fā)出相應(yīng)的控制指令,完成預(yù)定的控制任務(wù)。本設(shè)計(jì)選用的是Philips公司生產(chǎn)的LPC2294微控制器。LPC2294是一款基于32位ARM7TDMI-S,并支持實(shí)時(shí)仿真和跟蹤的CPU芯片,它帶有256kB嵌入的高速Flash存儲(chǔ)器,16kB片內(nèi)SRAM.LPC2294采用144腳封裝、具有極低的功耗以及多達(dá)112個(gè)通用I/O口,9個(gè)邊沿或電平觸發(fā)的外部中斷引腳,最大為60MHz的工作晶振,多個(gè)32位定時(shí)器,PWM單元,實(shí)時(shí)時(shí)鐘和看門狗,轉(zhuǎn)換時(shí)間低至2.44μs的8通道10位ADC、4路高級(jí)CAN接口,另外具有2路UART(16C550),高速I2C(400kbit/s)及2路SPI總線。LPC2294豐富的硬件資源和完善的功能使這款微控制器特別適用于汽車、工業(yè)控制應(yīng)用以及醫(yī)療系統(tǒng)和容錯(cuò)維護(hù)總線等場(chǎng)合。

1.2硬件系統(tǒng)的整體結(jié)構(gòu)

本系統(tǒng)以ARM芯片LPC2294為CPU,設(shè)計(jì)為14路PNP型輸入、10路繼電器輸出的基本模式。硬件總體結(jié)構(gòu)包括:

電源及復(fù)位模塊、ARM微控制器、Flash存儲(chǔ)器擴(kuò)展模塊、開關(guān)量輸入輸出模塊、模擬量輸入輸出模塊、RS485接口及CAN接口通信模塊等。系統(tǒng)的結(jié)構(gòu)如圖1所示。

1.2.1開關(guān)量輸入輸出接口電路

圖2所示為一路開關(guān)量輸入圖。此部分電路前端為R、C組成的一階濾波電路,防止外部干擾信號(hào)進(jìn)入系統(tǒng)中。輸入端外接的輸入控制開關(guān)信號(hào)(直流24V)通過輸入點(diǎn)10.0經(jīng)限流電阻輸入到光電耦合器(PC816)的輸入端,M為輸入點(diǎn)10.0~10.7的公共輸入端。因P0.23口被設(shè)置為輸入模式且口線內(nèi)部無上拉電阻,所以需要外接上拉電阻,防止口線懸空。當(dāng)10.0輸入端為24V時(shí),光電耦合器中的光敏二極管導(dǎo)通,光敏晶體管輸出端被拉為低電平,指示該路輸入狀態(tài)的LED被點(diǎn)亮,P0.23被置為低電平。當(dāng)CPU訪問該路信號(hào)時(shí),將該輸入點(diǎn)對(duì)應(yīng)的輸入過程映像寄存器的值置為1.10.0輸入端為0V時(shí),P0.23為高電平,當(dāng)CPU訪問該路信號(hào)時(shí),則將該輸入點(diǎn)對(duì)應(yīng)的輸入過程映像寄存器的值置為0.其余各個(gè)輸入點(diǎn)所對(duì)應(yīng)的電路及工作原理均相同。

圖3所示為繼電器輸出模塊圖,圖中并聯(lián)在繼電器線圈兩端的二極管這里起續(xù)流作用。該模塊的工作原理如下:當(dāng)內(nèi)部輸出過程映像寄存器為1時(shí),LPC2294端口P1.16輸出0,光敏晶體管導(dǎo)通,繼電器線圈得電,輸出點(diǎn)接通;反之當(dāng)內(nèi)部輸出過程映像寄存器為0時(shí),端口P1.16輸出1,繼電器線圈失電,輸出點(diǎn)斷開。

需要注意的是,當(dāng)LPC2294的GPIO口初上電時(shí),其輸出端口(如本圖中的P1.16)的電壓不穩(wěn)定,這樣易導(dǎo)致外部繼電器誤動(dòng)作而引起外部設(shè)備工作不穩(wěn)定。為此,我們?cè)O(shè)計(jì)了圖4電路用來提高繼電器輸出的穩(wěn)定性。

這是一個(gè)由NE555定時(shí)器組成的單穩(wěn)態(tài)電路,其中VCC5.0D端接圖3中光電耦合器的集電極。其工作原理為:系統(tǒng)上電初始,2、6管腳電平不能突變,保持為低電平。分析NE555的內(nèi)部電路可知,此時(shí)輸出端3管腳輸出高電平,電路開始對(duì)R、C電路進(jìn)行充電,隨著時(shí)間的推移,管腳2、6的電平不斷升高,當(dāng)升至23VCC時(shí),輸出端3管腳將翻轉(zhuǎn)至低電平,使三極管導(dǎo)通,VCC5.0D輸出5V.這樣,系統(tǒng)上電后經(jīng)過一段時(shí)間,I/O口的電平穩(wěn)定下來之后,光電耦合器才得電開始工作。暫穩(wěn)態(tài)的持續(xù)時(shí)間tW取決于外接電阻R和電容C的大小。tW等于電容電壓在充電過程中從0上升到23VCC所需要的時(shí)間,即

1.2.2模擬量輸入電路設(shè)計(jì)

先通過電阻R66,將現(xiàn)場(chǎng)傳感器輸出的電流信號(hào)轉(zhuǎn)換為0~5V電壓信號(hào)進(jìn)行采集??紤]到抗干擾及對(duì)微處理器電路的保護(hù),在轉(zhuǎn)換電路的輸出端加了線性光耦HCNR201.硬件電路如圖5所示。

1.2.3串行通訊接口電路設(shè)計(jì)

為了能與其它工業(yè)控制產(chǎn)品兼容,我們?cè)O(shè)計(jì)時(shí)采用了RS-485接口標(biāo)準(zhǔn)。為了將TTL電平轉(zhuǎn)換成RS485電平,選用了SP485E收發(fā)器。SP485E芯片的數(shù)據(jù)傳輸速率可高達(dá)10Mbps,其最大的特點(diǎn)是在為發(fā)送器輸出和接收器輸入管腳提供了ESD保護(hù)電路。接口電路如圖6所示。

2嵌入式PLC的軟件系統(tǒng)設(shè)計(jì)

嵌入式PLC的軟件分為運(yùn)行系統(tǒng)軟件和開發(fā)系統(tǒng)軟件兩部分。運(yùn)行系統(tǒng)負(fù)責(zé)對(duì)整個(gè)系統(tǒng)的管理和對(duì)用戶程序的編譯執(zhí)行,并保存所有的數(shù)據(jù),完成與外界通訊。開發(fā)系統(tǒng)面對(duì)用戶,完成對(duì)PLC程序的編輯和轉(zhuǎn)換。

2.1PLC運(yùn)行系統(tǒng)軟件

該系統(tǒng)負(fù)責(zé)為應(yīng)用程序分配內(nèi)存,把該應(yīng)用程序加載到分配好的內(nèi)存里,然后開始執(zhí)行該程序的指令。如果該程序要求位于底層的操作系統(tǒng)提供服務(wù),該運(yùn)行系統(tǒng)還必須負(fù)責(zé)處理有關(guān)的服務(wù)請(qǐng)求。該運(yùn)行系統(tǒng)是基于嵌入式操作系統(tǒng)μC/OS-II來開發(fā)的,選用嵌入式操作系統(tǒng)提高了軟件系統(tǒng)的抗干擾性,系統(tǒng)的可靠性及應(yīng)用軟件的開發(fā)效率,縮短了開發(fā)周期。μC/OS-II的移植的主要工作是修改與ARM處理器相關(guān)部分的代碼,它們集中在3個(gè)文件中。

①OS_CPU.H文件該文件包含了用#define定義的與處理器相關(guān)的常量、宏和類型定義。文件中這些數(shù)據(jù)類型的定義如下:

typedefunsignedcharBOOLEAN;

typedefunsignedcharINT8U;

typedefsignedcharINT8S;

typedefunsignedshortINT16U;

typedefsignedshortINT16S;

typedefunsignedintINT32U;

typedefsignedintINT32S;

typedeffloatFP32;

typedefdoubleFP64;

typedefunsignedintOS_STK;

與ARM7體系結(jié)構(gòu)相關(guān)的一些定義如下:

#defineOS_CRITICAL_METHOD2

__swi(0×00)voidOS_TASK_SW(void);

__swi(0×01)void_OSStartHighRdy(void);

__swi(0×02)voidOS_ENTER_CRITICAL(void);

__swi(0×03)voidOS_EXIT_CRITICAL(void);_

_swi(0×40)void*GetOSFunctionAddr(intIndex);

__swi(0×41)void*GetUsrFunctionAddr(intIndex);

__swi(0×42)voidOSISRBegin(void);

__swi(0×43)intOSISRNeedSwap(void);

__swi(0×80)voidChangeToSYSMode(void);

__swi(0×81)voidChangeToUSRMode(void);

__swi(0×82)voidTaskIsARM(INT8Uprio);

__swi(0×83)voidTaskIsTHUMB(INT8Uprio);

/*上述函數(shù)需在移植文件OS_CPU.H中將其聲明。

*/#defineOS_STK_GROWTH1

此代碼段中的OS_ENTER_CRITICAL()函數(shù)和OS_EXIT_CRITICAL()函數(shù)實(shí)現(xiàn)打開和關(guān)閉處理器的功能。

②OS_CPU_C.C文件該文件中的任務(wù)棧結(jié)構(gòu)初始化函數(shù)OSTaskStkInit(),必須根據(jù)移植時(shí)統(tǒng)一定義的任務(wù)堆棧結(jié)構(gòu)進(jìn)行初始化。另外還有9個(gè)系統(tǒng)規(guī)定的鉤子函數(shù)必須聲明,但可以不包含任何代碼,這些鉤子函數(shù)在本移植中全為空函數(shù)。

③OS_CPU_A.S文件的移植共包括4個(gè)函數(shù):多任務(wù)啟動(dòng)函數(shù)中調(diào)用的OSStartHighRdy()、任務(wù)切換函數(shù)OSCtxSw()、中斷任務(wù)切換函數(shù)OSIntCtxSw()、時(shí)鐘節(jié)拍服務(wù)函數(shù)OSTickISR()。

至此整個(gè)μC/OS-II內(nèi)核移植完成。以后的用戶程序都是在這個(gè)基礎(chǔ)上進(jìn)行的擴(kuò)充。

2.2PLC開發(fā)系統(tǒng)軟件

該系統(tǒng)的主要任務(wù)是讓用戶編寫PLC程序,所以還需要設(shè)計(jì)與該系統(tǒng)相對(duì)應(yīng)的編程平臺(tái)。編程平臺(tái)的設(shè)計(jì)主要包括編程界面的設(shè)計(jì)、編輯器的設(shè)計(jì)、轉(zhuǎn)換模塊的設(shè)計(jì)、編譯器的設(shè)計(jì)和通信模塊的設(shè)計(jì)等。軟件系統(tǒng)結(jié)構(gòu)圖如圖7所示。

用戶在編程平臺(tái)里編寫PLC程序。這里借用FX系列PLC的編程軟件SWOPC-FXGP/WIN-C作為編程平臺(tái),編程語言可以使用梯形圖和指令表。然后通過轉(zhuǎn)換程序把編譯后的目標(biāo)文件轉(zhuǎn)化成C語言。轉(zhuǎn)換程序其實(shí)就是一個(gè)解釋系統(tǒng),通過逐條翻譯編程軟件的指令表,生成和處理器指令系統(tǒng)無關(guān)的用戶指令。使用這樣的方式作為上位機(jī)編程平臺(tái),節(jié)省了工作量。

3系統(tǒng)測(cè)試

將所設(shè)計(jì)的PLC軟件系統(tǒng)植入基于LPC2294的嵌入式開發(fā)平臺(tái),與PLC輸入輸出硬件接口板連接,構(gòu)成14輸入10輸出的PLC系統(tǒng)。在上層開發(fā)系統(tǒng)中編寫相應(yīng)的PLC梯形圖,編譯后加載到嵌入式PLC的運(yùn)行系統(tǒng)中。梯形圖如圖8所示。

按下開關(guān)0,相應(yīng)的LED0被點(diǎn)亮,延時(shí)4秒后LED1被點(diǎn)亮。按下開關(guān)1,相應(yīng)的LED2被點(diǎn)亮,同時(shí)LED0被熄滅。

由以上的測(cè)試效果可以看出原型機(jī)的測(cè)試結(jié)果與理論分析結(jié)果相同,所設(shè)計(jì)的PLC控制系統(tǒng)硬件、軟件及μCOS-II操作系統(tǒng)的移植達(dá)到了期望的控制效果,達(dá)到了設(shè)計(jì)要求。

4結(jié)束語

本文針對(duì)目前普通PLC存在的一些不足,提出了一種基于LPC2294的嵌入式PLC設(shè)計(jì)方案。該嵌入式PLC的硬件、軟件、通信等各方面的功能設(shè)計(jì)靈活,易于剪裁,更貼近各種檔次的機(jī)電設(shè)備的要求。該P(yáng)LC完全基于嵌入式系統(tǒng)的技術(shù)基礎(chǔ),拿來就可以用,且SOC芯片、嵌入式操作系統(tǒng)、符合IEC61131-3編程語言標(biāo)準(zhǔn)編程環(huán)境等在市場(chǎng)上很容易找到,因此該嵌入式PLC在我國(guó)市場(chǎng)的使用和推廣前景十分可觀。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:基于PAC的機(jī)器視覺應(yīng)用方案

下一篇:機(jī)器視覺在ADAS系統(tǒng)中的應(yīng)用

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)