发个子程序,很方便的…可以记录每把刀具加工数量
IF[ FIX[#1] LE 0 ] GOTO101;(如果加工数量小于等于零.转移至101段,只计数不报警)#3=FIX[#4120/100];(检测当前刀具号,化为个位数并取整)
#2=#3+500;(加工数量要储存到变量号的计算)
IF[#[#2]GE#1]GOTO100;(判断是否达到加工数量)
N101#[#2]=#[#2]+1;(加工数量加一)
M99;
N100M9;(加工到指定数值时执行)
M5;
#19=#3*100-200;(计算要换哪把刀,此处为十工位斜导轨机床,换刀为减两个刀位)
IF[#19 EQ 0] THEN#19=1000;(计算刀具号为0时,执行T1000)
IF[#19 EQ -101 ] THEN#19=900;(同上)
T#19;(换刀,将要换刀片的刀换出来)
#[#2]=0;(清空计数变量)
#3000=#3(T ERROR);(发出报警,后面括号里为报警信息,报警编号为3000+#3,如果是1号刀,编号就为3001)
主程序为
O1
G50 S1800 M3;
G96 S240 T0101 M8;
G65 P(子程序号) A(加工上限);
G00X150Z1;
…
…
M30; 加工数量存储在公共变量里,不会因为断电而被清除,适合交接班,不需检查刀片是否能使用,程序会自动监控报警提醒换刀,如1号刀,加工数量被存储在#501中,报警后会被清零! 如果不指定加工数量或者指定加工数量小于1时,将只记数不报警提醒换刀,已存储的加工变量可以随时更改,改变与刀具号相对应的公共变量即可,这样可以更灵活使用 不错,值得借鉴!!!!{:soso_e100:} 最方便还是做成G代码调用,并将子程序锁起来防删除…希望能给大家生产带来方便,不足之处还请各位大侠多多指点 过来看看。。。。。。。。。。 自己顶顶……………在车床上测试过了,蛮好用的 {:soso_e100:}{:soso_e189:} 利用这个程序可以把每把刀的加工数量单独记录到公共变量里面去,一号刀记录到#501里面,二号刀记录到#502里面,依此类推…每次执行加工时他都会去比对下这把刀的加工数量是否超出你设定的值(即A(#1)值)。如果超过证明刀片已经不能再加工了,程序会把机床停了,把要换的刀转过来,并报警哪把刀要换,报3001是一号刀,报3002是二号刀,依此类推…报警后相对应变量被清零,重新计数