技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 單片機(jī)與PLC之間的串行通信實(shí)現(xiàn)

單片機(jī)與PLC之間的串行通信實(shí)現(xiàn)

時(shí)間:2018-01-03 11:00:02來源:網(wǎng)絡(luò)轉(zhuǎn)載

導(dǎo)語:?隨著微處理器、計(jì)算機(jī)和數(shù)字通信技術(shù)的飛速發(fā)展,計(jì)算機(jī)控制已經(jīng)擴(kuò)展到了幾乎所有的工業(yè)領(lǐng)域。其中,PLC和單片機(jī)在小規(guī)??刂葡到y(tǒng)中獲得了廣泛的應(yīng)用。

1、引言

隨著微處理器、計(jì)算機(jī)和數(shù)字通信技術(shù)的飛速發(fā)展,計(jì)算機(jī)控制已經(jīng)擴(kuò)展到了幾乎所有的工業(yè)領(lǐng)域。其中,PLC和單片機(jī)在小規(guī)??刂葡到y(tǒng)中獲得了廣泛的應(yīng)用。

在塑料擠出機(jī)溫度自動(dòng)控制中,選用S7-200系列PLC作為主控器件,PIC16F877單片機(jī)作為溫度數(shù)據(jù)采集和模數(shù)轉(zhuǎn)換芯片,單片機(jī)通過通信端口將數(shù)據(jù)傳輸給PLC,由于采用了RS-485接口標(biāo)準(zhǔn),傳輸距離可達(dá)1000m。PLC經(jīng)過PID運(yùn)算后控制加熱圈以保持溫度恒定。下面結(jié)合實(shí)例就PLC和單片機(jī)的通信實(shí)現(xiàn)做一下介紹。

2、硬件構(gòu)成

2.1、PIC16F877單片機(jī)

Microchip公司的PIC16F877單片機(jī)采用哈佛總線結(jié)構(gòu)和精簡(jiǎn)指令集技術(shù),具有功耗低、運(yùn)行速度高、驅(qū)動(dòng)能力強(qiáng)和外接電路簡(jiǎn)潔的特點(diǎn)。PIC16F877單片機(jī)內(nèi)部集成了串行通信模塊即通用同步/異步收發(fā)器USART模塊,主要應(yīng)用目標(biāo)是系統(tǒng)之間的遠(yuǎn)距離串行通信。USART模塊所需的兩條引腳是RC6和RC7,如圖1所示,當(dāng)發(fā)送允許位TXEN被置1,就可以把發(fā)送數(shù)據(jù)寫入TXREG寄存器來完成發(fā)送。

2.2、S7-200系列PLC

S7-200系列PLC通信端口采用異步串行通信方式,通信端口標(biāo)準(zhǔn)采用平衡驅(qū)動(dòng)、差分接受的RS485接口標(biāo)準(zhǔn),可以組成半雙工串行通信網(wǎng)絡(luò),構(gòu)成分布式系統(tǒng),系統(tǒng)中最多可以有32個(gè)站。S7-200支持多種串行通信協(xié)議,利用自由端口模式,可以通過語句表或梯形圖編程,實(shí)現(xiàn)用戶定義的通信協(xié)議,很方便地連接不同廠家的智能設(shè)備。在自由端口模式下,可以連續(xù)地發(fā)送或接收255個(gè)字節(jié)以內(nèi)的數(shù)據(jù),這在大塊數(shù)據(jù)通信時(shí)是很方便的。

2.3、MAX485E芯片

MAX485E芯片是RS-485接口標(biāo)準(zhǔn)專用通信芯片,如圖1所示,RO腳為數(shù)據(jù)輸出腳,它接收RS-485的差模信號(hào)VAB,并轉(zhuǎn)換為TTL電平由RO輸出,RE腳為RO的使能端,低電平時(shí)選通RO,輸出有效。DI腳為數(shù)據(jù)輸入端,它將TTL電平的數(shù)據(jù)轉(zhuǎn)換為差模信號(hào)VAB,并由A、B兩腳輸送出去,DE是DI使能端,高電平選通DI,輸入有效。故A、B兩腳既是RS-485信號(hào)輸入端,同時(shí)也是該信號(hào)的輸出端,關(guān)鍵是由使能端RE、DE的電平來決定。

