LabVIEW Getting Start的畫面也沒有太多的改變,我們點選Create Project創建一個專案,目前為止看來都沒有甚麼改變。我們開啟一個Blank VI來看看,依舊是一個Front Panel以及Block Diagram。
由於筆者想要尋找與之前版本的差異點,所以先從Front Panel的物件開始尋找,於是在Silver的物件裡終於發現多了一塊選單Decorations,看來NI對於Front Panel的裝飾在Silver沒有對應的圖示有被人反應,在這個版本更新上了。
試用了一下,多出了一些Silver的三角形圖示以及方塊,其實還不錯用。
因為沒有發現新的Front Panel其他改變,所以接著就往Block Diagram的函數作尋找了,當然一切都還是要等NI官方公佈為準,那就來看看我的一些測試以及猜測吧。
首先在Cluster選單的Variant裡面看到了Variant Constant,看來Variant一直都沒有Constant也是被反應出來了,這樣就可以不用一直從Front Panel叫出Variant物件,再去用滑鼠來點選右鍵變更成Constant了。
接著我在String的地方看到了視窗有點變更,仔細一看發現多了一個Normalize End of Line。
試用了一下,他可以將字串裡面的換行符號作轉換,這邊也說明一下不同的作業系統的換行符號其實在ASCII裡面是用不同的字元來表示,有些是Carriage (以r表示),有一些是Line Feed(以n表示)。以最著名的三個作業系統為例子UNIX的換行符號是n,而蘋果Mac OS的換行符號是r,微軟作業系統則是兩個字元rn。
舉個實際的例子來說,我們測試一下這個函數,函數的上方要去Create一個Enum來設定我們要轉換的作業系統格式,並且將字串設定成" Code"模式,程式碼如下。
Native是SQL的環境,換行符號是rn,如果我們有使用換行符號的話,他會轉換變成rn
Native Command Line的換行符號是rn,如果我們有使用換行符號的話,他會轉換變成rn。
UNIX的換行符號是n,如果我們有使用換行符號的話,他會轉換變成n。
Mac OS的換行符號是r,如果我們有使用換行符號的話,他會轉換變成r。
DOS的換行符號是rn,如果我們有使用換行符號的話,他會轉換變成rn。
並且是將整個文章的換行符號都會對應轉換,而不是只有第一行的換行符號,所以算是一個相當方便的函數。
接著在Timing的部份看到一個High Resolution Relative Seconds,看起來可以偵測到比較高精準度的時間,藉此作一些時間的量測。
我們在這邊也來作個實驗,我們直接使用Sequence Structure來作一個序列,連續擺放兩個High Resolution Relative Seconds,來看看有沒有辦法偵測的時間的間隔。結果發現有量到4.66532E-7,連續執行了幾次都有數值出來,這個結果顯示了這個函數的確可以作比較高精度的時間量測。
這是一個相當棒的訊息,代表我們終於可以量測到細緻一些動作的時間間隔了,一直以來筆者都相當需要這個函數來解決一些問題,現在可以實現了。但是在這邊筆者要解釋一下,在圖形化作業系統上時間的穩定度是不穩定的,雖然CPU的頻率是GHz等級的,但是在中間OS做了太多層的事情了,所以可以嘗試看看每次量到的時間都會稍稍變動,因此時間間隔的穩定度筆者在這邊預測是不會太穩定的,不過這個問題如果是改在Real-Time OS上面就一定有著相當的穩定度。
另外值得一提的是LabVIEW 2014終於把Stacked Sequence Structure這個東西給移除掉了,真是可喜可賀!!!
可能會有人覺得很奇怪,為什麼我要對於移除掉這個Stacked Sequence Structure而覺得高興,剛好藉著這個機會來做一下教學說明。主要是因為這個函數其實並沒有太高的存在價值。簡易的一些序列動作可以使用Flat Sequence Structure來製作,或是使用SubVI的Error Line來做序列的排列行為,如下圖的範例。
相較之下使用Stacked Sequence Structure雖然可以把畫面縮起來,但是難以閱讀以及Sequence Local難以使用容易造成混亂,所以如果程式比較大想要節省畫面,有這個必要要使用這種縮頁的方式來撰寫程式的話,不如改使用右邊的State Machine來寫,閱讀性、彈性以及Shift Register使用的方式都比使用Stacked Sequence Structure來的好多了。
接著我們從效率層面來測試看看LabVIEW 2014,因為我其實並不清楚它做了哪些事情,所以只能測試一兩個基本的運算速度來看看效能。
在效能的部份,筆者簡單的寫了一個程式來作時間量測,來測試空迴圈的運算時間,可以看得出來在空迴圈的間隔時間上有快上一些些,看來在一些低階的動作上有去作一些精簡;而在浮點運算上的運算時間就差異不大,省下的時間應該也是迴圈換圈的動作時間。由此可知在LabVIEW 2014與LabVIEW2013上的運算上差異應該是有限的,並不是在這部份做功夫。
以下幾個Toolkit是我發現在安裝LabVIEW 2014的時候就已經可以直接安裝的工具,分別是PID、Fuzzy Logic、Database這三個工具組,我猜測NI是否有意將這幾個工具納入基本配備?或者是因為我的LabVIEW 2013有安裝這些工具組,所以LabVIEW 2014就吃到了(我不太這樣認為啦)?等待官方公佈吧。
目前看起來LabVIEW 2014還是偏向於將一些使用工具更人性化,來解決一些原本要繞一圈功夫才能作到的事情,另外依照慣例應該會去修正一些2013以前的Bug。另外近年來NI在LabVIEW FPGA與LabVIEW Real-Timeg上面投入非常大的資源,所以我猜測在LabVIEW 2014的時候應該會有相當大的進步吧,不過由於我手上只有基本的LabVIEW 2014安裝檔,無法針對這些部份去測試,所以讓我們期待一下正式推出的時候還會有哪些新發現吧。 |