工程師好,我正在做超音波結合馬達進行偵測目標的實驗。
我的程式如附件。
程式最上面的迴圈是控制馬達的部份,下方迴圈則是超音波的驅動及接收程式
先設定馬達轉動步數(如程式中"正轉步數"&"逆轉步數"),
馬達轉動時超音波驅動程式會驅動超音波,同時接收測出的距離
我的問題是,上方控制馬達的迴圈在馬達轉完我所設定的步數之後會停下馬達,
但我無法控制下方超音波的驅動程式同時一起停止
請問該如何讓兩個迴圈同時停止呢?
麻煩幫個忙了,謝謝!
你好,
要讓超音波的驅動程式 在 馬達轉完設定的步數 後一起停止,
你可以考慮使用Local Variable,並在stop condition 加上"or" 邏輯。
步驟:
在馬達程式區塊stop conditon上
create indicator -> 在indicator上按右鍵 -> create -> Local Variable
並將Local Variable 圖示拖曳至超音波區即可
附件是我的想法。
請參考
NI AE Support Joe
12-11-2008 12:27 AM - 已編輯 12-11-2008 12:29 AM
工程師您好:
我將程式中兩個迴圈的stop利用local variable及or連接起來
但仍無法使馬達迴圈 與 超音波驅動迴圈 同時停止
請您再幫忙看一下了,謝謝!
下面是我更改後的程式,麻煩了
你好,
你程式中有個 "步進馬達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
抱歉忘記附上subVI,但我不太懂timeout與硬體之間的關係,是什麼意思?
麻煩您了。
在 12-11-2008 09:39 PM
Hi WPL,
我這裡試過Counter In/Out的迴圈,是可以由馬達控制迴圈來執行停止動作的.
除非有一個情形,若您的Counter In一直收不到訊號,將會在所設定的Time out(目前設定10sec)之後出現錯誤訊息而停止程式.
請問您遇到的是這個問題嗎?
另請教一下,您的超音波回來訊號,可以接收的到嗎?
您好:
是因為超音波需要10us寬的驅動方波,所以我直接寫了10的-5次方,這個部分我會再作修改,抱歉造成誤解。
另外,在超音波接收count in的部分應該是沒有問題, 可以持續的接收訊號,且沒有time out 10秒後出現錯誤的情況。
麻煩您了
在 12-14-2008 08:57 AM
不好意思,請問跑馬燈的功能在哪裡?
在 12-17-2008 03:30 AM