2.4、硬件連接圖

S7-200PLC采用RS-485接口標(biāo)準(zhǔn),接收差模信號(hào),而PIC16F877單片機(jī)的輸出為TTL電平,所以二者在通信時(shí)必須先進(jìn)行轉(zhuǎn)換,本系統(tǒng)采用MAX485E芯片作為轉(zhuǎn)換芯片,硬件連接如圖1所示。由PIC16F877單片機(jī)的RC4選擇數(shù)據(jù)的輸入或輸出。

單片機(jī)與PLC之間的串行通信實(shí)現(xiàn)

圖1硬件連接圖

3、通信協(xié)議

本項(xiàng)目中由于PIC16F877單片機(jī)只是發(fā)送數(shù)據(jù),PLC單純接收數(shù)據(jù),所以采用單工串行通信。PLC采用自由端口模式協(xié)議,協(xié)議由語句表編程實(shí)現(xiàn);單片機(jī)使用USART模塊的異步發(fā)送模式,協(xié)議用匯編語言編程實(shí)現(xiàn)。由PIC16F877單片機(jī)的發(fā)送緩沖結(jié)構(gòu)可知,一次只能連續(xù)發(fā)送兩個(gè)字節(jié)的數(shù)據(jù),故PLC采用字符接收完成中斷比較方便。接口標(biāo)準(zhǔn)采用與PLC側(cè)一致的RS-485,接頭采用9針D形連接器,傳輸線采用屏蔽雙絞線,單片機(jī)側(cè)的發(fā)送數(shù)據(jù)需經(jīng)轉(zhuǎn)換后再發(fā)送。

字符信息格式為:1位起始位,8位數(shù)據(jù)位,無校驗(yàn)位,1位停止位。

異步通信的字符信息格式如圖2所示。

單片機(jī)與PLC之間的串行通信實(shí)現(xiàn)

圖2字符信息格式

數(shù)據(jù)位的發(fā)送順序?yàn)榈臀辉谇?,高位在后?/P>

異步通信的傳輸速率即波特率選擇為38400bit/s。為提高數(shù)據(jù)傳輸?shù)目煽啃?,采用異或校?yàn),報(bào)文采用定長(zhǎng)發(fā)送,前四個(gè)字節(jié)參加異或校驗(yàn),報(bào)文的最后一個(gè)字節(jié)為校驗(yàn)碼。PIC16F877單片機(jī)的模數(shù)轉(zhuǎn)換精度為10位,故溫度值采用雙字節(jié)保存。報(bào)文幀格式如表1所示。

單片機(jī)與PLC之間的串行通信實(shí)現(xiàn)

表1報(bào)文幀格式

4、初始設(shè)置

4.1、PIC16F877單片機(jī)發(fā)送數(shù)據(jù)初始設(shè)置

PIC16F877單片機(jī)內(nèi)部集成的USART模塊使用的波特率應(yīng)該和S7-200PLC相同,當(dāng)采用高速波特率時(shí),波特率寄存器SPBRG由下式計(jì)算:

SPBRG=F/(16&TImes;波特率)-1

式中:F———單片機(jī)時(shí)鐘頻率。

單片機(jī)的數(shù)據(jù)位、校驗(yàn)位、停止位要和PLC統(tǒng)一。

PIC16F877單片機(jī)最多只能連續(xù)發(fā)送兩個(gè)字節(jié)的數(shù)據(jù)。其初始設(shè)置匯編語言程序如下:

LISTP=16F877A;偽指令

INCLUDE“P16F877A.INC”;偽指令

;-------------------體1設(shè)置子程序-------------------

T1BCFSTATUS,RP1;

BSFSTATUS,RP0;體1

MOVLWD′5′;38400bit/s

MOVWFSPBRG;

MOVLWB′00100100′;異步,發(fā)送使能

