重新執行程式--有關初始值如何歸零

   不知各位大大有無此問題,就是當我們執行過的程式按停止,然後下次執行時,有些的初始值並非為 0 而是上次執行完後的值,像這樣的情形該如何解決呢?

還有就是graph繪圖的問題,當重新執行程式時,有什麼設定可以讓他有x軸也從0開始繪圖呢?  還是得寫個程式讓它先歸零

用property node就可以了...

 

補充一下.....之前有其他大大是建議你先把你的初始值先設定為

預設值.....然後再用property node(也可能是invoke node).....來

強迫元件的狀態回到初始狀態!!

應該是指這個功能

    感恩喔!!大家的經驗真是豐富呀~~

 

也可以利用Local Variable強迫元件回到初始狀態.

補充一點,

如果您的程式裡有非常多的元件的話,此種方式將會使Block Digaram非常混亂,而且會造成維護上的困難.

我以前的做法是,利用讀取ini的方式使所有元件回到初始狀態.

jimmy-Chen大大!!

ini 是什麼?是否能詳細說明及操作方式?![](upload://bYCGLVQ2xYCkY6TSDzv2PwwNXoA.gif)

利用Configuration Files VIs來製作初始化的*.ini檔案,在程式一開始執行時,將ini檔案裡的資料及參數Load到元件裡.

在ini的檔案格式中,區分為Section,Key及Value,在一個Section裡可以有很多的Key,而每一個Key 裡只有一個Value.

感謝jimmy-Chen這麼詳細說明!!![](upload://j03HfI2TMqenOSl5lfi4w7XHM9g.gif)

剛剛做了一下,還是不會做ㄋ?![](upload://ekm3yUkVpx9yRp2Oc1K3CjKn5ta.gif)

執行後,會將數值寫入 test.ini ,可是開起檔案時.......

![](upload://jz9XHTNrWNxEUDHKU6iy3IOCGB1.jpeg)

x805138161.0048611111

在使用Configuration Files VIs來製作初始化檔案,只是將初始參數或條件以INI檔案方式儲存起來,在引用時還是需要以Local Variable或是Property Node將參數指定到元件上.

這樣的做法好處是,如果程式封裝成執行檔後,若要更改某一個元件的初始值,是沒辦法的,你要到程式裡更改,更改後再將程式進行封 裝,封裝完成後再到開發完成的專案上安裝,這樣未免太麻煩.

但是,如果將初始參數或條件以INI方式儲存起來,那麼往後如果要更改初始參數或條件的話,只要到INI檔案裡耕該就OK了.

哇!!都失敗ㄋ!!

請問大大!! 2個已上的數值,如何加入及讀出?(是否有範例)

![](upload://hrUV9hOPMMeQTmU14tALXv5sdAf.jpeg)

 

x805138161.5810185185

基本上的用法是這樣沒錯,相關範例在Help裡就找的到.

請問  jimmy-Chen大大!

我載入的是Num1 可是程式讀起還沒執行他就跑到Num1out輸出了?

是否能設定"輸入物件"的初始參數?(不是輸出物件ㄛ)

還有一個問題:

Edit Events 事件設定有一項打勾的(Lock front panel until the event case for event completes)

請問,,這是什麼動作ㄋ?(前視面版也沒改變)

謝謝!!

 


 

[QUOTE=x8051]

![](upload://hrUV9hOPMMeQTmU14tALXv5sdAf.jpeg)[/QUOTE]

1)應該要指定程式執行的先後順序比較好.明確的指定必須先執行讀取資料.

就程式來看它有可能先執行Num1也有可能先執行Num2,所以當你還沒將參數讀取進來前,Num1out或Num2out已經 執行完了.

2)您所說的輸入物件及輸出物件事不是指Indicator及Control?不管是Indicator或是Control都可 以設定它的初始值,方法是一樣的.

下圖就是指定String Indicator的初始值.

關於Lock front panel until the event case for event completes的用法及功能,事實上查了一下Help內容,但似乎沒有辦法將Front Penal鎖定.

以下是Help關於Lock Front Panel的說明:

Locking Front Panels

To lock the front panel when a registered event occurs, right-click the Event structure border, select Edit Events Handled by This Case from the shortcut menu, and place a checkmark in the Lock front panel until the event case for this event completes checkbox. LabVIEW enables this option by default, but you can change it for each notify event case. When you enable this option, LabVIEW temporarily defers processing of mouse clicks, key presses, and other user actions on that front panel while the event case executes, then processes the pending actions in the correct order after the event case finishes execution.

You cannot disable this option for filter events, because LabVIEW cannot finish processing a filter event until its case completes. Allowing LabVIEW to process other events while it is handling a filter event could cause events to occur out of order.

LabVIEW does not lock the front panel during a Timeout case, even if the same event case locks the user interface for other events it is configured to handle.

關於Edit Event事件時Lock front panel until the event case for event completes的選項,問過NI的南部業務經理林宏盛,自己也試過了.

林經理的回答是:

如果勾選Lock front panel until the event case for event completes選項時:

當Event被觸發後,如果該事件內的程序未完成,使用者就無再點選Front Penal上的任何控制元.

反之,不管Event內的事件是否完成,使用者都可以點選Frint Penal上的元件.

以下,我就針對差異性作測試:

1)我使用Lock Front Penal Event Button及Unlock Front Penal Event Button做為比較.

2)在二個Button裡,分別建立Event,勾選其中一個的Lock front panel另一則無.

3)在Lock Front Penal Event Button及Unlock Front Penal Event Button事件內,分別加入一個等待時間(Waits)1000或更長.

4)執行程式發現,當我觸發Lock Front Penal Button時,在Wait時間內,我無法再按下其他按鈕.但當我觸發Unlock Front Penal Button時,在Wait時間內,卻可以對Front Penal上的其他按鈕做控制.

