贊助商連結

目前分類:綜合_程式應用 (18)

瀏覽方式: 標題列表 簡短摘要

整理一些蒐集到的資源,有時候寫程式寫到無聊了,可以看看別的程式增長見聞,如果剛好又是可以玩的程式,那就更是有趣。這裡都將程式的GUI放上來給大家做參考,都可以到原本的連結網站上下載。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

程度: 高級程式,用到LVOOP,請小心服用。

程度:進階程式,Dynamic Event的應用,程式風格簡潔,畫面漂亮,是學習動態註冊非常好的程式 。

程度:簡易,Event搭配While loop,程式碼有點亂。

程度:進階程度程式碼乾淨,整齊,使用到OOP和Notifier,已經接近高級程式,不過程式應用簡單,不複雜,很好理解,是一個很推薦學習的程式。

程度:簡易,程式架構不錯。

程度:中等,程式架構利用一個Event+State Machine完成。

程度: 中級程式,寫得滿不錯的。

程度: 中級程式,利用Event+Producer consumer架構。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

程度: 初級程式,滿酷的遊戲,可能需要搭配Wiki資源才看得懂。

程度: 初級程式

程度: 初級程式,簡潔的程式碼,程式不複雜,介面很漂亮。

 

程度: 高級程式,主要歸類到高級是因為有許多座標位置轉換,需要花點時間搞懂。

 

程度: 中級程式,程式本身並不複雜,介面漂亮,解釋、文件多。

程度: 中等難度,程式應用的並不難,但是數字運算和人機呈現讓程式較為複雜。

程度: 簡易難度,程式簡單,註解多,程式介面很漂亮。

程度: 簡易難度,使用Queue的架構,註解多,如果想學習如何使用建議的Queue架構可以參考這個遊戲。

image

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

 

 

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

最近教導一些初學者學習LabVIEW,整理了一些心得和大家分享;我學習LabVIEW一直都跌跌撞撞的,一條路上鬼打牆、反覆撞了壁好幾次;接了幾個案子、換了幾次工作後,才歸納出怎樣co-working、發現培養團隊good style程式的重要,太有感而發,完全離題了 希望這篇能夠幫助到剛學習LabVIEW的初學者,能夠在學習之路上有個指引,少走些冤枉路。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

程式學習建議:

labVIEW學習開發出一個程式,非常簡單,拉幾條線放幾個Funtion,很快就能夠完成了,但是,你有考慮過你的程式記憶體使用問題嗎?、有考慮過其他人接手(或是下次你再複習)容不容易閱讀?、又或是程式架構擴增的彈性呢?

  1. NI Example :

我滿推薦初學者再遇到不會的function、或有時間的時候將NI Example打開來看看一樣的功能Example怎麼寫出出來的,然後模仿再寫一次,這樣反覆練習才會學習到比較好的good style。NI在文件上面非常的下功夫,教學的資源也是非常的多,每次的LabVIEW升版都能看到新的Example,也會淘汰一些不敷使用的範例程式。

Help-->Find Example

或是對著元件按Control+H ,在內文中找Find Example

 

2.LabVIEW 書籍 :

這裡有兩本書推薦,

一本是比較適合初階,CLD程度閱讀的LabVIEW For Everyone,這本是本英文書,深入淺出的介紹LabVIEW的元件,

另外一本市聖經,The LabVIEW Style Book,這本書我之前有介紹過,可以參考: LabVIEW_推薦參考書_The LabVIEW Style Book這本書分成很多段落在分享和教導讀者如何建立程式架構、設計親切易懂的人機介面養成良好習慣

 

3.論壇:LabVIEW Pro、NI英文論壇

網路上很多LabVIEW資源,從以前的LabVIEW360、LAVA、到現在NI 台灣官方支持的LabVIEW Pro,我都很建議可以去瀏覽,這編列幾個:

LabVIEW Pro : 小編很用心地在經營,有練功區、程式基礎教學、討論區、技術專題..等 (已停)

