贊助商連結

目前分類:基礎程式分享 (52)

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

在LabVIEW讀檔時,有可能承接的是別的應用產出的報表格式,如果直接讀出不經轉換,可能會是無法讀懂的亂碼。
UTF-8轉換是很常見的解決方法,因為UTF-8是很通用的傳輸格式,詳細的UTF-8轉換方式,這邊就不特別提,大家可以參考維基百科的解釋。

LabVIEW有內建UTF-8轉換,不過藏在Example中,並不再工具欄裡面。

image


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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

為了抽籤請客,所以特別寫了一個小程式玩。下方表格為輸入資料,Row 1為所有人員名單,Row2為權重數字。

image

此程式完全屬娛樂用唷~

image

內部程式利用Riffle.vi來做到亂數,在利用人機面板上的紅色Index跳動做出抽籤的緊張感

可以參考LabVIEW_Riffle V.S. Random Number 取隨機 有關於取隨機數的用法。

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

Queue應用

Synchornization學習

Array陣列

檔案讀寫

Listbox、Table元件

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

While Loop和For Loop算是程式語言中的基本要素之一,在其他語言程式中,While Loop比較不會像LabVIEW這樣多功,所以他的功能容易被忽略。

[Shift Register]

Shift Reqister 在LabVIEW中算是很常見的功能,不管基本的價格State Machine或是為了資料傳遞的Funtional Global Varaiable,都會使用到。

image

在While Loop結點上按右鍵-->Replace with shift Register

可以參考State Machine的文章參考使用用法: LabVIEW_State Machine(狀態機)程式架構介紹

[Tunnel Mode]

在輸出的結點上按右鑑可以更改Tunnel Mode的模式,有Default 的Last Value、Indexing、Concatenating,而Conditional是需搭配上面所敘述倒的模式才能使用。

image

Last Value: 輸出最後的值

Indexing: 將輸出的值用Array堆疊,所以結果會是1D Array

Concatening: 將輸出的1D Array做同維度的堆疊,所以結果會是1D Array

Conditional: 設定輸出條件,下面是將偶數值輸出的範例

image

[Stop if ...]

在Stop Terminal上按右鍵,選擇Continue if TRUE,將原本的停止條件改成反向,之前是True為停止條件,更改後變成True為運行條件。

image

[Subdiagram Label]

在While Loop上按右鍵-->Visible Items--> Subdiagram Label

image

可在Loop內層上方顯示註解文字,如上圖。

 

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

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

使用Scan From String、Format into String、Spreadsheet String to Array、Array to Spreadsheet String 等VI都有接角Format String,可以依照輸入的Format格式做客製化更改。這篇介紹如何使用Format String和其範例。

image

因為Format的功能眾多,就以列表展示Format String的類別和應用範例:

image

image

image

以上為圖片檔,因為本來使用文字檔,但是讀者反映看不到文字,所以特地加上圖片檔。

以下文字檔為全表,方便讀者複製內文,內文和上面圖表一模一樣:

Syntax Element

說明

使用方法字串範例

範例

輸入

輸出

s

基本字元,前加數字代表限制的字元數量

%3s

image

image

f

浮點數,前加數字代表限制的字元數量

%2.3f

image

image

d

整數,前加數字代表限制的字元數量

%3d

image

image

$

改變順序(Order)

%2$s %1$s

image

image

+

顯示其數直正負(+-)符號

%+d

image

image

e

工程顯示

%.3e

image

image

^

工程顯示,指數顯示為3倍數

%^.3e

image

image

文字中不包括

%[^,],%s

image

image

^;]%s

image

image

%[^0-9]

image

image

[ ]

數字字元

%[0-9]

image

image

英文字元

(大小寫有區隔)

%[0-9]%[a-z]

image

image

轉換代碼

x,十六進位

%02x

12

0C

o,八進位

%06o

12

000014

b,二進位

%b

12

1100

相對時間t

輸入為秒數

%.2t

image

image

%<Hours:%H Minutes:%M Seconds:%S>t

image

image

絕對時間T

輸入的時間格式必須正確

%<%.3X %x>T

00:00:00.000 AM
1/1/2001

12:00:00.000 AM 01/01/2001

%<%Y.%m.%d>T

00:00:00.000 AM
1/1/2001

