《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > LabVIEW新手5大錯誤
LabVIEW新手5大錯誤
摘要: 雖然NI LabVIEW軟件長期以來一直幫助工程師和科學家們快速開發功能測量和控制應用,但不是所有的新用戶都會遵循LabVIEW編程的最佳方法。LabVIEW圖形化編程比較獨特,因為只需看一眼用戶的應用程序,就馬上可以發現用戶是否遵循編碼的最佳方法。有些用戶會犯這些錯誤是因為他們沒有真正理解LabVIEW框圖數據流背后的原理,而有些用戶則是不知道哪些特性可提高LabVIEW編程質量。
Abstract:
Key words :

 

雖然NI labview/zhs/">LabVIEW軟件長期以來一直幫助工程師和科學家們快速開發功能測量和控制應用,但不是所有的新用戶都會遵循LabVIEW編程的最佳方法。LabVIEW圖形化編程比較獨特,因為只需看一眼用戶的應用程序,就馬上可以發現用戶是否遵循編碼的最佳方法。有些用戶會犯這些錯誤是因為他們沒有真正理解LabVIEW框圖數據流背后的原理,而有些用戶則是不知道哪些特性可提高LabVIEW編程質量。

本文介紹了經驗欠缺的LabVIEW程序員最經常犯的一些編程錯誤,同時也提供了采用正確LabVIEW編程方法的建議。

圖1. LabVIEW新手典型“杰作”

過度使用平鋪式順序結構 

許多LabVIEW新手并不完全了解“數據流”執行背后的概念,而這些概念卻是LabVIEW編程的基礎。其中一個現象是用戶往往在程序框圖中過度使用平鋪式順序結構。用戶經常依賴平鋪式順序結構來實現程序框圖的代碼串行執行,而不是使用數據流和節點之間的連線。

圖2. 用戶往往過度依賴平鋪式順序結構,而沒有充分理解數據流編程概念。

數據流編程是指只有在所需的數據輸入全部到達時,框圖上的節點(子VI、本原、結構等)才開始執行。 這對于使用LabVIEW的程序員來說非常有用,因為獨立的進程本身就可以實現并行運行,而命令式語言卻需要額外的設置才能實行并行執行。隨著計算機CPU的不斷增多,LabVIEW可自動分解并行流程,提高代碼性能,而無需用戶編寫任何額外代碼。而強行使用平鋪式順序結構來執行程序框圖不僅會限制并行運行,還會喪失這一優勢。限制程序框圖中不必要的結構有助于提高整體可讀性和保持更簡潔的框圖。

錯誤連線可以有效地實現程序框圖上的數據流,而不需要依靠平鋪式順序結構,此外錯誤連線還有助于實現錯誤處理策略。

何時應該使用平鋪式順序結構?

通過平鋪式順序結構來執行程序框圖有助于代碼性能的基準測試。通過使用框架內具有時間計數器的順序結構,您可以決定兩個時間計數器之間代碼執行所花費的時間。這是一般數據流執行所無法實現的。

圖3. 平鋪式順序結構和時間計數器VI有助于代碼的基準測試。

關于數據流編程的更多信息,請訪問在線自學培訓(ni.com/self-paced-training)LabVIEW核心課程1的“數據流”。購買LabVIEW或具有標準服務項目(ni.com/ SSP)會員資格的用戶可以免費參加在線自學培訓。

 

錯誤使用局部變量

LabVIEW編程中另一個常見的錯誤是過度使用局部變量。局部變量是共享內存中的一個區域,用于在計算機程序不同部分之間傳遞數據。局域變量通常用于文本編程語言,具有非常強大的功能,但如果出現競爭條件,就會產生問題。

對于其他編程語言來說,通過變量傳遞數據是必需的,而LabVIEW則提供了一種數據流方法,可將數據從程序的一個部分移動到另一個部分。LabVIEW固有的并行性機制決定著用戶不能過度使用變量,因為同一時間內通常會有多個不同的位置的程序訪問共享內存。如果過度使用變量,則會出現某個讀/寫操作贏了“競爭”,而其他操作則輸了“競爭”,丟失數據的操作會被忽視,因此在LabVIEW中過度使用變量可能會最終導致數據丟失。

