ProCon说明 快速入门 运动控制 EtherCAT 实时程序 API函数 控件库 硬件说明 问题排查 示例代码 |
本节包含以下内容
轨迹平滑模式总体大类分为以下三类,多项式轮廓,HSC,样条,每类模式有最适合的应用场景。
在介绍每种平滑模式前,需要对以下概念有一个清楚的认知。
平滑模式 | 适用场景 | 优点 | 缺点 |
多项式轮廓 | 适用少量长块组成的简单轨迹轮廓 | 轮廓拐角处的速度更大 | 不适用短块 |
HSC-B和HSC-S | 适用多个短块组成的复杂轨迹轮廓 | 适用非常崎岖的轨迹轮廓 | 对硬件要求高 |
Akima-spline | 对指定的插补点进行插补 | 精确运行并通过编程控制点 | 通常需要更密集且精确计算的规范点 |
B-spline | 修剪轨迹轮廓 | 慢动作部分对编程要求不高 | 对硬件要求不是很高,但有一定的要求 |
HSC-PSC1和HSC-PSC2 | 刚性机器 | 硬件要求低 | 机器运行比较激进 |
以下参数是所有平滑模式都需要进行设置的参数
注意 | |
![]() |
|
参数 | 说明 |
速度 | 运动时需要达到的目标速度 |
加速度 | 运动时需要达到的目标加速度 |
变加速度 | 运动时,设定的变加速值,不需要在CNC中设置最大值 |
运动块过渡时加速度加权值 | 运动块需要过渡时即需要经过曲线段,所以运动块过渡时的加权值,一般都是用来限定拐弯时的加速度的,单位[0.1%],值范围设定在1~1000。值设定需要在CNC中设置 |
斜坡时间 | 单位[微秒],默认值20000 |
多项式轮廓模式更适合具有多个长块的程序。
多项式轮廓的计算过程是根据空间主轴的几何路径轮廓计算的。在给定条件(例如轮廓角偏差或百分比路径速度)基础上通过自身的几何算法会产生原始轮廓上的某个位置,从该位置可以更改轮廓或用轮廓曲线(多项式)替换轮廓。这意味着在原始路径曲线上,已知了规划的轮廓曲线的起点或目标点。
对于跟踪轴,与主轴一样,在前运动块和后运动块的拐角距离之间插入曲率和方向连续多项式,同时也会结合考虑轴加速度的最大值。然而,最初规定的角偏差仅指主轴在空间上的偏差,因此,如果需要,可以为跟踪轴的最大偏差指定附加极限值。理论上,跟踪轴超出此偏差会导致轮廓曲线减小(拐角距离减小)。
多项式轮廓模式总共包括六种模式选择。
通过设置轮廓角偏差,CNC会自动经过相应的几何算法,计算得出相应的拐角距离。 拐角角距离受到限制,具体取决于指定的最小剩余块长度。并且这两个距离都受到对称限制。在这种情况下,编程的路径速度对轮廓曲线没有影响。参考下图
函数 | 说明 |
YK_API YKM_GroupContourDevOn(UINT32 groupIndex, YKM_CrdContourDEVConfig config); |
开启轮廓角偏差平滑 |
YK_API YKM_GroupContourDevOff(UINT32 groupIndex); | 关闭轮廓角偏差平滑 |
注意 | |
![]() |
|
参数 | 类型 | 说明 |
action_time 辅助功能(M/H)执行位置 |
YKM_CNC_ActionType | Default(平滑轮廓中) |
check_jerk 变加速监控 |
YKM_CNC_CheckJerkType | Default(不监控) |
vel_const 轮廓过渡路径速度是否恒定 |
YKM_CNC_BOOLType | Default(否) |
path_dev_max 最大轮廓偏差 |
double | 单位为 [毫米],默认值0.05 影响其运动的精度,根据图纸的大小设置,长宽比较高的图纸,路径偏差就可以设置大一点,比如在高174mm,宽100mm图形中路径偏差就设置在了<=0.1mm。 又例如在高7mm,宽10mm的图形中中路径偏差就设置<=0.01mm。具体设置的大小根据图纸大小和形状来决定。设置的越小,拐角速度越慢,周期时间越长。 |
relevant_path_min 后续相关路径的最小长度 |
double | 单位为 [毫米],默认值0 影响轨迹的规划,从而影响整个运动轨迹的精度。规划时,如果图纸小线段的长度小于相关后块的路径的最小长度则在路径规划的时候,会自动忽略这个小线段。所以设置合理的路径最小长度很重要,对于小线段比较长的图纸,路径最小长度适合设置大一点,比如最小的线段已经有0.5mm,可以设置0.1mm。对于小线段比较短的图纸,相关后块的最小路径长度适合设置小一点,比如最小线段只有0.005mm,相关后块的最小路径长度可以设置为0.002mm。通常建议设置值小于图纸最小线段长度。 |
relevant_track_min 后续相关路径的最小角度 |
double | 单位为 [°],默认值0 |
track_dev_max 最大角度偏差 |
double | 单位为 [°],默认值0 影响轨迹的规划,从而影响整个运动轨迹的精度。对于小线段比较长的图纸,角度偏差适合设置大一点。一般设置在30~40;对于小线段比较短的图纸,角度偏差适合设置小一点。一般设置在1~10。 |
remain_part 优化后路径长度相对原路径长度比例 |
double | 单位为 [%],默认值0 值设置范围在0~100,值设置的越大,运动周期时间越长,对轨迹精度影响比较小。 |
angle_max 轮廓过渡生效最大夹角 |
double | 单位[°],默认值0,表示不过渡 两个线性块之间过渡的最大轮廓拐点角度,如果过渡处包含圆形块,则不会计算拐弯角度。 |
如果已知可以离开原始轮廓的点,则用户可以明确地指定要缩短相邻运动块的前块和后块的角距离。参考下图
如果角点距离 a 和 b 指定为相同,则如果一个角点距离限制为最小剩余块长度,则另一角点距离将受到对称限制。
如果将角点距离a和b指定为不同的,则在限制的情况下仅减少过长的距离。对于不对称的路径长度,这可能会导致"退化"轮廓,但这有时可能能达到理想的效果。
函数 | 说明 |
YK_API YKM_GroupContourDistOn(UINT32 groupIndex, YKM_CrdContourDISTConfig config); |
开启轮廓角距离平滑 |
YK_API YKM_GroupContourDistOff(UINT32 groupIndex); | 关闭轮廓角偏差平滑 |
注意 | |
![]() |
|
参数 | 类型 | 说明 |
action_time 辅助功能(M/H)执行位置 |
YKM_CNC_ActionType | Default(平滑轮廓中) |
check_jerk 变加速监控 |
YKM_CNC_CheckJerkType | Default(不监控) |
vel_const 轮廓过渡路径速度是否恒定 |
YKM_CNC_BOOLType | Default(否) |
pre_dist 过渡前段拐角距离 |
double | 单位为 [毫米],默认值0.05 即轮廓过渡时前块所设定的拐角距离,即上图a段。 具体设置的大小根据图纸大小和形状来决定。 设置的越小,拐角速度越慢,周期时间越长。 |
post_dist 过渡后段拐角距离 |
double | 单位为 [毫米],默认值0.05 即轮廓过渡时前块所设定的拐角距离,即上图a段。 具体设置的大小根据图纸大小和形状来决定。 设置的越小,拐角速度越,周期时间越长。 |
relevant_path_min 后续相关路径的最小长度 | double | 单位为 [毫米],默认值0 影响轨迹的规划,从而影响整个运动轨迹的精度。规划时,如果图纸小线段的长度小于相关后块的路径的最小长度则在路径规划的时候,会自动忽略这个小线段。所以设置合理的路径最小长度很重要,对于小线段比较长的图纸,路径最小长度适合设置大一点,比如最小的线段已经有0.5mm,可以设置0.1mm。对于小线段比较短的图纸,相关后块的最小路径长度适合设置小一点,比如最小线段只有0.005mm,相关后块的最小路径长度可以设置为0.002mm。通常建议设置值小于图纸最小线段长度。 |
relevant_track_min 后续相关路径的最小角度 |
double | 单位为 [°],默认值0 |
track_dev_max 最大角度偏差 |
double | 单位为 [°],默认值0 影响轨迹的规划,从而影响整个运动轨迹的精度。对于小线段比较长的图纸,角度偏差适合设置大一点。一般设置在30~40;对于小线段比较短的图纸,角度偏差适合设置小一点。一般设置在1~10。 |
remain_part 优化后路径长度相对原路径长度比例 |
double | 单位为 [%],默认值0 值设置范围在0~100,值设置的越大,运动周期时间越长,对轨迹精度影响比较小。 |
angle_max 轮廓过渡生效最大夹角 |
double | 单位[°],默认值0 两个线性块之间过渡的最大轮廓拐点角度,如果过渡处包含圆形块,则不会计算拐弯角度。 |
该模式用户不仅指定角距离,还指定两条多项式曲线彼此相邻的中间点P。这个P点是需要通过用户自己计算所得出。具体参数对应关系可以参考下图
函数 | 说明 |
YK_API YKM_GroupContourPosOn(UINT32 groupIndex, YKM_CrdContourPOSConfig config); |
开启插入点轮廓线平滑 |
YK_API YKM_GroupContourPosOff(UINT32 groupIndex); | 关闭插入点轮廓线平滑 |
参数 | 类型 | 说明 |
action_time 辅助功能(M/H)执行位置 |
YKM_CNC_ActionType | Default(平滑轮廓中) |
check_jerk 变加速监控 |
YKM_CNC_CheckJerkType | Default(不监控) |
vel_const 轮廓过渡路径速度是否恒定 |
YKM_CNC_BOOLType | Default(否) |
pre_dist 过渡前段拐角距离 |
double | 单位为 [毫米],默认值0.05 即轮廓过渡时前块所设定的拐角距离,即上图a段。 具体设置的大小根据图纸大小和形状来决定。 设置的越小,拐角速度越慢,周期时间越长。 |
post_dist 过渡后段拐角距离 |
double | 单位为 [毫米],默认值0 即轮廓过渡时前块所设定的拐角距离,即上图a段。 具体设置的大小根据图纸大小和形状来决定。 设置的越小,拐角速度越,周期时间越长。 |
pos_position[3] POS模式插入点坐标,三维[posX,posY,posZ] |
double | 单位为 [毫米],默认值0,必须指定三维位置 |
通过两个运动块之间的方向变化和曲率连续连接去定义具有轮廓角偏差和中间点轮廓的轮廓轨迹距离,即运动块方向在变化,曲率在变化,则轮廓角偏差和中间点也在相应的动态改变
函数 | 说明 |
YK_API YKM_GroupContourDistSoftOn(UINT32 groupIndex, YKM_CrdContourDISTSOFTConfig config); |
开启动态轮廓优化平滑 |
YK_API YKM_GroupContourDistSoftOff(UINT32 groupIndex); | 关闭动态轮廓优化平滑 |
参数 | 类型 | 说明 |
path_dist 最大允许路径偏移角距离(对称) |
double | 单位为 [毫米],默认值0.05 前块和后块(对称)的拐角距离 设置的越小,拐角速度越慢,周期时间越长。 |
track_dist 路径偏离最大角度 |
double | 单位为[°],默认值0 默认值:如果未明确指定该值(自程序启动后),则自动从前块后块拐角距离中获取该值。 |
acc_max 最大加速度 轴最大加速度百分比 |
double | 单位为 [%],取值范围[0%-100%],默认值0 轮廓曲线可以使用的最大轴加速度(CNC中设定的轴加速度)的百分比([0%-100%])。 |
acc_min 最小加速度 轴最大加速度百分比 |
double | 单位为 [%],默认50%,取值范围[0%-100%],默认值0 轮廓曲线当前应该使用的最大轴加速度(机器数据)的百分比([0%-100%])。如果未保持指定的前后块拐角距离,则加速度将增加到最大轴加速度(acc_max)。 |
ramp_time 变加速斜坡时间 |
double | 单位为 [%],取值范围[0%-10000%],默认值0 |
dist_weight 线性块分割百分比 |
double | 单位为 [%],取值范围[0%-100%],默认值0 |
即对主轴使用动态优化轮廓,这么模式更有利于速度的分布,主要是对主轴进行动态优化轮廓加工
函数 | 说明 |
YK_API YKM_GroupContourDistMasterOn(UINT32 groupIndex, YKM_CrdContourDISTMASTERConfig config); |
开启给主轴动态轮廓优化平滑 |
YK_API YKM_GroupContourDistMasterOff(UINT32 groupIndex); |
关闭给主轴动态轮廓优化平滑 |
参数设置与动态轮廓优化是相同的,参数说明可以参考动态轮廓优化
该模式适用于圆角轮廓中进给率不需要恒定的处理任务,与动态优化轮廓 (DIST_SOFT) 不同,此模式涉及整个轮廓。
函数 | 说明 |
YK_API YKM_GroupContourPtpOn(UINT32 groupIndex, YKM_CrdContourPTPConfig config); |
开启完整轮廓动态优化平滑 |
YK_API YKM_GroupContourPtpOff(UINT32 groupIndex); |
关闭完整轮廓动态优化平滑 |
参数 | 类型 | 说明 |
merge 是否合并块 |
YKM_CNC_BOOLType | Default(否) |
action_time 辅助功能(M/H)执行位置 |
YKM_CNC_ActionType | Default(平滑轮廓中) |
path_dev_max 最大轮廓偏差 |
double | 单位为[毫米],默认值0.05 与编程轮廓的最大拐角偏差。 |
path_dist 最大允许路径偏移角距离(对称) |
double | 单位为[毫米],默认值0 前块和后块(对称)的拐角距离(对称)。 |
注意 | |
![]() |
|
HSC(Hyper space computing)更适合具有多个短块的程序。是先进的平滑⼯具,是尽量⼩的速度,加速度波动以及尽量快的轨迹速度以提⾼类似点胶,激光切割等应⽤的⼯作效率和产品质量。
根据加工任务,HSC总共包括四种模式选择。
HSC-B(Hyper space computing-Bspline)该模式下借助了B样条。该模式适合围绕轮廓进行单次移动(修剪),在这种情况下,轮廓由许多短块组成,这些短块将以高进给率移动。
函数 | 说明 |
YK_API YKM_GroupBHscOn(UINT32 groupIndex, YKM_CrdBHscConfig config); |
开启HSC-B平滑 |
YK_API YKM_GroupBHscOff(UINT32 groupIndex); |
关闭HSC-B平滑 |
注意 | |
![]() |
|
参数 | 类型 | 说明 |
path_dev_max B样条曲线与编程路径轮廓的最大偏差 |
double | double类型 ,单位为 [毫米],默认值0.05 如果超过此偏差,将自动取消选择样条曲线。如果最大偏差定义为0,则不监控路径偏差。 设置的越小,拐角速度越慢,周期时间越长。 |
track_dev_max 最大角度偏差 |
double | double类型,单位为[°],默认值0 如果最大偏差定义为 0,则不PATH_DEV 监控跟踪轴。 |
merge 合并块 |
YKM_CNC_BOOLType | 无块合并(Default) 最大偏差取决于从path_dev_max 和 track_dev_max 获取的值。 |
auto_off_path 自动关闭路径 |
YKM_CNC_BOOLType | 不开启(Default) 角度偏差超过path_dev_max,是否自动取消B样条平滑 |
auto_off_track 自动关闭轨道 |
YKM_CNC_BOOLType | 不开启(Default) 角度偏差超过track_dev_max,是否自动取消B样条平滑 |
auto_off_rapid 自动关闭G00 |
YKM_CNC_BOOLType | 不开启(Default) 遇到快速移动(G00)指令,是否自动取消B样条平滑 |
auto_off_exactStop 自动关闭G60 |
YKM_CNC_BOOLType | 不开启 G60(Default) 自动取消选择用于编程精确停止 G60 或 G360 的 B 样条插补。 |
path_len_max B样条平滑生效的最大路径长度 |
double | 单位为 [毫米],默认值0 如果块长于指定长度,则隐式取消选择 B 样条曲线。 |
auto_off_exactStop 自动关闭G60 |
YKM_CNC_BOOLType | 不开启 G60(Default) 自动取消选择用于编程精确停止 G60 或 G360 的 B 样条插补。 |
path_len_max B样条平滑生效的最大路径长度 |
double | 单位为 [毫米],默认值0 如果块长于指定长度,则隐式取消选择 B 样条曲线。 |
angle_max 最大角度 |
double | 单位为 [°] ,默认值0 |
HSC-S(Hyper space computing-Surface)特别适合加工自由曲面。对于 CAD 系统生成的 NC 程序,工件通常在多个路径(逐行或螺旋)中加工。使用特殊算法(表面优化器)在尽可能短的加工时间内实现高表面质量。
函数 | 说明 |
YK_API YKM_GroupSHscOn(UINT32 groupIndex, YKM_CrdSHscConfig config); |
开启HSC-S平滑 |
YK_API YKM_GroupSHscOff(UINT32 groupIndex); |
关闭HSC-S平滑 |
注意 | |
![]() |
|
参数 | 类型 | 说明 |
path_dev_max 最大路径偏差 |
double | 单位为 [毫米],默认值0.05mm 设置的越小,拐角速度越慢,周期时间越长。 对HSC-S影响比较大。 |
track_dev_max 最大角度偏差 |
double | double类型,单位为[°],默认值0 如果最大偏差定义为 0,则不PATH_DEV 监控跟踪轴。 |
merge 合并块 |
YKM_CNC_BOOLType | 无块合并(Default) 最大偏差取决于从path_dev_max 和 track_dev_max 获取的值。 |
cir_mode 圆周运动轮廓 |
YKM_HSC_CirMode | 圆弧轮廓平滑(Default) |
check_jerk 变加速监控 |
YKM_CNC_ActionType | 不监控(Default) |
auto_off_rapid 自动关闭G00 |
YKM_CNC_BOOLType | 不开启(Default) 遇到快速移动(G00)指令,是否自动取消平滑。 |
cir_min_radius 最小半径 |
double |
小于指定半径或小于path_dev_max,则使用样条曲线近似处理, 默认值0。 |
cir_min_angle 最小圆角 |
double | 小于指定角度,则使用样条曲线近似处理,默认值0。 |
cir_long_length 长圆的最小长度 |
double | cir_mode=2时,长圆的最小长度,默认值0。 |
path_dev_rapid 快速移动最大路径误差 |
double | 默认值0。 |
track_dev_rapid 快速移动最大角度误差 |
double | 快速移动最大角度误差,默认值0。 |
angle_max 平滑生效最大角度 |
double |
单位为 [°] ,默认值0 |
插入过渡多项式,块在运动块过渡处被缩短并插入转换多项式。
函数 | 说明 |
YK_API YKM_GroupPcs1HscOn(UINT32 groupIndex, YKM_CrdPCS1HscConfig config); |
开启HSC_PCS1平滑 |
YK_API YKM_GroupPcs1HscOff(UINT32 groupIndex); |
关闭HSC_PCS1平滑 |
注意 | |
![]() |
|
生成多项式过渡需要最大轮廓误差 CONTERROR ("ε")。插入的多项式减少了实际轮廓误差(即εreal < εprog)。
参数 | 类型 | 说明 |
contour_error_Max 最大轮廓误差 |
double |
单位为 [毫米],默认值0.05。 具体设置的大小根据图纸大小和形状来决定。设置的越小,拐角速度越慢,周期时间越长。 |
注意 | |
![]() |
|
生成 HSC 编程的样条曲线,在过渡处插入HSC编程的样条曲线
样条曲线由指定的边缘点生成。在棱柱形零件开始时,会自动取消选择样条曲线生成并执行切向过渡。
棱镜范围内的块转换是根据附加参数检测到的,如使用 OP1 和 OP2一起编程,会自动更改为OP1,即插入转换多项式。对于插入的样条曲线,不会监控顶点之间的轮廓偏差。
函数 | 说明 |
YK_API YKM_GroupPcs2HscOn(UINT32 groupIndex, YKM_CrdPCS2HscConfig config); |
开启HSC_PCS2平滑 |
YK_API YKM_GroupPcs2HscOff(UINT32 groupIndex); | 关闭HSC_PCS2平滑 |
参数 | 类型 | 说明 |
contour_error_Max 最大轮廓误差 |
double |
单位为 [毫米],默认值0.05 具体设置的大小根据图纸大小和形状来决定。设置的越小,拐角速度越慢,周期时间越长。 |
注意 | |
![]() |
|
样条在这里主要分为Akima和B-spline,样条更适合小线段比较多的轨迹以及曲线段比较多的轨迹
多项式轮廓模式总共包括四种模式选择。
目标点是拟合 Akima 样条曲线的顶点。
函数 | 说明 |
YK_API YKM_GroupASplineOn(UINT32 groupIndex, YKM_CrdASplineConfig config); | 开启Akima-spline模式 |
YK_API YKM_GroupASplineOff(UINT32 groupIndex); | 关闭Akima-spline模式 |
参数 | 类型 | 说明 |
start_trans_type 起始过渡切向 |
YKM_CNC_ASplineTransTYPE | 样条曲线和相邻(线性或圆形)运动块之间的切向过渡类型。 Default(自动计算过渡处样条曲线的正切) |
end_trans_type 终止过渡切向 |
YKM_CNC_ASplineTransTYPE | 样条曲线和相邻(线性或圆形)运动块之间的切向过渡类型。 Default(自动计算过渡处样条曲线的正切) |
start_Vector 用户指定起始切向 |
double | 过渡处样条曲线的切线由用户明确指定。 |
end_Vector 用户指定起始切向 |
double | 过渡处样条曲线的切线由用户明确指定。 |
编程的线性程序段的目标点是用于生成 B 样条曲线的控制点。且必须保证B样条曲线只在起点和终点穿过控制点。
函数 | 说明 |
YK_API YKM_GroupBSplineOn(UINT32 groupIndex); | 开启B-spline模式 |
YK_API YKM_GroupBSplineOff(UINT32 groupIndex); | 关闭B-spline模式 |
斜率函数确定编程路径上的速度并保持指定的允许速度、加速度和加加速度。可以使用以下模式:
注意 | |
![]() |
|
加速度曲线的生成取决于所选的斜率函数:
阶梯形加速度曲线:
梯形加速度曲线:
正弦平方加速度曲线:
注意 | |
![]() |
|
参数 | 说明 |
YKM_CNC_SlopeType 斜率函数类型 |
|
注意 | |
![]() |
|
Copyright © 2015 深圳市优易控软件有限公司 www.proutech.com |