Tool in spindle memory
31 Mar 2019 22:29 #130061
by MaHa
Replied by MaHa on topic Tool in spindle memory
A pretty weird attempt to remember and load data of last tool used, after restart your machine. I need this, because my probing routines don't like no tool loaded. I like this automated process.
After each toolchange: o<last_tool> call
Uses the log function to create a subroutine (o714.ngc), loading the last tool by o714 call.
o<last_tool> sub
(LOGOPEN,/home/abracadabra/NcFiles/714.ngc)
(LOG,o714 sub)
(LOG,M61 Q#5400)
(LOG,o714 endsub)
(LOG,M2)
(LOGCLOSE)
o<last_tool> endsub
entry in mymachine.hal:
after the last axis is homed, mdi command to load data of last tool
# ---HALUI signals---
net y-is-homed halui.joint.1.is-homed halui.mdi-command-00
.ini file entry:
[HALUI]
MDI_COMMAND = o714 call
It is just an example, but actually working.
After each toolchange: o<last_tool> call
Uses the log function to create a subroutine (o714.ngc), loading the last tool by o714 call.
o<last_tool> sub
(LOGOPEN,/home/abracadabra/NcFiles/714.ngc)
(LOG,o714 sub)
(LOG,M61 Q#5400)
(LOG,o714 endsub)
(LOG,M2)
(LOGCLOSE)
o<last_tool> endsub
entry in mymachine.hal:
after the last axis is homed, mdi command to load data of last tool
# ---HALUI signals---
net y-is-homed halui.joint.1.is-homed halui.mdi-command-00
.ini file entry:
[HALUI]
MDI_COMMAND = o714 call
It is just an example, but actually working.
Please Log in or Create an account to join the conversation.
01 Apr 2019 01:09 #130062
by andypugh
Replied by andypugh on topic Tool in spindle memory
I have determined that it is possible to add #5400 to the .var file, and the tool-in-spindle is then automatically recorded in there.
Unfortunately as soon as LinuxCNC starts that value is over-written again with a zero.
It should be possible to read the file directly, store the value and act on it.
Here is an attempt at Python script that can be loaded very early in the HAL sequence (loadusr tool_loader)
It doesn't work, it had got too late to finish it here:
The issues are:
(1) Not finding the INI file so not being able to read the PARAMETER_FILE
(2) It doesn't wait for "ok_for_mdi" and tries to run the MDI command at an invalid time.
But other than that, it looks like it might work. It does at least try to set the correct tool number.
Unfortunately as soon as LinuxCNC starts that value is over-written again with a zero.
It should be possible to read the file directly, store the value and act on it.
Here is an attempt at Python script that can be loaded very early in the HAL sequence (loadusr tool_loader)
It doesn't work, it had got too late to finish it here:
#! /usr/bin/env python
import sys
import linuxcnc
import re
s = linuxcnc.stat()
c = linuxcnc.command()
s.poll()
#inifile = linuxcnc.ini(sys.argv[1])
varfile = "sim_mm.var" #inifile.find("RS274NGC", "PARAMETER_FILE")
old_tool = 0
for line in open(varfile, "r"):
M = re.search("^5400\s([\.\d]*)", line)
if M: old_tool = re.search("^5400\s([\.\d]*)", line).group(1)
def ok_for_mdi():
s.poll()
return (not s.estop) and s.enabled and s.homed and (s.interp_state == linuxcnc.INTERP_IDLE)
while not ok_for_mdi:
print ok_for_mdi
pause(1)
print "trying to set tool to %s" % old_tool
c.mode(linuxcnc.MODE_MDI)
c.wait_complete()
c.mdi("M61 Q%s" % old_tool)
The issues are:
(1) Not finding the INI file so not being able to read the PARAMETER_FILE
(2) It doesn't wait for "ok_for_mdi" and tries to run the MDI command at an invalid time.
But other than that, it looks like it might work. It does at least try to set the correct tool number.
Please Log in or Create an account to join the conversation.
01 Apr 2019 02:38 #130063
by cmorley
Replied by cmorley on topic Tool in spindle memory
Andy
Looks like we both hit the same problem - initialization of the tool number.
It's reset in iocontrol.cc.
Do you know what program should call a NML initialize tool IO command?
This would be a less 'hacky' fix I think.
Chris
Looks like we both hit the same problem - initialization of the tool number.
It's reset in iocontrol.cc.
Do you know what program should call a NML initialize tool IO command?
This would be a less 'hacky' fix I think.
Chris
Please Log in or Create an account to join the conversation.
01 Apr 2019 04:41 #130067
by cmorley
Replied by cmorley on topic Tool in spindle memory
Ok I went deeper....
a NML message of EMC_TOOL_INIT _is_ sent...from taskclass.cc
but it never makes it to iocontrol.cc
maybe NML messages are marshaled somehow?
Chris M
a NML message of EMC_TOOL_INIT _is_ sent...from taskclass.cc
but it never makes it to iocontrol.cc
maybe NML messages are marshaled somehow?
Chris M
Please Log in or Create an account to join the conversation.
01 Apr 2019 05:54 #130072
by pl7i92
Replied by pl7i92 on topic Tool in spindle memory
you shoudt force a BUG track
But in _General
NO tool shoudt be inside the ATC over night
But in _General
NO tool shoudt be inside the ATC over night
Please Log in or Create an account to join the conversation.
01 Apr 2019 06:00 #130076
by cmorley
Replied by cmorley on topic Tool in spindle memory
It's really a feature request as the system works as it was designed to, at the time.
One has to be careful with general statements about what should or should not be...for instance in a lathe one does not remove the tools at night
Linuxcnc works with all kinds of different machines.
Chris M
One has to be careful with general statements about what should or should not be...for instance in a lathe one does not remove the tools at night
Linuxcnc works with all kinds of different machines.
Chris M
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5007
- Thank you received: 1441
01 Apr 2019 15:29 #130104
by Todd Zuercher
Replied by Todd Zuercher on topic Tool in spindle memory
On the router spindles I've worked with I've heard that CAT and BT taper tools should never be left in, but with HSK style tools, I've been told both to always leave in and remove over night, depending on the manufacturer's opinion.
Please Log in or Create an account to join the conversation.
02 Apr 2019 00:29 #130123
by andypugh
Replied by andypugh on topic Tool in spindle memory
I have it working. It's not very generic at the moment though.
1) Add 5400 to the end of the .var file, this means that the tool-in-spindle is saved when LinuxCNC exits.
2) Make this Python file executable, and "loadusr" early in the HAL file sequence.
Note that I have not figured out how to read the .var file name from the INI, so that needs to be hard-coded. Also it only works for a 3-joint machine. Change that by editing the (1,1,1,0,0,0,0,0,0) bit of the code that is testing for all axes to be homed.
1) Add 5400 to the end of the .var file, this means that the tool-in-spindle is saved when LinuxCNC exits.
2) Make this Python file executable, and "loadusr" early in the HAL file sequence.
#! /usr/bin/env python
import sys
import linuxcnc
import re
import time
s = linuxcnc.stat()
c = linuxcnc.command()
s.poll()
#inifile = linuxcnc.ini(sys.argv[1])
varfile = "sim_mm.var" #inifile.find("RS274NGC", "PARAMETER_FILE")
old_tool = 0
for line in open(varfile, "r"):
M = re.search("^5400\s([\.\d]*)", line)
if M: old_tool = re.search("^5400\s([\.\d]*)", line).group(1)
def ok_for_mdi():
s.poll()
return (not s.estop) and s.enabled and s.homed == (1,1,1,0,0,0,0,0,0) and s.interp_state == linuxcnc.INTERP_IDLE
while not ok_for_mdi():
time.sleep(0.5)
print "trying to set tool to %s" % old_tool
c.mode(linuxcnc.MODE_MDI)
c.wait_complete()
c.mdi("M61 Q%s" % old_tool)
Note that I have not figured out how to read the .var file name from the INI, so that needs to be hard-coded. Also it only works for a 3-joint machine. Change that by editing the (1,1,1,0,0,0,0,0,0) bit of the code that is testing for all axes to be homed.
Please Log in or Create an account to join the conversation.
18 Apr 2019 18:21 - 18 Apr 2019 18:36 #131173
by nkp
Replied by nkp on topic Tool in spindle memory
Last edit: 18 Apr 2019 18:36 by nkp.
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5007
- Thank you received: 1441
18 Apr 2019 19:06 #131174
by Todd Zuercher
Replied by Todd Zuercher on topic Tool in spindle memory
It is normally saved in your machine's config dir
Please Log in or Create an account to join the conversation.
Time to create page: 0.100 seconds