2001.01.01

 

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

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

上一篇寫了關於LabVIEW_你可能不知道的In Range and Coerce.vi用法和注意事項,收到學生許多回饋,覺得這一系列很是有趣。所以我在為這系列-你可能不知道的單元增加加入其他元件,大家可以當成每日小趣事來閱讀,畢竟,學習應該要有趣的才有動力。

image

Read form Text File.vi應該算是初學者剛接觸LabVIEW會使用到的功能,也可能是他是很基礎的元件所以很容易忽略它的功能。

首先,寫了一個最簡單的程式讀檔案123.txt,其Block Diagram、Front Panel、記事本檔案,內容如下:

image

可以看出,這段程式碼將整個(entire)檔案內容讀出。但如果只需要讀出前幾個bits,可以將count接角接上I32數字。例如下面範例將count接上I32的數字7,可得結果:

image

但是使用counts讀出bits數,也許讀者會覺得在實務上應用並不需要,所以這裡介紹另外一個"隱藏"功能-Read Lines,在元件上按右鍵-->Read Lines,可以將文字以陣列方式讀出。

image

更改的元件會變成新的圖示image,從元件的圖示就可以看出此VI已經變成陣列式的讀取。

接者改寫原本的程式,輸出的檔案格式也會從原本的String元件改成String Array,

image

此時,若將count的接角,從原本的-1改寫為I32的整數,如下使用2來讀出從頭到第二行的資料

image

如果想要設定初始值讀檔按的位置,需要使用到Set File Position.vi,可以參考之前文章LabVIEW_從TXT檔案最尾處繼續寫入資料(Write File Form End)

image

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

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

 

文章標籤

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

在數字轉換上,LabVIEW可以使用各種方法做轉換,這裡介紹2種方法做轉換

image

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

Queue應用

Synchornization學習

Array陣列

檔案讀寫

Listbox、Table元件

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

在上篇LabVIEW_使用Riffle達到真正隨機取數Random提到,使用Random Number.vi 取出N個不重複的數字時,有發生機率不平均的象限,這篇探討這方法結果和Riffle,vi的差異:

image

在隨機取數字當中,最常使用方法為Random Number(0~1)如下圖:

image

但是這方法是否真的為平均隨機?下方將這段程式跑10000次做驗證:

image

發現,取出Index0的機率為500次左右,而其他為1000次做右,如下圖,從左到右分別為出現0到9的次數

image

 

使用Riffle方法,如下圖

image

發現取出的機率,更接近是平均的,,如下圖,從左到右分別為出現0到9的次數

image

從上面2個比較可以看出Riffle取出的隨機數較Random+Round to Nearest更為平均分布

 

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

Queue應用

Synchornization學習

Array陣列

檔案讀寫

Listbox、Table元件

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

收到讀者來信糾正之前的文章LabVIEW_最大值和最小值中的任意個數不重複隨機陣列_樂透抽獎選號LabVIEW_最大值和最小值中的任意個數隨機數陣列 這兩個提到隨機陣列其陣列並分真的"隨機"數列。其陣列中間的數是隨機出現沒錯,但陣列最初和最末陣列出現的機率並沒有平均。我必須承認和道歉,之前的作法並非真的做出平均隨機,所以這篇介紹如何取出真的平均出現的隨機方法:

image

Riffle.vi實際上的意義為從輸入端的[X]中隨機取出2個數值到輸出Riffled[X]陣列中,再從剩餘[X]陣列中取出隨機2個數值到輸出Riffled[X]陣列中,此動作重複N次,此N為[X]的陣列大小。

那一樣使用樂透選數字的範例來展示其如何應用,

image

 

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

可以利用"Array To Spreadsheet String.vi"將Array改成文字,其輸入型態可以有多元型態: String、Numeric、1DArray、2DArray(或是更高型態)

image

image

對應上方程式的解答:

image

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

讀者給我一封匿名信關於如何做數據的分類、排序:
 
程式在前面經過運算後會產生出一推數列
必須要把那些數列做一個分類
數值大於等於0.85的歸成一類,數值小於0.85的則也規程一類 ,並且要顯示出來有哪些
 
這邊可以下載, 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
以下做了幾種符合需求的解答方式給讀者參考:
image
image
image
image

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

