Programming

Syntax for Select by specifying the position of the workpiece surface:

#DIST CTRL [ WAIT ] ON | DRYRUN [ SURFACE [ SET_POS=.. ] ]

Syntax for Select by specifying a constant distance to the workpiece surface:

#DIST CTRL [ WAIT ] ON | DRYRUN [ CONST_DIST [ SET_DIST=.. ] ]

Syntax for Deselect:

#DIST CTRL [ WAIT ] OFF [ NO_MOVE ]

Syntax for Freeze offset:

#DIST CTRL [ WAIT ] FREEZE

Syntax for Check sensor position or home sensor:

#DIST CTRL [ WAIT ] CHECK_POS | REF

Syntax for additional parameterisation (optionally, can also be programmed in combination with select/deselect)
:

#DIST CTRL [ [ MODE=<ident> ] [DIRECTION=<axis_name>] [ KP=.. ] [ I_TN=.. ] [ D_TV=.. ]
                        [ FILTER_TYPE=.. FILTER_TIME=.. ] [ N_CYCLES=.. ] [ FG_F0=.. ] [ ORDER=.. ]
                        [ SMOOTH_FACT=.. ] [ KALMAN_SIGMA=.. ] [SENSOR_SOURCE=<ident>]
                        [SENSOR_VAR=..] [ VAL1=.. - VAL5=.. ] [WINDOW=..][CYCLES_IN_WINDOW=..]{ \ } ]

In the case of a workpiece with any orientation, workpiece axes and workpiece orientation can be specified in the NC command. This is required in MODE=MCS in order to define the distance control direction. This is not required in MODE=PCS or ACS or ECS since the direction is implicitly defined by DIRECTION or the tool.

#DIST CTRL [ … [WP_AX1=<axis_name> WP_AX2=<axis_name> WP_ORIENTATION=<orientation>] ]

Note: If a workpiece axis is not specified, this value is kept constant at 0.

WAIT

In the WAIT option, a command waits before execution until the waiting condition of distance control is fulfilled before the next NC command is executed

WAIT OFF: Wait until the existing distance control offset was completely executed.

WAIT ON/SET_DIST/.. .: Wait until the control deviation of distance control has been in a defined window (WINDOW=...) for a defined period of time (CYCLES_IN_WINDOW=...).

An active waiting condition is indicated in gpCh[channel_idx]^.bahn_state.stop_conditions_r.

ON

Activate distance control

SURFACE

Activate distance control in combination with ON by specifying the position of the workpiece surface. A set position at activation must be set with SET_POS.

SET_POS=..

Specify the workpiece surface in [mm, inch] (absolute position). In the event of reset or program end, the set position is reset, i.e. a new set position must be specified before distance control is reactivated.

CONST_DIST

Activate distance control in combination with ON by specifying a constant distance to the workpiece surface. A distance must be set with SET_DIST at activation.

SET_DIST=..

Specify the constant distance to the workpiece surface in [mm, inch]. In the event of reset or program end, the distance is reset, i.e. a new distance must be specified before distance control is reactivated.

DRYRUN

In DRYRUN mode, the axis is not tracked when there are changes in the workpiece surface. This allows data to be evaluated without feedback from the controller (e.g. filter effect). [as of V3.1.3079.23]

In combination with SURFACE, a set position must be set with SET_POS.

In combination with CONST_DIST, a set position must be set with SET_DIST.

OFF

Deactivate distance control.

CHECK_POS

Check whether position is within the tolerance window.

FREEZE

Freeze the compensated control distance across the workpiece. The axis position or the output compensation value is maintained. Axis tracking is interrupted.

REF

Reference measuring system (sensor) (only if there is no absolute measuring system).

MODE=<ident>

The distance control offset is superimposed at the appropriate level. Valid identifiers:

PCS : Programmed coordinates

MCS : In the machine coordinate system (Cartesian basic system)

ECS : In the tool direction

ACS : At physical axis level

OFF : No superposition (default)

DIRECTION=<axis_name>

Name of the axis to which PCS/MCS/ACS compensation is applied. At present, DIRECTION = Z is supported (DIRECTION=X or Y are in preparation.)

KP=..

Weighting the distance control output values. Parameterisation can be executed analogous to P-CHAN-00821. The value range is limited to 0.0 < KP <= 2.0. For KP values less than 1.0, the distance control dynamics are reduced; for KP values greater than 1.0, the dynamics are increased.

A KP factor less than 1 reduces a possible distance control oscillation and steadies control in the event of minor distance errors.

I_TN=..

Integral action time of the PID controller in [s]. The integral action time defines the time after which the P and I components of the manipulated variable are equal. Parameterisation can be executed analogous to P-CHAN-00822. The value range is limited to 0.0 <= I_TN <= 50.0. A large integral action time produces greater control stability. The shorter the integration action time, the greater the I component and the faster the control. A short integral action time excites oscillations more strongly.

D_TV=..

Derivative action time of the PID controller in [s]. The derivative action time defines the time after which the P and D components of the manipulated variable are equal. Parameterisation can be executed analogous to P-CHAN-00823. The value range is limited to 0.0 <= D_TV <= 2.0. The larger the derivative action time, the stronger the D component.

