资源描述
洛阳兰飞自动化技术有限公司 运动轨迹插补控制应用说明
运动轨迹插补控制应用说明
对于YF0H系列,使用函数库CNC_0H.yf可完成两轴点到点定位运动控制和运动轨迹插补控制等计算机数控功能。共有直线、圆弧、抛物线三种轨迹插补功能。
使用该函数库前,请仔细研究《YF系列编程手册》。
该函数库占用了YF0H的Y0~Y3、C10~C23和DM1960~DM1979,这些元件用户不要使用。这些元件的作用和功能如下:
Y0:Y0轴的脉冲输出。
Y2:Y0轴的方向输出,OFF为正向运动,ON为负向运动。
Y1:Y1轴的脉冲输出。
Y3:Y1轴的方向输出,OFF为正向运动,ON为负向运动。
RC10~RC16:Y0的脉冲输出寄存器。
RC17~RC23:Y1的脉冲输出寄存器。
DM1960:插补状态指示和功能设置位。位0:为ON表示正在执行插补运动,为OFF表示插补已完成或不在插补状态。位5:当在插补运动中时,若为直线插补则为ON,否则为OFF。位6:当在插补运动中时,若为抛物线插补则为ON,否则为OFF。位7:当在插补运动中时,若为圆弧插补则为ON,否则为OFF。位15:合成速度恒定控制,由用户设置,ON表示系统对两轴合成速度进行恒定控制,OFF表示不控制(此时合成速度变化范围理论值为1~1.414)。
LDM1962:Y0轴在停止状态时的坐标位置。
LDM1964:Y1轴在停止状态时的坐标位置。
其他系统使用。
用户若需要在停电后记住电机的绝对位置,则应对LDM1962和LDM1964进行掉电保存(必须在电机停止后断电才能准确的记住绝对位置)。
l 插补数据表格式
插补控制采用插补数据表输入方式,插补数据表位于DM存储器中,每个数据表占用10个字,其意义如下(以DM300~DM309为例):
DM300:插补类型,1为直线,2为顺圆,3为逆圆,负数为抛物线。当为圆时,一个数据表最大只能插补90°的圆弧,并且该圆弧必须在以圆心为坐标原点的坐标系中同一象限,若要插补大于90°或不在同一象限的圆弧,则要分解为多个数据表。
DM301:插补运行速度(Hz)。直线时范围为62Hz~5000Hz,圆时范围为62Hz~3000Hz,抛物线时范围为62Hz~4000Hz。当使用合成速度恒定控制时,该速度近似于合成进给速度。当没有使用合成速度恒定控制时,合成进给速度近似为该速度的1~1.414倍。
LDM302:Y0轴(X)的插补终点坐标(单位:脉冲)。
LDM304:Y1轴(Y)的插补终点坐标(单位:脉冲)。
LDM306:圆时为圆心相对于起点的X偏移量,负数时表示圆心在起点的左面,正数时表示圆心在起点的右面。抛物线时为中间点的X坐标。直线时不使用该参数。
LDM308:圆时为圆心相对于起点的Y偏移量,负数时表示圆心在起点的下面,正数时表示圆心在起点的上面。抛物线时为中间点的Y坐标。直线时不使用该参数。
注:每个数据表插补都是以当前位置为起点。
用户必须要保证给的坐标数据相对于指定的轨迹是正确的,否则将产生不确定的运行后果。
若要使用该函数库,用户必须在自己的程序中添加函数库连接,连接要使用的函数库文件。在编程软件EasyLad中的操作如下:
l 点击鼠标右键,弹出以下菜单内容:
l 点击“添加函数库连接”,弹出“打开文件”对话框,找到文件CNC_0H.yf打开即可,连接后的程序如下:
函数库连接
函数库连接指令(LINK)必须位于主程序结束指令(FEND)的下面。
用户若在函数库连接指令中省去路径名,如“LINK CNC_0H.yf”,则函数库文件CNC_0H.yf与用户的梯形图程序文件必须在同一个文件夹中。
CNC_0H.yf中有10个函数和子程序供用户定位控制使用。如下:
l 插补运算控制子程序IPOL
子程序功能:
进行插补运算处理并输出脉冲。
说明:
该子程序推荐在PTO中断程序中调用,用户还要注意要允许全局中断和PTO中断,例子如下:
注:在插补运动中,特殊继电器PTO0F和PTO1F会不断变化。
l 插补启动函数IPOL_ST
函数定义:
FUN I, IPOL_Addr As D0, StartFre As D1, AccelTim As D2
函数功能:
对电机按绝对位置来进行定位。
输入参数:
IPOL_Addr:要插补的数据表地址。数据表格式为,[0]:插补类型,1为直线,2为顺圆,3为逆圆,负数为抛物线;[1]:运行频率;[2][3]:X终点坐标;[4][5]:Y终点坐标;[6][7]:圆插补时圆心对起点的X偏移;[8][9]:圆插补时圆心对起点的Y偏移。
StartFre:启动频率(Hz)
AccelTim:S曲线加(减)速段每台阶的运行时间(为值×128us)。该时间只是一个基准,实际加减速时该时间可能会随插补状态而变化,变化范围为0.5~1倍。
说明:
若数据表中的插补类型参数不为上述4种数值,则执行该函数后不会进入插补运动,DM1960.0还为OFF,否则执行该函数后立即进入插补运动,DM1960.0变为ON。
注:执行该函数时Y0和Y1电机必须处于停止状态(无脉冲输出)。
例如:
IPOL_ST(#DM300,500,10)表示按DM300~DM309中的插补参数启动插补,启动频率为500Hz,加减速段每台阶的运行时间基准为1.28ms。
梯形图例子如下:
l Y0绝对定位函数DRVA0
函数定义:
FUN I, Pos As LDM256, RunFre As LDM258, StartFre As D1, AccelTim As D2
函数功能:
对电机按绝对位置来进行定位。
输入参数:
Pos:电机要移动到的绝对位置(脉冲个数)。
RunFre:电机的恒速运行脉冲频率,范围:62Hz~100KHz。
StartFre:启动频率(Hz),范围:62Hz~32767Hz。
AccelTim:S曲线加(减)速段每台阶的运行时间(为值×128us)。
说明:
执行该函数后脉冲串输出完成标记PTO0F被复位,到位置后PTO0F被置位,可使用标记PTO0F来判断该动作是否完成,但要注意插补运行标记DM1960.0必须为OFF。
注:执行该函数时电机必须处于停止状态(无脉冲输出),执行该函数后电机立刻运行(输出脉冲)。
例如:
DRVA0(1000,5000,500,8)表示把Y0电机移动到绝对位置1000处,恒速运行脉冲频率为5000Hz,起始频率为500Hz,每台阶运行时间大约为1ms。
梯形图例子如下:
l Y0相对定位函数DRVI0
函数定义:
FUN I, PNum As LDM256, RunFre As LDM258, StartFre As D1, AccelTim As D2
函数功能:
对电机按相对位置来进行定位。
输入参数:
Pos:电机要移动到的相对位置(相对于当前位置的脉冲个数),为正数表示电机远离原点,为负数表示接近原点。
RunFre:电机的恒速运行脉冲频率,范围:62Hz~100KHz。
StartFre:启动频率(Hz),范围:62Hz~32767Hz。
AccelTim:S曲线加(减)速段每台阶的运行时间(为值×128us)。
说明:
执行该函数后脉冲串输出完成标记PTO0F被复位,到位置后PTO0F被置位,可使用标记PTO0F来判断该动作是否完成,但要注意插补运行标记DM1960.0必须为OFF。
注:执行该函数时电机必须处于停止状态(无脉冲输出),执行该函数后电机立刻运行(输出脉冲)。
例如:
DRVI0(1000,5000,500,8)表示把Y0电机移动到相对于当前位置1000处,恒速运行脉冲频率为5000Hz,起始频率为500Hz,每台阶运行时间大约为1ms。
梯形图例子如下:
l Y0电机停止函数DRVS0
函数定义:
FUN I, StopMode As D0
函数功能:
通过程序来使电机停止。若电机在点到点定位运动中,则执行该函数后Y0电机立刻进行减速停止。若电机在插补运动中,则执行该函数后Y0和Y1电机立即停止,插补运动结束。
输入参数:
StopMode:无意义,可为任意值。
说明:
当是点到点定位被停止后脉冲串输出完成标记PTO0F被置位,当是插补运动被停止后插补运行标记DM1960.0被复位。
梯形图例子如下:
l 读出Y0电机的当前位置函数RdCPos0
函数定义:
FUN L, Void As D0
函数功能:
返回电机的当前绝对位置(脉冲个数),无论电机处于运行还是停止状态。
输入参数:
Void:无意义,可为任意值。
返回值:
电机的当前绝对位置(脉冲个数)。
梯形图例子如下:
l Y1绝对定位函数DRVA1
函数定义:
FUN I, Pos As LDM256, RunFre As LDM258, StartFre As D1, AccelTim As D2
函数功能:
对电机按绝对位置来进行定位。
输入参数:
Pos:电机要移动到的绝对位置(脉冲个数)。
RunFre:电机的恒速运行脉冲频率,范围:62Hz~100KHz。
StartFre:启动频率(Hz),范围:62Hz~32767Hz。
AccelTim:S曲线加(减)速段每台阶的运行时间(为值×128us)。
说明:
执行该函数后脉冲串输出完成标记PTO1F被复位,到位置后PTO1F被置位,可使用标记PTO1F来判断该动作是否完成,但要注意插补运行标记DM1960.0必须为OFF。
注:执行该函数时电机必须处于停止状态(无脉冲输出),执行该函数后电机立刻运行(输出脉冲)。
例如:
DRVA1(1000,5000,500,8)表示把Y1电机移动到绝对位置1000处,恒速运行脉冲频率为5000Hz,起始频率为500Hz,每台阶运行时间大约为1ms。
梯形图例子如下:
l Y1相对定位函数DRVI1
函数定义:
FUN I, PNum As LDM256, RunFre As LDM258, StartFre As D1, AccelTim As D2
函数功能:
对电机按相对位置来进行定位。
输入参数:
Pos:电机要移动到的相对位置(相对于当前位置的脉冲个数),为正数表示电机远离原点,为负数表示接近原点。
RunFre:电机的恒速运行脉冲频率,范围:62Hz~100KHz。
StartFre:启动频率(Hz),范围:62Hz~32767Hz。
AccelTim:S曲线加(减)速段每台阶的运行时间(为值×128us)。
说明:
执行该函数后脉冲串输出完成标记PTO1F被复位,到位置后PTO1F被置位,可使用标记PTO1F来判断该动作是否完成,但要注意插补运行标记DM1960.0必须为OFF。
注:执行该函数时电机必须处于停止状态(无脉冲输出),执行该函数后电机立刻运行(输出脉冲)。
例如:
DRVI1(1000,5000,500,8)表示把Y1电机移动到相对于当前位置1000处,恒速运行脉冲频率为5000Hz,起始频率为500Hz,每台阶运行时间大约为1ms。
梯形图例子如下:
l Y1电机停止函数DRVS1
函数定义:
FUN I, StopMode As D0
函数功能:
通过程序来使电机停止。若电机在点到点定位运动中,则执行该函数后Y1电机立刻进行减速停止。若电机在插补运动中,则执行该函数后Y0和Y1电机立即停止,插补运动结束。
输入参数:
StopMode:无意义,可为任意值。
说明:
当是点到点定位被停止后脉冲串输出完成标记PTO1F被置位,当是插补运动被停止后插补运行标记DM1960.0被复位。
梯形图例子如下:
l 读出Y1电机的当前位置函数RdCPos1
函数定义:
FUN L, Void As D0
函数功能:
返回电机的当前绝对位置(脉冲个数),无论电机处于运行还是停止状态。
输入参数:
Void:无意义,可为任意值。
返回值:
电机的当前绝对位置(脉冲个数)。
梯形图例子如下:
l 电机的回零点
可使用外部中断来检测零点,下面的程序Y0完成回零点功能(使用X3的中断来检测,把过检测点500个脉冲作为零点):
注:可由编程软件EasyLad的“工具”菜单中的“PTO定位控制计算”工具算出启动频率、加速段时间、加速段脉冲个数等。
10
E-mail:easywin@ — — TEL:(0)13598189028
展开阅读全文