LabVIEW元件中,Menu Ring、Combo Box這兩個元件是人機介面中滿常使用的元件,也是容易搞混的項目。

image

此兩個元件,的比較差異:

  1. 最主要的不同是資料型態的不同,Combo Box為文字(string)格式,而Ring為數字(U16)格式。

image

  1. Combo Box 可以手動輸入字串,並顯示出(反黑部分)設計者最接近輸入值的字串(已經鍵入的字串資料)

image

  1. 數值建入的方法,此兩者的都是可以使用StringAndValues[]或是用Strings[]的方法,Strings也就是給操作者選擇的文字選項,Value則為實際上程式區隔的方法 : Combo Box為文字(string)格式,而Ring為數字(U16)格式

Strings[]:

image

StringAndValues[]: 可以看到Ring的輸入型態有藍色,及為數字(U16)格式

image

 

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

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

​​​​​​​

文章標籤

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

使用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)改成使用分號(,)做分隔。其他讀寫檔案的方式也是可以在基礎程式分享裡面找到相關的程式分享唷。

image

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

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

分享這個程式是使用LabVIEW的原生程式 Set File Path.vi、Write to Text File.vi來做到資料寫入功能,此方法可以接續上次寫到的地方,繼續接著寫入資料,讓資料有順序性。

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

image

此程式的重點是使用:Set FIle Position.vi這個功能,這個功能可以設定檔案寫入的起始點,可以選擇的選項有 1.Start (起點位置) 2.End (結束點位置) 3.Current(目前位置) ,

另外也可以使用offset (bytes)來選擇初始的字元位置。可以參考Context Help 來查閱詳細的解釋資料。

image

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

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

利用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文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

在壓縮執行檔的時候,可以針對執行檔的ICON做更改,如此一來,ICON圖樣就不會是LabVIEW原生的樣子,讓操作者可以更直覺的使用執行檔。

在做執行檔時依照下面的方式修改:

注意事項:

  1. 圖檔必須是(ico)檔案,網路上很多免費的線上轉換軟體可以將PNG、JPG...等檔案格式轉換成ICO檔案

https://www.zamzar.com/convert/png-to-ico/

https://icoconvert.com/

  1. 圖檔必須放在專案(Project)內

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

 

文章標籤

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

使用Quit Labview.vi可以關閉執行檔,但是在程式撰寫時候如果使用Quit LabVIEW.vi會將整個NI LabVIEW關閉,造成要重新開啟NI LabVIEW才能繼續撰寫程式,這時候可以使用Property先分辨目前的型態(Run Time System、Development System,方法如下,這樣使用後,就不會在debug時將LabVIEW強制關閉了。

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

自從經營部落格後,一直有讀者來信問LabVIEW相關問題,這個問題出現了特別多次:  使用PLC通訊格式字串為Hex Display,如何轉為十進位的數值?
例如PLC收到字串用(Hex Display)為1000,普遍大家想說解成十進位制就是直接使用Hexadecimal String To Number.vi轉換
如下圖,使用Hexadecimal String To Number.vi轉換
但這樣轉換並不會有預期的結果 4096,因為HEX Display是遵循ASCII HEX的原則,也就是如下表:
若1000為HEX Display,那其Normal Display顯示並不會有值,因為已經超出ASCII碼的編碼原則,
若PLC讀回的HEX Display=10,則Normal Display(Chr)代表意義為A,其原理是使用ASCII原來。
至於ASCII的解碼可以參考: LabVIEW-HEX與ASCII字元的字串轉換
 

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

使用LabVIEW 的原件可以知道整個磁碟根目錄的大小(Get Volume Size.vi)和個別檔案大小 (Get File Size.vi) 但是如果要知道單一資料夾的大小,在LabVIEW原件就沒有直接可以利用的工具。這篇演示如何使用Recursive FIle List 搭配 File/Directory Info 得到資料夾已使用的容量。

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

 

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

分享一個數字排序的方法,之前在樂透彩程式中也有用過,可以將輸入的數值陣列做排序,展示如何做由小排到大及由大排到小的方法。

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

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

利用Format Into String做到十進位制轉換。輸入格式(Format String)為 04o 即為限制輸出為 4 bits 的八進位制。

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

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

 

文章標籤

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

1 23
Close

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

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

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

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

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