王玉香,張喜紅,馮 振
(亳州職業(yè)技術(shù)學(xué)院 智能工程系,安徽 亳州 236800)
計(jì)算機(jī)控制技術(shù)涉及生產(chǎn)過程的控制技術(shù)和儀器儀表等[1,2]。鑒于條件限制,傳統(tǒng)教學(xué)主要以理論講述為主,晦澀的理論和抽象的知識(shí)對(duì)基礎(chǔ)本就薄弱、學(xué)習(xí)興趣本就不濃厚的高職學(xué)生來說,是極大的挑戰(zhàn),教學(xué)效果不理想。為此,人們將MATLAB和虛擬儀器LabView應(yīng)用于系統(tǒng)分析和設(shè)計(jì)[3],借助這種生動(dòng)形象的方式,提高學(xué)生的學(xué)習(xí)興趣,改善教學(xué)效果。LabView是虛擬儀器軟件,用圖形化方式構(gòu)建系統(tǒng),功能強(qiáng)大。它融合了儀器技術(shù)和計(jì)算機(jī)的優(yōu)勢(shì),搭建系統(tǒng)時(shí),設(shè)計(jì)者只需要選擇需要的控件和函數(shù)模塊,將它們放在前面板和程序框圖中,再進(jìn)行連接,便完成了系統(tǒng)的構(gòu)建和設(shè)計(jì),編程實(shí)現(xiàn)過程簡單易學(xué)。編程環(huán)境開放,軟件提供的控件和函數(shù)也很豐富,設(shè)計(jì)者可根據(jù)需要對(duì)系統(tǒng)功能進(jìn)行設(shè)計(jì)。系統(tǒng)開發(fā)成本低、性能好、功能豐富、工作流程直觀、操作界面靈活簡便,實(shí)驗(yàn)系統(tǒng)的結(jié)果簡潔、直觀[4-8]。將 LabView引入《計(jì)算機(jī)控制技術(shù)》課程教學(xué)中,將工程實(shí)例融入教學(xué),實(shí)現(xiàn)知識(shí)與能力的綜合培養(yǎng)。
本文以LabView構(gòu)建操作界面,單片機(jī)系統(tǒng)作為下位機(jī),設(shè)計(jì)溫度測(cè)控系統(tǒng)作為計(jì)算機(jī)控制的綜合教學(xué)案例。
系統(tǒng)由上位機(jī)和下位機(jī)構(gòu)成,上位機(jī)是計(jì)算機(jī),安裝了 LabView8.6軟件和 NI-VISA17.0驅(qū)動(dòng)。下位機(jī)是以 STC89C51RC為控制核心的單片機(jī)系統(tǒng),上位機(jī)和下位機(jī)間通過串行通信的方式實(shí)現(xiàn)信息的交互,系統(tǒng)總體組成如圖1。
圖1 系統(tǒng)總體框圖
實(shí)時(shí)的溫度信息由下位機(jī)的 DS18B20完成采集,并將其傳輸給單片機(jī)系統(tǒng),單片機(jī)系統(tǒng)再將溫度信息以字符串形式,通過串口傳輸給計(jì)算機(jī),上位機(jī)的計(jì)算機(jī)系統(tǒng)利用LabView構(gòu)建操作和顯示的界面,界面上包括溫度的數(shù)字顯示部分、LED報(bào)警燈部分、溫度的上下限值設(shè)置部分等。通過溫度的上下限設(shè)置部分設(shè)定溫度的最高、最低限值。根據(jù)設(shè)定的限值和接收到的實(shí)時(shí)溫度信息,控制報(bào)警顯示狀態(tài)。為便于形象的觀測(cè),溫度顯示采用波形和數(shù)字同步顯示。上位機(jī)可以通過串口將設(shè)置的溫度上下限值傳輸給單片機(jī)。單片機(jī)系統(tǒng)可以通過字符液晶 1602實(shí)現(xiàn)對(duì)當(dāng)前溫度的實(shí)時(shí)顯示,并通過比較當(dāng)前的溫度和接收的計(jì)算機(jī)發(fā)送過來的溫度上下限值,實(shí)現(xiàn)LED報(bào)警顯示。實(shí)驗(yàn)過程中,通過比較計(jì)算機(jī)操作界面和單片機(jī)系統(tǒng)的溫度及報(bào)警顯示狀態(tài)對(duì)溫度測(cè)控系統(tǒng)性能進(jìn)行評(píng)價(jià)。
下位機(jī)是以 STC89C51RC為控制核心的單片機(jī)系統(tǒng),可以實(shí)現(xiàn)實(shí)時(shí)溫度顯示和報(bào)警顯示。溫度采集、報(bào)警顯示和溫度顯示仿真原理圖如圖2所示。
采集溫度的傳感器采用高精度、高可靠、小體積、低成本集成型DS18B20[4],并通過單片機(jī)的 P2.4腳將采集到的實(shí)時(shí)溫度信息傳輸給STC89C51RC,溫度顯示部分選用字符液晶1602,數(shù)據(jù)通道D0~D7接單片機(jī)的P1口,三條控制引腳E、RS、RW分別接單片機(jī)的P3.4、P3.5、P3.6引腳。報(bào)警顯示部分采用最簡單的LED報(bào)警指示燈,其中D1用于低于溫度下限的報(bào)警,接P2.0,D2用于高于溫度上限的報(bào)警,接P2.1。調(diào)試時(shí)先將溫度上下限通過軟件的方式設(shè)置,如可將圖2中溫度上限設(shè)為35 ℃,溫度下限設(shè)為20 ℃,聯(lián)調(diào)時(shí)再將此部分程序屏蔽。通過設(shè)計(jì)相應(yīng)的程序,單片機(jī)系統(tǒng)可以實(shí)現(xiàn)獨(dú)立的溫度采集和報(bào)警功能,可借此對(duì)學(xué)生的單片機(jī)應(yīng)用能力進(jìn)行鍛煉。
圖2 下位機(jī)單片機(jī)系統(tǒng)仿真原理圖
單片機(jī)TTL電平是正邏輯,計(jì)算機(jī)是RS-232接口采用負(fù)邏輯,所以不能進(jìn)行直接通信,這里選用MAX232實(shí)現(xiàn)電平的雙向轉(zhuǎn)換[9-10],具體電路如圖3。
圖3 上位機(jī)與下位機(jī)的串口電路
單片機(jī)系統(tǒng)要處理 DS18B20采集到的溫度信息,向上位機(jī)傳送數(shù)據(jù),在字符液晶 1602上顯示數(shù)據(jù),比較當(dāng)前溫度和通過串口接收的上位機(jī)設(shè)置的溫度上下限,輸出比較結(jié)果,控制報(bào)警指示燈D1、D2工作。主程序流程圖如圖4。
圖4 下位機(jī)單片機(jī)系統(tǒng)主程序流程圖
下位機(jī)單片機(jī)程序主要包括串行通信的參數(shù)設(shè)置,DS18B20的溫度讀取和輸出到LCD1602顯示,串口發(fā)送溫度和溫度上下限的串口接收。串口相應(yīng)參數(shù)設(shè)置為:串行通信速率4 800 bps,8位數(shù)據(jù)位,奇偶檢驗(yàn)位 0,1個(gè)停止位。T0采用工作方式1,T1采用工作方式2,T0定時(shí)200 ms,T0中斷,選用 COM1口[4]。單片機(jī)對(duì)溫度上下限值的接收采用中斷的方式。單片機(jī)將溫度發(fā)送給計(jì)算機(jī)時(shí)采用定時(shí)的方式。
本系統(tǒng)上位機(jī)安裝的是LabView8.6,采用圖形化語言的虛擬儀器開發(fā)平臺(tái),具有數(shù)據(jù)采集、分析、輸入輸出控制等豐富而強(qiáng)大的功能,每一個(gè)LabView都由兩個(gè)部分構(gòu)成,即程序框圖和前面板,都通過模塊搭建的方式完成控制過程的設(shè)計(jì)。程序框圖是用函數(shù),屬于底層控制過程,前面板是控件,是人機(jī)交互的界面,簡單明了。在與下位機(jī)單片機(jī)系統(tǒng)串行通信時(shí),LabView利用自帶的 VISA控件[9-11],從串口提取溫度信息,并通過格式轉(zhuǎn)化,將其顯示在前面板。同時(shí)通過VISA控件將上下限溫度值傳輸至串口,進(jìn)一步傳送給單片機(jī)系統(tǒng)。該系統(tǒng)所使用的VISA包括:VISA串口配置、VISA寫、讀、關(guān)等函數(shù)[4,11]。
圖5 PC機(jī)前面板設(shè)計(jì)
前面板設(shè)計(jì)如圖5,包括實(shí)時(shí)溫度的數(shù)字顯示、實(shí)時(shí)溫度的曲線顯示、高低溫報(bào)警指示燈、串口通信時(shí)所用串口資源的選擇部分、溫度的上下限值可設(shè)置部分等。溫度曲線顯示部分將溫度實(shí)時(shí)的繪制成曲線,形象直觀的看出溫度的變化情況。當(dāng)前溫度顯示部分可以實(shí)時(shí)顯示系統(tǒng)溫度。串口資源選擇部分用來選擇串行通信時(shí)所用的串口,本系統(tǒng)調(diào)試時(shí)選用COM1口。通過上下限溫度設(shè)置部分可以設(shè)置系統(tǒng)的溫度范圍限值。高低溫報(bào)警部分由兩個(gè)指示燈組成,分別用于高于上限和低于下限的報(bào)警。實(shí)施時(shí),根據(jù)學(xué)生的掌握情況,可增加系統(tǒng)的功能如實(shí)現(xiàn)溫度華氏和攝氏的轉(zhuǎn)換,對(duì)溫度值的統(tǒng)計(jì)分析,對(duì)報(bào)警次數(shù)的統(tǒng)計(jì)等。
程序框圖流程設(shè)計(jì)如圖6(a)。程序框圖主要包含上下限溫度的發(fā)送部分,溫度信息的接收和顯示部分,溫度的超限報(bào)警部分等,其中溫度超限報(bào)警部分程序框圖如圖6(b)。
開機(jī)時(shí),事件結(jié)構(gòu)的條件為真即執(zhí)行。發(fā)送和接收的溫度數(shù)據(jù)均是字符串型的數(shù)據(jù),所以在上下限溫度發(fā)送部分,需先將數(shù)據(jù)轉(zhuǎn)換為字符串,在溫度信息的顯示部分要通過波形顯示,必須先將字符串轉(zhuǎn)換為數(shù)據(jù)。顯示控件可以直接顯示字符串?dāng)?shù)據(jù),故可直接相連。所以,程序設(shè)計(jì)時(shí)還涉及到字符串轉(zhuǎn)為數(shù)組、數(shù)組索引及一些運(yùn)算函數(shù)。
圖6 (a) 上位機(jī)LabView程序框圖流程設(shè)計(jì)
圖6 (b) 溫度超限報(bào)警部分程序框圖
圖7 下位機(jī)下限報(bào)警
圖8 下位機(jī)上限報(bào)警
系統(tǒng)調(diào)試時(shí)可以先將下位機(jī)的單片機(jī)系統(tǒng)和上位機(jī)的LabView系統(tǒng)進(jìn)行獨(dú)立的調(diào)試。單片機(jī)系統(tǒng)調(diào)試時(shí)通過軟件設(shè)置溫度上下限值,調(diào)試結(jié)果如圖7、圖8,可以實(shí)現(xiàn)系統(tǒng)功能。
上位機(jī) LabView系統(tǒng)調(diào)試時(shí),可先用LabView函數(shù)中的隨機(jī)信號(hào)模擬接收到的溫度,調(diào)試結(jié)果如圖9、圖10,可以實(shí)現(xiàn)溫度的顯示及報(bào)警功能。再將上位機(jī)和下位機(jī)通過串口線連接,進(jìn)行綜合調(diào)試。
圖9 上位機(jī)上限報(bào)警
圖10 上位機(jī)下限報(bào)警
下位機(jī)和上位機(jī)的溫度顯示數(shù)值和報(bào)警狀態(tài)相同。因?yàn)楫?dāng)前室溫15 ℃,所以對(duì)DS18B20采取包裝好的熱水加熱方式處理,熱水靠近則溫度迅速上升,熱水離開,則溫度迅速下降,調(diào)試結(jié)果如圖 11,其中圖 11(a)為下位機(jī)顯示效果,圖11(b)為上位機(jī)顯示效果。
(a) 下位機(jī)顯示效果
圖11 上位機(jī)和下位機(jī)綜合調(diào)試結(jié)果
本案例是單片機(jī)與虛擬儀器相結(jié)合的綜合案例,也可以看成是溫度監(jiān)測(cè)中的兩個(gè)獨(dú)立教學(xué)案例,一個(gè)是單片機(jī)實(shí)現(xiàn)的系統(tǒng),一個(gè)是虛擬儀器實(shí)現(xiàn)的系統(tǒng)。具體講授和實(shí)訓(xùn)時(shí),根據(jù)學(xué)生的基礎(chǔ)可以有針對(duì)性地加強(qiáng)和削弱部分模塊的教學(xué)。系統(tǒng)的功能可以由簡至繁,如先從下位機(jī)和上位機(jī)中LabView之間串行通信開始,只練習(xí)給定數(shù)據(jù)在兩者間的接收、發(fā)送,再到上位機(jī)LabView對(duì)溫度信息的正確接收。這個(gè)過程中一直將上位機(jī)和下位機(jī)作為一個(gè)完整的系統(tǒng)進(jìn)行綜合練習(xí),可以很好地培養(yǎng)學(xué)生的全局觀。
應(yīng)用本案例實(shí)際教學(xué)時(shí),可以添加不同傳感器實(shí)現(xiàn)不同信息的采集,結(jié)合無線網(wǎng)絡(luò)實(shí)現(xiàn)信息的多點(diǎn)采集,利用LabView實(shí)現(xiàn)信息的統(tǒng)計(jì)、遠(yuǎn)程控制等功能。
[1] 孟祥軍,王金梅,李子春.結(jié)構(gòu)化學(xué)理論聯(lián)系實(shí)際教學(xué)案例的挖掘[J].唐山師范學(xué)院學(xué)報(bào),2012,34(2):123-124.
[2] 譚興國.以工程案例開發(fā)推進(jìn)微機(jī)控制技術(shù)課程改革[J].實(shí)驗(yàn)科學(xué)與技術(shù),2016,14(5):137-150.
[3] 張喜紅,王玉香.基于電阻應(yīng)變片傳感器教學(xué)的電子稱設(shè)計(jì)[J].唐山師范學(xué)院學(xué)報(bào),2017,39(5):141-144.
[4] 魏艷平,蔡久評(píng).基于 LabView與單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)[J].江西科技師范大學(xué)學(xué)報(bào),2014,(6):55-61.
[5] 唐英姿.基于 LabView的計(jì)算機(jī)控制虛擬仿真系統(tǒng)研究[J].中國新技術(shù)新產(chǎn)品,2012,(7):21-21.
[6] 黃凱.基于 LabView 的計(jì)算機(jī)控制技術(shù)[J].福建電腦,2012,28(10):145-146+117.
[7] 馬平,梁薇,李珍.基于LABVIEW的實(shí)驗(yàn)室過程控制系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2017,25(4):44-46.
[8] 黃澈.計(jì)算機(jī)控制虛擬教學(xué)實(shí)驗(yàn)系統(tǒng)的研究[D].太原:太原理工大學(xué),2014:1-4.
[9] 葉軍,郭棟.基于LabView的溫度采集控制系統(tǒng)[J].電氣電子教學(xué)學(xué)報(bào),2016,38(3):71-73+91.
[10] 林科業(yè).基于 LabView 的實(shí)時(shí)溫度測(cè)控實(shí)驗(yàn)[J].實(shí)驗(yàn)科學(xué)與技術(shù),2016,14(5):65-67,133.
[11] 王建勛,陳紅軍.基于單片機(jī)和 LabView 的串口控制系統(tǒng)設(shè)計(jì)[J].中國農(nóng)機(jī)化學(xué)報(bào),2015,36(3):266-269.