亚洲精华国产精华精华液网站,你懂的,娇生惯养4ph归寻(矜以),丰年经继拇中文3与其他教材比较

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 應用方案 > 單片機與PLC之間的串行通信實現

單片機與PLC之間的串行通信實現

時間:2018-01-03 11:00:02來源:網絡轉載

導語:?隨著微處理器、計算機和數字通信技術的飛速發展,計算機控制已經擴展到了幾乎所有的工業領域。其中,PLC和單片機在小規模控制系統中獲得了廣泛的應用。

1、引言

隨著微處理器、計算機和數字通信技術的飛速發展,計算機控制已經擴展到了幾乎所有的工業領域。其中,PLC和單片機在小規模控制系統中獲得了廣泛的應用。

在塑料擠出機溫度自動控制中,選用S7-200系列PLC作為主控器件,PIC16F877單片機作為溫度數據采集和模數轉換芯片,單片機通過通信端口將數據傳輸給PLC,由于采用了RS-485接口標準,傳輸距離可達1000m。PLC經過PID運算后控制加熱圈以保持溫度恒定。下面結合實例就PLC和單片機的通信實現做一下介紹。

2、硬件構成

2.1、PIC16F877單片機

Microchip公司的PIC16F877單片機采用哈佛總線結構和精簡指令集技術,具有功耗低、運行速度高、驅動能力強和外接電路簡潔的特點。PIC16F877單片機內部集成了串行通信模塊即通用同步/異步收發器USART模塊,主要應用目標是系統之間的遠距離串行通信。USART模塊所需的兩條引腳是RC6和RC7,如圖1所示,當發送允許位TXEN被置1,就可以把發送數據寫入TXREG寄存器來完成發送。

2.2、S7-200系列PLC

S7-200系列PLC通信端口采用異步串行通信方式,通信端口標準采用平衡驅動、差分接受的RS485接口標準,可以組成半雙工串行通信網絡,構成分布式系統,系統中最多可以有32個站。S7-200支持多種串行通信協議,利用自由端口模式,可以通過語句表或梯形圖編程,實現用戶定義的通信協議,很方便地連接不同廠家的智能設備。在自由端口模式下,可以連續地發送或接收255個字節以內的數據,這在大塊數據通信時是很方便的。

2.3、MAX485E芯片

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

2.4、硬件連接圖

S7-200PLC采用RS-485接口標準,接收差模信號,而PIC16F877單片機的輸出為TTL電平,所以二者在通信時必須先進行轉換,本系統采用MAX485E芯片作為轉換芯片,硬件連接如圖1所示。由PIC16F877單片機的RC4選擇數據的輸入或輸出。

單片機與PLC之間的串行通信實現

圖1硬件連接圖

3、通信協議

本項目中由于PIC16F877單片機只是發送數據,PLC單純接收數據,所以采用單工串行通信。PLC采用自由端口模式協議,協議由語句表編程實現;單片機使用USART模塊的異步發送模式,協議用匯編語言編程實現。由PIC16F877單片機的發送緩沖結構可知,一次只能連續發送兩個字節的數據,故PLC采用字符接收完成中斷比較方便。接口標準采用與PLC側一致的RS-485,接頭采用9針D形連接器,傳輸線采用屏蔽雙絞線,單片機側的發送數據需經轉換后再發送。

字符信息格式為:1位起始位,8位數據位,無校驗位,1位停止位。

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

單片機與PLC之間的串行通信實現

圖2字符信息格式

數據位的發送順序為低位在前,高位在后。

異步通信的傳輸速率即波特率選擇為38400bit/s。為提高數據傳輸的可靠性,采用異或校驗,報文采用定長發送,前四個字節參加異或校驗,報文的最后一個字節為校驗碼。PIC16F877單片機的模數轉換精度為10位,故溫度值采用雙字節保存。報文幀格式如表1所示。

單片機與PLC之間的串行通信實現

表1報文幀格式

4、初始設置

4.1、PIC16F877單片機發送數據初始設置

PIC16F877單片機內部集成的USART模塊使用的波特率應該和S7-200PLC相同,當采用高速波特率時,波特率寄存器SPBRG由下式計算:

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

式中:F———單片機時鐘頻率。

單片機的數據位、校驗位、停止位要和PLC統一。

PIC16F877單片機最多只能連續發送兩個字節的數據。其初始設置匯編語言程序如下:

LISTP=16F877A;偽指令

INCLUDE“P16F877A.INC”;偽指令

;-------------------體1設置子程序-------------------

T1BCFSTATUS,RP1;

BSFSTATUS,RP0;體1

MOVLWD′5′;38400bit/s

MOVWFSPBRG;

MOVLWB′00100100′;異步,發送使能

MOVWFTXSTA;高速,8位數據

MOVLWB′11101111′;RC6,RC7,

MOVWFTRISC;RC4通信

CLRFINTCON;禁止中斷

RETURN;子程序返回

;-------------------體0設置子程序-------------------

T0BCFSTATUS,RP0;體0

BSFPORTC,4;RC4=1通信

MOVLWB′10000000′;使能串口

RETURN;子程序返回

4.2S7-200PLC接收數據初始設置

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

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//設置為PPI協議

DTCH8//禁止中斷

5、通信程序

5.1、PIC16F877單片機發送數據通信程序

報文采用定長發送,每一幀報文由五個字節組成,每一溫度值都經數字濾波后再發送。由于溫度值變化緩慢,對通信的實時性要求較低,在發送數據通信程序中加入了較多的延時程序。由于波特率時鐘依賴于系統時基振蕩器,所以單片機進入睡眠狀態時不能進行異步通信。單片機發送N個測溫點溫度數據通信程序流程圖如圖3所示。

單片機與PLC之間的串行通信實現

圖3單片機程序流程圖

5.2、S7-200PLC接收數據通信程序

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

單片機與PLC之間的串行通信實現

6、結論

由PIC16F877單片機和S7-200PLC組成的串行通信系統,采用平衡驅動、差分接收的RS-485接口標準,與TTL電平兼容,具有開發簡單、成本低的優點,經過試用證明性能穩定、運行可靠、抗干擾能力強。如果需要,也可以進行半雙工通信或略作改動組成多機通信網絡。

標簽:

點贊

分享到:

上一篇:一文讀懂DCS控制系統與PLC控...

下一篇:基于PLC的變頻恒壓供水系統的...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.siyutn.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 大安市| 遂溪县| 麻阳| 金秀| 绵阳市| 济南市| 简阳市| 财经| 溆浦县| 安义县| 呼伦贝尔市| 清流县| 垣曲县| 洛宁县| 原平市| 丰顺县| 定远县| 铅山县| 武穴市| 宁蒗| 横峰县| 龙井市| 宁远县| 托里县| 九寨沟县| 习水县| 安远县| 大同市| 平罗县| 荆州市| 新河县| 临猗县| 板桥市| 丰都县| 海城市| 栖霞市| 宁德市| 江川县| 昂仁县| 班玛县| 绥德县|