国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于單片機與PLC通訊系統(tǒng)的設(shè)計和實現(xiàn)

2014-08-11 22:18:07孫永波
科技創(chuàng)新與應(yīng)用 2014年25期
關(guān)鍵詞:單片機

摘 要:文章設(shè)計了單片機和PLC實現(xiàn)串行通信的硬件連接和軟件變成的方法,借助于RS232轉(zhuǎn)RS485電路,將PLC與單片機開發(fā)板進行連接,上位機就是單片機,數(shù)據(jù)通過單片機傳送給PLC,從而準(zhǔn)確的控制PLC上三相異步電機的正轉(zhuǎn)和反轉(zhuǎn),PLC可以對所接收到的數(shù)據(jù)進行審核,充分的提升了所接收到數(shù)據(jù)的可靠性,之后便會將這些數(shù)據(jù)反饋給單片機,從而實現(xiàn)單片機和PLC相結(jié)合對電機的有效控制。

關(guān)鍵詞:單片機;PLC;通訊系統(tǒng)的實現(xiàn)

1 基于單片機與PLC通訊系統(tǒng)軟件的設(shè)計

1.1 通訊協(xié)議

要想實現(xiàn)基于單片機和PLC的通訊系統(tǒng),主要是借助于單片機向PLC接收數(shù)據(jù)和下達(dá)命令的功能,通訊協(xié)議則應(yīng)采用命令和響應(yīng)的模式,一幀就是一次通信發(fā)送的一組數(shù)據(jù),33個字符組成一幀,在這里應(yīng)注意以下幾點內(nèi)容:(1)起始字符應(yīng)用g表示,并且其也占用一個字符;(2)指令主要分為讀和寫兩種類型,文章所采用的為寫指令,其也占用一個字符;(3)采用十六進制的ASCII碼來表示目標(biāo)PLC的站地址,在PLC程序中應(yīng)先將其設(shè)定好,并且應(yīng)與單片機保持一致,應(yīng)占用兩個字符;(4)同樣的應(yīng)用十六進制的ASCII碼來表示目標(biāo)寄存器的地址,在PLC的內(nèi)部應(yīng)用4個字節(jié)來表示寄存器,這四個字節(jié)分別表示寄存器的類型和號碼,共占用4個字符;(5)十六進制的ASCII碼也可以表示要寫入的數(shù)據(jù),雖然它有16個字節(jié),但最多只可寫入8個字節(jié),同時應(yīng)將數(shù)據(jù)區(qū)填滿;(6)BCC校驗碼的作用為檢查傳輸?shù)臄?shù)據(jù)中是否存在錯誤,保證傳輸?shù)臏?zhǔn)確性,其占用兩個字符;(7)結(jié)束字符應(yīng)用G表示,其與起始字符一樣,占用一個字符。

在單片機接收到PLC的反饋信息后,無論是立即執(zhí)行開始命令還是結(jié)束命令,它們的字符分別為g和G,此時電動機的狀態(tài)信息就是狀態(tài)信息。文章所采用的PLC的類型為S7-200,其支持多種通訊協(xié)議,比如說點對點接口協(xié)議、多點接口協(xié)議、PROFIBUS協(xié)議以及自由通信協(xié)議等,其都是支持的,在自由口的通信模式下,S7-200的串行通訊口就會受到相應(yīng)應(yīng)用程序的控制,如果其是出于RUN的方式下,在選擇了自由口這一通信模式后,用戶的程序就會通過接收中斷和傳送中斷來接收指令和發(fā)送指令,此時就實現(xiàn)了用戶程序?qū)νㄐ趴诓僮鞯挠行Э刂啤?/p>

通過寄存器SMB130和SMB30來準(zhǔn)確的設(shè)置PLC的通信參數(shù),校驗方式、波特率以及數(shù)據(jù)位等參數(shù)都應(yīng)與單片機保持一致,其內(nèi)部的運行流程為:程序開始-設(shè)置通訊端-等待接收-按照相應(yīng)的協(xié)議處理數(shù)據(jù)-檢驗數(shù)據(jù)并進行相應(yīng)的操作。

1.2 通訊協(xié)議的實現(xiàn)

1.2.1 單片機初始化部分子程序

void init_serialcomm(void)

{SCON=0x50; /*串口工作方式1,允許接收*/

TMOD=0x20; PCON=0x00; /*SMOD=0*/

TH1=0xFD; /*波特率為9.6K*/

TL1=0xFD; IE=0x95; /*開總中斷,開串口中斷, 開外部中斷0,開外部中斷1*/

……}

單片機發(fā)送數(shù)據(jù)的子程序

void send_data() interrupt 0 using 2

{EX0=0; delay1(4) ; if(KEY==0)

{ for(j=0;j<33;j++)

{SBUF=tab[j] ; /* 將數(shù)據(jù)發(fā)送到串口*/

while(!TI) ; /* 等待串口數(shù)據(jù)發(fā)送結(jié)束*/

TI=0; /*復(fù)位串口中斷*/}}

EX0=1;}

單片機接收數(shù)據(jù)子程序

void intcom() interrupt 4 using 0 /*輸入中斷*/

{EX0=0; EX1=0;

For(i=0;i<21;++)

{If(RI); RI=0; rc[i]=SBUF;}}

1.2.2 PLC的部分通訊程序

(1)PLC的主程序部分

LD SM0.1

CALL SBR_0:SBR0 //首次掃描調(diào)用初始化程序

LDB=VB134, VB199 // 指令中的站地址與本站地址相符

AB=VB102, 6 //指令類型為寫指令

A M0.0 //BCC校驗碼正確

CALL write:SBR1 // 調(diào)用寫子程序

LD M0.1

CALL verify:SBR3 // 調(diào)用BCC 校驗碼子程序