NI Discussion Forums : 外國高手討論都會激起如元子彈的震撼教育

LabVIEW 360 : 很多不錯的資源,討論人氣也是非常的旺

LAVA : 討論很多VI擴充tools

 

程式寫作建議:

1. 使用英文版的LabVIEW:

LabVIEW許多資源都是用英文的,包括白皮書、使用說明、Help文件、或是spec文件..等等。用英文版的LabVIEW開發熟習元件名稱,這樣再搜尋資源會比較輕鬆;放心,英文介面對寫程式不會有什麼影響的。

2.LabVIEW Good Style :

使用Good Style開發LabVIEW是我一再強調的,好的寫作習慣養成是日後建立大型專案的重要基礎,要檢查自己的程式是否符合Good Style最簡單也是最快的方法就是打開Analyzer。或是參考我的另外一篇:LabVIEW_寫好程式Good Style_Code Review檢測Analyzer、Check List

Tools-->VI Analyzer-->Analyze VI

他分析的面向很廣包括:Block Diagram、Complexity Metrics、Documents、Front Panel、General、VI Metrix

分析完後會給一份報告,評估程式的風險程度,可以看到自己寫出來的程式哪邊和建議的違和,

或是直接查看 LabVIEW Check List ,檢查什麼事重要的項目。

 

5.架構選擇:

我覺得程式架構只要穩、易維護,都是很好的架構;所以我並沒有非常推崇高階的程式專案架構,我認為需要依照專案、團隊來選擇程式架構,不過如果是初學者學習的話,我推薦下面的程式架構:

  1. State Machine :適合小程式,需要輪轉重複的功能
  2. Producer & Consumer: LabVIEWPro介紹中文版
  3. Queue Message Handler :這個比較進階一點,不過試LabVIEW的Project Template,教學文件很多,可以試試看

Template-->Producer/Consumer

Template-->Simple State Machine

6.程式整理

程式凌亂絕對會降低Coding效率,義大利麵程式、巣狀程式會增加維護的困難。

1. 建議常常使用小掃把整理程式

2.避免過多彎取的線、堆疊的線

 

7.Type Define

使用State Machie Enum、GUI Tab、交握的Data、傳遞在不同程式的Data...等常常再不同VI或是同一個VI使用多次的原件都將型態存起來,好處是修改時不用一個一個更改,使用Type Define後一次可以修改到全部

可以參考這篇教學:https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019MFtSAM

 

8. 程式大小控制在同一個畫面中

如果你的撰寫需要用50吋的螢幕才能完整展開,絕對是需要整理得程式、利用SubVI、好的程式架構、Good Style,增加程式閱讀性。

 

9.不要濫用global、local Variable

變數濫用、Race Condition是LabVIEW開發初期的通病,使用過多會造成程式的不穩定性。試著使用FGV、Shit Register來取代這些跳脫資料流概念的變數;

這篇有詳細的介紹: LabVIEW_什麼是Race Condition(競爭危害)?

 

10 程式註解

千萬不要覺得註解是幫助別人閱讀自己的程式才需要寫,我的經驗是,大部分都是幫助自己 不用一年,程式邏輯沒有文件的輔助是很難快速切入的。

應該是LabVIEW2014後,註解還可以加上箭頭,非常的方便。

 

11.使用Cluster

Cluster的使用可以簡化Block Diagram,最重要的是可以讓相關的資料做一個結合,在後續的使用上比較清楚,也減少connect的接角

請注意,當在bundle 和unbundle cluster 時一定要使用by Name的方法,最好搭配type define做cluster的資料結構定義。

 

12.開始寫做前規劃程式架構、應用方式

開始撰寫前先想過程式需求用什麼架構來開發會更融易、把需求想過一次後,會看到很多一開始想不到的盲點。最好是畫出流程圖,並把這些開發文件都留在專案、程式的資料夾中,幫助日後的閱讀。

 

程式人機(GUI)建議:

1.利用對齊工具來讓面板整齊:有各種對齊、置中對齊、靠左對齊、靠右對齊...

