2012-04-03 105 views
3

我正在寫一個LabVIEW VI來移動一個Zaber線性驅動器,並且我想在移動時每隔幾毫秒記錄一次設備的位置。Zaber設備移動時的軌跡位置

我已經安裝了Zaber's LabVIEW driver並使用它的例子來讓我的執行器移動,但是我怎樣才能在這些移動過程中讀取位置?

+0

在設備回家之前是否可以這樣做?我的理解是,在設備歸位之前,位置數據是無效的。 – Derek 2013-03-04 15:11:49

+1

簡短的回答是,你可以在設備回家之前做這件事,你只需要測量相對位置而不是絕對位置。對於長時間的答案,[聯繫Zaber支持](http://www.zaber.com/contact/)。 – 2013-03-04 22:03:37

回答

2

在移動過程中,有三種方法可用於跟蹤我們的某個設備的位置:從起點和終點進行插值,使用定時器輪詢位置,或打開每250毫秒報告位置的設備模式。演示第二個和第三個選項的示例可以從our web site下載。

最簡單的方法是根據運動開始和停止的位置插入位置。如果你的加速度相當高,那麼這是第一次嘗試。錯誤的來源是運動開始和結束時的加速和減速,以及串行通信的延遲。

下一個選項是使用計時器並每隔幾毫秒查詢一次設備的位置。優點是時機靈活。您可以將更新週期設置爲任何你想要的。當然,串行通訊限制了您查詢位置的速度。理論上,你可以降到12毫秒左右,但15毫秒會給你一點喘息的空間。

enter image description here

最後一個選項是接通發送的位置更新每250毫秒的設備模式。優點是時序稍微更加準確,因爲您只有一個方向的通信延遲。在更新的A系列設備中,您可以更改更新週期,但T系列設備始終使用250 ms。與Zaber電機

enter image description here

1

的一個問題是串行鏈路只運行在9.6kbit /秒(這是每毫秒約1個字節)。電機不能每隔幾毫秒告訴你電機的位置。

解決辦法有兩個:

  1. 構建電機(包括加速度)的一個簡單的數學模型,並利用位置信息就可以得到(每秒4個樣本)來校準該模型。

  2. 添加您自己的線性正交編碼器傳感器。

我去(2)因爲硬件設計不固定。我使用Posic這些編碼:

http://www.posic.com/default_en.asp/2-0-119-12-6-1/4-0-120-14-2-1/

它們是精確到足以實際看到sticktion和反彈,因爲它發生!

+0

如果經常需要 位置,則添加線性編碼器是解決此問題的絕佳解決方案。許多較新的Zaber 器件都帶有一個旋轉編碼器,可以讓您將串行波特率更改爲115.2 kbit/sec以獲得更快的位置採樣,但仍不能像線性編碼器那樣跟蹤反向間隙和粘連。 – 2015-02-24 01:35:42

+0

我已經被告知Zaber電機的二進制協議現在已被棄用,以支持基於ASCII的協議。 – 2015-04-02 09:43:05