- Posts: 386
- Karma: 2
- Thank you received: 13
I must admit that badly formulated questions.
but I despair even unable to understand linuxcnc. but I saw that you're one of the people who worked on this project.
I apologize also. I have only gratitude to you and your work.
If you see the attached file that was the only way I work the chuck.
if it is not the best way but it works for me.
I could not find the way linuxcnc understand. that chuck is clamp or unclamp
so that the spindle is not rotating if chuck unclamp.
Also on other machines I've worked with trade controls, changing a parameter the machine reverses the clamp and unclamp position.
not if I understand.
have all the assurances that the spindle is not rotating if chuck unclamp
net foot-chuck ==> hm2_5i25.0.7i77.0.0.input-00 ==> classicladder.0.in-00
net spindle-on ==> motion.spindle-on ==> classicladder.0.in-10
net chuck-open ==> hm2_5i25.0.7i77.0.0.output-02 ==> classicladder.0.out-02
net chuck-close ==> hm2_5i25.0.7i77.0.0.output-03 ==> classicladder.0.out-03
This is wrong and dangerous.
jlviloria wrote: net spindle-on ==> motion.spindle-on ==> classicladder.0.in-10
You need to only allow unclamp when the spindle has stopped. Your approach will allow the work to be released as soon as the spindle is turned off.
You need to check that spindle speed (from the spindle encoder) is zero, or very near to zero.
Internal or external gripping is an interesting question. It might be simplest, and safest, to create two almost identical configurations for the machine, and use the relevant one.
Otherwise you could have a checkbox in a PyVCP panel to change the sense of chuck grip.
There are probably other ways.
I think that this should be handled with some simple HAL logic rather than Ladder, but you seem determined to ignore me.
Are you sure there is no way electrically to sense if the jaws are open or closed?
As I understand it you have:
A pedal switch which I presume is either on or off
A double acting solenoid one way to open one way to close.
Do you have:
A spindle encoder feedback ?
A VDF 'motor stopped' signal?
A way to sense the position of the chuck jaws (open or closed) ?
A switch to select run-on-open / run-on-closed (ID / OD selection) ?
If you really only have the first two things then your logic is going to be 'open-loop' - it will never know for sure if the chuck is closed or stopped.
There are ways around all of them but it becomes obvious much less dangerous to actually know whats what
So can you confirm what you do or don't have available.
- Posts: 386
- Karma: 2
- Thank you received: 13
Not that it is willing to ignore, is that still do not understand the logic of HAL, so do not want to do harm,
panel of the machine has "IDgrip and ODgrip" but I'm not using any of it. all that is damaged. is also a special card cincinnati, and would have no idea of connecting.
jlviloria wrote: panel of the machine has "IDgrip and ODgrip" but I'm not using any of it. all that is damaged. is also a special card cincinnati, and would have no idea of connecting.
Not knowing what is behind the panel, can you either use the existing switch without the card, or put a new switch in the same hole?
When do you need this working by? I actually have the same problem with the drawbar on my milling machine, I ought to interlock the pneumatics so that I can't accidentally release the tool with the spindle running.
The logic needs to be moderately complex:
If the spindle is moving then the release needs to be ignored
If the release is pressed, then the spindle start/stop needs to be ignored
If the release is pressed then it shouldn't re-grip if the operator manually rotates the spindle (finger-trap risk)
The spindle should also probably be interlocked through the guard, but that is a different issue.
I propose writing a custom HAL component to do this, but it will take a week or so if you can wait that long.
The spindle mustn't start with the chuck released
The chuck must not release with the spindle spinning (even if the spindle stop command has been sent)
Moving the chuck by hand while it is released must not cause a re-grip (injury risk)
Switching ID/OD mode must not release the chuck while the spindle is turning.
The comp file below addresses all these by having three "states" and rules for how the system moves between them.
0 = spindle stopped, 1 = spindle running, 2 = chuck released.
spindle-speed-demand needs to pass through the component so that is can be over-ridden.
I have tested this with my machine. My only current concern is that if you press the pedal, then start the spindle then the spindle will start the instant you release the pedal.
It probably really needs to wait for a "grip good" signal.
You should be able to install this file with "sudo comp --install spindle_interlock.comp"
Once installed it should create a (minimal) documentation page which you can view with
jlviloria wrote: 1. how program with press the pedal you open or close the jaws?
2. how to program the pedal is disabled when spindle on?
3. how programmed to work the jaws. out or in.?
I thought about this some more recently, and think that you could use the LUT5 component that we are discussing here:
The input pins would be
0) Pedal pressed
1) Door open
2) Spindle Is turning (not spindle-is-on)
3) Internal/External switch.
If we only want to release when the pedal is pressed, and the door is open and the spindle is not turning then that would be (for external gripping) and starting with pin 4
0 0 0 1 1 = 0 (assuming 0 is release)
and for internal gripping:
0 1 0 1 1 = 1 (assuming that 1 is release in that case)
* I S D P
0 0 0 0 0 = 1
0 0 0 0 1 = 1
0 0 0 1 0 = 1
0 0 0 1 1 = 0
0 0 1 0 0 = 1
0 0 1 0 1 = 1
0 0 1 1 0 = 1
0 0 1 1 1 = 1
0 1 0 0 0 = 0
0 1 0 0 1 = 0
0 1 0 1 0 = 0
0 1 0 1 1 = 1
0 1 1 0 0 = 0
0 1 1 0 1 = 0
0 1 1 1 0 = 0
0 1 1 1 1 = 0
(Spare input, just make the same as the others)
1 0 0 0 0 = 1
1 0 0 0 1 = 1
1 0 0 1 0 = 1
1 0 0 1 1 = 0
1 0 1 0 0 = 1
1 0 1 0 1 = 1
1 0 1 1 0 = 1
1 0 1 1 1 = 1
1 1 0 0 0 = 0
1 1 0 0 1 = 0
1 1 0 1 0 = 0
1 1 0 1 1 = 1
1 1 1 0 0 = 0
1 1 1 0 1 = 0
1 1 1 1 0 = 0
1 1 1 1 1 = 0
Which comes out as 0x08F708F7. If your logic is different then you can work out what look-up table value you need using the Ubuntu calculator. (or convert by hand, which is fairly easy into hex)