2.利用調整間距工具: 有各種調整間距的方法:平分、固定間距、0間距...

3.調整物件大小: 調整物件大小,也可以多選多個物件將他們調整成大小全部一樣。

4.字體大小\顏色:

整個面板的字體大小、顏色最好控制在3種不同的組合,過多顏色、大小會讓畫面過於凌亂。可以分成 不重要小字(size:14、灰色)、正文(size:16、黑色)、非常強調(size:20、紅色)

 

5.利用Tab簡化控制元件很多的人機,才不會讓使用者一次看到過多的控制元件產生恐懼感(?)

可以參考NI Example-->Programmatically Manipulate a Tab Control.vi 來看使用方法

 

Debug程式建議:

利用Explain Help查看錯誤碼,每個錯誤都要發揮偵探的精神,找出最實質的原因,才不會出現"幽靈bug"的問題。(有時候會發生有時候又不會發生的bug)

專案程式建議:

1.資料夾整理,將程式依照自己的固定方法、分類正理control、SubVI,這樣在移動專案時,不容易有"丟包"的subVI,也容易一目了然專案的程式用途。

2.使用VI Hirechy檢視

從hirechy可以檢查程式的整潔度和關聯圖,在閱讀他人的程式格外重要,可以從這個架構途中,了解整個專案架構和應用層面。

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

 

文章標籤

安伯伯 發表在 痞客邦 留言(2) 人氣()

最近發現之前寫的一個小遊戲程式,是小時候常玩的OOXX遊戲。

image

面板上使用Picture Ring做人機介面上的O和X的圖案切換。

image

續上一篇LabVIEW_專題_程式優化_In Place Element Structure,所以將此程式的Replace Array Subset做改寫為In place element。

image

程式碼可在這邊下載, 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

Queue應用

Synchornization學習

Array陣列

檔案讀寫

Listbox、Table元件

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

這篇介紹如何在資料夾中搜尋需要的檔案,這個使用基本元件"Recursive File List.vi"來達成需求。

image

 

程式碼可在這邊Download下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

Recursive File List.vi 可以列出在指定路徑下所有檔案路徑名稱,若此路徑下有子資料夾,使用這個元件也會羅列出子資料夾內的所有檔案

image

如果不想搜尋所有子資料夾檔案名稱,可使用 List Folder.vi 取代 Recursive File List.vi,就可以達到此功能。

元件可參考下圖:

程式碼可在這邊Download下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

其他關於人機介面改善、美化的文章:

LabVIEW_如何自己製作客製化Indicator Boolean 顯示(Customized Indicator Boolean)

LabVIEW_客製化表單選擇按紐(Customize Radio Button)

LabVIEW_如何自己製作客製化按鈕Customized Button

LabVIEW_設定人機面板(FP)到原點(0,0)位置做初使化

LabVIEW_如何修改Menu Ring、Text Ring、Enum、ComboBox等下拉式選單的顏色

LabVIEW_如何修改人機元件Blinking(閃爍、警示)呈現的顏色

LabVIEW_時間格式設定顯示_時區年月日時分秒_Windows下設定

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

 

 

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

最近幫忙解決資料庫連結上的問題,學員反應Error -2147467259、Error -2146824584 等兩個Database Error無法排除。其實這個在NI的Knowledge中也是有敘述,但是沒有比較詳細的介紹。這篇介紹如何連結資料庫和排解以上問題。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

可以LabVIEW Database Connectivity Toolkit可以用以下兩種方式和資料庫做連結:

  1. Microsoft的 Universal Data Link file (.udl)
  2. Data Source Name(DSN)
  3. DB Tool Connection

這篇介紹第三種方法。

首先必需先有DB的Driver驅動程式,mdb、Access的File可以使用 Microsoft Office 12.0 Access Database Engine 做連結。

Step1. 請到官網 下載,若LabVIEW版本為32bits,請下載32bits版本。很多學員反應Error -2147467259、Error -2146824584 等兩個Database Error無法排除,都是因為這篇誤下載到64bits版本