FILTER_TYPE=..

Filter type to filter sensor values according to P-CHAN-00825.

FILTER_TIME=..

If a value > 0 is specified, distance control activation and deactivation are smoothed by a sin² filter. The filter time is specified in interpolator cycles.

N_CYCLES=..

Number the measured values used for filtering according to P-CHAN-00800.

FG_F0=..

Cut-off frequency for the low-pass filter in [Hz] according to P-CHAN-00817.

ORDER=..

Order of the low-pass filter according to P-CHAN-00816.

SMOOTH_FACT=..

Smoothing factor of the exponential averaging filter according to P-CHAN-00827. Specifies the weighting of the current measured value.

KALMAN_SIGMA=..

Uncertainty of the included measured values according to P-CHAN-00826.

SENSOR_SOURCE=<ident>

Sensor signal source specified The following sources can be set for channel-specific distance control:

DEFAULT : If “DEFAULT” is selected as the sensor source, the CNC automatically sets to the “VARIABLE” sensor source internally.

VARIABLE : The sensor signal is transferred to the CNC by a V.E. variable. In addition, the name of the V.E. variable must also be specified by the parameter “SENSOR_VAR”.

BOTH_ENCODER

Mode for reducing oscillation tendency as specified in P-CHAN-00810 [as of V3.1.3125]

SENSOR_VAR=..

Name of the V.E. variable which transfers the sensor signal to the CNC.

NO_MOVE

By default, the resulting correction offset is executed when distance control is switched off. This motion can be suppressed by specifying NO_MOVE in combination with OFF. The channel is initialised with the changed axis position. The position offset is only executed at the next axis motion programmed in the NC program.

VAL1=..-VAL5=..

Five freely assignable values in real format.

\

Separator ("backslash") for clear programming of the command over multiple lines.

WP_AX1=<axis_name>

WP_AX2=<axis_name>

Name of the first / second axis for workpiece orientation. When kinematic 98 is used, the axis indices must match.

WP_ORIENTATION=<val>

Orientation mode for workpiece axes; when kinematic 98 is used, the orientation mode must match.

  • as a value: 14, 15,16, 17, 18, 19 (compare P-CHAN-00112)
  • or as a string: A_B, B_A, A_C, C_A, B_C, C_B

WINDOW=..

Defines the tolerance window of the control deviation in [mm] required to fulfil the waiting condition triggered by the “WAIT” command.

CYCLES_IN_WINDOW=..

Defines the number of cycles that the control deviation must be in the tolerance window in order to fulfil the waiting condition triggered by the “WAIT” command.

Programing Example

prg_example

Distance control - axis-specific use with inclined tool

Example 1: Behaviour as for axis-specific distance control

N010 G0 Z10

;Set the sensor input source

N020 #DIST CTRL [SENSOR_SOURCE=VARIABLE SENSOR_VAR=V.E.SENSOR]

;Activate distance control

N030 #DIST CTRL ON [CONST_DIST SET_DIST=1 MODE=ACS DIRECTION=Z]

;...

;Deactivate distance control with no wait Next block is executed immediately.

N900 #DIST CTRL OFF

N910 G0 Z0

N999 M30

Example 2: Distance control with inclined tool and Kinematic ID 98

; Parameterising the kinematic 98

: ----------------------------------

; HD1: Tool offset (100mm)

; HD2: Start limit angle (inclination to the perpendicular) Start of tool extension (30°)

; HD3: End limit angle (inclination to the perpendicular) End of tool extension (60°)

; HD4: maximum inclination -> error message (91°)

N010 V.G.KIN_STEP[1].ID[98].PARAM[0] = 1000000

N020 V.G.KIN_STEP[1].ID[98].PARAM[1] = 300000

N030 V.G.KIN_STEP[1].ID[98].PARAM[2] = 600000

N040 V.G.KIN_STEP[1].ID[98].PARAM[3] = 910000

; tool length (80mm)

N050 V.G.WZ_AKT.L = 80

; activate kinematic transformations ID9 and ID98.

N060 #KIN ID[9.98]

N070 #TRAFO ON

N080 G0 Z10

N090 G90 A=-45

; Set the sensor input source

N100 #DIST CTRL [SENSOR_SOURCE=VARIABLE SEN-SOR_VAR=V.E.SENSOR]

; Activate distance control in tool direction (surface 1mm)

N110 #DIST CTRL ON [SURFACE SET_POS=1 MODE=ECS DIRECTION=Z]

;...

; Deactivate distance control and wait until the deactivation process is completed.

N120 #DIST CTRL WAIT OFF

N130 G0 Z0

N140 M30

Example 3: Workpiece orientation via BR and AR axes

N010 #DIST CTRL[MODE=MCS WP_AX1=BR WP_AX2=AR     WP_ORIENTATION=B_A]

Example 4: Workpiece orientation only via AR axis

N010 #DIST CTRL[MODE=MCS WP_AX1=AR WP_ORIENTATION= A_B]