连续插补小线段前瞻功能在PLC上的应用
导语:当设备机构需要高精度、高速加工复杂曲面工件时,通常将该加工轨迹分散成一系列位置点并传递给。传统的轨迹规划方法需要在每个分散点上频繁启停以完成任务。这种方法不仅降低了精度,而且会对设备结构和电机造成一定的损坏。
导语:当设备机构需要高精度、高速加工复杂曲面工件时,通常将该加工轨迹分散成一系列位置点并传递给。传统的轨迹规划方法需要在每个分散点上频繁启停以完成任务。这种方法不仅降低了精度,而且会对设备结构和电机造成一定的损坏。
01、功能介绍
当设备机构需要高精度、高速加工复杂曲面工件时,通常将该加工轨迹分散成一系列位置点并传递给。传统的轨迹规划方法需要在每个分散点上频繁启停以完成任务。这种方法不仅降低了精度,而且会对设备结构和电机造成一定的损坏。为了提高加工精度,减少对设备机械结构的损伤,雷赛智能运用23年运动控制行业寸积铢累的经验,开发出了支持路径平滑和轨迹规划的小线段前瞻功能,该功能支持直线插补、圆弧插补、螺旋线插补、IO 控制等。
功能特点
1)实现了线段与曲线混合的连续路径,增强运动的平稳性。
2)支持8轴圆弧(3轴空间、5轴跟随)、直线插补,每段轨迹轮廓误差、轨迹段衔接速度可单独设置。
3)插补过程中支持等间距控制IO操作(时间或距离方式)。
4)每个坐标系的插补缓冲区最多可缓存5000段指令(IO/位置/延时),可在插补运动中写入新位置和速度指令(FIFO方式)。
5)支持前瞻和非前瞻混合插补。
02、使用场景
小线段前瞻技术在数控加工、涂胶和激光雕刻等复杂轨迹的加工场景中应用较为广泛,其高效性和平稳性,直接影响了能不能加工及加工质量高低等问题。随着社会的发展,更高精度和更多复杂形状工件的加工需求将会越来越多,因此,雷赛智能推出小线段速度前瞻插补算法库,满足雷赛LC、MC、SC系列运动控制PLC在这种高精高速加工场景的应用需求。
03、使用示例
某涂胶设备工艺需3轴连续直线插补,支持每段插补位置可设起跳速度、结束速度,根据每段插补位置控制电平信号输出(控制开关胶),要求1.6s内完成一个图形的涂胶,中间胶段均匀(无波浪形),拐角处不堆胶,精度在±0.75mm以内。
指令介绍
库名称:MCLA_CONTI_INPOL_ver46.compiled-library
插补指令表如下表所示:
实现逻辑
可以先不关闭缓冲区,压入list就可以直接启动,动态压入。
一般建议通过以下顺序来调节command_set_config_paras功能块参数(前瞻插补允许拐角轨迹误差TrojecityError、前瞻允许最大拐弯加速度MaxAcc)、command_set_speed_paras功能块参数(加速时间Acc_Time和减速时间Dec_Time),从而达到提高加工效率的目的:
1、按照加工工艺和精度要求,设置合理的前瞻插补允许拐角轨迹误差TrojecityError,根据工艺需求设定好拐角轨迹误差值后,再执行后续调节步骤。
2、接着进行前瞻允许最大拐弯加速度MaxAcc设置,一般遵循从小到大调节的原则(如从1000开始,每次按2倍或10倍递增),然后按照事先设定好的加减速时间(Acc_Time和Dec_Time)在设备上调试程序。此时注意观察不同最大拐弯加速度设置时,设备运行的震动情况(特别是在尖锐角拐弯处)。当大拐弯加速度MaxAcc增大到某值时设备震动较明显,表示设备能承受的加速度值已达到极限值,可适当把加速度回调一档,并最终确定改值。另外,若拐弯加速度MaxAcc设置很小时,设备也会出现震动,建议检查设置的加减速时间(Acc_Time和Dec_Time)是不是过小,过小的加减速时间容易导致急加速和急减速过程,也可能引发设备震动情况。此时,可先把加减速时间适当调大(如设置为 100~200ms之间),然后再重新调节最大拐弯加速度MaxAcc。
3、确认轮廓误差和前瞻加速度以后,可着手插补加速时间和减速时间的调节,从而实现进一步提高效率的目的。
使用步骤
1、新建全局变量表,定义一个输入输出变量(如图1),用于绑定PLC本体输入输出端口(如图2),以及在PLC的内存中开辟一个小线段前瞻功能数据缓冲区;
图1:定义输入输出变量
图2:绑定PLC本体IO
2、建立POU,实例化FB,并关联引脚变量,方便在主控程序中传参,本次主要使用的功能,如下图所示;
·调用command_MCLA_Init_Module功能块,在PLC中开设前瞻插补空间资源。同样,当程序结束对运动控制卡的操作时,必须调用command_Conti_Close功能块释放运动控制卡所占用的 PLC系统资源,使得所占资源可被设备使用。
·调用Command_Conti_Open_List功能块,打开并初始化插补缓冲区。当bDone=TRUE表示open list成功,该指令需要两个任务周期完成。
·调用Conti_Set_Cmp_Config功能块,设置连续插补中IO输出模式,包括比较源、输出电平逻辑、电平信号反转时间等参数。
·调用Conti_Set_Cmp_Enable功能块,使能连续插补中IO输出功能。
·调用command_set_config_paras功能块,设置连续插补前瞻参数。小线段前瞻支持圆弧过渡和非圆弧过渡两种方式,设置轨迹误差范围为零时没有圆弧过渡,不为零时默认有圆弧过渡,且普通连续插补没有圆弧过渡功能。前瞻允许最大拐弯加速度MaxAcc控制拐角过渡时的速度大小,一般加速度越大,拐角速度越大,加工效率越高。该加速度一般指机械系统允许的加速度,若设置过大,容易引起机械震动。
·调用Command_Conti_Get_List_RemainSpace功能块,查询连续插补缓冲区剩余插补空间,以满足压入所需插补点数据。
·调用command_set_speed_paras功能块,设置加速时间、减速时间、起始速度、目标插补速度、停止速度。
·调用command_Conti_Add_Io_Action功能块,配置每段连续插补位置的IO输出状态。
·调用command_Conti_Add_Line功能块,按数组方式压入每段插补位置点。
·调用command_Conti_Start功能块,开始连续插补。
·调用command_Conti_Close功能块,关闭连续插补缓冲区。
·调用get_list_state功能块,读取指定坐标系的插补器状态。0-运行,1-暂停,2-正常停止,3-未启动,4-空闲。调用open list插补器状态为3;调用 conti start后插补器状态为 0;运动完成且没有调conti colse插补器状态为 2;其他状态为4。
·调用Command_Conti_Pause功能块,用于插补暂停指令。
3、编辑控制部分运行,建议用case多分支选择语句进行控制。
Step1:初始化
Step2:开缓冲区
Step 3:前瞻插补参数配置
Step 4:设置速度
Step 5:设置每段插补中各轴位置,起跳速度、加减速、起始速度、结束速度
4、连续插补中相对与轨迹段起始点IO输出(段内执行)。
5、启动前瞻插补器,插补器坐标系号和
6、关闭连续插补缓冲区
04、轨迹效果
例:X、Y轴执行4段位置,使用前瞻和非前瞻插补实现一个边为5cm正方形的涂胶工艺。
1、未开启前瞻测试
使用第一组参数如下:加减速的加速度为162mm/s ,拐角速度为0mm/s。速度为16.2mm/s,未开启速度前瞻时的速度曲线如下图3所示。
图3
2、开启前瞻测试
使用第二组参数如下:加减速的加速度为100mm/s ,拐角速度为0mm/s。速度为16.2mm/s,开启速度前瞻时的速度曲线如下图4所示。
图4
通过比较两种模式下的曲线图,可以发现未开启速度前瞻时,每个线段的起点和终点速度都减速到0,插补时间约为3.5s。开启速度前瞻后,会对指令间轨迹变化的夹角进行提前识别,比较其与允许的拐角轨迹误差的大小关系,在拐角较大时减速为0,较小的拐角适当减速,速度不降为0,保证在位置指令连接处平稳过渡,插补时间约为1.5s。可见速度前瞻提高了运动的平稳性,提高了加工效率。
注意事项
1、command_set_config_paras功能块的Plan_Mode速度规划类型参数,在前瞻模式时仅支持对称梯形,非前瞻模式时支持梯形和S型。
2、前瞻模式下目标速度有效,设定的起始速度和结束速度无效,衔接点速度前瞻参数计算。非前瞻模式时以用户设定速度参数运行。
3、各项参数压入缓冲区后,应主动关闭缓冲区,插补器状态才能切换到空闲。4、执行大量短线段轨迹的场合,最好压入一定数量的位置指令再启动插补,比如100-200段。
— END —