下載完後,在ODBC(32bits)裡面就可以找到對應的Driver

Step2. 使用DB Tool Connection.vi  連結資料庫

下面是個使用這篇介紹的驅動Microsoft Office 12.0 Access Database Engine做連結的方法

複製文字使用: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s\\Access2007.accdb;Persist Security Info=False

或是可以參考LabVIEW中的範例:labview\examples\database directory

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

在LabVIEW中,Default時,是可以使用Scroll Bar 捲動人機畫面的呈現,不過這樣畫面上的所有控制按鈕或是顯示元件都會被使用者看到,這篇介紹如何將Scroll Bar隱藏,讓使用者無法使用Scroll Bar的功能。可以透過Customize中的Show Scroll Bar做取消圈選的選擇,就可以限制使用者滾動視窗了。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

Step1. 叫出VI Property,可以透過File->VI Properties;或是直接按快捷鍵Ctrl+I

Step2. 設定Window Appearance 到Custom-->按下Customize

Step3. 將Show vertical scroll bar(顯示直向的捲動輪)、Show horizontal scroll bar(顯示橫向的捲動輪) 這兩個選項取消,這個Default選擇是可以讓使用者看到Scroll Bar,取消後使用者就無法任意的捲動視窗了。

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

之前幾篇介紹過LabVIEW_限制移動運行時程式的視窗位置,不過如果需要客製化的設定視窗位置,需要使用Window Run-Time Position中的Panel Position來設定位置,這兩個搭配起來就可以限制使用者移動視窗位置,並且固定每次運行時程式的位置。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

Step1. 叫出VI Property,可以透過File->VI Properties;或是直接按快捷鍵Ctrl+I

Step2. 設定Window Run-Time Position ,並將Position設定Custom模式

在這邊LabVIEW預設是Use Current Panel Position,也就是使用目前編成中程式的Front Panel位置,當作運行時的位置。

不過這樣的視窗位置常常因為撰寫程式時不小心改動到,最好的方式還是將視窗設定為固定位置,這樣才不會動態的被修改到。

Step3. 將User Current Panel Position選項取消勾選,並設定固定的位置數值

將Top(從上到下位置)、Left(從左到右位置)設定為固定的數值,確保每次程式運行後為固定位置。

如果不確定想要的視窗大小,可以按"Set to Current Window Position"將目前的視窗位置加入設定值。

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

之前分享過一篇如何鎖定運行中程式的視窗大小,這是讓使用者無法改變視窗大小,這篇是分享如何指定每次程式運行後的運行視窗大小,這兩個通常要相輔相成,才能真正的限制操作者不能任意的改變程式設計所要呈現給使用者的畫面。關於如何限制、鎖定運行中的視窗大小可以參考: LabVIEW_鎖定運行時程式的視窗大小

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

Step1. 叫出VI Property,可以透過File->VI Properties;或是直接按快捷鍵Ctrl+I

Step2. 設定Window Run-Time Position ,並將Position設定Custom模式

在這邊LabVIEW預設是Use Current Panel Size,也就是使用目前編成中程式的視窗大小當作運行後的大小。

不過這樣的視窗大小常常因為撰寫程式時不小心拉大或拉小而修改到,最好的方式還是將視窗設定為固定大小,這樣才不會動態的被修改到。

Step3. 將User Current Panel Size選項取消勾選,並設定固定的大小

將Width(寬)、Height(高)設定為固定的數值,確保每次程式運行後為固定大小。

如果不確定想要的視窗大小,可以按"Set to Current Panel Size"將目前的視窗大小加入設定值。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

在LaVIEW中分享很多實用功能和技巧的高手Darren's在他的2006專欄中介紹了Defer Panel Updates,這個Property可以延遲UI人機的更新,不須重複呼叫UI處理的Thread(LabVIEW中只會使用一個UI Thread處理畫面更新),減少程式整體的時間,提升了程式的效能。這個適合用在需要作人機介面上元件大量更新、Image大量翻新狀態(Overlapping)、許多大表格(Listbox)...等等的人機介面重度使用者。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

