运动控制中如何实现路径轨迹预测

少年山神的悠闲生活 2025-01-06 阅读:3416 评论:0

在运动控制中,轨迹执行时间的预测对于多轴的协同、路径预处理等方面有着重要的作用。CODESYS系列控制器提供了预测轨迹执行时间功能块。要实现完整的预测功能,需要使用到以下的功能块。

SMC_SetForecast

这个功能块专门用于为指定轴设定预测,其预测时长被限定在最多512个任务周期。通过这种预测设置,用户能够预先获取轴在未来特定时间点的状态信息,包括:

持续时间预测:利用SMC_GetTravelTime功能,可以计算出轴到达某一特定位置所需的时间。

动态信息获取:通过SMC_ReadSetValues,能够在特定时间点获取轴的动态信息。

预测时长查询:使用SMC_GetForecast可以读取当前的预测时长。

范围 名称 数据类型 说明
输入/输出 Axis AXIS_REF_SM3 指定要操作的轴
输入 Execute BOOL 上升沿:设置预测持续时间
ForecastDuration LREAL 轨迹预测的持续时间(以秒为单位)
输出 Done BOOL TRUE:预测已成功设置
Error BOOL TRUE: 在执行过程中发生了错误
ErrorID SMC_ERROR 错误ID

SMC_GetForecast

该功能块返回给定轴的预测时间,是由SMC_SetForecast 功能块设置的。

范围 名称 数据类型 说明
输入/输出 Axis AXIS_REF_SM3 指定要操作的轴
输入 Enable BOOL TRUE: 预测是持续读取的
输出 Valid BOOL TRUE: 预测已成功读取
Busy BOOL TRUE: 正在执行中
Error BOOL TRUE: 正在运行中
ErrorID SMC_ERROR 执行过程中出现了错误
ForecastDuration LREAL 预测持续时间以秒为单位

SMC_GetTravelTime

此功能块能够预测轴到达指定位置所需的时间。

要获取有效的时间预测,需要先通过SMC_SetForecast设置预测持续时间,确保轴在预测时间内能到达指定位置。如果轴没有移动,即使它正好在指定位置,Valid也会显示为FALSE。

范围 名称 数据类型 说明
输入/输出 Axis AXIS_REF_SM3 指定要操作的轴
输入 Enable BOOL 使能功能块
Position LREAL 指定轴的位置
Direction SMC_CAMTAPPETTYPE 功能块对轴的移动方向是有要求的,它只关注轴按照预设方向到达位置的情况
输出 Valid BOOL 输出的持续时间是否有效
Duration LREAL 以秒为单位的从当前控制周期开始到达特定位置的预计时间,具有亚周期精度。

预计时间为0秒表示轴已在上一个周期到达位置,而等于任务间隔的预计时间则意味着轴将在当前周期内到达位置。

Error BOOL 是否发生了错误
ErrorId SMC_ERROR 错误ID

SMC_ReadSetValues

该功能块用于读取轴的设定位置、速度、加速度和加加速度。允许设置一个正的时间偏移量(TimeOffset),以读取未来的设定值。当时间偏移量(TimeOffset)= 0时,将读取当前周期开始时的设定值。

范围 名称 数据类型 说明
输入/输出 Axis AXIS_REF_SM3 指定要操作的轴
输入 Enable BOOL 使能功能块
TimeOffset LREAL 时间偏移量,必须位于0和使用SMC_SetForecast设置的预测时长(ForecastDuration)之间。

如果时间偏移量超出此范围,将报告错误SMC_INVALID_PARAMETER。

输出 Valid BOOL TRUE: 输出有效标志
Busy BOOL TRUE: 正在执行中
Error BOOL TRUE: 发生错误
ErrorID SMC_ERROR 错误ID
Position LREAL 位置信息
Velocity LREAL 速度信息
Acceleration LREAL 加速度信息
Jerk LREAL 加加速度信息

程序示例

CASE state OF
STATE_POWER_DRIVE:    //轴使能
  mcp.Enable := TRUE;
  mcp.bDriveStart := TRUE;
  mcp.bRegulatorOn := TRUE;


  IF mcp.Status THEN
    state := STATE_SET_FORECAST;
  ELSIF mcp.Error THEN
    error := mcp.ErrorID;
    state := state + STATE_ERROR;  
  END_IF


STATE_SET_FORECAST:    //设置轨迹预测时长
  setForecast.Execute := TRUE;
  setForecast.ForecastDuration := 0.3;  //0.3S


  getForecast.Enable := TRUE;


  IF setForecast.Done THEN
    state := STATE_MOVE_TO_POSITION;
  ELSIF setForecast.Error THEN
    error := setForecast.ErrorID;
    state := state + STATE_ERROR;  
  END_IF


