I spent quite a bit of time on figuring out the door situation. And my conclusion is that an ideal situation does not exist in my setup
There is too little room to have the door slide up. My garage is also too low for a situation where the door extends above the machine by much.\
So I went for a bi-fold door. I used Misumi's configurator to figure out the sizing etc. The downside of this system is that there will be some chips and or coolant falling on the floor when I open the door. This is something I will just accept for now. One remedy is either a wiper or a air jet that just blows it off. I can always spend some time on it in the future in case a rev 2 is needed.
At this point I just need to move forward:
(Note: Liking will "up vote" a post in the search results helping others find good information faster)
After seeing the pricing of alu extrusion these days
Decided to make it out of steel: (this was like 40 euros of materials)
This new frame just screws into the existing lip. Easy to mount / remove.
Still figuring out he door situation. I think initially I'll just use a curtain or whatever. and go from there.
I don't want this to become a bottleneck. ordering the tempered glass + frame at the end of the week.
The top will be 25mm fermacell with an alu plate glued to it. (mass + protective surface).
I have also emailed centroid for help with the PLC.
(Note: Liking will "up vote" a post in the search results helping others find good information faster)
spikee wrote: ↑Mon Dec 30, 2024 5:21 pm
I had a try figuring out the plc code and i must say i found some things quite confusing. One example is lines like
"M101 /70320 ;Wait for ArmAtSpindleNewTool_M" when i look in the PLC code I can't find a reference of this.
70320 would refer to MEM320 in the PLC, it is read only, simply reading the state of the PLC. In the Swingarm Case, most of the movement is handled by the PLC.
ArmAtHome_M IS MEM318
ArmAtSpindleOldTool_M IS MEM319
ArmAtSpindleNewTool_M IS MEM320
ArmFrom2To3_M IS MEM321
StopAtPos3_M IS MEM322
This particular Memory bit is telling us that the Arm has Cycled the Old Tool out and has just now cycled the new tool into the spindle. Every "M94 /13" Cycles the Arm to the next Stop Position, The positions being Home > "Old Tool at Spindle" > "New Tool At Spindle" > Home (Repeat). The Default Swingarm logic assumes the carousel has a pot that is turned down or up for the swingarm. You could use the "Pot Up" As your Pot Back and Pot Down as your Pot Forward as an example (assuming im reading your schematics right).
spikee wrote: ↑Mon Dec 30, 2024 5:21 pm
What I find pretty difficult here is that there are M-codes to move the caroussel left or right (M50 , M51) .
These M-Codes index the carousel (rotate CW or CCW), i would try the Pot outputs first and their M-code (M94 /14 for Pot Down (Pot Forward?), and M94 /15 for Pot Up (Pot Back?)).
(We pride ourselves on providing timely solid technical support but, without good information we may not be able to help and/or reply until such information is posted.)
spikee wrote: ↑Mon Dec 30, 2024 5:21 pm
I had a try figuring out the plc code and i must say i found some things quite confusing. One example is lines like
"M101 /70320 ;Wait for ArmAtSpindleNewTool_M" when i look in the PLC code I can't find a reference of this.
70320 would refer to MEM320 in the PLC, it is read only, simply reading the state of the PLC. In the Swingarm Case, most of the movement is handled by the PLC.
ArmAtHome_M IS MEM318
ArmAtSpindleOldTool_M IS MEM319
ArmAtSpindleNewTool_M IS MEM320
ArmFrom2To3_M IS MEM321
StopAtPos3_M IS MEM322
This particular Memory bit is telling us that the Arm has Cycled the Old Tool out and has just now cycled the new tool into the spindle. Every "M94 /13" Cycles the Arm to the next Stop Position, The positions being Home > "Old Tool at Spindle" > "New Tool At Spindle" > Home (Repeat). The Default Swingarm logic assumes the carousel has a pot that is turned down or up for the swingarm. You could use the "Pot Up" As your Pot Back and Pot Down as your Pot Forward as an example (assuming im reading your schematics right).
spikee wrote: ↑Mon Dec 30, 2024 5:21 pm
What I find pretty difficult here is that there are M-codes to move the caroussel left or right (M50 , M51) .
These M-Codes index the carousel (rotate CW or CCW), i would try the Pot outputs first and their M-code (M94 /14 for Pot Down (Pot Forward?), and M94 /15 for Pot Up (Pot Back?)).
Hi Chris, thanks for the insight. As my swingarm is controlled through an ethercat servo, would you suggest to do this logic in the plc or do the logic in the m6 macro?
Additionally you mentioned there are m-codes for caroussel forwards, backwards. Is there a function to tell the plc to to a specific tool(pos), figure out forward, backward logic and read from memory when it has arrived? Or is the logic you just activate forwards,backwards in the macro and stop when a plc memory location (caroussel toolcounter) = requested tool?
Anyway thanks for the insight, the memory info probablt came by in the 6hour plc playlist i listened to on the background, but did not stick
(Note: Liking will "up vote" a post in the search results helping others find good information faster)
spikee wrote: ↑Tue Jan 07, 2025 6:28 pm
Hi Chris, thanks for the insight. As my swingarm is controlled through an ethercat servo, would you suggest to do this logic in the plc or do the logic in the m6 macro?
I did not see this reading through the thread, must have missed that. You would need to command the swingarm in the M6 Macro. Using the Default M6 macro as reference, can replace the "M94 /13" parts with your movements of the Swingarm.
spikee wrote: ↑Tue Jan 07, 2025 6:28 pm
Additionally you mentioned there are m-codes for carousel forwards, backwards. Is there a function to tell the plc to to a specific tool(pos), figure out forward, backward logic and read from memory when it has arrived? Or is the logic you just activate forwards,backwards in the macro and stop when a plc memory location (caroussel toolcounter) = requested tool?
Anyway thanks for the insight, the memory info probablt came by in the 6hour plc playlist i listened to on the background, but did not stick
M107 is the command to load the Requested Tool to the PLC and rotate to a specific tool for a swingarm type ATC. In a Job, it allows you to Pre-Fetch the tool for quicker tool changes when the M6 is later called. For quick example
M6 ;Tool Change
T13 M107 (Rotate Carousel to T13)
Part Gcode...........
M6 ;Tool Change (Grabs T13)
T6 M107 (Rotate Carousel to T6
etc.....
The M107 is also called in the M6 in the case its called directly through MDI or other means. In the PLC when M107 is called, it loads the T number into the PLC Variable SV_TOOL_NUMBER. The Carousel Enable and Direction is determined and outputs turn on, then using the Counter Input will wait until the desired tool is reached then stop the carousel. At this point will turn on a memory bit for the Macro to reference such as "AtRequestedToolPosition_M". The Carousel rotation is handled by a series of stages in the PLC, MonitorIndexATCRequestStage, ReportCarouselPositionStage, SetRequestedBinPositionStage, SetCarouselDirectionStage, RotateCarouselStage, and ResetCarouselStage. The same stages are used for both Swingarm and Umbrella type ATCs as well if you want to see how it works in PLC.
(We pride ourselves on providing timely solid technical support but, without good information we may not be able to help and/or reply until such information is posted.)
New eclosure painted, just need to wait for the window framing to come in so it can be enclosed:
During my ATC adventures I also figured out another thing, my spindle orient function, supported by the AC servo drive only works when transmission is 1:1 , mine is not (8krpm servo = 12k spindle). So depending on your position the orient dit not end up being where I expected it to be.
It offers an external input option to tell you where to orient it. So I mocked up this spindle index sensor setup:
I'm curious if that slot is going to make an annoying sound at high speed or not.
How to actually connect it to the S3a servo drive was hidden from the datasheet. However I got an additional document from the Chinese technician (in Chinese) that explains how it works. I have attached it in case anybody else needs it.
M94 /14 , M94 /15 Don't do anything when I call them in the MDI. no fault message or anything like that.
The only thing I can guess is that "pot up" and "pot down" is terminology for the swingarm positions? As you can see in my video below the swingarm is currently in a "not idle" position, so the idea is that if i put it back in the "home" position it should ... do something?
Attached is a new report (switched some IO of the carousel out -> pot out (no idea if that makes sense tho)
So the tool selection works, it turns the carousel to the correct location. When i do M6 it waits for INP32 at some point (which is not assigned), so presumably I'm missing a signal? Also, so far the "tool elevator" as i would call it has not worked yet. My guess is that this only happens when the swingarm is in the home position? Overall some progress was made. Once i get the "tool elevator" part working, the rest should be relatively simple.
So some assistance on that side is appreciated
Here is a vid of (a part of ) the default M6 code working:
T6 M107 code works
M50 works (turn carousel +1 direction 1)
M51 works (turn carousel -1 direction 2)
M94 /14 nothing happens
M94 /15 nothing happens
I will spoof the ATC arm at home position tonight to see if more action will happen or not. I manually set it during my testing yesterday and nothing happened. But it could be that I just did it at the wrong timing.
Also a quick question, is it possible to Debug/live view the m6 marco code? It would be useful to know what it is doing and or waiting for.
spikee wrote: ↑Mon Jan 13, 2025 4:36 am
Also a quick question, is it possible to Debug/live view the m6 marco code? It would be useful to know what it is doing and or waiting for.
Set parameter 10 to a 2, turn on Single Block Mode (F5) in the run menu, and then run a job with your tool change. This will let you step through the macro, to see any variables you'll have to use M225
1 user liked this post
(Note: Liking will "up vote" a post in the search results helping others find good information faster)
spikee wrote: ↑Mon Jan 13, 2025 4:36 am
M94 /14 , M94 /15 Don't do anything when I call them in the MDI. no fault message or anything like that.
The only thing I can guess is that "pot up" and "pot down" is terminology for the swingarm positions? As you can see in my video below the swingarm is currently in a "not idle" position, so the idea is that if i put it back in the "home" position it should ... do something?
T6 M107 code works
M50 works (turn carousel +1 direction 1)
M51 works (turn carousel -1 direction 2)
M94 /14 nothing happens
M94 /15 nothing happens
M94 /14 and M94 /15 requires the system to be in a tool change M6 (M94 /8 has been called). Otherwise they will appear to do nothing as the commands are simply ignored.
(We pride ourselves on providing timely solid technical support but, without good information we may not be able to help and/or reply until such information is posted.)
Thanks to the input I was able to get a little bit further.
So the code fails in the M6 line " M101 /70311 ;Wait for AtRequestedToolLocation_M" line 306
5749: ;- IF M6_SV && !DoingIndex_M && !DoingRotation_M
5750: ;- THEN (M6PD_PD)
...
5755: ;- IF M6PD_PD THEN SET DoingM6_M, SET SetRequestedBinPositionStage
...
So i'm not exactly sure whats going wrong here. As it actually does what it is supposed to do.
It gets the correct tool by turning the caroussel, stops in time. But gets stuck at that point.
Presumably it has something to do with " !DoingIndex_M && !DoingRotation_M" Not sure what the meaning of the index function is, but it is not rotating at that point .
Allin1Chris wrote: ↑Mon Jan 13, 2025 4:21 pm
...
M94 /14 and M94 /15 requires the system to be in a tool change M6 (M94 /8 has been called). Otherwise they will appear to do nothing as the commands are simply ignored.
Looking at the previous comment from Chris, presumably this has something to do with M94 /8 (= M6_SV)call. It is part of the M6 macro code as it runs it on line 297, but for some reason it gets reset before reaching the rest of the code (is my assumption).
(Note: Liking will "up vote" a post in the search results helping others find good information faster)