基于LabVIEW的上位機(jī)監(jiān)控程序設(shè)計_第1頁
基于LabVIEW的上位機(jī)監(jiān)控程序設(shè)計_第2頁
基于LabVIEW的上位機(jī)監(jiān)控程序設(shè)計_第3頁
基于LabVIEW的上位機(jī)監(jiān)控程序設(shè)計_第4頁
基于LabVIEW的上位機(jī)監(jiān)控程序設(shè)計_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于 LabVIEW 的上位機(jī)監(jiān)控程序設(shè)計毛江(中國礦業(yè)大學(xué)信電學(xué)院,江蘇 徐州 221008)5摘要:隨著工業(yè)自動化的蓬勃發(fā)展,遠(yuǎn)程上位機(jī)監(jiān)控已經(jīng)變得越來越普遍,在市場上存在著 眾多的上位機(jī)軟件平臺。然而大部分的此類軟件都是用 VB 語言編寫的后臺程序,相對于不 太專業(yè)的程序開發(fā)人員來說有一定的困難,大大增加了項目開發(fā)的難度。本文選擇了 NI(National Instruments)公司的 LabVIEW 軟件平臺,在介紹了 LabVIEW 編程環(huán)境的基礎(chǔ)上, 提出了一種基于 LabVIEW 的上位機(jī)監(jiān)控方案,并詳細(xì)介紹了 LabVIEW 串口通信程序以及10數(shù)據(jù)處理、圖形界面等的的設(shè)計方

2、法,并給出了相應(yīng)的監(jiān)控界面和串口通信程序,可以作為 相關(guān)行業(yè)從業(yè)人員的參考。關(guān)鍵詞:LabVIEW; 上位機(jī); 串口通信中圖分類號:TP31115Program design of PC monitor based on the LabVIEWMAO Jiang(China University of Mining and Technology, Jiangsu Xuzhou 221008)Abstract: With the vigorous development of industrial automation, remote PC monitor has become more and

3、 more popular, there are a lot of PC software platform in the world market. But most of20backend application is written by VB in those platform, which is not so easy for those program developers who are not professional, because that the difficulty of the project is greatly increased. We chooses the

4、 NI (National Instruments) companys LabVIEW software platform in this article, and the LabVIEW programming environment is introduced, on the basis of that we proposed the PC monitoring scheme based on the LabVIEW platform, and introduce the LabVIEW serial25communication procedures ,data processing,

5、design method of graphical interface and so on, the corresponding interface for monitoring and serial interface communication program are designed too, this paper can be used as reference for personnel related industry.Key words: LabVIEW; PC; Serial communication300引言近年來,工業(yè)自動化技術(shù)發(fā)展的如火如荼,在市場上存在著眾多的上位機(jī)

6、軟件平臺。然 而大部分的此類軟件都是用 VB 語言編寫后臺程序,相對于不太專業(yè)的程序開發(fā)人員來說有 一定的困難。NI(National Instruments)公司的 LabVIEW 軟件平臺,是個功能強(qiáng)大且靈活 的軟件,具有開發(fā)周期短、兼容性好、運(yùn)行穩(wěn)定等優(yōu)點,更重要的是它不需要任何代碼,其35后臺程序完全利用圖形界面編程,利用很多現(xiàn)成的模塊,你可以很方便地開發(fā)上位機(jī)程序, 大大減少了開發(fā)的難度。1LabVIEW 編程環(huán)境介紹使用 LabVIEW 開發(fā)平臺編制的程序稱為虛擬儀器,簡稱 VI。VI 由以下三部分組成。前面板。用戶界面。40前面板是 VI 的用戶界面。創(chuàng)建 VI 時,通常應(yīng)先設(shè)計

7、前面板,然后根據(jù)設(shè)計程序框圖在前 面板上創(chuàng)建輸入/輸出任務(wù)。前面板上有用戶輸入控制和輸出控制兩類對象,用于模擬顯示作者簡介:毛江(1988-),男,碩士,電力電子與電力傳動. E-mail: 儀器的前面板??刂坪惋@示對象以各種各樣的圖形出現(xiàn)在前面板上,具體為按鈕、圖形、指 示燈、示波器等1。程序框圖。包含用于定義 VI 功能的圖形化源代碼。45前面板創(chuàng)建完畢后,便可在程序框圖中添加源代碼來控制前面板上的對象。程序框圖 是圖形化源代碼的集合,圖形化源代碼又稱 G 代碼或程序框圖代碼。程序框圖對象包括節(jié) 點、端子和連線。節(jié)點是程序執(zhí)行元素,類似于傳統(tǒng)文本編輯語言程序中的語句、操作符、函數(shù)或者 子程

