component compile problem
Yes, there is a piston inside and it has to be pushed up and down per cycle. I think Skidloaders1got around this by placing several timers in his hal file.
Carousel might work, though I am a little confused about the rotation sequence.
It looks like it needs to open one valve until a sensor triggers, then it needs to trigger a different valve to lock, and that advances one position.
As i understand the piston is shaped in such a way, that the turret reaches next position if the piston is up. So basicly i have to enable Selenoid 1 till next pos is reached, switch selenoid 1 off an 2 on and wait couple seconds and repeat if neccesarry. So appart of 4 pos switches there are only these 2 selenoids and the hydraulic pump that migth want to be checked if it is set to run. I guess it should be a simple script.
Is there a sensor to indicate that the piston is at the end of travel, or is it done purely on time?
yes, that is what Skidloaders1 is doing too.
To use "carousel" you would need to use something like a one-shot HAL component to pulse the solenoid valves, and at that point there is more happening outside carousel than inside.
hm i see, i was hoping to maybe misuse the orientation parameter, but i have not yet figured out, how all of this works. how i might be able to acces these parameters for example. I guess setting it manually in a textfile is ok too.
Note that the "tooledit" programme will not allow multiple tools in the same pocket, and your changer seems to require that. You can edit the tool table with a text editor, though, and get the desired result.
Good question, i think both would be considerable for me. I have read several forum threads, where these approaches and also using classicladder was discussed. I have to admit i am fairly new to the game and have much to figure out still. right now, i don't understand benefits of one or another.
Are you more comfortable with G-code or C for the control sequence?
But if i see correctly you just wrote a Gcode subroutine for me, so i guess this one i'll try first Thank you!
now that i am asking about these kind of expansions for linuxcnc. I also need to find a way to trigger a lube pump while axis are moving. what do you think of the idea to just write a simple python script and load it in userspace? precise Timing should be irrelevant for such applications, right? I could also imagine turning the turret with this method. what do you think about this? does it matter how much is in servo thread and how much in user thread?
PS. for people going through this thread in the future that might be interested in my config files, i published my linuxCNC config folder to github and you can find my current setup here (at the time of me posting this, this is still work in progress of course): github.com/AlexmagToast/WeilerPrimusCNC_LinuxCNC_config
As described i own the very same Lathe as Skidloaders1 with the same Turret as him.
I ended up creating a python component, which waits for the toolchange pin go high.
It will then go through the tooltable and see, which position the ordered Tool is at and where the Turret is atm.
I added a parameter in the comment section, which represents side 1-4 for each tool.
Now if the ordered Tool is on another side than present, it will cycle through the hydraulic process till the right side is reached.
After that the Toolchanged Pin is set high and the process is given back to LinuxCNC.
So i can set Offsets and Position on the Turret in the tooltable and i can order Tools via Gcode as usual.
For reference here is my code:
I think this approach is quite easy and versatile.