1:当同一把刀,加工多个地方,而程序比较长,为方便现场方便调机,应选择性,输出强制换刀。
2;新建嵌入式宏程序Forced_knife_change
lvi ir3, new_dim_of_cycle
sri ir1, 2
cmpi ir3, ir1
jne out_TC
;----------------判断当前工单是否为2D工单(2为2D工单/3为3D工单/5为多轴工单),若是继续执行下一个判断,否则直接跳转到输出
srs sr1, CYCLETYPE
sri ir2, 0
call jld_find_string ;从当前POF文件中,寻找CYCLETYPE的变量值,获取到的值,寄存在sr2里面
srs sr1, "DmdX5"
cmps sr2, sr1
je out_TC
;------------------继续判断,这个2D工单是否是螺旋钻工单,若是,则跳转到输出,否则继续执行下一个判断
lvi ir3, new_type_of_cycle 当螺旋钻开启精加工时:new_type_of_cycle为零
sri ir2, 1 当螺旋钻关闭精加工时:new_type_of_cycle为1
cmpi ir3, ir2 介于这个地方比较狗血,所以提前将螺旋钻工单的去处安排好。
je not_TC
;------------------继续判断这个工单是否为钻孔工单(0为铣削工单/1为钻孔工单/2为铣螺纹工单),若是跳转到竭束,不输出换刀,否则继续执行
lbl out_TC
lvi ir3, Tchange
jz not_TC
;-----------------判断当前是否是手动换刀模式,若是则跳转到竭束
lvi ir3, first_move
jz not_TC
;------------------判断当前是否是首次移动,若是则继续,不是跳转到竭束
srs sr1, "P4"
sri ir2, 0
call jld_find_string ;call jld_find_string/获取字符串值。寄存在sr2/ call jld_find_ float/获取浮点数值。寄存在fr1
mov fr1, sr2 ;call jld_find_int/获取整型数值。寄存在ir3
jz not_TC
;-------------------判断自由参数是否有值,有值继续执行,没有值,则跳转到竭束
exec Tchange ;调用换刀程序段,内置了Output_before_tool_change宏程序
exec singleTCAutomatic ;调用单次换刀模块
lbl not_TC
本宏程序在程序段里面的主轴转速模块被调用,
强制换刀的出,不适用钻孔工单,有bug易出错。。。







承担因您的行为而导致的法律责任,
本站有权保留或删除有争议评论。
参与本评论即表明您已经阅读并接受
上述条款。