8、序。節(jié)點的種類包括 6 種:函數(shù)節(jié)點、子 VI 節(jié)點、結(jié)構(gòu)節(jié)點、代碼接口節(jié)點、公式節(jié)50點和屬性節(jié)點。其中函數(shù)是內(nèi)置于 G 的基本節(jié)點,它們執(zhí)行諸如數(shù)字相加、按位取反等操作。函數(shù)不具有前面板和框圖;結(jié)構(gòu)是 LabVIEW 實現(xiàn)程序結(jié)構(gòu)控制命令的圖形表示,如循 環(huán)控制、條件分支控制等。編程人員可以使用它們控制 VI 程序的執(zhí)行方式。結(jié)構(gòu)實現(xiàn)的功 能和 C 語言中的 for、while、if 等語句類似,如 while loop 實現(xiàn)的功能與 C 語言的 while 語 句相仿2。55端子是程序框圖和前面板之間或者在程序框圖的節(jié)點之間進(jìn)行數(shù)據(jù)傳輸?shù)慕涌凇R?般來說,端子是指在框圖程序中可以連線的任

9、一點。VI 前面板上的一個對象在程序框圖上 都有端子與之對應(yīng)。連線是輸入和輸出端子間的數(shù)據(jù)通道,代表程序執(zhí)行過程中的數(shù)據(jù)流,它們類似于 C語言中的變量。在框圖中數(shù)據(jù)時單向流動的,從源端口向一個或多個目的端口流動。不同的60線型代表不同的數(shù)據(jù)類型。每種數(shù)據(jù)類型以不同的顏色予以表示。圖標(biāo)和連接板。用以識別 VI 的接口,以便在創(chuàng)建 VI 時調(diào)用另一個 VI。當(dāng)一個 VI應(yīng)用在其他 VI 中,稱為子 VI。子 VI 相當(dāng)于文本編程語言中的子程序。2前面板設(shè)計前面板設(shè)計如圖 1所示。前面板上的元素分為控制量與顯示量。65控制量。包括串行調(diào)整、停止位、波特率、數(shù)據(jù)位、讀取數(shù)據(jù)位數(shù)和存儲路徑 6 個 參量

10、。其各個參數(shù)的設(shè)置如圖所示。在運(yùn)行程序之前,編程人員需要對這 6 個參量進(jìn)行設(shè)置。顯示量。包括右下角的示波器以及起始位、校驗位、采集數(shù)值等 4 個參數(shù)。當(dāng)程序 運(yùn)行時,軟件會將下位機(jī)發(fā)來的起始位、校驗位、采集數(shù)值以及波形值通過以上的顯示量顯 示出來。703程序框圖設(shè)計圖 1 前面板示意圖這部分 VI 的程序框圖包括串行通信和數(shù)據(jù)處理兩個部分。當(dāng)上位機(jī)接收到下位機(jī)傳輸 來的數(shù)據(jù)后,分別通過校驗和檢驗與軟件濾波,最終將采集數(shù)據(jù)顯示在示波器上,并可以對75采集數(shù)據(jù)和時間數(shù)據(jù)進(jìn)行數(shù)據(jù)備份。3.1串行通信模塊串行通信部分流程如錯誤!未找到引用源。所示。圖 2串口通信流程圖80軟件先將 PC 進(jìn)行波特率、

11、串行口資源、數(shù)據(jù)位個數(shù)和停止位參數(shù)的初始化,然后再設(shè)置讀取位參數(shù)。當(dāng) PC 機(jī)沒有接到下位機(jī)發(fā)送來的數(shù)據(jù)時,關(guān)閉串行口資源;如果接收到數(shù) 據(jù),軟件則將接收到的數(shù)據(jù)以字符串格式從 SBUF 中讀取出來,并將其轉(zhuǎn)換成數(shù)組格式輸出, 最后關(guān)閉串行口3。這就是串行通信部分的程序工作流程。85串行通信程序框圖如錯誤!未找到引用源。所示,此部分程序主要用于接收下位機(jī)發(fā) 送來的數(shù)據(jù),并將其轉(zhuǎn)換成數(shù)組格式。然后將轉(zhuǎn)換后的數(shù)據(jù)輸送到數(shù)據(jù)處理程序部分進(jìn)行下 一步處理。9095100105110圖 3串行通信程序框圖圖 圖4 VISA 配置串口節(jié)點展開圖由錯誤!未找到引用源。可知,程序先通過 VISA 配置串口節(jié)點

