Tool_in_spindle probleme with current_pocket

More
2 years 8 months ago #292552 by greg23_78
I have a small problem with the programming and settings of my M6 remapping.

To start with, at the moment the carousel is working perfectly but my problem comes from the condition

o103 if [#<tool_in_spindle> NE #<current_pocket>]
       (abort, tool changer in wrong position)
o103 endif

I have a little program called mdi_command, which when you press a physical button turns the carousel to tool 16 (No tool change). This mini program works.

on the other hand if I ask for tool number 2, the program does not abort, but executes the tool change. so the tool currently in the spindle is in pocket 16.

First tool change ( tool 3)

carousel.0.pocket-number - 3
carousel.0.current-position - 3
iocontrol.0.tool-number - 3

Mini program

carousel.0.pocket-number - 16
carousel.0.current-position - 16
iocontrol.0.tool-number - 3

second tool change ( Tool 5)

carousel.0.pocket-number - 5
carousel.0.current-position - 5
iocontrol.0.tool-number - 5

but the tool 3 is in the pocket 16

I have the impression that #<tool_in_spindle> is not working properly, how can I remedy this problem?
 

Please Log in to join the conversation.

More
2 years 8 months ago #293359 by smc.collins
is it configured for a random tool changer ?

Please Log in to join the conversation.

More
2 years 8 months ago #293687 by greg23_78
it's not for a random tool change, i have a carousel with 30 tools. my carousel is surrounded by safety casing except in 1 place, opposite the spindle.
when my button is pressed, the carousel shows tool 1 in front of the slot, so tool 16 in front of the spindle, to avoid having to press jog 15-16 times to be in front of tool number 1.

the mini-program (MDI_command) is as follows:
Code:
o<button_home_carousel> sub ; Move carousel section ;o900 IF [#<current_pocket> NE 16]     M68 E0 Q16 ;set the carousel to move to the right pocket     M64 P0  ;Enable Carousel     G4 P2  ; Wait 2 seconds     M66 P0 L3 Q120 ; wait for carousel-ready = true         o203 if [#5399 LT 0]         (abort, carousel not finished)         o203 endif          M65 P0  ;Disable carousel enable ;o900 ENDIF     o<button_home_carousel> endsub [1]   

it shows tool number 1 in front of the slot, but if I call tool number 2 in the spindle using M6, it should display an error message.

(abort, tool changer in wrong position)

but as said before, it executes the tool change program, so the current tool in the spindle is inserted into pocket number 16 or the pocket immediately in front of it. Whereas in the M6 remapping I did insert the condition
Code:
o103 if [#<tool_in_spindle> NE #<current_pocket>] (abort, tool changer in wrong position) o103 endif

Please Log in to join the conversation.

More
2 years 8 months ago #293782 by smc.collins
That's precisely how the random tool changer option behaves  the system manages tools and pockets.

Please Log in to join the conversation.

More
2 years 8 months ago #294038 by polobear189
Did you change it to random tool changer?

Please Log in to join the conversation.

More
2 years 8 months ago #294648 by greg23_78
yes, sorry, I've just tried it out and it works perfectly!

But I have some questions to improve the M6 remap.

I tried to save tool number in var file and load on start like this link below but it doesn't work.

forum.linuxcnc.org/38-general-linuxcnc-q...le-and-load-on-start

during M6 at the end of my macro I inserted #4999=#5400
I get the information back when I restart linuxcnc and press home all because I integrated a mdi command to enable the carousel to do this homing procedure and at the end I insert the M61 Q#4999 command.
Code:
o<home_carousel> sub ; Move carousel section ;M68 E0 Q1 ;set the carousel to move to the right pocket     M64 P0  ;Enable Carousel     G4 P2  ; Wait 2 seconds     M66 P0 L3 Q120 ; wait for carousel-ready = true         o203 if [#5399 LT 0]         (abort, carousel not finished)         o203 endif          M65 P0  ;Disable carousel enable     M61 Q#4999 o<home_carousel> endsub [1]   

When I change tool, my variable is always 0 (the variable must not be implemented) and this causes me a lot of problems because I don't have tool number 0.

So my .var file never shows 4999 and 5400 after closing linuxcnc.

Finally, what variable can I use to make it understand that there was no tool in the spindle when linuxcnc was closed?
 

Please Log in to join the conversation.

More
2 years 7 months ago #297216 by greg23_78
i'm reopening the post, after several attempts with the random tool change and having quite a few problems with the positioning of the tools, i've gone back to non-random toolchanger. however, i'm having the same problem as at the beginning of the post.

Is there a way to make this little program work in non-random toolchanger?
Code:
o110 if [#<tool_in_spindle> NE #<current_pocket>]         M68 E0 Q#<tool_in_spindle> ;set the carousel to move to the right pocket         M64 P0  ;Enable Carousel         G4 P2  ; Wait 2 seconds         M66 P0 L3 Q120 ; wait for carousel-ready = true             o111 if [#5399 LT 0]                 (abort, carousel not finished)             o111 endif          M65 P0  ;Disable carousel enable          o110 endif

Please Log in to join the conversation.

More
2 years 7 months ago #297220 by smc.collins
no idea, I gave up messing with carousel and just wrote a custom hal component to manage my tool changer and My machine is not set in random.

Please Log in to join the conversation.

Time to create page: 0.114 seconds
Powered by Kunena Forum