数参217【主轴夹紧M代码】默认20
位参172.5【钻/镗/刚性攻丝/循环主轴夹紧自动(0:否1:是)有效】默认0
注1:编辑R比孔底位置低时报警:R点位置比孔底位置低;注2:编辑X(U)时报警:钻/镗孔循环未指定孔底平面;注3:G83/G87/G85/G89 钻孔循环CS轴自动松开有效时(编辑M20指令),在镗孔指令G85/G89中CS轴指令未移动完,主轴夹紧指令需要等待指令完成后才输出;指令CS轴移动指令时需要自动松开主轴夹紧;G89C100X-20R5F100M20;//先执行M21完成后,执行C100完成后,执行M20;C140M20;//先执行M21完成后,执行C100完成后,执行M20;G80;
注4:打开位参 1 7 2 . 5 = 1 【钻/镗/刚性攻丝/循环主轴夹紧自动(0:否1:是)有效】时,在循环代码中C轴需要夹紧松开时,可以不编辑M20代码控主轴夹紧松开,系统自动加入在执行C坐标先系统先执行松开代码M21等待完成后在走C坐标,坐标完成后执行M20夹紧代码;如果打开了参数也编辑了M20时,以M20为准。
附录六、正/侧面G84/G88攻丝循环(2021以上版本具有)
1、正面攻丝循环G84:
正面攻丝循环指令格式1:
M29S_;//M29打开刚性攻丝,S_攻丝转速//不写M29指令为柔性攻丝 G84X(U)_Z(W)_R_P_F/I_K_M_;
X_孔绝对值位置(U_孔对于起始点X轴的增量值位置);Z_孔底绝对值位置(W_孔底对于R点的增量值位置);R_起始点到R点的增量值(不分正负号),不编辑的情况下默认从起始点开始加工;P_孔底暂停时间,单位ms,不编辑的情况下默认暂停;F_公制丝锥螺距,I英制牙数,右旋为正值,左旋为负值;K_重复次数,不编辑情况下默认1次,(只当前孔有效,多个孔需要重复加工时每个坐标后均需要添加K);M_主轴夹紧代码,不编辑情况下默认不夹紧主轴;说明:此格式将一次性加工完成。
位参213.0攻丝时主轴控制方式为(0:跟随1:伺服)
当213.0选择跟随时,有无M29指令均为柔性攻丝,通过主轴正反转控制;选择伺服时,有M29指令为刚性攻丝,通过参数选择攻丝脉冲口
位参209.0G84刚性攻丝是否选择Y轴做主轴(0:否1是)
位参209.1G84刚性攻丝是否选择第四轴做主轴(0:否1是)
位参209.2G84刚性攻丝是否选择第五轴做主轴(0:否1是)
位参209.3G84主轴方向是否取反(0:否1:是)
位参209.4G88刚性攻丝是否选择Y轴做主轴(0:否1是)
位参209.5G88刚性攻丝是否选择第四轴做主轴(0:否1是)
位参209.6G88刚性攻丝是否选择第五轴做主轴(0:否1是)
位参209.7G88主轴方向是否取反(0:否1:是)
PLC参数K014.7M29刚性攻丝输出主轴位置模式Y4.2(0:有效1:无效)
数参216【G83/G87钻孔留空量】默认2 数参217【主轴夹紧M代码】默认20 位参172.5【钻/镗/刚性攻丝/循环主轴夹紧自动(0:否1:是)有效】默认0
注1:编辑R比孔底位置低时报警:R点位置比孔底位置低;注2:编辑Z(W)时报警:攻丝循环未指定孔底平面;注3:G84/G88攻丝循环CS轴自动松开有效时(编辑有M20指令),在打孔指令G84/G88中CS轴指令未移动完,主轴夹紧指令需要等待指令完成后才输出;指令CS轴移动指令时需要自动松开主轴夹紧,M29S100;//有M29指令为刚性攻丝G84C100Z-20R5F100M20;//先执行M21完成后,执行C100完成后,执行M20;C140M20;//先执行M21完成后,执行C100完成后,执行M20;
G80;
注4:打开位参 1 7 2 . 5 = 1 【钻/镗/刚性攻丝/循环主轴夹紧自动(0:否1:是)有效】时,在循环代码中C轴需要夹紧松开时,可以不编辑M20代码控主轴夹紧松开,系统自动加入在执行C坐标先系统先执行松开代码M21等待完成后在走C坐标,坐标完成后执行M20夹紧代码;如果打开了参数也编辑了M20时,以M20为准。
注5:当选择柔性攻丝位参 2 1 3 . 0 = 0 时,编辑M29也是柔性攻丝不会改变攻丝状态,G84发出主轴正反转控制,Z轴与主轴联动攻丝;读取主轴反馈转速控制Z轴速度,在G84指令执行前先执行内部执行M05主轴停止,在根据F/I的正负判断输出主轴方向,攻丝完成后输出MO5停止主轴,Z轴进刀与车螺纹类似等待编码器一转信号后才能进刀。
正面攻丝循环指令格式2:
M29S_://M29打开刚性攻丝,S_攻丝转速//不写M29指令为柔性攻丝
G84X(U)_Z(W)_R_P_F/I_K_M_Q_;X_孔绝对值位置(U_孔对于起始点X轴的增量值位置);Z_孔底绝对值位置(W_孔底对于R点的增量值位置);R_起始点到R点的增量值(不分正负号),不编辑的情况下默认从起始点开始加工;P_孔底暂停时间,单位ms,不编辑的情况下默认暂停;F_公制丝锥螺距,I英制牙数,右旋为正值,左旋为负值;K_重复次数,不编辑情况下默认1次,(只当前孔有效,多个孔需要重复加工时每个坐标后均需要添加K);M_主轴夹紧代码,不编辑情况下默认不夹紧主轴;Q_每次切削深度(不分正负号);
说明:此格式将分层加工,每次进给Q后回退到R点,再进行攻丝进给。
正面攻丝循环指令格式3:
M29S;//M29打开刚性攻丝,S_攻丝转速//不写M29指令为柔性攻丝
\mathtt { G 8 4 } { \ X ( U ) \_ } { \ Z ( } \mathbb { W } { ) \_ } { \mathtt { R \_ P \_ P } } \mathtt { F } / { I \_ K \_ M \_ } \mathtt { Q \_ D \_ } :X_孔绝对值位置(U_孔对于起始点X轴的增量值位置);Z_孔底绝对值位置(W_孔底对于R点的增量值位置);R_起始点到R点的增量值(不分正负号),不编辑的情况下默认从起始点开始加工;P_孔底暂停时间,单位ms,不编辑的情况下默认暂停;F_公制丝锥螺距,I英制牙数,右旋为正值,左旋为负值;K_重复次数,不编辑情况下默认1次,(只当前孔有效,多个孔需要重复加工时每个坐标后均需要添加K);M_主轴夹紧代码,不编辑情况下默认不夹紧主轴;Q_每次切削深度(不分正负号);D_每次回退高度(不分正负号);
说明:此格式将分层加工,每次进给Q后回退到回退高度,再进行攻丝进给。
2、侧面攻丝循环G88:
侧面攻丝循环指令格式1:
M29S__;//M29打开刚性攻丝,S_攻丝转速//不写M29指令为柔性攻丝
G88X(U)_Z(W)_R_P_F/I_K_M_;Z_孔绝对值位置(W_孔对于起始点Z轴的增量值位置);X_孔底绝对值位置(U_孔底对于R点的增量值位置);R_起始点到R点的增量值(不分正负号),不编辑的情况下默认从起始点开始加工;P_孔底暂停时间,单位ms,不编辑的情况下默认暂停;F_公制丝锥螺距,I_英制牙数,右旋为正值,左旋为负值;K_重复次数,不编辑情况下默认1次,(只当前孔有效,多个孔需要重复加工时每个坐标后均需要添加K);M_主轴夹紧代码,不编辑情况下默认不夹紧主轴;
说明:此格式将一次性加工完成。
位参213.0攻丝时主轴控制方式为(0:跟随1:伺服)
当213.0选择跟随时,有无M29指令均为柔性攻丝,通过主轴正反转控制;选择伺服时,有M29指令为刚性攻丝,通过参数选择攻丝脉冲口;无M29指令为柔性攻牙。
位参209.0G84刚性攻丝是否选择Y轴做主轴(0:否1是)
位参209.1G84刚性攻丝是否选择第四轴做主轴(0:否1是)
位参209.2G84刚性攻丝是否选择第五轴做主轴(0:否1是)
位参209.3G84主轴方向是否取反(0:否1:是)
位参209.4G88刚性攻丝是否选择Y轴做主轴(0:否1是)
位参209.5G88刚性攻丝是否选择第四轴做主轴(0:否1是)
位参209.6G88刚性攻丝是否选择第五轴做主轴(0:否1是)
位参209.7G88主轴方向是否取反(0:否1:是)
PLC参数K014.7M29刚性攻丝输出主轴位置模式Y4.2(0:有效1:无效)
数参216【G83/G87钻孔留空量】默认2数参217【主轴夹紧M代码】默认20位参172.5【钻/镗/刚性攻丝/循环主轴夹紧自动(0:否1:是)有效】默认0
注1:编辑R比孔底位置低时报警:R点位置比孔底位置低;注2:编辑X(U)时报警:攻丝循环未指定孔底平面;注3:G84/G88攻丝循环CS轴自动松开有效时(编辑有M20指令),在打孔指令G84/G88中CS轴指令未移动完,主轴夹紧指令需要等待指令完成后才输出;指令CS轴移动指令时需要自动松开主轴夹紧,M29S100;//有M29指令为刚性攻丝G88C100X-20R5F1M20;//先执行M21完成后,执行C100完成后,执行M20;C140M20;//先执行M21完成后,执行C100完成后,执行M20;G80;
注4:打开位参 1 7 2 . 5 = 1 【钻/镗/刚性攻丝/循环主轴夹紧自动(0:否1:是)有效】时,在循环代码中C轴需要夹紧松开时,可以不编辑M20代码控主轴夹紧松开,系统自动加入在执行C坐标先系统先执行松开代码M21等待完成后在走C坐标,坐标完成后执行M20夹紧代码;如果打开了参数也编辑了M20时,以M20为准。
注5:当选择柔性攻丝位参 2 1 3 . 0 = 0 时,编辑M29也是柔性攻丝不会改变攻丝状态,G88发出主轴正反转控制,X轴与主轴联动攻丝;读取主轴反馈转速控制Z轴速度,在G88指令执行前先执行内部执行M05主轴停止,在根据F/I的正负判断输出主轴方向,攻丝完成后输出MO5停止主轴,X轴进刀与车螺纹类似等待编码器一转信号后才能进刀。
侧面攻丝循环指令格式2:
M29S__://M29打开刚性攻丝,S_攻丝转速//不写M29指令为柔性攻丝 G88X(U)_Z(W)_R_P_F_K_M_Q_;
Z_孔绝对值位置(W_孔对于起始点Z轴的增量值位置);X_孔底绝对值位置(U_孔底对于R点的增量值位置);R_起始点到R点的增量值(不分正负号),不编辑的情况下默认从起始点开始加工;P_孔底暂停时间,单位ms,不编辑的情况下默认暂停;F_公制丝锥螺距,I英制牙数,右旋为正值,左旋为负值;K_重复次数,不编辑情况下默认1次,(只当前孔有效,多个孔需要重复加工时每个坐标后均需要添加K);M_主轴夹紧代码,不编辑情况下默认不夹紧主轴;Q_每次切削深度(不分正负号);
说明:此格式将分层加工,每次进给Q后回退到 { ~ R ~ } 点,再进行攻丝进给。
广州科源
侧面攻丝循环指令格式3:
M29S_;//M29打开刚性攻丝,S_攻丝转速//不写M29指令为柔性攻丝 G88X(U)_Z(W)_R_P_F_K_M_Q_D_;
Z_孔绝对值位置(W_孔对于起始点Z轴的增量值位置);X_孔底绝对值位置(U_孔底对于R点的增量值位置);R_起始点到R点的增量值(不分正负号),不编辑的情况下默认从起始点开始加工;P_孔底暂停时间,单位ms,不编辑的情况下默认暂停;F_公制丝锥螺距,I_英制牙数,右旋为正值,左旋为负值;K_重复次数,不编辑情况下默认1次,(只当前孔有效,多个孔需要重复加工时每个坐标后均需要添加K;M_主轴夹紧代码,不编辑情况下默认不夹紧主轴;Q_每次切削深度(不分正负号);D_每次回退高度(不分正负号);
说明:此格式将分层加工,每次进给Q后回退到回退高度,再进行攻丝进给。
广州科源
附录七、在线修改刀补特殊指令G08/G09(2021以上版本才具有)
编程格式:
GO8/GO9 X(U)Z(W)Y(V)A/B(E)C(H)R(D);
说明:
X/Z/Y/A/B/C绝对值编程,编辑数据为当前位置绝对坐标输入至相应刀补号中;
U/W/V/E/H/D增量编程,编程数据增量录入到相应刀补号中;
R(D)为刀尖半径补偿:R绝对编程把编辑数据作为刀尖半径录入至刀补号中,D为增量编程把编辑数据增量录入至刀补号中;G08补偿当前刀补号;G09补偿00号刀补;
相应参数:
使用G08/G09指令需要打开位参 1 7 9 . 3 { = } 1 [G10功能从新译码(0:否1:是)支持];
需要修改00号刀补时需要打开位参 1 2 . 6 = 1 [NO.0刀补平移工件坐标系(0:无效1:有效)]
注1:补偿00号刀补特殊情况,当前刀补号为00号时,使用G08或G09功能一样,使用绝对编程G80/G09{ { ~ X ~ } } _ { - } , [X_]数据直接赋予00号刀补中(00号刀补原有数据10的情况下,执行G08/G09X20时00号刀补数值变为20,而不是在10的基础上加20);使用增量编程G08/G09U_,[U_]数据增量添加在00号刀补中(00号刀补原有数据10的情况下,执行G08/G09U20时00号刀补数值变为30,是在10的基础上加20)。
广州科源
注2:补偿00号刀补后所有刀补均会增加00号补偿,功能与坐标系基偏移量类似;例如工件使用了0 1 / 0 2 / 0 3 / 0 4 号刀补加工且直径均小了 0 . 2 {mm } 时,可以使用G09X/U-0.2补偿00号刀补达到补偿其他刀补效果。
注3:00号刀补补偿与其他刀补号补偿方向相反,尺寸小的情况下补负向,尺寸大的情况下补正向。
G08/G09使用例子:
1)补偿00号刀补:T0100;G08 X/U-0.2;或T0101;//当前任意刀补号G09 X/U-0.2;效果一样均补偿00刀补 0 . 2 {mm } :
2) 增量补偿当前刀补T0101;//当刀补号为01,补偿01刀补G08 U0.2;补偿01号刀补,在原有刀补数据基础上增加 0 . 2 {mm } . ,当01号刀补加工工件直径小了 0 . 2 {mm } 时,可以使用此方法补偿;
3) 绝对补偿当前刀补T0101;//当刀补号为01,补偿01刀补G08 X20;补偿01号刀补,把当前的位置作为对刀X20的位置,01号刀补的数值为正常对刀X20的数据[机床坐标]-[X20];当在此位置再次调用T0101时,当前X轴绝对坐标为20。注:修改刀补后需重新调用刀补才有效;
例如:T0101;//当刀补号为01,补偿01刀补
G08 U0.2;
此时补偿后的刀补未生效,只有执行到下一个T0101指令时补偿后的刀补才生效。
附录八、新增控制参数说明(2021以上版本)
1)添加98D绝对值通讯协议数参198绝对值(0:KY10001:SANKYO2:98D)
数参199绝对值停止位(0:奇校验1:无校验)KY300Ci改为0,三协/98D改为1,使用绝对值通讯时,根据匹配不同驱动,选择。
2)数参
213断屑功能触发移动量(单位毫米)(默认值1)
214每次断屑时间(单位毫秒)(默认值100)
313切削进给前加减速L型时间常数改为切削进给前加减速L型加速度(使用切削前加减速时有效)
3)位参182.0 螺纹加工高速(0:普通 1:高速)改为1打开AB脉冲进刀车螺纹功能位参182.2螺纹短轴退尾长度优化(0:不优化1:优化)(优化后退刀距离为到下一段G0的短轴位置的距离)
4)位参6.6程序自动保存(0:关闭1:打开)(不编辑10秒后自动保存)程序开关修改断电保存:位参208.5程序开关控制(0:打开1:关闭)
3级操作级别以上才可以打开或关闭,想锁住程序可以在3级操作级别关闭程序开关,然后系统降级到4或5级操作级别。
自动序号开关修改断电保存:位参205.0自动插入顺序号(0:否1:是)
5)增加M9000\~M9998调用子程序功能调用09000--09998程序
6)换刀时可以和其他指令一起执行位参178.6换刀指令是否可以和其他指令一起执行(0:否1:是)
7)修改绝对值通讯一直报警
215.4绝对值通讯是否一直报警(0:是1:否)
8)加工时间断电记忆位参173.5加工时间上电是否清零(0:否1:是)
9)增加G71G72ⅡI形功能位参177.5G71G72是否使用二形算法(0:是1:否)位参177.6G71G72二形是否最后沿轨迹走一次(0:否1:
10)增加绝对值旋转轴零点更新功能,避免旋转轴坐标溢出问题位参193.7绝对值旋转轴零点是否更新(0:否1:是)当使用绝对值电机轴设为旋转轴时,位参193.7设为1避免电机记忆多圈数溢出问题。
11)216钻孔留空量 217主轴夹紧M代码
位参:
172.5Cs轴打孔攻牙是否自动松开夹紧(0:否1:是)
209.0G84刚性攻丝主轴选择(0:不选1:3轴)
209.1G84刚性攻丝主轴选择(0:不选1:4轴)
209.2G84刚性攻丝主轴选择(0:不选1:5轴)
209.3G84刚性攻丝主轴方向(0:默认1:取反)
209.4G88刚性攻丝主轴选择(0:不选1:3轴)
209.5G88刚性攻丝主轴选择(0:不选1:4轴)
209.6G88刚性攻丝主轴选择(0:不选1:5轴)
209.7G88刚性攻丝主轴方向(0:默认1:取反)
12)178.2模拟主轴是否停到开始角度(0:否1:是)
数参:
375模拟主轴和车方轴停到开始角度的最低转速修改CS轴后台切换功能增加数参218CS轴切换位置模式M代码增加位参功能186.1运行换刀指令T调用程序09101(0:无效1:有效)179.6主轴换档(0:数参67为固定电压1:数参67为固定转速)187.4运行CS轴指令未切换位置模式(0:报警1:等待)
13)数参222手动×轴快速定位速度数参223手动Z轴快速定位速度数参229手动第3轴快速定位速度数参230手动第四轴快速定位速度数参231手动第五轴快速定位速度
14)增加数参36第二模拟主轴最大速度增加数参50主轴输出口选择(3:第三轴4:第四轴)其他是第五轴增加数参77手轮试切最高速度
附录九、M代码表
| M代码 | 定义 | 备注 |
| MO0 | 无条件暂停 | 程序运行到M00时暂停 |
| M01 | 选择暂停停 | 程序运行到M01且系统打开了选择停功能时暂停,否者往下运行 |
| M02 | 程序结束 | 互锁,开机默认MO5 |
| M03 | 主轴正转 | |
| M04 | 主轴反转 | |
| M05 | 主轴停止 | |
| M06 | 自动换刀 | 互锁,开机默认M09 |
| M08 | 冷却液 | |
| M09 | 关闭冷却 | 互锁 |
| M10 | 尾座前进 | |
| M11 | 尾座后退 | 互锁 |
| M12 | 卡盘夹紧 | |
| M13 | 卡盘松开 | 互锁 |
| M14 | 主轴定位切换位置模式 | |
| M15 | 主轴切换速度模式 | 互锁 |
| M20 | 主轴夹紧 | |
| M21 | 主轴松开 | 保留M代码均为无效功能代码 |
| M22 | 保留 | |
| M23 | ||
| M24 | ||
| M25 |
| M26 | ||
| M27 | 互锁 | |
| M28 | 刚性攻丝取消 | |
| M29 | 刚性攻丝打开 | |
| M30 | 程序结束 | |
| M31 | 加工件数加1 | |
| M32 | 润滑输出 | 互锁 |
| M33 | 润滑关闭 | |
| M34 | 防护门输出 | 互锁 |
| M35 | 防护门关闭 | |
| M36 | 排屑机输出 | 互锁 |
| M37 | 排屑机关闭 | |
| M38 | 工作灯输出 | 互锁 |
| M39 | 工作灯关闭 | |
| M40 | 保留 | 保留M代码均为无效功能代码 互锁 |
| M41 | 主轴换挡1挡 | |
| M42 | 主轴换挡2挡 | |
| M43 | 主轴换挡3挡 | |
| M44 | 主轴换挡4挡 | |
| M45 | 保留 | 保留M代码均为无效功能代码 |
| M46 | ||
| M47 | ||
| M48 | ||
| M49 | 互锁 | |
| M50 | 第3轴动力头正转 | |
| M51 | 第3轴动力头反转 | |
| M52 | 第3轴动力头停止 | |
| M53 | 第4轴动力头正转 | 互锁 |
| M54 | 第4轴动力头反转 | |
| M55 | 第4轴动力头停止 保留 | 保留M代码均为无效功能代码 |
| M56 | ||
| M57 | ||
| M58 | ||
| M59 | ||
| M60 | ||
| M61 | 互锁,开机默认M65 | |
| M62 M63 | 第二主轴正转 | |
| M64 | 第二主轴反转 | |
| M65 | 第二主轴停止 | |
| M66 | 保留 | 保留M代码均为无效功能代码 |
| M68 | ||
| M67 |
| M69 | ||
| M70 | 自定义K1输出 | 互锁 |
| M71 | 自定义K1关闭 | |
| M72 | 自定义K2输出 | 互锁 |
| M73 | 自定义K2关闭 | |
| M74 | 自定义K3输出 | 互锁 |
| M75 | 自定义K3关闭 | |
| M76 | 自定义K4输出 | 互锁 |
| M77 | 自定义K4关闭 | |
| M78 | 保留 | 保留M代码均为无效功能代码 |
| M79 | ||
| M80 | ||
| M81 | ||
| M82 M83 | ||
| M84 | ||
| M85 | ||
| M86 | ||
| M87 | ||
| M88 | ||
| M89 | 自定义输出 | 多格式编程 |
| M90 | 程序段重复结束 | 互锁,使用M91C_后需要使用M90结束 |
| M91C | 程序段重复开始 | |
| M92 | 条件跳转 | |
| M93 | 无条件跳转 保留 | 保留M代码均为无效功能代码 |
| M94 | ||
| M95 M96 | ||
| M97 | ||
| M98 | 调用子程序 | 不编写L次数时,默认调用1次 |
| M99 | 子程序结束 | 编写在主程序时,程序为无限循环 |
| M9000-M9999 | 单次调用09000-09999的程序 |
附录十、宏程序补充说明(2021年以上版本具有)
1、语句式宏代码(宏B)
1.1算术和逻辑运算
| 功能 | 表达式结构 | 备注 |
| 定义或赋值 | #i=#j | |
| 加法 减法 乘法 除法 | #i=#j+#k #i=#j-#k #i=#j*#k #i=#j/#k | |
| 或 与 异或 | #i=#j OR #K #i=#j AND #K #i=#j XOR #K | 逻辑运算一位一位的按二进 制数执行 |
| 平方根 绝对值 舍入 上取整 下取整 自然对数 指数函数 | #i=SQRT[#j] #i=ABS[#j] #i=ROUND[#j] #i=FUP[#j] #i=FIX[#j] #i=LN[#j] #i=EXP[#j] | |
| 正弦 反正弦 余弦 反余弦 正切 反正切 | #i=SIN[#j] #i=ASIN[#j] #i=COS[#j] #i=ACOS[#j] #i=TAN[#j] #i=ATAN[#j]/[#k] | 角度的单位以度指定,如: 90°30’用90.5度表示 |
| 从BCD转为BIN 从BIN转为BCD | #i=BIN[#j] #i=BCD[#j] | 用于与PMC信号转换 |
相关说明
1、角度单位函数SIN,COS,ASIN,ACOS,TAN和ATAN的角度单位是度( ^ \circ \quad ) 。如 9 0 ^ { \circ } 3 0 ^ { \prime } 应表示为 9 0 . 5 ^ { \circ } (度)。
2、反正弦#i=ASIN[#j]
i、结果输出范围如下,当参数No180#7NAT位设为1时, 9 0 ^ { \circ } ~ 2 7 0 ^ { \circ } ;当参数No180#7NAT位设为0时, - 9 0 ^ { \circ } ~ 9 0 ^ { \circ } ;
ii、当#j超出-1到1的范围时,发出P/S报警。
iii、常数可替代变数#j。
3、反余弦#i=ACOS[#j]
i、结果输出范围从 1 8 0 ^ { \circ } ~ { { ^ \circ } } ;ii、当#j超出-1到1的范围时发出 { P / S } 报警;iii、常数可以替代变量#j。4、反正切#i=ATAN[#j]/[#k]指定两个边的长度,并用斜杠‘/’分开。i、取值范围如下,当参数No180#7NAT位设为1时: 9 0 ^ { \circ } (204号 ~ 2 7 0 ^ { \circ } ;[例如]当指定#1=ATAN[-1]/[-1]时# = 2 2 5 ^ { \circ } ;当参数No180#7NAT位设为0时 - 9 0 ^ { \circ } (204号 ~ 9 0 ^ { \circ } ;[例如]当指定#1 = ATAN[-1]/[-1]时# { : 1 = 4 5 . 0 ^ { \circ } } ;ii、常数可以代替变量#j。5、自然对数#i=LN[#j]i、常数可以代替变量#j。6、指数函数#i=EXP[#j]i、常数可以代替变量#j。7、ROUND舍入函数当算术运算或逻辑运算代码IF或WHILE中包含ROUND函数时,则ROUND函数在第1个小数位置四舍五入。例如:当执行#1=ROUND[#2]时,此时#2=1.2345,变数1的值是1.0。
8、上取整和下取整
CNC 处理数值运算时,若操作后产生的整数绝对值大于原数的绝对值时,称为上取整;若小于原数的绝对值时,称为下取整。对于负数的处理应小心。
例如:
假设# 1 { = } 1 . 2 , \sharp 2 = - 1 . 2 (20号当执行#3=FUP[#1]时,2.0赋给#3。
当执行#3=FIX[#1]时,1.0赋给#3。
当执行#3=FUP[#2]时,-2.0赋给#3。
当执行#3=FIX[#2]时,-1.0赋给#3。
1.2转移和循环
在程序中,使用GOTO语句和IF语句可以改变控制的流向。有三种转移和循环操作可供使用。
1、GOTO语句(无条件转移)。
2、条件控制IF语句。
3、WHILE循环语句。
1)无条件转移(GOTO语句)
转移到顺序号位n的程序段。当指定1到99999以外的顺序号时报警,可用表达式指定顺序号。格式:GOTOn;n:顺序号 ( 1 ^ { ~ } 9 9 9 9 9 )例:GOT01;GOTO#101;2)条件控制(IF语句)GOTO格式:IF[条件表达式]GOTOn;
广州科源
如果指定的条件表达式成立时,转移到顺序号位n的程序段;如果指定的条件表达式不成立,则顺序执行下个程序段。
例:
THEN格式:IF[条件表达式]THEN<宏程序语句>;
如果条件表达式成立,执行THEN后面的语句,只能执行一条语句。
例: IF[#1EQ#2]THEN# \scriptstyle \mathbf { 3 = 0 } =如果#1的值与#2的值相等,将0赋予变量#3;如不相等,则顺序往下执行THEN后的赋值语句。
条件表达式:条件表达式必须包括条件运算符,条件运算符两边可以是变量、常数或表达式,条件表达式要用括号‘[’‘]’封闭。
条件运算符:本系统可使用下表中列出的条件运算符。
| 条件运算符 | 含义 |
| EQ或== | 等于(=) |
| NE或 | 不等于(≠) |
| GT或> | 大于 (>) |
| GE或>= | 大于等于(≥) |
| LT或 | 小于 ( |
| LE或 | 小于等于(≤) |
例如: { I F } [ 3 < > 2 ] { G 0 T 0 2 } ;其含义为:如果3不等于2的话,则跳转至N2程序段;工 { F } [ \# 1 0 1 > = 7 . 2 2]THEN#101=SIN30;其含义为:如果#101大于等于7.22的话,则执行THEN后的赋值操作。即将30度的正弦值赋予变量#101。
典型程序:下面的程序计算整数 _ { 1 ~ 1 0 } 的和。
09500\sharp 1 = 0 ;......和初始化为0\sharp 2 = 1 ;.....被加数初值为1N1 IF[#2GT10]GOT02;......当被加数大于10时转移到N2\sharp 1 = \sharp 1 + \sharp 2 ;. ..计算两数的和\sharp 2 = \sharp 2 + 1 ;. ...被加数加1GOTO1;......无条件跳转到程序段N1N2 M30;......程序结束
3)循环(WHILE语句)
广州科源
在WHILE后指定一个条件表达式,当指定条件成立时,执行从DO到END之间的程序段;否则,跳转到END后的程序段。
例:
说明:当指定的条件成立时,执行从DO到END之间的程序段;否则,转而执行END之后的程序段。DC后的标号和END后的标号要一致,标号值可以是1、2或3.若用1、2、3以外的值将会报警。
嵌套:DO,END 循环中的标号 ( 1 ^ { ~ } 3 ) 可根据需要多次使用。但是,当程序中有交叉重复循环时将会报警。
1.3宏报警
格式:ERR_;
范围 0 ~ 2 0 0
报警号 3 0 0 0 + \mathfrak { n }
例如:ERRO1或 ERR1;系统报警号为3001号。
1.4特殊说明(用变量置换变量号)
格式: \omega _ { \# } \mathfrak { P } _ { + } \mathfrak { s } _ { 9 } \mathfrak { P } _ { + } 置换变量号示例: \yen 100 =205 时, 1 + 2 0 5 = 5 0 0 时;X#9100和X500代码功能相同;X-#9100和X-500代码功能相同;
可以理解为#9___,后跟着的3位数为公共变量号,范围100~199,500~999;#9100表示#100内的值表示的宏变量号;
例如# 1 0 0 = 5 1 0 , \# 5 1 0 = 1 0 1
此时写#9100,# 9 1 0 0 = \# 5 1 0 = 1 0 1
附录十一、自定义报警内容编写(2021以上版本具有)
参数:位参180.4读取程序宏变量/报警注释(0:无效1:有效)
宏A报警
G65H99P_;//[ERR,系统显示报警内容](25个字以内)范围0-200;宏B报警
ERR_;//[ERR_,系统显示报警内容](25个字以内)范围0-200;例如:
ERR1;//[ERR1,数量到达];
系统显示宏程序报警3001数量到达;
注:同时可以写入系统宏变量#3000的值进行报警,范围也是0-200,报警号也是一致3000-3200;编写方法有G65 H01 \mathsf { P } \sharp 3 0 0 0 \mathsf { \Omega } \mathsf { Q } _ { - } ,也可以 \Ddot { \# } 3 0 0 0 = \underline { { \underline { { \mathbf { \Pi } } } } } _ { - } 例如:G65 H01 { P \# 3 0 0 0 } QO;\yen 30000=0 :G65H99P0;ERRO;这4种编法效果相同。
修改系统可以读取程序报警注释,然后显示出报警内容并报出在系统文件WARN2;可以读取程序宏变量注释并保存在系统文件中MacroVar;
规定可写报警范围;
0650-0657;M89K0-K7检测
3000-3200;宏程序报警P0-P200
编写M89K0-K7报警规范格式:
M89KO-K7J_ ;//[ERR650-657,M89K0-K7检测报警];M89KO-K7检测报警:报警显示内容,同时记录在文件WARN,再有同样报警号时如果没有写报警内容时,直接读取存储的报警内用显示。
例如:
M89K3J5000;//[ERR653,M89K3顶料未到位]
或者
//[ERR653,M89K3顶料未到位]
M89K3J5000;
只要程序读取到//[ERR653,M89K3顶料未到位]时,报警内容就保存在系统文件中653号报警;当下次没有写报警显示时,指令了一样的代码,同样会报警显示之前写的内容;
例如:
M89K3J5000;//
此时报警依然会显示M89K3顶料未到位;
编写宏程序报警规范格式
宏A:G65H99P_;//[ERR,报警显示内容];宏B:ERR_;//[ERR_,报警显示内容];报警显示内容,同时记录在文件WARN2,再有同样报警号时如果没有写报警内容时,直接读取存储的报警内用显示。
例如:
G65H99P0;//[ERRO,加工数量到达]
或者
//[ERRO,加工数量到达]
G65H99P0;
只要程序读取到//[ERR0,加工数量到达]时,报警内容就保存在系统文件中3000号报警;当下次没有写报警显示时,指令了一样的代码,同样会报警显示之前写的内容;
例如:
G65H99P0;
或
ERRO;
此时报警依然会显示宏报警3000加工数量到达;
程序读取宏变量注释保存在系统文件MacroVar:
可改注释:
广州科源
#100-#199;
#500-#899;(#900-#999预留系统内部使用);
修改注释规范格式;
//[#--,显示内容](20个字以内)
//[#--,显示内容]
显示内容将保存在MacroVar,在公共变量中可查看;
在不改变同个宏变量注释的情况下,宏变量注释一直保存。
附录十二、MIⅢ总线系统连接设置(总线版本具有)
说明:MI总线版本系统,有【总线配置】菜单设置总线连接参数,只需要设置通讯轴数和通讯地址和齿轮比;
1)首先进去[系统参数]界面:
| 系统参数 00001 N0000 编辑方式 T0100 | |||
| 参数意义 | |||
| 序号 0001 M3总线从站个数 | 数据 5 | ||
| 0002 M3总线从站1地址 | 0x0021 | ||
| 0003 M3总线从站2地址 | 0x0022 | ||
| 0004 M3总线从站3地址 | 0x0023 | ||
| 0005 M3总线从站4地址 | 0x0024 | ||
| 0006 M3总线从站5地址 | 0x0025 | ||
| 0007 M3总线从站6地址 | 0x0026 | ||
| 0008 M3总线从站7地址 | 0x0027 | ||
| 0009 M3总线从站8地址 | 0x0028 | ||
| 0010 保留 | 0x0029 | ||
| 0011 保留 | 42 | ||
| MINO MAX9999 | |||
| 页:1/8 | |||
| 数据: | |||
| 系统时间:09:29:30 | |||
| 伺服监控 系统参数 | |||
注1:001号为通讯从站个数,有两个总线轴时,设置为2;此时系统读取002和003从站地址1和从站地址的地址;从站地址需要对应驱动器通讯地址;
注2:从站个数对应轴为:从站1对应×轴,从站2对应Z轴,从站3对应3TH轴,从站4对应4TH轴,从站5对应5TH轴;
注3:从站地址开始地址为21,对应安川驱动通讯地址21;连接 KY300AWM3驱动时,从站地址21对应驱动通讯地址1,从站地址22对应驱动2,从站地址23对应驱动3,如此类推;
注4:其余保留参数不需要设置。
广州科源
| 系统参数 00001 N0000 编辑方式 | T0100 | |||
| 序号 参数意义 数据 | ||||
| 0012 | M3总线从站1编码器位数 | 17 | ||
| 0013 | M3总线从站2编码器位数 | 17 | ||
| 0014 | M3总线从站3编码器位数 | 17 | ||
| 0015 | M3总线从站4编码器位数 | 17 | ||
| 0016 | M3总线从站5编码器位数 | 17 | ||
| 0017 | M3总线从站6编码器位数 | 17 | ||
| 0018 | M3总线从站7编码器位数 | 17 | ||
| 0019 | M3总线从站8编码器位数 | 17 | ||
| 0020 | 保留 | 17 | ||
| 0021 | 保留 | 17 | ||
| 0022 | 保留 | 17 | ||
| MINO MAX9999 | 页:2/8 | |||
| 数据: | ||||
| ? | ||||||
| 伺服监控系统参数 |
注:编码器位数参数默认17,不需要设置。
| 系统参数 00001 N0000 编辑方式 | T0100 | ||
| 序号 参数意义 数据 | |||
| 0023 | M3总线从站1编码器类型 | ||
| 0024 | M3总线从站2编码器类型 | ||
| 0025 | M3总线从站3编码器类型 | ||
| 0026 | M3总线从站4编码器类型 | ||
| 0027 | M3总线从站5编码器类型 | ||
| 0028 | M3总线从站6编码器类型 | ||
| 0029 | M3总线从站7编码器类型 | ||
| 0030 | M3总线从站8编码器类型 | ||
| 0031 | 保留 | ||
| 0032 | 保留 | ||
| 0033 | 保留 | ||
| MINO MAX9999 | 页:3/8 | ||
| 数据: | |||
| ? | 伺服监控 | 系统参数 |
广州科源
| 系统参数 00001 N0000 | 编辑方式 | T0100 | ||
| 序号 参数意义 | 数据 | |||
| 0034 | 保留 | 16 | ||
| 0035 | M3总线从站2属性 | 16 | ||
| 0036 | M3总线从站3属性 | 16 | ||
| 0037 | M3总线从站4属性 | 16 | ||
| 0038 | M3总线从站5属性 | 16 | ||
| 0039 | M3总线从站6属性 | 16 | ||
| 0040 | M3总线从站7属性 | 16 | ||
| 0041 | M3总线从站8属性 | 16 | ||
| 0042 | 保留 | 16 | ||
| 0043 | 保留 | 16 | ||
| 0044 | 保留 | 16 | ||
| MINO | MAX9999 | 页:4/8 | ||
| 数据: | ||||
| ? | 伺服监控系统参数 |
注:编码器类型和从站属性均不需要设置(电机编码器为增量式的需要把编码器类型设为0)。
| 系统参数 00001 N0000 编辑方式 | T0100 | ||
| 序号 参数意义 | |||
| 0045 | 轴1运动中的位置盘偏差最大值(mm) | 数据 0.000 | |
| 0046 | 轴2运动中的位置盘偏差最大值(mm) | 0.000 | |
| 0047 | 轴3运动中的位置盘偏差最大值(mm) | 0.000 | |
| 0048 | 轴4运动中的位置盘偏差最大值(mm) | 0.000 | |
| 0049 | 轴5运动中的位置盘偏差最大值(mm) | 0.000 | |
| 0050 | 轴6运动中的位置盘偏差最大值(mm) | 0.000 | |
| 0051 | 轴7运动中的位置盘偏差最大值(mm) | 0.000 | |
| 0052 | 轴8运动中的位置盘偏差最大值(mm) | 0.000 | |
| 0053 | 保留 | 0.000 | |
| 0054 | 保留 | 0.000 | |
| 0055 | 保留 | 0.000 | |
| MIN0.000 | MAX10000.000 | 页:5/8 | |
| 数据: | |||
| ? | 伺服监控 | 系统参数 |
广州科源
| 系统参数 00001 N0000 编辑方式 | T0100 | |||
| 序号 参数意义 | 数据 | |||
| 0056 | 轴1停止时的位置盘偏差最大值(mm) | 0.000 | ||
| 0057 | 轴2停止时的位置盘偏差最大值(mm) | 0.000 | ||
| 0058 | 轴3停止时的位置盘偏差最大值(mm) | 0.000 | ||
| 0059 | 轴4停止时的位置盘偏差最大值(mm) | 0.000 | ||
| 0060 | 轴5停止时的位置盘偏差最大值(mm) | 0.000 | ||
| 0061 | 轴6停止时的位置盘偏差最大值(mm) | 0.000 | ||
| 0062 | 轴7停止时的位置盘偏差最大值(mm) | 0.000 | ||
| 0063 | 轴8停止时的位置盘偏差最大值(mm) | 0.000 | ||
| 0064 | 保留 | 0.000 | ||
| 0065 | 保留 | 0.000 | ||
| 0066 | 保留 | 0.000 | ||
| MIN0.000 | MAX10000.000 | 页:6/8 | ||
| 数据: | ||||
| ? | 伺服监控系统参数 | |||||
| 系统参数 00001 N0000 编辑方式 | T0100 | ||
| 序号 参数意义 数据 | |||
| 0067 | 轴1脉冲输出倍频系数(分子) | 8192.000 | |
| 0068 | 轴1脉冲输出分频系数(分母) | 625.000 | |
| 0069 | 轴2脉冲输出倍频系数(分子) | 8192.000 | |
| 0070 | 轴2脉冲输出分频系数(分母) | 625.000 | |
| 0071 | 轴3脉冲输出倍频系数(分子) | 8192.000 | |
| 0072 | 轴3脉冲输出分频系数(分母) | 625.000 | |
| 0073 | 轴4脉冲输出倍频系数(分子) | 8192.000 | |
| 0074 | 轴4脉冲输出分频系数(分母) | 625.000 | |
| 0075 | 轴5脉冲输出倍频系数(分子) | 1.000 | |
| 0076 | 轴5脉冲输出分频系数(分母) | 1.000 | |
| 0077 | 保留 | 1.000 | |
| MIN0.100 | MAX65536.000 | 页:7/8 | |
| 数据: | |||
| ? | 伺服监控 | 系统参数 |
广州科源
| ? | 伺服监控系统参数 | |||||
注:总线配置默认电机编码器位数17位,默认齿轮比8192/625,此齿轮比为默认计数齿轮比,电机为17位或23位均不需要修改此参数值;对于主轴脉冲分度的,主轴编码器线数只有2500或1024的主轴对应的轴数的此处的齿轮比改为 _ { 1 / 1 } ,主轴脉冲计数基数10000。
注:对应23位的电机驱动器的齿轮比分子需要改为64,分子改为64后,齿轮比设置与17位一致;对于螺距 \scriptstyle 1 0mm 的直连丝杆,系统数参的齿轮比为 _ { 1 / 1 } ,螺距 8 \mathsf {mm } 的直连丝杆,系统数参齿轮比5/4;计数方法与普通脉冲计数一样。
2)总线零点设置与绝对值零点设置一样:进入位置界面,找菜单[机床清零]进入清除机床零点:
广州科源
| 综合坐标 00001 N0000 编辑方式 | |||
| (相对坐标) U 0.694 XZ W -25.240 VE 0.000 YA | T (绝对坐标) 27.336 F -1.654 0.0000 S 0.000° | 0100 000000 0mm/min 0000 300rev/min | 全部 清零 X轴 清零 Z轴 清零 |
| H 0.000° C (机床坐标) (余移动量) X Z Y A C | G00 G97 G98 G21 | ||
| 27.336 X 0.000 -1.654 Z 0.000 0.000° Y 0.000° 0.000° A 0.000° 0.000° C 0.000° | M05 进给倍率 | G40 G54 | |
| M41 M30 | |||
| 4轴 100% 清零 | |||
| 快速倍率 25% | 5轴 | ||
| 主轴倍率 | 100% 清零 | ||
| 加工件数 00000/00000 | |||
| 切削时间 000:00:00 | |||
| ? | 机床清零 | |||||
| 伺服监控 00001N0000 编辑方式 T0100 | |||||
| 轴号 | 机床坐标 | 当前位置 | OMN1 | 实际齿轮比 | |
| 1 | 13.668 | 0.000 | 0 | 13.107200 | |
| 2 | -1.654 | 0.000 | 0 | 13.107200 | |
| 3 | 0.000 | 0.000 | 0 | 0.364089 | |
| 4 | 0.000 | 0.000 | 0 | 0.364089 | |
| 5 | 0.000 | 0.000 | 0 | 0.027778 | |
| 6 | |||||
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 页1/4 | |||||
| ? | 伺服监控 | 系统参数 | 系统时间:09:28:19 | ||
注:当机床坐标与电机当前坐标相差大时,一般是由于编码器读取方向错误导致,可以修改位参193号进行修改。
附录十三、轴未回零警告设置(增量值版本)
在增量值使用时,可以设置各轴未回零时系统发出警告[各轴未回零]提示回零,发出此警告时系统无法启动程序,但不影响手动/手轮移动各轴或手动控制各个输出,当轴回零完成后警告清除。
参数:PLC参数K33.0 各轴未回零警告(0:否1:是)有效K33.1 3TH轴未回零警告(0:是1:否)屏蔽K33.2 4TH轴未回零警告(0:是1:否)屏蔽K33.3 5TH轴未回零警告(0:是1:否)屏蔽




