◇樂山師范學(xué)院電子信息與材料學(xué)院 張幼麟
上位機(jī)直接面對(duì)用戶,進(jìn)行數(shù)據(jù)的分析處理;而Labview是編寫上位機(jī)程序的一個(gè)簡(jiǎn)單有效的平臺(tái)。本文簡(jiǎn)單介紹了Labview中上位機(jī)采用的通信方式,并以采用串口通信方式的一個(gè)溫度采集上位機(jī)程序?yàn)槔f明了在Labview中上位機(jī)的實(shí)現(xiàn)。
當(dāng)今社會(huì),計(jì)算機(jī)已經(jīng)融入我們生產(chǎn)生活的各個(gè)角落,尤其在現(xiàn)場(chǎng)控制領(lǐng)域,利用計(jì)算機(jī)與用戶進(jìn)行信息溝通、控制現(xiàn)場(chǎng)已經(jīng)是基本配置,所以在計(jì)算機(jī)上的控制平臺(tái)的設(shè)計(jì)是必不可少的一個(gè)環(huán)節(jié)。上位機(jī)就是這樣具有良好的用戶界面,能收集信息,監(jiān)控現(xiàn)場(chǎng),并發(fā)出控制命令的計(jì)算機(jī)。
現(xiàn)在市場(chǎng)上普及的微型計(jì)算機(jī)一般是PC機(jī),在其操作系統(tǒng)(windows系列)上運(yùn)行的上位機(jī)程序可由開發(fā)者自己編程定制或用Labview來實(shí)現(xiàn);對(duì)于缺乏編程經(jīng)驗(yàn)的開發(fā)者來說,利用Labview來實(shí)現(xiàn)上位機(jī)程序的設(shè)計(jì)是一個(gè)不錯(cuò)的選擇。Labview是圖形化編程語言,可以進(jìn)行虛擬儀器的設(shè)計(jì),非常適合于具有專業(yè)知識(shí)但并沒有太多編程知識(shí)的工程師。
運(yùn)行在計(jì)算機(jī)上的上位機(jī)程序需要具有以下功能:能采集各個(gè)下位機(jī)上傳的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行整理分析,按照用戶要求針對(duì)不同的數(shù)據(jù)結(jié)果發(fā)出不同的控制命令。數(shù)據(jù)的采集與命令的下發(fā)都需要通過有線或無線的通信方式來實(shí)現(xiàn);所以,通信是上位機(jī)的一個(gè)基礎(chǔ)必需的功能。Labview支持的通信方式有:串口通信、TCP/IP網(wǎng)絡(luò)通信和DataSocket等通信技術(shù)。其中,DataSocket是Labview專用的通信技術(shù),它利用Labview自帶的服務(wù)器進(jìn)行數(shù)據(jù)通信;而串口和TCP/IP網(wǎng)絡(luò)通信是兩種市場(chǎng)上常用的通信方式。
串口通信線路簡(jiǎn)單,控制容易,并且很多下位機(jī)自帶有串口控制模塊(比如51單片機(jī));是一種經(jīng)常被采用的通信方式。Labview針對(duì)串口通信提供了專門功能選板,可對(duì)串口進(jìn)行系統(tǒng)配置、讀寫操作和設(shè)置緩沖區(qū)。
互聯(lián)網(wǎng)是現(xiàn)在覆蓋最廣,市場(chǎng)占有最大的網(wǎng)絡(luò),通過它可以方便的實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。互聯(lián)網(wǎng)的協(xié)議基礎(chǔ)是TCP/IP,而Labview內(nèi)嵌了TCP/IP網(wǎng)絡(luò)通信協(xié)議簇,對(duì)于互聯(lián)網(wǎng)的兩種典型通信方式:面向連接的TCP通信和無連接的UDP數(shù)據(jù)包通信,Labview都支持。Labview在數(shù)據(jù)通信的協(xié)議模塊中有TCP和UDP兩個(gè)獨(dú)立的功能面板,通過它們可以簡(jiǎn)單方便的進(jìn)行TCP偵聽、建立TCP連接、或者打開UDP,進(jìn)行數(shù)據(jù)的通信傳遞。
本文將采用串口通信方式實(shí)現(xiàn)一簡(jiǎn)單的上位機(jī)控制程序。在本范例中,收集數(shù)據(jù)的下位機(jī)為51系列單片機(jī),它和上位機(jī)通過串口采用異步通信的方式進(jìn)行數(shù)據(jù)通信,按照上位機(jī)的命令將傳感器收集到的溫度信息傳遞給上位機(jī),由上位機(jī)來對(duì)數(shù)據(jù)進(jìn)行分析匯總繪圖處理。
本例子的操作面板由三部分組成:串口參數(shù)設(shè)置,控制命令平臺(tái)(接收數(shù)據(jù)開關(guān)、需要讀取數(shù)據(jù)數(shù)量的設(shè)置),接收到的數(shù)據(jù)及數(shù)據(jù)的分析圖表顯示(如圖1所示)。整個(gè)系統(tǒng)的程序?yàn)橐谎h(huán)結(jié)構(gòu),開始后一直自動(dòng)運(yùn)行,只有當(dāng)用戶按下停止鍵才能退出。系統(tǒng)的界面設(shè)計(jì)、數(shù)據(jù)分析處理、文件存儲(chǔ)及圖形展示這些功能都可以用Labview平臺(tái)提供的強(qiáng)大的專業(yè)功能模塊來實(shí)現(xiàn)。
圖1 范例操作面板
上位機(jī)數(shù)據(jù)信息的采集一般有2種方式來實(shí)現(xiàn):①下位機(jī)自動(dòng)定時(shí)向上位機(jī)發(fā)送數(shù)據(jù);②下位機(jī)接收到上位機(jī)命令后再發(fā)送數(shù)據(jù)。在此例中采用方法2,當(dāng)上位機(jī)發(fā)出接收數(shù)據(jù)的命令后下位機(jī)再發(fā)送數(shù)據(jù)。當(dāng)用戶設(shè)置好串口參數(shù)(必須與下位機(jī)的單片機(jī)串口工作狀態(tài)一致),輸入需要獲得的溫度數(shù)量,并且按下接收溫度的開關(guān),即是向下位機(jī)發(fā)出了發(fā)送數(shù)據(jù)的命令。而作為下位機(jī)的單片機(jī)收到這條消息后就按照消息的要求發(fā)出現(xiàn)場(chǎng)采集到的溫度信息。經(jīng)過用戶設(shè)置的延時(shí)等待后,上位機(jī)讀取緩沖區(qū)中剛才接收到的數(shù)據(jù),再將數(shù)據(jù)按要求存儲(chǔ)到相應(yīng)的文件中,并把它們分析處理,以圖形的形式展示到面板上,進(jìn)行直觀展示,便于用戶研究。
計(jì)算機(jī)已經(jīng)普及到生活的方方面面,現(xiàn)代社會(huì)對(duì)它有著強(qiáng)烈的依賴性,在工業(yè)現(xiàn)場(chǎng)控制中必須要有運(yùn)行在計(jì)算機(jī)上的上位機(jī)程序與用戶進(jìn)行對(duì)接。本文通過例子介紹了Labview中上位機(jī)的通信及設(shè)計(jì)應(yīng)用。