贊助商連結
目前分類:基礎程式分享 (52)
- Apr 13 Tue 2021 11:05
LabVIEW_UTF-8轉換_讀檔亂碼解碼
- Jul 07 Tue 2020 11:22
LabVIEW_抽籤程式_權重不同的抽籤程式分享
為了抽籤請客,所以特別寫了一個小程式玩。下方表格為輸入資料,Row 1為所有人員名單,Row2為權重數字。
此程式完全屬娛樂用唷~
內部程式利用Riffle.vi來做到亂數,在利用人機面板上的紅色Index跳動做出抽籤的緊張感
可以參考LabVIEW_Riffle V.S. Random Number 取隨機 有關於取隨機數的用法。
程式碼可在這邊下載, 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Jul 01 Wed 2020 09:58
LabVIEW_你可能不知道的While Loop使用
While Loop和For Loop算是程式語言中的基本要素之一,在其他語言程式中,While Loop比較不會像LabVIEW這樣多功,所以他的功能容易被忽略。
[Shift Register]
Shift Reqister 在LabVIEW中算是很常見的功能,不管基本的價格State Machine或是為了資料傳遞的Funtional Global Varaiable,都會使用到。
在While Loop結點上按右鍵-->Replace with shift Register
可以參考State Machine的文章參考使用用法: LabVIEW_State Machine(狀態機)程式架構介紹
[Tunnel Mode]
在輸出的結點上按右鑑可以更改Tunnel Mode的模式,有Default 的Last Value、Indexing、Concatenating,而Conditional是需搭配上面所敘述倒的模式才能使用。
Last Value: 輸出最後的值
Indexing: 將輸出的值用Array堆疊,所以結果會是1D Array
Concatening: 將輸出的1D Array做同維度的堆疊,所以結果會是1D Array
Conditional: 設定輸出條件,下面是將偶數值輸出的範例
[Stop if ...]
在Stop Terminal上按右鍵,選擇Continue if TRUE,將原本的停止條件改成反向,之前是True為停止條件,更改後變成True為運行條件。
[Subdiagram Label]
在While Loop上按右鍵-->Visible Items--> Subdiagram Label
可在Loop內層上方顯示註解文字,如上圖。
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Jun 29 Mon 2020 09:12
LabVIEW_格式規格語法Format Specifiers Syntax Elements 使用方法和範例
使用Scan From String、Format into String、Spreadsheet String to Array、Array to Spreadsheet String 等VI都有接角Format String,可以依照輸入的Format格式做客製化更改。這篇介紹如何使用Format String和其範例。
因為Format的功能眾多,就以列表展示Format String的類別和應用範例:
以上為圖片檔,因為本來使用文字檔,但是讀者反映看不到文字,所以特地加上圖片檔。
以下文字檔為全表,方便讀者複製內文,內文和上面圖表一模一樣:
Syntax Element |
說明 |
使用方法字串範例 |
範例 |
|
輸入 |
輸出 |
|||
s |
基本字元,前加數字代表限制的字元數量 |
%3s |
|
|
f |
浮點數,前加數字代表限制的字元數量 |
%2.3f |
|
|
d |
整數,前加數字代表限制的字元數量 |
%3d |
|
|
$ |
改變順序(Order) |
%2$s %1$s |
|
|
+ |
顯示其數直正負(+、-)符號 |
%+d |
|
|
e |
工程顯示 |
%.3e |
|
|
^ |
工程顯示,指數顯示為3倍數 |
%^.3e |
|
|
文字中不包括 |
%[^,],%s |
|
|
|
^;]%s |
|
|
||
%[^0-9] |
|
|
||
[ ] |
數字字元 |
%[0-9] |
|
|
英文字元 (大小寫有區隔) |
%[0-9]%[a-z] |
|
|
|
轉換代碼 |
x,十六進位 |
%02x |
12 |
0C |
o,八進位 |
%06o |
12 |
000014 |
|
b,二進位 |
%b |
12 |
1100 |
|
相對時間t |
輸入為秒數 |
%.2t |
|
|
%<Hours:%H Minutes:%M Seconds:%S>t |
|
|
||
絕對時間T |
輸入的時間格式必須正確 |
%<%.3X %x>T |
00:00:00.000 AM |
12:00:00.000 AM 01/01/2001 |
%<%Y.%m.%d>T |
00:00:00.000 AM |
2001.01.01 |
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Jun 24 Wed 2020 09:38
LabVIEW_你可能不知道的Read form Text File應用
上一篇寫了關於LabVIEW_你可能不知道的In Range and Coerce.vi用法和注意事項,收到學生許多回饋,覺得這一系列很是有趣。所以我在為這系列-你可能不知道的單元增加加入其他元件,大家可以當成每日小趣事來閱讀,畢竟,學習應該要有趣的才有動力。
Read form Text File.vi應該算是初學者剛接觸LabVIEW會使用到的功能,也可能是他是很基礎的元件所以很容易忽略它的功能。
首先,寫了一個最簡單的程式讀檔案123.txt,其Block Diagram、Front Panel、記事本檔案,內容如下:
可以看出,這段程式碼將整個(entire)檔案內容讀出。但如果只需要讀出前幾個bits,可以將count接角接上I32數字。例如下面範例將count接上I32的數字7,可得結果:
但是使用counts讀出bits數,也許讀者會覺得在實務上應用並不需要,所以這裡介紹另外一個"隱藏"功能-Read Lines,在元件上按右鍵-->Read Lines,可以將文字以陣列方式讀出。
更改的元件會變成新的圖示,從元件的圖示就可以看出此VI已經變成陣列式的讀取。
接者改寫原本的程式,輸出的檔案格式也會從原本的String元件改成String Array,
此時,若將count的接角,從原本的-1改寫為I32的整數,如下使用2來讀出從頭到第二行的資料
如果想要設定初始值讀檔按的位置,需要使用到Set File Position.vi,可以參考之前文章LabVIEW_從TXT檔案最尾處繼續寫入資料(Write File Form End)
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Jun 20 Sat 2020 15:24
LabVIEW_10進位轉為2進位顯示(Decimal to Binary)
- Jun 20 Sat 2020 14:46
LabVIEW_Riffle V.S. Random Number 取隨機
在上篇LabVIEW_使用Riffle達到真正隨機取數Random提到,使用Random Number.vi 取出N個不重複的數字時,有發生機率不平均的象限,這篇探討這方法結果和Riffle,vi的差異:
在隨機取數字當中,最常使用方法為Random Number(0~1)如下圖:
但是這方法是否真的為平均隨機?下方將這段程式跑10000次做驗證:
發現,取出Index0的機率為500次左右,而其他為1000次做右,如下圖,從左到右分別為出現0到9的次數
使用Riffle方法,如下圖
發現取出的機率,更接近是平均的,,如下圖,從左到右分別為出現0到9的次數
從上面2個比較可以看出Riffle取出的隨機數較Random+Round to Nearest更為平均分布
程式碼可在這邊(Download)下載 , 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Jun 20 Sat 2020 11:45
LabVIEW_使用Riffle達到真正隨機取數Random
收到讀者來信糾正之前的文章LabVIEW_最大值和最小值中的任意個數不重複隨機陣列_樂透抽獎選號、LabVIEW_最大值和最小值中的任意個數隨機數陣列 這兩個提到隨機陣列其陣列並分真的"隨機"數列。其陣列中間的數是隨機出現沒錯,但陣列最初和最末陣列出現的機率並沒有平均。我必須承認和道歉,之前的作法並非真的做出平均隨機,所以這篇介紹如何取出真的平均出現的隨機方法:
Riffle.vi實際上的意義為從輸入端的[X]中隨機取出2個數值到輸出Riffled[X]陣列中,再從剩餘[X]陣列中取出隨機2個數值到輸出Riffled[X]陣列中,此動作重複N次,此N為[X]的陣列大小。
那一樣使用樂透選數字的範例來展示其如何應用,
程式碼可以在這邊下載,如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Jun 11 Thu 2020 16:47
LabVIEW_Array轉成文字(String)
- Jun 10 Wed 2020 10:52
LabVIEW_1D Array數據分群分類_功課解答
- Jun 03 Wed 2020 16:40
LabVIEW_Combobox V.S. Menu Ring
LabVIEW元件中,Menu Ring、Combo Box這兩個元件是人機介面中滿常使用的元件,也是容易搞混的項目。
此兩個元件,的比較差異:
- 最主要的不同是資料型態的不同,Combo Box為文字(string)格式,而Ring為數字(U16)格式。
- Combo Box 可以手動輸入字串,並顯示出(反黑部分)設計者最接近輸入值的字串(已經鍵入的字串資料)
- 數值建入的方法,此兩者的都是可以使用StringAndValues[]或是用Strings[]的方法,Strings也就是給操作者選擇的文字選項,Value則為實際上程式區隔的方法 : Combo Box為文字(string)格式,而Ring為數字(U16)格式
Strings[]:
StringAndValues[]: 可以看到Ring的輸入型態有藍色,及為數字(U16)格式
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Jun 01 Mon 2020 10:50
LabVIEW_使用CSV(,)檔案的資料讀寫方法的程式分享
使用Write to Spreadsheet File.vi 和Read From Spreadsheet File.vi 這兩個程式可以讀寫至CSV格式的檔案,但在定界符(Delimitier)須使用分號(,)做分隔才能正常使用。 並注意在"是否接續"(Append to File?)的選項上要依照需求做更改。
以下使用Write to Spreadsheet File.vi 和Read From Spreadsheet File.vi 做檔案讀寫的範例,另外也可以使用Write to Text File.vi、Read From Text File.vi,可以: LabVIEW_從TXT檔案最尾處繼續寫入資料 (Write File Form End) 的方法加以改變,將定界符(Delimitier)改成使用分號(,)做分隔。其他讀寫檔案的方式也是可以在基礎程式分享裡面找到相關的程式分享唷。
程式碼可在這邊下載,如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- May 29 Fri 2020 11:52
LabVIEW_從TXT檔案最尾處繼續寫入資料(Write File Form End)
分享這個程式是使用LabVIEW的原生程式 Set File Path.vi、Write to Text File.vi來做到資料寫入功能,此方法可以接續上次寫到的地方,繼續接著寫入資料,讓資料有順序性。
程式碼可在這邊下載,如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
此程式的重點是使用:Set FIle Position.vi這個功能,這個功能可以設定檔案寫入的起始點,可以選擇的選項有 1.Start (起點位置) 2.End (結束點位置) 3.Current(目前位置) ,
另外也可以使用offset (bytes)來選擇初始的字元位置。可以參考Context Help 來查閱詳細的解釋資料。
程式碼可在這邊下載,如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Dec 16 Mon 2019 17:56
LabVIEW_將Date/Time文字字串轉換為Timestamp格式
利用Scan From String.vi 文字更改成time stamp
當然可以根據輸入的格式做更改,例如下面是將時間和日期的順序做對調
其他的Time Format 可以參考這篇: http://zone.ni.com/reference/en-XX/help/371361M-01/glang/codes_for_time_format_str/
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Nov 22 Fri 2019 14:32
LabVIEW_更改執行檔圖示(ICON)(開始列表呈現的圖示)
在壓縮執行檔的時候,可以針對執行檔的ICON做更改,如此一來,ICON圖樣就不會是LabVIEW原生的樣子,讓操作者可以更直覺的使用執行檔。
在做執行檔時依照下面的方式修改:
注意事項:
- 圖檔必須是(ico)檔案,網路上很多免費的線上轉換軟體可以將PNG、JPG...等檔案格式轉換成ICO檔案
https://www.zamzar.com/convert/png-to-ico/
- 圖檔必須放在專案(Project)內
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Nov 22 Fri 2019 14:13
LabVIEW_程式撰寫時不關閉LabVIEW只在執行檔時關閉(Quit LabVIEW.vi應用)
使用Quit Labview.vi可以關閉執行檔,但是在程式撰寫時候如果使用Quit LabVIEW.vi會將整個NI LabVIEW關閉,造成要重新開啟NI LabVIEW才能繼續撰寫程式,這時候可以使用Property先分辨目前的型態(Run Time System、Development System,方法如下,這樣使用後,就不會在debug時將LabVIEW強制關閉了。
程式碼可在這邊下載,如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Oct 23 Wed 2019 17:02
LabVIEW_使用PLC通訊格式字串為Hex Display,如何轉為十進位的數值
![](https://imageproxy.pixnet.cc/imgproxy?url=https://pic.pimg.tw/a01832851/1571821771-143260697.png&width=309&height=476)
![](https://imageproxy.pixnet.cc/imgproxy?url=https://pic.pimg.tw/a01832851/1571822071-1943887535.png&width=375&height=79)
![](https://imageproxy.pixnet.cc/imgproxy?url=https://pic.pimg.tw/a01832851/1571822576-3213816678.png&width=93&height=397)
- Oct 18 Fri 2019 16:26
LabVIEW_資料夾內已使用的容量大小(Folder Size)
使用LabVIEW 的原件可以知道整個磁碟根目錄的大小(Get Volume Size.vi)和個別檔案大小 (Get File Size.vi) 但是如果要知道單一資料夾的大小,在LabVIEW原件就沒有直接可以利用的工具。這篇演示如何使用Recursive FIle List 搭配 File/Directory Info 得到資料夾已使用的容量。
程式可以在這裡下載, 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
程式可以在這裡下載, 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
- Apr 12 Fri 2019 14:57
LabVIEW_數字排序_由小排到大_由大排到小 Sorting Numeric
- Apr 11 Thu 2019 17:37
LabVIEW_十進位字串改成八進位制字串(8bits Binary Converter)