當我們需要做數值1~4的數值變化,並在Front Panel上面做更新;可以想像,如下圖,當數值1~4需要被畫面更新時,處理的程序會是,數值1->UI更新->數值2->UI更新....數值4->UI更新

但是如果使用更有效率的方法,只需做一次的UI更新,這樣也是能讓數值1~4能夠被做到UI上的更新。

而這個原理正是Defer Panel Updates所應用到的,Defer Panel Updates為True時,並不會處理畫面的更新,直到Defer Panel Updates數值直轉為False時。

藉由這樣統一的UI更新,可以降低電腦的處理程序、提升程式的效能;如果應用面上有大量的畫面更新、例如一次更新一整個大Table、更新許多照片的overlap...就非常建議使用Defer Panel Updates

另外Darren也提到,因為使用Defer Panel Updates時畫面不會更新,會讓使用者產生點腦是不是"當機"的錯覺;這時候可以搭配使用Busy、Set Busy,鎖定使用者的滑鼠功能,並提示使用者目前電腦為忙碌狀態。想了解Set Busy可以參考:LabVIEW_防止(禁止)使用者動作_游標滑鼠忙碌不能動作(Cursor to busy)

參考資料:https://forums.ni.com/t5/LabVIEW/Darren-s-Weekly-Nugget-05-22-2006/m-p/368713

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

在LabVIEW環境設定中,個人覺得很重要的是將View as Icon關掉讓Front Panel的元件變小,這樣不僅程式看起來更為簡潔,而且程式整體大小才能維持在一個螢幕寬中( 關於LabVIEW Good Style可以參考以前的文章LabVIEW_初學者學習建議 、學習心得分享)

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

第一個方法也是最快的方法,將所有的元件做全選後,按右鍵-->View As Icon

不過這方法速度在每一次寫程式時就要修改一次,另外一種環境設定的方法,就能讓設定完的Icon永久成為想要的設定。

Tools-->Option

Block Diagram-->Place front panel terminals as icons

設定完就會立即生效搂! 不妨來試試~

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

在人機介面設計上,因為要提醒使用者動作,可以改變游標滑鼠的圖示,這篇介紹如何使用Set Cusror、Create Cursor From File的功能修改製作客制化的指標(Customize Mouse Coursor)

程式碼可在這邊下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

首先先介紹如何修改Cursor的圖示,使用Set Cursor的功能改變Icon的數值

在LabVIEW 中,可以設定的總共有32種,其中1~5根據Windows作業系統而有所不同。而0就是目前system設定中的游標圖示。

例如我將Cursor Icon設定為15,游標滑鼠就會如同下圖,改變成像是畫筆的形狀。

需要設定可以依照下面的程式修改:

不過這方法僅限LabVIEW提供的32種選擇改變,若是需要客制化圖示,就需要先將Cursor的圖檔做設定,如下圖我將指標換成一棵聖誕樹。

程式部分在Set Cursor之前加入Create Cursor From File.vi,並將檔案帶入即可以。

檔案類型,可以使用.cur或是ani檔案,網路上很多免費素材,可以耐心找一下,例如:

http://www.rw-designer.com/cursor-library

http://www.cursors-4u.com/

 

程式碼可在這邊下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

在人機控制上,有時候需要等到程序完成後才能讓使用者繼續動作,之前介紹過可以用Property-->Disable and Grayout來限制使用者使用的狀況;不過也有另外一種方法將Cursor設定為"Busy",這種在Windows 下類似小漏斗,提示使用者目前程式處於"忙碌"狀態,在這狀態下使用者無法繼續操作,這在LabVIEW程式上也是可以做到。

若是單純將滑鼠游標改圖示可以參考:LabVIEW_客制化滑鼠游標(Customize Mouse Cursor)

程式碼可在這邊下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

