ATC Project - Debug phase
04 Jul 2022 18:26 #246591
by spumco
Replied by spumco on topic ATC Project - (Remap Phase)
Thanks. Where exatly should I put the 'print' statement? I tried in a few places in stdglue.py and LCNC hung up while starting:
def change_prolog(self, **words):
print("hello prolog")
try:
# this is relevant only when using iocontrol-v2.
if self.params[5600] > 0.0:
if self.params[5601] < 0.0:
self.set_errormsg("Toolchanger hard fault %d" % (int(self.params[5601])))
return INTERP_ERROR
print("change_prolog: Toolchanger soft fault %d" % int(self.params[5601]))
LCNC took way longer to load, and threw error "No message text set"
Side Note:
More fiddling with everything right now, and I may have made a bit of progress. After combing through a bunch of example configs I discovered that some of the numbered parameters referenced in my toolchange.ngc were missing from the linuxcnc.var file.
Specifically, #5170 and #5171, plus #5202-#5207. #5170 is the current pocket value, and #5171 is ATC is homed, and the others are pocket numbers #13-#18 (example only has 12).
I assumed those would have been created by LCNC on startup, but I guess not. Didn't find any breadcrumbs left in the example file(s) stating "you have to manually create xxx parameters".
So I manually added those parameters with value = 0 and I'm getting some new behavior:
def change_prolog(self, **words):
print("hello prolog")
try:
# this is relevant only when using iocontrol-v2.
if self.params[5600] > 0.0:
if self.params[5601] < 0.0:
self.set_errormsg("Toolchanger hard fault %d" % (int(self.params[5601])))
return INTERP_ERROR
print("change_prolog: Toolchanger soft fault %d" % int(self.params[5601]))
LCNC took way longer to load, and threw error "No message text set"
Side Note:
More fiddling with everything right now, and I may have made a bit of progress. After combing through a bunch of example configs I discovered that some of the numbered parameters referenced in my toolchange.ngc were missing from the linuxcnc.var file.
Specifically, #5170 and #5171, plus #5202-#5207. #5170 is the current pocket value, and #5171 is ATC is homed, and the others are pocket numbers #13-#18 (example only has 12).
I assumed those would have been created by LCNC on startup, but I guess not. Didn't find any breadcrumbs left in the example file(s) stating "you have to manually create xxx parameters".
So I manually added those parameters with value = 0 and I'm getting some new behavior:
- If I reference the ATC, the GUI is now reading the parameters and displaying tool icons in the pockets (wasn't before, ATC widget was empty)
- the display widget pocket #'s dont match the var file, but at least there's some response from the screen
- If I adjust the parameter values in the var file, on startup the values are being displayed on the screen widgets and DROs
- i.e. change #5231 (tool in spindle) to 1, and #5190 (pocket 1 tool number) to 0, on startup the animation widget shows pocket 1 as empty and T1 in the spindle
- Still getting Named parameter #<selected_pocket> not defined, but
Please Log in or Create an account to join the conversation.
04 Jul 2022 23:43 - 04 Jul 2022 23:44 #246612
by andypugh
That's not as useful as it could be, but does tell us both that the file is being run, and that it is the version of the file that you think it is.
Replied by andypugh on topic ATC Project - (Remap Phase)
Thanks. Where exatly should I put the 'print' statement? I tried in a few places in stdglue.py and LCNC hung up while starting:
That's not as useful as it could be, but does tell us both that the file is being run, and that it is the version of the file that you think it is.
Last edit: 04 Jul 2022 23:44 by andypugh.
Please Log in or Create an account to join the conversation.
05 Jul 2022 00:46 - 05 Jul 2022 00:53 #246621
by spumco
I hadn't even thought of that, thank you.
I've been looking at other configs which are presumably working, I see that in the INI files there's usually another PATH_APPEND = x line under [PYTHON].
Some examples:
[PYTHON]
TOPLEVEL=python/toplevel.py
PATH_APPEND=python
or
[PYTHON]
PATH_PREPEND = python
TOPLEVEL = python/toplevel.py
or
[PYTHON]
TOPLEVEL=./toplevel.py
PATH_APPEND= ./
PATH_APPEND= ../../nc_files/remap_lib/python-stdglue/
or
[PYTHON]
PATH_PREPEND=./python
PATH_APPEND=../../nc_files/remap_lib/python-stdglue/
TOPLEVEL=python/toplevel.py
whereas mine looks like this:
[PYTHON]
# ***leave the following commented out unless you are using the ATC macros***
TOPLEVEL = /home/mill/linuxcnc/configs/HAL_rev32_ATC/python/toplevel.py
PATH_APPEND = /home/mill/linuxcnc/configs/HAL_rev32_ATC/python/
I don't have a PATH_PREPEND, nor do i seem to have a simple PATH_APPEND=python.
LCNC manual for remap has this:
# code specific for this configuration
PATH_PREPEND=./
# generic support code - make sure this actually points to python-stdglue
PATH_APPEND=../../nc_files/remap_lib/python-stdglue/
Am I missing something?
Replied by spumco on topic ATC Project - (Remap Phase)
Thanks. Where exatly should I put the 'print' statement? I tried in a few places in stdglue.py and LCNC hung up while starting:
That's not as useful as it could be, but does tell us both that the file is being run, and that it is the version of the file that you think it is.
I hadn't even thought of that, thank you.
I've been looking at other configs which are presumably working, I see that in the INI files there's usually another PATH_APPEND = x line under [PYTHON].
Some examples:
[PYTHON]
TOPLEVEL=python/toplevel.py
PATH_APPEND=python
or
[PYTHON]
PATH_PREPEND = python
TOPLEVEL = python/toplevel.py
or
[PYTHON]
TOPLEVEL=./toplevel.py
PATH_APPEND= ./
PATH_APPEND= ../../nc_files/remap_lib/python-stdglue/
or
[PYTHON]
PATH_PREPEND=./python
PATH_APPEND=../../nc_files/remap_lib/python-stdglue/
TOPLEVEL=python/toplevel.py
whereas mine looks like this:
[PYTHON]
# ***leave the following commented out unless you are using the ATC macros***
TOPLEVEL = /home/mill/linuxcnc/configs/HAL_rev32_ATC/python/toplevel.py
PATH_APPEND = /home/mill/linuxcnc/configs/HAL_rev32_ATC/python/
I don't have a PATH_PREPEND, nor do i seem to have a simple PATH_APPEND=python.
LCNC manual for remap has this:
# code specific for this configuration
PATH_PREPEND=./
# generic support code - make sure this actually points to python-stdglue
PATH_APPEND=../../nc_files/remap_lib/python-stdglue/
Am I missing something?
Last edit: 05 Jul 2022 00:53 by spumco. Reason: miserable editor
Please Log in or Create an account to join the conversation.
05 Jul 2022 12:13 #246643
by andypugh
Replied by andypugh on topic ATC Project - (Remap Phase)
You are using a private copy of stdglue, so shouldn't need to add that path.
Please Log in or Create an account to join the conversation.
05 Jul 2022 13:09 #246644
by spumco
Replied by spumco on topic ATC Project - (Remap Phase)
So path is OK, but stdglue is still not passing global parameters through.
When I do the magic comment for a global parameter, I get an expected result. i.e. #<_tool_in_spindle> = 1
When I do the magic comment for the corresponding local named parameter, I get #<tool_in_spindle> = ######
Do the pound signs indicate anything useful for troubleshooting?
When I do the magic comment for a global parameter, I get an expected result. i.e. #<_tool_in_spindle> = 1
When I do the magic comment for the corresponding local named parameter, I get #<tool_in_spindle> = ######
Do the pound signs indicate anything useful for troubleshooting?
Please Log in or Create an account to join the conversation.
05 Jul 2022 13:20 #246646
by andypugh
Replied by andypugh on topic ATC Project - (Remap Phase)
##### means that the parameter does not exist.
I am unsure whether you would _expect_ a local parameter to be visible outside the creating context.
What happens if you copy the value of the remap-local parameter to a global parameter in the remap routine?
eg, in the remap routine have "#100 = #<tool_in_spindle>" then check #100 in MDI.
Or, add the line
(DEBUG, #<tool_in_spindle>)
At the start of your remap routine.
I am unsure whether you would _expect_ a local parameter to be visible outside the creating context.
What happens if you copy the value of the remap-local parameter to a global parameter in the remap routine?
eg, in the remap routine have "#100 = #<tool_in_spindle>" then check #100 in MDI.
Or, add the line
(DEBUG, #<tool_in_spindle>)
At the start of your remap routine.
Please Log in or Create an account to join the conversation.
05 Jul 2022 15:47 #246654
by spumco
Did you mean to change the routine to be #100 = #<_tool_in_spindle> (global)?
I'll try it when I get home later, but I think I've tried that and got some error.
I just noticed another difference between my stdglue.py and the one in LCNC's sim on github. The 'standard' one has the following in the change epilog:
Mine (which I'm convinced was lifted from the Gmoccapy tool touch-off example):
The standard version:
Raise any red flags?
Replied by spumco on topic ATC Project - (Remap Phase)
eg, in the remap routine have "#100 = #<tool_in_spindle>" then check #100 in MDI.
Did you mean to change the routine to be #100 = #<_tool_in_spindle> (global)?
I'll try it when I get home later, but I think I've tried that and got some error.
I just noticed another difference between my stdglue.py and the one in LCNC's sim on github. The 'standard' one has the following in the change epilog:
Mine (which I'm convinced was lifted from the Gmoccapy tool touch-off example):
if self.return_value > 0.0:
if self.return_value == 3:
message = "No tool measurement ! Please take care of the entry in the tool table"
emccanon.MESSAGE(message)
return INTERP_OK
else:
if self.return_value == -1:
message = "Searchvel <= 0, not permitted!, Please correct INI Settings."
elif self.return_value == -2:
message = "Probevel <= 0, not permitted!, Please correct INI Settings."
elif self.return_value == -3:
message = "Probe contact failiure !!"
else:
message = "M6 aborted (return code %.1f)" % (self.return_value)
self.set_errormsg(message)
return INTERP_ERROR
The standard version:
if self.blocks[self.remap_level].builtin_used:
#print "---------- M6 builtin recursion, nothing to do"
yield INTERP_OK
else:
if self.return_value > 0.0:
# commit change
self.selected_pocket = int(self.params["selected_pocket"])
emccanon.CHANGE_TOOL(self.selected_pocket)
self.current_pocket = self.selected_pocket
self.selected_pocket = -1
self.selected_tool = -1
# cause a sync()
self.set_tool_parameters()
self.toolchange_flag = True
yield INTERP_EXECUTE_FINISH
else:
self.set_errormsg("M6 aborted (return code %.1f)" % (self.return_value))
yield INTERP_ERROR
Raise any red flags?
Please Log in or Create an account to join the conversation.
05 Jul 2022 15:56 #246656
by andypugh
No, I was suggesting to make a global copy of the local variable to look at in the global context.
Replied by andypugh on topic ATC Project - (Remap Phase)
eg, in the remap routine have "#100 = #<tool_in_spindle>" then check #100 in MDI.
Did you mean to change the routine to be #100 = #<_tool_in_spindle> (global)?
No, I was suggesting to make a global copy of the local variable to look at in the global context.
The following user(s) said Thank You: spumco
Please Log in or Create an account to join the conversation.
05 Jul 2022 16:00 #246657
by spumco
Replied by spumco on topic ATC Project - (Remap Phase)
You know, I just went through the Probe Basic example stdglue and there are a LOT of differences from the latest in LCNC - not just the one I posted above. And I see a number of changes in github to the file in the past couple of years - meaningful changes, not just documentation updates.
I think I'm going to try using the standard one this evening and see what happens.
Can I delete all the #REMAP=S, #REMAP=T, and # pure python remaps stuff I don't need?
I think I'm going to try using the standard one this evening and see what happens.
Can I delete all the #REMAP=S, #REMAP=T, and # pure python remaps stuff I don't need?
Please Log in or Create an account to join the conversation.
05 Jul 2022 16:23 #246661
by andypugh
Replied by andypugh on topic ATC Project - (Remap Phase)
You can definitely remove any commented-out entries and you will see no difference in behaviour.
But sometimes they can be useful references for things that you have already tried.
But sometimes they can be useful references for things that you have already tried.
The following user(s) said Thank You: spumco
Please Log in or Create an account to join the conversation.
Time to create page: 0.116 seconds