熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > LabVIEW數據流控制方法研究

LabVIEW數據流控制方法研究

時間:2008-11-19 10:47:00來源:ronggang

導語:?本文剖析了LabVIEW數據流語言的特點,提供了其若干有效控制方法,指出LabVIEW本身即可解決數據流控制上的變量沖突、響應時序控制、初始狀態自適應調整等問題并保證其通用性

摘 要:本文剖析了LabVIEW數據流語言的特點,提供了其若干有效控制方法,指出LabVIEW本身即可解決數據流控制上的變量沖突、響應時序控制、初始狀態自適應調整等問題并保證其通用性,而不必求助于其它代碼語言(如C語言),這樣,既減輕了程序的復雜性,提高了效率,還豐富了LabVIEW的應用。文中以單選功能按鈕設計實例詳述了變量沖突、響應時序控制、初始狀態自適應調整等問題的具體解決方案,在某型裝備測試系統的實際運行中驗證了該方法可行有效。

關鍵詞:數據流;LabVIEW;變量沖突;時序控制

Abstract: The character of LabVIEW dataflow programming is analyzed and some methods on the control of dataflow in LabVIEW are given. Problems such as variable conflict, time responding sequence control and initial status self-adjustment are able to be settled out without using other codes (e.g. C language),so that the programming complexity is less and the efficiency is higher and the application of LabVIEW is more extensive. The example of the design of single-activated buttons is detailed showing how to solute the problems above concretely and the experiment result running on some measurement systems proves the solution is feasible and reliable.

Keywords: dataflow;LabVIEW;variable conflict;time responding sequence control;initial status self-adjustment

0 引言

LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是虛擬儀器概念的首創者,是世界上最優秀的虛擬儀器軟件開發平臺[1][2]。它使用圖形化數據流編程語言,這種新興的編程方式給編程人員帶來了新的困難,主要體現于對數據流的控制上。LabVIEW編程人員遇到困難往往求助于C語言[3]。隨著虛擬儀器的廣泛應用,為提高編程效率,真正理解并靈活掌握LabVIEW數據流語言是必要的。

1 數據流編程的特點

數據流語言的每個節點在執行之前需要提供其所有輸入端口的有效數據,LabVIEW允許用戶在一個圖表上擁有任意數量的不同節點,所有的節點可以并行執行。LabVIEW環境還支持多個VI并行執行,而不管操作系統或者計算機的功能如何。這些功能使得用戶無須做任何特殊編程工作就可以非常自由地同步執行各種不同的任務。

LabVIEW數據流編程克服了文本語言編程內存管理中的許多困難。在LabVIEW中,不必給變量分配內存,也不必為變量賦值或者從變量取值,只需創建一個帶有描述數據轉換關系的內部聯系的框圖程序。產生數據的函數可以精心地為數據分配內存,當數據不再使用時,相應的內存被釋放。當向數組或字符串添加新數據時,管理新數據的足夠內存資源會自動進行分配,這種自動的內存分配操作是LabVIEW的主要優勢之一。

2 數據流編程的難點及若干解決方案

LabVIEW程序的內存管理是自動進行的,中間狀態的捕捉和控制十分困難。例如,實時顯示現場采集數據串的最大值問題、通過按鈕手動控制現場采集數據串某一時刻數據作為比較對象的問題以及單選功能按鈕的實現問題等等,似簡實難。經編程實踐,總結方案如下:

(1)結構控制

循環結構,如For循環和while循環結構;順序(Sequence)結構,適當使用Sequence結構能提高程序可讀性,讓數據清晰流動;分支結構(case Structure);事件結構(Event Structure),允許用戶在前面板的直接干預或程序不同部分之間的交流影響程序的執行;定時循環(Timed Loop)結構,可創建多采樣率(multi-rate)的、對時間要求嚴格(time-critical)的數據采集應用程序,并定義不同優先級的循環。

(2)移位寄存器(Shift Register)控制

移位寄存器與While或For循環結合能夠保存各種狀態信息,未初始化的移位寄存器則保留著以前的內容。

(3)變量控制

變量在這里指局部變量和全局變量。局部變量用來在一個VI程序內部傳遞數據,它不僅可以解決連線的困難,而且可以對同一個控件多次寫入和讀出數據。全局變量則可用于在不同程序之間傳遞數據,全局變量也是用一個控件的形式存放數據,但是這個控件獨立于調用它的VI,以一個特殊的VI作為自己的容器。

(4)通告(Notifier)和隊列(Queue)控制

通告和隊列的方式有時可代替變量方式來傳遞數據。使用通告方式傳遞數據時,只有寫入數據并告知后才能讀取數據。通告以廣播的方式發布,收到廣播的用戶都可以去讀數據。隊列方式傳遞數據是最先去讀數據的用戶讀完數據就將它擦掉,只有一個接收數據的用戶。   單一使用上述某種方案往往力不從心,綜合靈活運用才能在編程中產生較好的效果。

3 實例分析

單選功能按鈕的設計是許多綜合測試系統設計中的一部分。它要求完成的功能是:

⑴ 某一個按鈕按下去時,其余按鈕全部處于無效的工作狀態。

⑵ 按下去的按鈕要求能無誤地啟動系統的該項功能。

設計中需要解決以下問題:

⑴ 變量沖突。程序包含按鈕間的相互控制,其控件及局部變量間的沖突問題十分突出;

⑵ 響應時序控制。按鈕操作和讀按鈕狀態的先后次序需進行適應控制,否則容易產生空檔(按鈕按下卻不啟動系統的功能)和幾個按鈕同時被按下等異常情況,導致程序紊亂;