當將游從可控制的"Unbusy"狀態改成"Busy"狀態,使用者是無法操做。如下圖,當Start按鈕按下,Cursor 設為Busy狀態後,直到"Unset Busy"以前,畫面中任何按鈕都無法使用。也就是在這段"Busy"的階段,Start、Stop按鈕按了也是無效。

這種Busy是讓游標無動作,若是希望游標還是有可以控制,可以將"Disable Click"接腳由原本Default的T改為False

 

程式碼可在這邊下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

這篇介紹如何使用Breakpoint Manager,可以查看到所有的Breakpoint,可以做全部Breakpoint 刪除(取消)、禁用(略過)、查看等管控的動作(當然也可以做單一取消、略過、查看)。在Debug時,LabVIEW提供中斷點,讓程式可以暫停在欲停止的程式段落,中斷點的好處可以放在整個專案的任意地方,包括任何程式、SubVI的接線(wire)、Diagram、任意元件...等等上面。但是也因為中斷點可以佈放在任何位置,在程式需要正式運行時,也許會忘記取消中斷點,讓正式運行時程式暫停,錯過運行的最佳時機。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

Breakpoint是LabVIEW Debug中很重要的腳色,常常搭配Probe來查看當時發生的數值,Breakpoint可以放在線上、Diagram上、元件上..等等。

也是因為Breakpoint可以任意不放的特性,常常會忘記哪邊有放,或者想要一次全部取消,這時候就可以使用Breakpoint Manager

View-->Breakpoint Manager

如果程式中有使用到就會顯示在視窗中

可以直接點擊清單上面的項目就會直接轉向到該程式的Block Diagram。

面板上也可以直接對選擇的項目做"啟用"、"禁用"、"刪除"的功能,另外也可以選擇"全選"以後在做這些動作。

有了這些動作,就可以查看哪邊有佈放到Breakpoint,也可以一次將全部的Breakpoint做刪除、或是取消摟!

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

Labview Bookmark Manager 似乎是LabVIEW2013後有的東西,但是一直沒有被廣泛討論使用到,其實我覺得是很不錯的一項東西,尤其是對如果是一個團隊需要共同開發維護程式的時候,需要做程式碼的檢閱(Code Review)...等(軟體工程Software Engineering)項目。先來說說Bookmark Manager可以做什麼,列舉一些寫程式中常見的情況 :

  • 專案程式撰寫到一半被中途打斷,應該要怎麼提醒自己(他人)程式的進度到哪裡了?
  • 我們們常常在程式內中打上註解,提醒自己或是他人這段程式需要注意什麼或是如何使用,但是,當一個專案交接給他人時,要怎麼有系統把所有的註解行列出來討論呢?
  • 團隊Code Review後討論結果,如何將結果和程式做結合?(Software Engineering)
  • 程式專案進度很趕,先用快速(簡便) 的方式趕出一個半成品給使用者,但是我想註記日後再回來修改?

以上這些情況都可以用Bookmark Manager來完成。

 

