|
|
Special Motion Commands
4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option)
The second digit (units decade) selects the required measuring mode. The measuring
process is thus adapted to the options supported by the relevant control:
● Mode 1
Trigger events are evaluated in the chronological sequence in which they occur. When
this mode is selected, only one trigger event can be programmed for six-axis modules. If
more than one trigger event is specified, the mode selection is switched automatically to
mode 2 (without message).
● Mode 2
Trigger events are evaluated in the programmed sequence.
● Mode 3
Trigger events are evaluated in the programmed sequence but there is no monitoring of
trigger event 1 at START.
Note
No more than two trigger events can be programmed if two measuring systems are in
use.
Measuring with and without deletion of distance-to-go
When command MEASA is programmed, the distance-to-go is not deleted until all required
measured values have been recorded.
The MEAWA function is used in the case of special measuring tasks where a programmed
position always needs to be approached.
9
7(
7(
7(
7(
W
'LVWDQFH
WR JR
3URJUDPPHG SDWK
Job Planning
268
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Special Motion Commands
4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option)
Note
MEASA cannot be programmed in synchronized actions. As an alternative, MEAWA plus the
deletion of distance-to-go can be programmed as a synchronized action.
If the measuring task with MEAWA is started from synchronized actions, the measured values
will only be available in the machine coordinate system.
Measurement results for MEASA, MEAWA
The results of measurements are available under the following system variables:
● In the machine coordinate system:
$AA_MM1[<axis>]
Measured value of programmed measuring system on trigger
event 1
$AA_MM4[<axis>]
Measured value of programmed measuring system on trigger
event 4
● In the workpiece coordinate system:
$AA_WM1[<axis>]
Measured value of programmed measuring system on trigger
event 1
$AA_WM4[<axis>]
Measured value of programmed measuring system on trigger
event 4
Note
No internal preprocessing stop is generated when these variables are read. A preprocessing
stop must be programmed with STOPRE at the appropriate position in the program. False
values will otherwise be read in.
Geometry axes/Transformations
If axial measurement is to be started for a geometry axis, the same measuring job must be
programmed explicitly for all remaining geometry axes. The same applies to axes involved in
a transformation.
Example:
N10 MEASA[Z]=(1,1) MEASA[Y]=(1,1) MEASA[X]=(1,1) G0 Z100
or
N10 MEASA[Z]=(1,1) POS[Z]=100
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
269
Special Motion Commands
4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option)
Measurement job with two measuring systems
If a measuring job is executed by two measuring systems, each of the two possible trigger
events of both measuring systems of the relevant axis is acquired. The assignment of the
reserved variables is therefore preset:
$AA_MM1[<axis>]
$AA_MW1[<axis>]
or
Measured value from
measuring system 1 on trigger
event 1
$AA_MM2[<axis>]
$AA_MW2[<axis>]
or
Measured value from
measuring system 2 on trigger
event 1
$AA_MM3[<axis>]
$AA_MW3[<axis>]
or
Measured value from
measuring system 1 on trigger
event 2
$AA_MM4[<axis>]
$AA_MW4[<axis>]
or
Measured value from
measuring system 2 on trigger
event 2
Probe status
The probe status is available in the following system variables:
$A_PROBE[<n>]
<n>=probe
Value
Significance
1
Probe deflected
0
Probe not deflected
Measuring job status for MEASA, MEAWA
If an evaluation is required in the program, the measuring task status can be checked via
$AC_MEA[n], where <n> = number of probe. Once all the trigger events of probe <n> that
are programmed in a block have occurred, this variable returns a value of "1". Otherwise, its
value is 0.
Note
If measurement is started from synchronized actions, $AC_MEA is no longer updated. In this
case, new PLC status signals DB31, … DBX62.3 or the equivalent variable
$AA_MEAACT[<axis>] must be checked.
Meaning:
$AA_MEAACT==1: Measurement active
$AA_MEAACT==0: Measurement not active
Continuous measurement (MEAC)
The measured values for MEAC are available in the machine coordinate system and stored in
the programmed FIFO[n] memory (circular buffer). If two probes are configured for the
measurement, the measured values of the second probe are stored separately in the
FIFO[n+1] memory configured especially for this purpose (defined in machine data).
Job Planning
270
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Special Motion Commands
4.8 Extended measuring function (MEASA, MEAWA, MEAC) (option)
The FIFO memory is a circular buffer in which measured values are written to $AC_FIFO
variables according to the circular principle, see the chapter titled "Motion-synchronous
actions".
Note
FIFO contents can be read only once from the circulating storage. If these measured data
are to be used multiply, they must be buffered in user data.
If the number of measured values for the FIFO memory exceeds the maximum value defined
in machine data, the measurement is automatically terminated.
An endless measuring process can be implemented by reading out measured values
cyclically. In this case, data must be read out at the same frequency as new measured
values are read in.
Recognized programming errors
The following programming errors are detected and indicated appropriately:
● MEASA/MEAWA programmed with MEAS/MEAW in the same block
Example:
N01 MEAS=1 MEASA[X]=(1,1) G01 F100 POS[X]=100
● MEASA/MEAWA with number of parameters <2 or >5
Example:
N01 MEAWA[X]=(1) G01 F100 POS[X]=100
● MEASA/MEAWA with trigger event not equal to 1/ -1/ 2/ -2
Example:
N01 MEASA[B]=(1,1,3) B100
● MEASA/MEAWA with invalid mode
Example:
N01 MEAWA[B]=(4,1) B100
● MEASA/MEAWA with trigger event programmed twice
Example:
N01 MEASA[B]=(1,1,-1,2,-1) B100
● MEASA/MEAWA and missing GEO axis
Example:
N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) G01 X50 Y50 Z50 F100 ;GEO axis X/Y/Z
● Inconsistent measuring task with GEO axes
Example:
N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) MEASA[Z]=(1,1,2) G01 X50 Y50 Z50 F100
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
271
Special Motion Commands
4.9 Special functions for OEM users (OEMIPO1, OEMIPO2, G810 to G829)
4.9
Special functions for OEM users (OEMIPO1, OEMIPO2, G810 to
G829)
Function
OEM addresses
The meaning of OEM addresses is determined by the OEM user. Their functionality is
incorporated by means of compile cycles. Five OEM addresses are reserved. The address
identifiers are settable. OEM addresses can be programmed in any block.
Parameters
Reserved G groups
Group 1 with OEMIPO1, OEMIPO2
The OEM user can define two additional names of G functions OEMIPO1, OEMIPO2. Their
functionality is incorporated by means of compile cycles and is reserved for the OEM user.
● Group 31 with G810 to G819
● Group 32 with G820 to G829
Two G groups with ten OEM G functions each are reserved for OEM users. These allow the
functions incorporated by an OEM user to be accessed for external applications.
Functions and subroutines
OEM users can also set up predefined functions and subroutines with parameter transfer.
Job Planning
272
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Special Motion Commands
4.10 Feed reduction with corner deceleration (FENDNORM, G62, G621)
4.10
Feed reduction with corner deceleration (FENDNORM, G62, G621)
Function
With automatic corner deceleration the feed rate is reduced according to a bell curve before
reaching the corner. It is also possible to parameterize the extent of the tool behavior
relevant to machining via setting data. These are:
● Start and end of feed rate reduction
● Override with which the feed rate is reduced
● Detection of a relevant corner
Relevant corners are those whose inside angle is less than the corner parameterized in the
setting data.
Default value FENDNORM deactivates the function of the automatic corner override.
References:
/FBFA/ Function Description ISO Dialects
Syntax
FENDNORM
G62 G41
G621
Significance
FENDNORM Automatic corner deceleration OFF
G62
Corner deceleration at inside corners when tool radius offset is active
G621
Corner deceleration at all corners when tool radius offset is active
G62 only applies to inside corners with
● active tool radius offset G41, G42 and
● active continuous-path mode G64, G641
The corner is approached at a reduced feed rate resulting from:
F * (override for feed rate reduction) * feed rate override
The maximum possible feed rate reduction is attained at the precise point where the tool is
to change directions at the corner, with reference to the center path.
G621 applies analogously with G62 at each corner of the axes defined by FGROUP.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
273
Special Motion Commands
4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)
4.11
Programmed end-of-motion criterion (FINEA, COARSEA,
IPOENDA, IPOBRKA, ADISPOSA)
Function
Similar to the block change criterion for path interpolation (G601, G602, and G603) it is also
possible to program the end-of-motion criterion for singleaxis interpolation in a part program
or in synchronized actions for command/PLC axes.
The end-of-motion criterion set will affect how quickly or slowly part program blocks and
technology cycle blocks with singleaxis movements are completed. The same applies for
PLC via FC15/16/18.
Syntax
FINEA[<axis>]
COARSEA[<axis>]
IPOENDA[<axis>]
IPOBRKA(<axis>[,<instant in time>])
ADISPOSA[<axis>]=(<mode>,<window size>)
Significance
FINEA:
End of motion on reaching "Exact stop fine"
COARSEA:
End of motion on reaching "Exact stop coarse"
IPOENDA:
End of motion on reaching "interpolator stop"
IPOBRKA:
A block change is possible in the braking ramp.
ADISPOSA:
Size of the tolerance window for the end of motion criteria
<axis>:
Channel axis name (X, Y,
)
<instant in time>:
Instant in time of the block change, referred to the braking
ramp as a %
<mode>
:
Mode
Type: INT
Range of values:
0 Tolerance window not active
1 Tolerance window with respect to set
position
2 Tolerance window with respect to
actual position
<window size>
:
Size of the tolerance window
This value is entered synchronized with the main run in the
setting data SD43610 $SA_ADISPOSA_VALUE.
Type: REAL
Job Planning
274
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Special Motion Commands
4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)
Examples
Example 1: End-of-motion on reaching the interpolator stop
Program code
Comments
N110 G01 POS[X]=100 FA[X]=1000 ACC[X]=90 IPOENDA[X]
Traversing to position X100 when
input 1 is active, with a path
velocity of 1000 rpm, an
acceleration value of 90% and
end-of-motion on reaching the
interpolator stop.
N120 EVERY $A_IN[1] DO POS[X]=50 FA[X]=2000 ACC[X]=140 IPOENDA[X]
; Traversing to position X50 when
input 1 is active, with a path
velocity of 2000 rpm, an
acceleration value of 140% and
end-of-motion on reaching the
interpolator stop.
Example 2: Block change criterion, braking ramp in the part program
Program code
Comments
; Default setting is effective
N40 POS[X]=100
; The block is changed if the X axis has reached position 100 and exact
stop fine is reached.
N20 IPOBRKA(X,100)
; Block change criteria, activate braking ramp.
N30 POS[X]=200
; The block is changed as soon as the X axis starts to brake.
N40 POS[X]=250
; The X axis does not brake at position 200, but moves further to position
250, as soon as the X axis starts to brake, the block is changed.
N50 POS[X]=0
; The X axis brakes and returns to position 0 - the block changed at
position 0 and exact stop fine.
N60 X10 F100
N70 M30
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
275
Special Motion Commands
4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)
Example 3: Block change criterion, braking ramp in synchronized actions
Program code
Comments
; In the technology cycle:
FINEA
; End of motion criteria, exact stop fine.
POS[X]=100
; Technology cycle block change if the X axis has reached position 100 and
exact stop fine is reached.
IPOBRKA(X,100)
; Block change criteria, activate braking ramp.
POS[X]=100
; POS[X]=100; technology cycle block change as soon as the X axis starts
to brake.
POS[X]=250
; The X axis does not brake at position 200, but moves further to position
250, as soon as the X axis starts to brake, the block is changed in the
technology cycle.
POS[X]=250
; The X axis brakes and returns to position 0 - the block change is made
at position 0 and exact stop fine.
M17
Further information
Read end-of-motion criterion
The set end-of-motion criterion can be checked with system variable $AA_MOTEND[<axis>]:
Value
Significance
1
End-of-motion with "Exact stop fine"
2
End-of-motion with "Exact stop coarse"
3
End-of-motion with "IPO stop"
4
Block change criterion braking ramp of axis motion
5
Block change in braking ramp with tolerance window relative to "set position"
6
Block change in braking ramp with tolerance window relative to "actual position"
Note
The last programmed value is retained after RESET.
Block change criterion in braking ramp
The percentage value is entered in the setting data synchronous to the main run:
SD43600 $SA_IPOBRAKE_BLOCK_EXCHANGE
If no value is specified, the current value of this setting data is effective.
The range is adjustable from 0% to 100%.
Job Planning
276
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Special Motion Commands
4.11 Programmed end-of-motion criterion (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)
Additional tolerance window for IPOBRKA
A second block change criterion, "tolerance window", can be selected in addition to the
existing block change criterion in the braking ramp. It will only be enabled if the axis:
● As before has reached the specified % value of its braking ramp
and
● its current actual or set position is no further than a tolerance from the end of the axis in
the block.
References
For further information about the block change criterion for positioning axes, see:
● Function Manual, Extended Functions; Positioning Axes (P2)
● Programming Manual, Fundamentals; Chapter "Feedrate control".
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
277
Special Motion Commands
4.12 Programmable servo parameter set (SCPARA)
4.12
Programmable servo parameter set (SCPARA)
Function
The parameter set (comprising MDs) in the part program and in synchronized actions can be
programmed using SCPARA (up until now, only via the PLC).
DB3n DBB9 bit3
To ensure no conflicts occur between PLC and NCK, an additional bit is defined on the
PLC → NCK interface:
DB3n DBB9 bit3 "Parameter set selection by SCPARA disabled".
If the parameter set input for SCPARA is inhibited, then an error message is not output if this is
even programmed.
Syntax
SCPARA[<axis>]=<value>
Significance
SCPARA
Define parameter block
<axis>
Channel axis name (X, Y, ...)
<value>
Desired parameter block (1<= value <=6)
Note
The actual parameter set can be interrogated using the system variables $AA_SCPAR[<axis>].
For G33, G331 or G332, the most suitable parameter set is selected by the control.
The PLC user program must be expanded if the servo parameter set is to be changed in a
part program, synchronized action or the PLC.
References:
/FB1/ Function Manual Basic Functions; Feedrates (V1),
"Feedrate Impact" section.
Example
Program code
Comments
N110 SCPARA[X]= 3
; The 3rd parameter set is selected for axis X.
Job Planning
278
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5
5.1
Coordinate transformation via frame variables
Function
In addition to the programming options already described in the Programming Manual
"Fundamentals", you can also define coordinate systems with predefined frame variables.
The following coordinate systems are defined:
MCS: Machine coordinate system
BCS: Basic coordinate system
BZS: Basic origin system
SZS: Settable zero system
WCS: Workpiece coordinate system
What is a predefined frame variable?
Predefined frame variables are keywords whose use and effect are already defined in the
control language and that can be processed in the NC program.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
279
Coordinate transformation (FRAMES)
5.1 Coordinate transformation via frame variables
Possible frame variable:
● Basic frame (basic offset)
● Settable frames
● Programmable frame
Value assignments and reading the actual values
Frame variable/frame relationship
A coordinate transformation can be activated by assigning the value of a frame to a frame
variable.
Example: $P_PFRAME=CTRANS(X,10)
Frame variable:
$P_PFRAME means: current programmable frame.
Frame:
CTRANS(X,10) means: programmable zero offset of X axis by 10 mm.
<
<
<
<
%&6
%=6
6=6
:&6
;
:&6
3B3)5$0(
;
6=6
3B,)5$0( 3B8,)5> @
;
%=6
3B%)5$0( 3B8%)5
;%&6
Reading the actual values
The current actual values of the coordinate system can be read out via predefined variables
in the parts program:
$AA_IM[axis]: Read actual value in MCS
$AA_IB[axis]: Read actual value in BCS
$AA_IBN[axis]: Read actual value in BOS
$AA_IEN[axis]: Read actual value in SZS
$AA_IW[axis]: Read actual value in WCS
Job Planning
280
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.1 Coordinate transformation via frame variables
5.1.1
Predefined frame variable ($P_BFRAME, $P_IFRAME, $P_PFRAME,
$P_ACTFRAME)
$P_BFRAME
Current basic frame variable that establishes the reference between the basic coordinate
system (BCS) and the basic origin system (BOS).
For the basic frame described via $P_UBFR to be immediately active in the program, either
● you have to program a G500, G54...G599, or
● you have to describe $P_BFRAME with $P_UBFR
=
=
%&6
%=6
;
%=6
3B%)5$0( 3B8%)5
;%&6
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
281
Coordinate transformation (FRAMES)
5.1 Coordinate transformation via frame variables
$P_IFRAME
Current, settable frame variable that establishes the reference between the basic origin
system (BOS) and the settable zero system (SZS).
● $P_IFRAME corresponds to $P_UIFR[$P_IFRNUM]
● After G54 is programmed, for example, $P_IFRAME contains the translation, rotation, scaling
and mirroring defined by G54.
=
6=6
=
%=6
<
6=6
<
%=6
;
6=6
; %=6
Job Planning
282
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.1 Coordinate transformation via frame variables
$P_PFRAME
Current, programmable frame variable that establishes the reference between the settable
zero system (SZS) and the workpiece coordinate system (WCS).
$P_PFRAME contains the resulting frame, that results
● from the programming of TRANS/ATRANS, ROT/AROT, SCALE/ASCALE, MIRROR/AMIRROR or
● from the assignment of CTRANS, CROT, CMIRROR, CSCALE to the programmed FRAME
=
:&6
=
(16
=%16
<
(16
%16
<
<
:&6
; :&
6
; (16
; %16
$P_ACTFRAME
Current, resulting complete frame that results from chaining
● the current basic frame variable $P_BFRAME,
● the currently settable frame variable $P_IFRAME with system frames and
● the currently programmable frame variable $P_IFRAME with system frames.
System frames, see Section "Frames that Act in the Channel"
$P_ACTFRAME describes the currently valid workpiece zero.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
283
Coordinate transformation (FRAMES)
5.1 Coordinate transformation via frame variables
=
:&6
=
=
(16
%&6
=%16
<(16
<%16
<
:&6
;:&6
; (16
; %16
; %&6
If $P_IFRAME, $P_BFRAME or $P_PFRAME are changed, $P_ACTFRAME is recalculated.
$P_ACTFRAME corresponds to $P_BFRAME:$P_IFRAME:$P_PFRAME
,QSXW IURP SURJUDP H J
,QSXW IURP SURJUDP H J
3B8%)5 &75$16 ;
3B8,)5>Q@ &75$16 ;
,QSXW IURP
,QSXW IURP
+0, 00&
+0, 00&
3B8%)5
3B8,)5>Q@
DFWLYDWHG YLD
*
*
*
3B$&7)5$0(
3B%)5$0(
3B,)5$0(
3B3)5$0(
,QSXW IURP SURJUDP H J
,QSXW IURP SURJUDP H J
3B%)5$0( &75$16 ;
3B3)5$0( &75$16 ;
RU 75$16 ;
,QSXW IURP SURJUDP H J
3B,)5$0( &75$16 ;
Job Planning
284
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.1 Coordinate transformation via frame variables
Basic frame and settable frame are effective after Reset if MD 20110 RESET_MODE_MASK
is set as follows:
Bit0=1, bit14=1 --> $P_UBFR (basic frame) acts
Bit0=1, bit5=1 --> $P_UIFR [$P_UIFRNUM](settable frame) acts
Predefined settable frames $P_UBFR
The basic frame is programmed with $P_UBFR, but it is not simultaneously active in the
parts program. The basic frame programmed with $P_UBFR is included in the calculation if
● Reset was activated and bits 0 and 14 are set in MD RESET_MODE_MASK and
● the statements G500,G54...G599 were executed.
Predefined settable frames $P_UIFR[n]
The predefined frame variable $P_UIFR[n] can be used to read or write the settable zero
offsets G54 to G599 from the parts program.
These variables produce a one-dimensional array of type FRAME called $P_UIFR[n].
Assignment to G commands
As standard, five settable frames $P_UIFR[0]... $P_UIFR[4] or five equivalent G commands
- G500 and G54 to G57 , can be saved using their address values.
$P_IFRAME=$P_UIFR[0] corresponds to G500
$P_IFRAME=$P_UIFR[1] corresponds to G54
$P_IFRAME=$P_UIFR[2] corresponds to G55
$P_IFRAME=$P_UIFR[3] corresponds to G56
$P_IFRAME=$P_UIFR[4] corresponds to G57
You can change the number of frames with machine data:
$P_IFRAME=$P_UIFR[5] corresponds to G505
$P_IFRAME=$P_UIFR[99] corresponds to G599
Note
This allows you to generate up to 100 coordinate systems, which can be called up globally in
different programs, for example, as zero point for various fixtures.
CAUTION
Frame variables must be programmed in a separate NC block in the NC program.
Exception: programming of a settable frame with G54, G55, ...
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
285
Coordinate transformation (FRAMES)
5.2 Frame variables/assigning values to frames
5.2
Frame variables/assigning values to frames
5.2.1
Assigning direct values (axis value, angle, scale)
Function
You can directly assign values to frames or frame variables in the NC program.
Syntax
$P_PFRAME=CTRANS (X, axis value, Y, axis value, Z, axis value, …)
$P_PFRAME=CROT (X, angle, Y, angle, Z, angle, …)
$P_UIFR[..]=CROT (X, angle, Y, angle, Z, angle, …)
$P_PFRAME=CSCALE (X, scale, Y, scale, Z, scale, …)
$P_PFRAME=CMIRROR (X, Y, Z)
Programming $P_BFRAME is carried out analog to $P_PFRAME.
Significance
CTRANS
Translation of specified axes
CROT
Rotation around specified axes
CSCALE
Scale change on specified axes
CMIRROR
Direction reversal on specified axis
X Y Z
Offset value in the direction of the specified geometry axis
Axis value
Assigning the axis value of the offset
Angle
Assigning the angle of rotation around the specified axes
Scale
Changing the scale
Job Planning
286
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.2 Frame variables/assigning values to frames
Example
Translation, rotation and mirroring are activated by value assignment to the current
programmable frame.
=
<
<
<
;
=
;
<
&75$16
&527
&0,5525
;
N10 $P_PFRAME=CTRANS(X,10,Y,20,Z,5):CROT(Z,45):CMIRROR(Y)
Frame-red components are pre-assigned other values
With CROT, pre-assign all three UIFR components with values
Program code
Comments
$P_UIFR[5] = CROT(X, 0, Y, 0, Z, 0)
N100 $P_UIFR[5, y, rt]=0
N100 $P_UIFR[5, x, rt]=0
N100 $P_UIFR[5, z, rt]=0
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
287
Coordinate transformation (FRAMES)
5.2 Frame variables/assigning values to frames
Description
You can program several arithmetic rules in succession.
Example:
$P_PFRAME=CTRANS(…):CROT(…):CSCALE…
Please note that the commands must be connected by the colon chain operator: (...):(...).
This causes the commands firstly to be linked and secondly to be executed additively in the
programmed sequence.
&527
Note
The values programmed with the above commands are assigned to the frames and stored.
The values are not activated until they are assigned to the frame of an active frame variable
$P_BFRAME or $P_PFRAME.
Job Planning
288
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.2 Frame variables/assigning values to frames
5.2.2
Reading and changing frame components (TR, FI, RT, SC, MI)
Function
This feature allows you to access individual data of a frame, e.g., a specific offset value or
angle of rotation. You can modify these values or assign them to another variable.
Syntax
R10=$P_UIFR[$P_UIFNUM,X,RT]
Assign the angle of rotation RT around the X axis
from the currently valid settable zero offset
$P_UIFRNUM to the variable R10.
R12=$P_UIFR[25,Z,TR]
Assign the offset value TR in Z from the data
record of set frame no. 25 to the variable R12.
R15=$P_PFRAME[Y,TR]
Assign the offset value TR in Y of the current
programmable frame to the variable R15.
$P_PFRAME[X,TR] = 25
Modify the offset value TR in X of the current
programmable frame. X25 applies immediately.
Significance
$P_UIFRNUM
This command automatically establishes the reference to the currently
valid settable zero offset.
P_UIFR[n,…,…]
Specify the frame number n to access the settable frame no. n.
Specify the component to be read or modified:
TR
TR Translation
FI
FI Translation Fine
RT
RT Rotation
SC
SC Scale scale modification
MI
MI mirroring
X Y Z
The corresponding axis X, Y, Z is also specified (see examples).
Value range for RT rotation
Rotation around 1st geometry axis:
-180° to +180°
Rotation around 2nd geometry axis:
-90° to +90°
Rotation around 3rd geometry axis:
-180° to +180°
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
289
Coordinate transformation (FRAMES)
5.2 Frame variables/assigning values to frames
Description
Calling frame
By specifying the system variable $P_UIFRNUM you can access the current zero offset set
with $P_UIFR or G54, G55, ...
($P_UIFRNUM contains the number of the currently set frame).
All other stored settable $P_UIFR frames are called up by specifying the appropriate number
$P_UIFR[n].
For predefined frame variables and user-defined frames, specify the name, e.g.,
$P_IFRAME.
Calling data
The axis name and the frame component of the value you want to access or modify are
written in square brackets, e.g., [X, RT] or [Z, MI].
5.2.3
Linking complete frames
Function
A complete frame can be assigned to another frame or frames can be chained to each other
in the NC program.
Frame chaining is suitable for the description of several workpieces, arranged on a pallet,
which are to be machined in the same process.
=
<
*
;
The frame components can only contain intermediate values for the description of pallet
tasks. These are chained to generate various workpiece zeroes.
Job Planning
290
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.2 Frame variables/assigning values to frames
Syntax
Assigning frames
DEF FRAME SETTING1
Assign the values of the user frame
SETTING1=CTRANS(X,10)
SETTING1 to the current programmable
$P_PFRAME=SETTING1
frame.
DEF FRAME SETTING4
The current programmable frame is
SETTING4=$P_PFRAME
stored temporarily and can be
$P_PFRAME=SETTING4
recalled.
Frame chains
The frames are chained in the programmed sequence. The frame components (translations,
rotations, etc.) are executed additively in succession.
$P_IFRAME=$P_UIFR[15]:$P_UIFR[16]
$P_UIFR[15] contains, for example,
data for zero offsets. The data of
$P_UIFR[16], e.g., data for rotations,
are subsequently processed additively.
The settable frame 3 is created by
$P_UIFR[3]=$P_UIFR[4]:$P_UIFR[5]
chaining the settable frames 4 and 5.
Note
The frames must be linked with each other using the concatenation colon : .
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
291
Coordinate transformation (FRAMES)
5.2 Frame variables/assigning values to frames
5.2.4
Defining new frames (DEF FRAME)
Function
In addition to the predefined settable frames described above, you also have the option of
creating new frames. This is achieved by creating variables of type FRAME to which you can
assign a name of your choice.
You can use the functions CTRANS, CROT, CSCALE and CMIRROR to assign values to
your frames in the NC program.
Syntax
DEF FRAME PALETTE1
PALETTE1=CTRANS(…):CROT(…)…
Significance
DEF FRAME
Creating new frames.
PALETTE1
Name of the new frame
=CTRANS(...):
Assign values to the possible functions
CROT(...)...
Job Planning
292
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.3 Coarse and fine offsets (CFINE, CTRANS)
5.3
Coarse and fine offsets (CFINE, CTRANS)
Function
Fine offset
A fine offset of the basic frames and of all other settable frames can be programmed with
command CFINE (X, ..,Y, ...).
A fine offset can only be made if MD18600 $MN_MM_FRAME_FINE_TRANS=1.
Rough offset
The coarse offset is defined with CTRANS(...).
6FDOLQJ
0LUURULQJ
5RWDWLRQ
)LQH RIIVHW
&RDUVH RIIVHW
)UDPH VWUXFWXUH ZLWK ILQH RIIVHW
Coarse and fine offset add up to the total offset.
Syntax
$P_UBFR=CTRANS(x, 10) : CFINE(x, 0.1) :
CROT(x, 45)
;Chaining of offset,
;fine offset and rotation
$P_UIFR[1]=CFINE(x, 0.5 y, 1.0, z, 0.1)
;The complete frame will be
;overwritten with CFINE
;including the coarse offset
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
293
Coordinate transformation (FRAMES)
5.3 Coarse and fine offsets (CFINE, CTRANS)
Access to the individual components of the fine offset is achieved through component
specification FI (Translation Fine).
DEF REAL FINEX
;Definition of the FINEX variable
FINEX=$P_UIFR[$P_UIFNUM, x, FI]
;Fetching the fine offset
;using the FINEX variable
FINEX=$P_UIFR[3, x, FI]$P
;Fetching the fine offset
;of the X axis in the 3rd frame
;using the FINEX variable
Significance
CFINE(x, value, y,
Fine offset for multiple axes. Additive offset (translation).
value, z, value)
CTRANS(x, value, y,
Coarse offset for multiple axes. Absolute offset (translation).
value, z, value)
x y z
Zero shift of the axes (max. 8)
Value
Translation part
Machine manufacturer
The fine offset can be configured in the following versions using MD18600 $MN_
MM_FRAME_FINE_TRANS:
0:
The fine offset cannot be entered or programmed. G58 and G59 are not possible.
1:
Fine offset for settable frames, basic frames, programmable frames, G58 and G59 can be
entered/programmed.
Description
A fine offset changed with the HMI operation does not apply until after activation of the
corresponding frame, i.e. activation via G500, G54...G599. Once activated, a fine offset of a
frame remains active the whole time the frame is active.
The programmable frame has no fine offset. If the programmable frame is assigned a frame
with fine offset, then the total offset is established by adding the coarse and the fine offset.
When reading the programmable frame the fine offset is always zero.
Job Planning
294
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.4 External zero offset
5.4
External zero offset
Function
This is another way of moving the zero point between the basic and workpiece coordinate
system.
Only linear translations can be programmed with the external zero offset.
<0&6
<0&6
<%&6
<%=6
<6=6
;6=6
*
*
;%=6
%DVH IUDPH
([WHUQDO ]HUR RIIVHW
'5) RIIVHW
;%&6
.LQHPDWLF WUDQVIRUPDWLRQ
;0&6
3UHVHW RIIVHW
Programming
The $AA_ETRANS offset values are programmed by assigning the axis-specific system
variables.
Assigning offset value
$AA_ETRANS[axis]=RI
RI is the arithmetic variable of type REAL that contains the new value.
The external offset is generally set by the PLC and not specified in the parts program.
Note
The value entered in the parts program only becomes active when the corresponding signal
is enabled at the VDI interface
(NCU-PLC interface).
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
295
Coordinate transformation (FRAMES)
5.5 Preset offset (PRESETON)
5.5
Preset offset (PRESETON)
Function
In special applications, it can be necessary to assign a new programmed actual value to one
or more axes at the current position (stationary).
CAUTION
The reference point becomes invalid with the function PRESETON. You should therefore
only use this function for axes which do not require a reference point. If the original system
is to be restored, the reference point must be approached with G74 - see the "File and
Program Management" section.
<0&6
<0&6
.LQHPDWLF WUDQVIRUPDWLRQ
0&6
;
3UHVHW RIIVHW
Syntax
PRESETON(axis, value)
Significance
PRESETON
Preset actual value memory
Axis
Machine axis parameter
Value
New actual value to apply to the specified axis
Note
Preset mode with synchronized actions should only be implemented with the keyword
"WHEN" or "EVERY".
Job Planning
296
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.5 Preset offset (PRESETON)
Example
The actual values are assigned to the machine coordinate system - the values refer to the
machine axes.
N10 G0 A760
N20 PRESETON(A1,60)
Axis A travels to position 760. At position 760, machine axis A1 is assigned the new actual
value 60. From this point, positioning is performed in the new actual value system.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
297
Coordinate transformation (FRAMES)
5.6 Frame calculation from three measuring points in space (MEAFRAME)
5.6
Frame calculation from three measuring points in space
(MEAFRAME)
Function
MEAFRAME is an extension of the 840D language used for supporting measuring cycles.
The function MEAFRAME calculates the frame from three ideal and the corresponding
measured points.
When a workpiece is positioned for machining, its position relative to the Cartesian machine
coordinate system is generally both shifted and rotated referring to its ideal position. For
exact machining or measuring either a costly physical adjustment of the part is required or
the motions defined in the part program must be changed.
A frame can be defined by sampling three points in space whose ideal positions are known.
A touch-trigger probe or optical sensor is used for sampling that touches special holes
precisely fixed on the supporting plate or probe balls.
Syntax
MEAFRAME IDEAL_POINT,MEAS_POINT,FIT_QUALITY)
Significance
MEAFRAME
Frame calculation of three measured points in space
IDEAL_POINT
Array of real data containing the three coordinates of the ideal
points
MEAS_POINT
Array of real data containing the three coordinates of the
measured points
FIT_QUALITY
REAL variable,
returning the following information:
-1:
The ideal points are almost on a straight line:
The frame could not be calculated. The returned
frame variable contains a neutral frame.
-2:
The measuring points are almost on a straight
line: The frame could not be calculated. The
returned frame variable contains a neutral frame.
-4:
The calculation of the rotation matrix failed for a
different reason.
Positive value: Sum of distortions (distances between the
points), that are required to transform the
measured triangle into a triangle that is
congruent to the ideal triangle.
Job Planning
298
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.6 Frame calculation from three measuring points in space (MEAFRAME)
Note
Quality of the measurement
In order to map the measured coordinates onto the ideal coordinates using a rotation and a
translation, the triangle formed by the measured points must be congruent to the ideal
triangle. This is achieved by means of a compensation algorithm that minimizes the sum of
squared deviations needed to reshape the measured triangle into the ideal triangle.
Since the effective distortion can be used to judge the quality of the measurement, MEAFRAME
returns it as an additional variable.
Note
The frame created by MEAFRAME can be transformed by the ADDFRAME function into another
frame in the frame chain as from SW 6.3.
Example: chaining of frames "concatenation with ADDFRAME".
Further information for the parameters for ADDFRAME(FRAME, STRING) see
/FB1/ Function Manual Basic Functions; Axes, Coordinate Systems, Frames (K2), "FRAME
Chaining".
Example
Program code
Comments
; Part program 1
DEF FRAME CORR_FRAME
Setting measuring points
Programming
Comments
DEF REAL IDEAL_POINT[3,3] = SET(10.0,0.0,0.0, 0.0,10.0,0.0,
0.0,0.0,10.0)
DEF REAL MEAS_POINT[3,3] = SET
; for test
(10.1,0.2,-0.2, -0.2,10.2,0.1, -0.2,0.2,9.8)
DEF REAL FIT_QUALITY = 0
DEF REAL ROT_FRAME_LIMIT = 5
; Permits max. 5 degrees rotation of
the part position
DEF REAL FIT_QUALITY_LIMIT = 3
; Permits max. 3 mm offset between
the ideal and the measured
triangle
DEF REAL SHOW_MCS_POS1[3]
DEF REAL SHOW_MCS_POS2[3]
DEF REAL SHOW_MCS_POS3[3]
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
299
Coordinate transformation (FRAMES)
5.6 Frame calculation from three measuring points in space (MEAFRAME)
Program code
Comments
N100 G01 G90 F5000
N110 X0 Y0 Z0
N200 CORR_FRAME=MEAFRAME(IDEAL_POINT,MEAS
_POINT,FIT_QUALITY)
N230 IF FIT_QUALITY < 0
SETAL(65000)
GOTOF NO_FRAME
ENDIF
N240 IF FIT_QUALITY > FIT_QUALITY_LIMIT
SETAL(65010)
GOTOF NO_FRAME
ENDIF
N250 IF CORR_FRAME[X,RT] > ROT_FRAME_LIMIT
;
Limiting the 1st RPY angle
SETAL(65020)
GOTOF NO_FRAME
ENDIF
N260 IF CORR_FRAME[Y,RT] > ROT_FRAME_LIMIT
;
Limiting the 2nd RPY angle
SETAL(65021)
GOTOF NO_FRAME
ENDIF
N270 IF CORR_FRAME[Z,RT] > ROT_FRAME_LIMIT
;
Limiting the 3rd RPY angle
SETAL(65022)
GOTOF NO_FRAME
ENDIF
N300 $P_IFRAME=CORR_FRAME
;
Activating sample frame with
settable frame
;
Check frame by positioning the
geometry axes to the ideal point
N400 X=IDEAL_POINT[0,0] Y=IDEAL_POINT[0,1]
Z=IDEAL_POINT[0,2]
N410 SHOW_MCS_POS1[0]=$AA_IM[X]
N410 SHOW_MCS_POS1[1]=$AA_IM[X]
N430 SHOW_MCS_POS1[2]=$AA_IM[Z]
N500 X=IDEAL_POINT[1,0] Y=IDEAL_POINT[1,1]
Z=IDEAL_POINT[1,2]
N510 SHOW_MCS_POS2[0]=$AA_IM[X]
N520 SHOW_MCS_POS2[1]=$AA_IM[Y]
N530 SHOW_MCS_POS2[2]=$AA_IM[Z]
N600 X=IDEAL_POINT[2,0] Y=IDEAL_POINT[2,1]
Z=IDEAL_POINT[2,2]
N610 SHOW_MCS_POS3[0]=$AA_IM[X]
Job Planning
300
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.6 Frame calculation from three measuring points in space (MEAFRAME)
Program code
Comments
N620 SHOW_MCS_POS3[1]=$AA_IM[Y]
N630 SHOW_MCS_POS3[2]=$AA_IM[Z]
N700 G500
; Deactivate settable frame as with
zero frame (no value entered,
pre-assigned).
No_FRAME
; Deactivate settable frame, as
pre-assigned with zero frame (no
value entered).
M0
M30
Example of concatenating frames
Chaining of MEAFRAME for offsets
The MEAFRAME( ) function provides an offset frame. If this offset frame is concatenated with a
set frame $P_UIFR[1] that was active when the function was called, e.g., G54, one receives
a settable frame for further conversions for the procedure or machining.
Concatenation with ADDFRAME
If you want this offset frame in the frame chain to apply at a different position or if other
frames are active before the settable frame, the ADDFRAME( ) function can be used for
chaining into one of the channel basic frames or a system frame.
The following must not be active in the frames:
● Mirroring with MIRROR
● Scaling with SCALE
The input parameters for the setpoints and actual values are the workpiece coordinates.
These coordinates must always be specified
● metrically or in inches (G71/G70) and
● with reference to the radius (DIAMOF)
in the basic system of the controller.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
301
Coordinate transformation (FRAMES)
5.7 NCU global frames
5.7
NCU global frames
Function
Only one set of NCU global frames is used for all channels on each NCU. NCU global
frames can be read and written from all channels. The NCU global frames are activated in
the respective channel.
Channel axes and machine axes with offsets can be scaled and mirrored by means of global
frames.
Geometrical relationships and frame chains
With global frames there is no geometrical relationship between the axes. It is therefore not
possible to perform rotations or program geometry axis identifiers.
● Rotations cannot be used on global frames. The programming of a rotation is denied with
alarm: "18310 Channel %1 Block %2 Frame: rotation not allowed" is displayed.
● It is possible to chain global frames and channel-specific frames. The resulting frame
contains all frame components including the rotations for all axes. The assignment of a
frame with rotation components to a global frame is denied with alarm "Frame: rotation
not allowed".
NCU-global frames
NCU-global basic frames $P_NCBFR[n]
Up to eight NCU-global basic frames can be configured:
Channel-specific basic frames can also be available.
Global frames can be read and written from all channels of an NCU. When writing global
frames, the user must ensure channel coordination. This can be achieved using wait
markers (WAITMC) for example.
Machine manufacturer
The number of global basic frames is configured using machine data, see
/FB1/ Function Manual Basic Functions; Axes, Coordinate Systems, Frames (K2).
NCU-global settable frames $P_UIFR[n]
All settable frames G500, G54...G599 can be configured NCU globally or channel-
specifically.
Machine manufacturer
All settable frames can be reconfigured as global frames with the aid of machine data
$MN_MM_NUM_GLOBAL_USER_FRAMES.
Channel axis identifiers and machine axis identifiers can be used as axis identifiers in frame
program commands. Programming of geometry identifiers is rejected with an alarm.
Job Planning
302
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.7 NCU global frames
5.7.1
Channel-specific frames ($P_CHBFR, $P_UBFR)
Function
Settable frames or basic frames can be read and written by an operator action or from the
PLC:
● via the parts program, or
● via the operator panel interface.
The fine offset can also be used for global frames. Suppression of global frames also takes
place, as is the case with channel-specific frames, via G53, G153, SUPA and G500.
Machine manufacturer
The number of basic frames can be configured in the channel via MD 28081
MM_NUM_BASE_FRAMES. The standard configuration is designed for at least one basic
frame per channel. A maximum of eight basic frames are supported per channel. In addition
to the eight basic frames, there can also be eight NCU-global basic frames in the channel.
Channel-specific frames
$P_CHBFR[n]
System variable $P_CHBFR[n] can be used to read and write the basic frames. When a basic
frame is written, the chained total basic frame is not activated until the execution of a G500,
G54...G599 instruction. The variable is used primarily for storing write operations to the basic
frame on HMI or PLC. These frame variables are saved by the data backup.
First basic frame in the channel
The basic frame with field device 0 is not activated simultaneously when writing to the
predefined $P_UBFR variable, but rather activation only takes place on execution of a G500,
G54...G599 instruction. The variable can also be read and written in the program.
$P_UBFR
$P_UBFR is identical to $P_CHBFR[0]. One basic frame always exists in the channel by default,
so that the system variable is compatible with older versions. If there is no channel-specific
basic frame, an alarm is issued at read/write: "Frame: instruction not permissible".
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
303
Coordinate transformation (FRAMES)
5.7 NCU global frames
5.7.2
Frames active in the channel
Function
Frames active in the channel are entered from the parts program via the associated system
variables of these frames. System frames also belong here. The current system frame can
be read and written via these system variables in the parts program.
Frames active in the channel
Overview
Current system frames
For:
$P_PARTFRAME
TCARR and PAROT
$P_SETFRAME
PRESET and scratching
$P_EXTFRAME
External zero offset
$P_NCBFRAME[n]
Current NCU-global basic frames
$P_CHBFRAME[n]
Current channel basic frames
$P_BFRAME
Current first basic frame in the channel
$P_ACTBFRAME
Complete basic frame
$P_CHBFRMASK and $P_NCBFRMASK
Complete basic frame
$P_IFRAME
Current settable frame
Current system frames
For:
$P_TOOLFRAME
TOROT and TOFRAME
$P_WPFRAME
Workpiece reference points
$P_TRAFRAME
Transformations
$P_PFRAME
Current programmable frame
Current system frame
For:
$P_CYCFRAME
Cycles
P_ACTFRAME
Current total frame
FRAME chaining
The current frame consists of the total
basic frame
$P_NCBFRAME[n] Current NCU-global basic frames
System variable $P_NCBFRAME[n] can be used to read and write the current global basic frame
field elements. The resulting total basic frame is calculated by means of the write process in
the channel.
The modified frame is activated only in the channel in which the frame was programmed. If
the frame is to be modified for all channels of an NCU, $P_NCBFR[n] and
$P_NCBFRAME[n] must be written simultaneously. The other channels must then activate
the frame, e.g., with G54. Whenever a basic frame is written, the complete basic frame is
calculated again.
Job Planning
304
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.7 NCU global frames
$P_CHBFRAME[n] Current channel basic frames
System variable $P_CHBFRAME[n] can be used to read and write the current channel basic
frame field elements. The resulting complete basic frame is calculated in the channel as a
result of the write operation. Whenever a basic frame is written, the complete basic frame is
calculated again.
$P_BFRAME Current first basic frame in the channel
The predefined frame variable $P_BFRAME can be used to read and write the current basic
frame with the field device of 0, which is valid in the channel, in the parts program. The
written basic frame is immediately included in the calculation.
$P_UBFR is identical to $P_CHBFR[0]. The system variable always has a valid default value. If
there is no channel-specific basic frame, an alarm is issued at read/write: "Frame: instruction
not permissible".
$P_ACTBFRAME Complete basic frame
The $P_ACTFRAME variable determines the chained complete basic frame. The variable is
read-only.
$P_ACTFRAME corresponds to
$P_NCBFRAME[0] : ... : $P_NCBFRAME[n] : $P_CHBFRAME[0] : ... : $P_CHBFRAME[n].
<
%&6
<
<
%=6
3B$&7%)5$0(
%=6
;
%=6
3B&+%)5$0(>Q@ Q
FDQ EH FRQILJXUHG YLD 0&B00B180B%$6(B)5$0(6
3B&+%)5$0(> @ 3B%)5$0(
3B1&%)5$0(>Q@ QFDQ EH FRQILJXUHG YLD 01B00B180B*/2%$/B%$6(B)5$0(6
;
3B1&%)5$0(> @
;
%&6
%=6 EDVLF ]HUR V\VWHP
%&6
%&6 EDVLF FRRUGLQDWH V\VWHP
3
$&7%)5$0( 3B1&%)5$0(> @
3B1&%)5$0(>Q@
3B&+%)5$0(> @
3B&+%)5$0(>Q@
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
305
Coordinate transformation (FRAMES)
5.7 NCU global frames
$P_CHBFRMASK and $P_NCBFRMASK complete basic frame
The system variables $P_CHBFRMASK and $P_NCBFRMASK can be used to select, which basic
frames to include in the calculation of the "complete" basic frame. The variables can only be
programmed in the program and read via the operator panel interface. The value of the
variable is interpreted as bit mask and determines which basic frame field element of
$P_ACTFRAME is included in the calculation.
$P_CHBFRMASK can be used to define which channel-specific basic frames are included, and
$P_NCBFRMASK can be used to define which NCU-global basic frames are included in the
calculation.
When the variables are programmed, the total basic frame and the total frame are calculated
again. After a reset and in the default setting, the value of
$P_CHBFRMASK = $MC_CHBFRAME_RESET_MASK and
$P_NCBFRMASK = $MC_CHBFRAME_RESET_MASK.
e.g.,
$P_NCBFRMASK = 'H81' ;$P_NCBFRAME[0] : $P_NCBFRAME[7]
$P_CHBFRMASK = 'H11' ;$P_CHBFRAME[0] : $P_CHBFRAME[4]
$P_IFRAME Current settable frame
The predefined frame variable $P_IFRAME can be used to read and write the current settable
frame, which is valid in the channel, in the parts program. The written settable frame is
immediately included in the calculation.
In the case of NCU-global settable frames, the modified frame acts only in the channel in
which the frame was programmed. If the frame is to be modified for all channels of an NCU,
$P_UIFR[n] and $P_IFRAME must be written simultaneously. The other channels must then
activate the corresponding frame, e.g., with G54.
$P_PFRAME Current programmable frame
$P_PFRAME is the programmed frame that results from the programming of TRANS/ATRANS,
G58/G59, ROT/AROT, SCALE/ASCALE, MIRROR/AMIRROR or from the assignment of CTRANS, CROT,
CMIRROR, CSCALE to the programmed FRAME.
Current, programmable frame variable that establishes the reference between the settable
● zero system (SZS) and the
● workpiece coordinate system (WCS).
Job Planning
306
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Coordinate transformation (FRAMES)
5.7 NCU global frames
P_ACTFRAME Current complete frame
The resulting current complete frame $P_ACTFRAME is now a chain of all basic frames, the
current settable frame and the programmable frame. The current frame is always updated
whenever a frame component is changed.
$P_ACTFRAME corresponds to
$P_PARTFRAME : $P_SETFRAME : $P_EXTFRAME : $P_ACTBFRAME : $P_IFRAME :
$P_TOOLFRAME : $P_WPFRAME : $P_TRAFRAME : $P_PFRAME : $P_CYCFRAME
'DWD PDQDJHPHQW IUDPHV
,QSXW YLD SURJUDP H J
,QSXW YLD SURJUDP H J
3B&+%)5 &75$16 =
3B1&%)5 &75$16 ;
3B8,)5>Q@ &75$16 ;
3B75$)5$0(
,QSXW IURP
,QSXW IURP
&KDQQHO VSHFLILF
+0,
V\VWHP IUDPHV
3B&<&)5
+0,
3B:3)5
3B722/)5
3B3$57)5
3B&+%)5>Q@
3B1&%)5>Q@
3B(;7)5
&KDQQHO VSHFLILF 1&8
1&8 JOREDO
3B6(7)5
3B8,)5>Q@
EDVLF IUDPHV
IUDPHV
$FWLYDWHG YLD
$FWLYDWHG YLD
*
*
*
*
*
*
&RPSOHWH IUDPH
,QSXW YLD SURJUDP H J
&XUUHQW WRWDO IUDPH
3B1&%)5$0(> @ &75$16 ;
3B$&7)5$0(
3B3$57)5$0(
6(7)5$0(
3B(;7)5$0(
3B$&7%)5$0(
3B,)5$0(
3B722/)5$0(
3B:3)5$0(
3B75$)5$0(
3B3)5$0(
3B&<&)5$0(
,QSXW YLD SURJUDP H J
,QSXW YLD SURJUDP H J
3B3)5$0( &75$16 ;
3B,)5$0( &75$16 ;
RU
75$16 ;
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
307
Coordinate transformation (FRAMES)
5.7 NCU global frames
Frame chaining
The current frame consists of the total basic frame, the settable frame, the system frame,
and the programmable frame according to the current total frame mentioned above.
)UDPH FKDLQ
:&6
)UDPH IRU F\FOHV SURJUDPPDEOH IUDPH
WUDQVIRUPDWLRQV
6=6
6\VWHP IUDPH IRU 72527 72)5$0(
ZRUNSLHFHV
*
*
VHW IUDPH FKDQQHO VSHF RU
1&8 JOREDO
%=6
&KDLQHG DUUD\ RI EDVLF IUDPHV FKDQQHO VSHF
DQG RU 1&8 JOREDO
&KDLQHG V\VWHP IUDPHV IRU 3$527 VHW DFWXDO YDOXH VFUDWFKLQJ
]HUR RIIVHW H[WHUQDO
+DQGZKHHO '5) RIIVHW VXSHULPSRVHG PRYHPHQW >]HUR RIIVHW
H[WHUQDO@
%&6
.LQHPDWLF WUDQVIRUPDWLRQ
0&6
+RPH SRVLWLRQ RIIVHW
0&6 0DFKLQH &RRUGLQDWH 6\VWHP
%&6 %DVLF &RRUGLQDWH 6\VWHP
:&6 :RUNSLHFH &RRUGLQDWH 6\VWHP
%=6 %DVLF =HUR 6\VWHP
6=6 6HWWDEOH =HUR 6\VWHP
Job Planning
308
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6
6.1
General programming of transformation types
General function
You can choose to program transformation types with suitable parameters in order to adapt
the control to various machine kinematics. These parameters can be used to declare both
the orientation of the tool in space and the orientation movements of the rotary axes
accordingly for the selected transformation.
In three-, four-, and five-axis transformations, the programmed positional data always relates
to the tip of the tool, which is tracked orthogonally to the machined surface in space. The
Cartesian coordinates are converted from the basic coordinate system to the machine
coordinate system and relate to the geometry axes. These describe the operating point.
Virtual rotary axes describe the orientations of the tool in space and are programmed with
TRAORI.
In the case of kinematic transformation, positions can be programmed in the Cartesian
coordinate system. The control maps the Cartesian coordinate system traversing
movements programmed with TRANSMIT, TRACYL and TRAANG to the traversing
movements of the real machine axes.
Programming
Three, four and five axis transformations (TRAORI)
The orientation transformation declared is activated with the TRAORI command and the
three possible parameters for transformation number, orientation vector and rotary axis
offsets.
TRAORI(transformation number, orientation vector, rotary axis offsets)
Kinematic transformations
TRANSMIT(transformation number) declared transformations are examples of kinematic
transformation.
TRACYL(working diameter, transformation number)
TRAANG(angle of offset axis, transformation number)
Deactivate active transformation
TRAFOOF can be used to deactivate the currently active transformation.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
309
Transformations
6.1 General programming of transformation types
Orientation transformation
Three, four and five axis transformations (TRAORI)
For the optimum machining of surfaces configured in space in the working area of the
machine, machine tools require other axes in addition to the three linear axes X, Y and Z.
The additional axes describe the orientation in space and are called orientation axes in
subsequent sections. They are available as rotary axes on four types of machine with
varying kinematics.
1. Two-axis swivel head, e.g., cardanic tool head with one rotary axis parallel to a linear axis
on a fixed tool table.
2. Two-axis rotary table, e.g., fixed swivel head with tool table, which can rotate about two
axes.
3. Single-axis swivel head and single-axis rotary table, e.g., one rotatable swivel head with
rotated tool for tool table, which can rotate about one axis.
4. Two-axis swivel head and single-axis rotary table, e.g., on tool table, which can rotate
about one axis, and one rotatable swivel head with tool, which can rotate about itself.
3- and 4-axis transformations are special types of 5-axis transformation and are programmed
in the same way as 5-axis transformations.
The functional scope of "generic 3-/4-/5-/6-axis transformation" is suitable both for
transformations for orthogonal rotary axes and transformations for the universal milling head
and, like all other orientation transformations, can also be activated for these four machine
types with TRAORI. In generic 5-/6-axis transformation, tool orientation has an additional
third degree of freedom, whereby the tool can be rotated about its own axis relative to the
tool direction so that it can be directed as required in space.
References: /FB3/ Function Manual, Special Functions; 3- to 5-Axis Transformation (F2)
Initial tool orientation setting regardless of kinematics
ORIRESET
If an orientation transformation is active using TRAORI, then ORIRESET can be used to
specify the initial settings of up to 3 orientation axes with the optional parameters A, B, C.
The order in which the programmed parameters are assigned to the round axes depends on
the orientation axis order defined by the transformation. Programming ORIRESET(A, B, C)
results in the orientation axes moving in linear and synchronous motion from their current
position to the specified initial setting position.
Job Planning
310
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.1 General programming of transformation types
Kinematic transformations
TRANSMIT and TRACYL
For milling on turning machines, either
1. Face machining in the turning clamp with TRANSMIT or
2. Machining of grooves with any path on cylindrical bodies with TRACYL
can be programmed for the transformation declared.
TRAANG
If the option of setting the infeed axis for inclined infeed is required (for grinding technology,
for example), TRAANG can be used to program a configurable angle for the transformation
declared.
Cartesian PTP travel
Kinematic transformation also includes the so-called "Cartesian PTP travel" for which up to 8
different articulated joint positions STAT= can be programmed. Although the positions are
programmed in a Cartesian coordinate system, the movement of the machine occurs in the
machine coordinates.
References:
/FB2/ Description of Functions Extended Functions; Kinematic Transformation (M1)
Chained transformations
Two transformations can be switched one after the other. For the second transformation
chained here, the motion parts for the axes are taken from the first transformation.
The first transformation can be:
● orientation transformation TRAORI
● polar transformation TRANSMIT
● cylinder transformation TRACYL
● inclined axis transformation TRAANG
The second transformation must be a TRAANG type transformation for an inclined axis.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
311
Transformations
6.1 General programming of transformation types
6.1.1
Orientation movements for transformations
Travel movements and orientation movements
The traversing movements of the programmed orientations are determined primarily by the
type of machine. For three-, four-, and five-axis type transformations with TRAORI, the rotary
axes or pivoting linear axes describe the orientation movements of the tool.
Changes in the position of the rotary axes involved in the orientation transformation will
induce compensating movements on the remaining machine axes. The position of the tool tip
remains unchanged.
Orientation movements of the tool can be programmed using the rotary axis identifiers A…,
B…, C… of the virtual axes as appropriate for the application either by entering Euler or RPY
angles or directional or surface normal vectors, normalized vectors for the rotary axis of a
taper or for intermediate orientation on the peripheral surface of a taper.
In the case of kinematic transformation with TRANSMIT, TRACYL and TRAANG, the control
maps the programmed Cartesian coordinate system traversing movements to the traversing
movements of the real machine axes.
Machine kinematics for three, four and five axis transformation (TRAORI)
Either the tool or the tool table can be rotatable with up to two rotary axes. A combination of
swivel head and rotary table (single-axis in each case) is also possible.
6ZLYHO KHDG
6ZLYHO KHDG
6ZLYHO KHDG
=
FDQ EH URWDWHG
FDQ EH URWDWHG
IL[HG
DERXW ; D[LV
DERXW < D[LV
DQG = D[LV
&
%
<
7RRO WDEOH FDQ
7RRO WDEOH FDQ
EH URWDWHG
$
EH URWDWHG
DERXW ; D[LV
;
DERXW = D[LV
DQG = D[LV
=
=
&
&
<
7RRO WDEOH IL[HG
$
;
5RWDWHG WRRO
5RWDWHG WRRO 5RWDWHG
5RWDWHG ZRUNSLHFH
ZRUNSLHFH
0DFKLQH W\SH ZLWK
0DFKLQH W\SH ZLWK
0DFKLQH W\SH ZLWK
D[LV VHTXHQFH &$
D[LV VHTXHQFH %&
D[LV VHTXHQFH $&
Job Planning
312
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.1 General programming of transformation types
Machine type
Programming of orientation
Three-axis transformation
Programming of tool orientation only in the plane, which is
machine types 1 and 2
perpendicular to the rotary axis. There are
two translatory axes (linear axes) and
one axis of rotation (rotary axis).
Four-axis transformation
Programming of tool orientation only in the plane, which is
machine types 1 and 2
perpendicular to the rotary axis. There are
three translatory axes (linear axes) and
one axis of rotation (rotary axis).
Five-axis transformation
Programming of orientation transformation. Kinematics with
machine types 3
three linear axes and two orthogonal rotary axes.
Single-axis swivel head
The rotary axes are parallel to two of the three linear axes.
and single-axis rotary table The first rotary axis is moved by two Cartesian linear axes. It
rotates the third linear axis with the tool. The second rotary
axis rotates the workpiece.
Generic 5/6-axis transformations
Machine type
Programming of orientation transformation
Generic five/six-axis
Programming of orientation transformation. Kinematics with
transformation machine
three linear axes and three orthogonal rotary axes.
types 4
The rotary axes are parallel to two of the three linear axes.
Two-axis swivel head with
The first rotary axis is moved by two Cartesian linear axes. It
tool which rotates around
rotates the third linear axis with the tool. The second rotary
itself and single-axis rotary
axis rotates the workpiece. The basic tool orientation can also
table
be programmed with additional rotation of the tool around
itself with the THETA rotary angle.
When calling "generic three-, four-, and five/six-axis transformation", the basic orientation of
the tool can also be transferred. The restrictions in respect of the directions of the rotary
axes no longer apply. If the rotary axes are not exactly vertical to one another or existing
rotary axes are not exactly parallel with the linear axes, "generic five-/six-axis transformation"
can provide better results in respect of tool orientation.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
313
Transformations
6.1 General programming of transformation types
Kinematic transformations TRANSMIT, TRACYL and TRAANG
For milling on turning machines or an axis that can be set for inclined infeed during grinding,
the following axis arrangements apply by default in accordance with the transformation
declared:
TRANSMIT
Activation of polar transformation
Face machining in the
A rotary axis
turning clamp
An infeed axis vertical to the axis of rotation
A longitudinal axis parallel to the axis of rotation
TRACYL
Activation of the cylinder surface transformation
Machining of grooves with
A rotary axis
any path on cylindrical
An infeed axis vertical to the axis of rotation
bodies
A longitudinal axis parallel to the axis of rotation
TRAANG
Activation of the inclined axis transformation
Machining with an oblique
A rotary axis
infeed axis
An infeed axis with parameterizable angle
A longitudinal axis parallel to the axis of rotation
Cartesian PTP travel
The machine moves in machine coordinates and is programmed with:
TRAORI
Activation of transformation
PTP Point-to-point motion Approach position in Cartesian coordinate system (MCS)
CP
Path motion of Cartesian axes in (BCS)
STAT
Position of the articulated joints is dependent on the
transformation
TU
The angle at which the axes traverse on the shortest path
PTP transversal with generic 5/6-axis transformation
The machine is moved using machine coordinates and the tool orientation, where the
movements can be programmed both using round axis positions and using Euler and/or RPY
angle vectors irrespective of the kinematics or the direction vectors.
Round axis interpolation, vector interpolation with large circle interpolation or interpolation of
the orientation vector on a peripheral surface of a taper are possible in such cases.
Job Planning
314
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.1 General programming of transformation types
Example: Three- to five-axis transformation on a universal milling head
The machine tool has at least five axes:
● Three translatory axes for movements in straight lines, which move the operating point to
any position in the working area.
● Two rotary swivel axes arranged at a configurable angle (usually 45 degrees) allow the
tool to swivel to positions in space that are limited to a half sphere in a 45-degree
configuration.
6.1.2
Overview of orientation transformation TRAORI
Programming types available in conjunction with TRAORI
Machine type
Programming with active transformation TRAORI
Machine types 1, 2, or 3 two-
The axis sequence of the orientation axes and the orientation
axis swivel head or two-axis
direction of the tool can either be configured on a
rotary table or a combination
machine-specific basis using machine data
of single-axis swivel head and
depending on the machine kinematics or on a
single-axis rotary table.
workpiece-specific basis with programmable orientation
independently of the machine kinematics.
The directions of rotation of the orientation axes in the reference
system are programmed with:
- ORIMKS reference system = machine coordinate system
- ORIWKS reference system = workpiece coordinate system
The default setting is ORIWKS.
Programming of orientation axes with:
A, B, C of the machine axis position direct
A2, B2, C2 angle programming virtual axes with
- ORIEULER via Euler angle (standard)
- ORIRPY via RPY angle
- ORIVIRT1 via virtual orientation axes 1st definition
- ORIVIRT2 via virtual orientation axes 2nd definition
with differentiation between the interpolation type:
linear interpolation
- ORIAXES of orientation axes or machine axes
large radius circle interpolation (interpolation of the orientation vector)
- ORIVECT from orientation axes
Programming orientation axes by specifying
A3, B3, C3 of the vector components (direction/surface normal)
Programming the resulting tool orientation
A4, B4, C4 of the vector surface normal at the beginning of the block
A5, B5, C5 of the vector perpendicular to the surface at the end of
the block
LEAD leading angle for tool orientation
TILT tilt angle for the tool orientation
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
315
Transformations
6.1 General programming of transformation types
Machine type
Programming with active transformation TRAORI
Interpolation of the orientation vector on a taper peripheral surface
Orientation changes to a taper peripheral surface anywhere in space
using interpolation:
- ORIPLANE in the plane (large radius circle interpolation)
- ORICONCW on a taper peripheral surface in the clockwise direction
- ORICONCCW on a taper peripheral surface in the counter-
clockwise direction
A6, B6, C6 director vector (axis of rotation of the taper)
-OICONIO interpolation on a taper peripheral surface with:
A7, B7, C7 intermediate vectors (initial and ultimate orientation) or
- ORICONTO on the peripheral surface of a taper, tangential
transition
Changes in orientation in relation to a path with
- ORICURVE specification of the movement of two contact points
using
PO[XH]=(xe, x2, x3, x4, x5) orientation polynomials up to the fifth
degree
PO[YH]=(ye, y2, y3, y4, y5) orientation polynomials up to the fifth
degree
PO[ZH]=(ze, z2, z3, z4, z5) orientation polynomials up to the fifth
degree
- ORIPATHS smoothing of orientation characteristic with
A8, B8, C8 reorientation phase of tool corresponding to: direction and
path length of tool during retraction movement
Machine types 1 and 3
Programming of rotations for tool orientation with
LEAD angle, angle relative to surface normal vector
PO[PHI] programming of a polynomial up to the fifth degree
TILT angle rotation about path tangent (Z direction)
PO[PSI] programming of a polynomial up to the fifth degree
Other machine types with
THETA angle of rotation (rotation about tool direction in Z)
additional tool rotation around
THETA= value reached at end of block
itself require a 3rd rotary axis
THETA=AC(...) absolute non-modal switching to dimensions
THETA=IC(...) non-modal switching to chain dimensions
THETA=Θe interpolate programmed angle G90/G91
Orientation transformation,
PO[THT]=(..) programming of a polynomial up to the fifth degree
e.g. generic 6-axis
programming of the rotation vector
transformation. Rotations of
- ORIROTA rotation, absolute
orientation vector.
- ORIROTR relative rotation vector
- ORIROTT tangential rotation vector
Orientation relative to the
Changes in orientation relative to the path with
path for orientation changes
- ORIPATH tool orientation relative to the path
relative to the path or rotation
- ORIPATHS also in the event of a blip in the orientation
of the rotary vector
characteristic
tangentially to the path
programming of rotation vector
- ORIROTC tangential rotation vector, rotation to path tangent
Job Planning
316
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.2 Three, four and five axis transformation (TRAORI)
6.2
Three, four and five axis transformation (TRAORI)
6.2.1
General relationships of universal tool head
Function
To obtain optimum cutting conditions when machining surfaces with a three-dimensional
curve, it must be possible to vary the setting angle of the tool.
7RRO D[LV
The machine design to achieve this is stored in the axis data.
5-Axis Transformation
Cardanic tool head
Three linear axes (X, Y, Z) and two orientation axes (C, A) define the setting angle and the
operating point of the tool here. One of the two orientation axes is created as an inclined
axis, in our example A' - in many cases, placed at 45°.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
317
Transformations
6.2 Three, four and five axis transformation (TRAORI)
́
$
=
<
&
;
&DUGDQLF WRRO KHDG YDULDQW
In the examples shown here, you can see the arrangements as illustrated by the CA
machine kinematics with the Cardanic tool head!
Machine manufacturer
The axis sequence of the orientation axes and the orientation direction of the tool can be set
up using the machine data as appropriate for the machine kinematics.
$
&
́
&DUGDQLF WRRO KHDG YDULDQW
In this example, A' lies below the angle φ to the X axis.
Job Planning
318
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.2 Three, four and five axis transformation (TRAORI)
The following possible relations are generally valid:
A' lies below the angle φ to the
X axis
B' lies below the angle φ to the
Y axis
C' lies below the angle φ to the
Z axis
Angle φ can be configured in the range 0° to +89° using machine data.
With swiveling linear axis
This is an arrangement with a moving workpiece and a moving tool. The kinematics consists
of three linear axes (X, Y, Z) and two orthogonally arranged rotary axes. The first rotary axis
is moved, for example, over a compound slide of two linear axes, the tool standing parallel to
the third linear axis. The second rotary axis turns the workpiece. The third linear axis (swivel
axis) lies in the compound slide plane.
=
$
<
%
;
The axis sequence of the rotary axes and the orientation direction of the tool can be set up
using the machine data as appropriate for the machine kinematics.
There are the following possible relationships:
Axes:
Axis sequences:
1st rotary axis
A A B B C C
2nd rotary axis
B C A C A B
Swiveled linear axis
Z Y Z X Y X
For more detailed information about configurable axis sequences for the orientation direction
of the tool, see
References: /FB3/ Function Manual, Special Functions; 3- to 5-Axis Transformations (F2),
Universal Milling Head section, "Parameter Setting".
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
319
Transformations
6.2 Three, four and five axis transformation (TRAORI)
6.2.2
Three, four and five axis transformation (TRAORI)
Function
The user can configure two or three translatory axes and one rotary axis. The
transformations assume that the rotary axis is orthogonal on the orientation plane.
Orientation of the tool is possible only in the plane perpendicular to the rotary axis. The
transformation supports machine types with movable tool and movable workpiece.
Three- and four-axis transformations are configured and programmed in the same way as
five-axis transformations.
Reference:
Function Manual, Special Functions; Multi-Axis Transformations (F2)
Syntax
TRAORI(<n>)
TRAORI(<n>,<X>,<Y>,<Z>,<A>,<B>)
TRAFOOF
Meaning
TRAORI:
Activates the first specified orientation transformation
TRAORI(<n>):
Activates the orientation transformation specified by n
<n>
:
Number of the transformation
Value:
1 or 2
Example:
TRAORI(1) activates orientation transformation 1
<X>,<Y>,<Z>:
Component of orientation vector to which tool points
<A>,<B>:
Programmable offset for the rotary axes
TRAFOOF:
Deactivate transformation
Tool orientation
Depending on the orientation direction selected for the tool, the active working plane (G17,
G18, G19) must be set in the NC program in such a way that tool length offset works in the
direction of tool orientation.
Note
When the transformation is enabled, the positional data (X, Y, Z) always relates to the tip of
the tool. Changing the positions of the rotary axes involved in the transformation causes
compensating motion of the remaining machine axes - which means that the position of the
tool tip remains unchanged.
Orientation transformation always points from the tool tip to the tool adapter.
Job Planning
320
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Offset for orientation axes
When orientation transformation is activated an additional offset can be programmed directly
for the orientation axes.
Parameters can be omitted if the correct sequence is used in programming.
Example:
TRAORI(, , , ,A,B) ; if only a single offset is to be entered
As an alternative to direct programming, the additional offset for orientation axes can also be
transferred automatically from the work offset currently active. Transfer is configured in the
machine data.
Examples
TRAORI(1,0,0,1)
; The basic orientation of the tool is in the Z direction
TRAORI(1,0,1,0)
; The basic orientation of the tool is in the Z direction
TRAORI(1,0,1,1)
; The basic orientation of the tool is in the Y/Z direction
(corresponds to the position -45°)
6.2.3
Variants of orientation programming and initial setting (ORIRESET)
Orientation programming of tool orientation with TRAORI
In conjunction with a programmable TRAORI orientation transformation, in addition to the
linear axes X, Y, Z, the axis identifiers A.., B..., C... can also be used to program axis
positions or virtual axes with angles or vector components. Various types of interpolation are
possible for orientation and machine axes. Regardless of which PO[angle] orientation
polynomials and PO[axis] axis polynomials are currently active, a number of different types
of polynomial can be programmed. These include G1, G2, G3, CIP or POLY.
Changes in tool orientation can even be programmed using orientation vectors in some
cases. In such cases, the ultimate orientation of each block can be set either by means of
direct programming of the vector or by programming the rotary axis positions.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
321
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Note
Variants of orientation programming for three- to five-axis transformation
In respect of three- to five-axis transformation, the following variants:
1. A, B, C direct entry of machine axis positions
2. A2, B2, C2 angular programming of virtual axes using Euler angle or RPY angle
3. A3 ,B3, C3 entry of vector components
4. LEAD, TILT entry of lead and tilt angles relative to the path and surface
5. A4, B4, C4 and A5, B5, C5 surface normal vector at start of block and end of block
6. A6, B6, C6 and A7, B7, C7 interpolation of orientation vector on a peripheral surface of a
taper
7. A8, B8, C8 reorientation of tool, direction and path length of retracting movement
are mutually exclusive.
If an attempt is made to program mixed values, alarm messages are output.
Initial tool orientation setting ORIRESET
By programming ORIRESET (A, B, C), the orientation axes are moved in linear and
synchronous motion from their current position to the specified initial setting position.
If an initial setting position is not programmed for an axis, a defined position from the
associated machine data $MC_TRAFO5_ROT_AX_OFFSET_1/2 is used. Any active frames
of round axles which may be present are ignored.
Note
Only if an orientation transformation is active with TRAORI(...), can an initial setting for the
tool orientation regardless of kinematics be programmed without alarm 14101 using
ORIRESET(...).
Examples
1. Example of machine kinematics CA (channel axis names C, A)
ORIRESET(90, 45)
;C at 90 degrees, A at 45 degrees
ORIRESET(, 30)
;C at $MC_TRAFO5_ROT_AX_OFFSET_1/2[0], A at 30 degrees
ORIRESET( )
;C at $MC_TRAFO5_ROT_AX_OFFSET_1/2[0],
;A at $MC_TRAFO5_ROT_AX_OFFSET_1/2[1]
2. Example of machine kinematics CAC (channel axis names C, A, B)
ORIRESET(90, 45, 90)
;C at 90 degrees, A at 45 degrees, B at 90 degrees
ORIRESET( )
;C at $MC_TRAFO5_ROT_AX_OFFSET_1/2[0],
;A at $MC_TRAFO5_ROT_AX_OFFSET_1/2[1],
;B at $MC_TRAFO5_ROT_AX_OFFSET_1/2[2]
Job Planning
322
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Programming LEAD, TILT and THETA rotations
In respect of three- to five-axis transformation, tool orientation rotations are programmed with
the LEAD and TILT angles.
In respect of a transformation with third rotary axis, additional programming settings for C2
(rotations of the orientation vector) are permitted for both orientation with vector components
and with entry of the LEAD, TILT angles.
With an additional third rotary axis, the rotation of the tool about itself can be programmed
with the THETA rotary angle.
6.2.4
Programming of the tool orientation (A..., B..., C..., LEAD, TILT)
Function
The following options are available when programming tool orientation:
1. Direct programming the motion of rotary axes. The change of orientation always occurs in
the basic or machine coordinate system. The orientation axes are traversed as
synchronized axes.
2. Programming in Euler or RPY angles in accordance with angle definition using A2, B2,
C2.
3. Programming of the direction vector using A3, B3, C3 The direction vector points from the
tool tip toward the tool adapter.
4. Programming the surface normal vector at the start of the block with A4, B4, C4 and at
the end of the block with A5, B5, C5 (face milling).
5. Programming using lead angle LEAD and tilt angle TILT.
6. Programming of rotary axis of taper as normalized vector using A6, B6, C6 or of
intermediate orientation on the peripheral surface of a taper using A7, B7, C7,
see "Orientation programming along the peripheral surface of a taper (ORIPLANE,
ORICONxx)".
7. Programming of reorientation, direction and path length of tool during retraction
movement using A8, B8, C8,
see "Smoothing the orientation characteristic (ORIPATHS A8=, B8=, C8=)"
Note
In all cases, orientation programming is only permissible if an orientation transformation is
active.
Advantage: These programs can be transferred to any machine kinematics.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
323
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Definition of tool orientation via G code
Note
Machine manufacturer
Machine data can be used to switch between Euler or RPY angles. If the machine data is set
accordingly, changeovers are possible both depending on the active G code of group 50 and
irrespective of this. The following setting options can be selected:
1. If both machine data for defining the orientation axes and defining the orientation angle
are set to zero via G code:
The angles programmed using A2, B2, C2 are dependent on machine data. The angle
definition of orientation programming is either interpreted as Euler or RPY angles.
2. If the machine data for defining the orientation axes is set to one via G code, the
changeover is
dependent on the active G code of group 50:
The angles programmed using A2, B2, C2 are interpreted in accordance with the active
G codes ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2, ORIAXPOS and ORIPY2 . The values
programmed with the orientation axes are also interpreted as orientation angles in
accordance with the active G code of group 50.
3. If the machine data for defining the orientation angle is set to one via G code and the
machine data for defining the orientation axes is set to zero via G code, the changeover
is
not dependent on the active G code of group 50:
The angles programmed using A2, B2, C2 are interpreted in accordance with one of the
active G codes ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2 ORIAXPOS and ORIPY2 . The
values programmed with the orientation axes are always interpreted as round axis
positions irrespective of the active G code of group 50.
Programming
G1 X Y Z A B C
Programming of rotary axis motion
G1 X Y Z A2= B2= C2=
Programming in Euler angles
G1 X Y Z A3== B3== C3==
Programming of directional vector
G1 X Y Z A4== B4== C4==
Programming the surface normal vector at block
start
G1 X Y Z A5== B5== C5==
Programming the surface normal vector at end of
block
LEAD=
Lead angle for programming tool orientation
TILT=
Tilt angle for programming tool orientation
Job Planning
324
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Parameters
G
Details of the rotary axis motion
X Y Z
Details of the linear axes
A B C
Details of the machine axis positions of the
rotary axes
A2 B2 C2
Angle programming (Euler or RPY angle) of
virtual axes or orientation axes
A3 B3 C3
Details of the direction vector components
A4 B4 C4
Details, for example, for the face milling,
the component of the surface normal vector at
block start
A5 B5 C5
Details, for example, for the face milling,
the component of the surface normal vector at
block end
LEAD
Angle relative to the surface normal vector in
the plane put up by the path tangent and the
surface normal vector
TILT
Angle in the plane, perpendicular to the path
tangent relative to the surface normal vector
Example: Comparison without and with 5-axis transformation
ZLWKRXW D[LV 7UDQVIRUPDWLRQ
ZLWK D[LV 7UDQVIRUPDWLRQ
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
325
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Description
5-axis programs are usually generated by CAD/CAM systems and not entered at the control.
So the following explanations are directed mainly at programmers of postprocessors.
The type of orientation programming is defined in G code group 50:
ORIEULER via Euler angle
ORIRPY via RPY angle (rotation sequence ZYX)
ORIVIRT1 via virtual orientation axes (definition 1)
ORIVIRT2 via virtual orientation axes (definition 2)
ORIAXPOS via virtual orientation axes with round axis positions
ORIPY2 via RPY angle (rotation sequence XYZ)
Machine manufacturer
The machine manufacturer can use machine data to define various variants. Please refer to
the machine manufacturer's instructions.
Programming in Euler angles ORIEULER
The values programmed during orientation programming with A2, B2, C2 are interpreted as
Euler angles (in degrees).
The orientation vector results from turning a vector in the Z direction firstly with A2 around the
Z axis, then with B2 around the new X axis and lastly with C2 around the new Z axis.
=
=
=
<
=
;
<
<
;
<
ZLWK $
r
WXUQHG DW WKH
= D[LV
;
,QLWLDO VHWWLQJ
;
=
=
<
;
%
<
ZLWK %
r
DOVR WXUQHG DW WKH
; D[LV
;
<
In this case the value of C2 (rotation around the new Z axis) is meaningless and does not
have to be programmed.
Job Planning
326
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Programming in RPY angles ORIRPY
The values programmed with A2, B2, C2 for orientation programming are interpreted as an
RPY angle (in degrees).
Note
In contrast to Euler angle programming, all three values here have an effect on the
orientation vector.
Machine manufacturer
When defining angles with orientation angles via RPY angle, for the orientation axes
$MC_ORI_DEF_WITH_G_CODE = 0
The orientation vector results from turning a vector in the Z direction firstly with C2 around
the Z axis, then with B2 around the new Y axis and lastly with A2 around the new X axis.
=
=
=
<
=
;
;
<
%
&
<
; ,QLWLDOVHWWLQJ
;
<
=
=
<
ZLWK &
r
WXUQHG DW WKH
= D[LV ZLWK
;
%
r
$
DOVR WXUQHG DW
ZLWK $
r
WKH < D[LV
DOVR WXUQHG DW
WKH ; D[LV
;
<
By defining the orientation axes via G code, if the machine data
$MC_ORI_DEF_WITH_G_CODE = 1, then:
The orientation vector results from turning a vector in the Z direction firstly with A2 around
the Z axis, then with B2 around the new X axis and lastly with C2 around the new Z axis.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
327
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Programming of directional vector
The components of the direction vector are programmed with A3, B3, C3. The vector points
towards the tool adapter; the length of the vector is of no significance.
Vector components that have not been programmed are set equal to zero.
=
'LUHFWLRQ YHFWRU
&
;
<
%
$
Programming the tool orientation with LEAD= and TILT=
The resultant tool orientation is determined from:
● Path tangent
● Surface normal vector
at the start of the block A4, B4, C4 and at the end of the block A5, B6, C5
● Lead angle LEAD
in the plane defined by the path tangent and surface normal vector
● Tilt angle TILT at the end of the block
vertical to the path tangent and relative to the surface normal vector
Behavior at inside corners (for 3D-tool compensation)
If the block is shortened at an inside corner, the resulting tool orientation is also achieved at
the end of the block.
Job Planning
328
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Definition of tool orientation with LEAD= and TILT=
=
/($'
<
;
7,/7
6.2.5
Face milling (3D-milling A4, B4, C4, A5, B5, C5)
Function
Face milling is used to machine curved surfaces of any kind.
$
%
$
&
%
&
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
329
Transformations
6.2 Three, four and five axis transformation (TRAORI)
For this type of 3D milling, you require line-by-line definition of 3D paths on the workpiece
surface.
The tool shape and dimensions are taken into account in the calculations, which are
normally performed in CAM. The fully calculated NC blocks are then read into the control via
postprocessors.
Programming the path curvature
Surface description
The path curvature is described by surface normal vectors with the following components:
A4, B4, C4 Start vector at block start
A5, B5, C5 End vector at block end
If a block only contains the start vector, the surface normal vector will remain constant
throughout the block. If a block only contains the end vector, interpolation will run from the
end value of the previous block via large-radius circular interpolation to the programmed end
value.
If both start and end vectors are programmed, interpolation runs between the two directions,
also via large-radius circular interpolation. This allows continuously smooth paths to be
created.
Regardless of the active G17 to G19 level, in the initial setting, surface normal vectors point
in the Z direction.
The length of a vector is meaningless.
Vector components that have not been programmed are set to zero.
With active ORIWKS (see "Reference of the orientation axes (ORIWKS, ORIMKS)") , the
surface normal vectors relate to the active frame and rotate when the frame rotates.
Machine manufacturer
The surface normal vector must be perpendicular to the path tangent, within a limit value set
via machine data, otherwise an alarm will be output.
Job Planning
330
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.2 Three, four and five axis transformation (TRAORI)
6.2.6
Orientation axis reference (ORIWKS, ORIMKS)
Function
For orientation programming in the workpiece coordinate system using
● Euler or RPY angle or
● orientation vector
the course of the rotary motion can be set using ORIMKS/ORIWKS.
Note
Machine manufacturer
The type of interpolation for the orientation is specified with machine data:
MD21104 $MC_ORI_IPO_WITH_G_CODE
= FALSE: The reference is provided by the G functions ORIWKS and ORIMKS.
= TRUE: The reference is provided by the G functions in the 51st group (ORIAXES,
ORIVECT, ORIPLANE, etc.).
Syntax
ORIMKS=...
ORIWKS=...
Significance
ORIMKS
Rotation in the machine coordinate system
ORIWKS
Rotation in the workpiece coordinate system
Note
ORIWKS is the basic setting. In the case of a 5-axis program, if it is not immediately obvious
on which machine it is to run, ORIWKS must always be selected. Which movements the
machine actually executes depend on the machine kinematics.
ORIMKS can be used to program actual machine movements (to avoid collisions with devices
or similar, for example).
Description
With ORIMKS, the movement executed by the tool depends on the machine kinematics. In the
case of a change in orientation of a tool tip at a fixed point in space, linear interpolation takes
place between the rotary axis positions.
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
331
Transformations
6.2 Three, four and five axis transformation (TRAORI)
With ORIWKS, the movement executed by the tool does not depend on the machine
kinematics. With an orientation change with a fixed tool tip, the tool moves in the plane set
up by the start and end vectors.
3ODQH WKDW ERWK
YHFWRUV FRYHUV
9HFWRU DW
EORFN VWDUW
9HFWRU DW EORFN HQG
Singular positions
Note
ORIWKS
Orientation movements in the singular setting area of the 5-axis machine require vast
movements of the machine axes. (For example, with a rotary swivel head with C as the
rotary axis and A as the swivel axis, all positions with A = 0 are singular.)
Machine manufacturer
To avoid overloading the machine axes, the velocity control vastly reduces the tool path
velocity near the singular positions.
With machine data
$MC_TRAFO5_NON_POLE_LIMIT
$MC_TRAFO5_POLE_LIMIT
the transformation can be parameterized in such a way that orientation movements close to
the pole are put through the pole and rapid machining is possible.
Singular positions are handled only with the MD $MC_TRAFO5_POLE_LIMIT.
References:
/FB3/ Function Manual, Special Functions; 3- to 5-Axis Transformation (F2),
"Singular Points and How to Deal with Them" section.
Job Planning
332
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.2 Three, four and five axis transformation (TRAORI)
6.2.7
Programming orientation axes (ORIAXES, ORIVECT, ORIEULER, ORIRPY,
ORIRPY2, ORIVIRT1, ORIVIRT2)
Function
The orientation axes function describes the orientation of the tool in space and is achieved
by programming the offset for the rotary axes. An additional, third degree of freedom can be
achieved by also rotating the tool about itself. In this case, the tool is oriented in space via a
third rotary axis for which 6-axis transformation is required. The rotation of the tool about
itself is defined using the THETA angle of rotation in accordance with the type of
interpolation of the rotation vectors (see "Rotations of the tool orientation (ORIROTA/TR/TT,
ORIROTC, THETA)").
Programming
Axis identifiers A2, B2 and C2 are used to program the orientation axes.
N... ORIAXES or ORIVECT
Linear or large-radius circular
N... G1 X Y Z A B C
interpolation
or
N... ORIPLANE
or
or
orientation interpolation of the plane
N... ORIEULER or ORIRPY/ORIRPY2
or
N... G1 X Y Z A2= B2= C2=
Orientation angle Euler/RPY angle
or
Angle programming of virtual axes
N... ORIVIRT1 or ORIVIRT2
N... G1 X Y Z A3= B3= C3=
or
definition 1 or 2 direction vector
programming of virtual orientation axes
Other rotary axis offsets of the orientation axes can be programmed for orientation changes
along the peripheral surface of a taper in space; see "Orientation programming along the
peripheral surface of a taper (ORIPLANE, ORICONxx)".
Parameter
ORIAXES
Linear interpolation of machine or orientation axes
ORIVECT
Large-radius circular interpolation (identical to
ORIPLANE)
ORIMKS
Rotation in the machine coordinate system
ORIWKS
Rotation in the workpiece coordinate system
Description, see the Rotations of the tool orientation
section
A= B= C=
Programming the machine axis position
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
333
Transformations
6.2 Three, four and five axis transformation (TRAORI)
ORIEULER
Orientation programming via Euler angle
ORIRPY
Orientation programming via RPY angle. The rotation
sequence is XYZ and:
A2 is the rotation angle around X
B2 is the rotation angle around Y
C2 is the rotation angle around Z
ORIRPY2
Orientation programming via RPY angle. The rotation
sequence is ZYX and:
A2 is the rotation angle around Z
B2 is the rotation angle around Y
C2 is the rotation angle around X
A2= B2= C2=
Angle programming of virtual axes
ORIVIRT1
Orientation programming using virtual orientation axes
ORIVIRT2
(definition 1), definition according to MD
$MC_ORIAX_TURN_TAB_1
(definition 2), definition according to MD
$MC_ORIAX_TURN_TAB_2
A3= B3= C3=
Direction vector programming of direction axis
Description
Machine manufacturer
MD $MC_ORI_DEF_WITH_G_CODE is used to specify how the programmed angles A2, B2,
C2 are defined:
The definition is according to MD $MC_ORIENTATION_IS_EULER (standard) or the
definition is according to G group 50 (ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2).
MD $MC_ORI_IPO_WITH_G_CODE is used to define which interpolation mode type is
active: ORIWKS/ORIMKS or ORIAXES/ORIVECT.
JOG mode
Interpolation for orientation angles in this mode of operation is always linear. During
continuous and incremental traversal via the traversing keys, only one orientation axis can
be traversed. Orientation axes can be traversed simultaneously using the handwheels.
For manual travel of the orientation axes, the channel-specific feed override switch or the
rapid traverse override switch work at rapid traverse override.
A separate velocity setting is possible with the following machine data:
$MC_JOG_VELO_RAPID_GEO
$MC_JOG_VELO_GEO
$MC_JOG_VELO_RAPID_ORI
$MC_JOG_VELO_ORI
Job Planning
334
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Note
SINUMERIK 840D with "handling transformation package"
Using the "Cartesian manual traverse" function, in the JOG mode, the translation of
geometry axes can be set separately from one another in the reference systems MCS, WCS
and TCS.
References:
/FB2/ Description of Functions Extended Functions; Kinematic Transformation (M1)
6.2.8
Orientation programming along the peripheral surface of a taper (ORIPLANE,
ORICONCW, ORICONCCW, ORICONTO, ORICONIO)
Function
With extended orientation it is possible to execute a change in orientation along the
peripheral surface of a taper in space. The orientation vector is interpolated on the peripheral
surface of a taper using the ORICONxx modal command. The end orientation can be
programmed with ORIPLANE for interpolation on a plane. The start orientation is usually
defined by the previous blocks.
'LUHFWLRQ D[LV
$QJOH RI
URWDWLRQ
3+,
25,&21&&:
FRXQWHU FORFNZLVH
25,&21&:
(QG RULHQWDWLRQ
FORFNZLVH
,QWHUPHGLDWH RULHQWDWLRQ
6WDUW RULHQWDWLRQ
GHWHUPLQHG E\
2SHQLQJ DQJOH 36,
SUHYLRXV EORFN
RI WDSHU
:RUNSLHFH
VXUIDFH
Job Planning
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
335
Transformations
6.2 Three, four and five axis transformation (TRAORI)
Programming
The end orientation is either defined by specifying the angle programming in the Euler or
RPY angle using A2, B2, C2 or by programming the rotary axis positions using A, B, C.
Further programming details are needed for orientation axes along the peripheral surface of
a taper:
● Rotary axis of taper as a vector with A6, B6, C6
● Opening angle PSI with identifier NUT
● Intermediate orientation outside of the taper with A7, B7, C7
Note
Programming direction vector A6, B6, C6 for the rotary axis of the taper
The programming of an end orientation is not absolutely necessary. If no end orientation
is specified, a full outside taper with 360 degrees is interpolated.
Programming the opening angle of the taper with NUT=angle
An end orientation must be specified.
A complete outside taper with 360 degrees cannot be interpolated in this way.
Programming the intermediate orientation A7, B7, C7 on the outside of the taper
An end orientation must be specified. The change in orientation and the direction of
rotation is defined uniquely by the three vectors Start orientation, End orientation and
Intermediate orientation. All three vectors must be different. If the programmed
intermediate orientation is parallel to the start or end orientation, a linear large-radius
circular interpolation of the orientation is executed in the plane that is defined by the start
and end vector.
Extended orientation interpolation on the peripheral surface of a taper
N... ORICONCW or ORICONCCW
Interpolation on the outside of a taper with direction
N... A6= B6= C6= A3= B3= C3=
vector in the clockwise/counterclockwise
or
direction of the taper and end orientation or
N... ORICONTO
N... G1 X Y Z A6= B6= C6=
tangential transition and
or
specification of end orientation
N... ORICONIO
or
N... G1 X Y Z A7= B7= C7=
specification of end orientation and
N... PO[PHI]=(a2, a3, a4, a5)
N... PO[PSI]=(b2, b3, b4, b5) intermediate orientation on the outside of the taper with
polynomials for angle of rotation and
polynomials for opening angle
Job Planning
336
Programming Manual, 03/2010, 6FC5398-2BP20-1BA0
|