您可以通過多種方法安全地將數據從LabVIEW程序的一個部分傳遞到另一個部分,包括連線、隊列、事件、通知、功能全局變量等等。每個機制都是針對特定情況設計的,但都具有消除競爭條件的功能。

關于在LabVIEW程序內正確移動數據的更多信息,請訪問在線自學培訓(ni.com/self-paced-training)LabVIEW核心課程1的“局域變量”和LabVIEW核心課程2的“通知、隊列和事件”。

忽略代碼模塊化

通常情況下,新LabVIEW用戶創建的是“即寫即忘”應用程序去完成簡單的任務,而沒有考慮到以后是否會用到這些代碼。隨著編程工作越來越多,他們會發現自己一遍又一遍地重寫同一段代碼。而如果在編程同時創建一個可復用于其他應用的模塊化子VI,就可以節省大量的開發時間。

如果您知道代碼的特定部分將會重用于同一應用程序,或感覺該部分代碼可能會用于未來的應用程序,那么您應該花一點時間將該部分代碼變成一個子VI。如果要使某部分代碼成為一個子VI,您需要做的主要是添加一個文檔、使用“接線端”、禁用某些VI屬性。創建子VI的最簡單方法之一是高亮標記程序框圖中的某部分代碼,然后從菜單欄中選擇“編輯>>創建子VI”。這樣這部分代碼就會放到一個單獨的VI,然后使用“接線端”。您仍然需要為圖標添加說明,并將文檔記述添加到程序框圖和VI屬性中,然后取消某些VI設置,但“編輯>>創建子VI”可幫助您很好地了解代碼的模塊化功能。


圖4. 采用正確的LabVIEW代碼模塊化操作可以幫助您節省大量開發時間。

代碼模塊化時必須取消的一項設置是“允許調試”。 您可在“VI屬性(文件>>VI屬性)”下的“執行”目錄中找到此選項。代碼完全正常運行無需再使用高亮執行等調試功能時,在執行設置中取消“允許調試”,然后再次運行VI。這樣做的好處是由于在編譯過程中進行了優化,應用程序的運行速度可能加快,而且由于啟動調試的代碼被關閉,VI所占的磁盤物理空間也相應減少了。

關于代碼模塊化的更多信息,請訪問在線自學培訓LabVIEW核心課程1的“理解模塊化”。

創建龐大繁瑣的程序框圖

許多新LabVIEW用戶都會把程序框圖編寫得非常繁瑣龐大。對于一些復雜的應用程序,我們難免需要編寫較大的程序框圖,但龐大的程序框圖從一定程度上也可以表明該程序缺乏編程架構。如果沒有一個基本的架構,要長期維護該程序是非常困難的,而且如果以后要添加新功能也會非常困難。正如只有一個好的框架才能建造一棟結構合理的房子,一個好的編程架構可以為您構建應用程序提供了一個安全可靠的框架。

幾乎所有的程序員都會發現常見的框架中,軟件架構是非常有用的。實際上LabVIEW中的許多架構,如生產者/消費者和狀態機,與其他編程語言非常相似。

了解LabVIEW的架構可以縮短開發時間和提高應用程序的可擴展性。LabVIEW 2012包含了模板和項目范例,使理解架構變得更加容易。模板解釋了不同的架構及應用。項目范例則是基于模板的更大型應用程序,演示了如何使用模板來應對實際的挑戰。您可以將硬件加入到范例項目中,或者需要時可將項目范例作為一個整體應用程序,同時項目范例具有開放性且文檔記述也很完整,所以您可針對具體應用進行自定義。

圖5. LabVIEW 2012中的模板和項目范例使得理解軟件架構變得非常輕松。

關于LabVIEW架構的更多信息,請訪問在線自學培訓(ni.com/self-paced-training) for LabVIEW核心課程2的“設計模式”。

不重視文檔記錄

優秀的代碼文檔可以有效地幫助他人理解自己寫的程序。遺憾的是,許多程序員通常在開發周期末期功能開發結束之后才開始進行文檔撰寫。這使得用于對代碼進行文檔記錄的時間變得非常少。正確的做法應該是在開發過程中就需抽出時間來開始進行文檔記錄。文檔對于編程人員自身也非常有用,尤其是當他們過段時間回來看代碼卻不記得當初他們為什么選擇某些代碼時。程序員經常會一邊喝著咖啡,一邊熬夜編程,這往往會出現“短暫失憶”。而文檔則可以幫助程序員進行回憶。

