SINUMERIK系统的刀具参数变量可为现代数控机床定义切削刀具的补偿存储器,用以给定刀具类型、刀沿位置、几何形状和磨损量补偿。补偿存储器1~25内的各个参数值先在程序语句中编程赋值,再经NCK读取和写入这些系统变量,进而实现CNC系统的刀具功能和补偿功能。通常,切削刀具类型不同,其刀具参数变量的含义有所不同。MD18105 $MN_MM_MAX_CUTTING_EDGE_NO设定切削刃编号(亦称D编号)的最大值,MD18106 $MN_MM_MAX_CUTTING_EDGE_PERTOOL设定每把刀具的切削刃(刀沿)数量,并且前者的设定值务必大于后者的(MD18105>MD18106)。
给出WDZ350型倒立式轴类车削中心的刀具长度补偿设置防错宏程序TOOL_CHECK.SPF。
,
TOOL_CHECK.SPF;
刀具长度补偿设置防错宏程序
/_N_CMA_DIR/;
存储路径:机床制造商循环目录
N01 PROC TOOL_CHECK(STRING[32] _TOOLNO,INT _TOOL,REAL GEOMETRY1,REAL GEOMETRY2,REAL GEOMETRY3,REAL ADAPTER1,REAL ADAPTER2,REAL ADAPTER3,REAL WEAR1,REAL WEAR2,REAL WEAR3,INT _TURRET_POS) DISPLOF SBLOF SAVE PREPRO;
PROC标记TOOL_CHECK子程序,后续参数(不超127个)传送中的各参数在该语句中说明变量类型和变量名称,DISPLOF抑制当前程序段显示,SBLOF关闭程序单段执行机能,SAVE保护TOOL_CHECK调用时的所有模态G机能和当前框架,PROC行内PREPRO给定引导启动的准备文件
N02 DEF REAL TOLLERANZ_GEOMETRY=0.5;
定义实数类型变量:几何长度公差,赋值0.5mm
N03 DEF REAL TOLLERANZ_ADAPTER=0.5;
定义实数类型变量:适配器/基准长度公差,赋值0.5mm
N04 DEF REAL TOLLERANZ_WEAR=0.5;
定义实数类型变量:磨损长度公差,赋值0.5mm
N05 DEF STRING[80] _MSG_VARIABLE;
定义字符串类型变量:报警信息,字符数≤80
N06 DEF STRING[20] _TEXT_GEOMETRIE1;
定义字符串类型变量:几何长度1,字符数≤20
……
……
省略字符串类型变量定义:几何长度2/3、基准长度1/2/3、磨损1/2/3、刀沿、刀塔,最大字符数均不超20
N17 CASE ($AN_LANGUAGE_ON_HMI) OF 8 GOTO _N8 DEFAULT GOTO _N3;
变量$AN_LANGUAGE_ON_HMI用以选定HMI中当前的语言,CASE检测到常量后,程序就跳转至既定目标处
N22 _N8: _TEXT_GEOMETRIE1="GEO-X T='"'" _TEXT_GEOMETRIE2="GEO-Z T='"'" _TEXT_GEOMETRIE3="GEO-Y T='"'" _TEXT_ADAPTER1="ADAP-X T='"'" _TEXT_ADAPTER2="ADAP-Z T='"'" _TEXT_ADAPTER3="ADAP-Y T='"'" _TEXT_WEAR1="WEAR-X T='"'" _TEXT_WEAR2="WEAR-Z T='"'" _TEXT_WEAR3="WEAR-Y T='"'" _TEXT_TURRET="TURRET POS T='"'" _TEXT_SHOULD=" SHOULD="
1-德文、3-英文、8-中文,默认跳转_N3。
省略“1 GOTO _N1”及后续相关语句N18和N21。
CASE=8时,程序跳至标签_N8,HMI语言为中文。
对语句N06~N16给定的字符串类型变量赋值,依次为几何长度1/2/3、基准长度1/2/3、磨损长度1/2/3、刀塔和刀沿
N23 GOTO _NEXT;
跳至标签_NEXT处
N24 _NEXT;
标签_NEXT
N25 IF $P_TMNOIS[GETT(_TOOLNO)]==(-3) GOTO _END;
$P_TMNOIS给定T编号类型,GETT给目标刀具提供必需的T编号,IF条件:值=-3则跳至标签_END处
N26 IF (ABS($TC_DP3[GETT(_TOOLNO),_TOOL]-GEOMETRY1)>TOLLERANZ_GEOMETRY) AND ($P_SUBPAR[3]==TRUE);
IF条件:>0.5mm。$TC_DP3[…]将_TOOLNO刀具写入补偿值长度1,$P_SUBPAR[3]将长度1编入子程序调用中
_MSG_VARIABLE=<<_TEXT_GEOMETRIE1<<_TOOLNO<<"'"' D"<<_TOOL<<_TEXT_SHOULD<<GEOMETRY1<<"MM";
经由字符串级联运算符“<<”链接最多80个字符,对报警信息变量_MSG_VARIABLE赋值
N28 GOTO _ERROR;
长度1实际差异值>预警值0.5时,跳至标签_ERROR处
N29 ENDIF;
“(ABS($TC_DP3…”跳转结束
N30 IF (ABS($TC_DP4[GETT(_TOOLNO),_TOOL]-GEOMETRY2)>TOLLERANZ_GEOMETRY) AND ($P_SUBPAR[4]==TRUE);
>0.5mm,$TC_DP4[…]将_TOOLNO刀具写入长度2,$P_SUBPAR[4]将长度2编入调用中
_MSG_VARIABLE=<<_TEXT_GEOMETRIE2<<_TOOLNO<<"'"' D"<<_TOOL<<_TEXT_SHOULD<<GEOMETRY2<<"MM";
级联的字符串依次:(文本)长度2,T编号,D编号,刀号,刀沿,HMI长度2,毫米mm
N32 GOTO _ERROR;
长度2实际差异值>预警值0.5时,跳至标签_ERROR处
N33 ENDIF;
“IF $P_TMNOIS…”跳转结束
N34 IF (ABS($TC_DP5[GETT(_TOOLNO),_TOOL]-GEOMETRY3)>TOLLERANZ_GEOMETRY) AND ($P_SUBPAR[5]==TRUE);
>0.5mm,$TC_DP5[…]将_TOOLNO刀具写入长度3,$P_SUBPAR[5]将长度3编入调用中
_MSG_VARIABLE=<<_TEXT_GEOMETRIE3<<_TOOLNO<<"'"' D"<<_TOOL<<_TEXT_SHOULD<<GEOMETRY3<<"MM";
级联的字符串依次:(文本)长度3,T编号,D编号,刀号,刀沿,HMI长度3,毫米mm
N36 GOTO _ERROR;
长度3实际差异值>预警值0.5时,跳至标签_ERROR处
N37 ENDIF;
“IF (ABS($TC_DP5…”跳转结束
N38 IF (ABS($TC_DP21[GETT(_TOOLNO),_TOOL]-ADAPTER1) >TOLLERANZ_ADAPTER) AND ($P_SUBPAR[6]==TRUE);
>0.5mm,$TC_DP21[…]将_TOOLNO刀具写入基准长度1,$P_SUBPAR[6]将基准长度1编入子程序调用中
……
省略$TC_DP23、$TC_DP12及$TC_TPC1等相关语句
N78 _END:;
标签_END
N79 SETAL(65090);
SETAL给定用户循环报警65090:通道1内无刀具
N80 M00;
程序暂停
N81 STOPRE;
进刀停止,程序段预读完毕后,再继续执行程序
N82 GOTO _END;
跳至标签_END处,先向前至程序结束再回跳至程序头
N83 RET;
子程序TOOL_CHECK.SPF返回上一层