我正在编写一个LabVIEW VI来移动Zaber线性执行器,我想在移动时每隔几毫秒记录设备的位置。
我已安装Zaber's LabVIEW driver并使用其示例让我的执行器移动,但如何在这些移动过程中读取位置?
答案 0 :(得分:2)
在移动过程中,有三个选项用于跟踪我们其中一个设备的位置:从起点和终点插值,使用计时器轮询位置,或打开每250毫秒报告位置的设备模式。演示第二个和第三个选项的示例可以从our web site下载。
最简单的方法是根据动作开始和停止的位置插入位置。如果你的加速度相当高,那么这是第一次尝试。误差源是运动开始和结束时的加速和减速,以及串行通信的延迟。
下一个选项是使用计时器并每隔几毫秒查询一次设备的位置。优点是时机灵活。您可以将更新周期设置为您想要的任何内容。当然,串行通信限制了查询位置的速度。从理论上讲,你可以减少到大约12毫秒,但15毫秒会给你一点喘息的空间。
最后一个选项是打开每250 ms发送一次位置更新的设备模式。优点是时间稍微准确一些,因为您只在一个方向上有通信延迟。在最近的A系列设备中,您可以更改更新周期,但T系列设备始终使用250 ms。
答案 1 :(得分:1)
Zaber电机的一个问题是串行链路仅以9.6kbit / sec(大约每毫秒1个字节)运行。电机无法告诉您电机每隔几毫秒。
有两种解决方案:
建立一个简单的电机数学模型(包括加速度),并使用您可以获得的位置信息(每秒4个样本)来校准该模型。
添加自己的线性正交编码器传感器。
我选择(2)因为硬件设计没有修复。我使用了Posic的这些编码器:
http://www.posic.com/default_en.asp/2-0-119-12-6-1/4-0-120-14-2-1/
它们足够精确,可以实际看到发生的粘滞和反弹!