当前位置:首页 >> 技术频道 >> 电路设计

利用RTSI总线实现运动控制和数据采集的同步

来源:国外电子元器件 作者:张靓 张翠芳 发布时间:2009-06-25 11:52:54 发表评论

摘要:许多测试系统要求在连续运动的同时能实时进行数据采集。如果测试过程不连续,或者测试位置在前而采集在后,二者之间不能同步,将不可避免地产生误差

关键词:运动控制数据采集

  (1)连接中断信号和RTSI总线信号函数

  flex_select_signal(boardID,destination,source),其中boardlD为MAX分配的数据采集卡的ID号;destination目的信号,为RTSI某引脚,如NIMC_RT-SI[0..7];source源信号,为某一中断信号的名称,如NIMC_BREAKPOINT[1..4]。

  (2)设置运动参数和中断信号模式函数

  设置运动速度函数flex_load_velocity(boardlD,axisOrVectorSpace,velocity,inputVector),其中ax-isOrVectorSpace为选择轴编号或空间坐标;in-putVector参数对脱离主机运行的程序有用,一般设成OXFF。

  设置加速度/减速度函数flex_load_acceleration(boardID,axisOrVectorSpace,accelerationType,accel-eration,inputVector),其中accelerationType为选择加载的方式,即加速度、减速度还是同时加载。

  设置S-Curve时间函数flex_load_velocity(boar-dID,axisOrVectorSpace,sCurveTime,inputVector),其中sCurveTime为从0加速到恒定速度或从恒定速度减速到0时的时间,单位为采样时间的整数倍。范围为l~32 767。

  设置运动模式函数flex_set_op_mode(boardID,axisOrVectorSpace,operationMode)。

  设置运动的目标位置flex_load_target_pos(boardID,axis,targetPosition,inputVector)。

  设置产生中断的方式函数flex_config-ure_breakpoint(boardID,axisOrEncoder,enableMode,actionOnBreakpoint,operation),其中actionOnBreak-point为中断时电平的高低,operation为选择单点中断方式或缓冲中断方式,由运动控制卡的信号决定。

  (3)设置中断信号产生位置和打开中断函数

  设置中断信号产生位置函数flix_load_pos_bp(boardID,axisOrEncoder,breakpointPosition.inputVector),其中breakpointPosition为中断位置(即采样点)的起始位置,下一次产生中断的位置为上一次产生中断的位置加上采样间距。打开中断函数flex_enable_breakpoint()。

  (4)启动电机运动函数

  启动电机运动函数flex_start(boardID,ax-isOrVectorSpace,axisOrVSMap),其中axisOrVSMap为可选择单轴运动或多轴同时运动。

  (5)检查各种状态函数

  检查运动状态,读取运动是否结束函数flex_check_move_complete_status()。检测中断状态函数flex_read_axis_status_rtn0()。从通信状态寄存器中读取通信状态函数flex_read_csr_rtn()。

  5 结束语

  利用RTSI可为各种测控系统应用提供基于硬件的高速同步能力,本文讨论的这种基于RTSI的运动控制和数据采集之间的同步方法采用Lab-Windows/CVI编程实现,可应用到在运动过程中实时采集数据的测控系统中,能获得很好的测量精度。

0
顶一下
0
踩一下

相关文章

发表评论

请自觉遵守互联网相关政策法规,作者管理后台可以删除恶意评论、广告和违禁词语。