以上就是針對Edit Event事件時Lock front panel until the event case for event completes的選項的說明.

2004-06-25_093845_Lock_Front_penal.vi

所以基本上應該都不會去勾那個選項的

而且雖然Panel被暫時lock住,但是我們所做的動作還是被紀錄下來,如果事件一完成,程式馬上會再把剛剛所做的動作產生, 這一點我覺得並不好,不知道NI為什麼要這要設計,你們可以試看看

[quote=Jimmy-Chen]這樣的做法好處是,如果程式封裝成執行檔後,若要更改某一個元件的初始值,是沒辦法的[/quote]

不知道這個invoke node是不是可以重新設定default value

可是大概要全部一起重設,沒辦法針對某一個元件做設定

之前我也試過這個方式,但一直沒有成功![](upload://dGWlvxJ6cjO6IncGqG5KGnuFXI3.gif).

為避免麻煩,我都用讀取ini的方式來指定初始執,如果一個一個設定的話,很麻煩.

因為如果在Front Penal上有100個元件(或更多)要設定的話,你想會花多少時間![](upload://AtZy2aBiTlDfF8B9zoZMPhN4Iab.gif).

還有關於Lock front panel until the event case for event completes的功能.知道用法,用不用得到就見仁見智了,不一定有人覺得很好用呢.不一定以後就是少了這個功能而傷腦筋呢![](upload://jjI19MNbuPM2C9il3mIEsiIuEZ8.gif).

[QUOTE=yao]

所以基本上應該都不會去勾那個選項的

而且雖然Panel被暫時lock住,但是我們所做的動作還是被紀錄下來,如果事件一完成,程式馬上會再把剛剛所做的動作產生, 這一點我覺得並不好,不知道NI為什麼要這要設計,你們可以試看看

[/QUOTE]

補充一下Lock front panel until the event case for event completes選項的預設值是被勾選的,所以基本上是不會有人把它取消的.