简介 数控卧式加工中心机床在加工零件时,由于零件加工部位的需要,通常要求工作台旋转任意角度。当工件坐标系原点与工作台旋转中心重合时,工作台的旋转不会给加工带来影响。但是由于工件坐标系原点的选择是根据零件结构特点、编程的需要而确定的,通常被加工零件无法与工作台的旋转中心重合,工件坐标系原点的位置随着工作台的旋转,在机床坐标系中发生变化。因此,要重新设定工件坐标系原点。现在我们公司采用的方法是:一个面的工件坐标系原点设定好之后,根据补偿值,人工计算其他面的工件坐标系原点并输入到相应的工件坐标系中,容易出错,且只能计算工作台旋转90度、180度、270度位置的工件坐标系原点,不能计算任意旋转角度的坐标系原点。该程序可根据初始工件坐标系原点设定值,实现工作台旋转任意角度的工件坐标系原点自动补偿计算,并设定新的工件坐标系原点,自动输入到相应的工件坐标系中,减少了工件坐标系设定时间和出错的概率,提高了生产效率和准确性。 原理 当工件随夹具在工作台上安装后,初始工件坐标系原点经测量、设定后,在机床坐标系中即被确定。工件坐标系原点与工作台旋转中心的关系如下图所示: 根据主轴B端(机床原点)和工作台回转中心的相对位置,分为两种情况,第一种情况如下:
图中#110、#111表示工作台旋转中心O在机床坐标系中的X、Z值,#101、#103为初始工件坐标系原点A的测量设定值X、Z,#106、#107表示A点随工作台旋转一定角度后的B点的X、Z坐标。根据以上几何关系设计的自动补偿程序如下:#110=-624.94;#111=-199.5;回转中心都是负值 主程序 O7888; G65A1B90C2P7999; G65A1B180C3P7999; G65A1B270C4P7999; M30;
子程序 O7999; #110=-624.94; #111=-199.5; IF[#1LT1]GOTO3000; IF[#1GT60]GOTO3000; IF[#1EQ49]GOTO3000; IF[#1EQ50]GOTO3000; IF[#1EQ51]GOTO3000; IF[#1EQ52]GOTO3000; IF[#1EQ53]GOTO3000; IF[#1LE48]GOTO20; #101=#[5221+[#1-54]*20]; #102=#[5222+[#1-54]*20]; #103=#[5223+[#1-54]*20]; #104=#[5224+[#1-54]*20];读取B轴的数据 GOTO30; N20#101=#[7001+[#1-1]*20]; #102=#[7002+[#1-1]*20]; #103=#[7003+[#1-1]*20]; #104=#[7004+[#1-1]*20]; GOTO30; N30#21=#101-#110; #22=#103-#111; #30=ABS[#21]; #31=ABS[#22]; IF[#2GT0]GOTO40; #2=#2+360; N40IF[#21EQ0]GOTO50; IF[#22EQ0]GOTO60; IF[#21GT0]GOTO70; IF[#22GT0]GOTO80; IF[#22LT0]GOTO90; N50IF[#22EQ0]GOTO100; IF[#22GT0]GOTO200; IF[#22LT0]GOTO300; N60IF[#21GT0]GOTO400; IF[#21LT0]GOTO500; N70IF[#22LT0]GOTO600; IF[#22GT0]GOTO700; N80#120=ATAN[#30] / [#31]; GOTO1000; N90#120=ATAN[#31] / [#30]+90; GOTO1000; N100#101=#110; #103=#111; GOTO1050; N200#120=180; GOTO1000; N300#120=0; GOTO1000; N400#120=270; GOTO1000; N500#120=90; GOTO1000; N600#120=ATAN[#30] / [#31]+180; GOTO1000; N700#120=ATAN[#31] / [#30]+270; GOTO1000; N1000#18=SQRT[[#101-#110]*[#101-#110]+[#103-#111]*[#103-#111]]; #19=#120+#2 #23=#18*SIN[#19]; #24=#18*COS[#19]; #25=ABS[#23]; #26=ABS[#24]; #108=#104+#2; IF[#108LT360]GOTO800; IF[#108GE360]GOTO900; N900#108=#108-360; N800IF[#19LE90]GOTO1010; IF[#19LE180]GOTO1020; IF[#19LE270]GOTO1030; IF[#19LE360]GOTO1040; IF[#19LE450]GOTO1010; IF[#19LE540]GOTO1020; IF[#19LE630]GOTO1030; IF[#19LE720]GOTO1040; N1010#106=#110-#25; #107=#111+#26; GOTO2000; N1020#106=#110-#25; #107=#111-#26; GOTO2000; N1030#106=#110+#25; #107=#111-#26; GOTO2000; N1040#106=#110+#25; #107=#111+#26; GOTO2000; N1050#106=#110; #107=#111; #108=#104+#2; IF[#108GE360]GOTO1060; N1060#108=#108-360;当基准工件坐标系是位于270时,旋转240度时超过360度的处理 N2000 IF[#3LT1]GOTO3000; IF[#3GT60]GOTO3000; IF[#3EQ49]GOTO3000; IF[#3EQ50]GOTO3000; IF[#3EQ51]GOTO3000; IF[#3EQ52]GOTO3000; IF[#3EQ53]GOTO3000; IF[#3LE48]GOTO2200; N2100#[5221+[#3-54]*20] =#106; #[5222+[#3-54]*20] = #102; #[5223+[#3-54]*20] = #107; #[5224+[#3-54]*20] = #108;赋值B轴的数据 GOTO2300; N2200#[7001+[#3-1]*20] =#106; #[7002+[#3-1]*20] =#102; #[7003+[#3-1]*20] = #107; #[7004+[#3-1]*20] = #108; 赋值B轴的数据 N2300 M99; N3000#3000=21;(#A&#C DATA ERROR) 该程序已经在‘斗山HM800卧式加工中心’成功验证。
第二种情况如下:#110=525.035; #111=-99.92;回转中心一正一负
主程序 O7888; G65A1B90C2P7999; G65A1B180C3P7999; G65A1B270C4P7999; M30;
|