12、對串行口進(jìn)行初始化,用來定義串行通信參數(shù)。論文中用到的初始化參數(shù)為串口調(diào)整(VISA 資源名稱)、波特率、 數(shù)據(jù)位(數(shù)據(jù)比特)和停止位。串口調(diào)整賦值對應(yīng)于 PC 的 COM 口4。完成以上配置之后,程序?qū)⒋锌趨?shù)輸送至下一節(jié)點 VISA 讀取。該節(jié)點用來讀取 SBUF 傳送來的數(shù)據(jù),并以字符串形式傳輸。如果節(jié)點沒能在 SBUF 中讀取到數(shù)據(jù),則會從 錯誤輸出端口輸出錯誤指令。讀取數(shù)據(jù)位數(shù)參數(shù)用來設(shè)置軟件所要讀的字符數(shù)。圖 5讀串口節(jié)點 圖 6字符串轉(zhuǎn)數(shù)組節(jié)點 圖 7串口關(guān)閉節(jié)點從 SBUF 中讀取完數(shù)據(jù)后,因讀取的數(shù)據(jù)是字符串格式的,不方便后續(xù)的處理,所以 VISA 讀取節(jié)點讀取完 3 字節(jié)

13、數(shù)據(jù)后,程序調(diào)用了字符串轉(zhuǎn)數(shù)組節(jié)點。該節(jié)點將從 SBUF 讀 取的數(shù)據(jù)全部轉(zhuǎn)換為數(shù)組格式,輸出到數(shù)據(jù)處理程序以供下一步操作。當(dāng) VISA 讀取節(jié)點讀取數(shù)據(jù)的過程結(jié)束后,軟件調(diào)用 VISA 關(guān)閉節(jié)點關(guān)閉串行口。該節(jié) 點實現(xiàn)的是關(guān)閉串行口功能,只要將 VISA 資源名稱和錯誤輸入兩個端口和前級相連即可。3.2數(shù)據(jù)處理模塊數(shù)據(jù)處理模塊流程圖如圖 8所示,此部分程序接收到上一級發(fā)送來的數(shù)據(jù)后,先分離 出起始位、數(shù)據(jù)位、校驗位。接著程序判斷接收到的數(shù)據(jù)是否符合處理條件。此判斷分為三 步:開始軟件先判斷起始位是否為 AA;然后將起始位與數(shù)據(jù)位相加,判斷累加和是否與校 驗和相等;最后程序?qū)⒋藭r采集的值與上一

14、時刻比較,判定兩者之差是否小于設(shè)定值5。當(dāng) 以上三者全部滿足條件后,程序?qū)⒔邮盏降臄?shù)據(jù)位通過示波器實時顯示出來,并根據(jù)需要對 采集數(shù)據(jù)和時間進(jìn)行存儲。圖 8 數(shù)據(jù)處理具體流程圖115數(shù)據(jù)處理部分的程序框圖如圖 9所示。此部分程序接收到串行通信程序發(fā)送來的數(shù)組數(shù)據(jù)后,在分別進(jìn)行起始位判斷、校驗和檢驗與軟件濾波后,將數(shù)據(jù)通過前面板的示波器顯 示,最后將數(shù)據(jù)備份到指定的 TXT 文檔中。圖 9 數(shù)據(jù)處理部分程序框圖120125由圖 9可知,該部分程序先調(diào)用數(shù)組索引函數(shù)將數(shù)組數(shù)據(jù)中各個數(shù)據(jù)分離出來。該節(jié)點如圖 10所示,左邊為數(shù)組輸入端和數(shù)組索引號端口,數(shù)組的默認(rèn)編號是從 0 開始,即當(dāng) 索引值為 1