Bookmark Manager 的使用方式也非常簡單,當在有需要做註解的地方前面加上個( # )號,Bookmark Manager就會將這段文字自動的加在清冊裡面。

Bookmark的文字又分成: 黑粗體的Bookmark Tag ,和空白後面的內文。可以當做bookmark tag就是把同一種類型的做一種歸類。

接者打開Bookmark Manager (View-->Bookmark Manager)

我參考Darren's 大前輩神人的方式做三種Group的分類:

  • ToDo-待完成事項
  • CodeReview-團隊開發code review
  • Benchmarking-需要重新檢視、整理得程式

在這個畫面上,都可以對有興趣的項目連點兩下,直接到該VI檢視,真的非常方便。

有三種情況的VI是不會顯示在Bookmark Manager上:

  • VIs are saved in an earlier version of LabVIEW. Load the VIs into memory or mass-compile them into the current LabVIEW version.
  • VIs are password-protected. Add the passwords to the password cache.
  • VIs are locked. Unlock the VIs to view the bookmarks.

 

另外,VI Bookmark Manage如同Express VI一樣是可以自己改寫客制化的,可以參考這篇開啟方法和做法。

網路論壇上高高手分享改寫後可以直接在Bookmark Manager中看到Block Diagram畫面,也有分享其程式碼。

https://forums.ni.com/t5/Developer-Center-Resources/Creating-a-Custom-Bookmark-Manager-for-LabVIEW/ta-p/3513079

 

最後附上一些相關有用的連結

[NIWeek 2013] Bookmark API in LabVIEW 2013

LabVIEW Help: Creating a Bookmark Manager

NIWeek 2013 Keynote: Enabling a Community With LabVIEW 2013

Three use can of LabVIEW Bookmarks

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

在簡易的程式進階到大型開發的專案程式,有許多問題都是值得注意的,先問幾個問題可以來簡單檢測你現在所撰寫的程式是否符合良好的程式習慣:

  • 程式維護簡易嗎?
  • Error有做處理嗎?
  • 是否會有race condition?
  • 單一程式裡面是否有過多的程式邏輯?
  • 程式的memory是否合理?

以上這些如果都是False的話,可能要注意自己的Coding Style了。這篇介紹LabVIEW簡易檢測自己程式始否是"良好的程式風格" 的方法。

LabVIEW Style Check List 是NI官方建建議程式開發者的開發方法,其中包括幾個大項目:

Front Panel Checklist

User Interface Front Panel Checklist

Front Panel Dialog Checklist

Conditional Checklist

Non-User Interface Front Panels

Block Diagram Checklist

LabVIEW Classes

Labels and Comments

Size and Location

Programming Checklist

Corner Cases Checklist

Error Handling Checklist

Performance Checklist

Conditional Checklist

SubVIs Checklist

API Design Checklist

Organization Checklist

Project Organization Checklist

Distributing Source Code Checklist

RT-Specific Checklist

Handling Data Checklist- RT

Initialization and Shutdown Checklist- RT

Miscellaneous-RT

FPGA-Specific Checklist

FPGA Host Interface

這些大項目展開起來,只能說真的很多,範圍也非常廣,從單一VI、人機介面、程式效率、到FPGA都有,所以LabVIEW也很好的配了一個有用的工具-VI Analyzer,基本上就是用來檢查程式是否符合Style Check List。

Tools-->VI Analyzer-->Analyze VI

VI Analyzer default檢測項目是全部,也就是超過50+種的測試都能檢測,其中分成幾個項目:

  • Block Diagram tests
  • Complexity Metrics tests
  • Documentation tests
  • Front Panel tests
  • General tests
  • VI Metrics tests
  • User-Specified tests

 
使用時可以依照個人需求減少測試項目,或是制定警告的程度,這個在後面產出的報表呈現上面是很重要的指標
全部選擇好後按下Analyze,就會開始自動分析了,如果是越大的程式就需要等多一點時間。
結束Analyze後可以檢視建議項目:
最後按下Export後就可以轉成輸出的文件
 
如果覺得這次檢測的項目就是未來自己檢測程式或是團隊中Code Review的項目,也可以按下Save將測試項目儲存,下次讀取(Load)回來就可以。
 
其他參考資料:
 

§Why use the LabVIEW VI Analyzer Toolkit?

§VI Analyzer Test Descriptions (VI Analyzer Toolkit)

§Designing a Custom VI Analyzer Test (VI Analyzer Toolkit)

 

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

 

 

 
 
 

 

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

  朋友問我為什麼開我的程式會出現Clone在標題尚且不能修改程式的情況,這篇會解釋如何解除這種情況,為什麼會出現這種情況。

有些朋友在開我的某些範例程式時出現下面的情況,在檔名後面出現(clone)的字眼,而且這時候的程式碼BlockDiagram無法修改,

發生原因:

這個情況其實和之前提到的可重入程式有關係,在之前有介紹過:LabVIEW_Reentrant Execution 可重入執行屬性設定當程式撰寫時想同時運行同一個VI在多個應用時,可以選擇使用重入VI (Reentrant VI)當選擇使用為重入VI (Reentrant VI),LabVIEW開啟的程式就不再使用原生的VI,而是他的Clone VI,也就是他的複製品;這時候VI的標題會包含(Clone)的字眼提醒使用者這個狀況,當然變成這種狀況就無法修改程式,除非你在project中、或是直接到資料夾中開取原生的程式(Original VI)否則是無法修改重入VI (Reentrant VI)。

 

解決方法(1):

可以直接在重入VI (Reentrant VI)的主選單上 Operate-->Change to Edit Mode

解決方法(2):

可以直接在重入VI (Reentrant VI)的主選單上 View-->Browse Relationships-->Reetrant Original,藉此開啟Original的原始程式

解決方法(3):

利用上面兩個方法開啟原生VI後,將Reentrant的選項取消,當然,這種改變原本屬性的方法是我最不建議的,如果不是能夠確定取消重入不會造成專案危害,冒然的修改這個屬性也許會造成程式的誤動作。Original VI-->File->VI Property-->Execution

 

其他參考資料:

http://digital.ni.com/public.nsf/allkb/ECB5CE06641488E186257F76000DBF74

http://zone.ni.com/reference/en-XX/help/371361E-01/lvconcepts/suggestions_for_exec/#Simultaneously_Calling_SubVIs_from_Multiple_Places

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

以下分享一個利用Regedit(執行命令)的方法能夠讓LabVIEW程式在開機後直接執行,減少使用者運行程式所需的步驟,另外也能強制(確定)使用者是開啟正確的程式版本。 此方法也適用於執行檔,若是執行檔可以直接忽略步驟1也可以參考另外一篇LabVIEW_開機後直接執行LabVIEW程式(1) 將位置更改到startup下面的方法。如果需要程式控制Regedit設定,之前有分享一個程式關於如何用LabVIEW做Regedit的設定:LabVIEW_鎖定Ctrl+Alt+Delete禁止使用者登入/登出/關機

1. 設定VI為LabVIEW一開啟就直接運行,非還需要按Run的箭頭

設定方法 : VI Property --> Execution -->Run when opened

2. Start-->Run 搜尋Regedit

在相對應的路徑找到需要的Registry Key

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

在空白處按下右鍵

新增-->字串值

右鍵-->修改

數值資料改成:執行檔(程式)的位置(注意加上副檔名)

右鍵-->重新命名

數值名稱改成:執行檔(程式)的名稱(注意加上副檔名)

3. 重新開機

 

如果需要程式控制,之前有分享一個程式關於如何用LabVIEW做Regedit的設定:LabVIEW_鎖定Ctrl+Alt+Delete禁止使用者登入/登出/關機

 

其他參考資料:

Running a VI Automatically When Booting Up a Computer or cDAQ With Windows

http://digital.ni.com/public.nsf/allkb/255BAF9591D6E4E286256DDC000AE7DC

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

以下分享一個能夠讓LabVIEW程式在開機後直接執行,減少使用者運行程式所需的步驟,另外也能強制(確定)使用者是開啟正確的程式版本。 此方法也適用於執行檔,若是執行檔可以直接忽略步驟1。 也可以參考另外一篇 LabVIEW_開機後直接執行LabVIEW程式、執行檔(2)_Regedit 可以參考如何使用Regedit改變設定的方法。如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

總共有三個步驟:

(1). 設定VI為LabVIEW一開啟就直接運行,設定完後開啟程式不需要按Run的箭頭

設定方法 : VI PropertyàExecutionàRun when opened

(2). VI搬移到下面位置: (此路徑只適合在Window7以上版本)

C:\Users\<user name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup​

或是 Start »Programs»Startup (Window7以下版本)

 

(3). 重新開機

 

其他參考資料:

Running a VI Automatically When Booting Up a Computer or cDAQ With Windows

http://digital.ni.com/public.nsf/allkb/255BAF9591D6E4E286256DDC000AE7DC

 

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

Close

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