How to stop spindle 3 mm before end of the line ?
12 Aug 2014 18:59 #49754
by Woj123
Replied by Woj123 on topic How to stop spindle 3 mm before end of the line ?
Can anybody check HAL file and tell me why motion.current-vel doesn't work
Pum is working as usually
Thank you
W
Pum is working as usually
Thank you
W
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5008
- Thank you received: 1441
12 Aug 2014 22:53 - 12 Aug 2014 22:57 #49766
by Todd Zuercher
Replied by Todd Zuercher on topic How to stop spindle 3 mm before end of the line ?
I think your problem is on the lines where you have "net and2.0.out".
You may have missunderstood how the net command works.
net (signal name) (ouput pin name) => (input pin name)
Think of the signal name as the wire connecting the pins
The signal name is required for every net command and must come first.
You can have multiple net commands using the same signal name connecting the same output pin to multiple inputs.
and the little => and <= symbols are optional and have no real affect on what is happening (they are just for readability)
So
net spindle-on and2.0.out => parport.0.pin-16-out => some-other-pin-in
in this net command "spindle-on" is the signal name, "and2.0.out" is the ouput pin suppling the signal, and "parport.0.pin-16-out" and "some-other-pin-in" are recieving the signal.
The following 3 lines do exactly the same thing as the privious example
net spindle-on and2.0.out
net spindle-on parport.0.pin-16-out
net spindle-on some-other-pin-in
The different net lines using the same signal name do not have to be next to eachother or in any particular order, they don't even have to be in the same hal file. An important rule is that there can be only one output assigned to a signal name, but there can be as many inputs recieving it as you like.
You may have missunderstood how the net command works.
net (signal name) (ouput pin name) => (input pin name)
Think of the signal name as the wire connecting the pins
The signal name is required for every net command and must come first.
You can have multiple net commands using the same signal name connecting the same output pin to multiple inputs.
and the little => and <= symbols are optional and have no real affect on what is happening (they are just for readability)
So
net spindle-on and2.0.out => parport.0.pin-16-out => some-other-pin-in
in this net command "spindle-on" is the signal name, "and2.0.out" is the ouput pin suppling the signal, and "parport.0.pin-16-out" and "some-other-pin-in" are recieving the signal.
The following 3 lines do exactly the same thing as the privious example
net spindle-on and2.0.out
net spindle-on parport.0.pin-16-out
net spindle-on some-other-pin-in
The different net lines using the same signal name do not have to be next to eachother or in any particular order, they don't even have to be in the same hal file. An important rule is that there can be only one output assigned to a signal name, but there can be as many inputs recieving it as you like.
Last edit: 12 Aug 2014 22:57 by Todd Zuercher.
The following user(s) said Thank You: Woj123
Please Log in or Create an account to join the conversation.
12 Aug 2014 23:13 #49767
by BigJohnT
Replied by BigJohnT on topic How to stop spindle 3 mm before end of the line ?
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5008
- Thank you received: 1441
12 Aug 2014 23:25 #49768
by Todd Zuercher
Replied by Todd Zuercher on topic How to stop spindle 3 mm before end of the line ?
Try this
The following user(s) said Thank You: Woj123
Please Log in or Create an account to join the conversation.
13 Aug 2014 00:04 - 13 Aug 2014 19:56 #49771
by Woj123
Replied by Woj123 on topic How to stop spindle 3 mm before end of the line ?
Todd Zuercher I realy appreciate your help. Your hal file is OK . but there is one more problem.
1.pump starts
2.After G04 starts cnc maschine
3 than pump stops ( i think getting our parametr) - I need pump running
4. Cnc is going to the end of the line
5 Pump starts ( I think getting our factor) - I need pump to be stopped
6.End of the line
Thanks All for help and understand me please. I have never heard about linuxcnc before
1.pump starts
2.After G04 starts cnc maschine
3 than pump stops ( i think getting our parametr) - I need pump running
4. Cnc is going to the end of the line
5 Pump starts ( I think getting our factor) - I need pump to be stopped
6.End of the line
Thanks All for help and understand me please. I have never heard about linuxcnc before
Last edit: 13 Aug 2014 19:56 by Woj123.
Please Log in or Create an account to join the conversation.
13 Aug 2014 06:39 #49788
by andypugh
Replied by andypugh on topic How to stop spindle 3 mm before end of the line ?
I have only just looked at this, but there may be a different way.
Create a new G-code which acts just like G1, except it splits the move into two G1 moves, one with "spindle" on, and one with it off.
(I was hoping that G1 could be remapped, but it looks like it would have to be G1.1 or something like that).
www.linuxcnc.org/docs/html/remap/structure.html
So, you would create a G1.1 which calls an ngc routine a bit like this:
In the INI file, section [RS274NGC]
REMAP=G1.1 argspec=xy modalgroup=5 ngc=extrude
Then create a G-code file called "extrude.ngc" that contains:
Create a new G-code which acts just like G1, except it splits the move into two G1 moves, one with "spindle" on, and one with it off.
(I was hoping that G1 could be remapped, but it looks like it would have to be G1.1 or something like that).
www.linuxcnc.org/docs/html/remap/structure.html
So, you would create a G1.1 which calls an ngc routine a bit like this:
In the INI file, section [RS274NGC]
REMAP=G1.1 argspec=xy modalgroup=5 ngc=extrude
Then create a G-code file called "extrude.ngc" that contains:
O<extrude> sub
#<dist> = 3
#<dx> = [#<x> - #<_x>]
#<dy> = [#<y> - #<_y>]
#<r> = SQRT[#<dx> * #<dx> + #<dy> * #<dy>]
;ATAN has a unique format
#<theta> = ATAN[#<dx>]/[#<dy>]
M3
O100 IF [#<hyp> GT #<dist>]
G1 X[[#<_x> + [#<hyp> - #<dist>] * SIN[#<theta>]] Y[[#<_y> + [#<hyp> - #<dist>]]
M5
G1 X#<x> Y#<y>
O100 ELSE
;do a shorter version of the move here, or maybe just a normal move
;#<hyp> * 0.9 maybe?
G1 X#<x> Y#<y>
O100 ENDIF
O<extrude> ENDSUB
M2
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5008
- Thank you received: 1441
13 Aug 2014 20:24 #49813
by Todd Zuercher
Replied by Todd Zuercher on topic How to stop spindle 3 mm before end of the line ?
So are you saying
So are you saying that the pump runs opposite of what we wanted, It run then shuts off for the majority of the line then turns off for the last little bit? Or is it mostly right but shutting off for the initial acceleration and is on for most of the move (a foreseen problem)?
Andy's idea is a novel one. Unfortunately I think it will have as many problems to overcome as this one.
I think the delay component would probably be the best solution, but I don't have the programming skills to write it.
Alternatively, this could all be done in the G-code fairly easily, if your cam program is flexible enough in its post creation. If you have a paid for cam program with decent technical support, ask them to write you a post that will do what your asking
If you give the pure g-code route a try, you might need to use M62/M63 to turn it on/off as I am not sure if M3/M5 are cue busters (stop movement). To make a 20mm line
Todd Zuercher I realy appreciate your help. Your hal file is OK . but there is one more problem.
1.pump starts
2.After G04 starts cnc maschine
3 than pump stops ( i think getting our parametr)
4. Cnc is going to the end of the line
5 Pump starts ( I think getting our factor)
Thanks All for help and understand me please. I have never heard about linuxcnc before
So are you saying that the pump runs opposite of what we wanted, It run then shuts off for the majority of the line then turns off for the last little bit? Or is it mostly right but shutting off for the initial acceleration and is on for most of the move (a foreseen problem)?
Andy's idea is a novel one. Unfortunately I think it will have as many problems to overcome as this one.
I think the delay component would probably be the best solution, but I don't have the programming skills to write it.
Alternatively, this could all be done in the G-code fairly easily, if your cam program is flexible enough in its post creation. If you have a paid for cam program with decent technical support, ask them to write you a post that will do what your asking
If you give the pure g-code route a try, you might need to use M62/M63 to turn it on/off as I am not sure if M3/M5 are cue busters (stop movement). To make a 20mm line
G21 G91
M62 P1
G4 P5
G1 X17 M63 P1
G1 X3
Please Log in or Create an account to join the conversation.
13 Aug 2014 20:41 - 13 Aug 2014 20:45 #49814
by Woj123
Replied by Woj123 on topic How to stop spindle 3 mm before end of the line ?
That all I can do in CAM program. I have changed posprocesor so I can do :
1.Start pomp
2.delay of moving cnc
speed of tha pump and revers is runnig by another program
what I need, is to stop somehow pump before end of each line ( I think about 2-3 mm )
that is because at the end there is too much resin and that is looking not so nice ( even because of reverse of the pump )
motion.current-vel would be great if ignore first factor
1.Start pomp
2.delay of moving cnc
speed of tha pump and revers is runnig by another program
what I need, is to stop somehow pump before end of each line ( I think about 2-3 mm )
that is because at the end there is too much resin and that is looking not so nice ( even because of reverse of the pump )
motion.current-vel would be great if ignore first factor
Last edit: 13 Aug 2014 20:45 by Woj123.
Please Log in or Create an account to join the conversation.
13 Aug 2014 21:08 #49817
by andypugh
I do actually think that the way to do this is in CAM. Only in CAM do you know that the machine is approaching a stop.
It might be possible to make a filter that looks through the G-code, notes every point where the system is going to stop and splits the preceeding G1 move.
Anything done in the HAL layer will have problems in some scenarios. It really can't see the future.
Having said that...
Perhaps instead of looking at axis velocity you should look at axis acceleration.
Pass axis velocity through a ddt block, turn the "spindle" on for any positive or zero acceleration moves, turn it off for deceleration moves.
Replied by andypugh on topic How to stop spindle 3 mm before end of the line ?
what I need, is to stop somehow pump before end of each line ( I think about 2-3 mm )
I do actually think that the way to do this is in CAM. Only in CAM do you know that the machine is approaching a stop.
It might be possible to make a filter that looks through the G-code, notes every point where the system is going to stop and splits the preceeding G1 move.
Anything done in the HAL layer will have problems in some scenarios. It really can't see the future.
Having said that...
Perhaps instead of looking at axis velocity you should look at axis acceleration.
Pass axis velocity through a ddt block, turn the "spindle" on for any positive or zero acceleration moves, turn it off for deceleration moves.
Please Log in or Create an account to join the conversation.
13 Aug 2014 22:05 #49819
by Woj123
Replied by Woj123 on topic How to stop spindle 3 mm before end of the line ?
to be honest I thought that will be much easier to do so. That is why I change mach to Linux. Anyway I do not regret my decision but all is new for me
Please Log in or Create an account to join the conversation.
Time to create page: 0.083 seconds