15、 時,相應(yīng)的輸出為數(shù)組中的第二個數(shù)據(jù),右邊為元素輸出端,索引與輸出的個數(shù) 可以通過向下拖動增加。每個元素的輸出端都與相應(yīng)的索引一一對應(yīng)。圖 10 分離數(shù)組由通信協(xié)議知,節(jié)點中的索引 0 應(yīng)賦值為 0,起始位將從右端的第一個端口輸出;索引 1 應(yīng)賦值為 1,數(shù)據(jù)位將從右端的第二個端口輸出;索引 2 應(yīng)賦值為 2,校驗和位將從右 端的第三個端口輸出。當(dāng)數(shù)組分離完成后,程序?qū)⑦@三個數(shù)據(jù)輸送到后級分別處理。130135圖 11 起始位判斷程序分離出各個數(shù)據(jù)之后,需要通過三組判斷來確認(rèn)下位機(jī)傳來的數(shù)據(jù)是否有效。首 先通過相等判斷節(jié)點(如圖 11)判斷起始位和 AA 是否相等。如果值相等,則輸出“是” 信

16、號;否則輸出“非”信號。圖 12 校驗和判斷140145同時,程序利用加法節(jié)點(如圖 12)將起始位和數(shù)據(jù)位數(shù)值累加后,判斷值與校驗和 是否相等。如果值相等,則輸出“是”信號;否則輸出“非”信號。程序?qū)?shù)據(jù)位與移位寄存器里的值做差,并對差取絕對值。然后軟件將此值與設(shè)置的 濾波值相比較(如圖 13)。如果差值小于濾波值,則輸出“是”信號;否則輸出“非”信 號。最后軟件將接收到的數(shù)據(jù)位保存到移位寄存器中6。圖 13 濾波判斷尖刺干擾150155160通過以上判斷過程后,程序?qū)?3 個判斷的結(jié)果相與。當(dāng)它們?nèi)繚M足規(guī)定的條件時,即 3 個判斷結(jié)果全為“是”,則輸出“是”信號,運(yùn)行條件判斷語句中的“真

17、”部分,在前 面板上分別顯示接收到的起始位,數(shù)據(jù)位和校驗位(如圖 14所示),最后輸出存儲數(shù)據(jù)。 如果判斷后得到“否”信號,則執(zhí)行條件判斷語句中的“假”部分空操作,程序?qū)⑺邮盏?的所有數(shù)值拋棄。圖 14 數(shù)據(jù)輸出當(dāng)完成前面的流程后,軟件將最終需要存儲的數(shù)據(jù)輸送到文件存儲節(jié)點,通過前面板 上的確認(rèn)按鈕選擇是否存儲數(shù)據(jù)(如圖 15)。這里的存儲路徑在前面板上設(shè)定。以上便是 數(shù)據(jù)處理部分的全部流程。圖 15 文件存儲上位機(jī)軟件的完整程序框圖如圖 16所示。軟件由串行接收程序和數(shù)據(jù)處理程序兩部分 組成。上位機(jī)通過串行接收程序接收完數(shù)據(jù)之后,運(yùn)行數(shù)據(jù)處理程序?qū)⑺邮盏降臄?shù)據(jù)在 LabVIEW 的前面板

18、上顯示。串行接收程序負(fù)責(zé)下位機(jī)數(shù)據(jù)的接收,數(shù)據(jù)處理部分主要用來 校驗和存儲數(shù)據(jù)。1654結(jié)論圖 16 總體程序框圖170175180NI(National Instruments)公司的 LabVIEW 軟件平臺,是個功能強(qiáng)大且靈活的軟件, 具有開發(fā)周期短、兼容性好、運(yùn)行穩(wěn)定等優(yōu)點,其后臺程序完全利用圖形界面編程,利用很 多現(xiàn)成的模塊,你可以很方便地開發(fā)上位機(jī)程序,大大減少了開發(fā)的難度。本文介紹了 LabVIEW 的編程環(huán)境,提出了一種基于 LabVIEW 的上位機(jī)監(jiān)控方案,并給出了相應(yīng)的監(jiān)控 界面和串口通信程序,可以作為相關(guān)行業(yè)從業(yè)人員的參考。參考文獻(xiàn) (References)1 劉君華. 虛擬儀器圖形化編程語言 LabVIEW 教程M. 西安:西

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論