- 相關(guān)推薦
基于嵌入式PLC芯片組開發(fā)PLC的方法
摘要:介紹利用嵌入式PLC芯片組開發(fā)PLC產(chǎn)品的方法。整個(gè)開發(fā)過程全部是自主開發(fā),易學(xué)易用,符合國(guó)人編程及使用習(xí)慣。
關(guān)鍵詞:嵌入式PLC芯片組 PLC 開發(fā)
嵌入式PLC芯片組是一個(gè)加載了嵌入式PLC軟件平臺(tái)的核心芯片組,具備PLC功能和CAN,RS232/485通信功能,能夠完成常規(guī)過程控制的控制模塊。在其基礎(chǔ)上,能輕松、快速地設(shè)計(jì)出PLC產(chǎn)品。下面就以我用嵌入式PLC芯片組開發(fā)的24點(diǎn)開關(guān)量PLC為例,介紹PLC的開發(fā)方法。
1嵌入式PLC芯片組介紹
⒈1嵌入式PLC芯片組原理框圖
1.2嵌入式PLC芯片組技術(shù)性能指標(biāo)
① 供電:+5V 200mA,RAM有掉電保護(hù)功能。
② CPU: C8051F040。
③ 引腳功能:
32 個(gè)I/O、4 個(gè)AD、 2 個(gè)DA
④ 通信接口
CANBUS:整個(gè)CAN總線網(wǎng)絡(luò)互聯(lián)全由CANSet 軟件來實(shí)現(xiàn)。設(shè)置起來十分簡(jiǎn)便。
UART0:可用于梯形圖程序及上位機(jī)的監(jiān)控,還可以與人機(jī)界面通訊。
UART1:可用于下載CANSET軟件生成的CAN網(wǎng)絡(luò)配置文件,可以通過RS485網(wǎng)絡(luò)連接第三方設(shè)備,如PC、三菱PLC等等。
2 、 24點(diǎn)開關(guān)量PLC的開發(fā)
采用嵌入式PLC芯片組構(gòu)建單片機(jī)嵌入系統(tǒng),設(shè)計(jì)方首先要有滿足設(shè)計(jì)自身要求的PLC硬件,另外還要用C或匯編語言編少量的接口驅(qū)動(dòng)程序。
2.1硬件設(shè)計(jì)
⑴功能特點(diǎn):
①16點(diǎn)輸入,8點(diǎn)輸出的開關(guān)型通用PLC。
②支持CAN總線網(wǎng)絡(luò),可作CAN網(wǎng)絡(luò)的主站或從站。
③支持梯形圖編程,可連接計(jì)算機(jī)或人機(jī)界面。
④支持RS485網(wǎng)絡(luò),可作RS485網(wǎng)絡(luò)的主站或從站。
⑵原理圖
原理大體可分為四大部分:即輸入、輸出、指示燈、通信四大部分
開關(guān)量的輸入部分原理圖
其中X01是開關(guān)量的一個(gè)輸入點(diǎn),經(jīng)過光電隔離后,出來的信號(hào)為AX0,有多少個(gè)輸入,就有多少個(gè)這種電路。單片機(jī)常常用到I/O的擴(kuò)展功能,在此我們也要用到這一功能,以增加I/O口。由于簡(jiǎn)單輸入接口擴(kuò)展只解決數(shù)據(jù)輸入的緩沖問題,所以在這里的擴(kuò)展依舊使用典型74244作為擴(kuò)展芯片。
開關(guān)量輸出部分原理圖
指示燈部分
有了輸入、輸出,怎樣知道輸入已接通?或者輸出已經(jīng)輸出?人們最常用的辦法是用指示燈來指示,一看一目了然。
在此我們不妨也來借鑒一下。
通信部分
嵌入式芯片組中有兩個(gè)串口和一個(gè)CAN通信口。串口是RS-232接口。部分電路原理圖如下:
在構(gòu)建原理圖時(shí),一定注意各個(gè)芯片相連時(shí)的電平匹配問題。
⒉2軟件開發(fā)
利用嵌入式PLC芯片組做PLC產(chǎn)品,除了硬件之外,還要加載軟件。軟件編程環(huán)境是KEIL C51中的Uvision2 。
Uvision2是KEIL C51 for windows 的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。
整個(gè)嵌入式PLC產(chǎn)品的軟件包括三個(gè)部分。
⑴內(nèi)核程序(嵌入式PLC內(nèi)核)
內(nèi)核的功能體現(xiàn)在梯形圖語言、通信及用戶驅(qū)動(dòng)程序接口三個(gè)方面。
⑵驅(qū)動(dòng)程序的嵌入
用戶驅(qū)動(dòng)程序包括頭文件部、中斷入口調(diào)用矢量地址部分和用戶程序部分。其中頭文件部分和中斷入口調(diào)用矢量地址部分程序基本是大同小異,主要是用戶程序的嵌入部分。內(nèi)核給出了七個(gè)用戶嵌入程序的接口,我們只需要充分理解各個(gè)接口的功能就可進(jìn)行嵌入程序的開發(fā)了,下面以24點(diǎn)開關(guān)量驅(qū)動(dòng)程序的嵌入為例,對(duì)用戶程序部分作簡(jiǎn)單的說明。
*******************USER_CONFIG*********************
這部分主要是對(duì)用戶I/O進(jìn)行配置。
例:USER_CONFIG:
MOV SFRPAGE,#0FH
MOV P3MDOUT,#0FFH
MOV P2MDOUT,#0FFH
ANL P4MDOUT,#0F0H
ORL P4MDOUT,#0FH
ORL P0MDOUT,#0F0H
ORL P0MDOUT,#0F4H
RET
*******************USER_START**********************
這部分是用戶上電初始化程序代碼。
例:USER_START:
MOV DPTR,#RAM_PX+1
MOV A,#00H
MOVX @DPTR,A
MOV INPUT_CNT,#08 ;輸入口采樣次數(shù)指針
MOV LAMP_CNT,#00H ;指示燈組數(shù)指針
RET
********************INIT_RUN*********************
這部分是用戶運(yùn)行初始化程序代碼。如果沒有可直接返回。
例:INIT_RUN:
RET
********************INIT_SET*********************
這部分是用戶設(shè)置初始化程序代碼。
例:INIT_RUN:
MOV DPTR,#XLAMP
MOV A,#00H
MOVX @DPTR,A
MOV DPTR,#RAM_PY+1
MOV A,#00H
MOVX @DPTR,A
LCALL SCAN
RET
********************USER_STEP*********************
這部分是用戶每步執(zhí)行程序。如果沒有可直接返回。
例:USER_STEP:
RET
********************USER_TMS**********************
這部分是用戶2.5MS定時(shí)運(yùn)行程序代碼。24點(diǎn)開關(guān)量PLC輸入的采樣及指示燈的刷新這是在這里完成的。
指示燈的刷新:
MOV DPTR,#XLAMP ;XLAMP是指示燈的值
MOVX A,@DPTR
CPL A
MOV P2,A ;P0、P2口是控制指示燈的。
INC DPTR
MOVX A,@DPTR
MOV P0,A
輸入口的采樣如下:
MOV A,INPUT_CNT
ANL A,#0FH
JNZ USER_INTMS1 ;八次采樣結(jié)束
RET
USER_INTMS1:DEC A
```````MOV B,#02H
```````MUL AB
```````MOV DPTR,#XINPUT
```````ADD A,DPL
```````MOV DPL,A
```````MOV A,DPH
```````ADDC A,B
```````MOV DPH,A
MOV SFRPAGE,#0FH
ORL P4,#0CH
ANL P4,#0FBH ;P4.2片選
LCALL DELAY
MOV A,P1
MOVX @DPTR,A ;
ORL P4,#04H
ANL P4,#0F7H ;P4.3片選
MOV A,P1
INC DPTR
MOVX @DPTR,A ;保存16個(gè)輸入口采樣值
ORL P4,#08H
DEC INPUT_CNT
RET
DELAY: NOP
NOP
NOP
RET
********************USER_SCAN**********************
這部分是用戶演算周期掃描程序代碼。如每個(gè)輸入口的8次采樣值的處理、輸出的刷新、輸入輸出指示燈的賦值都可在此完成。
例:輸出口的刷新:
MOV DPTR,#RAM_PY+1
MOVX A,@DPTR
CPL A
MOV P3,A
RET
RAM_PY+1的值與輸出繼電器物理地址一一對(duì)應(yīng)并且輸出。其中P3口是控制繼電器的。
以上便是驅(qū)動(dòng)程序的嵌入。
綜上所述,整個(gè)嵌入過程主要是完成三件事情:a、輸入采樣并對(duì)采樣進(jìn)行處理,處理后的結(jié)果存放到RAM_PX+1、 RAM_PX。每個(gè)開關(guān)量的輸入與輸入指示燈的物理地址的一一對(duì)應(yīng)并保持刷新。b、輸出的刷新。輸出刷新的值是從RAM_PY+1 、RAM_PY中取的。同時(shí)開關(guān)量的輸出與輸出指示燈的物理地址同樣需要一一對(duì)應(yīng)。c、對(duì)輸入輸出指示燈的刷新。
⑶梯形圖程序。(略)
由于內(nèi)核的系統(tǒng)軟件中已經(jīng)加入了232通信、485通信和CAN通信的功能,所以通信功能也就水到渠成了。
3結(jié)束語
利用嵌入式芯片組做嵌入式PLC產(chǎn)品,設(shè)計(jì)方只需用C或匯編 編少量的接口驅(qū)動(dòng)程序——不到源軟件設(shè)計(jì)工作量的10%,且硬件上內(nèi)核的電磁兼容性有保障,半個(gè)月即推出新品。嵌入式PLC芯片組一定會(huì)有一個(gè)美好的未來!
參考文獻(xiàn):
1. 黃石科威自控有限公司《嵌入式PLC原理與應(yīng)用》
2. 沈陽(yáng)新華龍有限公司《C8051F040數(shù)據(jù)手冊(cè)》
3. 黃石科威自控有限公司《EASY編程手冊(cè)》
4.《KEIL C51開發(fā)環(huán)境使用手冊(cè)》
【基于嵌入式PLC芯片組開發(fā)PLC的方法】相關(guān)文章:
基于PLC的電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)08-07
基于PLC的閘門監(jiān)控系統(tǒng)設(shè)計(jì)07-18
關(guān)于嵌入式PLC的信息安全實(shí)現(xiàn)的論文09-14
基于PLC的斷路器型式試驗(yàn)系統(tǒng)設(shè)計(jì)10-26
基于壓鑄機(jī)的PLC 控制系統(tǒng)(一)08-05
PLC輸入/輸出點(diǎn)的合理使用及擴(kuò)展方法09-10
淺析PLC控制系統(tǒng)的設(shè)計(jì)方法概要09-25
基于plc控制全自動(dòng)洗衣機(jī)的開題報(bào)告05-04
淺談PLC的前景與未來05-18
電梯plc開題報(bào)告10-10