STATE_MOVE_TO_POSITION:    //MC_MoveAbsolute
  ma.Execute := TRUE;
  ma.Position := 10;
  ma.Velocity := 20;
  ma.Acceleration := 200;
  ma.Deceleration := 200;
  ma.Jerk := 1000;


  timeToPosition.Enable := TRUE;
  timeToPosition.Position := 8;  //预测到达8时,所用的时间


  IF ma.Error THEN
    error := ma.ErrorID;
    state := state + STATE_ERROR;  
  END_IF
END_CASE


setForecast(Axis:= Drive);
getForecast(Axis:= Drive);


mcp(Axis:= Drive);
ma(Axis:= Drive);


timeToPosition(Axis:= Drive);
readSetValues(
  Axis:= Drive, 
  Enable:= timeToPosition.Valid, 
TimeOffset:=timeToPosition.Duration);

可通过采集到的波形图观察对于轨迹预测的效果。

运动控制中如何实现路径轨迹预测

热门文章
  • 防风防寒!北京今天晴朗伴大风寒意十足 周末将迎小幅升温

    防风防寒!北京今天晴朗伴大风寒意十足 周末将迎小幅升温
      中国天气网讯 今天(12月27日),北京天气晴间多云,最高气温2℃,白天北风劲吹,阵风可达六至七级,风寒效应明显。本周末,北京仍以晴为主,风力不大,气温将有小幅上升。   昨天,北京晴冷在线,气温继续下跌,南郊观象台最高气温仅有2.6℃,加上风力较大,体感十分寒冷。   北京市气象台预计,今天白天晴间多云,北风三四级(阵风六七级),最高气温2℃;夜间晴间多云,北风二三级间四级,最低气温零下7℃。   明后两天,北京仍以晴为主,风力不大,最高气温将略升至5℃,最低气温...
  • 在中超联赛赛场北京成都球迷高呼:北京加油,成都雄起

    在中超联赛赛场北京成都球迷高呼:北京加油,成都雄起
      9月14日晚,中超联赛成都蓉城对北京国安的比赛在成都凤凰山体育场举行。首都文明办工作人员到现场力促两地球迷的友好互动,引导球迷文明观赛。   开赛前,两地球迷早早来到赛场,成都球迷在赛场通道为等待入场的北京球迷拉歌拍照。一边是北京球迷激昂的歌声,一边是身穿“雄起”“成都”等字样球衣的成都球迷,画面和谐温馨。首都文明办给两地球迷代表赠送了“向北京榜样学习”宣传品,呼吁两地球迷在场上是对手,在场下是朋友。合影留念时,成都球迷高喊“北京加油”,北京球迷高喊“成都雄起”。...
  • 新手如何开始跑步?

    新手如何开始跑步?
    大家好,我是小贝~ 有喜欢我的分享的可以给我点个关哟~多多互动吧~🫰 跑步是最简单的运动之一。人类进化30万年,跑步是基因自带的能力。可以说天生人人都会跑,人人都可以跑。 所以,很多平时不跑步的人,想入门跑步,建议从以下4个方面开始 一、跑步一定要穿跑鞋! 10年前我跑步穿平时的休闲鞋跑了2周,跟腱受伤!因为休闲鞋没有缓震效果;对膝盖和跟腱的损害较大。 专业跑鞋鞋底有缓震设计,能减少跑步时对膝盖和脚踝的冲击力。保护膝盖和脚踝不容易受伤。 二、注意跑步频率和强度。 1、频率...
  • 西南地区持续阴雨天气 华北黄淮等地大气扩散条件逐步转差

    西南地区持续阴雨天气 华北黄淮等地大气扩散条件逐步转差
      摘要:   国内方面,昨日,全国降水整体较弱;内蒙古、东北地区等地出现大风降温天气。未来三天,青藏高原及云南、四川、贵州等地多阴雨天气,关注局地强降雨或持续降雨可能引发的次生灾害。   全球方面,昨日,欧洲东部美国东南部等地出现强降雨。未来三天,飓风“米尔顿”继续影响美国东南部等地;强冷空气影响中亚等地;欧洲大部大范围降水降温。   一、国内天气情况   1.实况   全国降水整体较弱 内蒙古东北地区等地出现大风降温天气   昨日8时至今日6时,全国降水整体较...
  • 大雾黄色预警:京津冀等8省市部分地区有大雾 局地强浓雾

    大雾黄色预警:京津冀等8省市部分地区有大雾 局地强浓雾
      据报道10月14日电据中央气象台网站消息,预计10月14日早晨至上午,河北中南部、北京、天津西部、山东西部、山西中东部、陕西北部、河南东北部和南部部分地区、湖北中部等地有大雾天气,其中,河北中南部、北京西部、山西中部、陕西北部、湖北中部等地的部分地区有能见度低于500米的浓雾,局地有不足200米的强浓雾。中央气象台14日6时继续发布大雾黄色预警。   此外,14日,华北中南部、黄淮中西部、汾渭平原等地大气扩散条件较差,有轻至中度霾,其中,北京南部、河北西部沿山部分地区有...
标签列表