西门子SMART V2.7的运动控制插补路径规划
路径规划功能概述:
S7-200SMART V2.7版本的轴组功能,虽然通过MoveLinear指令,实现了多轴的直线插补。
但如果遇到较为复杂的运动(如连续执行路径生成图案),需要大量的程序赋值和逻辑编写,上手难度大且程序冗长易出错。
下图中为真实的案例程序,可以看到程序中编写了大量的子程序和复杂逻辑才可以实现。
基于这些问题,V2.7版本开发了MovePath指令,也就是路径规划功能,这个功能大大方便了使用者,将需要连续执行的位置以表格的形式在向导中组态,调用一个子例程即可完成。
作为对比,可以看到应用路径规划后,只用了很小的程序量便实现了相同的功能。
路径规划功能组态:
在勾选使用轴组的情况下,运动控制向导的导航下方会出现路径规划的选项卡,路径规划界面下可以创建不同的路径,每个路径都有唯一的ID对应以用来编程使用区分。
创建路径后可以在对应的路径下创建路径的线段,多可以创建128条线段(所有路径中的线段数),每条线段也有对应的ID来区别。
在执行时路径指令时按照ID依次执行,每条指令都可以单独配置执行动作的复合速度,X/Y/Z的目标位置,加减速时间和急停时间。
需要注意配置的是,系统会自动判断配置参数是否合理,如速度为0或超过大速度,加减速时间为0,连续执行的两条线段位置完全相同等无法执行指令的情况,组态会提醒报错,同时该配置表格支持从EXCEL表格中直接复制导入。
除了每个路径配置的条线段外,其他的线段都可以配置触发的上升沿条件,在执行完上一条线段后等待条件导通。
路径规划指令:
组态完成后会生成GRP0_MOVEPATH指令,以下说明为其引脚定义
EN:
启用子例程,一般使用SM0.0。
START:执行移动路径命令,一般使用沿触发。
Path_ID:指定路径ID。ID输入编号必须在0到127之间。否则子例程会返回错误。
Done:命令执行已成功完成时,参数启用。
Busy:功能块触发但尚未完成时,参数启用。
Active:函数块输出脉冲时,参数启动。
Error:反馈指令执行时发生某些错误,详细说明见错误代码表格。
Err_Segment:执行错误的线段的ID。
Cur_Segment:当前执行的线段的ID。
散点图验证路径
可以利用EXCEL中插入散点图的功能,在坐标点位导入之前确定要执行的动作是否正确。
确定后通过简单的复制功能将表格配置到组态向导中,具体的操作完整过程请参考小程序中应用实例的视频演示。
运动轴组功能概述:
S7-200SMART从V2.7版本开始提供开环的,基于脉冲控制的2轴/3轴直线运动插补功能。该功能支持打断和缓冲两种模式,暂不支持混合/过度模式。
3轴的运动坐标系支持笛卡尔运动控制模型,同时轴组不支持间隙补偿,用户需通过调整轴组运动参数,以降低因轴反向运动导致的误差。
组态运动轴组:
STEP-7 Micro/WIN SMART V2.7软件将轴组的配置界面融合到了运动控制向导中,位于轴配置界面之后。
在配置轴组之前,需先启用对应单轴,单轴的配置组态与之前的版本操作完全相同,在默认配置下,勾选要组态的轴后即可选择开启轴组功能,当前版本只支持一个轴组。
轴组指令:
在未启用轴组路径规划功能前,配置好的轴组可生成3个指令:GRP0_3D_MOVELINEAR,GRP0_2D_MOVELINEAR以及GRP0_RESET。
生成2D或3D指令,取决于组态配置的选择且只能选择生成一个,除了3D指令比2D的多出了一个Z轴位置的输入引脚外,其他引脚定义均一致,以3轴插补指令为例:
EN:启用子例程,一般使用SM0.0。
START:执行插补命令,一般使用沿触发。
Segment_ID:每个函数块指定的唯一参数,表示规划路径中的相应线段。
Pos_X&Pos_Y&Pos_Z:为该函数块设置的目标X/Y/Z位置参数。根据所选的测量单位,该值是脉冲数/每秒(DINT)或工程单位数/每秒(REAL)。
Speed:指定运动的大复合速度。
Mode:指定运动模式,0表示模式,1表示相对模式。
Acc_Time:指定运动的加速时间(ms)。
Decel_Time:指定运动的减速时间(ms)。
Jerk_Time:指定运动的加加速/减减速时间(ms)。
BufferMode:运动衔接方式,0表示打断模式,1表示缓冲模式。
Done:命令执行已成功完成时,参数启用。
Busy:功能块触发但尚未完成时,参数启用。
Active:函数块输出脉冲时,参数启动。
Error:反馈指令执行时发生某些错误,详细说明见错误代码表格。
EN:启用子例程,一般使用SM0.0。
START:执行轴组复位命令,一般使用沿触发。
Done:命令执行已成功完成时,参数启用。
Busy:功能块触发但尚未完成时,参数启用。
Error:反馈指令执行时发生某些错误,详细说明见错误代码表格。
错误代码:
CPU在直线插补运动期间,检测到已触发的运动轴组中存在参数错误时,相应的错误代码会出现在错误参数中,详细说明如下表:
停止轴组:
可通过以下两种方法停止正在运行的轴组:
如果为轴组中的任一轴组态了LMT+/LMT-/STP输入信号,当信号到达时,根据组态,正在运行的轴组将立即停止,或沿规划的运动路径减速至停止。
可以禁用AXISx_CTRL指令中的MOD_EN参数,打断正在执行的轴组运动指令。
注意事项:
1. 轴组没有初始化指令,使用轴组之前必须使用AXIS_CTRL指令初始化每个轴后才能使用,同样的,轴组也没有回零指令,如果想寻找参考点也需要单轴分别执行AXIS_RESSK指令。
2. 轴组由轴组成,在S7-200 SMART产品中,轴组和轴的关系是静态的,不支持动态配置。轴组和轴的从属关系在运动控制向导配置好之后就已经确定,如果需要往轴组新增或者删除轴,那么只能通过运动控制向导进行增减。同时,在当前版本中,轴组的X轴只能分配给轴0,轴组的Y轴只能分配给轴1,轴组的Z轴(如果使用)只能分配给轴2。
3. 轴组的直线运动指令和单轴运动指令之间无法互相打断。当运行单轴运动指令时,如果尝试执行轴组直线指令,轴组指令出错。相反,当运行轴组直线指令时,如果尝试执行单轴运动指令,单轴指令出错。只有当轴组指令执行完成之后,才能运行单轴指令。同样,只有当单轴指令执行完成之后,才能运行轴组指令。
4. 轴组中的所有轴必须具有相同的单位,如”mm”“弧度”等,否则在初始界面无法选择轴组,或者在生成轴组后修改单位丢失全部配置。
5. 轴组中的所有轴不能使用单相(一个输出)模式,会导致已组态的轴组配置丢失。