登录【网站注册】点击左边“微信账号登陆”图标,微信扫描即自动注册并登陆
搜索
查看: 1382|回复: 0

[分享资料] 宏程序加工应用实战案例讲解高级篇

[复制链接]
发表于 2017-5-23 17:57:32 | 显示全部楼层 |阅读模式
你自以为的极限只是别人的起点
1.jpg
FANUC加工批量产品宏应用编程解析
工厂中时常会出现以下情况:
1、加工产品原材料厂商有多个,加工出的产品不知道是哪家厂商提供的原料2、加工中出现的异常产品无法追溯到加工的对应加工中心,难于即刻调试产品尺寸
3、加工的产品由白晚班或三个班组同时加工的,出现产品质量问题无法找到当事班组
4、多工序加工转序过程中发现前期产品质量异常,无法知道加工日期时间及当事班组人员

O100
G91 G28 Z0.
G17 G40 G80 G49 G69
T8 M6
IF[#799LE0]OR[#799GT120]THEN #3000=1;(对加工中心机台数编号在1~120之间,数值根据实际情况随意设置)
G0G90G54X34.2Y-38.1M8;
G43Z50.H8 S1200 M3;
G0G90Z15.;
IF[#794EQ1.0]GOTO4321(判断是否标记原料供应商)
(供应商)
G0G90X[-42.4+5.0]Y-47.03;
G01Z1.15F3000.;
G0Z5.0;
N4321;
(机台号)
#11=#799(事先在该变量值中输入相对应的机台编号)
#12=0
#13=0
N1174
IF[#11EQ[FIX[#11/2]*2]]THEN #12=0.7(采用二进制判断机台编号打点,仔细判断两者差值均在0或1)
G0G90X[10.65-#13]Y[-55.54-#12]
G01Z1.15F3000.
G0Z5.0
#12=0
#11=FIX[#11/2]
#13=#13+1.1
IF[#11GT0.]GOTO1174
(以上代码逻辑关系直到机台编号被2除尽)
#11=0
#12=0
#13=0
(班别号,逻辑关系较多)
#796=#3012/10000.(自动识别机台当前时间赋值到该变量)
IF[#797EQ1.]GOTO1171(当倒班时需要更改该变量数值等于1,确保该形式标记点一直被一个班采用)
#24=-29.23(代表晚班使用的坐标值)
IF[#796GT8.20]AND[#796LT20.30]THEN#24=-39.45(判断为白班时间的坐标值)
GOTO1161
N1171(使标记位置始终随着一个班组,转班后)
#24=-39.45
IF[[#796GT8.2]AND[#796LE20.30]]THEN #24=-29.23(判断转白班时间后坐标值还是随着一个班组)
N1161
#1=0
G0G90G54X[#24]Y-55.54
G01 Z1.15 F3000
G0 Z5.0
( 模组号)
IF[#798LE0.]OR[#798GT4.0]THEN #3000=1.(是判断机台内加工工件为一出四)
#24=-15.95(模组号起始坐标值)
#1=0
N1175
G0G90X[#24]Y-55.54
G01 Z1.15 F3000.
G0 Z5.
#24=#24-1.1
#1=#1+1.
IF[#1EQ#798]GOTO1176(判断模组号与加工工件对应,既如果机台内共加工四件产品,其中有一件异常就可以找出在哪一个模组上加工的,进行调试)
GOTO1175
N1176(标记产品加工的年月日)
(月)
#11=FIX[#3011/100]-[FIX[#3011/10000]*100]
#12=0
#13=0
N1741
IF[#11EQ[FIX[#11/2]*2]]THEN #12=0.7
G0G90X[23.95-#13]Y[-55.54-#12]
G01Z1.15F3000
G0Z5.0
#12=0
#11=FIX[#11/2]
#13=#13+1
IF[#11GT0]GOTO1741
#11=0
#12=0
#13=0
(日)
#11=#3011-FIX[#3011/100]*100
#12=0
#13=0
N1742
IF[#11EQ[FIX[#11/2]*2]]THEN #12=0.7
、、、、、
此处省略,同月类似
、、、、、
G91G28Z0M05
G49 M9
M30
关键变量解析
#3011------该变量用于读取当前年月日,例如2017年5月13日表示为20170513
#3012------该变量用于读取当前时分秒,例如下午15点13分56秒表示为151356
#3000------当变量#3000值为0~200时,CNC停止运行且报警。可在表达式后指定不超过26个字符的报警信息。例如:IF[#100GE1]THEN#3000=1(THE TOOL LIFE OVER!!!)
FUP------上取整   FIX------下取整
(CNC处理运算数值时,若操作后产生的整数绝对值大于原数绝对值,为上取整;反之为下取整。对于负数处理要小心。例如:假设#1=1.1、#2=-1.1   当#3=FUP[#1]时,2.0赋值给#3   当执行#3=FIX[#1]时,1.0赋值给#3  当执行#3=FUP[#2]时,-2.0赋值给#3  当执行#3=FIX[#2]时,-1.0赋值给#3)

【温馨提示】技术问题请优先发到问答专栏,优胜教师团队将及时回复,谢谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


快速回复 返回顶部 返回列表