影像Lag

[QUOTE=SUSANAN]我換了這方式變成 我傳送植根溫度都需要案STOP才能接收到 請問大大們 是還有哪邊需要修改嗎[/QUOTE]

「監測端傳送值」這條紫線還在,他決定了主迴圈一定得結束,才會送出紫線資料,有了紫線資料才會進行副迴圈

所以你得用Local Variable取代這條線,讓副迴圈跟主迴圈的地位平行起來


請問是這樣街嗎? 可是我接了之後 計數秒數完全不會動作耶~~且之後會發生下圖的錯誤
[0]
計數秒數完全都不會動,你是指「讀秒」這個 Indicator嗎

這代表兩個迴圈已經平行了,副迴圈一啟動程式也開始要做東西 (但這馬上發生不合理,因為你應該要藉由Local Variable平時先不讓他做事,數值變化後才做事)
但是很有可能資源都卡在副迴圈,或是副迴圈本身已經出錯讓東西卡住了

[1]
主迴圈(影像裝置)與副迴圈(溫度監測),請先加上wait until next ms multiple 1ms 左右,不要讓兩個都全吃資源

[2]
監控端傳送值,平時沒工作的時候,是輸入紫色的0嗎?
有沒有在程式開始前給「監控端傳送值」初始值?例如紫色的1,或,紫色的0。1跟0分別會進行VISA的什麼動作?


如果沒有給定初始值,一開始就在不對時間點被要求工作了


初始值的給法「紫色的1」--->「監控端傳送值 (Write)」
最好用利用單禎的Flat Sequence搭配資料流讓初始值的設定比其他都還早做


[3]
紅色圈處的這個東西不見了,他可能是跟Variant變數型態有關的東西,是不是可以找回/留下他?
我剛才說Create是在這個元件的左端Create喔,不是在你的VISA左端
MingYen42556.716087963

是的沒錯 讀秒沒辦法!!

單禎的Flat Sequence想請問一下 這個怎麼用呢
監控端傳送值主要是要讓影像判斷魚是否要產卵 傳1跟0給arduino 做環境控制
SUSANAN42556.7524768518

把燈泡打開(highlight execution),看看執行後是卡哪邊不肯動,或是副迴圈吃掉了大量的資源

右邊迴圈的 VISA,那個類似資料型態變換的小元件,請快點補回
wait until next ms multiple 1ms,請快點加上

單禎的Flat Sequence就是拉一個Flat Sequence,他會「等到該傳入給他的資料都到位」了,才開始動下一步,用於資料流程式順序控制,因為想在主迴圈開始前把按鈕初始化,副迴圈結束後把按鈕回歸初始化

環境控制是指量測溫度嗎?,看起來紫線他決定了VISA VI的行為

[QUOTE=SUSANAN] 是的沒錯 讀秒沒辦法!!
單禎的Flat Sequence想請問一下 這個怎麼用呢
監控端傳送值主要是要讓影像判斷魚是否要產卵 傳1跟0給arduino 做環境控制
[/QUOTE]MingYen42557.5793518519
[1]
想請問「Image」、「魚的位移值」、「過零點計數次數」、「監控端傳送值」、「溫度」
這些數據你要的關係是什麼

[2]
平時拍魚的Image,最快希望多久拍一張?每一張都要計算軌跡圖嗎?每一張都要存檔嗎,每一張都要計算魚的位移值嗎
魚一旦過零點,你才會增加過零點記數次數嗎,
如果過零點記數次數超過5,「監控端傳送值」要給VISA的動作是什麼,會很久嗎

[3]
我看最早的程式版本controlnew-correctt.vi
這個主迴圈要按下stop或發生Error後,才會副迴圈僅僅抓一次溫度,因為stop已經是True了,這個副迴圈只被跑一次
等到抓完溫度結束後,所有的原件都被close掉,這實在很奇怪。你的最大迴圈整個框起來讓他們繞回去到起頭,重新把攝影機、溫度控制用的VISA重新load進來,重新啟動這些設備當然會要時間

照這樣看起來,最可能導致delay的消耗不會來自於溫度擷取,而是來自於重新load這些設備吧

[1]的順序,還有[2]這些流程的敘述,麻煩再告訴我們
我覺得原本認為你所說溫度擷取會造成Delay的說法並不是正確的,溫度擷取這個動作只不過抓個電壓,不可能會很久,而且你是做在已經結束抓圖之後,「如果你真的沒有打算作主迴圈而按下了stop,怎麼會去嫌它會Delay?」


[4]
另外有些奇怪的是,如果只為了抓一次溫度,就按下主迴圈的stop,弄到主迴圈、副迴圈、最大迴圈都只跑這一次就結束了,那最大迴圈是做什麼用的,程式如何長期跑下去?

你最早的版本執行的時候,是否甚至還按了Run Continuously?
MingYen42557.776099537
請參考此架構


controlnew-correctt (2013 Ming-Yen).vi
MingYen42557.8094212963
因為一下要寫,一下要讀,我擔心會出錯,所以我把VISA有關的都拆出來了,這樣才達成了R大的建議 

我沒辦法開啟你使用的sub VI,但是資料的調整有符合平行迴圈

在副迴圈之中,每圈一律會先觀察監控端傳送值,決定要寫入什麼,寫入想寫入的東西,然後才讀取一次溫度,這樣才不會雙迴圈各自想讀又想寫,很可能會發生錯誤

另外你也可以看到初始化數值,以及結束時復歸兩個Flat Sequence

這個是個概念,請往這個方向改造程式,最大迴圈解除掉了,靠主副迴圈各自去隨時間做事,未來雙迴圈用多了,可以往Queue和Notifier發展
MingYen42558.4221759259