Gmoccapy Plasma - the plasma version of Gmoccapy
As with the main GUI, the plasma screen is designed to be used with a touch screen and is thus optimized for touch at 1024px x 768px
It can however be used with keyboard and mouse
For a full description of the screen functions please visit the main wiki at [gmoccapy wiki page]
-
- 1. Requirements
-
- 2. Some background on Plasma operations
-
- 3. THC - Torch Height Control
-
-
- 3.1. What is THC
-
- 3.2. How does it work
-
- 3.3. THC methods
-
-
- 3.3.1. Gcode driven approach
-
- 3.3.2. HAL configuration files and components
-
- 3.3.3. HAL Component approach
-
4. Plasma GUI
-
-
- 4.1. Control functions
-
-
- 4.1.1. Signals
-
- 4.1.2. Control
-
- 4.1.3. Limits
-
- 4.1.4. Cutting
-
- 4.1.5. Piercing
-
- 4.1.6. Corner Lock
-
- 4.1.7. THC Voltage
-
5. INI file settings
-
- 6. TO DO
-
- 7. Credits
-
1. Requirements
Please refer to the Gmoccapy page for detailed requirements.
[gmoccapy wiki page]
The plasma screen has been included in the latest master branch. It can be found under the sim directory.
You will be required to copy all the relevant files to your config. More on this later.
2. Some background on Plasma operations
Plasma operations on CNC machines is a bit of an orphan process.
When cutting metal with a flame, the uneven heating up of the material will cause the sheet to bend and buckle. To start with, most sheets of metal does not come out of the mill or press in a very even or flat state. Thick sheets (30mm plus) can be out of plane as much as 50mm to 100mm.
Most CNC gcode programs will start from a know reference or a piece of stock that has a know size and shape. Gcode is written to rough the excess of and finally cut the finished part.
With plasma the unknown state of the sheet makes it impossible to generate gcode that will cater for these variances in the material.For this reason the THC ( Torch Height Control ) concept was designed. More detail on THC later in the document.
The purpose of the THC function is to make sure that the torch remains at a certain height above the work piece. Not having gcode to do this, one has to interject somewhere in the control loop to get the Z axis to track the material height. By nature of this statement it is clear that plasma and THC does not adhere to the rules for normal CNC and has to be treated with caution.
Suffice to say that it is almost impossible to do decent production plasma cutting without a proper THC system implemented.
3. THC - Torch Height Control
3.1. What is THC
THC is a method devised to control the height of a plasma torch while cutting sheet metal under full control of a cnc system. Due to the fact that the metal constantly changes it shape while being cut, it is necessary to track the surface of the metal in order to get the best possible cut results.
3.2. How does it work
Several things has to happen in order for a THC system to have all the required information, input and output, to make things happen correctly. The plasma torch is lifted as high as possible and still make a good arc when we pierce. This is called pierce gap. Then the torch is dropped to a pre-set height in order to give the best possible cut results for the given material. This will save the consumables as there is a lot of molten metal that comes off the top of the material when piercing. Once this arc is established, the cutting can commence and at this point the normal cnc procedures take over and we track the material surface by means of measuring the Tip Voltage of the plasma cutter.
The process is as follows:
- Get to know where the material is located.
- Set the correct piercing height.
- Turn on the torch.
- Wait for a good arc
- Measure the arc voltage
- Commence Gcode move
- Look at Arc voltage level
- If the voltage is to low - lift the torch or if to high drop the torch
All of these things happen outside of the normal gcode arena. That means we will have some component that does all this work as well as create an interface to some hardware that will in turn interface with the plasma equipment. Well that is not all entirely true as it depends on how you implement your THC functionality. In the next section we will deal with the various methods of control.
3.3. THC methods
There are two approaches when it comes to THC. Both of these will involve external hardware to interface with the plasma equipment.
3.3.1. Gcode driven approach
When this method is applied the user generally has to ensure that the gcode program contains all the required sub routines to do material probing.
Typically something like this:
Example 1
o<touchoff> sub
(#1 pierce height, #2 pierce delay, #3 cut height, #4 switch offset)
F500
G38.2 Z-300 (Probe to find the surface)
G92 Z-30
G38.4 Z5
G91
G1 Z#4 (Raise up to Offset)
G90
G92 Z0 (Set Z0)
G1 Z#1
M3 S1
M66 P0 L3 Q5 (Wait for Arc OK from Torch)
G4 P#2 (Pause for pierce delay)
F500
Z#3 (goto cut height)
o<touchoff> endsub
M2
Example 2
o<touchoff> sub
(#1 pierce height, #2 pierce delay, #3 cut height)
#<arc-fails> = 0
F40
o100 do
G38.2 Z-1.25 (Probe to find the surface)
G91
G1 Z0.185 (Raise up to Z0)
G90
G92 Z0 (Set Z0)
G1 Z#1 (Raise to pierce height)
M3 S1 (Fire torch)
M66 P0 L1 Q2 (Wait 2 seconds for Arc OK from Torch)
o200 if [#5399 EQ -1] (Check to see if torch failed to fire)
(MSG, Arc Fail)
M5
#<arc-fails> = [#<arc-fails> + 1]
o300 if [#<arc-fails> GT 3.0000] (Check if torch has failed 4 times in a row)
Z2.0000 (raise torch high enough to change consumables)
#<arc-fails> = 0 (reset arc failure counter)
M1 (pause)
o300 endif
o200 endif
o100 while [[#5399 EQ -1]]
G4 P#2 (Pause for pierce delay)
F25
Z#3 (goto cut height)
o<touchoff> endsub
M2
A typical piece of Gcode
(Filename: mc200 plasma test.ngc)
(Post processor: EMC-Plasma mc200.scpost)
(Date: 28/04/2013)
G21 (Units: Metric)
G40 (Cancel Cutter Comp)
G90 (Absolute Mode)
G64 P0.005 (Continuous mode + path tolerance)
G92 X0 Y0
(Part: box_200_80_100_3m6)
(Process: Outside Offset, LAYER_1, T1: Plasma, 1.5 mm kerf)
G0 Z20.0000
X55.3233 Y206.5092
Z5.0000
o<touchoff> call [5.000] [0.5] [3] (Touchoff and start cutting)
F100
G1
G2 X56.6665 Y205.1680 I0.0010 J-1.3422 F4000.0
G1 X56.7371 Y112.3663 F4000
G2 X53.4628 Y109.0870 I-3.2768 J-0.0025 F4000.0
M5 (Torch Off)
G0 Z20.0000
X31.3802 Y49.0450
Z5.0000
o<touchoff> call [5.000] [0.5] [3] (Touchoff and start cutting)
F100
G1
G2 X34.0017 Y51.6665 I2.6214 J0.0000 F4000.0
G1 X226.8018 F4000
G2 X228.1439 Y50.3243 I0.0000 J-1.3422 F4000.0
M5 (Torch Off)
G0 Z20.0000
X33.7025 Y266.8252
Z5.0000
o<touchoff> call [5.000] [0.5] [3] (Touchoff and start cutting)
F100
G1
G2 X35.0447 Y268.1674 I1.3422 J0.0000 F4000.0
G1 X227.8448 F4000
G2 X231.1216 Y264.8906 I0.0000 J-3.2768 F4000.0
M5 (Torch Off)
This two pieces of code will probe the surface of the material and adjust the Z axis to the correct pierce height. It will start the torch and check for ARC_OK signal. If the ARC_OK fails, as in the case of the second piece of code, it will retry several times after which it will abort the operation.
These are examples and might contain errors. Please check them before using.
3.3.2. HAL configuration files and components
This method uses HAL configuration files and components to discretely connect and create a control system. There are several examples on the wiki and although they work mostly for the creators, it is not an easy way to start. These configurations are very complex and only the brightest of scientists seem to get them going. Although I would like to understand the implementation of some of these, I am afraid the time required to do is just not available.
3.3.3. HAL Component approach
With this method we write a HAL component that does all the controlling of the THC process. This is the preferred method as it can easily adapt to most THC hardware without much trouble.
4. Plasma GUI
The Gmoccapy_plasma GUI is written to accommodate most of the preferred implementations of THC and general plasma cutting. It does not require any of the plasma functions, with exception of the torch_on function, to operate normally.
You will notice from the screen above that some of the normal cnc functions are not present or are replaced with another functions. In the next couple of sections I will explain the function of every program group. I will try and expand on the application of each as well.
4.1. Control functions
The control functions are grouped in program or logical groups in order to make it simple to operate.
4.1.1. Signals
- Float Sw - This LED indicates the condition of the float switch. The float switch is located on the Z axis. The torch mounting should be floating in the sense that the torch can be pushed upwards until a switch is reached. When the switched is closed the THC component will deduct the switch distance from the reading and calculate the material location in the Z plane. The switch distance or travel is a setting that is found in the INI file. It is obtained by letting the torch head hang free. The distance from the torch to table is measured as a reference. Now push the head upwards until the switch is made. Keep that position and measure the distance from the table again. The switch travel is calculated by deducting the reference measurement from the second measurement. Remember that answer and enter it in the INI file.
- Torch On - This signal will indicate when the TORCH_ON request has been given to the plasma equipment.
- Arc Ok - When the plasma has fired up and the conditions for the flame is correct, the plasma or THC equipment will pass a signal indicating that the arc is OK. The THC and other components will look at this signal to determine if they should function or not.
- Z Up - This is a signal that is passed on from the THC to tell the control component to lift the torch as it is to low.
- Z Down - This is a signal that is passed on from the THC to tell the control component to drop the torch as it is to high.
- Cnr Lock - This LED will show when the corner lock function has been activated. More about this later.
4.1.2. Control
- Corr - This field displays the amount of correction that is applied to the probed Z axis position. This field is cleared at the end of every cut cycle or when an M5 is received.
4.1.3. Limits
- Pos - The THC correction is programmed to have a positive and a negative limit. This is a setting in the INI file and will tell the control component how much it can go up or down from the probed height. When tis limit is reached the LED will indicate.
- Neg - Same as for the Pos limit.
4.1.4. Cutting
- THC Spd - Two buttons are provided for setting the THC Speed setting. This setting is used to calculated the rate at which the control component can vary the torch height with. It is as percentage of the gcode requested FEED. The THC speed must be synchronized with the current feed rate. If the THC speed is too high the torch can oscillate or hunt up and down and like wise when the speed is set too slow. This setting is seldom changed once the working envelope of a machine is found.
- Cut Gap - Two buttons are provided for adjusting the cut gap up or down. The cut gap is the travel height of the torch above the material. Adjusting the cut gap will influence the cut quality and is often different after a change of consumables.
- G0 Gap - Two buttons are provided to adjust the G0 Gap. The G0 Gap is the height that you want the torch to travel at between cuts. Also known as the rapid moves. Why would we want to adjust this parameter? When it comes to production costs, time is money. So many operators will want to optimize the machine time in order to up the production rate. If you cut many small parts a lot of time is wasted in retracting the Z axis to a safe height. Safe height can vary from job to job. Say you are cutting a lot of small parts that is smaller than the width of your table slats. These small parts have the tendency to "flip" up or tilt to protrude above the material. As the torch travels it will strike these parts and the machine can loose setting. If you used the Gcode option, this rapid height will have been set in the CAM process and you will have some problems managing the situation. If the job allows, you can lower the retract height to a very small distance and still operate safely. This will allow you to cut a lot of time of the production process.
This setting does not only effect the retract time but also the probe time.
4.1.5. Piercing
- Autostart - When this setting is enabled, the control component will retry the ARC_ON several times until the retry count (in the INI file) has been reached. At this time it is only effective at the onset of each cut but attempts will be made later to be able to recover from the flame-out position during moves. Arc failure is usually attributed to either consumable failure or air flow problems. Although these are not the only reasons they are the most common.
- Gap - Two buttons are provided to adjust the pierce Gap. This is the distance that the torch will be from the material when the arc is turned on. This should be set as large as possible to prolong the consumable life. There is s huge blow back of molten metal for the complete duration of the pierce process. On 30mm material, the pierce time could be as long as 8 seconds.
- Delay - This parameter means different things to different hardware. If you used the Gcode option to control your THC, this setting will be of little use to you. If you use the component option, this setting will be used to control the pierce time. What this means is that there is a time it takes for the flame to penetrate the material and pierce right through. Once this has happened, the move can commence. If you make this time very small you can still use the gcode option to time the pierce. If the time is to short the cut will fail. If it too long you will end up with a hole larger than the kerf where the pierce took place. If you use a "lead in" in your CAM (recommended ) this will not be too much of a crisis. Waiting too long however can cause a flame out.
4.1.6. Corner Lock
Let me first explain the purpose and process of corner lock. When cutting very thin material with a plasma machine, the machine has to move at very high velocity rates. This will mean that when you get to a sharp corner, the machine will have to slow down and accelerate again around the corner. Due to mechanical limitations of most machines it is almost if not completely impossible to move at constant speed around sharp corners. If you have a machine with a very heavy gantry the problem will be compounded. A lighter gantry is best for plasma machines.
With a laser cutter the power of the laser is reduced towards the corner and thus the reduction in speed will not affect the cut quality. With a plasma this is not possible at present. I say at present as I am aware of the fact that Hypertherm is working on a machine that will give us the ability to control the power from our software. In the mean time we have aproblem that is not easy to overcome. As the machine reduces the speed toward the corner, the flame will cutt away more and more material. In other words the kerf get thicker. When this happens the tip v oltage of the plasma cutter will increase. This tells the THC to drop the torch and the next thing you know the torch is craching the job at the corners.
The corner lock setting will help us here. When we turn this feature on the component will look at the velocity of the machine and once it has dropped to the percentage that we specify in the threshold setting, it will disable the THC. Ass soon as we leave the corner and the velocity has increased again, the THC will be enabled again.
- Enable - Turns the Corner Lock on
- Threshold - As described above
- Torch on/off - This button is a manual control for the torch.
4.1.7. THC Voltage
- Actual Tip Volts - This is a voltage input from the THC equipment that can either be used for height control or just to display the current voltage. If you use the THCAD from Mesa, you will have to make use of this feature to provide feedback to your control component.
- The second DRO reflects the set voltage or required tip voltage. If you make use of a manually controlled THC, you will not need this setting. This HAL pin can be connected to a PWM output to drive THC hardware.
5. INI file settings
The setting in the INI file is very much still under development and will change on a regular basis. I will update the details of this section at a later stage.
HC_Speed = 15
THC_Speed_max = 50
THC_Speed_min = 1
THC_Speed_incr = 1
Cut_Gap = 4.0
Cut_Gap_max = 10
Cut_Gap_min = 1
Cut_Gap_incr = 0.5
G0_Gap = 45
G0_Gap_max = 55
G0_Gap_min = 5
G0_Gap_incr = 5
Piercing_autostart = 1
Pierce_Gap = 7
Pierce_Gap_max = 12
Pierce_Gap_min = 2
Pierce_Gap_incr = 0.5
Pierce_Delay = 0.5
Pierce_Delay_max = 10
Pierce_Delay_min = 0.01
Pierce_Delay_incr = 0.01
enable_Height_Lock = 1
CHL_Threshold = 85
CHL_Threshold_max = 100
CHL_Threshold_min = 10
CHL_Threshold_incr = 5
THC_Target_Voltage = 120
THC_Target_Voltage_max = 255
THC_Target_Voltage_min = 55
THC_Target_Voltage_incr = 1
// Note that setting Ignition timeout to high can cause issues with very short cuts, problems can arrise when the timeout has not expired and starting to cut a new part,
// - Ignition fault timeout, the time allwed from TorchOn? untill ArcOK? before re-probing and re-initiating, in seconds
IGNITION_TIMEOUT = 3
// - ArcOK? timeout, a filter, for a signal to be valid it needs to exceed the specified time period, in seconds
ARC_OK_FILTER_TIME = 0.2
// - Ignition Retries before abort, the number of attempts to re-probe and start the torch before estop
MAX_FAILED_IGNITIONS = 5
// - Extinguish Timeout, a grace period after loosing ArcOK? before shutting off the torch and re-probing, in seconds
EXTINGUISH_TIMEOUT = 0.2
6. TO DO
- Installation details
- INI file details
- Simple component
- More complex component
- Some example using various THC hardware
7. Credits
- Chris Morley - for giving us the revolutionary Gscreen.
- Norbert - for his awesome creation, Gmoccapy.