2009年11月24日星期二
Siemens 840D悬垂补偿,如何补双向
SIEMENS 840D刀具管理参数与变量的应用(优秀论文)
摘要:刀具管理是加工中心维改过程中经常用到的重要功能,本文就其机床参数的含义与设置、刀具管理有关的系统变量的含义与应用进行详细地阐述。
SIEMENS 840D数控系统可选配刀具管理功能,它具有刀具装载、卸载、重新定位、刀具数据管理、刀具类型管理以及刀位搜索等功能,提供刀具管理数据修改功能FC块和后台数据块作为PLC接口,根据刀库结构形式来组态,灵活方便、功能强大,可适用于转塔式、链式、抽屉式以及多种特殊结构的刀库。
换刀、换附件通过NC编程与PLC编程相结合来实现,NC程序控制相应的轴定位,一定的步骤完成即通知PLC修改刀具管理数据,使其与实际状态始终保持一致。由于刀库有关数控轴通常分配在第2通道,NC编程时需注意两个通道之间的程序协调。如果将刀库有关的轴改变为PLC轴,则可以通过PLC程序来控制轴移动,为方便调试及点动操作,可设置单键切换回NC轴。
由于篇幅所限,本文仅就刀具管理功能有关的机床参数和系统变量进行阐述。
1. 机床参数
MD18080:MM_TOOL_MANAGEMENT_MASK,刀具管理内存(SRAM)区间设定。该参数为双字(DWORD)数据格式,其中位0~9有定义,分别设定不同的数据区是否有效。
MD18082:MM_NUM_TOOL,NCK能够管理的最大刀具数量。该参数取值范围为0~600,默认值为30,其设定值应大于或等于实际刀具总数。
MD18084:MM_NUM_MAGAZINE,NCK管理的刀库数量。该参数取值范围为0~32,默认值为3,刀库数量应包括虚拟刀库、系统内部定义的缓冲区(9998)和装载点(9999)。
MD18086:MM_NUM_MAGAZINE_LOCATION,NCK管理的刀位数量。该参数取值范围为0~600,默认值为30,其设定值应大于或等于实际刀位总数。
MD18088:MM_NUM_TOOL_CARRIER,可定义的最大刀架数量。该参数取值范围为0~99999999,默认值为0,如果应用刀架运动实现刀具补偿,则该参数值应大于或等于1。
MD18090:MM_NUM_CC_MAGAZINE_PARAM,OEM自定义的刀库描述数据数量。
MD18091:MM_TYPE_CC_MAGAZINE_PARAM[0…9],OEM自定义的刀库描述数据类型,MD18091[0]~[9]分别对应MD18090中规定的最多10个自定义数据的类型。
MD18092:MM_NUM_CC_MAGLOC_PARAM,OEM自定义的刀位描述数据数量。
MD18093:MM_TYPE_CC_MAGLOC_PARAM[0…9],OEM自定义的刀位描述数据类型,MD18093[0]~[9]分别对应MD18092中规定的最多10个自定义数据的类型。
MD18094:MM_NUM_CC_TDA_PARAM,OEM自定义的刀具描述数据数量。
MD18095:MM_TYPE_CC_TDA_PARAM[0…9],OEM自定义的刀具描述数据类型,MD18095[0]~[9]分别对应MD18094中规定的最多10个自定义数据的类型。
MD18096:MM_NUM_CC_TOA_PARAM,OEM自定义的刀沿描述数据数量。
MD18097:MM_TYPE_CC_TOA_PARAM[0…9],OEM自定义的刀沿描述数据类型,MD18097[0]~[9]分别对应MD18096中规定的最多10个自定义数据的类型。
MD18098:MM_ NUM_CC_MON_PARAM,OEM自定义的刀沿监控数据数量。
MD18099:MM_TYPE_CC_MON_PARAM[0…9],OEM自定义的刀沿监控数据类型,MD18099[0]~[9]分别对应MD18098中规定的最多10个自定义数据的类型。
MD18100:MM_NUM_CUTTING_EDGES_IN_TOA,每个TOA域中最大刀沿数量。
MD18105:MM_MAX_CUTTING_EDGE_NO,刀沿号的最大值。该参数取值范围为1~32000,默认值为9,其设定值应大于或等于MD18106值。
MD18106:MM_MAX_CUTTING_EDGE_PERTOOL,每把刀的最大刀沿数量。该参数取值范围为1~12,默认值为9,其设定值以满足实际应用即可。
MD10715:M_NO_FCT_CYCLE,调用换刀循环的M功能代码。该参数定义了每一个M功能代码调用一个对应MD10716中的循环运行。该参数默认值为-1(即无M功能代码生效)。
MD10716:M_NO_FCT_CYCLE_NAME,M功能调用的换刀循环名称。
MD10717:T_NO_FCT_CYCLE_NAME,T功能调用的刀具准备循环名称。
MD20310:MC_TOOL_MANAGEMENT_MASK,激活不同类型的刀具管理功能。该参数为双字(DWORD)数据格式,其中位0~23有定义,分别定义刀具管理功能的各种特性。
MD20320:MC_TOOL_TIME_MONITOR_MASK,激活刀具寿命(刀具在主轴x中使用的时间)监控。该参数数据格式位双字(DWORD),从低位到高位,状态“1”分别对应激活刀具在主轴1~主轴x中的时间监控。
MD22550:MC_TOOL_CHANGE_MODE,新刀具补偿生效的时间。该参数取值范围为0~1,默认值为0。
MD22560:MC_ TOOL_CHANGE_M_MODE,定义换刀M功能代码。该参数取值范围为0~99999999,默认值为6。
MD28085:MM_LINK_TOA_UNIT,指定TOA单元到通道,将组态号的TOA分配到目标通道中。
MD20110:MC_RESET_MODE_MASK,定义系统复位时各种功能与设置的状态。该参数为双字(DWORD)数据格式,其中位0~17有定义,分别定义复位时各种功能的状态。
MD20112:MC_START_MODE_MASK,定义程序启动时各种功能与设置的状态。该参数为双字(DWORD)数据格式,其中位0~17有定义,分别定义程序启动时各种功能的状态。
2. 系统变量
2.1 刀库数据
刀库数据包括刀库描述数据、刀位描述数据、刀位类型层次数据和换刀距离数据等。
$TC_MAP1[刀库号]:刀库类型。数据类型INT,预置值为0。1——链式,3——转塔式,5——抽屉式,7——缓冲区,9——装载点。
$TC_MAP2[刀库号]:刀库名称。数据类型STRING,预置值为空字符(“”)。
$TC_MAP3[刀库号]:刀库状态。数据类型INT,预置值为2。
$TC_MAP4[刀库号]:暂不可用。数据类型INT,预置值为-1。
$TC_MAP5[刀库号]:暂不可用。数据类型INT,预置值为-1。
$TC_MAP6[刀库号]:刀库列数。数据类型INT,预置值为1。
$TC_MAP7[刀库号]:刀库每列刀位数。数据类型INT,预置值为0。
$TC_MAP8[刀库号]:换刀位置时默认刀库位置。数据类型INT,预置值为0。
$TC_MAP9[刀库号]:默认磨损组号。数据类型INT,预置值为0。
$TC_MAP10[刀库号]:数据类型INT,预置值为0。其中位0~7:默认刀具搜索策略,位8~15:空刀位搜索策略。
$TC_MPP1[刀库号,刀位号]:刀位种类。数据类型INT,预置值为0。1——刀库刀位,2——主轴/刀座,3——手爪,4——装载位,5——传送位,6——装载站,7——装载点。
$TC_MPP2[刀库号,刀位号]:刀位类型。数据类型INT,预置值为9999。
$TC_MPP3[刀库号,刀位号]:是否考虑相邻位置。数据类型BOOL,预置值为“0”。“1”(TRUE)——考虑相邻位置,“0”(FALSE)——不考虑相邻位置。
$TC_MPP4[刀库号,刀位号]:刀位状态。数据类型INT,预置值为1。
$TC_MPP5[刀库号,刀位号]:刀位种类索引形式。数据类型INT,预置值为0。
$TC_MPP6[刀库号,刀位号]:在该刀位中的刀具刀号。数据类型INT,预置值为0,若无刀具则返回值0。
$TC_MPP7[刀库号,刀位号]:该刀位刀具适配器号。数据类型INT,预置值为0,若无刀具适配器则返回值0。
$TC_MAPC1~10[刀库号]:根据OEM定义。数据类型INT,预置值为0。根据MD18090参数定义该数据的有效数量。
$TC_MPPC1~10[刀库号,刀位号]:根据OEM定义。数据类型INT,预置值为0。根据MD18092参数定义该数据的有效数量。
$TC_MPTH[层次号n,刀位类型m]:刀位类型层次。数据类型WORD,预置值为9999。
$TC_MDP1[刀库号n,装载点号m]:刀库n的换刀位置到装载点库(9999)相应的装载点m的距离。数据类型INT,预置值为0。
$TC_MDP2[刀库号n,缓冲区刀位号m]:刀库n的换刀位置到缓冲区库(9998)相应的缓冲刀位m的距离。数据类型INT,预置值为0。
2.2 刀具数据
刀具数据包括刀具特性数据、磨削刀具数据、OEM刀具特性数据等。
$TC_TP1[刀具号]:Duplo号。数据类型INT,预置值为刀具号。
$TC_TP2[刀具号]:刀具名称。数据类型STRING,预置值为“刀具号”。
$TC_TP3[刀具号]:刀具中心线左侧占用的半刀位数。数据类型INT,预置值为1。
$TC_TP4[刀具号]:刀具中心线右侧占用的半刀位数。数据类型INT,预置值为1。
$TC_TP5[刀具号]:刀具中心线顶部占用的半刀位数。数据类型INT,预置值为1。
$TC_TP6[刀具号]:刀具中心线底部占用的半刀位数。数据类型INT,预置值为1。
$TC_TP7[刀具号]:刀具需占用的刀位类型。数据类型INT,预置值为9999。
$TC_TP8[刀具号]:刀具状态。数据类型INT,预置值为0。例如$TC_TP8[21]=18表示21#刀具有效但已达到预警限制值。
$TC_TP9[刀具号]:刀具监控方式。数据类型INT,预置值为0。例如$TC_TP8[15]=5表示15#刀具寿命监控和磨损监控有效。
$TC_TP10[刀具号]:换刀策略。数据类型INT,预置值为0。
$TC_TP11[刀具号]:刀具组(子组)。数据类型INT,预置值为0。例如$TC_TP11[5]=4表示5#刀具属于04刀具组。
$A_TOOLMN[刀具号]:刀具当前所在的刀库号。数据类型INT,预置值为0。
$A_TOOLMLN[刀具号]:刀具当前所在的刀位号。数据类型INT,预置值为0。
$P_TOOLND[刀具号]:刀具刀沿数量。数据类型INT,预置值为0。
$A_MYMN[刀具号]:所有者刀库号。数据类型INT,预置值为0。
$A_MYMLN[刀具号]:所有者刀位号。数据类型INT,预置值为0。
$TC_TPC1~10[刀具号]:根据OEM定义。数据类型REAL,预置值为0。根据MD18094参数定义该数据的有效数量。
2.3 刀沿数据
刀沿数据包括刀沿描述数据、刀沿监控数据、OEM刀沿数据等。
$TC_DP1[刀具号,刀沿号]:刀具类型(如155表示万能铣刀,120表示立铣刀)。数据类型INT,预置值为9999。
$TC_DP2[刀具号,刀沿号]:刀沿方向。数据类型REAL,预置值为0。
$TC_DP3[刀具号,刀沿号]:几何尺寸:长度1。数据类型REAL,预置值为0。
$TC_DP4[刀具号,刀沿号]:几何尺寸:长度2。数据类型REAL,预置值为0。
$TC_DP5[刀具号,刀沿号]:几何尺寸:长度3。数据类型REAL,预置值为0。
$TC_DP6[刀具号,刀沿号]:几何尺寸:半径。数据类型REAL,预置值为0。
$TC_DP7[刀具号,刀沿号]:开槽锯(刀具类型700)几何尺寸:圆弧半径。数据类型REAL,预置值为0。
$TC_DP8[刀具号,刀沿号]:开槽锯(刀具类型700)几何尺寸:长度4。数据类型REAL,预置值为0。
$TC_DP9[刀具号,刀沿号]:为几何尺寸:长度5保留。数据类型REAL,预置值为0。
$TC_DP10[刀具号,刀沿号]:刀具面与环形圆纹曲面之间的角度1。数据类型REAL,预置值为0。
$TC_DP11[刀具号,刀沿号]:刀具纵向轴与环形圆纹曲面上端之间的角度2。数据类型REAL,预置值为0。
$TC_DP12[刀具号,刀沿号]:刀沿磨损:长度1。数据类型REAL,预置值为0。
$TC_DP13[刀具号,刀沿号]:刀沿磨损:长度2。数据类型REAL,预置值为0。
$TC_DP14[刀具号,刀沿号]:刀沿磨损:长度3。数据类型REAL,预置值为0。
$TC_DP15[刀具号,刀沿号]:刀沿磨损:半径。数据类型REAL,预置值为0。
$TC_DP16[刀具号,刀沿号]:开槽锯刀沿磨损:圆弧半径。数据类型REAL,预置值为0。
$TC_DP17[刀具号,刀沿号]:开槽锯刀沿磨损:长度4。数据类型REAL,预置值为0。
$TC_DP18[刀具号,刀沿号]:为刀沿磨损:长度5保留。数据类型REAL,预置值为0。
$TC_DP19[刀具号,刀沿号]:刀沿磨损:刀具面与环形圆纹曲面之间的角度1。数据类型REAL,预置值为0。
$TC_DP20[刀具号,刀沿号]:刀沿磨损:刀具纵向轴与环形圆纹曲面上端之间的角度2。数据类型REAL,预置值为0。
$TC_DP21[刀具号,刀沿号]:刀座/适配器尺寸:长度1。数据类型REAL,预置值为0。
$TC_DP22[刀具号,刀沿号]:刀座/适配器尺寸:长度2。数据类型REAL,预置值为0。
$TC_DP23[刀具号,刀沿号]:刀座/适配器尺寸:长度3。数据类型REAL,预置值为0。
$TC_DP24[刀具号,刀沿号]:间隙角。数据类型REAL,预置值为0。
$TC_DP25[刀具号,刀沿号]:保留。数据类型REAL,预置值为0。
$TC_MOP1[刀具号,刀沿号]:刀具寿命的预警限值。数据类型REAL,预置值为0,单位:分钟。
$TC_MOP2[刀具号,刀沿号]:刀具寿命监控的当前值(刀具实际已用过的时间)。数据类型REAL,预置值为0,单位:分钟。
$TC_MOP3[刀具号,刀沿号]:工件数量预警限值。数据类型INT,预置值为0,单位:件。
$TC_MOP4[刀具号,刀沿号]:工件计数监控的当前值(刀具实际已加工的工件数量)。数据类型INT,预置值为0,单位:件。
$TC_MOP5[刀具号,刀沿号]:刀沿磨损预警限值。数据类型REAL,预置值为0,单位:mm。
$TC_MOP6[刀具号,刀沿号]:刀沿磨损实际值。数据类型REAL,预置值为0,单位:mm。
$TC_MOP11[刀具号,刀沿号]:刀具寿命监控的设定值。数据类型REAL,预置值为0,单位:分钟。
$TC_MOP13[刀具号,刀沿号]:工件数量监控的设定值。数据类型INT,预置值为0,单位:件。
$TC_MOP15[刀具号,刀沿号]:刀沿磨损监控的设定值。数据类型REAL,预置值为0,单位:mm。
$TC_DPC1~10[刀具号,刀沿号]:根据OEM定义。数据类型REAL,预置值为0。根据MD18096参数定义该数据的有效数量。
$TC_MOPC1~10[刀具号,刀沿号]:根据OEM定义。数据类型INT,预置值为0。根据MD18098参数定义该数据的有效数量。
Siemens 840D的CYCLE800怎么使用
用TRAORI指令,定义类型后即可实现RTCP。我们的加工中心安装时定义的运动转换类型居然不对也通过,后来我自己改的。
CYCLE800只能实现摆角后定平面加工时的刀长补。
The Swiveling cycle is not an option, but is available
with PCU 20/50, SW 06.02, and NCK SW 6.3 or later.
To use the swiveling cycle, the machine data below must be set as
follows (minimum requirement):
? MD 10602: FRAME_GEOAX_CHANGE_MODE=1
(only when the tool is corrected using TRAORI)
? MD 18088: MM_NUM_TOOL_CARRIER
Number of swivel data records
? MD 20126: TOOL_CARRIER_RESET_VALUE
described in CYCLE800
? MD 20180: TOCARR_ROT_ANGLE_INCR[0]=0
? MD 20180: TOCARR_ROT_ANGLE_INCR[1]=0
? MD 20182:TOCARR_ROT_ANGLE_OFFSET[0]=0
? MD 20182: TOCARR_ROT_ANGLE_OFFSET[1]=0
? MD 20184: TOCARR_BASE_FRAME_NUMBER=-1
? MD 22530: TOCARR_CHANGE_M_CODE
M code on swivel data changeover
? MD 24008: CHSFRAME_POWERON_MASK
bits 4, 3, 2=1 if system frames PAROT, TOROT, WPFRAME are
to be deleted on Power ON
? MD 28082:MM_SYSTEM_FRAME_MASK
bits 4, 3, 2=1
命令格式:CYCLE800(_FR, _TC, _ST, _MODE, _XO, _YO, _ZO, _A, _B, _C, _X1, _Y1, _Z1, _DIR)。
在编程时有图形界面的(如同CYCLE8x等),填空完后就可把指令插入用户程序中
Siemens 840D数控系统变量应用
前提:
以钻头为例,基于5轴H/V加工中心平台,兼容4轴H/V加工中心,840D控制系统。
介绍一个常识:不同的工作平面,轴变量所具体对应的含义。
Working - plane
$P_AXN1 $P_AXN2 $P_AXN3
G17 X Y Z
G18 Z X Y
G19 Y Z X
也就是说当使用G17的时候,$P_AXN1,$P_AXN2,$P_AXN3对应的XYZ,其他亦然。
所以,当你使用5轴H/V设备的时候,可以用变量的方式,完成"不同工作平面"的孔加工。这是使用它的目的。
$TC_DPC1[t,d]这里是钻头的半径值,类型是REAL;
$TC_DPC2[t,d]这里是钻头的钻尖角度,类型是REAL;
$P_TOOLNO是当前使用的刀号,注意:不是刀具名称!
$P_TOOL是当前使用的刀刃编号;
…… ;假设前面已经换好刀,运动到适当位置,以下程序和使用G17,G18,G19没有关系。
N0010 DEF AXIS AXIS_Z ;这是定义一个轴变量,在以后使用的时候引用,这也是钻孔的运动方向。
N0020 DEF REAL ZT_JIAODU,ZT_BANJING,ZT_ZJC
N0030 ZT_JIAODU=$TC_DPC2[$P_TOOLNO,$P_TOOL]
N0040 ZT_BANJING=$TC_DPC1[$P_TOOLNO,$P_TOOL]
N0050 IF ZT_JIAODU==180
N0060 ZT_ZJC=0 ;钻尖长度为零
N0070 ELSE
N0080 ZT_ZJC=(ZT_BANJING/TAN(ZT_JIAODU/2));注意,使用时,事先要先在定义刀具的时候,定义钻尖的角度,如果是平底钻,就定义成180
N0090 ENDIF
N0100 AXIS_Z=$P_AXN3
N0110 G0 G90 AX[AXIS_Z]=??? ;???是你需要走到的孔的位置
N0120 G1 AX[AXIS_Z]=?? ;??是你需要的孔深,如果不算钻尖,就需要减去ZT_ZJC就行可。
N0130 G0 AX[AXIS_Z]=? ;?退出的距离,离开工件表面就行了。
……
以上就是我们想到达的目的了。