文章分類

顯示具有 [LabVIEW] Structures 標籤的文章。 顯示所有文章
顯示具有 [LabVIEW] Structures 標籤的文章。 顯示所有文章

2015年2月14日 星期六

[教學] Case Structure

今天要分享的主題是Case Structure.

有點像C/C++的Case Structure,因為他們都有Default。


Case Structure 有個?是判斷的條件,需要把所要判斷的條件連接進去。

可以是布林Boolean型態、字串String型態、數字Numeric型態和列舉Enum型態。




當我們把?號連接上判斷條件後,我們只要在相對應的方框內寫程式,當今天判斷條件改變,

程式會自動切到相對應的Case。

大家可以使用看看,應該很容易了解。


如果是數值型態的判斷就比較特別了,

我希望輸入大於100,第一個燈亮,介於10到90之間,第二個燈亮,

否則其餘燈暗,要怎麼做呢?

Solution:




這是官方附的說明,大家也可以參考一下。




Patrick

2015年2月12日 星期四

[教學] For Loop (Part 2)

For Loop常常應用在Array的資料處理

下圖便可以說明



大家應該有發現左邊的Array連進去For Loop時,上下兩個圖的接點長得不一樣,

一個像是 [] 這個樣子,另一個是實心。

[] 是代表左邊的Array會一個一個被讀入For Loop

所以Indicator會陸續顯示1,3,5,8,2,因此迴圈共會跑5次。

下面的實心則代表是整個矩陣被送入迴圈中。



那你可能會好奇,如果For Loop跑到一半想停止怎麼辦?

如果是C/C++,可以用Break來中斷,

當然LabVIEW也有這功能,只要在迴圈上按右鍵,選擇Conditional Terminal即可,

就如下圖的紅點,然後再將停止連接在上面就可以了。





學完了大致上的For Loop功能,大家可以試著寫寫看99乘法表。

底下是解答



Patrick







2015年2月8日 星期日

[教學] Shift Register

今天要介紹的是Shift Register,中文是叫位移暫存器

他的用處是可以將迴圈每次執行完的儲存起來,等待下一次迴圈使用。


首先,在For Loop的外框上按右鍵,選取Add Shift Register,

此時會出現兩個三角形上下顛倒成對的出現。



Shift Register可以把右側三角形收到的值,丟到左側的倒三角。

這樣說可能很抽象,用個例子來說明。

用c的程式來看

For ( i = 0; i<=10 ; i++)
{
     i = i++;
}



這個迴圈會跑10次

第一次跑的時候,左側的暫存器初始值是0,加1後丟到右側的暫存器,

暫存器會把數值留下來,在丟到左側的暫存器。

所以第二次執行的時候,左側暫存器的值就不是0了,而是1。

以此類推,最終會跑到10然後丟到Numeric裡。


希望對大家有幫助。


Patrick







2015年2月6日 星期五

[教學] For Loop (Part 1)



LabVIEW是一個圖控程式語言

所以習慣寫C/C++或其他語言的人可能要先習慣一下

滑鼠按右鍵後在Structures裡面有For Loop



下面有個很簡單的例子


圖中的N指的數字是10,意思就是這For迴圈會跑10次

跑的結果會是:i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

此時迴圈跑了10次就停止了。

不同的是,正方形框裡的變數 i 是從0開始數的。

例子:若是想用LabVIEW寫出以下的程式要怎麼做呢?

For ( i =1; i <= 10; i++ )

答案是
或許大家會疑惑

但是事實上程式跑的結果是這樣的 i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

原來的 i 是從0開始,但是我放了+1在那裡了,

所以全部的結果都跟著+1。


下一次講Shift Register


Patrick