movement pauses during the execution of an MCode

More
08 Sep 2022 07:39 #251469 by mich94
ok thank you very mutch for all :)
now: i'm using a 7i76 that for what i read is slightly different from the "e" version but not so mutch about the analog output i guess.
i have a pneumatic extruder, so until now we utilized the spindle output just because it provides a voltage out in the range 0-5V that we need for the air valve.
from what you said and what i found on the datasheets can i connect the hardware pin (phisically present on the board) "SPINDLE OUT" with the internal pin "motion.analog-out-00" (i guess by changing some commands in the HAL file)?
Would this allow me to set the value of the motion.analog-out-00 with the M67 gcode and have the voltage output i need on the "SPINDLE OUT" pin?
thank you people for the patience

Please Log in or Create an account to join the conversation.

More
08 Sep 2022 12:21 - 08 Sep 2022 12:30 #251481 by Todd Zuercher
I think you have a lot of things very confused. Do you have a machine configuration that "mostly" works for you except for the pauses in motion when you try to change the extruder feed using M3Snnn?

If so post your hal and ini config files here by adding them as attachments to your message. Then we can suggest the proper changes you will need to make to those files to get the desired affect.

The hal pin "motion.analog-out-00" has nothing really to do with any true hardware analog outputs, other than being one of many possible ways of sending a float value to one. In this case you should probably be using a hardware stepgen to control your extruder so "motion.analog-out-00" will merely be the means for sending the float value of the speed you want to that stepgen. (All digital nothing analog about it other than the name of the hal pin.)

PS:  The name of the hal pin "motion.analog-out-00" is really a bit of a misnomer, a more accurate descriptive name for it would have been "motion.float-out-00".  But it is a long standing historic error in semantics that would be more trouble to change than to leave it alone.
Last edit: 08 Sep 2022 12:30 by Todd Zuercher. Reason: Added PS comment

Please Log in or Create an account to join the conversation.

More
08 Sep 2022 13:35 #251486 by mich94

I think you have a lot of things very confused

correct

Do you have a machine configuration that "mostly" works for you except for the pauses in motion when you try to change the extruder feed using M3Snnn?

also correct,
it works fine but my thesis work is to improve the printing: by making so i made a bunch of functions that calculate the speed of the estruder in all the planned path, then using another algorithm i calculate the best pressure for an uniform extrusion.
I then need to change the pressure (in the G-code) in the points where the speed change over a certain threshold (in the change of direction). 
Here comes the problem because when i use the "M3 Snnn"  that change the voltage output, that change the pressure of extrusion, the robot stops and this generate an accumulation on the printing path.

i included all the attachments i got for a complete view 
thank you for all the help

Please Log in or Create an account to join the conversation.

More
08 Sep 2022 16:20 - 08 Sep 2022 16:24 #251501 by Aciera
You could try to manipulate the analog spindle output of the 7i76 with the float value in
"motion.analog-out-00".
So either try to feed your desired "speed" directly into this:
net spindle-output => hm2_7i80.0.7i76.0.0.spinout

Or use the "halui.spindle.0.override" pins
linuxcnc.org/docs/html/man/man1/halui.1.html

Note that, if I remember correctly, the 7I76 will only output the analog signal if hm2_7i80.0.7i76.0.0.spinena is true.

edit: personally I would try the override first
Last edit: 08 Sep 2022 16:24 by Aciera.
The following user(s) said Thank You: mich94

Please Log in or Create an account to join the conversation.

More
19 Sep 2022 09:52 #252329 by mich94
thank you for the answer! :)
sorry for my late reply
for what i read i have understood that the override can provide an increment or decrement of actual pin value (am i right?), what i need is to change the value multiple time with some pre-calculated numbers,
for this reason i think i could not follow your personal suggestion
by the way i think the first way you exposed could be the right one! :side:
i'm now studying the HAL file in order to "manipulate the analog spindle output with the float value in motion.analog-out-00" as you said
i already have the command for "net spindle-output => hm2_7i80.0.7i76.0.0.spinout" in the HAL so i guess i need to change the link for "spindle-output" that now is on the PID to the analog.motion

(now is "net spindle-output <= pid.s.output")

Please Log in or Create an account to join the conversation.

More
19 Sep 2022 13:49 #252343 by mich94
we got it guys!!
thanks for all your help and time!

the Gcode now starts with an M3 M67 E0 Qxxx so the spindle is activated and the speed is modified by the pin 00, when i need to change the pressure i just M67 E0 Qxxx and it changes without stopping the motion
i just changed 1 line in the .hal file:
it was : net spindle-output <= pid.s.output
it became : net spindle-output <= motion.analog-out-00
(replies will follow if something don't go as planned)

Please Log in or Create an account to join the conversation.

Time to create page: 0.071 seconds
Powered by Kunena Forum