Cut Recovery Not Consistently Triggering
30 Sep 2024 17:37 #311082
by Uthayne
Cut Recovery Not Consistently Triggering was created by Uthayne
I run plasmac with a fiber laser now and while I have made a few modifications to the settings, the underlying plasmac component runs the same as it did with a plasma cutter. My THC is tracking to a capacitance value instead of voltage, which goes to 0 when the nozzle touches material (mainly tip-ups) during any movement. This usually leads me to needing to a do a reverse jog sequence and restart the cut - which works well.
The issue I am having is that the cut recovery panel is not consistently being enabled when paused_motion (plasmac state 19) is triggered. I can't narrow down why cut recovery is able to be used sometimes and not others. I have a component that monitors my capacitance (nozzle to work distance) and will pause the program if it goes below a threshold, or actually touches the nozzle to the work piece which prevents a crash.
To get cut recovery and reverse run to work, I usually (>90%) have to click the "REV" button, click Resume, click Pause, click "REV" again, click Resume, and then the "REV" button actually will back up the program. Other than doing this sequence, the "REV" button doesn't do anything, even while being in plasmac state 19.
I have tested cut recovery with both my custom component that will pause the program, as well as manual pausing and it doesn't make a difference for when cut recovery is not bugged.
The issue I am having is that the cut recovery panel is not consistently being enabled when paused_motion (plasmac state 19) is triggered. I can't narrow down why cut recovery is able to be used sometimes and not others. I have a component that monitors my capacitance (nozzle to work distance) and will pause the program if it goes below a threshold, or actually touches the nozzle to the work piece which prevents a crash.
To get cut recovery and reverse run to work, I usually (>90%) have to click the "REV" button, click Resume, click Pause, click "REV" again, click Resume, and then the "REV" button actually will back up the program. Other than doing this sequence, the "REV" button doesn't do anything, even while being in plasmac state 19.
I have tested cut recovery with both my custom component that will pause the program, as well as manual pausing and it doesn't make a difference for when cut recovery is not bugged.
Please Log in or Create an account to join the conversation.
- snowgoer540
- Offline
- Moderator
Less
More
- Posts: 2388
- Thank you received: 779
01 Oct 2024 23:25 #311134
by snowgoer540
Replied by snowgoer540 on topic Cut Recovery Not Consistently Triggering
I vaguely remember fixing something similar to this with Phill's help semi recently...
It would help to know what specific version of QtPlasmaC you are running?
It would help to know what specific version of QtPlasmaC you are running?
Please Log in or Create an account to join the conversation.
03 Oct 2024 02:44 #311209
by Uthayne
Replied by Uthayne on topic Cut Recovery Not Consistently Triggering
Right, my bad. I'm on QtPlasmaC v2.10-008.046
Please Log in or Create an account to join the conversation.
- snowgoer540
- Offline
- Moderator
Less
More
- Posts: 2388
- Thank you received: 779
03 Oct 2024 09:19 #311216
by snowgoer540
Replied by snowgoer540 on topic Cut Recovery Not Consistently Triggering
Hmm wouldn’t have been that recent.
I can take a look into it when I get some time. I remember back when there was a lot of trickery surrounding the timing between the component(s) (plasmac.comp, and in your case your capacitance comp) and the GUI’s timing. Perhaps there’s a better way to implement now.
It is tough because I’ve not run into this when cutting or simulating. Not saying it doesn’t exist, but it just makes it infinitely harder to fix when the issue is inconsistent or varies between computers.
Hopefully at least the reverse run stuff is easy to duplicate …
I can take a look into it when I get some time. I remember back when there was a lot of trickery surrounding the timing between the component(s) (plasmac.comp, and in your case your capacitance comp) and the GUI’s timing. Perhaps there’s a better way to implement now.
It is tough because I’ve not run into this when cutting or simulating. Not saying it doesn’t exist, but it just makes it infinitely harder to fix when the issue is inconsistent or varies between computers.
Hopefully at least the reverse run stuff is easy to duplicate …
Please Log in or Create an account to join the conversation.
03 Oct 2024 19:52 #311250
by Uthayne
Replied by Uthayne on topic Cut Recovery Not Consistently Triggering
My component issues an ohmic-probe signal which plasmac will then pause the program, and sometimes the "Pause" button is still shown instead of what should be a "Resume" button, so maybe that has something to do with it. However, this is not the only case when the cut recovery panel doesn't work. If I hit Pause (spacebar) manually during a cut, it is not guaranteed to have cut recovery work appropriately still.
I could try instead linking the nozzle short condition to the program-pause signal and see if that helps with the timing aspect.
I could try instead linking the nozzle short condition to the program-pause signal and see if that helps with the timing aspect.
Please Log in or Create an account to join the conversation.
- snowgoer540
- Offline
- Moderator
Less
More
- Posts: 2388
- Thank you received: 779
04 Oct 2024 17:37 #311300
by snowgoer540
Replied by snowgoer540 on topic Cut Recovery Not Consistently Triggering
You could try using the following pin:
I kind of doubt it will make much difference if you have issue with the space bar, but it's worth trying.
qtplasmac.ext_pause
I kind of doubt it will make much difference if you have issue with the space bar, but it's worth trying.
Please Log in or Create an account to join the conversation.
- snowgoer540
- Offline
- Moderator
Less
More
- Posts: 2388
- Thank you received: 779
07 Oct 2024 09:34 #311478
by snowgoer540
Replied by snowgoer540 on topic Cut Recovery Not Consistently Triggering
For what it’s worth, I tried for 20 minutes or so to get my table to duplicate any of your issues. Everything works fine. The cut recovery panel comes up, reverse run always worked. I know that’s not what you want to hear …
The following user(s) said Thank You: Uthayne
Please Log in or Create an account to join the conversation.
07 Oct 2024 21:29 #311530
by Uthayne
Replied by Uthayne on topic Cut Recovery Not Consistently Triggering
If I start a program and pause it with spacebar, or the GUI, cut recovery seems to be working as intended. I just repeated this test 5 times and it worked every time.
When I touch the nozzle with my finger (laser is not on), it causes the ohmic-probe signal to go HIGH, which will pause the program throwing the error "Ohmic probe activated, program is paused" I am using this function of plasmac to detect nozzle crashes when ohmic probing should not be enabled (anytime state != 2, the probe down state). Sometimes, cut recovery works just fine, but when I just tested it now it is not.
Perhaps this is running into timing issues between the components and the GUI as you said and I should investigate explicitly calling program pause. I will have to think on this a bit as I want it to catch even when the program is not running (jogging around) and also set jog-inhibit if I happen to jog into a crash situation. The laser is not mounted on a floating Z like plasma torches typically are, so I need to be extra sensitive with nozzle crashes.
Here's my fiber laser component, and the dynamic probing section is what takes care of nozzle crashes:
When I touch the nozzle with my finger (laser is not on), it causes the ohmic-probe signal to go HIGH, which will pause the program throwing the error "Ohmic probe activated, program is paused" I am using this function of plasmac to detect nozzle crashes when ohmic probing should not be enabled (anytime state != 2, the probe down state). Sometimes, cut recovery works just fine, but when I just tested it now it is not.
Perhaps this is running into timing issues between the components and the GUI as you said and I should investigate explicitly calling program pause. I will have to think on this a bit as I want it to catch even when the program is not running (jogging around) and also set jog-inhibit if I happen to jog into a crash situation. The laser is not mounted on a floating Z like plasma torches typically are, so I need to be extra sensitive with nozzle crashes.
Here's my fiber laser component, and the dynamic probing section is what takes care of nozzle crashes:
component fibercap "Convert BCL-AMP frequency to an appropriate level";
description """This component takes the BCL-Amplifier frequency input
and converts it to a 'voltage' value that plays nicely with Plasmac.
It also includes power level adjusting based on velocity and dynamic probing which
probes to a set capacitance value instead of touching the material.""";
/* INPUT PINS */
pin in float bcl_amp_freq "BCL-AMP frequency IN";
pin in float bcl_amp_freq_max "Max frequency observed from BCL-AMP";
pin in float bcl_amp_freq_min "Minimum frequency observed from BCL-AMP";
pin in float capacitance_max "Desired maximum capacitance value";
pin in float capacitance_min "Desired minimum capacitance value, usually 0";
pin in float current_velocity "Current machine velocity";
pin in float cut_capacitance "Cut capacitance setting, from plasmac.cut-volts";
pin in float cut_feed_rate "Cut velocity, from plasmac.cut-feed-rate";
pin in float cut_height "Cut height, from plasmac.cut-height";
pin in bit enable_dynamic_probing ;
pin in float full_power_percent ;
pin in float lower_power ;
pin in float laser_max_power ;
pin in float nozzle_short_capacitance "Desired capacitance to detect nozzle crashes";
pin in bit ohmic_pierce_delay "Delay for ohmic sense after torch-on to deal with slag hitting nozzle";
pin in s32 plasmac_state "Plasmac state";
pin in float probe_factor "Adjustment factor for use with dynamic probing";
pin in bit torch_on "Plasmac Torch On signal";
/* OUTPUT PINS */
pin out float current_capacitance ;
pin out float raw_freq ;
pin out float laser_power ;
pin out bit ohmic_probe ;
/* LOCAL VARIABLES */
variable float bcl_amp_range ;
variable float capacitance_range ;
function _;
author "Bryan LaRochelle";
license "GPL";
;;
#include <rtapi_math.h>
FUNCTION(_) {
/* Scaling the frequency input to a preferred range */
raw_freq = bcl_amp_freq;
bcl_amp_range = (bcl_amp_freq_max - bcl_amp_freq_min);
capacitance_range = (capacitance_max - capacitance_min);
current_capacitance = (((bcl_amp_freq - bcl_amp_freq_min) * capacitance_range) / bcl_amp_range) + capacitance_min;
/* Set the floor at 0 */
if(current_capacitance < capacitance_min){
current_capacitance = capacitance_min;
}
/* Dynamic Power */
//if torch.on and motion.current-vel > some number, set power
if(torch_on){
if(current_velocity*60 > cut_feed_rate * (full_power_percent/100)){
laser_power = laser_max_power;
}
else{
laser_power = lower_power;
}
}
if(enable_dynamic_probing){
/* Dynamic Probing */
/* If probing, trigger at cut_capacitance instead of material */
if(plasmac_state == 2){ //probe down state
if(current_capacitance <= cut_capacitance + probe_factor){
ohmic_probe = true;
}
}
}
if(!enable_dynamic_probing || plasmac_state != 2){
/* Catch nozzle tips any other time */
if(((current_capacitance <= nozzle_short_capacitance + probe_factor) || (current_capacitance <= capacitance_min)) && (!torch_on || ohmic_pierce_delay)){
ohmic_probe = true;
}
else{
ohmic_probe = false;
}
}
}
Please Log in or Create an account to join the conversation.
08 Oct 2024 02:53 - 08 Oct 2024 02:59 #311539
by phillc54
Replied by phillc54 on topic Cut Recovery Not Consistently Triggering
Unfortunately we need to interface with some user space signals so we do work around some timing issues.
Maybe your ohmic-probe output is not active for long enough during a nozzle crash.
EDIT: Does the Z axis raise even though the cut recovery panel does not appear?
Maybe your ohmic-probe output is not active for long enough during a nozzle crash.
EDIT: Does the Z axis raise even though the cut recovery panel does not appear?
Last edit: 08 Oct 2024 02:59 by phillc54. Reason: add question
Please Log in or Create an account to join the conversation.
08 Oct 2024 11:23 #311559
by Uthayne
Replied by Uthayne on topic Cut Recovery Not Consistently Triggering
Yes, it has never failed to pause and go to Z max height after a nozzle crash.
Please Log in or Create an account to join the conversation.
Moderators: snowgoer540
Time to create page: 0.153 seconds