⑶ 初始狀態自適應調整問題。

用LabVIEW設計流程圖及流程圖示說明如下所示:

BUTTON ARRAY :按鈕合在一起的數組;

SEARCH 1D ARRAY:比較兩數組的不同,返回不同元素的序號;

INDEX ARRAY(INDEX,ELEM):數組ARRAY, INDEX是序號,ELEM是元素。此函數是找出數組ARRAY中序號為INDEX的元素;

NULL:空操作;

DIFFERENCES:差異信息;

D.B.:Digital buttons數字化按鈕,即用編號表示不同按鈕。

總流程為將框圖1所示流程循環兩次!再進行框圖2所示流程,具體步驟詳述如下:

針對問題⑴,程序遵循“對操作的按鈕不操作”的原則。如框圖1,用SEARCH 1D ARRAY分辨出被操作的按鈕,對其它按鈕置“假”。這樣,按鈕間就可不發生沖突。

框圖1

框圖2

針對問題⑵,則必須充分考慮程序的數據“流”運行過程。分述如下:

① 每次讀BUTTON布爾值時,都要考慮外界面是否有對按鈕的操作輸入,這在框圖1、2中都體現得很明顯;

② 框圖1要循環2次很關鍵。考慮這樣一種情況:外界面對按鈕的操作在BUTTON ARRAY(1)與BUTTON ARRAY(2)之間,則在循環的第一次對按鈕的操作沒有起作用,但它以反饋機制把按鈕信息傳給了始端,由于程序運行的速度遠在人工界面上的手動操作速度之上,所以循環的第二次無外界輸入,這樣對按鈕的操作在循環二次后便響應了,沒有掛空。同理,當外界面對按鈕的操作介于BUTTON ARRAY(2)與框圖2的read BUTTONs之間時,外界面對按鈕的操作會在下一循環(對實際測試系統肯定是大范圍循環操作的)產生作用,由于程序運行得很快,操作者看到的是“實時”的操作。如果在read BUTTONs之后,那就回到框圖1的始端了。因此,任何時候按下按鈕,程序皆運行正常。

針對問題⑶,未初始化的移位寄存器能保留原有的狀態。在程序運行前,若出現按鈕異常現象,由于程序默認一個按鈕按下,異常按鈕會立即得以糾正。

對于數字化按鈕(見流程圖框圖2)的實現,將按鈕狀態轉化為0、1,用一個連加運算根據其和的大小便可知道是否同時有多按鈕或單按鈕或無按鈕按下,從而將按鈕信號引出。

部分LabVIEW程序示例

圖2 部分LabVIEW程序示例

4 結束語

我們之所以廣泛調用C及其他文本語言來解決LabVIEW難題,正是我們對這種數據流控制的編程方式認識不深的緣故。本文提供若干LabVIEW數據流控制方法,強調靈活運用便能解決實際編程中遇到的難題。單選功能按鈕的設計是個很典型的數據流控制實例,文中給出的用LabVIEW本身解決變量沖突、響應時序控制、初始狀態自適應調整等問題的方法,沒有使用事件驅動結構,避免了在測試系統中并行使用事件驅動結構產生的沖突,具有程序和版本的通用性,在實際操作運行中證明確實可行有效。

本文作者創新點: 本文剖析了LabVIEW數據流語言的特點,提供了其若干有效控制方法,文中給出的用LabVIEW本身解決變量沖突、響應時序控制、初始狀態自適應調整等問題的方法,沒有使用事件驅動結構,避免了在測試系統中并行使用事件驅動結構產生的沖突,具有程序和版本的通用性,而不必求助于其它代碼語言(如C語言),這樣,既減輕了程序的復雜性,提高了效率,還豐富了LabVIEW的應用。

參考文獻

[1] 楊樂平,李海濤,趙勇等.LabVIEW高級程序設計[M].北京:清華大學出版社,2003

[2] Gary W.Johnson,Richard Jennings. LabVIEW圖形編程[M].北京:北京大學出版社,2002

[3] 周廣清,陳光杰. LabVIEW環境下單選功能鍵的設計[J].醫療衛生裝備,2003(5):9-11

[4] 雷振山. LabVIEW7 EXPRESS 實用技術教程[M].中國鐵道出版社,2004

[5] Mike Trimborn.跨越鴻溝,游刃有余— LabVIEW 7 Express 兼具易用性和強大的編程功能[J].今日電子,2003(8):58

[6] 馮勁梅,連之偉.對LabVIEW使用中若干問題的探討[J].中國制造業信息化,2003(9):121-124

[7] 李揚,鄭瑩娜,朱錚濤.圖形化編程語言LabVIEW環境及其開放性[J].計算機工程,1999(4):63-65

[8] 蔡繼軍,張彥斌,秘曉元,,姚世鋒.基于事件驅動編程的虛擬儀器人機界面設計.微計算機信息,2005年第31期:119-121

標簽:

點贊

分享到:

上一篇:基于IEEE 1451.2的智能傳感...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 嫩江县| 九台市| 西畴县| 屏东市| 南阳市| 松溪县| 葵青区| 尼木县| 长寿区| 商都县| 宣威市| 安丘市| 巴彦淖尔市| 临澧县| 淄博市| 福海县| 衢州市| 会宁县| 芜湖县| 易门县| 永仁县| 广德县| 遂溪县| 宜昌市| 资中县| 佳木斯市| 蓬莱市| 嵊州市| 四平市| 南丹县| 东丰县| 巩义市| 高清| 茌平县| 田东县| 阳江市| 盐亭县| 古丈县| 定州市| 太仓市| 武安市|