一般情況下,相對于基于文本的程序,LabVIEW的圖形化特性使得程序閱讀更為容易,但是有效的文檔記錄可以減少“解碼”程序所需的時間。添加文檔注釋到程序框圖的最簡單方式是使用自由標簽。您可以在框圖的空白位置雙擊左鍵,并輸入文字,添加注釋。然后,使用箭頭標記來指向自由標簽引用的特定代碼。如果需要添加圖片,則可將它們復制到剪貼板,然后粘貼到程序框圖中。物理系統圖片和數學公式均有助于清晰說明程序框圖內的代碼上下文。


 

圖6.架構正確且文檔記錄充分的代碼不僅可幫助其他人理解您的代碼,也可幫助您更好地理解自己的代碼。

對代碼進行文檔記錄不僅只是針對復用程序庫,而應該是針對每一個程序。當一個人需要為其他人講解時,他對該主題將會有更深刻的理解。文檔記錄從本質上看就是在迫使程序員進行講解,以幫助他們更好地了解自己的代碼。

關于文檔記述的更多信息,請訪問在線自學培訓LabVIEW核心課程1的“對代碼進行文檔記錄”。

LabVIEW旨在幫助工程師和科學家更成功地應對全球最嚴峻的挑戰。LabVIEW社區擁有龐大的工程師和科學家會員,為其提供了一個有效的平臺來與他人分享知識。如果您愿意分享自己所犯過的新手錯誤,請發布到bit.ly/lvrookiemistakes。

 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久综合九色九九| 国产精品久久99| 亚洲午夜久久久久久久久电影网| 午夜精品久久久久久久久久久久| 久久亚洲春色中文字幕久久久| 国产综合精品| 亚洲视频欧洲视频| 99精品欧美| 葵司免费一区二区三区四区五区| 亚洲欧美另类久久久精品2019| 激情文学一区| 久久人人97超碰精品888| 国产午夜精品一区二区三区欧美| 国产精品一区二区视频| 一区二区在线视频播放| 国产一区二区三区在线观看视频| 欧美高清在线一区| 国产欧美在线视频| 欧美一级视频免费在线观看| 欧美在线一级视频| 国产精品亚洲第一区在线暖暖韩国| 亚洲午夜精品一区二区三区他趣| 国产精品久久久久久久久久ktv| 国外视频精品毛片| 欧美午夜三级| 欧美日韩伦理在线免费| 亚洲欧美视频在线观看| 亚洲精品国产精品国自产观看浪潮| 亚洲精品资源美女情侣酒店| 羞羞视频在线观看欧美| 欧美人与性动交α欧美精品济南到| 国产精品一区2区| 欧美在线视频a| 在线亚洲欧美专区二区| 狠狠狠色丁香婷婷综合激情| 久久中文字幕一区二区三区| 亚洲欧美三级伦理| 欧美日本高清视频| 亚洲午夜精品福利| 欧美日韩高清区| 亚洲欧美高清| 久久中文久久字幕| 免播放器亚洲一区| 亚洲高清三级视频| 欧美日韩在线三级| 国产精品v欧美精品v日韩| 黄色国产精品一区二区三区| 欧美在线精品免播放器视频| 亚洲永久免费av| 欧美日韩免费区域视频在线观看| 中文国产亚洲喷潮| 欧美理论电影在线播放| 欧美一区高清| 欧美与黑人午夜性猛交久久久| 国内精品久久久久久久影视麻豆| 欧美日韩成人精品| 欧美偷拍一区二区| 久久狠狠婷婷| 欧美激情视频一区二区三区在线播放| 欧美日韩国产另类不卡| 国模一区二区三区| 欧美日韩一区在线视频| 欧美成人激情视频| 国产精品毛片a∨一区二区三区| 亚洲一区精品视频| 国产精品一区三区| 国产精品久久久久久久久久尿| 亚洲午夜久久久| 怡红院av一区二区三区| 亚洲人成在线播放网站岛国| 亚洲影音先锋| 国产伦一区二区三区色一情| 亚洲最新合集| 久久一区视频| 激情五月婷婷综合| 亚洲一区二区三区精品动漫| 欧美一区高清| 又紧又大又爽精品一区二区| 亚洲午夜激情网站| 国产一区二区三区四区老人| 午夜精品视频在线| 亚洲综合色激情五月| 欧美精品色一区二区三区| 欧美一区国产一区| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美午夜免费影院| 久久免费国产| 亚洲黄色一区| 午夜欧美精品| 亚洲精品美女免费| 在线观看欧美日韩国产| 亚洲一区二区三区久久| 欧美视频在线观看免费| 欧美日韩一区二区国产| 久久午夜视频| 蜜桃精品一区二区三区| 国产欧美丝祙| 亚洲精品一线二线三线无人区| 国产一区二区精品在线观看| 精品成人在线| 国产欧美日韩综合精品二区| 欧美日韩国产首页在线观看| 毛片基地黄久久久久久天堂| 欧美日韩少妇| 亚洲午夜久久久| 亚洲精品黄色| 亚洲国产精品成人一区二区| 亚洲国产精品毛片| 久久久久久久97| 亚洲激情视频网站| 欧美激情精品久久久久久久变态| 久久精品国产久精国产思思| 欧美亚洲一区二区在线观看| 欧美黑人一区二区三区| 欧美韩国日本综合| 国产欧美综合一区二区三区| 欧美福利一区| 久久精品一区二区三区不卡牛牛| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲第一级黄色片| 欧美日本高清一区| 精品白丝av| 99热精品在线观看| 国产一区二区三区四区老人| 欧美日韩中文在线观看| 亚洲人成毛片在线播放| 欧美日韩视频一区二区三区| 亚洲欧洲免费视频| 欧美精品少妇一区二区三区| 亚洲精品午夜精品| 欧美精品videossex性护士| 一区二区欧美日韩视频| 亚洲肉体裸体xxxx137| 久久久激情视频| 亚洲国产天堂久久国产91| 国内精品视频在线观看| 尤物99国产成人精品视频| 欧美一区二区三区四区在线观看| 国产精品一区二区久激情瑜伽| 亚洲欧美激情在线视频| 在线免费日韩片| 亚洲视频在线观看免费| 欧美日韩大片一区二区三区| 欧美一区二区在线看| 香蕉av777xxx色综合一区| 久久久视频精品| 国产女主播一区二区三区| 国产精品拍天天在线| 激情视频一区| 欧美日韩免费一区二区三区视频| 一区电影在线观看| 欧美 日韩 国产 一区| 亚洲日本中文字幕| 亚洲女优在线| 国产精品久久网站| 国产精品久久一区主播| 亚洲欧洲av一区二区三区久久| 久久精品国产亚洲高清剧情介绍| 午夜免费电影一区在线观看| 久久精品系列| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲欧美资源在线| 欧美阿v一级看视频| 99香蕉国产精品偷在线观看| 在线亚洲自拍| 欧美在线综合视频| 亚洲人成网站色ww在线| 欧美精品v日韩精品v韩国精品v| 久热国产精品视频| 欧美日韩精品欧美日韩精品| 日韩一区二区精品| 亚洲精品一二| 欧美国产成人精品| 亚洲一区中文| 国产伦精品一区二区三区高清| 国产亚洲欧美一级| 亚洲综合激情| 国产乱子伦一区二区三区国色天香| 亚洲最快最全在线视频| 国产精品久久久久久模特| 午夜亚洲视频| 国产农村妇女毛片精品久久麻豆| 国产日韩一区二区| 亚洲天堂av在线免费观看| 久久精品一区二区三区不卡| 韩国av一区二区三区四区| 亚洲人永久免费| 国模精品娜娜一二三区| 欧美凹凸一区二区三区视频| 蜜臀av在线播放一区二区三区| 亚洲午夜精品网| 亚洲国产精品一区二区久| 久久精品av麻豆的观看方式| 免费视频亚洲| 国产自产精品| 欧美国产日韩一区二区三区| 亚洲第一精品夜夜躁人人躁| 国产精品亚洲网站| 亚洲国内高清视频| 在线观看91久久久久久| 在线综合亚洲欧美在线视频| 最近中文字幕日韩精品| 亚洲欧美电影在线观看| 欧美精品一区二区三区在线播放| 国产欧美一区二区三区久久人妖| 亚洲精品乱码久久久久久蜜桃91| 欧美成人免费在线视频| 久久夜色精品国产| 欧美日韩国产一区二区三区地区| 亚洲一区二区在线看| 国产精品私房写真福利视频| 欧美夫妇交换俱乐部在线观看| 亚洲精品一区在线观看香蕉| 欧美一区二区三区精品电影| 免费欧美日韩国产三级电影| 国产欧美一区视频| 久久久久久久久综合| 99精品国产在热久久| 一区二区在线不卡| 久久一二三四| 91久久亚洲| 国产综合激情| 日韩视频永久免费| 亚洲精品久久| 亚洲动漫精品| 欧美成人一区二免费视频软件| 国产毛片一区| 欧美伊人影院| 欧美色精品天天在线观看视频| 狠狠狠色丁香婷婷综合激情| 欧美日韩成人免费| 久久久青草青青国产亚洲免观| 欧美一级网站| 欧美一区二区三区久久精品茉莉花| 午夜精品一区二区三区电影天堂| 国产伦理一区| 欧美激情免费观看| av不卡在线看| 久久久国产精品一区二区三区| 久久免费99精品久久久久久| 国产精品高潮视频| 亚洲视频网站在线观看| 免费成人黄色| 欧美14一18处毛片| 亚洲人体一区| 欧美午夜精品理论片a级大开眼界| 免费在线观看成人av| 欧美一区二区福利在线| 国产精品欧美激情| 亚洲欧美日韩在线| 日韩一本二本av| 欧美在线日韩精品| 亚洲高清色综合| 99精品欧美一区二区三区综合在线| 性亚洲最疯狂xxxx高清| 欧美国产91| 国产午夜亚洲精品不卡| 欧美丰满高潮xxxx喷水动漫| 亚洲第一精品电影| 国产精品麻豆欧美日韩ww| 伊人久久婷婷| aa级大片欧美三级| 国产精品青草久久| 久久综合色8888| 欧美视频在线一区二区三区| 裸体一区二区| 黑人巨大精品欧美黑白配亚洲| 久久av在线看| av成人天堂| 亚洲高清一区二区三区| 韩日欧美一区| 国产精品色婷婷| 欧美黄网免费在线观看| 欧美多人爱爱视频网站| 久久久久久久久久久久久9999| 日韩一区二区久久| 红桃视频国产一区| 欧美在线播放一区| 极品尤物久久久av免费看| 亚洲免费观看高清在线观看| 国产综合av| 亚洲人成77777在线观看网| 国产精品久久久久久久免费软件| 久久激情五月激情| 伊伊综合在线| 欧美裸体一区二区三区| 国内精品久久久久久久97牛牛| 国产女主播一区| 99亚洲一区二区| 好吊一区二区三区| 一区二区三区日韩精品视频| 欧美精品免费观看二区| 欧美α欧美αv大片| 亚洲午夜激情免费视频| 国产精品日韩在线| 久久久久高清| 亚洲精品日韩一| 欧美日韩在线播放一区| 亚洲影视九九影院在线观看| 亚洲宅男天堂在线观看无病毒| 亚洲国产精品女人久久久| 国户精品久久久久久久久久久不卡| 欧美sm重口味系列视频在线观看| 国产日韩欧美在线播放不卡| 性色一区二区| 国产拍揄自揄精品视频麻豆| 亚洲欧洲视频在线| 欧美激情乱人伦| 国产美女精品| 国产精品午夜国产小视频| 一区二区三区.www| 欧美黄色免费| 亚洲国产成人av在线| av成人免费| 欧美三级电影网| 欧美日韩一区二区三区四区在线观看| 欧美精品一区二区三区四区| 午夜国产精品影院在线观看| 午夜欧美视频| 亚洲伊人观看| 亚洲一区综合| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美激情视频一区二区三区免费| 欧美了一区在线观看| 亚洲欧美在线视频观看| 亚洲电影在线免费观看| 国产精品都在这里| 久久影音先锋|