2019年3月2日 星期六

LabVIEW-溫度隨機控制。難度:易



題目:Build a top level vi, shows the temperature values got from thermometer.vi with a waveform chart in continuous run mode. On the panel, user can select the display of temperature scale in Celsius or Fahrenheit and summer or winter mode with different upper/lower bounds hard coded inside the program (set appropriate values on your own) .

會用到的物件:









 Block digram 





1. 有兩種布林的選擇,swutch和season,所以我們使用select物件,物件的中間連結布林(例如:連結switch)物件上方連結如果True的時候,要進行的動作;物件下方連結如果False的時候,要進行的動作
2.concentrate string 是在集結顯示的字串
3.number to fractional string 是把數字轉成字串
Front Panel









LabVIEW-有限範圍亂數。難度:易




題目:Build a subvi named thermometer.vi, which randomly output a Celsius temperature value in between the lower and upper bound set with input parameters of lower bound value, and upper bound value (2 inputs and 1 output)

TIPS : 輸出亂數=(上限-下限)*亂數+下限

Block digram 




Front Panel
















2018年7月30日 星期一

LabVIEW-陣列練習特殊技巧。難度:易

詳細說明程式要求:
1. 將各個array集合起來並取陣列的中間值

Block digram 










Front Panel 
















1. 利用Build Array把各個陣列集合起來成為一個"Final Array"。因為不讓程式寫死,故在"Final Array"中拉出一條線"Array Size"得到陣列中有幾個元素,再利用"Index Array"把中間值取出來,而"Index Array"的"index"就由"Array Size"得到。

LabVIEW-陣列介紹。難度:簡單

詳細說明程式要求:
1. initializel array 函數
2. array size 函數
3. build array函數
4. array subset函數
5. index array函數

1. initializel array 函數:簡單來說,初始化陣列中的值。例如我放進"5",亦可放進二維的字串陣列。
2. array size 函數:傳回陣列中元素的個數。若陣列為n維,array size 函數傳回一個n個元素的一維陣列。

 












3. build array函數:將函數連結在一起或者是加一個元素到陣列上。他有兩種的輸入型態:array及element。













4. array subset函數:取出陣列或元素。例子為從"1"引數開始"2"個元素的子陣列結果
5. index array函數:可存取陣列中某個特定的元素




















2018年7月27日 星期五

LabVIEW-找尋檔案中的值有多少個。難度:易

詳細說明程式要求:
1. 找尋檔案多筆資料中的值
2. "Read Delimited Spreadsheet"(function-programminf-file)為讀取檔案
3. "Search 1D Array"找尋Array之值


Block digram 














Front Panel 



  1. 使用"Read Delimited Spreadsheet"先讀取檔案,調成string模式及連到"all rows"
  2. 把輸入值轉為字串
  3. 透過"Search 1D Array"找陣列中的字串,"2"是指從一行中的第三個開始找起
  4. 如果在 " array" 中沒有找到字串,就會產生-1 ,有找到的話就不產生-1。
  5. 不產生-1則會到 "T",每找到一次就加一,並利用移位暫存器存它的次數。



2018年7月26日 星期四

LabVIEW-樂透開獎。難度:中

詳細說明程式要求:
1. 由1~31的整數不重複中開出6個號碼,記錄10筆開獎記錄於桌面上。
2.這個程式使用了build array, delete from array, rotate 1D array等陣列操作元件和兩個shift register

Block digram 












Front Panel 












以下我用1-5 抽出3個來做舉例較為簡單

  1. 因為要從1-5裡面抽出3個,故我們先做一個for迴圈,讓1-5的值都要跑到裡面。
  2. "Rotate 1D Array"這裡是指說讓他排列,那排列的順序是用亂數乘以100的值來排列。
  3.  現在12345都進入迴圈了 ,利用 "Rotate 1D Array" ,他會重新排列,假設現在排列為34512,再利用"Deleted From Array"刪除第0個值,並把刪除的值進入"Build Array",現在3因為是第0個值,故已經被取出來,剩下的4512又經過移位暫存器,再經過下一次的"Rotate 1D Array"亂數排列後,可能為1524,再取出第0個值。以此類推。
  4. 取出來的值再透過第二個移位暫存器使之依序開獎。
  5. 現在只剩下要儲存值了,透過"Number to Decimal String"把數字轉為字串存入檔案中
  6. 再使用"Build Array"把時間、日期及字串集合起來寫入檔案之中。

LabVIEW- 用4個七段顯示器顯示00.00~99.99的數值 。 難度:中

詳細說明程式要求:
1.這個練習主要是利用cluster組織七段顯示器,並用index array取出預存的編碼值(其中還會用到Quotient & Remainder的元件,進行位數的處理),最後進行顯示。
函數介紹:
2. Index Array 這個可以存取陣列中某個特定的元素(詳細可以去看array函數介紹

Block digram 















Front Panel 














1. 利用cluster 建立LED的七段顯示器,並且注意要排列順序

點選外圍-recorder controls in cluster 即可排列

























  1.  為了讓他簡單控制,我們先複製一個cluster並將它轉為constant,再將放置array裡面,亦可想說因為是要接index array,故我們要將七段顯示器設為array。
  2.  將之進入一個for迴圈,利用"Index Array",將值分別取出,各為:7-seg個、7-seg十、7-seg個2、7-seg十2
  3. 利用"Quotient & Remainder" 例如:5487, 5487除以100=54....87,將54除以10=5...4,87除以10=8...7,即可將5487對到各值。
  4. 因為"7-seg個2"要有小數點,故在特別拉出一條線,利用"bundle元件"使之最後一個點     為"T"。