胡 志
(湖南信息職業(yè)技術(shù)學院信息工程系,湖南長沙 410200)
淺談單片機在PLC教學中的應用*
胡 志
(湖南信息職業(yè)技術(shù)學院信息工程系,湖南長沙 410200)
簡單論述了PLC實驗教學中的問題,提出了將單片機引入到PLC教學中的方法和過程。提高了學生的編程能力和開發(fā)能力,取得了良好的教學效果。
單片機;PLC;串行通信;教學
PLC課程是一門實踐性很強的課程,其實踐環(huán)節(jié)至關(guān)重要。如何利用現(xiàn)有條件,在PLC教學的實踐環(huán)節(jié)中,不斷提高教學質(zhì)量,提高學生綜合分析和解決工程實際問題的能力,是一個需要引起我們重視的問題。
PLC可編程控制器由于可靠性高,適合于各種惡劣的現(xiàn)場環(huán)境,同時控制程序可變,因此具有控制繼電器或其它控制系統(tǒng)所沒有的優(yōu)點。單片機(MCU)是完整的單片計算機系統(tǒng),可以完成幾乎所有的電器控制要求,是較為理想的實驗工具。如果能把單片機在PLC的實驗教學中應用起來,會取得很好的效果。因此,實現(xiàn)單片機在PLC教學中的應用就顯得很有實際意義。下面將介紹PLC實驗教學中單片機和PLC串行通信的實驗方法和實驗過程。
(一)PIC16F877單片機
Microchip公司的PI C16F877單片機采用哈佛總線結(jié)構(gòu)和精簡指令集技術(shù),具有功耗低、運行速度高、驅(qū)動能力強和外接電路簡潔的特點。PI C16F877單片機內(nèi)部集成了串行通信模塊即通用同步/異步收發(fā)器USART模塊,主要應用目標是系統(tǒng)之間的遠距離串行通信。USART模塊所需的兩條引腳是RC6和RC7,當發(fā)送允許位TXEN被置1,就可以把發(fā)送數(shù)據(jù)寫入TXREG寄存器來完成發(fā)送。
(二)S72200系列PLC
西門子公司的SI MATI C S72200系列PLC屬于小型整體式PLC,由于其指令豐富,操作簡便,運行可靠和極強的通信功能而廣泛應用于各種機械設備和生產(chǎn)過程的自動控制中。
S72200系列PLC通信端口采用異步串行通信方式,通信端口標準采用平衡驅(qū)動、差分接受的RS2485接口標準,可以組成半雙工串行通信網(wǎng)絡,構(gòu)成分布式系統(tǒng),系統(tǒng)中最多可以有32個站。S72200支持多種串行通信協(xié)議,利用自由端口模式,可以通過語句表或梯形圖編程,實現(xiàn)用戶定義的通信協(xié)議,很方便地連接不同廠家的智能設備。在自由端口模式下,可以連續(xù)地發(fā)送或接收255個字節(jié)以內(nèi)的數(shù)據(jù),這在大塊數(shù)據(jù)通信時是很方便的。也可以用字符接收中斷而不是用接受指令來控制接收數(shù)據(jù),這樣比較靈活但編程比較麻煩。
(三)系統(tǒng)結(jié)構(gòu)
圖1是一種現(xiàn)場總線系統(tǒng)結(jié)構(gòu)。該系統(tǒng)結(jié)構(gòu)中PC機作為上位機,對整個系統(tǒng)進行集中監(jiān)控,可實現(xiàn)可視化人機操作界面、圖形顯示、數(shù)據(jù)庫、聯(lián)網(wǎng)等功能。系統(tǒng)選用西門子S7-200系列PLC的226CPU作為下位機,它接收上位機發(fā)送的各種命令,循環(huán)地讀入現(xiàn)場的各種信號,進行邏輯判斷和控制量的計算,并對控制對象進行控制。下位機還負責將各種現(xiàn)場信號以及各控制量送上位機進行實時監(jiān)控,智能儀表主要完成對現(xiàn)場信號的采集、處理、現(xiàn)場顯示和通信等功能。PC通過PC/PP I電纜與226CPU的PORT0口連接,采用Visual Basic編程,用串行通信控件(MSComm)實現(xiàn)通信。PLC的PORT1通過RS-485總線與各智能儀表連接.PLC的PORT0和PORT1口在本系統(tǒng)中可以采用PPI(點對點的通信)方式,也可以采用自由口的通信方式,本設計均使用自由口的方式通行。RS-485接口芯片SN75176將單片機的TTL串行接口電平轉(zhuǎn)換成RS-485總線的平衡信號。
圖1 一種現(xiàn)場總線測控系統(tǒng)結(jié)構(gòu)圖
在單片機與PLC的通信中,主要是利用單片機向PLC發(fā)送命令和接受返回數(shù)據(jù),實現(xiàn)讀取數(shù)據(jù)或修改PLC程序中控制參數(shù)。通信協(xié)議采用命令/響應模式,一次通信發(fā)送的一組數(shù)據(jù)作楨,每楨由最多30個字符組成。
單片機發(fā)送的數(shù)據(jù)流結(jié)構(gòu)的格式為起始符,指令碼,元件首址,字節(jié)數(shù),數(shù)據(jù)塊,BBC校驗碼和結(jié)束符。起始符是數(shù)據(jù)流的第一個字符,表示單片機開始發(fā)送數(shù)據(jù)。指令碼是指單片機對PLC進行的操作命令。其中兩種有效命令:讀取目標元件和修改目標元件。元件首址是表示PLC內(nèi)部的原件類型以及寄存器的地址,占兩個字符(十六進制00-FF)。字節(jié)數(shù)是從元件首地址起,讀取或?qū)懭隤LC元件的數(shù)據(jù)個數(shù),準備讀取或者寫入PLC的數(shù)據(jù)或狀態(tài)。數(shù)據(jù)塊占0—20個字符。結(jié)束符標志著指令的結(jié)束,占一個字符。
(一)初始化設置
//設置PORT1參數(shù)
MOVB 16#9,S MB130//9600 bps,8個數(shù)據(jù)位,無校驗位,1位停止位
MOVB 16#EC,S MB187//允許接受,檢測起始字符和結(jié)束字符,超時檢測
MOVB 0,S MB188//起始字符為0
MOVB 16#FF,S MB189//結(jié)束字符為十六進制數(shù)16#FF
MOVW+500,S MW192//接受超時015 s
MOVB 100,S MB194//接收最多符數(shù)為100
(二)PORT1的程序設計
PLC通過PORT1向某個儀表發(fā)送讀取采集數(shù)據(jù)命令后,中斷進入數(shù)據(jù)接受狀態(tài),該儀表接收到命令后將數(shù)據(jù)發(fā)送到PLC,當PLC接收中斷產(chǎn)生時,判斷接收正確否,如果正確取出數(shù)據(jù),一方面將該數(shù)據(jù)用于控制,另一方面該數(shù)據(jù)通過PORT0口送PC機。如圖2所示。
圖2 PORT1程序流程圖
(一)PIC16F877單片機發(fā)送數(shù)據(jù)通信程序
報文采用定長發(fā)送,每一幀報文由五個字節(jié)組成,每一溫度值都經(jīng)數(shù)字濾波后再發(fā)送。由于溫度值變化緩慢,對通信的實時性要求較低,在發(fā)送數(shù)據(jù)通信程序中加入了較多的延時程序。由于波特率時鐘依賴于系統(tǒng)時基振蕩器,所以單片機進入睡眠狀態(tài)時不能進行異步通信。
(二)S72200PLC接收數(shù)據(jù)通信程序
PLC采用字符接收完成中斷接收數(shù)據(jù),通過起始字節(jié)判斷接收數(shù)據(jù)幀的開始,由數(shù)據(jù)長度決定接收數(shù)據(jù)幀的結(jié)束,采用異或校驗提高接收數(shù)據(jù)的可靠性,S72200PLC在接收完一幀數(shù)據(jù)后計算出接收到數(shù)據(jù)的異或校驗碼,并與單片機傳送過來的校驗碼比較,如果不同就舍棄,不要求重發(fā)。本應用中傳送數(shù)據(jù)為溫度值,舍棄后接收下一個數(shù)據(jù)即可。
教學實踐證明,將單片機應用予PLC實踐教學中是可行的,并且能取得良好的教學效果。
學生可以直觀地看到執(zhí)行程序結(jié)果,使得抽象的課程生動化,學生在每一臺計算機上都能完成程序的調(diào)試和運行,很有成就感,促使學生的學習主動化。同時當學生學習了基本的指令之后,教師可以適當布置一些編程任務,讓學生自己去查指令、遍程序,讓他們進行實驗,查看結(jié)果、尋找程序漏洞、進行修改、優(yōu)化程序,直到達到實驗效果。在做這些實驗的過程中,對學生的編程能力是一個很好的提升。
[1]李曉輝.單片機與PLC通信的研究與應用[J].水力采煤與管道運輸,2006.
[2]張紅濤,王三五,魯力.51單片機和PC機串行通信系統(tǒng)設計[J].化工自動化及儀表,2005,32(4):39-41.
[3]郭一楠,程健,譚得健.PLC通信技術(shù)及應用[J].工礦自動化,2002.
[4]楊志剛,錢俊磊.西門子S7-200系列PLC與單片機之間的自由口通信[J].河北理工學院學報,2005,(4):77-80.
[5]李輝,鄭寧.PLC與單片機之間的串行通信及應用[J].電工技術(shù)雜志,2003,(8).
2010-04-29
胡志(1966-),男,湖南辰溪人,實驗師。