Hello Guest it is April 25, 2024, 12:56:30 PM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - stirling

1861
Hi Terry - I'll help where I can if you need it.


When Mach hits a T# (in advance of an M6 - fanuc style) it has to output a signal to trip the relay and hence motor. Can Mach do this?

******** Yes

how?

1862
Hi Terry - sounds like you've got it all sorted - sounds good to me - sorry it took me a while to catch on.

go for it.

Cheers

Ian

1863
Hi Terry - ok I'll bow to you on this because I've not much experience in the electromechanical (I thought that all went out with 1970s telephone exchanges  ;D) - But if it's any help here's a couple of issues that spring to mind.

When Mach hits a T# (in advance of an M6 - fanuc style) it has to output a signal to trip the relay and hence motor. Can Mach do this?

Each time the carousel outputs its encoded position it has to interrupt Mach to let it know there's data waiting and then it has to present this data to Mach for comparison. Can Mach do this?

BTW What about the arm?

Cheers

Ian

EDIT: With regard to the encoder outputing its position to Mach I've just read up on triggers. Instead of using an absolute type encoder, one way would be that the carousel just sends a pulse each time its at a slot, Mach could keep track of which slot. This negates the need for Mach to read a number. Just a thought. :)

1864
OK so what yous guys are saying is that MACh can not do anything while the axis are moving.THe macropumps don't run and the brains don't work??????
No I'm not saying that
I think I am confused again. The actual tool changing takes place while the machine is stopped anyway.
This is true - but that's not my point.
Only the rotattion of the carousel is taking place during the machine movement.
But this is my point - what is rotating the carousel?

1865
Sorry Terry but I think your headed down a cul-de-sac here. Bear has confirmed in his post #14 where my thoughts were going with my last edit.

Mach simply CAN'T control the toolchanger whilst the axis are moving. It has to stop the axis, operate the toolchanger, then resume axis movement.

So...

IF you use Mach to control the toolchanger then...
1) It CAN'T be done whilst the axis are moving 2) lookahead is irrelevant. 3) swapping tool/slot is useful.

IF you use external hardware to control the toolchanger then...
1) It CAN be done whilst the axis are moving 2) lookahead is useful. 3) swapping tool/slot is irrelevant.

Ian

1866
what's with the WE Kimasabi? - it's your baby  ;D

Two things I have thought of Mach must store the T# that is in the gcode in a variable to have it ready to go. We need to access that VAR to have the toolchanger move to that slot in advance of the toolchange. THat way when mach sees the T# and stores the var the carousel can rotate into position and when the M6 is called it will already be at location. Fanuc style.

Well yes and no. If you want this then you'd have to pre-process the g-code (messy) or somehow dig into Mach's lookahead mechanism (I wish you luck). Its a reasonable thought sure, but on the other hand, when Mach hits a T# the axis have to move to the toolchange position anyway. Couldn't the carousel just spin at the same time whilst the axis are getting there?
(I just took a quick look to see if the fact that Mach can pre-process macros as it builds the toolpath could be used - but it seems M6 is a special case and is not pre-run at this time - unlike user macros for example)

NOW I know some people say it is best left up to PLC to do the work, BUT the way I see it MACH is really NOT doing anything special at tool change time(;-)Axis's are normally idle why not put it to work taking care of the tool changer as well(;-) We have a TON of processor why not use it?????

Seems reasonable to me.

BTW in your example code you've got an M6 followed on the next line by a T#. Is that just a typo? I always thought the syntax was T# before the M6 (and usually on the same line) yes/no?

Cheers

Ian

A quick edit:

NOW I know some people say it is best left up to PLC to do the work, BUT the way I see it MACH is really NOT doing anything special at tool change time(;-)Axis's are normally idle why not put it to work taking care of the tool changer as well(;-) We have a TON of processor why not use it?????

Actually I'm not so sure... I'm thinking maybe you have to have independant control of the arm and carousel... thinks...

1867
Hi faroutacrylics - Occasionally I get similar behaviour in as much as all the cuts are just slightly off the required toolpath. I raised this as an issue in http://www.machsupport.com/forum/index.php/topic,5035.0.html (see post #4)

Coincindentally it just happened to me again this morning. When you first set Mach up you'll remember that you were told that the "Config\Select Native Units" was to be used once and only once at setup and that if you want to change units you should use the Units toggle on the Settings screen or G20/G21 in your code. Well what you probably don't know is that Mach can sometimes change the "Config/Native Settings" all on its lonesome. I don't know why it does this but it does. The result is that it then miscalculates the toolpaths by just a smidge.

This morning when I had the problem I immediately checked what Mach thought were my native units and sure enough it had switched them from metric to imperial. I switched it back and my toolpaths are now spot on again. You'd think that by switching this from one to the other (on its own) then Mach would be out by a huge margin (25.4:1) one way or the other but that isn't the case - it's out by just a few 10ths of a mm in my case.

Mach can also switch your Distance Mode and IJ Mode for you when your not looking - though this tends to happen most (but not exclusively) when you upgrade.

Maybe not your issue - but worth a quick look.

1868
Hi Terry - had a bit of a play with this this morning - please see attached zip.
Save your existing M6start.m1s somewhere or rename it and replace it with the attached version. Also drop M1000.m1s into your macro folder. Then load the .tap file into Mach.

M1000.m1s sets up a virtual carousel with 8 tools.
M6Start.m1s demonstrates a possible hotswap mechanism.
hotswap.tap tests it.

Cheers

Ian

1869
Hmmm yes - in my enthusiasm to discuss the logic of the indirection table I completely forgot the VB context issue - darn it!
OK - so the principle remains but the issue of persisting the table accross VB contexts is the next hurdle. As has been said you could use DROs or external means as per poppabears. One other method would be to use gcode variables instead of or in association with a VB array. Probably easier just to use the vars without any array.

So I gues I can't just assign 30 variables as tool slot# and populate the vars with tool#s then as each tool cycle takes place update the vars accordinly.????

Yes, that's the idea... but the other way round. The 30 vars would be the 30 tools and the value in the var would be the slot. Remember you're going to come into your routine with a tool number not a slot number. You'd use the tool number to focus on one of the 30 vars and then get the value in the var to tell you which slot to go for to get that tool. Then as you go you just change the values in the vars. So to start for example #1001=1 means tool 1 (1001-1000) is in slot 1. At some time later maybe #1001=5 so tool 1 (1001-1000) is in slot 5, if you get my drift?  :)

1870
OK Terry - thanks for the explanation. Seems to me what you need to code is an indirection table. In VB this could be coded as an array. The array index could represent the tool and the number in each array cell represents the carousel slot where that tool is. You start with the same number in the cell as its index. So array[1]=1 etc. which means tool 1 is in slot 1 etc.

As you move along and you want to change the tool in a slot you just change its slot number. So for example you may decide array[1]=5 which means tool 1 is now in slot 5 etc etc.

The rest of your code stays the same its just you have have the extra code to update and index via your "tool-slot indirection table".

Any good?

Ian