Skip to content

Commit

Permalink
plasmac: add speed adjustment for final probe up
Browse files Browse the repository at this point in the history
  • Loading branch information
phillc54 committed Sep 2, 2020
1 parent 5cece4e commit 4dc48a2
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 9 deletions.
10 changes: 5 additions & 5 deletions configs/by_machine/plasmac/plasmac_config.py
Expand Up @@ -89,11 +89,11 @@ def configure_widgets(self):
self.builder.get_object('thc-threshold-adj').configure(1,0.05,9,0.01,0,0)
if self.i.find('TRAJ', 'LINEAR_UNITS').lower() == 'mm':
self.builder.get_object('float-switch-travel').set_digits(2)
self.builder.get_object('float-switch-travel-adj').configure(1.5,0,25,0.01,0,0)
self.builder.get_object('float-switch-travel-adj').configure(1.5,-25,25,0.01,0,0)
self.builder.get_object('height-per-volt').set_digits(3)
self.builder.get_object('height-per-volt-adj').configure(0.1,0.025,0.2,0.01,0,0)
self.builder.get_object('ohmic-probe-offset').set_digits(2)
self.builder.get_object('ohmic-probe-offset-adj').configure(0,-25,0,0.01,0,0)
self.builder.get_object('ohmic-probe-offset-adj').configure(0,-25,+25,0.01,0,0)
self.builder.get_object('probe-feed-rate').set_digits(0)
self.builder.get_object('probe-feed-rate-adj').configure(300,1,self.thcFeedRate,1,0,0)
self.builder.get_object('probe-start-height').set_digits(0)
Expand All @@ -107,11 +107,11 @@ def configure_widgets(self):
self.builder.get_object('skip-ihs-distance').set_value(0)
elif self.i.find('TRAJ', 'LINEAR_UNITS').lower() == 'inch':
self.builder.get_object('float-switch-travel').set_digits(3)
self.builder.get_object('float-switch-travel-adj').configure(0.06,0,1,0.001,0,0)
self.builder.get_object('float-switch-travel-adj').configure(0.06,-1,1,0.001,0,0)
self.builder.get_object('height-per-volt').set_digits(4)
self.builder.get_object('height-per-volt-adj').configure(0.004,0.001,0.008,0.001,0,0)
self.builder.get_object('ohmic-probe-offset').set_digits(3)
self.builder.get_object('ohmic-probe-offset-adj').configure(0,-1,0,0.001,0,0)
self.builder.get_object('ohmic-probe-offset-adj').configure(0,-1,1,0.001,0,0)
self.builder.get_object('probe-feed-rate').set_digits(1)
self.builder.get_object('probe-feed-rate-adj').configure(12,0.1,self.thcFeedRate,.1,0,0)
self.builder.get_object('probe-start-height').set_digits(2)
Expand Down Expand Up @@ -321,7 +321,7 @@ def idle_changed(self, halpin):

def __init__(self, halcomp,builder,useropts):

self.plasmacVersion = 'PlasmaC v0.169'
self.plasmacVersion = 'PlasmaC v0.170'

self.halcomp = halcomp
self.builder = builder
Expand Down
7 changes: 7 additions & 0 deletions configs/by_machine/plasmac/versions.html
Expand Up @@ -19,6 +19,13 @@ <h2>PlasmaC Updates</h2>
</head>
<body>

<br><b><u>v0.170 - 2020 Sep 02</u></b>
<ul style="margin:0;">
<li>add speed adjustment for final probe up</li>
<li>fix scibe error in filter file</li>
<li>update user guide</li>
</ul>

<br><b><u>v0.169 - 2020 Aug 30</u></b>
<ul style="margin:0;">
<li>fix offset disable error from v0.162</li>
Expand Down
27 changes: 25 additions & 2 deletions docs/src/plasma/plasmac-user-guide.txt
Expand Up @@ -127,7 +127,7 @@ For a metric machine with a Z axis MAX_ACCELERATION of 600 mm/s^2^ and MAX_VELOC

For a imperial machine with a Z axis MAX_ACCELERATION of 24 in/s^2^ and MAX_VELOCITY of 2.4 in/s the overrun would be 0.12 in

It is also recommended that even if you intend to use ohmic probing as your primary probing system that you also have a switch on the floating head as a backup in case of ohmic probe failure due to dirty surfaces.
It is highly recommended that even if you intend to use ohmic probing as your primary probing system that you also have a switch on the floating head as a backup in case of ohmic probe failure due to dirty surfaces.

IMPORTANT: YOU SHOULD BE ABLE TO HOME YOUR MACHINE, TOUCH OFF, JOG TO SOFT LIMITS WITHOUT CRASHING AND RUN SOME TEST G-CODE WITHOUT ANY ERRORS.

Expand Down Expand Up @@ -165,7 +165,7 @@ You NEED to have a fully tested and working base machine configuration without a

