NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

迴圈同步停止

工程師好,我正在做超音波結合馬達進行偵測目標的實驗。

我的程式如附件。

 

程式最上面的迴圈是控制馬達的部份,下方迴圈則是超音波的驅動及接收程式

 

先設定馬達轉動步數(如程式中"正轉步數"&"逆轉步數"),

馬達轉動時超音波驅動程式會驅動超音波,同時接收測出的距離

 

我的問題是,上方控制馬達的迴圈在馬達轉完我所設定的步數之後會停下馬達,

但我無法控制下方超音波的驅動程式同時一起停止

 

 

請問該如何讓兩個迴圈同時停止呢?

 

 

麻煩幫個忙了,謝謝!

 

0 積分
1 條訊息(共 10 條)
6,618 檢視

你好,

要讓超音波的驅動程式 在 馬達轉完設定的步數  後一起停止,

你可以考慮使用Local Variable,並在stop condition 加上"or" 邏輯。

 

步驟:

在馬達程式區塊stop conditon上

create indicator -> 在indicator上按右鍵 -> create ->  Local Variable

並將Local Variable 圖示拖曳至超音波區即可

 

附件是我的想法。

請參考

 

NI AE Support  Joe

0 積分
2 條訊息(共 10 條)
6,597 檢視

工程師您好:

 

我將程式中兩個迴圈的stop利用local variable及or連接起來

 

但仍無法使馬達迴圈 與 超音波驅動迴圈 同時停止

 

請您再幫忙看一下了,謝謝!

 

 

下面是我更改後的程式,麻煩了

由 WPL 在 12-11-2008 12:29 AM
上編輯的訊息
0 積分
3 條訊息(共 10 條)
6,590 檢視

你好,

你程式中有個 "步進馬達2(SuVI).vi" 沒附上,請一併上傳。

否則我無法跑你程式。

 

目前看到可能會發生的錯誤是 timing error。

「接收反射波」處, DAQmx Rea.vi  - counter DBL 1 Samp  timeout 設定值

跟程式硬體所擷取到訊號需等待的時間關係?

10秒OK嗎? 

 

會不會整個程式都等待在 DAQ Read.vi - counter DBL 1 Samp timeout

所以讓超聲波區無法停止?

以致於整個程式都當在那個區塊?

 

請先上傳你的sub vi吧,謝謝。

 

 

NI AE Support Joe

 

0 積分
4 條訊息(共 10 條)
6,578 檢視

抱歉忘記附上subVI,但我不太懂timeout與硬體之間的關係,是什麼意思?

 

麻煩您了。

0 積分
5 條訊息(共 10 條)
6,566 檢視

Hi WPL,

我這裡試過Counter In/Out的迴圈,是可以由馬達控制迴圈來執行停止動作的.

除非有一個情形,若您的Counter In一直收不到訊號,將會在所設定的Time out(目前設定10sec)之後出現錯誤訊息而停止程式.

請問您遇到的是這個問題嗎?

另請教一下,您的超音波回來訊號,可以接收的到嗎?

0 積分
6 條訊息(共 10 條)
6,549 檢視

您好:

 

是因為超音波需要10us寬的驅動方波,所以我直接寫了10的-5次方,這個部分我會再作修改,抱歉造成誤解。

 

另外,在超音波接收count in的部分應該是沒有問題, 可以持續的接收訊號,且沒有time out 10秒後出現錯誤的情況。

 

 

麻煩您了 

0 積分
7 條訊息(共 10 條)
6,527 檢視
您可以使用跑馬燈的功能(在Block Diagram裡),偵測當您馬達到位後,超音波的迴圈沒停下來的地方在哪裡。
0 積分
8 條訊息(共 10 條)
6,523 檢視

不好意思,請問跑馬燈的功能在哪裡?

 

0 積分
9 條訊息(共 10 條)
6,503 檢視
Please refer to the attached file.
0 積分
10 條訊息(共 10 條)
6,500 檢視