How to automate Tool Setting using a Laser Tool Setter

Introduction

Hello friends!

Today I am demonstrating some programs that automated tool setup for our machine that is equipped with the Siemens controller and a Blum-Novotest laser presetter.

These programs have been tested on the 840d and should be compatible with the other 800 series controllers (802, 808, 810, 828, 840).

Application focus: Siemens 840d

The procedure starts with a subprogram that I designated set_tools.spf:

SET_TOOLS.SPF:

PROC SET_TOOLS(INT tlstartnum, INT tlendnum)
DEF tlnum
FOR tlnum = tlstartnum TO tlendnum
  T=tlnum M6
  S2000 M3
  BL9902(3,0.002,0,3,0.0004)
ENDFOR
RET;
 

If we are able to count the tools that are assigned positions in the carrier using System Variables then this function would not need input. This would be advantageous because then we could simply call the subprogram from MDI, without arguments:

MDI:

SET_TOOLS

But since I don’t know how to do that yet (we’ve only had a siemens for two months) I opted to let the operator input the pot numbers.

Since we are passing arguments to our function I settled on using a main program to call it:

SETUP_TOOLS.MPF:

EXTERN SET_TOOLS(INT, INT)
; (INPUT START AND END TOOL NUMBERS)
SET_TOOLS(1, 18)
M30
 

If you know how to ask the 840 how many tools are assigned to the carrier, please post a comment!

Other Applications

You could recreate this method using any machine tool that is equipped with a LTS. You just need to know which program to call run the tool setting cycle. Using a machine that has more traditional G-code you could implement a program similar to this pseudo-code:

Program Call:

(A: START TOOL NUMBER)
(B: START TOOL NUMBER)
G65 P9191 A1 B10

Program:

%
O9100(Set tools)
WHILE[#1LT#2]DO1
  G91 G28 Z0
  T[#1] M6
  G65 P[NUMBER OF TOOL SETTING PROGRAM] (Or an M-code if you have the program mapped to one)
  #1=#1+1
END1
%
If you have any questions please leave a comment. Thanks for reading!

Leave a Reply

Your email address will not be published. Required fields are marked *