CAUTION: DO *NOT* PROCEED UNTIL THIS HAS BEEN DONE

NOTE: IF YOU ARE USING A *Mesa Electronics THCAD* CARD FOR ARC VOLTAGE MEASUREMENT, SEE <<mesa-thcad, Mesa THCAD>> BEFORE PROCEEDING
NOTE: If you are using a *Mesa Electronics THCAD* card for arc voltage measurement, see <<mesa-thcad, Mesa THCAD>> before proceeding

[[configurator]]

Expand Down Expand Up @@ -291,6 +291,8 @@ If you use a float switch then you will need to set the offset in the Config Pan

. After the Z axis rises, repeat from #4 above until the Pierce Height is correct.

NOTE: If your final probe up time seems excessive then see <<probing, the probing section>> for a solution.

IMPORTANT: IF USING A *Mesa Electronics THCAD* THEN UP UNTIL NOW THE *Voltage Scale* VALUE WAS OBTAINED MATHEMATICALLY. IF YOU INTEND TO USE CUT VOLTAGES FROM MANUFACTURES CUT CHARTS THEN IT WOULD BE ADVISABLE TO DO MEASUREMENTS OF ACTUAL VOLTAGES AND FINE TUNE THE *Voltage Scale* AND *Voltage Offset*.

CAUTION: PLASMA CUTTING VOLTAGES CAN BE LETHAL, IF YOU ARE NOT EXPERIENCED IN DOING THESE MEASUREMENTS GET SOME QUALIFIED HELP.
Expand Down Expand Up @@ -467,6 +469,8 @@ image::images/plasmac_config.png[width=50%]

NOTE: Probe Height is the height above the minimum Z axis limit.

NOTE: If your final probe up time seems excessive then see <<probing, the probing section>> for a solution.

[underline]*THC*

[width="100%",cols="4,2,14"]
Expand Down Expand Up @@ -1053,6 +1057,8 @@ A value of zero for *Skip IHS* will disable IHS skipping.

Any errors encountered on a cut will disable IHS skipping for the next cut if it was enabled.

[[probing]]

=== Probing

Probing may be with either ohmic sensing or a float switch, it is also possible to combine both with the float switch providing a fallback to ohmic probing.
Expand All @@ -1063,6 +1069,23 @@ Probing setup is done in the Motion frame of the Config Panel.

PlasmaC can probe at the full Z axis velocity so long as your machine has enough movement in the float switch to absorb any overrun. If your machine is suitable you could set Probe Height to near the Z axis minimum and do all probing at full speed.

Some float switches can exhibit a large switching hysteresis which shows up in probing as an excessive time to complete the final probe up.
This time may be decreased by changing the speed of the final probe up.
This speed defaults to 0.001mm (0.000039") per servo cycle.
It is possible to increase this speed by up to a factor of 10 by adding the following line to your <machine_name>_connections.hal file:

----
setp plasmac.probe-final-speed n
----

where n is from 1~10. It is recommended to keep this value as low as possible.

Using this feature will change the final height slightly so will require thorough probe testing to confirm the final height.

This speed value affects ALL probing so if you use ohmic probing and you change this speed value then you will need to probe test to set the require offset to compensate for this speed change as well as the float travel.

The reliability of this feature will only be as good as the repeatability of the float switch.

NOTE: Probe Height is the height above the minimum Z axis limit.

[[cut-types]]
Expand Down
11 changes: 9 additions & 2 deletions src/hal/components/plasmac.comp
Expand Up @@ -7,7 +7,7 @@ A plasma cutting table control component for use with the LinuxCNC V2.8 or later

.I VERSION:
.br
0.169 - 2020 Aug 30
0.170 - 2020 Sep 02

.I SUMMARY:
.br
Expand Down Expand Up @@ -82,6 +82,7 @@ pin in float pid_d_gain "derivative gain input [mode 0 & mod
pin in float pid_i_gain "integral gain input [mode 0 & mode 1]";
pin in float pid_p_gain "proportional gain input [mode 0 & mode 1]";
pin in float pierce_delay "time required to pierce stock (seconds)";
pin in s32 probe_final_speed = 1 "final probe speed (steps per servo period)";
pin in float pierce_height "pierce height (machine units)";
pin in float probe_feed_rate "probe down velocity (machine units per minute)";
pin in bit probe_test "probe test only";
Expand Down Expand Up @@ -783,7 +784,13 @@ FUNCTION(_) {
if(probe_retry){
z_offset_counts += 10;
}else{
z_offset_counts += 1;
if(probe_final_speed > 10){
z_offset_counts += 10;
}else if(probe_final_speed < 1){
z_offset_counts += 1;
}else{
z_offset_counts += probe_final_speed;
}
}
}else{
if(probe_retry){
Expand Down

0 comments on commit 4dc48a2

Please sign in to comment.