Labview 甘苦談

Hi, 各位LABVIEW的使用者們,大家好!!

想請教各位使用LABVIEW的心得與優缺點:
   我們公司在做自動控制,在公司本來負責硬體維修和PLC程式,當初老板引進LABVIEW是覺得他的圖控畫面比較漂亮
所以叫我去學,(我不是寫軟體出身的,只有學過一點VB),而公司也只有我依個人再用LABVIEW,3年過去了…
雖然也有開發出幾套軟體,但是最近公司叫我提報關於LABVIEW的優缺點,問我LABVIEW到底適不適合使用…是不是考慮不要用了
我真的不知該如何說起…

要說優點:我覺得對於英文不好,打字又慢的我,比C++,VB 純文字編輯的程式,好用很多
而缺點:就是在學習進度上的瓶頸又很難突破,要寫一個又快又穩又易讀易改的程式要怎樣做到呢…唉!

請各位可以分享一下LABVIEW的優缺點,謝謝~~

Snakehsieh42347.5933217593

[QUOTE=Snakehsieh]
要說優點:我覺得對於英文不好,打字又慢的我,比C++,VB 純文字編輯的程式,好用很多
而缺點:就是在學習進度上的瓶頸又很難突破,要寫一個又快又穩又易讀易改的程式要怎樣做到呢...唉!

請各位可以分享一下LABVIEW的優缺點,謝謝~~
[/QUOTE]

**
優點:LabVIEW可以圖像式傳遞程式碼與解說,可以在各式討論區(NI美國官方討論社群、LabVIEW360或是LabVIEW Pro)找到(LabVIEW才會發生的)奇怪問題的答案 (大誤)。
缺點:在NI的努力下,現在有許多年輕研究生甚至高職生,都具備有基本的LabVIEW程式能力,很容易找到新人加入開發程式的行列。或是把這個人換掉 囧 (極大誤)。
我得承認上面是亂寫的 XD

上面的內容是稍稍給個建議,不要因為自己的弱點而才仰賴在LabVIEW,你要是能克服英文方面的害怕
LabVIEW的好處就是可以到討論區,用Create VI Snippet from Selection直接讓高手看圖又抓取程式,還能分享自己的新程式的結構,讓大家討論如何能效能更快。

正常寫VC你只能給他千行詩(Code)、付他千金(薪水),結果找到的是一個沒設Initial Value、或是忘了變更flag這一類的蠢問題。

**
我建議你從公司立場的角度來看:

VC等程式語言,同等於練家子打的武功,只有高手打得動,你請一個高手來要叫他做什麼事?一定要做大事。
這考驗你公司PM有多少idea可以生,如果沒有新產品開發,這個高手請來放著燒錢,只讓他負責做maintain。
這樣你不敢請其他更多的SW Engineer進來,因為很貴,又不一定留得住。全部的技術都鎖在同幾個高手身上,整把高手被挖腳走的情況包你嚇死。
留著他們又要高速燒錢。

你要是LabVIEW,請一個這個新產品領域的碩士生,薪水可能只要上述高手的5~6折
關鍵是交接得宜,還有內訓,也就是在公司內只要養一隻母雞,就能帶初一票超強的小雞,但他們又可以是在不同產品領域上。(你要暗示且有決心你會有能力當母雞)

上面這段是告訴你,會開始動LabVIEW的License錢的腦筋,代表上面有人沒腦筋。
而這樣的人可能相對性的職位比你高,打算砍到你的工具上了,再晚一點可能就要砍到你的頭上,只是你還沒發現

所以你如果單純提供上交資訊,分析優缺點,那搞不好沒多久LabVIEW跟你都一起掰掰了
你要站到更高的角度,代表你用LabVIEW是為了產品好、為了專案好、為了技術好、為了公司好、為了國家好、為了社會人群好、為了南極的臭氧層破洞好、為了地球好、為了滔滔的歷史洪流好.....
所以你要用LabVIEW。只要你要用LabVIEW寫程式,沒有人能阻擋你

**
MingYen42348.8242476852
優點報告參考如下:

請從半馬組挑出你較有接觸的主題,把內容好好看過一遍。思考如何給公司問問題的上層一個「進階版」的答案
例如
6.晉升人機介面的設計高手,這是你們Boss本來希望的主題,把這篇看一看
了解Property Node可以做到什麼程度,如何在演算後 -> 幫User highlight特定的資料點。而其他圖像式程式語言卻不容易做到。