LD SM0.0

CALL SBR_2:SBR2 //調(diào)用電動機控制子程序

LD SM4.5 //當(dāng)端口空閑時啟動RCV

RCV VB100, 0

(2)PLC的初始化程序

LD SM0.0

MOVB 9, SMB30 //自由口協(xié)議,9600bps,8個數(shù)據(jù)位,無校驗位

LD SM0.0 //RCV指令初始化

MOVB 16#EC, SMB87

MOVB 103, SMB88

MOVB 71, SMB89

MOVW +1000, SMW92

MOVB 35, SMB94

R SM87.2, 1

LD SM0.0

ATCH INT_0:INT0, 23 //接收完成事件連接到中斷程序0

LD SM0.0

ATCH INT_1:INT1, 9 //發(fā)送完成事件連接到中斷程序1

LD SM0.0

ENI

LD SM0.0

MOVB 3, VB199 //將本機站地址裝入寄存器

LD SM0.0

MOVD &VB102, VD149 //裝入地址指針

MOVB 0, VB179 //BCC碼寄存器清零

MOVD &VB156, VD181 //裝入地址指針

MOVB 0, VB180 //BCC校驗碼寄存器清

2 基于單片機與PLC通訊系統(tǒng)硬件的連接

此通訊系統(tǒng)的硬件部分主要由四部分組成,分別為三相異步電動機、S7-200PLC、STC89C52單片機和MAX485接口芯片,在單片機的開發(fā)板上同時集成了MAX485接口芯片和STC89C52單片機,并且在其上面的電平已經(jīng)被轉(zhuǎn)換成了RS232電平,因此,RS485總線與開發(fā)板就是直接相連的,之后連接PLC,控制電動機主要是依靠PLC上的輸出信號控制繼電器這一功能。

2.1 232/485電平轉(zhuǎn)換電路。由于單片機的通信口采用的為RS232,而PLC采用的則為RS485,它們的電氣規(guī)范是無法較好的相容的,那么就用有中間電路來匹配RS232轉(zhuǎn)RS485,而PLC上的PPI電纜正是這樣一種匹配電纜。在RS232接口上,發(fā)送TXD線和接收RXD線是相互獨立的,接收和發(fā)送的工作也是可以同時進行的,因此,應(yīng)將RS232設(shè)計成兩個設(shè)備之間的單獨通訊,對于兩個設(shè)備的聯(lián)接工作并不適用,因此,在它同時進行接收和發(fā)送工作時也是不會發(fā)生通訊碰撞的。RS485在其通訊過程中采用的為兩根差分的A線和B線,0和1分別代表其相對的電平,而在同一個時間段是只能由一個設(shè)備來驅(qū)動總線的。作為Maxim公司最新生產(chǎn)的一種使用RS485的接口芯片,MAX485接口芯片的工作環(huán)境為+5V的單一電源,并且其采用的為半雙工的通訊方式。

圖1為PLC與MAX485接口芯片的連接圖,其中DI腳是數(shù)據(jù)輸入引腳,RO腳是數(shù)據(jù)輸出引腳,DE腳是DI腳的使能端,在高電平時選通,而RE腳則是RO腳的使能端,在低電平時有效。A和B兩個腳同時是該芯片的輸入端和輸出端,而在具體確定MAX485接口芯片是該進行輸入還是輸出的操作時,則應(yīng)充分的考慮到DE腳和RE腳的電平情況。

通過以上的論述,對基于單片機與PLC通訊系統(tǒng)軟件的設(shè)計以及基于單片機與PLC通訊系統(tǒng)硬件的連接兩個方面的內(nèi)容進行了詳細(xì)的分析和探討。此通訊系統(tǒng)采用的是S7-200PLC和51單片機串行的方式,其采用的為差分接收和平衡驅(qū)動的RS-485的接口標(biāo)準(zhǔn),具體開發(fā)成本低并且操作簡單等特點,在其實際運行的過程中,具有較強的抗干擾能力,并且性能十分穩(wěn)定。因此,應(yīng)繼續(xù)以此系統(tǒng)為原型,將智能傳感技術(shù)和網(wǎng)絡(luò)技術(shù)應(yīng)用其中,加強其功能,從而使此系統(tǒng)得到更加廣泛的應(yīng)用。

參考文獻(xiàn)

[1]楊漢生.單片機多機通信的Proteus仿真設(shè)計[J].四川兵工學(xué)報,2010.

[2]段玉濤.虛擬PLC硬件仿真系統(tǒng)的研究與設(shè)計[J].廣東工業(yè)大學(xué),2011.

作者簡介:孫永波(1980-),身份證號:230106198012252014,本科學(xué)歷:電氣自動化專業(yè),2000年至2014年4月在百威英博哈爾濱啤酒有限公司歷任自動化技術(shù)員,工程師、生產(chǎn)維護主管工作,有較豐富的電氣自動化系統(tǒng)設(shè)計及維護經(jīng)驗。

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機的平衡控制系統(tǒng)設(shè)計
電子制作(2017年19期)2017-02-02 07:08:27
Microchip推出兩個全新PIC單片機系列
卢氏县| 定远县| 府谷县| 拜城县| 固始县| 四子王旗| 琼中| 商水县| 泸定县| 瑞丽市| 抚顺市| 樟树市| 黄石市| 和田市| 达日县| 安康市| 镇原县| 甘谷县| 敖汉旗| 伊吾县| 甘德县| 江达县| 樟树市| 裕民县| 宁化县| 黔西| 长沙市| 鸡泽县| 天门市| 云龙县| 新巴尔虎右旗| 新民市| 梁山县| 宣武区| 黄石市| 汕头市| 固原市| 定结县| 双柏县| 鄱阳县| 裕民县|