[Home]LaserBeamCompensation

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Showing revision 11

Laser Beam Compensation

Contents

1. Description
2. Hal module
3. Hal pins description

1. Description

When using older lasers, the beam spot is often not circular. Often the beam shape is elliptic and its shape is changing.

If the beam shape is larger in X than in Y, then the cut slot (kerf) has different dimension when path is along X versus path is along Y. (imagine the slot made by an ellipse moving around an equilateral triangle.

upload:xeliplasr01.png

It was found that traveling faster in the direction normal to the widest beam, caused the slot width to reduce.

A consistant slot could be accomplished by varying velocity and distance of snout from material. Those corrections are different accordingly of direction of current move.

If we must use those machine and make enough precise burning, we can create dynamic beam shape compensation module in hal. After that and few changes we can force EMC laser machine to make precise burning in each direction.

2. Hal module

source file: upload:velctrl.comp

3. Hal pins description

Type  Dir    DefaultVal  Name                          Desc
------
float IN             --  velctrl.0.beam-corr-add       axis X+, correction of commanded vel in % <br>
float IN             --  velctrl.0.beam-corr-sub       axis X-, correction of commanded vel in %<br>
float IN             --  velctrl.0.joint-pos-cmd-in    axis X: actual position<br>
float IN             --  velctrl.0.pos-max             ignore<br>
float IN             --  velctrl.0.pos-min             ignore<br>
float IN             --  velctrl.1.beam-corr-add       axis Y+, correction of commanded vel in w %<br>
float IN             --  velctrl.1.beam-corr-sub       axis Y-, correction of commanded vel in w %<br>
float IN             --  velctrl.1.joint-pos-cmd-in    axis Y: actual position<br>
float IN             --  velctrl.1.pos-max             ignore<br>
float IN             --  velctrl.1.pos-min             ignore<br>
bit   IN          FALSE  velctrl.beam-corr-enable      enable correction according of direction of current move<br>
float IN            100  velctrl.dist-corr             ignore<br>
bit   IN          FALSE  velctrl.dist-corr-enable      ignore<br>
float IN             --  velctrl.feedoverride-in       feedoverride from emc<br>
float OUT            --  velctrl.feedoverride-out      feedoverride with correction applied<br>

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions | View current revision
Edited August 22, 2008 8:29 pm by Micges (diff)
Search:
Published under a Creative Commons License