7.從工具組到範本的報表製作
產生報表,產線部門的經理有的很喜歡這個,如果你們公司有提供給他自動產生報表,判定Pass/Fail良率的潛力,他會很高興不需要在作業員還是自己兩者間挑人來做報表。

4.設計平行迴圈程式架構
在寫人機介面的時候,一個迴圈負責 等待/顯示 人機介面的事件,一個迴圈負責高速擷取資料或運算資料。兩者自動使用多執行緒。輕易分配(平行迴圈)所占用的CPU比例。
必要時你還可以讓兩個迴圈對時,一律在快速迴圈做到什麼的時候,才去做慢速的迴圈。(Notifier)
內建(Queue),先進先出處理資料。快速分辨Queue是不是overrun、長期被清空、還是穩定的比例。

平行迴圈要對抗的常見問題如下:
許多設備附屬的軟體,如果螢幕顯示資料很快,快到你滑鼠都會lag。更快的話緊急停止命令都不緊急了。系統資源調控不當。
有的為了使用者介面User Interface命令能下得很快,用很基本的輪詢(Polling),去查整排按鍵是否被呼叫,而不是用事件(Event),結果卻影響了設備上的資料抓取與顯示。

Notifier大致上可作為系統運算高負載結束後,迴圈間的提示。高負載結束,才允許系統(負責寫入的迴圈)去寫入資料(Write to File)。
Queue大致上就是FIFO,我想應該你比我更清楚。關鍵是他可以用多個平行迴圈去塞Queue,也可以用多個迴圈去取出Queue裡面的東西。而且輕易地監測Queue剩下多少東西。


你對你有把握的主題挑出2~3個,認真地看過一遍,規劃如何你介紹的想法,告訴他們LabVIEW進階的那一面。我想會給你的主管們對LabVIEW與你耳目一新的感覺。
往後就鎖定公司產品會用到的項目去學,去找社群分享的範例,加強自己。這樣就可以使用LabVIEW真正獨到的那一面。

缺點如果要開個小玩笑,就是Lincense還有年度技術服務要收費。
如果場合不適合,則說LabVIEW進階的技巧往往要使用者下班後自行去鑽研,真的要很有決心在LabVIEW程設的人,才能在這個領域站穩住腳。


MingYen42349.4941782407

感謝你的回覆, 全馬,半馬我都看過了,也學到多技巧

我也一直在改善程式,也參考貓大的LVOOP架構,我當然也覺得LABVIEW好用

只是,混再一群寫C的人中,我只能一個人苦幹,上網查應用技巧,然後Try,Try,Try…
只是孤掌難鳴,如果我自己一個人可以解決所有的問題,我早就登上高峰了,
(我還記得公司某同事說LABVIEW寫久會變笨…),因為我沒有軟體工程基礎,我也不知要怎說…
當初NI來推,說用LABVIEW開發一個程式只要3~6個月,所以老闆當然很興奮…
但是要一個從0開始,就像小學生要修完大學課程,是能多快…
我也自認學習的進度很快了,從建構通訊架構到UI介面,到系統開發,到資料分析,報表列印…
也是有賣出幾套產品 (以上純發牢騷)

在補充一下

請教一下 NI LabVIEW Real-Time Module ,是另外的OS嗎,必須要搭配NI的硬體才能用嗎??
公司用的都是自己的硬體,不可能買NI的硬體來用,Real-Time Module 可以用在LABVIEW的程式內嗎??
目前遇到的問題也是在這,在一個監視系統要即時顯示所有資訊,但時序若跑太快,會吃掉CPU很多資源
若太慢,畫面顯示又有些Lag,在一個多工處理機制上,要怎樣分配時序,與資源
使用Timed Loop可以解決嗎?

雖然不是全部,但多數台灣自動化開發商

還是用“硬體”的想法在想“軟體開發"這件事…
LabVIEW好不好用或跟其它語言比較優劣點什麼的…那都是假議題
真正問題在自動化系統程式設計師包含主管等等
都沒有完整的"軟體工程開發觀念"
所以在開發現場種種光怪陸離的情況也就不足為奇…


哇! 若貴公司有自己的硬體在處理rt部分的話, 的確你使用LabVIEW會格格不入. 畢竟NI rt(軟硬體)沒有很認真地對外開放. 建議提高您在處理客戶端應用需求的能力, 這樣才能跟其他人有差異化.



而NI的real-time module只能用在NI自己的硬體上, 對PC的支援性, NI.tw幾乎不推



以上, 加油