以虛擬信號發(fā)生器為例,介紹了Lebview編程中人機界面的整體模式、彈出式模式及動態(tài)調用模式的設計與實現(xiàn)方法,并分析比較了各自的應用特點。
1 前言
Lebview現(xiàn)在已經越來越廣泛地應用于測量、控制、教學、科研等領域,它采用圖形化編程方式,內置大量功能,能夠很方便地完成數(shù)據采集分析顯示、儀器控制、測量測試、工業(yè)過程仿真及控制等多種操作,并具有良好的可擴展性。
在應用Lebview進行實際項目開發(fā)時往往要求程序能夠實現(xiàn)多功能集成化,這時程序界面的統(tǒng)一化、便于操作等要求就十分重要。本文以虛擬信號發(fā)生器的開發(fā)過程為例,對使用Labview開發(fā)虛擬儀器時人機界面模式的設計與實現(xiàn)進行了研究。
2 虛擬信號發(fā)生器的系統(tǒng)要求及分析
2.1 系統(tǒng)要求
虛擬信號發(fā)生器的總體設計要求如下'1、實現(xiàn)多功能信號發(fā)生,能夠產生常用波形(正弦波、三角波、方波、齒鋸波等)、用戶自定義函數(shù)波形、加噪波形等。2、可進行參數(shù)調節(jié)、并完成波形的數(shù)字存儲功能。3、要求良好的人機交互界面,易于操作。
2.2 設計分析
在Lebview中實現(xiàn)單一功能的信號發(fā)生較為簡單,只需在前面板放置相應的控件進行波形參數(shù)設置、波形顯示及數(shù)據存儲路徑選擇,然后在框圖程序窗口選擇合適的功能節(jié)點,并完成各節(jié)點及端點的邏輯連接即可達到要求。
按照系統(tǒng)設計要求,程序不但需要實現(xiàn)多種功能,同時還應該具有能讓用戶便捷地進行操作的特點,而簡單地將多個子功能程序放在一起并不能滿足要求。
我們針對"便于操作、良好的人機交互界面"這個系統(tǒng)要求進行了綜合分析,設計了三種具有不同特點的人機界面模式:整體界面模式、彈出式界面模式、動態(tài)調用界面模式。
3 虛擬信號發(fā)生器的人機界面設計
3.1整體界面模式設計
整體界面模式的特點:所有功能模塊的參數(shù)設置及實現(xiàn)均在同一界面下,不同的功能對應不同的功能按鈕。當按下某一按鈕時,將實現(xiàn)相應的功能操作。
3.1.1 前面板設計
在前面板設計中,我們將公共參數(shù)放在一組,以免出現(xiàn)重復控件;將各子功能的特征參數(shù)分在不同的組中,以方便用戶操作。波形的顯示由一個graph控件完成,數(shù)據存儲也共用同一功能區(qū)。用互鎖按鈕實現(xiàn)各子功能之間的切換。該模式下的前面板如圖1所示。
圖1 整體界面模式的前面板
3.1.2 框圖程序設計要點
我們選用了選擇結構來完成整體界面模式的實現(xiàn):將常用信號模塊、用戶函數(shù)信號模塊、加噪信號模塊分別作為選擇結構的三個分支。當按下所需功能按鈕時,執(zhí)行所選的子框圖程序,完成相應操作。這里需要注意的是各子功能按鈕應該設置為互鎖關系,即在任一時刻只允許有一個按鈕被按下。當另一按鈕被按下時,原先在按下狀態(tài)的按鈕將自動彈起。
我們將各子功能按鈕放入一個數(shù)組中,則該數(shù)組內容對應各按鈕的開關狀態(tài)。然后設置一個while循環(huán)結構,利用循環(huán)結構的移位寄存器比較本次循環(huán)中的按鈕數(shù)組內容和上次循環(huán)中的按鈕數(shù)組內容,若相等,則說明沒有按下其他按鈕;若不等,說明有另外的按鈕按下,此時需要將按鈕數(shù)組的內容重寫:原來按下的按鈕邏輯值應該改為"false",而新按下的按鈕邏輯值應變?yōu)?true".可將當前按鈕狀態(tài)內容與前一次的按鈕狀態(tài)內容進行異或運算來實現(xiàn)這兩步功能。更新后的按鈕狀態(tài)通過局部變量對原按鈕數(shù)組內容進行重寫完成。互鎖邏輯的框圖程序如圖2所示。
圖2 互鎖邏輯框圖程序
整體界面模式的優(yōu)點在于所有子功能模塊均在同一界面下,整體可視性、可操作性較好。但當子模塊類型較多時,將出現(xiàn)界面過于臃腫而不易操作、編程過于繁雜的問題,此時我們可以通過Tab控件進行功能模塊的分類,以達到簡化前面板界面的目的。
3.2 彈出式界面模式
彈出式界面模式的特點:在主程序面板按下子功能按鈕時,將彈出相應功能的子程序面板,子面板運行完畢后將返回主面板。
3.2.1 前面板設計
我們將各子功能模塊做成多個子程序,為調用方便與主程序放置在同一路徑下。主程序的前面板只需實現(xiàn)相應功能的調用按鈕配置。當需要使用某項功能時,按下對應的按鈕即可將子程序界面調出,執(zhí)行完畢后關閉子程序則可退回主程序界面,進行其他功能的調用。虛擬信號發(fā)生器運行過程中的彈出式界面如圖3所示(調用"常用波形發(fā)生"子功能程序)。
圖3 彈出式界面模式下的前面板架構
3.2.2 框圖程序設計要點
利用Labview的事件驅動功能可以較容易地實現(xiàn)彈出式界面的設計要求,因此我們選擇事件結構來實現(xiàn)虛擬信號發(fā)生器的彈出式界面的程序設計。
在主程序的事件結構中,為每個功能按鈕的事件發(fā)生指定相應子功能程序的調用。這樣,每次當某一功能按鈕按下時,Labview會自動通知程序所發(fā)生的事件,然后按照為這個事件指定的程序代碼對事件進行響應。主程序的框圖設計如圖4所示。
圖4 彈出式界面模式的主框圖程序
彈出式界面模式的優(yōu)點在于界面及程序結構清晰,所有子模塊單獨編程,由主程序按需調用,這樣可以大大減少編程的復雜程度。
3.3 動態(tài)調用模式
動態(tài)調用模式的特點:子功能程序僅在被調用時動態(tài)加載入內存,調用結束后即釋放。
3.3.1前面板設計
我們將程序界面分為左右兩個區(qū)域:左邊區(qū)域設置各功能按鈕,可按需調用子功能;右邊區(qū)域由子面板控件subpanel構成,在子功能被調用時顯示和運行相應界面及功能。圖5所示的是程序調用"函數(shù)信號發(fā)生"子功能程序時的界面情況。
圖5 動態(tài)調用模式的前面板
3.3.2 框圖程序設計要點
為了方便調用子功能程序,將主程序和各子功能程序保存在同一路徑下。
主程序運行時,當需要調用某一子功能程序時,首先應該知道該子程序的整體路徑:可以先使用cur-renl VI'S Poih函數(shù)和Stdp Path函數(shù)獲取主程序的路徑,將此路徑與需要調用的子程序名合成子程序的整體路徑。然后由loodondRun函數(shù)將已知路徑的子程序加載并啟動,最后在subponel控件對應的調用節(jié)點中使用Insert VI方法將子程序的面板插入子面板控件中。
不同子功能程序的選擇要求由選擇結構實現(xiàn)。
動態(tài)調用界面模式的優(yōu)點在于子模塊單獨編程,結構清楚,編程的復雜程度低;程序動態(tài)加載,占用內存少,加載速度快。
4 總結
我們基于虛擬信號發(fā)生器的設計對Labview編程中常用的三種人機界面模式:整體界面模式、彈出式界面模式、動態(tài)調用界面模式進行了詳細的分析和研究,在實際項目開發(fā)中可以根據具體情況直接選用這些模式進行界面設計,也將它們綜合使用,以達到更高的設計要求。
另外需要指出的是,每種模式的實現(xiàn)方法也是靈活多變的,比如2.1中涉及到的互鎖按鈕也可以用枚舉(Enum)控件實現(xiàn)相同的功能。而互鎖邏輯的實現(xiàn)也能使用事件結構結合設置控件屬性節(jié)點的方法實現(xiàn):當某一功能按鈕(如"常用波形"按鈕)按下時,執(zhí)行相應程序代碼:將自身的邏輯值置為lrue,同時使其他功能按鈕的值為false.
-
LabVIEW
+關注
關注
2017文章
3688瀏覽量
347137 -
人機界面
+關注
關注
5文章
564瀏覽量
45615 -
信號發(fā)生器
+關注
關注
28文章
1700瀏覽量
113410
發(fā)布評論請先 登錄
施耐德電氣機器運動控制“黃金四件套”整體解決方案全面推向市場
信捷電氣TS5系列物聯(lián)網人機界面國際版震撼升級
重構未來自適應人機交互的創(chuàng)新技術
神秘轉換!耐達訊自動化Modbus RTU秒變Profibus 接 HMI人機界面
拯救工業(yè)組態(tài) HMI 人機界面
基于LDC-HALL-HMI-EVM的人機界面評估模塊技術解析
別再為通信難題煩惱!耐達訊自動化RS232 轉 Profibus 完勝傳統(tǒng),暢連 HMI 人機界面
EtherNet/IP轉MODBUSTCP協(xié)議轉換網關實現(xiàn)HMI人機界面與分布式IO通訊的配置案例
浮思特 | 如何開發(fā)高效可靠的人機界面(HMI):實踐與考量
STC8H 單片機 + RA8889/RA6809:重新定義嵌入式觸控交互_高流暢、低延遲、零基礎的人機界面(一)
互聯(lián)世界中的人機界面 (HMI) 和網關
基于新唐 NUVOTON MA35H0結合emWin的人機界面規(guī)劃設計方案
在PLC中創(chuàng)建基于Web的人機界面可視化
為小型PLC和人機界面優(yōu)化的微處理器RZ/N1S數(shù)據手冊
Lebview編程中虛擬儀器人機界面的整體模式設計
評論