MOVWFTXSTA;高速,8位數(shù)據(jù)

MOVLWB′11101111′;RC6,RC7,

MOVWFTRISC;RC4通信

CLRFINTCON;禁止中斷

RETURN;子程序返回

;-------------------體0設(shè)置子程序-------------------

T0BCFSTATUS,RP0;體0

BSFPORTC,4;RC4=1通信

MOVLWB′10000000′;使能串口

RETURN;子程序返回

4.2S7-200PLC接收數(shù)據(jù)初始設(shè)置

CPU處于STOP模式時(shí),自由端口模式被禁止,使用其它模式的通信,例如與編程設(shè)備的通信。只有CPU處于RUN模式時(shí),才能使用自由端口模式。如果使用通信端口0通信,將通過特殊存儲(chǔ)器SMB30進(jìn)行初始設(shè)置。

Network1

LDSM0.7//若為RUN模式

EU//上升沿

OSM0.1//或首次掃描

MOVB16#01,SMB30//38400bit/s,8,N,1

ATCHINT0,8//中斷與int0連接

ENI//允許中斷

Network2

LDNSM0.7//若非RUN模式

EU//上升沿

RSM30.0,1//設(shè)置為PPI協(xié)議

DTCH8//禁止中斷

5、通信程序

5.1、PIC16F877單片機(jī)發(fā)送數(shù)據(jù)通信程序

報(bào)文采用定長(zhǎng)發(fā)送,每一幀報(bào)文由五個(gè)字節(jié)組成,每一溫度值都經(jīng)數(shù)字濾波后再發(fā)送。由于溫度值變化緩慢,對(duì)通信的實(shí)時(shí)性要求較低,在發(fā)送數(shù)據(jù)通信程序中加入了較多的延時(shí)程序。由于波特率時(shí)鐘依賴于系統(tǒng)時(shí)基振蕩器,所以單片機(jī)進(jìn)入睡眠狀態(tài)時(shí)不能進(jìn)行異步通信。單片機(jī)發(fā)送N個(gè)測(cè)溫點(diǎn)溫度數(shù)據(jù)通信程序流程圖如圖3所示。

單片機(jī)與PLC之間的串行通信實(shí)現(xiàn)

圖3單片機(jī)程序流程圖

5.2、S7-200PLC接收數(shù)據(jù)通信程序

PLC采用字符接收完成中斷接收數(shù)據(jù),通過起始字節(jié)判斷接收數(shù)據(jù)幀的開始,由數(shù)據(jù)長(zhǎng)度決定接收數(shù)據(jù)幀的結(jié)束,采用異或校驗(yàn)提高接收數(shù)據(jù)的可靠性,S7-200PLC在接收完一幀數(shù)據(jù)后計(jì)算出接收到數(shù)據(jù)的異或校驗(yàn)碼,并與單片機(jī)傳送過來的校驗(yàn)碼比較,如果不同就舍棄,不要求重發(fā)。本應(yīng)用中傳送數(shù)據(jù)為溫度值,舍棄后接收下一個(gè)數(shù)據(jù)即可。PLC接收數(shù)據(jù)通信程序流程圖如圖4~圖6所示。

單片機(jī)與PLC之間的串行通信實(shí)現(xiàn)

6、結(jié)論

由PIC16F877單片機(jī)和S7-200PLC組成的串行通信系統(tǒng),采用平衡驅(qū)動(dòng)、差分接收的RS-485接口標(biāo)準(zhǔn),與TTL電平兼容,具有開發(fā)簡(jiǎn)單、成本低的優(yōu)點(diǎn),經(jīng)過試用證明性能穩(wěn)定、運(yùn)行可靠、抗干擾能力強(qiáng)。如果需要,也可以進(jìn)行半雙工通信或略作改動(dòng)組成多機(jī)通信網(wǎng)絡(luò)。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:一文讀懂DCS控制系統(tǒng)與PLC控...

下一篇:基于PLC的變頻恒壓供水系統(tǒ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ù)咨詢采購咨詢媒體合作

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)