I 背景:
在实际生产中,当生产批量较大时,往往会要求在每个工件上刻写当天的加工日期,由于日期每天都是变化的,如果每天都更改加工程序,会给编程者带来较大的工作量,且增加出错的风险,基于此,本文提供一个年月日的自动刻字加工样例,供工程师参考!
II 适用系统:
808,828铣床版系统
III 程序解释:
1、本文程序,必须正确设置以下6个R变量,才能使用
R25=60 ;Z轴进刀速度
R26=600 ;加工速度
R27=-0.1 ;刻字深度
R29=6.0 ;字间距
R30=100 ;第一个数字,基于当前生效坐标系的X轴偏移位置
R31=100 ;第一个数字,基于当前生效坐标系的Y轴偏移位置
2、读取系统的年/月/日,并拆分成单个数字
R40=TRUNC($A_YEAR/10) ;使用TURNC取整指令,计算年的十位数字
R41=$A_YEAR MOD 10 ;使用MOD取余数指令,计算年的个位数字
R42=TRUNC($A_MONTH/10) ;使用TURNC取整指令,计算月的十位数字
R43=$A_MONTH MOD 10 ;使用MOD取余数指令,计算月的个位数字
R44=TRUNC($A_DAY/10) ;使用TURNC取整指令,计算日的十位数字
R45=$A_DAY MOD 10 ;使用MOD取余数指令,计算日的个位数字
3、排列每个数字的位置并执行对应的子程序
TRANS X=R30Y=R31Z=R27 ;使用TRANS绝对位置偏移指令,确定年十位数字的位置
R28=R40 ;将年十位数字赋值给R28
REPEAT SS1 SS2 ;调用标记SS1到标记SS2之间的子程序
ATRANS X=R29 ;使用ATRANS增量位置偏移指令,确定年个位数字的位置
R28=R41 ;将年个位数字赋值给R28
REPEAT SS1 SS2 ;调用标记SS1到标记SS2之间的子程序
. . .
. . . ;其它数字按以上格式编写
. . .
TRANS ;取消TRANS偏移指令
G74Z0. ;Z轴回零
M30 ;程序结束
4、根据R28的值,调用对应的刻字程序。需注意,以下程序必须写在M30之后
SS1: ;子程序起点标记
IF R28==0 ;如果R28等于0
REPEAT SS_0 SS_00 ;调用标记SS_0到标记SS_00之间的子程序
ENDIF ;结束IF指令
IF R28==1 ;如果R28等于1
REPEAT SS_1 SS_11 ;调用标记SS_1到标记SS_11之间的子程序
ENDIF ;结束IF指令
. . .
. . . ;其它数字按以上格式编写
. . .
IF R28==10 ;如果R28等于10
REPEAT SS_L SS_LL ;调用标记SS_L到标记SS_LL之间的子程序
ENDIF ;结束IF指令
SS2: ;子程序终点标记
5、“0~9”及“/”子程序。本文提供的刻字程序为字高5毫米的单线体,在实际使用中,如有其它要求,直接更改0~9的刻字子程序即可
SS_1: ;子程序起点标记
G0 G90 X0. Y4.286
Z5.
Z.5
G1 Z0. F=R25
X.714 Y5. F=R26 ;数字“1”的子程序
Y0.
G0 Z3.
X0.
Z.5
G1 Z0. F=R25
X.714 F=R26
X1.429
G0 Z5.
SS_11: ;子程序终点标记
. . .
. . . ;其它数字程序按以上格式编写,注意起点和终点标记的规则
. . .
SS_L: ;子程序起点标记
G0 G90 X0. Y0.
Z5.
Z.5
G1 Z0. F=R25 ;“/”的子程序
X2.489 Y4.936 F=R26
G0 Z5.
SS_LL: ;子程序终点标记
6、以下附件提供了完整的加工程序,在实际使用中,建议将该程序作为子程序直接调用