840Dsl Basic FCT Man 1219 en-US
840Dsl Basic FCT Man 1219 en-US
840Dsl Basic FCT Man 1219 en-US
Fundamental safety
instructions 1
Mode group, channel,
SINUMERIK program operation, reset 2
response
Cross-channel axis
interchange 7
Preprocessing 8
Emergency stop 9
Various NC/PLC interface
signals and functions 10
Auxiliary function outputs to
PLC 11
12/2019 Appendix A
6FC5397-2GP40-0BA0
Legal information
Warning notice system
This manual contains notices you have to observe in order to ensure your personal safety, as well as to prevent
damage to property. The notices referring to your personal safety are highlighted in the manual by a safety alert
symbol, notices referring only to property damage have no safety alert symbol. These notices shown below are
graded according to the degree of danger.
DANGER
indicates that death or severe personal injury will result if proper precautions are not taken.
WARNING
indicates that death or severe personal injury may result if proper precautions are not taken.
CAUTION
indicates that minor personal injury can result if proper precautions are not taken.
NOTICE
indicates that property damage can result if proper precautions are not taken.
If more than one degree of danger is present, the warning notice representing the highest degree of danger will be
used. A notice warning of injury to persons with a safety alert symbol may also include a warning relating to property
damage.
Qualified Personnel
The product/system described in this documentation may be operated only by personnel qualified for the specific
task in accordance with the relevant documentation, in particular its warning notices and safety instructions. Qualified
personnel are those who, based on their training and experience, are capable of identifying risks and avoiding
potential hazards when working with these products/systems.
Proper use of Siemens products
Note the following:
WARNING
Siemens products may only be used for the applications described in the catalog and in the relevant technical
documentation. If products and components from other manufacturers are used, these must be recommended or
approved by Siemens. Proper transport, storage, installation, assembly, commissioning, operation and
maintenance are required to ensure that the products operate safely and without any problems. The permissible
ambient conditions must be complied with. The information in the relevant documentation must be observed.
Trademarks
All names identified by ® are registered trademarks of Siemens AG. The remaining trademarks in this publication
may be trademarks whose use by third parties for their own purposes could violate the rights of the owner.
Disclaimer of Liability
We have reviewed the contents of this publication to ensure consistency with the hardware and software described.
Since variance cannot be precluded entirely, we cannot guarantee full consistency. However, the information in this
publication is reviewed regularly and any necessary corrections are included in subsequent editions.
SINUMERIK documentation
The SINUMERIK documentation is organized into the following categories:
● General documentation/catalogs
● User documentation
● Manufacturer/service documentation
Additional information
You can find information on the following topics at the following address (https://
support.industry.siemens.com/cs/de/en/view/108464614):
● Ordering documentation/overview of documentation
● Additional links to download documents
● Using documentation online (find and search in manuals/information)
If you have any questions regarding the technical documentation (e.g. suggestions,
corrections), please send an e-mail to the following address
(mailto:docu.motioncontrol@siemens.com).
mySupport/Documentation
At the following address (https://support.industry.siemens.com/My/ww/en/documentation),
you can find information on how to create your own individual documentation based on
Siemens' content, and adapt it for your own machine documentation.
Training
At the following address (http://www.siemens.com/sitrain), you can find information about
SITRAIN (Siemens training on products, systems and solutions for automation and drives).
FAQs
You can find Frequently Asked Questions in the Service&Support pages under Product
Support (https://support.industry.siemens.com/cs/de/en/ps/faq).
SINUMERIK
You can find information about SINUMERIK at the following address (http://www.siemens.com/
sinumerik).
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 3
Preface
Target group
This publication is intended for:
● Project engineers
● Technologists (from machine manufacturers)
● System startup engineers (Systems/Machines)
● Programmers
Benefits
The function manual describes the functions so that the target group knows them and can
select them. It provides the target group with the information required to implement the
functions.
Standard version
This documentation only describes the functionality of the standard version. Extensions or
changes made by the machine tool manufacturer are documented by the machine tool
manufacturer.
Other functions not described in this documentation might be executable in the control. This
does not, however, represent an obligation to supply such functions with a new control or when
servicing.
Further, for the sake of simplicity, this documentation does not contain all detailed information
about all types of the product and cannot cover every conceivable case of installation, operation
or maintenance.
Technical Support
Country-specific telephone numbers for technical support are provided on the Internet at the
following address (https://support.industry.siemens.com/sc/ww/en/sc/2090) in the "Contact"
area.
If you have any technical questions, use the online form in the "Support Request" area.
Basic functions
4 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Preface
Structure
This Function Manual is structured as follows:
● Inner title (page 3) with the title of the Function Manual, the SINUMERIK controls as well as
the software and the version for which this version of the Function Manual is applicable and
the overview of the individual functional descriptions.
● Descriptions of functions
● Appendix with:
– List of abbreviations
– Documentation overview
Note
For detailed descriptions of data and alarms see:
● For machine and setting data:
Detailed machine data description
● For NC/PLC interface signals:
NC Variables and Interface Signals List Manual
● For alarms:
Diagnostics Manual
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 5
Preface
Quantity structure
Explanations concerning the NC/PLC interface are based on the absolute maximum number of
the following components:
● Mode groups (DB11)
● Channels (DB21, etc.)
● Axes/spindles (DB31, etc.)
Data types
The control provides the following data types that can be used for programming in part
programs:
Arrays
Arrays can only be formed from similar elementary data types. Up to 3-dimensional arrays are
possible.
Example: DEF INT ARRAY[2, 3, 4]
Number systems
The following number systems are available:
● Decimal: DEF INT number = 1234 or DEF REAL number = 1234.56
● Hexadecimal: DEF INT number = 'H123ABC'
● Binary: DEF INT number = 'B10001010010'
Basic functions
6 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Preface
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 7
Preface
Basic functions
8 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Table of contents
Preface .........................................................................................................................................................3
1 Fundamental safety instructions.................................................................................................................25
1.1 General safety instructions.....................................................................................................25
1.2 Warranty and liability for application examples ......................................................................25
1.3 Industrial security ...................................................................................................................26
2 Mode group, channel, program operation, reset response.........................................................................29
2.1 Product brief...........................................................................................................................29
2.2 Mode group ............................................................................................................................31
2.2.1 Mode group stop ....................................................................................................................34
2.2.2 Mode group reset ...................................................................................................................34
2.3 Mode types and mode type change .......................................................................................35
2.3.1 Monitoring functions and interlocks of the individual modes ..................................................40
2.3.2 Mode change .........................................................................................................................40
2.4 Channel..................................................................................................................................41
2.4.1 Properties...............................................................................................................................41
2.4.2 Start inhibit, global and channel-specific................................................................................44
2.5 Program operation .................................................................................................................45
2.5.1 Program operation mode .......................................................................................................45
2.5.2 Initial settings .........................................................................................................................46
2.5.2.1 Machine data..........................................................................................................................46
2.5.2.2 Programming..........................................................................................................................47
2.5.3 Selection and start of an NC program....................................................................................50
2.5.4 Program interruption ..............................................................................................................52
2.5.5 Channel reset.........................................................................................................................53
2.5.6 Program status.......................................................................................................................54
2.5.7 Channel status .......................................................................................................................55
2.5.8 Responses to operator and program actions .........................................................................56
2.5.9 Example of a timing diagram for a program run.....................................................................57
2.5.10 Program jumps.......................................................................................................................58
2.5.10.1 Return jump to the start of the program (GOTOS).................................................................58
2.5.11 Program section repetitions ...................................................................................................60
2.5.11.1 Programming..........................................................................................................................60
2.5.12 Event-driven program call (PROG_EVENT) ..........................................................................66
2.5.12.1 Function .................................................................................................................................66
2.5.12.2 Parameterization ....................................................................................................................70
2.5.12.3 Programming..........................................................................................................................74
2.5.12.4 Boundary conditions...............................................................................................................75
2.5.12.5 Examples ...............................................................................................................................75
2.5.13 Influencing the stop events by stop delay areas ....................................................................77
2.5.13.1 Function .................................................................................................................................77
2.5.13.2 Parameterization ....................................................................................................................79
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 9
Table of contents
2.5.13.3 Programming..........................................................................................................................80
2.5.13.4 Supplementary conditions......................................................................................................82
2.5.14 Adapting the size of the interpolation buffer...........................................................................83
2.5.15 Basic block display (only for ShopMill/ShopTurn) ..................................................................85
2.5.15.1 Function .................................................................................................................................85
2.5.15.2 Parameterization ....................................................................................................................85
2.5.15.3 Structure for a DIN block........................................................................................................88
2.6 Program control......................................................................................................................91
2.6.1 Overview ................................................................................................................................91
2.6.2 Program test...........................................................................................................................93
2.6.3 Dry run feedrate .....................................................................................................................96
2.6.4 Reduced rapid traverse..........................................................................................................98
2.6.5 Programmed stop...................................................................................................................99
2.6.6 Handwheel offset .................................................................................................................100
2.6.7 Skipping program blocks......................................................................................................101
2.6.8 Single block..........................................................................................................................103
2.6.8.1 Function ...............................................................................................................................103
2.6.8.2 Selecting and activating .......................................................................................................104
2.6.8.3 Parameterization ..................................................................................................................105
2.6.8.4 Programming........................................................................................................................106
2.6.8.5 Constraints ...........................................................................................................................110
2.6.9 Mode group-specific single block type A / B ........................................................................111
2.6.10 Configured stop....................................................................................................................112
2.6.10.1 Function ...............................................................................................................................112
2.6.10.2 Selecting and activating .......................................................................................................113
2.6.10.3 Parameter assignment .........................................................................................................115
2.6.10.4 Programming........................................................................................................................116
2.6.10.5 Constraints ...........................................................................................................................116
2.6.10.6 Examples .............................................................................................................................117
2.6.11 Status ...................................................................................................................................121
2.7 Block search, types 1, 2, and 4: ...........................................................................................121
2.7.1 Description of the function....................................................................................................123
2.7.2 Block search in connection with other NCK functions..........................................................125
2.7.2.1 ASUB after and during block search ....................................................................................125
2.7.2.2 PLC actions after block search ............................................................................................126
2.7.2.3 Spindle functions after block search ....................................................................................127
2.7.2.4 Reading system variables for a block search.......................................................................128
2.7.3 Automatic start of an ASUB after a block search .................................................................128
2.7.4 Cascaded block search........................................................................................................130
2.7.5 Examples for block search with calculation..........................................................................131
2.7.6 Constraints ...........................................................................................................................134
2.8 Block search Type 5 (SERUPRO) .......................................................................................135
2.8.1 Description of the function....................................................................................................135
2.8.2 Repositioning to the contour (REPOS) ................................................................................138
2.8.2.1 Repositioning with controlled REPOS..................................................................................146
2.8.3 Accelerate block search .......................................................................................................147
2.8.4 SERUPRO ASUB.................................................................................................................149
2.8.5 Selfacting SERUPRO...........................................................................................................152
2.8.6 Locking a program section for "Continue machining at the contour" ...................................153
2.8.7 Behavior during POWER ON, mode change and RESET ...................................................156
2.8.8 Supplementary conditions....................................................................................................157
Basic functions
10 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Table of contents
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 11
Table of contents
Basic functions
12 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Table of contents
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 13
Table of contents
Basic functions
14 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Table of contents
3.5.12.6 REPOS.................................................................................................................................395
3.6 Workpiece-related actual-value system ...............................................................................396
3.6.1 Overview ..............................................................................................................................396
3.6.2 Use of the workpiece-related actual value system...............................................................396
3.6.3 Special reactions..................................................................................................................398
3.7 Boundary conditions.............................................................................................................400
3.8 Examples .............................................................................................................................400
3.8.1 Axes .....................................................................................................................................400
3.8.2 Coordinate systems .............................................................................................................402
3.8.3 Frames ...............................................................................................................................404
3.9 Data lists ..............................................................................................................................406
3.9.1 Machine data........................................................................................................................406
3.9.1.1 Displaying machine data ......................................................................................................406
3.9.1.2 NC-specific machine data ....................................................................................................406
3.9.1.3 Channel-specific machine data ............................................................................................407
3.9.1.4 Axis/spindlespecific machine data .......................................................................................408
3.9.2 Setting data ..........................................................................................................................408
3.9.2.1 Channelspecific setting data ................................................................................................408
3.9.3 System variables..................................................................................................................408
4 Kinematic chain ........................................................................................................................................411
4.1 Function description .............................................................................................................411
4.1.1 Characteristics .....................................................................................................................411
4.2 Commissioning.....................................................................................................................415
4.2.1 General ................................................................................................................................415
4.2.1.1 Overview ..............................................................................................................................415
4.2.1.2 Structure of the system variables.........................................................................................416
4.2.2 Machine data........................................................................................................................417
4.2.2.1 Maximum number of elements.............................................................................................417
4.2.2.2 Root element........................................................................................................................417
4.2.2.3 Maximum number of switches..............................................................................................417
4.2.3 System variables..................................................................................................................418
4.2.3.1 Overview ..............................................................................................................................418
4.2.3.2 $NK_NAME ..........................................................................................................................419
4.2.3.3 $NK_NEXT...........................................................................................................................420
4.2.3.4 $NK_PARALLEL ..................................................................................................................421
4.2.3.5 $NK_TYPE ...........................................................................................................................422
4.2.3.6 Type-dependent variables for $NK_TYPE = "AXIS_LIN" .....................................................423
4.2.3.7 Type-dependent variables for $NK_TYPE = "AXIS_ROT" ...................................................426
4.2.3.8 Type-dependent variables for $NK_TYPE = "ROT_CONST"...............................................429
4.2.3.9 Type-dependent variables for $NK_TYPE = "OFFSET" ......................................................431
4.2.3.10 Type-dependent variables for $NK_TYPE = "SWITCH" ......................................................433
4.2.3.11 $NK_SWITCH ......................................................................................................................435
4.3 Programming........................................................................................................................436
4.3.1 Deletion of components (DELOBJ) ......................................................................................436
4.3.2 Index determination by means of names (NAMETOINT).....................................................439
4.4 Example ...............................................................................................................................440
4.4.1 Specifications .......................................................................................................................440
4.4.2 Part program of the machine model.....................................................................................442
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 15
Table of contents
Basic functions
16 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Table of contents
5.7.3 Programming........................................................................................................................516
5.7.3.1 Activating rapid traverse (G0) ..............................................................................................516
5.7.3.2 Switch on/off linear interpolation for rapid traverse movements (RTLION, RTLIOF) ...........518
5.7.3.3 Adapt tolerances for rapid traverse motion (STOLF, CTOLG0, OTOLG0) ..........................520
5.8 RESET behavior ..................................................................................................................523
5.9 Supplementary conditions....................................................................................................524
5.9.1 Block change and positioning axes......................................................................................524
5.9.2 Block change delay ..............................................................................................................524
5.10 Data lists ..............................................................................................................................525
5.10.1 Machine data........................................................................................................................525
5.10.1.1 General machine data..........................................................................................................525
5.10.1.2 Channelspecific machine data .............................................................................................525
5.10.1.3 Axis/spindlespecific machine data .......................................................................................526
5.10.2 Setting data ..........................................................................................................................527
5.10.2.1 Channelspecific setting data ................................................................................................527
6 Cross-channel program coordination and channel-by-channel running-in ...............................................529
6.1 Cross-channel program coordination ...................................................................................529
6.1.1 Cross-channel program coordination (INIT, START, WAITM, WAITMC, WAITE, SETM,
CLEARM) .............................................................................................................................529
6.1.2 Conditional wait (WAITMC) in the continuous path mode....................................................534
6.2 Running-in channel-by-channel ...........................................................................................538
6.2.1 Function ...............................................................................................................................538
6.2.2 Sequence .............................................................................................................................539
6.2.3 Single-channel view .............................................................................................................539
6.2.4 Multi-channel view................................................................................................................541
6.2.5 System variables..................................................................................................................544
6.2.6 Supplementary conditions....................................................................................................544
6.2.7 Examples .............................................................................................................................545
6.3 Supplementary conditions....................................................................................................546
6.3.1 MDI mode: Path control mode and WAITMC.......................................................................546
6.3.2 Non-synchronous start of traversing motion after WAIT commands....................................547
7 Cross-channel axis interchange ...............................................................................................................549
7.1 Overview ..............................................................................................................................549
7.2 Commissioning.....................................................................................................................549
7.3 Programming: Releasing an axis (RELEASE) .....................................................................550
7.4 Programming: Fetching an axis (GET, GETD).....................................................................551
7.5 Automatic axis replacement .................................................................................................553
7.6 Axis replacement via PLC ....................................................................................................554
7.7 Axis interchange via axis container rotation.........................................................................557
7.8 Axis replacement with and without preprocessing stop .......................................................557
7.9 Axis exclusively controlled from the PLC .............................................................................559
7.10 Axis permanently assigned to the PLC ................................................................................560
7.11 Geometry axis in rotated frame and axis replacement.........................................................561
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 17
Table of contents
Basic functions
18 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Table of contents
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 19
Table of contents
Basic functions
20 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Table of contents
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 21
Table of contents
Basic functions
22 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Table of contents
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 23
Table of contents
Basic functions
24 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Fundamental safety instructions 1
1.1 General safety instructions
WARNING
Danger to life if the safety instructions and residual risks are not observed
If the safety instructions and residual risks in the associated hardware documentation are not
observed, accidents involving severe injuries or death can occur.
● Observe the safety instructions given in the hardware documentation.
● Consider the residual risks for the risk evaluation.
WARNING
Malfunctions of the machine as a result of incorrect or changed parameter settings
As a result of incorrect or changed parameterization, machines can malfunction, which in turn
can lead to injuries or death.
● Protect the parameterization against unauthorized access.
● Handle possible malfunctions by taking suitable measures, e.g. emergency stop or
emergency off.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 25
Fundamental safety instructions
1.3 Industrial security
Note
Industrial security
Siemens provides products and solutions with industrial security functions that support the
secure operation of plants, systems, machines and networks.
In order to protect plants, systems, machines and networks against cyber threats, it is
necessary to implement – and continuously maintain – a holistic, state-of-the-art industrial
security concept. Products and solutions from Siemens constitute one element of such a
concept.
Customers are responsible for preventing unauthorized access to their plants, systems,
machines and networks. Such systems, machines and components should only be connected
to an enterprise network or the Internet if and to the extent such a connection is necessary and
only when appropriate security measures (e.g. using firewalls and/or network segmentation)
are in place.
For additional information on industrial security measures that can be implemented, please
visit:
Industrial security (https://www.siemens.com/industrialsecurity)
Siemens’ products and solutions undergo continuous development to make them more secure.
Siemens strongly recommends that product updates are applied as soon as they become
available, and that only the latest product versions are used. Use of product versions that are
no longer supported, and failure to apply the latest updates may increase customer’s exposure
to cyber threats.
To stay informed about product updates, subscribe to the Siemens Industrial Security RSS
Feed at:
Industrial security (https://www.siemens.com/industrialsecurity)
Basic functions
26 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Fundamental safety instructions
1.3 Industrial security
WARNING
Unsafe operating states resulting from software manipulation
Software manipulations, e.g. viruses, Trojans, or worms, can cause unsafe operating states
in your system that may lead to death, serious injury, and property damage.
● Keep the software up to date.
● Incorporate the automation and drive components into a holistic, state-of-the-art industrial
security concept for the installation or machine.
● Make sure that you include all installed products into the holistic industrial security concept.
● Protect files stored on exchangeable storage media from malicious software by with
suitable protection measures, e.g. virus scanners.
● On completion of commissioning, check all security-related settings.
● Protect the drive against unauthorized changes by activating the "Know-how protection"
converter function.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 27
Fundamental safety instructions
1.3 Industrial security
Basic functions
28 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset
response 2
2.1 Product brief
Channel
An NC channel represents the smallest unit for manual traversing of axes and automatic
processing of part programs. At any one time, a channel will always be in a particular mode, e.g.
AUTOMATIC, MDI, or JOG. A channel can be regarded as an independent NC.
Mode group
A channel always belongs to a mode group. A mode group can also consist of several channels.
A mode group can be identified by the fact that all channels of the mode group are always in the
same mode at a particular time, e.g. AUTOMATIC, MDI, or JOG. This is ensured through the
NC internal mode logic.
A mode group can be regarded as an independent multi-channel NC.
Channel gaps
When channels are configured, placeholder channels can be provided in order to create as
uniform a configuration as possible over machines in a series. Only the channels that are
actually used are then activated.
Program test
The following options are available for testing or moving in position a new part program.
● Program execution without setpoint outputs
● Program execution in singleblock mode
● Program execution with dry run feedrate
● Skip part program blocks
● Block search with or without calculation.
Block search
The block search function enables the following program simulations for locating specific
program points:
● Type 1 without calculation at contour
● Type 2 with calculation at contour
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 29
Mode group, channel, program operation, reset response
2.1 Product brief
Program operation
The execution of part programs or part program blocks in AUTOMATIC or MDI modes is
referred to as program operation. During execution, the program sequence can be controlled
by PLC interface signals and commands.
For each channel, basic settings or channel-specific machine data can be specified. These
basic settings affect, for example, G groups and auxiliary function output.
A part program can be selected only if the relevant channel is in the Reset state.
Furthermore, all further program runs are handled by PLC interface signals and the
corresponding commands.
● Start of part program or part program block
● Part program calculation and program control
● RESET command, program status, and channel status
● Responses to operator and program actions
● Eventdriven program calls
Single block
With the single-block function, the user can execute a part program block-by-block.
There are 3 types of setting for the single-block function:
● SLB1: = IPO single block
● SLB2: = decode single block
● SLB3: = stop in cycle
Basic functions
30 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.2 Mode group
Mode group
In a mode group, multiple channels if an NC are grouped together to form one processing unit.
In principle, it is an independent "NC" within an NC.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 31
Mode group, channel, program operation, reset response
2.2 Mode group
A mode group is essentially characterized by the fact that all channels assigned to it are any
instant are always in the same mode (AUTOMATIC, JOG, MDI).
Note
This description continues on the assumption that there is one mode group and one channel.
Functions which require multiple channels (e.g. "Axis interchange" function), are described in:
Further information:
Further information can be found at Cross-channel program coordination and channel-by-
channel running-in (Page 529).
Note
A NC always comprises one mode group with one channel by default. It is not possible to
parameterize an NC without a channel.
Basic functions
32 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.2 Mode group
Activated channel
A channel with a mode group number ≠ 0 is an active channel.
Non-activated channel
A channel with a mode group number 0 is a non-activated channel. It does not take up any
memory internally in the control.
Channel gaps
A channel with a mode group number 0 is not only a non-activated channel. It is also a so-called
channel gap in the sequence of the channels.
The advantage of channel gaps is that the configuration data can be kept largely identical in a
series of similar machines. For the specific commissioning, only those channels are activated
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 33
Mode group, channel, program operation, reset response
2.2 Mode group
that are required for the machine in question. The unoccupied memory can be freely used as
additional user memory.
Function
The following NC/PLC interface signals are used to stop the traversing motions of the axes or
of the axes and spindles in all mode group channels and to interrupt part program execution:
DB11 DBX0.5 (mode group stop)
DB11 DBX0.6 (mode group stop, axes plus spindles)
Function
A mode group reset is requested via a mode group-specific NC/PLC interface signal:
DB11 DBX0.7 = 1 (mode group reset)
Effect
Effect on the channels of mode group:
● Part program preparation (preprocessing) is stopped.
● All axes and spindles are decelerated to zero speed according to their acceleration curves
without contour violation.
● Any auxiliary functions not yet output to the PLC are no longer output.
● The preprocessing pointers are set to the interruption point, and the block pointers are set
to the beginning of the appropriate part programs.
Basic functions
34 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.3 Mode types and mode type change
● All initial settings (e.g. the G commands) are set to the parameterized values.
● All alarms with "Channel reset" criterion are canceled.
If all the channels of the mode group are in reset state, then:
● All alarms with "Mode group reset" cancel criterion are canceled.
● The NC/PLC interface indicates completion of the mode group reset and the mode group's
readiness to operate:
DB11 DBX6.7 (all channels in the reset state)
DB11 DBX6.3 = 1 (mode group ready)
Unique mode
All channels of a mode group are always in the same mode:
● AUTOMATIC
● JOG
● MDI
If individual channels are assigned to different mode groups, a channel switchover activates the
corresponding mode group. This allows mode changes to be initiated via a channel
switchover.
Modes
The following modes are available:
● AUTOMATIC
Automatic execution of part programs:
– Part program test
– All channels of the mode group can be active at the same time.
● JOG in Automatic
JOG in AUTOMATIC is an extension of AUTOMATIC mode intended to simplify use. JOG
can be executed without leaving AUTOMATIC mode if boundary conditions so permit.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 35
Mode group, channel, program operation, reset response
2.3 Mode types and mode type change
● JOG
Manual traversing of axes via traversing keys of the machine control panel or via a
handwheel connected to the machine control panel:
– Channel-specific signals and interlocks are taken into account for motions executed by
means of an ASUP or via static synchronized actions.
– Couplings are taken into account.
– Every channel in the mode group can be active.
● MDI
Manual Data Automatic (the blocks are entered via the user interface)
– Restricted execution of part programs and part program sections.
– Part program test
– A maximum of 1 channel per mode group can be active (applies only to TEACH IN).
– Axes can only be traversed manually in subordinate machine functions such as JOG,
REPOS or TEACH IN.
Selection
The user can select the desired mode by means of softkeys on the user interface.
This selection (AUTOMATIC, MDI, or JOG) is forwarded to the PLC on the NC/PLC interface,
but is not activated:
DB11 DBX4.0, 0.1, 0.2 (strobe mode)
Basic functions
36 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.3 Mode types and mode type change
Display
The current mode of the mode group is displayed via the NC/PLC interface:
DB11 DBX6.0, 0.1, 0.2 (active mode)
Machine functions
Machine functions can be selected within a mode that also apply within the mode group:
● Machine functions within the JOG mode
– REF (reference point approach)
– REPOS (repositioning)
– JOG retract (retraction motion in the tool direction)
● Machine functions within the MDI mode
– REF (reference point approach)
– REPOS (repositioning)
– TEACHIN (teach-in of axis positions)
Channel states
● Channel reset
The machine is in its initial state. This is defined by the machine manufacturer's PLC
program, e.g. after POWER ON or at the end of the program.
● Channel active
A program has been started, and the program is being executed or a reference point
approach is in progress.
● Channel interrupted
The running program or reference point approach has been interrupted.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 37
Mode group, channel, program operation, reset response
2.3 Mode types and mode type change
JOG in Automatic
JOG in AUTOMATIC mode is permitted if the mode group is in "RESET" state and the axis is
jog-capable. "RESET" state for the mode group means:
● All channels are in the "RESET" state
● All programs are canceled
● DRF is not active in any channel
An axis is JOG-capable if it is not in any of the following states:
● PLC axis as concurrent positioning axis (request of the axis from the PLC)
● Command axis (the axis has been programmed by a synchronized action and the motion
has not been completed yet)
● Rotating spindle (spindle rotating despite RESET)
● An asynchronous reciprocating axis
Note: The "jog-capable" property is independent of the "JOG in AUTOMATIC" function.
Activation
The function "JOG in AUTOMATIC" can be activated with the machine data:
MD10735 $MN_JOG_MODE_MASK
● Before POWER ON, the following machine data must be set:
MD10735 $MN_JOG_MODE_MASK, bit 0 = 1
● The user switches to AUTO (PLC user interface DB11 DBX0.0 = 0→1 edge). "JOG in
AUTOMATIC" is then active if the NC previously had channel state "RESET" and program
state "Aborted" in all mode group channels. The axis in question must also be "jog-capable".
DRF must be deactivated (if not already deactivated).
● RESET is initiated or the running program is finished with M30/M2 in all mode group
channels that do not have channel state "Reset" and program state "Aborted".
● The relevant axis is automatically made "JOG-capable" (e.g. axis interchange: PLC → NC).
Note: In most applications, the axes to be traversed are "JOG-capable" and with the switchover
to AUTOMATIC, "JOG in AUTOMATIC" is also active.
Characteristics
● The +/– keys cause a JOG motion, and the mode group is switched internally to JOG. (i.e.
"Internal JOG").
● Moving the handwheels causes a JOG motion, and the mode group is switched internally to
JOG, unless DRF is active.
Basic functions
38 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.3 Mode types and mode type change
● An ongoing JOG motion is not complete until the end position of the increment has been
reached (if this has been set) or the motion has been aborted with "Delete distance-to-go".
In this way an increment can be stopped using Stop and then moved to the end using Start.
The NC remains in "Internal JOG" during this time. A partial increment is possible, but it must
not be interrupted using Stop. There is a mode in which releasing the travel key causes
interruption within an increment.
● Without any JOG motion, "JOG in AUTOMATIC" responds in the same way as "Automatic".
In particular, the Start key starts the selected part program and the appropriate HMI softkey
initiates a block search.
● If JOG motion is active, the NC is internally in JOG mode, and, thus, a block search request
is refused and a Start cannot start the part program. Start starts any remaining increment or
has no effect.
● While a mode group axis is being traversed in JOG mode, the mode group remains
internally in JOG mode.
Comment: This phase can begin with the JOG motion of an axis and end with the end of the
JOG motion of another axis.
● Axis interchange is not possible for an axis with active JOG movement (the axis might
change the mode group). The NC blocks any axis interchange attempt.
● The PLC user interface indicates "Automatic" mode:
– DB11 DBX6.0, 6.1, 6.2 = 1
– DB11 DBX7.0, 7.1, 7.2 = 0
● In "JOG in AUTOMATIC", the NC/PLC interface displays whether the mode group is in
"Mode group RESET".
– DB11 DBX6.4 (mode group has been reset, mode group 1)
– DB11 DBX26.4 (mode group has been reset, mode group 2)
– DB11 DBX46.4 (mode group has been reset, mode group 3)
● In "JOG in AUTOMATIC", the NC/PLC interface displays whether the NC has automatically
switched to "Internal JOG".
– DB11 DBX6.5 (NC internal JOG active, mode group 1)
– DB11 DBX26.5 (NC internal JOG active, mode group 2)
– DB11 DBX46.5 (NC internal JOG active, mode group 3)
Boundary conditions
"JOG in AUTOMATIC" can only switch internally to JOG if the mode group is in the "mode group
reset" status, i.e. it is not possible to jog immediately in the middle of a stopped program. The
user can jog in this situation by pressing the JOG key or the Reset key in all channels of the
mode group.
Selecting AUTOMATIC disables the INC keys and the user can/must press the INC keys again
to select the desired increment. If the NC switches to "Internal JOG", the selected increment is
retained.
If the user attempts to jog the geometry or orientation axes, the NC switches to "Internal JOG"
and the movement executed. Several axes can be physically moved in this way; they must all
be "JOG-capable".
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 39
Mode group, channel, program operation, reset response
2.3 Mode types and mode type change
Following the JOG motion, the NC deactivates "Internal JOG" again and selects AUTO mode
again. The internal mode change is delayed until the movement is complete. This avoids
unnecessary multiple switching operations, e.g. when using the handwheel. The PLC can only
rely on the "Internal JOG active" PLC signal.
The NC will then switch to "Internal JOG" even if the axis is not enabled.
Introduction
A mode change is requested and activated via the mode group interface (DB11). A mode group
will either be in AUTOMATIC, JOG, or MDI mode, i.e. it is not possible for several channels of
a mode group to take on different modes at the same time.
What mode transitions are possible and how these are executed can be configured in the PLC
program on a machine-specific basis.
Note
The mode is not changed internally until the signal "Channel status active" is no longer pending.
For error-free mode change however, all channels must assume a permissible operating mode.
Basic functions
40 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.4 Channel
Special cases
● Error during mode change
If a mode change request is rejected by the system, the error message "Operating mode
cannot be changed until after NC Stop" is output. This error message can be cleared without
changing the channel status.
● Mode change disable
A mode change can be prevented by means of interface signal:
DB11, DBX0.4 (mode change disable).
2.4 Channel
2.4.1 Properties
In a channel of the NC, the part programs defined by the user are executed.
The following properties characterize a channel:
● A channel is always assigned to a mode group.
● A channel can only execute one part program at any point in time.
● Machine, geometry, and special axes and spindles are assigned to a channel. Only these
can be traversed via the part program executed in the channel.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 41
Mode group, channel, program operation, reset response
2.4 Channel
Channel configuration
Channels can be filled with their own channel name via the following machine data:
MD20000 $MC_CHAN_NAME (channel name)
The various axes are then assigned to the available channels via machine data. There can be
only one setpoint-issuing channel at a time for an axis/spindle. The axis/spindle actual value
can be read by several channels at the same time. The axis/spindle must be registered with the
relevant channel.
The following channel-specific settings can also be made using machine data:
● Position of deletions or the basic program settings of G groups via the machine data:
MD20150 $MC_GCODE_RESET_VALUES (reset setting of the G groups)
● Auxiliary function groups regarding the combination and the output time
● Transformation conditions between machine axes and geometry axes
● Other settings for the execution of a part program
Basic functions
42 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.4 Channel
Link axes can be assigned permanently to one channel or dynamically (by means of an axis
container switch) to several channels of the local NCU or the other NCU. A link axis is a non-
local axis from the perspective of one of the channels belonging to the NCU to which the axis
is not physically connected.
The assignment between the link axes and a channel is implemented as follows:
● For permanent assignment using machine data:
Allow the direct logic machine axis image to show link axes.
● For dynamic assignment:
Allow the axis container slot machine data to show link axes.
You can find further information about link and container axes in:
Further Information:
"Basic Functions" Function Manual
Interface signals
The signals of the 1st channel are located in the NC/PLC interface in DB21, the signals from
channel 2 are located in DB22. The channel or channels can be monitored and controlled from
the PLC or NC.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 43
Mode group, channel, program operation, reset response
2.4 Channel
Further information
Function Manual Axes and Spindles; Positioning axes
Function
In ShopMill/ShopTurn, a program can only be started by default in the Machine area. The start
in the other areas, e.g. tools, is locked via a start lock (PI service).
The automated start lock sequences can be deactivated using an NC/PLC interface signal.
Machine data
The machine data is used to set an alarm if a start is requested with the start lock set:
MD11411 $MN_ENABLE_ALARM_MASK, bit 6
Basic functions
44 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
OPI variables
Variable Description
startLockState Status of the global start lock
chanStartLockState Status of the channel-specific start lock
startRejectCounter Start counter for a global start lock
startLockCounter Start counter for a channel-specific start lock
PI services
Definition
Program mode is present when in the AUTOMATIC or MDI operating modes, NC programs or
PC program blocks are processed.
Further information
An overview of the NC/PLC interface signals can be obtained in the Function Manual PLC;
Interface signals
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 45
Mode group, channel, program operation, reset response
2.5 Program operation
Basic settings can be programmed in channel-specific machine data for each channel. These
basic settings affect, for example, G groups and auxiliary function output.
G groups
An initial programming setting can be specified for each of the available G groups using
MD20150 $MC_GCODE_RESET_VALUES (reset state of G groups). This basic setting is
automatically active during program start or in Reset until it is deselected by a G command from
the same G group.
Via MD22510 $MC_GCODE_GROUPS_TO_PLC (G commands which are output to interface
NC-PLC after block change / RESET), the output of the G commands to the PLC interface can
be activated.
Further information
A list of G groups with the associated G commands can be found in the "NC Programming"
Programming Manual.
NC language scope
The way that non-active options and functions should be handled with language commands
can be set with the following machine data:
MD10711 $MN_NC_LANGUAGE_CONFIGURATION = <value>
Value Meaning
0 All language commands are available. Whether or not the needed function is activated can only be recognized
upon execution.
1 All language commands are available.
Language commands for non-enabled options are recognized during the program interpretation ⇒ Alarm 12553
"Option/function is not active".
2 Only the language commands of the enabled options are available.
Language commands for non-enabled options are recognized during the program interpretation ⇒ Alarm 12550
"Name not defined or option/function available".
Basic functions
46 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Value Meaning
3 All language commands are available.
Language commands of not activated functions are recognized during the program interpretation ⇒ Alarm 12553
"Option/function is not active".
Example:
1. Option set for the cylinder surface transformation.
2. The cylinder surface transformation in the machine data MD24100 $MC_TRAOF_TYPE_1 is not activated
3. Alarm 12553 is issued already when programming the TRACYL command.
4 Only the language commands of the active functions are available.
Language commands of non-active functions are not recognized ⇒ Alarm 12550 "Name not defined or option/
function not available".
Note
Whether the associated language commands are generally unavailable in the Siemens language or whether this
is true only on the corresponding system cannot be distinguished in this scenario.
2.5.2.2 Programming
The function "STRINGIS(...)" checks whether the specified character string is available as
element of the NC programming language in the actual language scope.
The following elements of the NC programming language can be checked:
● G commands of all existing G groups
● DIN or NC addresses
● Functions
● Procedures
● Keywords
● System data, such as machine data $M... , setting data $S... or option data $O...
● System variables $A... , $V... , $P...
● Arithmetic parameters R...
● Cycle names of activated cycles
● GUD and LUD variables
● Macro names
● Label names
Definition
INT STRINGIS(STRING <name>)
Syntax
<return value> = STRINGIS(<name>)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 47
Mode group, channel, program operation, reset response
2.5 Program operation
Meaning
<return The return value is coded in the first three decimal places yxx
value>: 000 The specified string is not an element of the current language scope 1).
100 The specified string is an element of the NC programming language, but
currently cannot be programmed (option/function is inactive).
2xx The specified string is a programmable element of the current language
scope (option/function is active).
Detailed information is contained in the first and second decimal places:
xx Meaning
01 DIN address or NC address2)
02 G command (e.g. G04, INVCW)
03 Function with return value
04 Function without return value
05 Keyword, e.g. DEFINE
06 Machine ($M...), setting ($S...) or option data ($O...)
07 System parameter, e.g. system variable ($...) or arithmetic param‐
eter (R...)
08 Cycle (the cycle must be loaded to the NC and the cycle program
must be active 3) )
09 GUD variable (the GUD variable must be defined in the GUD defi‐
nition files and the GUD variables activated)
10 Macro name (the macro must be defined in the macro definition files
and macros activated) 4)
11 LUD variable of the actual part program
12 ISO G command (ISO language mode must be active)
400 The specified string is an NC address that was not identified as DIN ad‐
dress or NC address (xx==01) or macro name (xx==10), and is not G or
R 2)
y00 No specific assignment possible
1) Depending on the control, under certain circumstances, only a subset of the Siemens NC language
commands are known, e.g. SINUMERIK 802D sl. For these controls, for strings that are principally
Siemens NC language commands, a value of 0 is returned. This behavior can be changed using
MD10711 $MN_NC_LANGUAGE_CONFIGURATION. If MD10711 = 1, then a value of 100 is always
returned for Siemens NC language commands.
2) NC addresses are the following letters: A, B, C, E, I, J, K, Q, U, V, W, X, Y, Z. These NC addresses
can also be programmed with an address extension. The address extension can be specified when
checking with STRINGIS. Example: 201 == STRINGIS("A1").
The letters: D, F, H, L, M, N, O, P, S, T are NC addresses or auxiliary functions that are defined by the
user. A value of 400 is always returned for these. Example: 400 == STRINGIS("D"). These NC ad‐
dresses cannot be specified with address extension when checking with STRINGIS.
Example: 000 == STRINGIS("M02"), but 400 == STRINGIS("M").
3) Names for cycle parameters cannot be checked with STRINGIS.
4) Address defined as macro, e.g. G, H, M, L, is identified as macro.
Basic functions
48 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Examples
In the following examples it is assumed that the specified NC language element, unless noted
otherwise, can in principle be programmed in the control.
1. String "T" is defined as auxiliary function:
400 == STRINGIS("T")
000 == STRINGIS ("T3")
2. String "X" is defined as axis:
201 == STRINGIS("X")
201 == STRINGIS("X1")
3. String "A2" is defined as NC address with extension:
201 == STRINGIS("A")
201 == STRINGIS("A2")
4. String "INVCW" is defined as named G command:
202 == STRINGIS("INVCW")
5. String "$MC_GCODE_RESET_VALUES" is defined as machine data:
206 == STRINGIS("$MC_GCODE_RESET_VALUES")
6. String "GETMDACT" is an NC language function:
203 == STRINGIS("GETMDACT ")
7. String "DEFINE" is a keyword:
205 == STRINGIS("DEFINE")
8. String "$TC_DP3" is a system parameter (tool length component):
207 == STRINGIS("$TC_DP3")
9. String "$TC_TP4" is a system parameter (tool size):
207 == STRINGIS("$TC_TP4")
10.String "$TC_MPP4" is a system parameter (magazine location status):
– Tool magazine management is active: 207 == STRINGIS("$TC_MPP4") ;
– Tool magazine management is not active: 000 == STRINGIS("$TC_MPP4")
See also the paragraph below: Tool magazine management.
11.String "MACHINERY_NAME" is defined as GUD variable:
209 == STRINGIS("MACHINERY_NAME")
12.String "LONGMACRO" is defined as macro:
210 == STRINGIS("LONGMACRO")
13.String "MYVAR" is defined as LUD variable:
211 == STRINGIS("MYVAR")
14.String "XYZ" is a command that is not known in the NC, GUD variable, macro or cycle name:
000 == STRINGIS("XYZ")
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 49
Mode group, channel, program operation, reset response
2.5 Program operation
Supplementary conditions
ISO Mode
If the "ISO Mode" function is active:
STRINGIS() checks the specified string initially as SINUMERIK G command:
● MD18800 $MN_MM_EXTERN_LANGUAGE (activation of external NC languages)
● MD10880 $MN_ MM_EXTERN_CNC_SYSTEM (control system to be adapted)
For active "ISO Mode", STRINGIS() checks the specified character string first whether it
belongs to the SINUMERIK G command.
If the string is not a SINUMERIK G command, it is subsequently checked whether it is an ISO
G command.
Selection
An NC program can be selected only if the relevant channel is in the reset status.
● DB21, ... DBX35.7 == 1 (reset)
Start
An NC program is started by two different events:
1. DB21, ... DBX7.1 = 1 (NC start), the signal is normally initiated by pressing the "NC start" key
on the machine control panel.
2. START command in an NC program of another active channel. The channel must be in the
AUTOMATIC or MDI mode and in the "reset" or "interrupted" status.
– DB21, ... DBX35.7 == 1 (reset)
– DB21, ... DBX35.6 == 1 (interrupted)
Basic functions
50 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Initial conditions
An NC program can be started only when the following initial conditions are satisfied.
● DB11 DBX4.4 == 1 (mode group ready)
● DB11 DBX0.7 == 0 (mode group reset)
● DB21, ... DBX1.7 == 0 (activate program test)
● DB21, ... DBX7.0 == 0 (NC start lock)
● DB21, ... DBX7.2 == 0 (NC stop at block limit)
● DB21, ... DBX7.3 == 0 (NC stop)
● DB21, ... DBX7.4 == 0 (NC stop, axes plus spindles)
● DB21, ... DBX7. 7 == 0 (reset)
● DB10 DBX56.1 == 0 (emergency stop)
● No axis or NC-specific alarm may be pending
Execution of command
The part program or the part program block is automatically executed and the following
interface signals are set:
● DB21, ... DBX35.5 (channel status reset)
● DB21, ... DBX35.0 (program status running)
The program is processed until the end of the program has been reached or the channel is
interrupted or aborted by a STOP or RESET command.
Further information
A detailed description of the interface signals can be found in the Function Manual PLC.
A detailed description of the NC variables is provided in the List Manual NC Variables
Alarms
Under certain conditions the START command will have no effect and one of the following
alarms will be triggered:
● 10200 "No NC Start permitted with active alarm"
● 10202 "No NC Start permitted with active command"
● 10203 "No NC Start permitted for non-referenced axes"
Further information
Diagnostics Manual Alarms
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 51
Mode group, channel, program operation, reset response
2.5 Program operation
Prerequisites
A program interruption is performed only when the channel and the NC program are active:
● DB21, ... D35.5 == 1 (channel: active)
● DB21, ... D35.0 == 1 (program: running)
Program interruption
The program processing can be interrupted by the following events:
● DB21, ... DBX7.2 == 1 (NC stop at block limit)
● DB21, ... DBX7.3 == 1 (NC stop)
● DB21, ... DBX7.4 == 1 (NC stop, axes plus spindles)
● DB21, ... DBX2.0 == 1 (single block)
● Programmed M00 or M01 command in the processed NC program
The channel and the NC program are then in the "interrupted" status:
● DB21, ... D35.6 == 1 (channel interrupted)
● DB21, ... D35.3 == 1 (program interrupted)
Further information
A detailed description of the interface signals can be found in the Function Manual PLC
Sequence
The following actions are performed when a program interruption is detected:
● Interrupt the program processing:
– At the next block limit for the following events: "NC stop at block limit", M00, M01 or single
block
– Immediately: All other events
● The traversing axes of the channel are stopped via a braking ramp. The braking of the axes
can extend over several blocks.
● The block indicator shows the current block at the point of interruption.
● The auxiliary functions that have not been output before the point of interruption are no
longer output.
Basic functions
52 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
See also
Block search Type 5 (SERUPRO) (Page 135)
Function
A channel reset causes an NC program being processed in automatic mode or program block
being processed in the MDI mode to be terminated.
The NC program or the program block cannot be continued at the point of interruption. After
completion of the channel reset, all axes and spindles of the channel are in the "exact stop"
status (exception: follow-up mode).
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 53
Mode group, channel, program operation, reset response
2.5 Program operation
Sequence
The NC reset causes the following actions to be performed in the channel:
● The program preparation is stopped immediately.
● Axes and spindles are braked via their parameterized braking ramps to standstill.
● Any auxiliary functions of the current block not yet output are no longer output to the PLC.
● The block indicator is reset to the start of the selected NC program.
● All reset alarms of the channel are cleared from the display.
Rules
● A channel reset is performed in any channel state.
● A channel reset is not aborted by any other command.
Further information
A detailed description of the interface signals can be found in the Function Manual PLC.
Basic functions
54 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Status changes
The program status is influenced by commands, NC/PLC interface and alarms. Starting at the
"running" program status, the table shows the following status based on the associated event.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 55
Mode group, channel, program operation, reset response
2.5 Program operation
Status changes
The channel status is influenced by commands and NC/PLC interface signals. Starting at the
"active" channel status, the table shows the following status based on the associated event.
The "active" channel status is achieved when an NC program or NC program block is being
executed or when axes are traversed in JOG mode.
Status transitions
The following table shows the channel and program states that result after certain operator and
program actions.
Basic functions
56 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
The left-hand part of the table lists the various states of the channel and of the program selected
in the channel, and the active operating mode.
The right-hand part of the table lists the operating/program actions and the following status.
Status Channel sta‐ Program status Operating Operating or program action => following status
tus mode
R U A R U S W A A M J
1 x x x RESET ⇒ 4
2 x x x RESET ⇒ 5
3 x x x RESET ⇒ 6
4 x x x NC start ⇒ 13; mode change ⇒ 5 or 6
5 x x x NC start ⇒ 14; mode change ⇒ 4 or 6
6 x x x Direction key ⇒ 15; mode change ⇒ 4 or 5
7 x x x NC start ⇒ 14
8 x x x NC start ⇒ 15
9 x x x NC start ⇒ 13; mode change ⇒ 10 or 11
10 x x x NC start ⇒ 16; mode change ⇒ 9 or 11
11 x x x Direction key ⇒ 17; mode change ⇒ 9 or 10
12 x x x NC start ⇒ 13; mode change ⇒ 10 or 11
13 x x x NC stop ⇒ 12
14 x x x NC stop ⇒ 7; for block end ⇒ 5
15 x x x NC stop ⇒ 8; for JOG end ⇒ 6
16 x x x NC stop ⇒ 10; for block end ⇒ 10
17 x x x NC stop ⇒ 11; for JOG end ⇒ 11
18 x x x Reset ⇒ 4; wait for other channel ⇒ 18
Program code
N10 G01 G90 X100 M3 S1000 F1000 M170
N20 M0
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 57
Mode group, channel, program operation, reset response
2.5 Program operation
1&VWDUWIURP3/&+0,XVHUODQJXDJH
1&VWRSIURP3/&+0,XVHUODQJXDJH
'%'%;1&VWDUWGLVDEOH
'%'%;UHDGLQGLVDEOH
3/&!1&
'%'%;FRQWUROOHUHQDEOH;D[LV
'%'%;IHHGUDWHVWRS
'%'%;FRQWUROOHUHQDEOHVSLQGOH
'%'%;VSLQGOHVWRS
'%'%;SURJUDPVWDWHUXQQLQJ
'%'%;SURJUDPVWDWHLQWHUUXSWHG
'%'%;SURJUDPVWDWHVWRSSHG
1&!3/&
'%'%;SURJUDPVWDWHFDQFHOHG
'%'%%WUDYHOFRPPDQG;D[LV
'%'%;H[DFWVWRSILQH
'%'%;VSLQGOHVWDWLRQDU\
'%'%;VSLQGOHLQVHWSRLQWUDQJH
6SLQGOH $[LV;WUDYHUVHV
SRZHUXS
1 1
Function
With the function "Jump back to start of the program" the control jumps back from a part
program to the beginning of the program. The program is then processed again.
As compared to the function "Program jumps to jump marks", with which a repeated processing
of the program can also be implemented, the function "Jump back to the start of the program"
offers the following advantages:
● The programming of a jump mark at the start of the program is not necessary.
● The program restart can be controlled through the NC/PLC interface signal:
DB21, ... DBX384.0 (control program branching)
Basic functions
58 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
● The timer for the program runtime can be reset to "0" at the restart of the program.
● The timer for workpiece counting can be incremented by "1" at program restart.
Application example
The function is used, if the processing of subsequent workpieces is to be done through an
automatic program restart, e.g. in case of turning machine with bar loader/changer.
Parameterization
Program runtime
The runtime of the selected NC program is stored in the system variable $AC_CYCLE_TIME.
When starting a new program, the system variable is automatically reset to "0" (see Section
" Program runtime (Page 245) ")
Via the following machine data it can be set that the system variable $AC_CYCLE_TIME is
reset to "0" even in case of a program restart through the function "jump back to start of
program":
MD27860 $MC_PROCESSTIMER_MODE.Bit 8 = <value> (activate the program runtime
measurement)
Note
In order that the setting of bit 8 can become effective, the measurement of the current program
runtime must be active (MD27860 bit 1 = 1).
Workpiece count
After the part program end (M02 / M30) has been attained, the activated workpiece counters
($AC_TOTAL_PARTS / $AC_ACTUAL_PARTS / $AC_SPECIAL_PARTS) are incremented by
"1" (see Section "Workpiece Counter (Page 256)").
Via the following machine data it can be set that the activated workpiece counter is incremented
even in case of a program restart through the function "jump back to start of program":
MD27880 $MC_PART_COUNTER.Bit <n> = <value> (activating the workpiece counter)
Bit Value Meaning: In case of a program restart through the function "jump back to start of
program", the workpiece counter:
7 0 $AC_TOTAL_PARTS is not incremented.
1 $AC_TOTAL_PARTS is incremented.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 59
Mode group, channel, program operation, reset response
2.5 Program operation
Bit Value Meaning: In case of a program restart through the function "jump back to start of
program", the workpiece counter:
11 0 $AC_ACT_PARTS is not incremented.
1 $AC_ACT_PARTS is incremented.
15 0 $AC_SPECIAL_PARTS is not incremented.
1 $AC_SPECIAL_PARTS is incremented.
Programming
Syntax
GOTOS
Meaning
Example:
Programming Comment
N10 ... ; Start of the program
...
IF ...
N100 GOTOS Return to the program start (N10)
ENDIF
...
RET
2.5.11.1 Programming
The program section repetition permits the repetition of program sections within an NC
program.
Basic functions
60 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
The program lines or program sections to be repeated are identified by jump markers (labels).
Note
Jump markers (labels)
Jump markers are always located at the beginning of a block. If a program number exists, the
jump marker is located immediately after the block number.
The following rules apply when naming jump markers:
● Number of characters:
– Minimum 2
– Maximum 32
● Permissible characters are:
– Letters
– Digits
– Underscores
● The first two characters must be letters or underscores.
● The name of the jump marker is followed by a colon (":").
Syntax
2. REPEAT + jump marker: Repeat program section between jump marker and REPEAT
statement
3. REPEAT + jump marker_1 + jump marker_2: Repeat section between two jump markers
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 61
Mode group, channel, program operation, reset response
2.5 Program operation
Note
It is not possible to nest the REPEAT statement with the two jump markers in parentheses. If
the <start jump marker> appears before the REPEAT statement and the <end jump
marker> is not reached before the REPEAT statement, the section between the <start
jump marker> and the REPEAT statement will be repeated.
4. REPEAT + jump marker + ENDLABEL: Repeat section between jump marker and
ENDLABEL:
Note
It is not possible to nest the REPEAT statement with the <jump marker> and the ENDLABEL in
parentheses. If the <jump marker> appears before the REPEAT statement and
the ENDLABEL is not reached before the REPEAT statement, the section between the <jump
marker> and the REPEAT statement will be repeated.
Meaning
Basic functions
62 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Examples
Example 2: Repeat program section between jump marker and REPEAT statement:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 63
Mode group, channel, program operation, reset response
2.5 Program operation
Basic functions
64 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Further information
● Program section repetitions can be nested. Each call uses a subprogram level.
● If M17 or RET is programmed while processing a program section repetition, the program
section repetition is canceled. The program is resumed at the block following the REPEAT
line.
● In the actual program display, the program section repetition is displayed as a separate
subprogram level.
● If the level is canceled during the program section processing, the program resumes at the
point after the program section repetition call.
Example:
● Check structures and program section repetitions can be used in combination. There should
be no overlap between the two, however. A program section repetition should appear within
a check structure branch or a check structure should appear within a program section
repetition.
● If jumps and program section repetitions are mixed, the blocks are executed purely
sequentially. For example, if a jump is performed from a program section repetition,
processing continues until the programmed end of the program section is found.
Example:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 65
Mode group, channel, program operation, reset response
2.5 Program operation
Program code
N10 G1 F300 Z-10
N20 BEGIN1:
N30 X=10
N40 Y=10
N50 GOTOF BEGIN2
N60 ENDLABEL:
N70 BEGIN2:
N80 X20
N90 Y30
N100 ENDLABEL: Z10
N110 X0 Y0 Z0
N120 Z-10
N130 REPEAT BEGIN1 P=2
N140 Z10
N150 X0 Y0
N160 M30
Note
The REPEAT statement should appear after the traversing block.
2.5.12.1 Function
Function
The "Event-driven program call" (PROG_EVENT) function starts, for the occurrence of a
selected event in the NC, a user-specific NC program (PROG_EVENT-program).
Application examples
Initial setting for functions or initialization of system or user variables.
Events
The triggering events are selected with the machine data MD20108
$MC_PROG_EVENT_MASK (see Section "Parameterization (Page 70)").
PROG_EVENT program
The name of the PROG_EVENT program is set with the machine data
MD11620 $MN_PROG_EVENT_NAME up (see Section "Parameterization (Page 70)").
The PROG_EVENT program is executed in the channel in which the event occurred.
Basic functions
66 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
The PROG_EVENT program is executed with the lowest priority and so can be interrupted by
a user ASUP.
Processing sequences
Channel: Active
Mode: AUTOMATIC (optional: Overstore (active)
MDI
TEACH IN
1. In the channel, the end of program block is exchanged in the executed program.
2. End of program is executed, evaluation of the following machine data:
– MD20110 $MC_RESET_MODE_MASK
– MD20150 $MC_GCODE_RESET_VALUES
– MD20152 $MC_GCODE_RESET_MODE
3. Implicit call of the PROG_EVENT program as ASUP
4. A reset is executed in the channel, evaluation of the following machine data:
– MD20110 $MC_RESET_MODE_MASK
– MD20150 $MC_GCODE_RESET_VALUES
– MD20152 $MC_GCODE_RESET_MODE
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 67
Mode group, channel, program operation, reset response
2.5 Program operation
Channel: Any
Mode: Any
1. Control activates reset-sequence with evaluation of machine data:
– MD20110 $MC_RESET_MODE_MASK
– MD20150 $MC_GCODE_RESET_VALUES
– MD20152 $MC_GCODE_RESET_MODE
2. Implicit call of the PROG_EVENT program as ASUP
3. Control activates reset-sequence with evaluation of machine data:
– MD20110 $MC_RESET_MODE_MASK
– MD20150 $MC_GCODE_RESET_VALUES
– MD20152 $MC_GCODE_RESET_MODE
Basic functions
68 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
'%'%;
3URJUDPVWDWXVUXQQLQJ
'%'%;
3URJUDPVWDWXVVWRSSHG
'%'%;
3URJUDPVWDWXVFDQFHOHG
'%'%;
&KDQQHOVWDWXVDFWLYH
'%'%;
&KDQQHOVWDWXVLQWHUUXSWHG
'%'%;
&KDQQHOVWDWXVUHVHW
'%'%;
3URJUDPVWDWXVUXQQLQJ
'%'%;
3URJUDPVWDWXVVWRSSHG
'%'%;
3URJUDPVWDWXVFDQFHOHG
'%'%;
&KDQQHOVWDWXVDFWLYH
'%'%;
&KDQQHOVWDWXVLQWHUUXSWHG
'%'%;
&KDQQHOVWDWXVUHVHW
NC/PLC interface signals: DB21, ... DBX35.4 (program status aborted) and DB21, ... DBX35.7 (channel
status reset)
● The interface signals are set only when the PROG_EVENT program has completed again.
● The interface signals are not set between:
– Program end and PROG_EVENT program start
– Channel reset and PROG_EVENT program start
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 69
Mode group, channel, program operation, reset response
2.5 Program operation
If the PROG_EVENT program has completed or been canceled with a channel reset, the
interface signals are cleared again.
The interface signals are available for at least the duration of a PLC cycle.
2.5.12.2 Parameterization
Event selection
The events that start the PROG_EVENT program are set channel-specific using the machine
data:
MD20108 $MC_PROG_EVENT_MASK.Bit <n> = 1
Note
MD20108 $MC_PROG_EVENT_MASK is not evaluated in the simulation.
PROG_EVENT program
The PROG_EVENT program (default: _N_PROG_EVENT_SPF) must be loaded and enabled.
Default setting
As default setting, when an event occurs, user program _N_CMA_DIR/
_N_PROG_EVENT_SPF is executed.
The PROG_EVENT program must be loaded and enabled.
User-specific setting
If, for an event, a different PROG_EVENT program than the default setting is to be executed,
the NC program name must be entered into the following machine data:
Basic functions
70 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Search path
The PROG_EVENT program must be located in one of the following cycle directories. The
following search path is passed through when the parameterized event occurs:
1. /_N_CUS_DIR/ (user cycles)
2. /_N_CMA_DIR/ (manufacturer cycles)
3. /_N_CST_DIR/ (standard cycles)
The first program found with the name specified in MD11620 $MN_PROG_EVENT_NAME is
executed.
Note
● The specified program name is checked syntactically as in case of a subprogram name, i.e.
the first two characters must be letters or underscores (no digits). Prefix (_N_) and suffix
(_SPF) of the program names are added automatically, if not specified.
● The same protection mechanisms that can be activated for cycles (protection levels for
writing, reading, etc.) are activated.
Bit Value Meaning: In the PROG_EVENT program, the single-block processing for event:
0 0 Part program start: acts
1 Part program start: is suppressed
1 0 Part program end: acts
1 Part program end: is suppressed
2 0 Channel reset: acts
1 Channel reset: is suppressed
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 71
Mode group, channel, program operation, reset response
2.5 Program operation
Bit Value Meaning: In the PROG_EVENT program, the single-block processing for event:
3 0 Run-up: acts
1 Run-up: is suppressed
Note
● MD20106 $MC_PROG_EVENT_IGN_SINGLEBLOCK affects all single-block processing
types.
● The single-block processing in the PROG_EVENT program can be disabled with the
following setting:
MD10702 $MN_IGNORE_SINGLEBLOCK_MASK, bit 0 = 1 (prevent single-block stop)
The settings in MD20106 $MC_PROG_EVENT_IGN_SINGLEBLOCK then do not act.
Bit Value Meaning: In the PROG_EVENT program, the read-in disable for event:
0 0 Part program start: acts
If the PROG_EVENT program is terminated with the RET command, no executable
block is created
1 Part program start: is suppressed
If the PROG_EVENT program is terminated with the RET command, an executable
block analog to M17 is created.
1 0 Part program end: acts
1 Part program end: is suppressed
2 0 Channel reset: acts
1 Channel reset: is suppressed
3 0 Run-up: acts
1 Run-up: is suppressed
Basic functions
72 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Bit Value Meaning: While processing the PROG_EVENT program, the refresh of the display of
the program and channel statuses for event:
1 0 Part program end: Not suppressed
1 Part program end: Suppressed
2 0 Channel reset: Not suppressed
1 Channel reset: Suppressed
3 0 Run-up: Not suppressed
1 Run-up: Suppressed
Note
The system variables $AC_STAT and $AC_PROG are not affected by this function, i.e. in the
running event-driven user program, $AC_STAT is set to "active" and $AC_PROG to "running".
NC/PLC interface signals DB21, ... DBX35.0-7 ("Program status ..." and "Channel status ...")
also remain unaffected.
Application example
An edge change of the interface signal DB21, ... DBX7.3 (NC stop) initiated by the operator by
pressing the NC Stop key during a channel reset or power-up is ignored during the execution
of the PROG_EVENT program and so an undesired stop behavior at the machine is prevented.
Note
Programming DELAYFSTON/DELAYFSTOF in the PROG_EVENT program cannot replace the
behavior set with MD20193. NC stop before executing the DELAYFSTON command can still
cause an interruption.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 73
Mode group, channel, program operation, reset response
2.5 Program operation
2.5.12.3 Programming
PROG_EVENT program
End of program
The following must be kept in mind, if the user program is to be activated through the part
program start.
● The user program must be ended with M17 or RET.
● A return jump with the REPOS command is not permissible.
Block display
The display can be suppressed in the current block display using the DISPLOF attribute in the
PROC statement.
System variable
Note
The PROG_EVENT program is processed in the channel in which the initiating event occurred.
Power-up is an event that takes place concurrently in all channels.
Basic functions
74 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Note
The "power-up" event occurs in all channels concurrently.
2.5.12.5 Examples
Parameterization
Programming
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 75
Mode group, channel, program operation, reset response
2.5 Program operation
Parameterization
Programming
Parameterization
Machine data assignment, extract from the commissioning file (_N_INITIAL_INI)
Meaning
The PROG_EVENT program _N_CMA_DIR/_N_PROG_EVENT_SPF is started for channel
reset in the 3rd channel and processed until program end, irrespective of whether or not the
read-in disable is activated or deactivated.
Basic functions
76 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
2.5.13.1 Function
Application
Example: Machining a thread.
Definition
The definition of a stop delay area is made in the part program with the predefined
DELAYFSTON and DELAYFSTOF procedures (see "Programming (Page 80)").
Stop events
Overview of the events that cause a stop:
Event Reaction
DB21, ... DBX7.7 (reset) or DB11 DBX20.7 (mode group reset) Immediate
NC program: M30 Alarm 16954
User interrupt to start an ASUP: Delayed
FC 9 or DB10 DBB1 (setting the digital NC inputs for the PLC)
DB21, ... DBX6.2 / DB31, ... DBX2.2 (clear distance-to-go) channel/axis-spe‐ Immediate
cific
DB21, ... DBX6.3 (clear the number of subprogram repetitions) Delayed
DB21, ... DBX6.4 (program level abort) Delayed
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 77
Mode group, channel, program operation, reset response
2.5 Program operation
Event Reaction
Stop because of single block Delayed
● In the stop delay area:
The NC stops at the end of the 1st block outside the stop delay area.
● Single block is active before the stop delay area:
NC stops at each block limit, i.e. also in the stop delay area:
DB21, ... DBX7.2 (NC stop at the block limit)
This deselects the stop delay area!
DB11 DBX21.7 (activate single-block type A) Delayed
DB11 DBX21.6 (activate single-block type B) Delayed
DB21, ... DBX7.4 (NC stop) and DB11 DBX0.6 (mode group stop, axes plus Immediate
spindles)
DB21, ... DBX7.3 (NC stop at block limit) and DB11 DBX0.5 (mode group Delayed
stop)
NC program: Stop because of empty overstore buffer Alarm 16954
NC program: Programmed or implicit STOPRE Alarm 16954
NC program: M0 or M1 Alarm 16954
DB21, ... DBX7.2 (NC stop at the block limit) Delayed
Subprogram end should always deselect the stop delay area. System error
NC program: WAITM Alarm 16954
NC program: WAITE Alarm 16954
NC program: INIT with parameter "S" Alarm 16954
NC program: MMC (STRING, CHAR) Alarm 16954
DB21, ... DBB26 (activate/deactivate skip block) Delayed
DB21, ... DBB26 (deactivate skip block) Delayed
DB21, ... DBX0.6 (activate DryRun) Delayed
DB21, ... DBX0.6 (deactivate DryRun) Delayed
DB21, ... DBX6.1 (read-in disable) Delayed
Alarm: Alarm configuration STOPATENDBYALARM Immediate
Alarm: Alarm configuration STOPBYALARM Immediate
Internal: Stop after alarm for empty IPO buffer Immediate
Internal: Stop after alarm for empty IPO buffer Immediate
NC program: Alarm 16954 for LFON Alarm 16954
NC program: WAITMC Alarm 16954
NC program: NEWCONF Alarm 16954
NC program: NEWCONF Alarm 16954
OPI: PI "_N_SETUDT" Delayed
Extended stop and retract Delayed
DB31, ... DBX3.0 (accept external work offset) Delayed
OPI: PI "_N_FINDST" STOPRUN Alarm 16955
Alarms with NOREADY response Immediate
DB21, ... DBX7.2 == 1 (NC stop at block limit) Delayed
DB21, ... DBX7.3 == 1 (NC stop)
DB21, ... DBX7.4 == 1 (NC stop, axes plus spindles)
DB21, ... DBX6.1 == 1 (read-in disable) Delayed
Basic functions
78 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Event Reaction
DB21, ... DBX2.0 == 1 (single block) Delayed
Reaction
● Immediate
Stops immediately, even in the stop delay area. Designated as a "hard stop event".
● Delayed
Does not stop (even short-term) until after the stop delay area. Is known as a "soft stop event".
● Alarm 16954
Program is aborted because illegal program commands have been used in the stop delay area.
● Alarm 16955
Program is continued, an illegal action occurred in the stop delay area.
● Alarm 16957
The program area (stop delay area) enclosed by DELAYFSTON and DELAYFSTOF could not be
activated. As a result, every stop will take effect immediately and is not subject to a delay! This will
always occur when the deceleration begins before the stop delay area but ends within the stop delay
area. Likewise, if the stop delay area is entered with an override of 0, the stop delay area also cannot
be activated. (Example: A G4 before the stop delay area allows the user to reduce the override to 0.
The next block in the stop delay area then begins with override 0 and the described alarm situation
occurs.)
Note
MD11411 $MN_ENABLE_ALARM_MASK (activation of warnings) Bit 7 activates this alarm.
Note
Some NC events are stopped for only a short time, in order to perform a switching operation,
and restart immediately. This includes, e.g. an interrupt that stops the NC program briefly in
order to start the associated ASUP. These events are also allowed in the stop delay area,
however they are pushed back to its end and are thus considered "soft stop events".
Note
If a "hard" stop event coincides with the "stop delay area", the entire "stop delay area" is
deselected! Thus, if any other stop occurs in this program section, it will be stopped
immediately. A new program setting (new DELAYFSTON) must be made in order to start a new
stop delay area.
2.5.13.2 Parameterization
Machine data
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 79
Mode group, channel, program operation, reset response
2.5 Program operation
MD11550 $MN_STOP_MODE_MASK
2.5.13.3 Programming
Note
DELAYFSTON and DELAYFSTOF are not permitted in synchronized actions!
Syntax
DELAYFSTON
...
DELAYFSTOF
Meaning
Programming example
The following program block is repeated in a loop:
Program code
...
N99 MY_LOOP:
N100 G0 Z200
N200 G0 X0 Z200
Basic functions
80 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Program code
N300 DELAYFSTON
N400 G33 Z5 K2 M3 S1000
N500 G33 Z0 X5 K3
N600 G0 X100
N700 DELAYFSTOF
N800 GOTOB MY_LOOP
...
In the following diagram it can be seen that the user pressed "Stop" in the stop delay range, and
the NC started braking outside the stop delay range, i.e. in block N100. That causes the NC to
stop at the beginning of N100.
1&VWRSSW 1*=
1*; 1*;=
1*=;.
1*=.
;
6WRSEXWWRQ
6WRSEXWWRQGXULQJD*
= PDFKLQLQJ
Additional information
End of subprogram
DELAYFSTOF is activated implicitly at the end of the subprogram in which DELAYFSTON is
called.
Nesting
If subprogram 1 calls subprogram 2 in a stop delay area, the whole of subprogram 2 is a stop
delay area. In particular, DELAYFSTOF in subprogram 2 has no effect.
Example:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 81
Mode group, channel, program operation, reset response
2.5 Program operation
System variables
The following system variables can be queried to determine whether part program processing
is currently in a stop delay area:
● in the part program with $P_DELAYFST
● in synchronized actions with $AC_DELAYFST
Value Meaning
0 Delay stop range not active
1 Delay stop area active
Overlap
If two stop delay areas overlap, one from DELAYFSTON/DELAYFSTOF and the other from
MD11550 $MN_STOP_MODE_MASK, the largest possible stop delay area will be generated.
Override
If the override is changed before a stop delay area, the override takes effect in the stop delay
area.
If the override is changed in the stop delay area, the change takes effect after the stop delay
area.
Note
Override = 0
If the override is reduced to 0 before a stop delay area, the stop delay area cannot be activated.
Feed disable
DB21, ... DBX6.0 The feed disable has no effect in the stop delay area; the program does not
stop until after the stop delay area.
Basic functions
82 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Single block
If the single block is activated in the stop delay area, the NC stops at the end of the first block
outside the stop delay area.
If the single block is already selected before the stop delay area, the NC stops at each block
limit, i.e. also in the stop delay area! This deselects the stop delay area.
MD28060
The channel-specific interpolator executes prepared blocks from the interpolation buffer during
the part program run. The maximum number of blocks requiring space in the interpolation buffer
at any given point in time is defined by the memory configuring MD28060
$MM_IPO_BUFFER_SIZE (number of NC blocks in the IPO buffer (DRAM)). For some
applications it may be meaningful not to use the full buffer capacity in order to minimize the
"interval" between preparation and interpolation.
SD42990
The number of blocks in the interpolation buffer can be restricted dynamically to a smaller value
than in MD28060 $MC_MM_IPO_BUFFER_SIZE (number of NC blocks in the IPO buffer
(DRAM)), minimum 2 blocks, with the setting data SD42990
$SC_MAX_BLOCKS_IN_IPOBUFFER (max. number of blocks in the IPO buffer).
Values of setting data SD42990 $SC_MAX_BLOCKS_IN_IPOBUFFER:
Value Effect
<0 No interpolation buffer limit active.
The max. possible IPO buffer as set in MD 28060: MM_IPO_BUFFER_SIZE is
activated.
or 1 The minimum permissible IPO buffer with two blocks is activated.
< MM_IPO_BUFFER_SIZE The IPO buffer is activated with no more than the maximum specified number of
blocks.
>= MM_IPO_BUFFER_SIZE The IPO buffer is activated with the number of blocks specified in MD 28060:
MM_IPO_BUFFER_SIZE.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 83
Mode group, channel, program operation, reset response
2.5 Program operation
Note
If SD42990 $SC_MAX_BLOCKS_IN_IPOBUFFER is set in the part program, the interpolation
buffer limitation takes effect immediately if the block with the SD is being preprocessed by the
interpreter.
This means that the limitation of the IPO buffer may take effect a few blocks before the intended
limitation (see also MD 28070 $MC_MM_NUM_BLOCKS_IN_PREP).
To avoid premature activation and to make the limitation of the IPO buffer take effect in
synchronism with the block, a STOPRE (preprocessing stop) must be programmed before the
SD is set in the part program.
Validity
SD42990 $SC_MAX_BLOCK_IN_IPOBUFFER has global, channel-specific validity and can
also be modified in a part program. This modified value is retained at the end of the program.
If this setting data is to be reset again on defined events, a so-called event-driven program must
be created to do this. For example, this setting data could always be set to a predefined value
on RESET.
Application
The IPO buffer limitation can be used whenever the number of blocks between block
preparation and interpolation must be minimized, e.g. when actual positions in the part program
must be read and processed for other purposes.
Example
N10 ...
N20 ...
..........
N100 $SC_MAX_BLOCKS_IN_IPOBUFFER = 5 ; Limitation of the IPO buffer to
five NC blocks
N110 ...
N120 ...
............
N200 $SC_MAX_BLOCKS_IN_IPOBUFFER = -1 ; Cancellation of the IPO buffer
limitation
N210 ...
............
Basic functions
84 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
2.5.15.1 Function
In ShopMill/ShopTurn, a so-called basic block display can be used in addition to the existing
block display to show all blocks that produce an action on the machine.
The end positions actually approached are shown as an absolute position. The position values
refer either to the workpiece coordinate system (WCS) or the settable zero system (SZS).
The number of LookAhead display blocks stored in the display buffer depends on the number
of prepared blocks in the relevant processing state in the preprocessing buffer of the control. If
a preprocessing stop is processed, the number of display blocks is reduced to zero and
increases again after the stop is acknowledged. In the case of REORG events (e.g. mode
change, ASUB start), the display blocks stored for LookAhead are deleted and preprocessed
again afterwards.
Values processed in the basic block display coincide with the:
● Selected tools
● Feedrate and spindle speed
● Position values actually approached
Exceptions:
With active tool radius compensation, deviations can occur.
For modulo axes, the programmed value is displayed in the basic block display. This value
can also lie outside the modulo range.
2.5.15.2 Parameterization
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 85
Mode group, channel, program operation, reset response
2.5 Program operation
Activation
The basic block display is activated by MD 28400 $MC_MM_ABSBLOCK (activate block
display with absolute values) by means of Power On. If MD28400 $MC_MM_ABSBLOCK is set
to 1, a channel-specific display buffer (FIFO) is created during power-up.
Size of display buffer (FIFO) = (MD28060 $MC_MM_IPO_BUFFER_SIZE (number of NC
blocks in the IPO buffer) + MD28070 $MC_MM_NUM_BLOCKS_IN_PREP (number of blocks
for the block preparation)) multiplied by 128 bytes. For the standard machine data setting, this
represents a size of 6 KB.
Optimize the size of display buffer:
The memory requirement can be optimized by entering a value between 128 and 512. The
display blocks prepared in the display buffer are transferred to the HMI via a configurable
upload buffer.
The maximum size of the upload buffer is obtained by multiplying (MD28402
$MC_MM_ABSBLOCK_BUFFER_CONF[0] +
MD28402 $MC_MM_ABSBLOCK_BUFFER_CONF[1] + 1) by the block length configured in
MD28400 $MC_MM_ABSBLOCK.
The number of blocks before the current block is configured in
MD28402 $MC_MM_ABSBLOCK_BUFFER_CONF[0] and the number of blocks after the
current block is configured in MD28402 $MC_MM_ABSBLOCK_BUFFER_CONF[1].
Supplementary conditions
If the length of a display block configured in MD28400 $MC_MM_ABSBLOCK is exceeded, this
display block is truncated accordingly. To represent this, the "..." string is appended to the block
end.
For preprocessed cycles
(MD10700 $MN_PREPROCESSING_LEVEL > 1 (program preprocessing level)), the display
block contains only axis positions.
Additional supplementary conditions for the basic block display:
● Modal synchronized action blocks with absolute values are
not taken into account.
● The basic block display is deactivated during block search with or without calculation.
● Polar coordinate programming is not shown in Cartesian system.
Basic functions
86 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Radius/diameter values
Diameter values shown in the basic block display and position display may be needed as a
radius for internal calculation. These values for measurements in radius/diameter according to
G group 29 can be manipulated using the following options:
● G command DIAMCYCOF (extension of channel-specific diameter programming)
This G command deactivates the channel-specific diameter programming during the cycle
execution. In this way, calculations in the cycle can always be made in the radius. The
position display and the basic block display are continued according to the state of the
diameter programming before DIAMCYCOF.
In the basic block display, the last displayed value is retained.
● G command DIACYCOFA[AX] (axis-specific diameter programming)
This G command deactivates the axis-specific diameter programming during the cycle
execution. In this way, calculations in the cycle can always be made in the radius. In the
position display and in the basic block display, this continues according to the state of the
diameter programming before DIACYCOFA[AX] indicator.
In the basic block display, the last displayed value is retained.
● MD27100 $MC_ABSBLOCK_FUNCTION_MASK (parameterize the block display with
absolute values)
Bit0 = 1 Setpoints of the transverse axis are always displayed as diameter values
in the basic block display.
Example:
G0 X10 Y10 Z10 ; block still prepared for the basic block display
COMPCAD ; compressor for optimized surface quality (CAD program)
... ; String as sign that the display blocks are missing
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 87
Mode group, channel, program operation, reset response
2.5 Program operation
● Programmed axis positions are represented as absolute positions in the coordinate system
(WCS / SZS) specified in MD9424 $MM_MA_COORDINATE_SYSTEM (coordinate system
for actual value display)
Note
The modulo correction is omitted for modulo axes, which means that positions outside the
modulo range can be displayed. It also means that the basic block display differs from the
position display in which values are always modulo-converted.
Basic functions
88 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.5 Program operation
Examples
Comparisons between display block (original block) and basic block display:
● Programmed positions are displayed as absolute.
The addresses AP/RP are displayed with their programmed values.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 89
Mode group, channel, program operation, reset response
2.5 Program operation
The following applies for H functions: Each programmed value is display irrespective of the
output type to the PLC.
(MD22110 $MC_AUXFU_H_TYPE_INT (type of H auxiliary function is integer)).
● For Tool selection by tool command
Display information is generated in the form T<value> or T=<string>. If an address
extension has been programmed, this is displayed as well.
If several spindles have been configured or the "Tool change via master toolholder" function
(MD20124 $MC_TOOL_MANAGEMENT_TOOLHOLDER (toolholder number)) is active,
the T number is always output with address extension.
If no address extension has been programmed, the number of the master spindle or the
master toolholder is used instead (T<spindle_number/tool_holder>= ).
● For the Spindle programming via S, M3, M4, M5, M19, M40 - M45 and M70 (or MD 20094
$MC_SPIND_RIGID_TAPPING_M_NR (M function for switching over in the controlled axis
operation)) the following regulation applies regarding the address extension:
If an address extension has been programmed, then this is also resolved.
If several spindles have been configured, then the address extension is also output.
If no address extension has been programmed, the number of the master spindle is used
(S<spindle_number>=).
● Indirect G command programming in form G[ <group> ] = <expression> is substituted by the
corresponding G command.
● Modal G commands that do not generate an executable block are collected and output with
the display block of the next executable block if permitted by the syntax (DIN block). If this
is not the case (e.g. predefined subprogram call TRANSMIT), a separate display block
containing the modified G commands is placed in front of the next executable block.
● A display block is always generated for part program lines in which the addresses F and FA
appear (including for MD22240 $MC_AUXFU_F_SYNC_TYPE = 3 (output time of the F
functions)).
● The display blocks generated for the block display are derived directly from the programmed
part program blocks. If intermediate blocks (e.g. tool radius compensation G41/G42, radius/
chamfer RNDM, RND, CHF, CHR) are generated in the course of contour preprocessing,
these are assigned the display information from the part program block on which the motion
is based.
Basic functions
90 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
● With the EXECTAB command (processing a table of contour elements), the block
generated by EXECTAB is shown in the display block.
● With the EXECSTRING command, the block generated via EXECSTRING is displayed in
the display block.
Original block:
N910 DEF STRING[40] PROGSTRING = "N905 M3 S1000 G94 Z100 F1000 G55"
N920 EXECSTRING(PROGSTRING)
Original block:
N905 Z100 G55 G94 M3 S1000 F1000
2.6.1 Overview
The control system provides various functions for controlling the execution of an NC program.
These functions are predominantly used for testing and running-in a new part program. Using
these functions significantly reduces the danger to the machine and time required during the
test phase.
Several program control functions can be activated at the same time to achieve a better result.
Functions
The following program control functions are available:
● Program test (Page 93)
● Dry run feedrate (Page 96)
● Reduced rapid traverse (Page 98)
● Programmed stop (Page 99)
● Handwheel offset (Page 100)
● Skipping program blocks (Page 101)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 91
Mode group, channel, program operation, reset response
2.6 Program control
Note
Selection activation via the user interface
The HMI request signals are only transferred from the basic PLC program to the PLC request
signals if FB1 parameter MMCToIF is set to TRUE:
● MMCTolf == "TRUE" ; ⇒ Transfer (default setting)
● MMCTolf == "FALSE" ; ⇒ No transfer
If the parameters are not set, the PLC request signals must be set by the PLC user program.
Note
Activation via the PLC user program
The FB1 parameter MMCToIf must be set to "FALSE", otherwise the NC/PLC interface would
be overwritten with the values of the HMI/PLC interface.
Basic functions
92 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
Function
In the "Program test" state, a part program can be executed without actually traversing any of
the machine axes. The user can use this to check the programmed axis positions and auxiliary
function outputs of a part program. This program simulation can also be used as an extended
syntax check.
Note
Spindle traversing motion
Contrary to the machine axes - in the "Program test" state - traversing motion of the spindles
of the channel is enabled as default setting (see Section "Basic setting").
If, in the "Program test" state, spindles are not to be traversed, then they must be explicitly
inhibited/locked via the PLC user program:
Basic settings
The following settings apply as default setting for channels in the "Program test" state:
● Setpoints identical to normal operation are generated for the axes; however they are not
output to the machine axes.
● For the spindles, setpoints are output to the machine axes.
● The displayed actual values of the inhibited axes/spindles are internally generated from
setpoints.
● The commands for channel synchronization are processed normally.
● The NC/PLC interface signals are processed normally.
● The processing time of the program is the same as in normal operation.
Temporarily when required, the "Program test" state can be exited on an axis-for-axis basis.
The setpoints are then output again on the machine axes so that they actually traverse at the
machine.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 93
Mode group, channel, program operation, reset response
2.6 Program control
Note
Default state of traversing motion
The default state regarding traversing motion after selecting "Program test" in the channel is:
● Axes: Inhibited
● Spindles: Enabled
Basic functions
94 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
Note
The signals for exact stop DB31, ... DBX60.6/60.7 (exact stop coarse/fine) mirror the actual
status on the machine.
They are only canceled during program testing if the axis is pushed out of its set position (the
set position remains constant during program testing).
With signal DB21, ... DBX33.7 (program test active) both the PLC program and the part
program can use variable $P_ISTEST to decide how to react or branch in response to these
signals during testing.
Note
Dry run feedrate
Program execution in the "program test" state can also be activated using the "Dry run feedrate"
function. With this function, part program sections with a small programmed feedrate can be
processed in a shorter time.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 95
Mode group, channel, program operation, reset response
2.6 Program control
Note
Tool management
Because of the axis disable, the assignment of a tool magazine is not changed during program
testing. A PLC application must be used to ensure that the consistency between the data in the
tool management system and the magazine is not corrupted.
Function
To reduce the processing time during the program test, traversing motion can be executed
faster by activating the drive run feedrate. For example, for G01, G02, G03, G33, G34, G35,
G95, the test feedrate applies instead of the programmed feedrate.
NOTICE
Destroyed tool or workpiece as a result of excessively high cutting velocities
When a workpiece is machined with the dry run feedrate function active, the resulting cutting
velocities may lie outside the permissible range and lead to destruction of the tool and / or
workpiece.
As a consequence, the dry run feedrate should only be used for the program test.
Activation
The dry run feedrate is selected at the user interface in the AUTOMATIC and MDI modes, and
can be activated when automatic operation is interrupted or at the end of the block.
Selection
The "Dry run feedrate" function is selected for the channel displayed in the "Machine" basic
display via the user interface, e.g. SINUMERIK Operate:
1. Softkey: Operating area "Machine" > "Program control"
2. "Program control" menu: select checkbox "Dry run feedrate (DRY)".
The following signal is set in the HMI/PLC interface to request that the PLC user program
activates the function:
DB21, ... DBX24.6 (dry run feedrate selected) == 1
Basic functions
96 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
The PLC then transfers the selection signal to the corresponding activation signal of the NC/
PLC interface.
Note
The function may also be directly activated via the PLC user program by setting the
corresponding activation signal in the NC/PLC interface.
Activation
To request that the NC activates the function, the PLC user program must set the following NC/
PLC interface signal:
DB21, ... DBX0.6 (activate dry run feedrate) == 1
Feedback signal
The following NC/PLC interface signal is set as feedback signal to the PLC user program that
the function is active in the NC:
DB21, ... DBX318.6 (dry run feedrate active) == 1
Parameterization
Note
Revolutional feedrate
The dry run feedrate also replaces the programmed revolutional feedrate in program blocks
with G95.
<Val‐ Meaning
ue>
0 The maximum from SD42100 and the programmed feedrate are effective as dry run feedrate.
1 The minimum from SD42100 and the programmed feedrate are effective as dry run feedrate.
2 SD42100 is effective as dry run feedrate.
10 The same as for a value of 0, except for thread cutting (G33, G34, G35) and tapping (G331,
G332, G63). For these functions, the programmed feedrate applies.
11 The same as for a value of 1, except for thread cutting (G33, G34, G35) and tapping (G331,
G332, G63). For these functions, the programmed feedrate applies.
12 The same as for a value of 2, except for thread cutting (G33, G34, G35) and tapping (G331,
G332, G63). For these functions, the programmed feedrate applies.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 97
Mode group, channel, program operation, reset response
2.6 Program control
Further information
For additional information on influencing the feedrate, see Function Manual Axes and Spindles.
Function
In the reduced rapid traverse mode (RG0), the traversing velocity of the axes is reduced to the
percentage value currently set for RG0.
Activation
Selection
The "Reduced rapid traverse" function is selected for the channel displayed in the "Machine"
basic display via the user interface, e.g. SINUMERIK Operate:
1. Softkey: Operating area "Machine" > "Program control"
2. "Program control" menu: Select checkbox "Reduced rapid traverse (RG0)".
The following signal is set in the HMI/PLC interface to request that the PLC user program
activates the function:
DB21, ... DBX25.3 (feedrate override selected for rapid traverse) == 1
Note
The function may also be directly activated via the PLC user program by setting the
corresponding activation signal in the NC/PLC interface.
Activation
To request that the NC activates the function, the PLC user program must set the following NC/
PLC interface signal:
DB21, ... DBX6.6 (path rapid traverse override active) == 1
Basic functions
98 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
Function
If function "Programmed stop 1" is active, then program execution stops at all blocks in which
supplementary function M01 is programmed. This means that while machining a workpiece,
users have the option of checking the results of individual machining steps.
Activation
Selection
The "Programmed stop 1" function is selected for the channel displayed in the "Machine" basic
display via the user interface, e.g. SINUMERIK Operate:
1. Softkey: Operating area "Machine" > "Program control"
2. "Program control" menu: Select checkbox "Reduced rapid traverse (RG0)".
The following signal is set in the HMI/PLC interface to request that the PLC user program
activates the function:
DB21, ... DBX24.5 (M01 requested) == 1
Note
The function may also be directly activated via the PLC user program by setting the
corresponding activation signal in the NC/PLC interface.
Activation
To request that the NC activates the function, the PLC user program must set the following NC/
PLC interface signal:
DB21, ... DBX0.5 (activate M01) == 1
Feedback signal
The following NC/PLC interface signal is set as feedback signal to the PLC user program that
the function is active in the NC:
DB21, ... DBX32.5 (M01 active) == 1
If the NC program is stopped at the end of a block due to the function, the following NC/PLC
interface signal is set:
DB21, ... DBX35.2 (program status stopped) == 1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 99
Mode group, channel, program operation, reset response
2.6 Program control
Function
The "Handwheel offset (DRF)" function can be used to set an additive incremental zero offset
for geometry and auxiliary axes in the basic coordinate system in the AUTOMATIC mode via
an electronic handwheel.
Typical applications:
● Compensating (correcting) tool wear within an NC block
Where NC blocks have very long processing times, it becomes necessary to offset tool wear
manually within the NC block (e.g. for milling machines that machine large surfaces).
● High precision compensation (correction) when grinding
● Simple temperature compensation
Activation
Selection
The "Handwheel offset" function is selected for the channel displayed in the "Machine" basic
display via the user interface, e.g. SINUMERIK Operate:
1. Softkey: Operating area "Machine" > "Program control"
2. "Program control" menu: select checkbox "Handwheel offset (DRF)".
The following signal is set in the HMI/PLC interface to request that the PLC user program
activates the function:
DB21, ... DBX24.3 (handwheel offset requested) == 1
Note
The function may also be directly activated via the PLC user program by setting the
corresponding activation signal in the NC/PLC interface.
Activation
To request that the NC activates the function, the PLC user program must set the following NC/
PLC interface signal:
DB21, ... DBX0.3 (activate handwheel offset) == 1
Feedback signal
The following NC/PLC interface signal is set as feedback signal to the PLC user program that
the function is active in the NC:
DB21, ... DBX33.3 (handwheel offset active) == 1
Basic functions
100 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
Further information
Detailed information about the DRF offset function is provided in Function Manual Axes and
Spindles.
NC blocks, which are not to be executed every time the program runs, can be skipped and not
processed. This function is used when testing and/or running-in new programs, for example.
Skip blocks
Blocks to be skipped are indicated in the part program by the character "/" before the block
number. Several consecutive blocks can also be skipped. The instructions in the skipped
blocks are not executed and the program resumes with the next block that is not skipped.
Example:
1
1
1
1
1
1
1
1
1
1
1
1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 101
Mode group, channel, program operation, reset response
2.6 Program control
Skip levels
Blocks can be assigned to skip levels (max. 10), which can be activated via the user interface
or the PLC user program.
The assignment is made in the NC program using a forward slash, followed by the number of
the skip level. Only one skip level can be specified for each block.
Example:
Note
The levels to be skipped can only be changed when the control system is in the STOP/reset
state.
Note
The number of skip levels that can be used depends on a display machine data.
Note
Skipping blocks also remains active during block searches.
Note
System and user variables can also be used in conditional jumps in order to control program
execution.
Selection
Skip levels for the channel displayed in the "Machine" basic display are selected via the user
interface, e.g. SINUMERIK Operate:
1. Softkey: Operating area "Machine" > "Program control"
2. "Program control" menu: Select checkbox "Skip level... (SKP)".
The associated signal is set in the HMI/PLC interface to request that the PLC user program
activates the selected skip level:
DB21, ... DBX26.0 (skip blocks of the 1st skip level) == 1
DB21, ... DBX26.1 (skip blocks of the 2nd skip level) == 1
...
Basic functions
102 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
Note
The function may also be directly activated via the PLC user program by setting the
corresponding activation signal in the NC/PLC interface.
Activation
To request that the NC activates the skip level, the PLC user program must set the appropriate
NC/PLC interface signal:
DB21, ... DBX2.0 (skip blocks of the 1st skip level) == 1
DB21, ... DBX2.1 (skip blocks of the 2nd skip level) == 1
...
DB21, ... DBX2.7 (skip blocks of the 8th skip level) == 1
DB21, ... DBX31.6 (skip blocks of the 9th skip level) == 1
DB21, ... DBX31.7 (skip blocks of the 10th skip level) == 1
Parameterization
2.6.8.1 Function
For single block execution, part program execution stops after every program block. If tool
radius compensation is selected, processing stops after every intermediate block inserted by
the control system. The program status switches to "Program status stopped". The channel
status remains active. The next part program block is processed on NC Start.
Application
With this function, users have the option of executing a part program block for block - and
checking the individual machining steps. The next block can be executed once the user decides
that an executed part program block is functioning correctly.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 103
Mode group, channel, program operation, reset response
2.6 Program control
See also
Constraints (Page 110)
Selection
Single block processing can be selected:
● Via the machine control panel (key "Single Block")
● Via the user interface, e.g. SINUMERIK Operate:
1. Operating area "Machine" > "Program control"
2. Menu: "Program control": In the single block type selection list, select "SB1", "SB2" or
"SB3".
Further information: Operating Manual
Activation
The PLC basic program activates the function for the selected channel via the NC/PLC
interface signal:
DB21, ... DBX0.4 (activate single block) == 1
Feedback signal
Once the program has executed a part program block in single block mode, the following NC/
PLC interface signals are set:
DB21, ... DBX39.4 (stop at block end due to single block) == 1
DB21, ... DBX35.2 (program status stopped) == 1
Basic functions
104 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
2.6.8.3 Parameterization
Machine data
Note
By programming (Page 106) SBLON/SBLOF within an ASUB or subprogram, single block
machining can be explicitly activated/deactivated.
Note
For single block type "SB2: Calculation block", the machine data only active for system ASUBs,
user ASUBs and subprograms with attribute DISPLOF.
Note
By programming (Page 106) SBLON within an ASUB, in this case single block
processing cannot be reactivated.
Setting data
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 105
Mode group, channel, program operation, reset response
2.6 Program control
With the following channel-specific setting data, it is possible to set that, when single block
"SB2: calculation block" is active, a preprocessing stop will be performed for each block. This
suppresses the advance processing of part program blocks and maintains the connection
between the current block display and the display of variable values.
SD42200 $SC_SINGLEBLOCK2_STOPRE (activate debug mode for SB2)
Note
Contour deviation
When executing traversing blocks with single block type "SB2: Calculation block" in the debug
mode, contour deviations can occur.
2.6.8.4 Programming
Even with active single block machining, the user can completely or partly process an NC
program without interruption. Single block machining is suppressed via the SBLOF command,
and reactivated via the SBLON command.
Syntax
...
SBLOF
...
Basic functions
106 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
SBLON
...
Meaning
Special aspects
● Block display with suppressed single block machining
The current block display can be suppressed in subprograms using DISPLOF. If DISPLOF
is programmed together with SBLOF, for single block stops within the subprogram, the
subprogram call is displayed.
● Suppression of single block machining with asynchronous subprograms (ASUB)
In order to execute an ASUB with active single block machining in one step, a PROC
statement must be programmed in the ASUB with SBLOF. This also applies to the function
"Editable system ASUB" (MD11610 $MN_ASUP_EDITABLE).
If the single block stop in the system or user ASUB is suppressed by programming SBLOF
in the PROC line or using the settings in machine data
MD10702 $MN_IGNORE_SINGLEBLOCK_MASK (bit0 = 1 or bit1 = 1), then the single
block stop can be reactivated by programming SBLON in the ASUB.
If the single block stop in the user ASUB is suppressed using the setting in machine data
MD20117 $MC_IGNORE_SINGLEBLOCK_ASUP, the single block stop cannot be
reactivated by programming SBLON in the ASUB.
● Special features for various single block machining types
– "SB2: Arithmetic block" AND MD10702 $MN_IGNORE_SINGLEBLOCK_MASK,
Bit 12 = 1:
→ The program is not stopped in the SBLON block.
– "SB3: single block fine":
→ The SBLOF command is suppressed.
● Suppression of single block machining in nested programs
If SBLOF was programmed in the PROC statement in a subprogram, then execution is
stopped at the subprogram return with M17. That prevents the next block in the calling
program from already running. If, in a subprogram with SBLOF, without SBLOF in the PROC
statement, a suppression of single block machining is activated, execution is only stopped
after the next machine function block of the calling program. If that is not wanted, SBLON
must be programmed in the subprogram before the return (M17). Execution does not stop
for a return to a higher-level program with RET.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 107
Mode group, channel, program operation, reset response
2.6 Program control
Examples
The area between N20 and N60 is executed as one step in single block mode.
Program code
...
N100 G1 X10 G90 F200
N120 X-4 Y6
N130 CYCLE1
N140 G1 X0
N150 M30
Cycle CYCLE1:
The cycle CYCLE1 is processed with active single block machining. CYCLE1 is processed for
active single block machining, i.e. the Start key must be pressed once to process CYCLE1.
Basic functions
108 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
Example 3: An ASUB, which is started by the PLC in order to activate a modified zero offset and
tool offsets, is to be executed invisibly
Cycle CYCLE:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 109
Mode group, channel, program operation, reset response
2.6 Program control
2.6.8.5 Constraints
Basic functions
110 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
Alarm 16922
Initial situation: In a channel, an NC program is stopped by an M0 programmed in it, and in the
channel a single block is active (DB21, ... DBX0.4 == 1)
If, in this situation the single block type is toggled between SB1 or SB3 and SB2 at the user
interface several times, then alarm 16922 "Maximum nesting depth exceeded" is displayed.
Interface signals
Control channel
● DB21, ... DBX0.4 (activate single block)
Mode group
● DB11 DBX1.6 (single block, type B)
● DB11 DBX1.7 (single block, type A)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 111
Mode group, channel, program operation, reset response
2.6 Program control
2.6.10.1 Function
Unlike with the "Single block" function, in which the NC program is stopped after each block, the
"Configured stop" function gives the machine operator the capability of stopping only at critical
program locations. Before the program is started, the operator must select the stop situations
that are relevant for this from a selection defined by the machine manufacturer.
Basic functions
112 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
The stop situations for the configured stop are defined during commissioning by means of
setting data (Page 115). The machine operator selects and activates (Page 113) this via the
user interface or directly through the PLC user program.
Program flow
If the controller during program interpretation detects a function/subprogram call or G function
transition that is defined as a stop situation, the NC program is stopped at the end of the block
before the block with the function/subprogram call or G function transition. The program status
switches to "Program status stopped". The channel status remains active. The program
execution can be continued up to the next stop situation with NC start.
Applications
Positioning a workpiece
In machine tools, many machine functions are implemented with auxiliary functions (M/H
functions) or cycles (subprograms) (e.g. tool change, traverse steady rest to the workpiece,
etc.). When positioning a workpiece, the machine operator usually wants to execute such
machine functions somewhat more slowly to ensure that no collisions occur. With the aid of the
"Configured stop" function, the operator can stop the program before the start of the cycle or
before the auxiliary function is started and then set the override switch down to 0%. Then the
operator continues program execution with NC start. The block with the cycle or auxiliary
function is loaded and traversing is started by turning on the override switch.
Note
The override value can also be set to 0% via the PLC user program.
Another critical situation when positioning a workpiece is the start of motions involving large
masses or bodies. The "Configured stop" function can also be used to make stops before such
motions if a suitable stop situation has been defined prior to the program start.
Selection
It is possible to select the "Configured stop" function for the channel displayed in the root screen
"Machine" in all modes via the operator interface.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 113
Mode group, channel, program operation, reset response
2.6 Program control
Note
The function may also be directly activated via the PLC user program by setting the
corresponding activation signal in the NC/PLC interface.
Activation
To request that the NC activates the function, the PLC user program must set the following NC/
PLC interface signal:
DB21, ... DBX7.6 (activate configured stop) == 1
Feedback signal
The following NC/PLC interface signal is set as feedback signal to the PLC user program that
the function is active in the NC:
DB21, ... DBX39.6 (configured stop is activated) == 1
If the NC program is stopped at the end of a block due to the function, the following NC/PLC
interface signals are set:
DB21, ... DBX39.7 (stop at block end due to configured stop) == 1
DB21, ... DBX35.2 (program status stopped) == 1
Deselection
It is possible to deselect the "Configured stop" function in all program and channel states.
Basic functions
114 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
Machine data
Setting data
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 115
Mode group, channel, program operation, reset response
2.6 Program control
Note
The valid nomenclature and syntax rules must be observed when specifying the NC function or
subprogram name.
In the event of an error, alarm 16968 "Machine data $SC_CFG_STOP_ARRAY contains invalid
syntax" is displayed.
Example
2.6.10.4 Programming
Just as with single block processing, the configured stop also permits switching off the function
in the NC program via the pre-defined SBLOF procedure and switching it on again via the
predefined SBLON procedure.
For further information, see Chapter "Single block (Page 103)".
2.6.10.5 Constraints
Basic functions
116 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
Stop-preventing situations
Stops are ignored by the configured stop in the following situations:
● Tapping G331/G63 without spindle stop being active.
● Thread cutting G33 is active.
● Retraction motion of the tool is active.
● During an ASUB in the startup.
● During a Safety ASUB.
● Upon occurrence in a conditionally interruptible program area (stop-delay area).
Synchronized actions
The action part of a synchronized action is not evaluated for the configured stop! An auxiliary
function specified as a stop situation therefore does not result in a program stop upon
occurrence in a synchronized action.
2.6.10.6 Examples
Parameter assignment
Programming example
Program code
N10 G0 X10
N20 G0 X20
N30 G1 X30 F1000
N40 G1 X40
N50 G0 X50
N60 G0 X70
N70 M30
Program flow
NC start → The program starts, then stops after reaching position X10 in block N10.
NC start → The program is continued, then stopped after position X50 in block N50 is
reached.
NC start → The program is continued without further stops until the end of the program.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 117
Mode group, channel, program operation, reset response
2.6 Program control
Parameter assignment
Program example 1
Program code
N10 G0 X10
N20 G0 X20
N30 G1 X30 F1000
N35 M88
N40 G1 X40
N50 G0 X50
N60 M30
Program execution 1
NC start → The program starts. Stops at the end of block N30 at position X = 30.
NC start → Output of the M function, the program is continued without further stops
until the end of the program.
Program example 2
Program code
N10 G0 X10
N20 G0 X20
N30 G1 X30 M88 F1000
N40 G1 X40
N50 G0 X50
N60 M30
Program execution 2
NC start → The program starts. Stops at the end of block N20 at position X = 20.
NC start → The output of the M function takes place in block N30, the program is
continued without further stops until the end of the program.
Program example 3
Program code
N10 G0 X10
N20 G0 X20
N30 G1 X30 F1000
N35 WHEN TRUE DO M88
N40 G1 X40
Basic functions
118 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.6 Program control
Program code
N50 G0 X50
N60 M30
Program execution 3
NC start → The program starts and is executed until the end of the program. The aux‐
iliary function call in the action part of the synchronized action does not
result in a program stop.
Parameter assignment
Programming example
Program code
N10 G0 X10
N20 G0 X20
N30 G1 X30 F1000
N35 CS_TOOL
N40 G1 X40
N50 G0 X50
N60 G0 X70
N70 M30
Program flow
NC start → The program starts, then stops after reaching position X30 in block N30.
NC start → The program is continued without further stops until the end of the program.
Parameter assignment
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 119
Mode group, channel, program operation, reset response
2.6 Program control
Programming example
Note
Without tool management, the T functions are treated like any other auxiliary functions. This
allows a selective stop before a specific tool change (as shown in the example).
This is not possible with tool management. Here stops can only be made before each tool
change (with the stop situation "T[*]=*").
Basic functions
120 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
2.6.11 Status
The currently selected settings for program control can be read through system variables:
● In the part program via preprocessing variables:
● In the part program and in synchronized actions via the main run variable:
Function
Block search offers the possibility of starting part program execution from almost any part
program block.
This involves the NC rapidly performing an internal run through the part program (without
traversing motions) to the selected target block during block search. Here, every effort is made
to achieve the exact same control status as would result at the target block during normal part
program execution (e.g. with respect to axis positions, spindle speeds, loaded tools, NC/PLC
interface signals, variable values) in order to be able to resume automatic part program
execution from the target block with minimum manual intervention.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 121
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
Note
For further explanations regarding the block search, see Section "Behavior during block search
(Page 653)."
Subsequent actions
After completion of a block search, the following subsequent actions may occur:
● Type 1 - Type 5: Automatic Start of an ASUP
When the last action block is activated, a user program can be started as an ASUP.
● Type 1 - Type 4: Cascaded block search
A further block search with a different target specification can be started from "Search target
found".
Basic functions
122 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 123
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
Time sequence
%ORFNVHDUFKDFWLYH
'%'%;
$FWLRQEORFNDFWLYH
'%'%;
/DVWDFWLRQEORFNDFWLYH
'%'%;
&KDQQHOVWDWXVUHVHW
'%'%;
&KDQQHOVWDWXVLQWHUUXSWHG
'%'%;
Action blocks
During a block search type 2 or type 4 (block search with calculation to ...), actions such as tool
(T, D), spindle (S), feedrate programming or M function outputs are collected. With NC start to
execute the action blocks, the collected actions are output to the PLC.
Note
With NC start for the action blocks, the spindle programming collected during block search type
2 or type 4 (block search with calculation to ...) (S value, M3 / M4 / M5 / M19, SPOS) becomes
active.
The user has to ensure in the PLC user program that the tool can be operated or the spindle
programming is reset or not output:
DB31, ... DBX2.2 = 1 (spindle reset).
Constraints
Basic functions
124 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
to the position value collected up to the search target or to the current actual value of the axis.
The setting is realized via:
SD42444 $SC_TARGET_BLOCK_INCR_PROG
The setting data is evaluated with NC start for outputting the action blocks.
Single block
If you do not wish to stop after each action block after the search target during block search type
2 or type 4 (block search with calculation to ...) is found and while function "Single block"
(DB21, ... DBX0.4 == 1 (activate single block)) is active, this behavior can be deactivated in
machine data:
MD10702 $MN_IGNORE_SINGLEBLOCK_MASK, Bit 3 = 1 (ignore signal block for action
blocks)
Effect
If the following system variables are read in the ASUP, they contain the following values:
● $P_EP: Current actual position of the channel axis in the WCS
● $AC_RETPOINT: Collected block search position of the channel axis in the WCS
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 125
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
Effect
● All channel axes are moved to their search position that was collected during the block
search.
● $P_EP == "collected block search position of the channel axis (WCS)"
Effect:
● After exiting the ASUP, the system variable $P_EP (programmed end position) contains the
actual position, at which the channel axes were positioned by the ASUP or manually (mode:
JOG).
$P_EP == "current actual position of the channel axis in the WCS
Basic functions
126 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
<value> Meaning
0 With the change of the last action block after a block search, the following takes place:
● Execution of the part program is stopped
● DB21, ... DBB32.6 = 1 (last action block active)
● Display alarm 10208
1 With the change of the last action block after a block search, the following takes place:
● Execution of the part program is stopped
● DB21, ... DBB32.6 = 1 (last action block active)
● Only display alarm 10208 if DB21, ... DBX1.6 == 1 (PLC action ended)
In combination with the alarm, the following interface signals are set:
● DB21, ... DBX36.7 = 1 (NC alarm with machining standstill is pending)
● DB21, ... DBX36.6 = 1 (NC alarm channel-specific is pending)
<value> Meaning
0 Output of spindle-specific auxiliary functions collected during block search (M3, M4, M5, M19,
M70) in action blocks.
1 The spindle-specific auxiliary functions collected during block search are not output in the
action block.
They can be output at a later time, for example, in an ASUP. The spindle-specific auxiliary
functions collected are stored in system variables:
System variables
The spindle-specific auxiliary functions collected during block search are stored in the following
system variables:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 127
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
For later output of the spindle-specific auxiliary functions, the system variables can be read, for
example, in an ASUB, and output after output of the action blocks:
DB21, ... DBX32.6 == 1 (last action block active)
Note
The contents of the system variables $P_S, $P_DIR and $P_SGEAR may be lost after block
search due to synchronization operations.
For more detailed information on ASUB, block search and action blocks, see Sections "Output
suppression of spindle-specific auxiliary functions (Page 658)" and "Program test (Page 93)."
Because no blocks enter the main run during a block search of type 2 and type 4 (block search
with calculation to ...), main run and servo/drive-related system variables are not changed
during the block search. Where necessary, for these system variables, the block search must
specially handled in the NC program by querying whether a block search is active $P_SEARCH
(block search active).
Preprocessing-related system variables provide correct values in all search types.
Parameter assignment
Program to be activated
In the default setting, the program _N_PROG_EVENT_SPF is activated from the directory
_N_CMA_DIR as ASUB after the block search by changing the last action block. If another
program is to be activated, then the name of this user program must be entered in the following
machine data:
Basic functions
128 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
MD11620 $MN_PROG_EVENT_NAME
<value> Meaning
0 Single-block processing is active.
1 Single-block processing is suppressed.
<value> Meaning
0 Read-in disable is active.
1 Read-in disable is suppressed.
Note
For more information on parameterizing MD11620, MD20108, and MD20107, see Section
"Parameterization (Page 70)."
Programming
The event by which the ASUP has been started is stored in the system variable
$P_PROG_EVENT. On automatic activation after a block search, $P_PROG_EVENT returns
the value "5."
Sequence
Sequence of automatic start of an ASUB after a block search
1. User: Activation of the block search type 2 or type 4 (block search with calculation to ...) via
the operator interface
2. Search for the target block with collection of auxiliary functions
3. Stop after "Search target found ⇒ display of alarm 10208 "Continue program with NC start"
4. User: NC start to execute the action block s⇒ DB21, ... DBX7.1 = 1 (NC start)
5. Execution of the action blocks
6. Last action block is activated ⇒ Automatic start of /_N_CMA_DIR/_N_PROG_EVENT_SPF
(default) as an ASUB.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 129
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
7. Last ASUP block (REPOSA) is activated ⇒ DB21, ... DBX32.6 = 1 (last action block active)
8. Optional: Execution of user-specific requirements via PLC user program
9. Display of the alarm 10208 "Continue program with NC start"?
Note
With MD11450 $MN_SEARCH_RUN_MODE, Bit 0 == 1, alarm 10208 will only be output
after enabling by the PLC user program (DB21, ... DBX1.6 = 1 (PLC action ended)).
10.User: Continue program with NC start ⇒ DB21, ... DBX7.1 = 1 (NC start)
Functionality
The "Cascaded block search" function can be used to start another block search from the status
"Search target found". The cascading can be continued after each located search target as
often as you want and is applicable to the following block search functions:
● Type 1 block search without calculation
● Type 2 block search with calculation at contour
● Type 3 block search with calculation at block end point
Note
Another "cascaded block search" can be started from the stopped program execution only
if the search target has been found.
Activation
The "cascaded block search" is configured in the existing machine data:
MD11450 $MN_SEARCH_RUN_MODE
● The cascaded block search is enabled (i.e. several search targets can be specified)
with Bit 3 = 0 (FALSE).
● For compatibility reasons, the cascaded block search can be disabled with Bit 3 = 1 (TRUE).
By default, the cascaded block search is set with Bit 3 = 0.
Execution behavior
Basic functions
130 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
You can change the search target specifications and block search function before every block
search start.
%ORFNVHDUFKDFWLYH
'%'%;
$FWLRQEORFNDFWLYH
'%'%;
/DVWDFWLRQEORFNDFWLYH
'%'%;
&KDQQHOVWDWXVUHVHW
'%'%;
&KDQQHOVWDWXVLQWHUUXSWHG
'%'%;
Selection
From the following examples, select the type of block search that corresponds to your task.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 131
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
$SSURDFKPRYHPHQW 7RROFKDQJHSRLQW
7DUJHWEORFN1
$SSURDFKSRLQW
[
Figure 2-3 Approach motion for block search to block end point (target block N220)
Note
"Block search at contour" with target block N220 would generate an approach motion to the
tool change point (start point of the target block).
Basic functions
132 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
$SSURDFKPRYHPHQW 7RROFKDQJHSRLQW
$SSURDFKSRLQW
[
Figure 2-4 Approach motion for block search at contour (target block N260)
Note
"Block search to block end point" with target block N260 would result in Alarm 14040 (circle end
point error).
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 133
Mode group, channel, program operation, reset response
2.7 Block search, types 1, 2, and 4:
2.7.6 Constraints
Basic functions
134 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Channels
In combination with the HMI, SERUPRO is provided for the following channels:
● For the current SERUPRO channel only (1)
● For all channels with the same workpiece name as the SERUPRO channel (2)
● For all channels with the same mode group as the SERUPRO channel (3)
● For all channels of the NCU (4)
The scope of channels for SERUPRO is selected by means of configuration file maschine.ini,
in Section [BlockSearch]:
Section [BlockSearch] Enable block search function for HMI and select block search configuration
SeruproEnabled=1 ;SERUPRO softkey available for HMI. Default value is (1)
SeruproConfig=1 ;Number (1) to (4) of above indicated channel grouping. Default value is (1)
All other channels started with SERUPRO are operated in "Self-Acting SERUPRO" mode. Only
the channel in which a target block has been selected can be started with a block search in
SERUPRO mode.
Activation
SERUPRO is activated via the HMI. SERUPRO is operated using the "Prog.Test Contour"
softkey.
SERUPRO uses REPOS to approach the target block.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 135
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Note
After program testing has been deactivated, a REPOS operation is initiated that is subject to the
same restrictions as a SERUPRO approach operation. Any adverse effects can be inhibited
using an ASUP.
Basic functions
136 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 137
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
The "Reposition to the contour" (REPOS) function can be used to continue an interrupted
machining at the interrupted location. Unlike REPOS, SERUPRO permits the "refetching" or
"repetition" of a program section. For this purpose, once SERUPRO has found the target block,
the contour is positioned at the location selected with REPOS mode and the machining
continued.
Basic functions
138 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
<REPOS mode>
Bit Value Meaning
0 0 An interrupted delay time is repeated
1 An interrupted delay time is continued
1 - Reserved
2 0 DB31, ... DBX10.0 (REPOS delay) not considered in the repositioning deceleration
block.
1 DB31, ... DBX10.0 (REPOS delay) considered in the repositioning deceleration
block.
3 0 SERUPRO: Only path axes traverse in the repositioning block
1 SERUPRO: Path and positioning axes traverse concurrently in the repositioning
block
4 0 REPOS: Only path axes traverse in the repositioning block
1 REPOS: Path and positioning axes traverse concurrently in the repositioning block
5 0 During the interruption, changed feedrates and spindle speeds act only after the
first part program block following the interruption location
1 Modified feedrates and spindle speeds during the interruption are valid immedi‐
ately from the interruption point onward, i.e. they are already valid in the residual
block and are given priority. This behavior relates to every REPOS operation.
6 0 SERUPRO: In the repositioning block, neutral axes and positioning spindles tra‐
verse as path axes.
1 SERUPRO: In the repositioning block, neutral axes and positioning spindles tra‐
verse as command axes.
Neutral axes and positioning spindles are repositioned after SERUPRO.
For neutral axes, where it is not permissible to reposition them, the REPOS delay
must be set: DB31, ... DBX10.0 = 1 (REPOS delay)
7 0 The REPOS delay is not enabled.
1 The REPOS delay is enabled.
Axes with active REPOS delay (DB31, ... DBX10.0 == 1), which are neither ge‐
ometry nor orientation axes, are not traversed when repositioning.
CAUTION
Risk of collision
MD11470 $MN_REPOS_MODE_MASK, Bit 3 or Bit 4 = 1
The user alone is responsible for ensuring that the concurrent traversal of the axes in the
repositioning block does not cause any collision on the machine.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 139
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
DANGER
Risk of collision
Signal DB31, ... DBX2.2 (delete distance-to-go) produces the following dangerous behavior
when function "Prevent repositioning of individual axes" is selected:
MD11470 $MN_REPOS_MODE_MASK.bit 2 == 1
As long as an axis is programmed incrementally after the interruption, the NC approaches
different positions than those approached with no interruption.
See the example below: Axis is programmed incrementally
Basic functions
140 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
DANGER
Risk of collision
As, after the interruption, the axis is incrementally programmed, it moves to 16° instead of
32°.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 141
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Whether this axis is currently subject to a REPOS offset can be read via synchronized actions
with $AA_REPOS_DELAY.
CAUTION
Risk of collision
DB31, ... DBX10.0 (REPOS delay) have no effect on machine axes, which form a path.
Whether an axis is a path axis can be determined using DB31, ... DBX76.4 (path axis).
Note
In a running ASUP, DB21, ... DBX31.4 (REPOS mode change) does not act on the final
REPOS, unless the signal is inadvertently set at the instant in time that the REPOS blocks are
being executed.
In the 1st case, the signal is allowed only in the stopped state.
Response to RESET:
● The NC has already acknowledged the PLC signal:
DB21, ... DBX31.4 == 1 (REPOS mode change) AND
DB21, ... DBX319.0 == 1 (REPOS mode change acknowledgment)
If, in this situation, a channel reset occurs, then the active REPOS mode is cleared:
DB21, ... DBX319.1 - 3 = 0 (active REPOS mode)
● The NC has still not acknowledged the PLC signal:
DB21, ... DBX31.4 == 1 (REPOS mode change) AND
DB21, ... DBX319.0 == 0 (REPOS mode change acknowledgment)
If, in this situation, a channel reset occurs, then acknowledgment of the REPOS mode
change and the active REPOS mode are cleared:
DB21, ... DBX319.0 = 0 (REPOS mode change acknowledgment)
DB21, ... DBX319.1 - 3 = 0 (active REPOS mode)
Basic functions
142 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Note
If the NC has not yet acknowledged interface signal DB21, ... DBX31.4 (REPOS MODE
CHANGE) with interface signal DB21, ... DBX319.0 (REPOS mode change acknowledgment)
, then a channel reset in this situation causes the program to be canceled, and the REPOS,
which is to be used to control the REPOS mode, is not executed.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 143
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
A REPOS mode issued from the PLC is acknowledged by the NC using the following interface
signals:
● DB21, ... DBX319.1 - 3 (active REPOS mode)
● DB31, ... DBX10.0 (REPOS delay)
● DB31, ... DBX70.2 (REPOS delay acknowledgment)
Example
● Instant in time ②: An NC program in block N20 is stopped with an NC stop. All axes are
braked along their parameterized braking ramps to standstill.
● Instant in time ③: After the PLC user program has set the "REPOS mode", the NC accepts
the REPOS mode with the 0/1 edge of "REPOS mode change".
● Instant in time ④: "REPOS mode change acknowledgment" remains set until the ASUP is
initiated.
● Instant in time ⑤: The REPOS operation begins in the ASUP.
● Instant in time ⑥: The residual block of the ASUP is reloaded.
&RPPDQGZLWK$683LVEHJXQ
5HDSSURDFKPRYHPHQWRI
5(326LVHQGHG
7KHUHPDLQGHUVHWEHJLQV
1
3UHVHOHFW501%/
6WRSRIWKHSDUWSURJUDP
6WRSRIWKHSDUWSURJUDP 7KHUHPDLQGHUVHWHQGV
5(3263$7+02'(
5(32602'(('*(
5(32602'(('*($&.1
5HSRV3DWK0RGH4XLWW
W
Figure 2-5 REPOS sequence in part program with timed acknowledgment signals from NC
Basic functions
144 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
As soon as the REPOS repositioning motion of the ASUP is executed, the NC sets the "Repos
Path Mode Ackn" again (→ Time (5)). If no REPOSPATHMODE has been preselected via an
NC/PLC interface signal, the programmed REPOS mode is displayed.
"Repos Path Mode Ackn" is canceled when the residual block is activated (→ Time (6)).
The part program block N30 following the block at → Time (2) is resumed.
Interface signal:
DB31, ... DBX70.2 (REPOS delay acknowledgment) is analogously defined.
DB31, ... DBX70.1 (REPOS offset valid) = 1, if:
DB21, ... DBX319.1-319.3 (active REPOS mode) = 4 (RMNBL).
Range of validity
Interface signal:
DB31, ... DBX70.0 (REPOS offset)
is supplied at the end of the SERUPRO operation.
The REPOS offset is invalidated at the start of a SERUPRO ASUP or the automatic ASUP start.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 145
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Value 0: All axes currently controlled by this channel have either no REPOS offset or their
REPOS offsets are invalid.
Value 1: Miscellaneous.
Further information
A detailed description of the interface signals can be found in the Function Manual PLC.
Basic functions
146 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Example
The program is interrupted at any point in the block N110. The axes were then traversed to
position (A), e.g. manually. Once SERUPRO has found target block N110, the REPOS
operation with REPOS mode RMNBL is performed. With regard to the REPOS start position (A),
point (B) is the next nearest point of the contour. The REPOS operation is completed when
point (B) is reached. The programmed contour of the interrupted program is traversed again
starting at point (B).
,QWHUUXSWLRQSRLQW1
%
1 1
Note
RMNBL is a general REPOS extension and it is not restricted to SERUPRO.
RMIBL and RMBBL behavior identically for SERUPRO.
DB21, ... DBX31.0 - .2 (REPOS mode) affects only the traversing motion of the path axes.
The behavior of the other axis can be changed individually using interface signal DB31, ...
DBX10.0 (REPOSDELAY). The REPOS offset is not applied immediately, but only when it is
next programmed.
For further information on the programming of the repositioning point, see:
Further information
"NC Programming" Programming Manual
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 147
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
<Value> Meaning
0 Program test with block search velocity / dry run feedrate:
● Axes: MD22601 $MC_SERUPRO_SPEED_FACTOR * dry run feedrate
● Spindles: MD22601 $MC_SERUPRO_SPEED_FACTOR * programmed speed
Dynamic limitations of axes / spindles are not considered.
1 Program test with programmed velocity:
● Axes: Dry run feedrate
● Spindles: Programmed speed
Dynamic limitations of axes / spindles are considered.
2 Program test with dry run feedrate
Under program test, traversing is performed with the programmed velocity / speed.
Dynamic limitations of axes / spindles are considered.
3 Program test with block search velocity
Under program test, traversing is performed with the following velocity:
● Axes: MD22601 $MC_SERUPRO_SPEED_FACTOR * programmed feedrate
● Spindles: MD22601 $MC_SERUPRO_SPEED_FACTOR * programmed speed.
Dynamic limitations of axes / spindles are not considered.
Note
When revolutional feedrate is active (e.g. G95), the programmed feedrate is not multiplied by
MD22601 $MC_SERUPRO_SPEED_FACTOR but only the programmed spindle speed.
This results, here too, in an increase in the effective path velocity by MD22601 $MC_SER‐
UPRO_SPEED_FACTOR.
Supplementary conditions
Main axes
MD22600 $MC_SERUPRO_SPEED_MODE acts on the following main run axes with
SERUPRO:
● PLC axes
● Command axes
● Positioning axes
● Reciprocating axes
Basic functions
148 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Synchronized actions
NOTICE
Actions of synchronized action may not be executed with SERUPRO
Because during SERUPRO other actual values (e.g. axis positions) are generated internally
that are different from those in normal program execution, with SERUPRO, conditions of
synchronized actions that check the actual values (e.g. axis positions) are no longer
recognized as true (TRUE) and that the action part of the synchronized action is therefore not
executed.
Revolutional feedrate
Effects of MD22601 $MC_SERUPRO_SPEED_FACTOR during DryRun:
● Switchover of G95/G96/G961/G97/G971 to G94
● Tapping and thread cutting: Normal dry run velocity.
Tool management
If tool management is active, the following setting is recommended:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 149
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Example
Tool change subprogram
N580 GETSELT(TNR_VORWAHL) ; Read T number of the preselected tool of the master spindle
; Execute tool change only if tool is not yet current
N590 IF TNR_AKTUELL <> TNR_VORWAHL ; Approach tool change point
N600 G0 G40 G60 G90 SUPA X450 Y300
Z300 D0
N610 M206 ; Execute tool change
N620 ENDIF
N630 M17
Basic functions
150 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
ASUP for calling the tool change routine after type 5 block search
N1085 ASUP_ENDE1:
N1090 IF TNR_VORWAHL == TNR_SUCHLAUF GOTOF AS-
UP_ENDE
N1100 T = $TC_TP2[TNR_VORWAHL] ; Restore T preselection by tool name
N1110 ASUP_ENDE:
N1110 M90 ; Feedback to PLC
N1120 REPOSA ; ASUP end
In both of the programs PROC L6 and PROC ASUPWZV2, the tool change is programmed with
M206 instead of M6.
ASUP "ASUPWZV2" uses different system variables to detect the progress of the program
($P_TOOLNO) and represent the current status of the machine ($TC_MPP6[9998,1] ).
Spindle ramp-up
When the SERUPRO ASUP is started, the spindle is not accelerated to the speed specified in
the program because the SERUPRO ASUP is intended to move the new tool into the correct
position at the workpiece after the tool change.
A spindle ramp-up is performed with SERUPRO ASUP as follows:
● SERUPRO operation has finished completely.
● The user starts the SERUPRO ASUP via function block FC 9
in order to ramp up the spindle.
● The start after M0 in the ASUP does not change the spindle status.
● SERUPRO ASUP automatically stops before the REPOS part program block.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 151
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Self-acting SERUPRO
The channel-specific function "Self-acting SERUPRO" allows a SERUPRO sequence without
having to previously define a search target in a program of the associated SERUPRO channels.
A special channel, the "serurpoMasterChan", can also be defined for each "Self-acting
SERUPRO". A search target can be defined in this channel.
The "Self-acting SERUPRO" function supports the SERUPRO cross-channel block search.
Function
The "Self-acting SERUPRO" operation cannot be used to find a search target. If the search
target is not reached, then no channel is stopped. However, in certain situations the channel is
temporarily stopped. Generally, the channel waits for another channel. Examples are: Wait
marks, couplings or axis interchange.
Basic functions
152 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Activation
"Self-acting SERUPRO" is activated via the HMI as a block search start for the Type 5 block
search for target channel "seruproMasterChan".
A search target is not specified for the dependent channels started from the target channel.
Programming
Syntax
IPTRLOCK()
Functionality
Marks the beginning of the program section as of which "Continue machining at the contour" is
locked. The next executable block (main run block) in which IPTRLOCK becomes active is now
used as target block for a block search with "Continue machining at the interruption point", until
the release with IPTRUNLOCK. This block is referred to as the hold block in the following.
Effectiveness: Modal
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 153
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Syntax
IPTRUNLOCK()
Marks the end of the program section locked for "Continue machining at the contour". As of the
next executable block (main run block) in which IPTRLOCK becomes active, the current block
is used again as target block for a block search with "Continue machining at the interruption
point". This block is referred to as the release block in the following.
Effectiveness: Modal
Example
Supplementary conditions
● IPTRLOCK acts within a program (*.MPF, *.SPF) at the most up to the end of the program
(M30, M17, RET). IPTRUNLOCK implicitly becomes active at the end of the program.
● Multiple programming of IPTRLOCK within a program does not have a cumulative effect.
With the first programming of IPTRUNLOCK within the program or when the end of the
program is reached, all previous IPTRLOCK calls are terminated.
● If there is a subprogram call within a locked area, "Continue machining at the contour" is also
locked for this and all following subprogram levels. The lock also cannot be cancelled within
the called subprogram through explicit programming of IPTRUNLOCK.
Basic functions
154 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
System variable
The status of the current block can be determined via the system variable $P_IPTRLOCK:
$P_IPTRLOCK Meaning
FALSE The current block is not within a program section locked for "Continue machining
at the contour"
TRUE The current block is within a program section locked for "Continue machining at the
contour"
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 155
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
This program section begins with the last executable block before the activation and ends with
the deactivation.
The automatic interrupt pointer is not active for couplings that were activated or deactivated via
synchronized actions.
Example: Automatically declaring axial master value coupling as search-suppressed:
A program abort within search-suppressed program section (N200 - N500) always provides the
interrupt pointer with N100.
NOTICE
Unwanted state caused by function overlappings
If there is an overlap of the "Programmable interrupt pointer" and "Automatic interrupt pointer"
functions via machine data, the NC selects the largest possible search-suppressed area.
A program may need a coupling for almost all of the runtime. In this case, the automatic
interrupt pointer would always point to the start of the program and the SERUPRO function
would in fact be useless.
SERUPRO is inactive at Power On. The operating mode change is permitted during
SERUPRO. RESET aborts SERUPRO, the internally selected program test is deselected
again. SERUPRO cannot be combined with other block search types.
Basic functions
156 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Via an implicit STOPRE before N50, the NC can read and correctly calculate the current work
offset.
For a SERUPRO operation on the N50 search target, repositioning is on the implicit STOPRE
in the SERUPRO approach and the velocity is determined from N40 with F5000.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 157
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
System variable
The system variables for "Travel to fixed stop" have the following meaning with SERUPRO:
● $AA_FXS: Progress of the program simulation
● $VA_FXS: Real machine state
The two system variables always have the same values outside the SERUPRO function.
ASUP
A user-specific ASUP can be activated for SERUPRO.
Basic functions
158 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Further information
Detailed information regarding the SERUPRO block search can be obtained in the Function
Manual Axes and Spindles; Travel to fixed stop.
System variable
The system variables for "Travel with limited torque/force" have the following meaning with
SERUPRO:
● $AA_FOC: Progress of the program simulation
● $VA_FOC: Real machine state
Boundary condition
A changing torque characteristic cannot be implemented during repositioning.
Example
A program traverses axis X from 0 to 100 and switches "Travel with limited torque/force" (FOC)
on every 20 increments for 10 increments. This torque characteristic is usually generated with
non-modal FOC and cannot be performed during repositioning (REPOS). Instead, axis X is
traversed from 0 to 100 with or without limited torque/force in accordance with the last
programming.
Further information
Detailed information regarding the SERUPRO block search can be obtained in the Function
Manual Axes and Spindles; Travel to fixed stop.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 159
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
CAUTION
Incorrect simulation
In order to be able to simulate couplings correctly, they must have been switched off
previously.
This can be performed with machine data MD10708 $MA_SERUPRO_MASK.
LEADON
The following specifications apply for the simulation of axial master value couplings:
1. Simulation always takes place with setpoint coupling.
2. SERUPRO approach takes place with active coupling and an overlaid motion of the
following axis in order to reach the simulated target point.
The following axis that is moved solely by the coupling cannot always reach the target point. In
SERUPRO approach, an overlaid linear motion is calculated for the following axis to approach
the simulated point!
Basic functions
160 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Note
For further information on the repositioning of axis couplings, see Section "Repositioning to the
contour (REPOS) (Page 138)".
Master-slave
A system ASUP can be started automatically after the block search has finished. In this ASUP,
the user can control the coupling state and the associated axis positions subsequently. The
required information is provided via the following system variables:
Note
The coupled axes must be in the same channel when the block search is executed.
Further information
Further information regarding the master-slave coupling can be obtained in the Function
Manual Technologies; Speed/torque coupling, master-slave"
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 161
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Example
● System ASUP
– Path and name: /_N_CMA_DIR/PROGEVENT.SPF
– Master axis: X
– Slave axis: Y
Program code
PROG PROGEVENT
N10 IF(($S_SEARCH_MASLC[Y]< >0) AND ($AA_MASL_STAT[Y]< >0))
N20 MASLOF(Y)
N30 SUPA Y = $AA_IM[X] - $P_SEARCH_MASLD[Y]
N40 MASLON(Y)
N50 ENDIF
N60 REPOSA
...
RET
● Machine data
To ensure that the ASUP starts automatically, the following machine data must be set:
– NC-specific machine data:
- MD11604 $MN_ASUP_START_PRIO_LEVEL = 100
- MD11450 $MN_SEARCH_RUN_MODE = 'H02'
– Channel-specifically for the channel in which the ASUP is started or generally for all
channels:
- MD20105 $MC_PROG_EVENT_IGN_REFP_LOCK, bit<n> = TRUE
n: For all required event-driven program calls (prog events)
- MD20115 $MC_IGNORE_REFP_LOCK_ASUP, bit<n> = TRUE
n: For all required user interrupts
NOTICE
System interrupts
MD20115 $MC_IGNORE_REFP_LOCK_ASUP, bits 8 to 31 enable the system
interrupts.
Bit 8 / interrupt 9 starts an ASUP that contains traversing motions.
Basic functions
162 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Axis couplings
● Acceleration of the processing speed and leading axis and following axes in different
channels
For a leading axis whose following axes are assigned to a different channel than that of the
leading axis, the setting for acceleration of the execution speed has no effect (MD22601
(Page 147)$MC_SERUPRO_SPEED_FACTOR):
● Coupled motion
The coupled motion function (TRAILON) is supported by SERUPRO.
Further information
For further information on coupled motion with TRAILON and TRAILOF, see:
– Function Manual Axes and Spindles; Axis couplings
– Programming Manual Advanced; Axis couplings
● Gantry axes
The gantry axis function is supported by SERUPRO.
Further information
Further information regarding the functionality of gantry axes can be obtained in the
Function Manual Axes and Spindles; Gantry axes
● Tangential control
The tangential follow-up of individual axes function is supported by SERUPRO.
Further information
Further information on the tangential control can be found in the Function Manual Special
Functions; Tangential control
SERUPRO conditions
The special conditions for SERUPRO must be observed with axis enable, autonomous axis
operations, and axis replacement.
Axis enable
The axial interface DB31, ... DBX3.7 ("Program test axis/spindle enable") controls the axis
enables if no closed-loop controller enable is to (or can) be issued at the machine and is active
only during the program test or when SERUPRO is active.
It is possible to issue this enable via interface signal PLC → NC
DB31, ... DBX3.7 (program test axis/spindle enable). If the real servo enable is missing during
program test or SERUPRO, the effect on the axes/spindles is as follows:
● As soon as the simulated program run intends to move an axis/spindle, the message
"Waiting for axis enable" or "Waiting for spindle enable" is displayed and the simulation is
stopped.
● If during a simulated motion, NC/PLC interface signal DB31, ... DBX3.7 (program test axis/
spindle enable) is then canceled, alarm 21612: "Channel %1 axis %2 NC/PLC interface
signal 'controller enable' reset during motion" is activated.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 163
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Axis replacement
Problem: A program moves an axis and gives up control before the target block with WAITP(X).
X is thus not subject to REPOS and the axis is not taken into account in SERUPRO approach.
Via the machine data MD11470 $MN_REPOS_MODE_MASK, the following behavior can be
achieved for SERUPRO-REPOS:
The neutral axes are moved as "command axes" in the SERUPRO-REPOS. The axis
interpolates without a path context even if it was last programmed as a path axis. In this
scenario, the velocity results from MD32060 $MA_POS_AX_VELO. After SERUPRO
approach, this axis is again neutral.
Neutral axes that are however not allowed to be repositioned must receive the axial NC/PLC
interface signal "REPOSDELAY". This deletes the REPOS movement.
Example:
After SERUPRO, one axis is deliberately moved in the synchronized action via technology
cycles. The command axes are always moved in the approach block, never in the target block.
The target block can only be changed if all command axes have been moved to the end.
CAUTION
The PLC-controlled axis is not repositioned
Axes enabled by RELEASE(X) before the target block are not repositioned.
Operational sequences
The gear stage change (GSC) requires physical motions from the NC in order to be able to
engage a new gear.
In the SERUPRO operation, no gear stage change is required and is carried out as follows:
Some gears can only be changed when controlled by the NC, since either the axis must
oscillate or a certain position must be approached beforehand.
The gear stage change can be suppressed selectively for DryRun, program test, and
SERUPRO using bits 0 to 2 in MD35035 $MA_SPIND_FUNCTION_MASK.
Basic functions
164 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
The gear stage change must then be performed in REPOS; this will work even if the axis
involved is to be in "speed control mode" at the target block. In other cases, the automatic gear
stage change is denied with an alarm if, for example, the axis was involved in a transformation
or coupling between the gear stage change and the target block.
Note
For further information regarding gear stage change with DryRun, program test and
SERUPRO, see Function Manual Axes and Spindles under Spindles.
Only SERUPRO
If "overlaid movements" are used, only the block search via program test (SERUPRO) can be
used, since the overlaid movements are interpolated accordingly in the main run. This applies
in particular to $AA_OFF.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 165
Mode group, channel, program operation, reset response
2.8 Block search Type 5 (SERUPRO)
Example:
The synchronous spindle coupling at the beginning of the SERUPRO operation is retained for
the part program start.
Basic functions
166 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
2.9.1 Function
Note
The terms "asynchronous subprogram", "ASUB" and "interrupt routine" used interchangeably
in the description below refer to the same functionality.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 167
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
General
Asynchronous subprograms (ASUB) are NC programs that are started in an NC channel as
response to asynchronous events (interrupt input signals, process and machine states). The
activation of an ASUB interrupts an NC program currently executing. The NC program can be
continued at the interrupt position when the ASUB ends.
0DLQSURJUDPVXESURJUDP ,QWHUUXSWURXWLQH
16(7,17 $VVLJQDURXWLQHWRDQHYHQW
DQGVZLWFKWRUHDG\
1
1 0
1
1
1 5HWXUQSRVVLEOH
10
The NC program being executed in the channel can be protected from being interrupted by an
ASUB either completely or only in sections. See Section "Programming (SETINT, PRIO)
(Page 177)" "Flexible programming".
Definition
To create an ASUB (interrupt routine) from an NC program, an interrupt signal must be
assigned to the NC program via the SETINT command (see Section "Programming (SETINT,
PRIO) (Page 177)") or via the PI service "ASUB" (see "PLC" Function Manual) in the block
descriptions.
Interrupt signals
● A total of eight I/O inputs are available as interrupt signals.
● The I/O input signals can be influenced via the PLC user program.
● The first four I/O inputs are the four fast inputs of the NCU module. The signal states can be
read via the NC/PLC interface in the DB10 data block. The input signals can also be locked
via the NC/PLC interface in the DB10 data block.
Basic functions
168 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
Further information
● You will find more information under Digital and analog NC I/O (Page 687).
● Further information regarding PLC control of the fast NC inputs (interrupt signals) can be
obtained in the Function Manual PLC.
Call
Activation
An ASUB is activated via:
● 0/1 edge of the interrupt signal, triggered by a 0/1 edge at the associated fast NC input
● Calling of the "Function Call ASUB" (see also Function Manual "PLC and Basic Program",
Section "Basic PLC program").
● Setting an output via synchronized action which is parameterized on an interrupt via short-
circuit (see "Examples (Page 180)")
Further information
Function Manual Synchronized Actions
Display
The activation of an ASUB is shown channel-specifically with the following NC/PLC interface
signal:
DB21, … DBX378.0 == 1 (ASUB active)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 169
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
352*B1$0( ,17(5B1$0(
1 1
1< $68%WUDYHOSDWK (QGSRLQWRIWKH 1
1; $68% 1
1 1 15(326/0
10 &RQWLQXH*
1
ZLWKRXW5(326
1
6 WK
1
L
5( LRQZ
1
1
32
LW
SRV
&RQWLQXH*
5H
ZLWKRXW5(326
1
1
&RQWLQXHDIWHU
5(326 1
,QWHUUXSWLRQSRLQW
1
Basic functions
170 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
Note
For ASUPs without REPOS, the FC9 acknowledge signal "ASUP done" and the reset of the
NC/PLC interface signal DB21, ... DBX318.0 = 0 (ASUP is stopped) coincide from a timing
perspective.
3DWKPRWLRQRIDQ &RQWUROLVVWRSSHG
$68%ZLWK5(326$ $68%ZLWK5(326$ DXWRPDWLFDOO\
(YHQWWKDWSXWVWKHFRQWURO
LQWRWKHVWRSSHGVWDWXV ,6$68%VWRSSHGLV
RFFXUV VHW
([DPSOH6WRSNH\
)&EORFNVLJQDOV$68%'RQH
&RQWUROKDVVWRSSHGDIWHU
ZKLFKWKH$683LVVWDUWHG
E\WKH)& 3DWKRIWKHSDUWSURJUDP
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 171
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
2.9.1.3 NC response
The different responses in the various states for channel, mode group or NC on an activated
ASUP are listed in the following table:
Basic functions
172 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
2.9.2.1 NC-spec.: Mode-group-specific NC/PLC interface signals and operating mode switchover
The machine data specifies the effectiveness of the mode-group-specific NC/PLC interface
signals of DB11 and the channels in which an operating mode switchover is performed:
MD11600 $MN_BAG_MASK = <Value>
Val‐ Meaning
ue
0 The mode-group-specific NC/PLC interface signals of DB11 are effective.
An internal operating mode switchover is performed in all channels of the mode group.
1 The mode-group-specific NC/PLC interface signals of DB11 are not effective.
An internal operating mode switchover is performed only in the channel in which an ASUP is
active.
2 The mode-group-specific NC/PLC interface signals of DB11 are effective.
An internal operating mode switchover is performed only in the channel in which an ASUP is
active.
3 The mode-group-specific NC/PLC interface signals of DB11 are not effective.
An internal operating mode switchover is performed only in the channel in which an ASUP is
active.
Note
Multi-channel systems
If the "Manual traversing during an ASUP interruption in JOG mode" function is to be possible
in multi-channel systems (see below), MD11600 $MN_BAG_MASK must be set to "2" or "3".
See also
Programming (SETINT, PRIO) (Page 177)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 173
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
Note
The ASUP for "fast retraction from the contour" (LIFTFAST) is started in every case.
Basic functions
174 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
Example
MD11604 $MN_ASUP_START_PRIO_LEVEL = 5
The settings in MD11602 $MN_ASUP_START_MASK are effective for ASUPs of priorities 1 →
5.
NOTICE
System interrupts
With MD20115 $MC_IGNORE_REFP_LOCK_ASUP, bits 8 - 31, the ASUPs assigned to the
system interrupts are enabled.
Bit 8 / interrupt 9 starts an ASUP that contains traversing motions.
NC-specific ASUP start enable
If MD11602 $MN_ASUP_START_MASK, bit 2 == TRUE, the ASUP start enable is set for all
channels of the NC despite the parameterized channel-specific "NC start disable without
reference point" function (MD20700 $MC_REFP_NC_START_LOCK). It is therefore strongly
recommended that the channel-specific enable is used instead of the NC-specific enable.
NOTICE
System interrupts
With MD20116 $MC_IGNORE_INHIBIT_ASUP, bits 8 - 31, the ASUPs assigned to the
system interrupts are enabled.
Bit 8 / interrupt 9 starts an ASUP that contains traversing motions.
NC-specific ASUP start enable
If MD11602 $MN_ASUP_START_MASK, bit 2 == TRUE, the channel-specific settings in
MD20116 $MC_IGNORE_INHIBIT_ASUP are ignored in all channels of the NC. It is
therefore strongly recommended that the channel-specific enable is used instead of the NC-
specific enable.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 175
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
Supplementary conditions
The settings in MD20117 $MC_IGNORE_SINGLEBLOCK_ASUP are only active for a single
block SBL1 (main run single block).
NOTICE
System interrupts
With MD20117 $MC_IGNORE_SINGLEBLOCK_ASUP, bits 8 - 31, the ASUPs assigned to
the system interrupts are enabled.
Bit 8 / interrupt 9 starts an ASUP that contains traversing motions.
NC-specific ASUP start enable
If MD10702 $MN_IGNORE_SINGLEBLOCK_MASK, bit 1 == TRUE, the channel-specific
settings in MD20117 $MC_IGNORE_SINGLEBLOCK_ASUP are ignored in all channels of
the NC. It is therefore strongly recommended that the channel-specific enable is used instead
of the NC-specific enable.
Note
NC/PLC interface signal
The following NC/PLC interface signal is set when executing an ASUP with suppressed display:
DB21, … DBX378.1 = 1 ("silent" ASUP active)
Basic functions
176 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
Value Meaning
0 Repositioning with REPOS not possible because:
● Not called in the ASUP
● ASUP ran from reset state
● ASUP ran from JOG
1 Repositioning with REPOS possible in ASUP
Syntax
SETINT(<n>) <NC program>
Meaning
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 177
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
Example
Priorities
If several interrupts are activated by SETINT in an NC program, the assigned NC programs or
ASUBs must be assigned different priorities.
Syntax
PRIO=<value>
Meaning
Example
The ASUBs are executed in the sequence of the priority values if the inputs 2 and 3 have
switched simultaneously:
1. "LIFT_Z"
2. "LIFT_X"
Basic functions
178 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
Command Meaning
SAVE If the SAVE command is used in an ASUB, the G commands, frames and
transformations active in the interrupted NC program before the interrup‐
tion take effect again at the end of the ASUB.
DISABLE The DISABLE ENABLE command pair can be set to protect program sec‐
ENABLE tions from being interrupted by ASUBs.
The assignment of an interrupt signal to an NC program made with SETINT
is retained.
The ASUB is then started with the next 0/1 edge of the interrupt signal
after ENABLE.
CLRINT(<n>) Delete the assignment of interrupt signals n to the NC program assigned
with SETI.
Further information
"NC Programming" Programming Manual
See also
Programming (Page 182)
2.9.5 Restrictions
Settings to be checked
● MD11600 $MN_BAG_MASK
● MD11604 $MN_ASUP_START_PRIO_LEVEL
● Interrupt assignment priority
Recommended settings
NC-specific machine data:
● MD11600 $MN_BAG_MASK = 'H3'
Note
Note with this setting, that the mode-group-specific NC/PLC interface signals of DB11 no
longer affect the channel in which the ASUP is executed. If this behavior is not desired,
alternatively the setting MD11600 $MN_BAG_MASK = 'H2' can be used (see
"Commissioning: Machine data (Page 173)").
MD11602 $MN_ASUP_START_MASK = 'H5'
● MD11604 $MN_ASUP_START_PRIO_LEVEL = 7
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 179
Mode group, channel, program operation, reset response
2.9 Asynchronous subprograms (ASUPs)
Channel-specific machine data for the channel in which the ASUP is started or generally for all
channels:
● MD20105 $MC_PROG_EVENT_IGN_REFP_LOCK, bit <n> = TRUE
<n>: For all required event-driven program calls (prog events)
● MD20115 $MC_IGNORE_REFP_LOCK_ASUP, bit <n> = TRUE
<n>: For all required user interrupts
NOTICE
System interrupts
With MD20115 $MC_IGNORE_REFP_LOCK_ASUP, bits 8 - 31, the system interrupts are
enabled.
Bit 8 / interrupt 9 starts an ASUP that contains traversing motions.
2.9.6 Examples
Basic functions
180 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.10 User-specific ASUB for RET and REPOS
2.10.1 Function
Function
The control software includes a Siemens-specific ASUP to implement the NC program end
(RET) and repositioning on the contour (REPOS) functions. The machine tool manufacturer
can replace the system ASUP with a user-specific ASUP.
DANGER
Programming fault
The machine manufacturer has sole responsibility for ensuring the correct operation of the
user-specific ASUP that replaces the Siemens-specific ASUP ("ASUP.SYF").
Installation
ASUP name
The user-specific ASUP must be given the following name:
● _N_ASUP_SPF
ASUP directories
The user-specific ASUP "_N_ASUP_SPF" must be stored in one of the two directories:
● _N_CMA_DIR (manufacturer directory)
● _N_CUS_DIR (user directory)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 181
Mode group, channel, program operation, reset response
2.10 User-specific ASUB for RET and REPOS
2.10.3 Programming
Basic functions
182 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.11 Perform ASUB start for user alarms
Continuation
When using the system ASUB, the behavior for the continuation after execution of the actions
is permanently specified within the ASUB:
● System ASUB 1 → continuation with RET (subprogram return)
● System ASUB 2 → continuation with REPOS (repositioning)
The description of the system variables specifies the behavior with regard to the system ASUB
for each cause at "Continued for".
Note
Continued for user-specific ASUB
It is recommended for user-specific ASUBs that the appropriate continuation of the system
ASUB be retained.
Cause: Change of operating mode ($AC_ASUP, bit 9 == 1)
At a change of operating mode, the continuation depends on the machine data:
MD20114 $MC_MODESWITCH_MASK (interruption of MDA through mode change)
● Bit 0 == 0: System ASUB 1 → continuation with RET
● Bit 0 == 1: System ASUB 2 → continuation with REPOS
Further information
A detailed description regarding the system variable can be obtained in the List Manual System
Variables
2.11.1 Function
Description
An ASUB can be initiated in various situations, either by the user, the system or event-
controlled. A user alarm with the "NC Start disable" alarm response prevents the ASUB start in
some situations. For a pending alarm response, a user ASUB from reset acknowledges with the
alarm 16906.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 183
Mode group, channel, program operation, reset response
2.11 Perform ASUB start for user alarms
With the appropriate setting of a channel-specific machine data it is possible to start and
perform an ASUB although a user alarm with the alarm response "NC Start disable" is active.
The alarm response is overridden for the ASUB start and permits its execution.
Note
NC alarms with the "NC Start disable" alarm response are not affected by the override. A user
ASUB from reset is still not possible and will be rejected with the alarm 16906.
Note
Although it is possible to override the "NC Start disable" alarm response for the following alarm
number ranges, the other responses of the associated alarms ensure for the stop conditions.
The stop conditions cannot be overridden with the function described in this section:
● 66000 - 66999
● 68000 - 68999
● 69000 - 69999
2.11.2 Activation
Setting
Each ASUP channel can be set separately with the following channel-specific machine data:
MD20194 $MC_IGNORE_NONCSTART_ASUP (ASUP start permitted despite pending alarm
response "NC Start disable" for certain user alarms)
A change of the MD setting acts only with the NEWCONF part program command or from the user
interface per softkey.
Basic functions
184 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.11 Perform ASUB start for user alarms
Sequence
The normal sequence for the ASUP start has the following form:
● Set machine data appropriate with MD20194 $MC_IGNORE_NONCSTART_ASUP and
activate with NEWCONF.
● Start the part program.
A user alarm from the number ranges that can be overridden appears, e.g. alarm 65500.
This can occur from a synchronized action or with a part program command.
● Despite alarm, the part program is processed to the program end M02, M30 or M17.
The Reset channel state is active.
● A started user ASUP from reset is now performed.
Note
An ASUP start from a running or stopped part program is also permitted for a pending "NC Start
disable" alarm response. It is irrelevant whether a user alarm or an NC alarm with the "NC Start
disable" alarm response is involved.
Note
If the part program is stopped during the processing of the user ASUP, the ASUP can no longer
be continued with the NC Start key, e.g. for M0 in the ASUP or for user stop. The "NC Start
disable" alarm response is rejected with the alarm 16906. The previously generated user alarm
can be acknowledged only with reset.
2.11.3 Examples
Main program
Program code
N10 G90 G0 Z10
N20 SETAL(65500)
N30 X100
N40 Z0
N50 M30
User ASUB
Program code
N110 G91 G0 X-10 Z5
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 185
Mode group, channel, program operation, reset response
2.11 Perform ASUB start for user alarms
Program code
N120 X20
N130 REPOSA
Sequence
1
$ODUP
1 5(326$
1
8VHU$68%IURPUHVHW 0
$ODUP
The block N10 is processed. The alarm 65500 appears that contains the "Display" and "NC
Start disable" alarm responses. The part program does not stop as result. The block N30 is
loaded and processed. If the user ASUB is used in the block middle, it is performed despite
pending "NC Start disable" alarm response. The REPOSA resumes at the program interruption
and processes the part program to the program end M30. If the user ASUB is now used, it will
be rejected with alarm 16906. The NC state is reset.
Main program
Program code
N4 $MC_IGNORE_NONCSTART_ASUP=1
N6 NEWCONF
N10 G90 G0 Z10
N20 SETAL(65500)
N30 X100
N40 Z0
N50 M30
Basic functions
186 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.11 Perform ASUB start for user alarms
User ASUB
Program code
N110 G91 G0 X-10 Z5
N120 X20
N130 REPOSA
Sequence
1
$ODUP
1 5(326$
1
1
8VHU$68%IURPDFWLYH
1 SURJUDP 1
1 5(326$
8VHU$68%IURPUHVHW 0
Main program
Program code
N4 $MC_IGNORE_NONCSTART_ASUP=1
N6 NEWCONF
N10 G90 G0 Z10
N20 SETAL(65500)
N30 X100
N40 Z0
N50 M30
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 187
Mode group, channel, program operation, reset response
2.11 Perform ASUB start for user alarms
User ASUB
Program code
N110 G91 G0 X-10 Z5
N120 X10
N122 M0
N124 X10
N130 REPOSA
Sequence
1
8VHU$68%IURPDFWLYH
1 SURJUDP
Main program
Program code
N4 $MC_IGNORE_NONCSTART_ASUP=1
N6 NEWCONF
N10 G90 G0 Z10
N20 SETAL(65500)
N30 X100
N40 Z0
Basic functions
188 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.11 Perform ASUB start for user alarms
Program code
N50 M30
User ASUB
Program code
N110 G91 G0 X-10 Z5
N120 X20
N130 REPOSA
Sequence
1&VWRS
1 $ODUP
$ODUP
1&VWDUWDIWHUVWDQGVWLOO
1
1
8VHU$68%IURPDFWLYH
1 SURJUDP
Main program
Program code
N10 G90 G0 Z10
N20 SETAL(65500)
N30 X50
N35 M0
N38 X100
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 189
Mode group, channel, program operation, reset response
2.11 Perform ASUB start for user alarms
Program code
N40 Z0
N50 M30
User ASUB
Program code
N110 G91 G0 X-10 Z5
N120 X20
N130 REPOSA
Sequence
1 $ODUP
$ODUP
1&VWDUWDIWHUVWDQGVWLOO
1
1 0
8VHU$68%IURPVWRSSHG
1
The block N10 is processed. The alarm 65500 appears that contains the "Display" and "NC
Start disable" alarm responses. The part program does not stop as result. The block N30 is
loaded and processed. The part program stops at block N35 because of M0. The NC state is
stopped. If the user ASUB is now used, it is performed despite the stopped NC state and
pending "NC Start disable" alarm response. It does not matter whether or not the machine data
MD20194 $MC_IGNORE_NONCSTART_ASUP is set. After block N120, the ASUB remains
stationary before REPOSA. Repositioning is possible only at the next NC Start. The NC Start,
however, is rejected with the alarm 16906 because of the "NC Start disable" alarm response.
The previously generated 65500 alarm can be acknowledged only with reset.
Basic functions
190 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.12 Execution from external
Function
The "execution from external source" function can be used to execute programs from an
external program memory that cannot be saved in the NC memory due to their size.
Note
Protected cycles (_CPF files) can not be executed from an external program memory.
NOTICE
Tool/workpiece damage caused by the USB flash drive
It is recommended that a USB flash drive is not used for the execution of an external
subprogram. A communication interruption to the USB flash drive during the execution of
the subprogram due to contact problems, failure, abort through trigger or unintentional
unplugging, results in an immediate machining stop. The tool and/or workpiece could be
damaged.
Applications
● Direct execution from external programs
In principle, any program that is accessible via the directory structure of the interface in the
"Execution from external" HMI mode can be selected and executed.
● Execution of external subprograms from the part program
The "external" subprogram is called with the part program command EXTCALL by specifying
a call path (optional) and the name of the part subprogram (→ see "Execution of external
subprograms (EXTCALL) (Page 192)").
Parameterization
A reloading memory (FIFO buffer) must be reserved in the dynamic NC memory for executing
a program in "execution from external source" mode.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 191
Mode group, channel, program operation, reset response
2.13 Executing external subprograms (EXTCALL)
Note
Programs with jump commands
For external programs that contain jump commands (GOTOF, GOTOB, CASE, FOR, LOOP,
WHILE, REPEAT, IF, ELSE, ENDIF etc.) the jump destinations must lie within the post loading
memory.
Note
ShopMill/ShopTurn programs
The contour descriptions added at the file end mean the ShopMill and ShopTurn programs
must be stored completely in the read-only memory.
Function
Individual machining steps for producing complex workpieces may involve program sequences
that require so much memory that they cannot be stored in the NC memory.
In such cases, the user has the option of executing the program sequences as subprograms
from an external program memory in the "Execution from external source" mode with the help
of the EXTCALL part program command.
Basic functions
192 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.13 Executing external subprograms (EXTCALL)
Prerequisites
The following preconditions are applicable to the execution from external subprograms:
● The subprograms must be accessible via the directory structure of the operator interface.
● A reloading memory (FIFO buffer) must be reserved for each subprogram in the dynamic
NC memory.
Note
Subprograms with jump commands
For external subprograms that contain jump commands (GOTOF, GOTOB, CASE, FOR, LOOP,
WHILE, REPEAT, IF, ELSE, ENDIF etc.) the jump destinations must lie within the post loading
memory.
The size of the post loading memory is set via:
MD18360 MM_EXT_PROG_BUFFER_SIZE
ShopMill/ShopTurn programs
The contour descriptions added at the file end mean the ShopMill and ShopTurn programs
must be stored completely in the read-only memory.
Parameter assignment
The path for the external subprogram directory can be preset using setting data:
SD42700 $SC_EXT_PROG_PATH (program path for the EXTCALL external subprogram call)
The entire path of the program to be called along with the subprogram path or name specified
during programming is derived therefrom.
Note
If the program path is only specified using the appropriate programming, then SD42700 must
be empty!
Programming
An external subprogram is called by means of parts program command EXTCALL.
Parameter:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 193
Mode group, channel, program operation, reset response
2.13 Executing external subprograms (EXTCALL)
Note
Path specification: Short designations
The following short designations can be used to specify the path:
● LOCAL_DRIVE: for local drive
● CF_CARD: for memory card
● USB: for USB front connection
CF_CARD: and LOCAL_DRIVE: can be alternatively used.
Example
Execute from local drive
Main program:
Program code
N010 PROC MAIN
N020 ...
N030 EXTCALL ("ROUGHING")
N040 ...
N050 M30
Basic functions
194 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.14 Execution from external storage (EES) (option)
External subprogram:
Program code
N010 PROC ROUGHING
N020 G1 F1000
N030 X= ... Y= ... Z= ...
N040 ...
...
...
N999999 M17
The "MAIN.MPF" main program is stored in NC memory and is selected for execution.
The "SCHRUPPEN.SPF" or "SCHRUPPEN.MPF" subprogram to be subsequently loaded is
on the local drive in the directory "/user/sinumerik/data/prog/WKS.DIR/WST1.WPD".
The subprogram path is preset in SD42700:
SD42700 $SC_EXT_PROG_PATH = "LOCAL_DRIVE:WKS.DIR/WST1.WPD"
Note
Without the path being specified in the SD42700, the EXTCALL operation for this example
would have to be programmed as follows:
EXTCALL("LOCAL_DRIVE:WKS.DIR/WST1.WPD/SCHRUPPEN")
2.14.1 Function
Note
To use the function, the "Expanded CNC user storage" or "Execute from external storage
(EES)" licensed option is required!
Function
Using the EES (Execution from External Storage) function, users have the option of having the
NCK execute programs directly from an external program storage.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 195
Mode group, channel, program operation, reset response
2.14 Execution from external storage (EES) (option)
NOTICE
Tool/workpiece damage caused by the USB flash drive
A USB flash drive cannot be recommended when executing an external program. A
communication abort to the USB flash drive during the execution of the program due to contact
problems, failure, abort through trigger or unintentional unplugging, results in an uncontrolled
stop of the machining. The tool and/or workpiece could be damaged.
Requirements
The following prerequisites apply when using EES:
● The "Expanded CNC user storage" or "Execute from external storage (EES)" licensed
option must be set.
● The drives, which are used at the control as external memory, must be configured as a
logical drives (see "Commissioning (Page 198)").
● A list of available IPCs is available under Available IPCs (Page 824).
Basic functions
196 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.14 Execution from external storage (EES) (option)
Operating mode
Depending on the option available and the drive configuration, various EES operating modes
are possible. The active operating mode of a control is displayed using machine data MD18045
$MN_EES_MODE_INFO.
Properties
The EES function can replace the "Execution from external (Page 191)" and "Executing
external subprograms (EXTCALL) (Page 192)" functions.
The EES function has the following advantages:
● Standard program handling throughout the system
● No restrictions regarding the commands that can be used
The restrictions on "execution from external source" and "execution of external
subprograms (EXTCALL)", e.g. no backward jumps, limitation of the jump distance of jump
commands by the size of the reload memory, are eliminated with EES.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 197
Mode group, channel, program operation, reset response
2.14 Execution from external storage (EES) (option)
● Programs can be moved between different program storages (NC, GDIR, external drive)
significantly easier.
● There are practically no restrictions regarding the part program size and the number of
programs (this is only limited by the capacity of the external data memory).
● Uniform syntax for the subprogram call, independent of the storage location of the
subprogram (an EXTCALL call is not required).
● Network drives can be used jointly by more than one station (PCU/NCU). Prerequisite is a
uniform drive configuration for these stations. This results in a uniform view of the programs
for all stations.
● Because of the uniform view of the external program storage for all stations, changes to the
programs stored there consistently apply to all stations.
2.14.2 Commissioning
Note
All the previous drives may no longer be available in the newly created drive configuration.
Access to the programs on these drive is then no longer possible.
Remedy: First copy the programs stored on these drives to a drive that can still be accessed.
Note
Because protected cycles (_CPF files) are only executed from the NC part program memory for
system reasons, they cannot be stored for execution on an external program memory.
Basic functions
198 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.14 Execution from external storage (EES) (option)
The previous NC part program memory with the MPF.DIR, SPF.DIR and WKS.DIR directories
is not absolutely necessary when using EES. A system can also be configured without using
the NC part program memory.
NOTICE
Executing programs that are not visible
Even if the NC part program memory was removed from the drive configuration, it is always
still available in the system itself. This especially means that when executing the program it is
possible that programs that still exist there are inadvertently executed from the SPF.DIR.
Remedy: If the system is configured without NC part program memory in the drive
configuration, any programs still stored there should be deleted manually.
If the NC part program memory is still to be used, then it should not be completely removed from
the system, only assigned an appropriate protection level when required.
Drives can be used jointly by multiple stations (PCU/IPC/NCU). A standard drive configuration
for these stations means that there is a standard program view that is independent of the
particular station.
Note
The memory card of an NCU/PPU cannot be used by several stations.
Example:
Several NCUs jointly use a program memory on the local hard disk of the PCU
(LOCAL_DRIVE).
3&8,3&
/ 2 &$ / B ' 5 , 9 (
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 199
Mode group, channel, program operation, reset response
2.14 Execution from external storage (EES) (option)
Note
If external program memories are used together at different stations in the EES mode, then the
following rules must be observed:
● A program cannot be simultaneously edited from several stations.
● Programs, which are being executed, can no longer be changed.
For operation with an external HMI, the drives must be configured on the external HMI! The
drive configuration (logdrive.ini) must be loaded into the corresponding NCU from the external
HMI. A softkey is available for the transfer on the dialog for the drive configuration.
In systems in which multiple NCs work together, the drive configuration must be identical for all
NCs. This is achieved by distributing the logdrive.ini file to all of the NCUs listed in the mmc.ini
file. The configurations existing there are therefore overwritten.
Further information
A list of PCU-Basesoftware can be obtained at:
● Commissioning Manual SINUMERIK 840D sl PCU-Basesoftware
● A list of available IPCs is available under Available IPCs (Page 824).
Basic functions
200 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.14 Execution from external storage (EES) (option)
Selecting the main program in the NC part program memory (MPF.DIR or xxx.WPD in
WKS.DIR)
Search sequence for the subprograms:
1. Actual directory in the NC part program memory
2. SPF.DIR in the NC part program memory
3. The drive referenced using CALLPATH
4. Cycles
Selecting the main program on an external archive/data storage medium released for EES
Search sequence for the subprograms:
1. Actual directory on an external archive/data storage medium
2. SPF.DIR in the NC part program memory
3. SPF.DIR in GDIR
4. The drive referenced using CALLPATH
5. Cycles
Note
To define the search sequence, also see MD11625 $MN_FILE_ONLY_WITH_EXTENSION
and MD11626 $MN_CYCLES_ONLY_IN_CYCDIR!
Note
An external drive can also be referenced using the CALLPATH statement.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 201
Mode group, channel, program operation, reset response
2.14 Execution from external storage (EES) (option)
2.14.2.3 Settings for file handling in the part program for EES
Parameter assignment
The EES-specific name of the NC is set in the NC-specific machine data:
MD10125 $MN_EES_NC_NAME = <NC name>
Note
Name of the NC unique throughout the system
To avoid access conflicts, the EES-specific name of the NC must be unique throughout the
system. The responsibility for this resides exclusively with the user/machine manufacturer.
When calling the program, only search for files with file ID
In order to speed up the program search for subprogram calls during EES operation, we
recommend that you limit the search to files with file ID (e.g. SPF, MPF, etc.):
MD11625 $MN_FILE_ONLY_WITH_EXTENSION = 1
Note
MD11625 has no effect on the program search when processing external subprograms with
EXTCALL.
Further information
For further information describing the search path to call the subprogram, see "NC
Programming" Programming Manual.
Basic functions
202 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.14 Execution from external storage (EES) (option)
Note
MD11626 has no effect on subprograms whose interface was created using an EXTERNAL
declaration. A search is made in all program directories.
NOTICE
No search success for cycles outside the cycle directories
Cycles in the current directory and global subprogram directory are no longer found with the
setting MD11626 = 1!
Remedy: Always store cycles in the cycle directories.
Reducing the end user program memory in the passive file system
With active EES, the end user program memory in the passive file system can be reduced:
MD18352 $MN_MM_U_FILE_MEM_SIZE (end user memory for part programs / cycles / files)
The released memory can then be used, for example, for tool data or manufacturer cycles
(MD18353 $MN_MM_M_FILE_MEM_SIZE).
Further information
For detailed information regarding memory configuration, see Memory configuration
(Page 799).
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 203
Mode group, channel, program operation, reset response
2.15 Process Datashare - output to an external device/file
Teach in
In the EES mode, it is not possible to use the "Teach In" function in the AUTOMATIC operating
mode.
2.15.1 Function
With the "Process Datashare" function, it is possible to write data from a part program to an
external device or to an external file; for instance, to log production data or to control additional
equipment at a control system.
Availability
The function is available:
● Only in the real NC (not in the SNC and VNC simulation software).
● Only in part programs (not in synchronized actions).
● Parallel in all machining channels of the NC for all available (configured) output devices.
External devices/files
External devices/files can be:
● Files on the local memory card
The local memory card represents the memory which is referenced by HMI with the
symbolic identifier LOCAL_DRIVE.
Note
For SINUMERIK 840D sl, the option "Additional xxx MB HMI user memory on memory card
of the NCU" is required for output to the LOCAL_DRIVE device.
Basic functions
204 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.15 Process Datashare - output to an external device/file
Usage mode
For each output device, when opening the device, it can be specified as to whether the device
is to be exclusively used by just one channel or whether several channels can output to the
device ("shared" mode).
NOTICE
Data security
If the Process Datashare function is used to send data from an external device via the Ethernet
interface X130 to the control, there is the possibility that the data on the control could be
falsified by a third-party and is no longer consistent. When using the function, ensure that the
network is protected against access by third-parties.
2.15.2 Commissioning
The external devices to be used are configured in the /oem/sinumerik/nck/extdev.ini or /user/
sinumerik/nck/extdev.ini file. If both files are available, then the entries in the user area have
priority. The file can be updated in the operating area COMMISSIONING under
SYSTEMDATEN/CF card.
Note
It is not necessary to configure in the extdev.ini file when using LOCAL_DRIVE and
CYC_DRIVE. The two devices are always available as soon as the corresponding option is set
or the user CompactFlash card is available.
The external devices to be used are defined/listed in the section [ExternalDevices] of the
extdev.ini file. A serial device (/dev/v24) and up to nine files or directories (/dev/ext/1…9) can
be specified as device. The Linux notation is used when specifying devices. Lines, which start
with ";", are comments and are overread.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 205
Mode group, channel, program operation, reset response
2.15 Process Datashare - output to an external device/file
With the exception of /dev/v24, the devices can be declared as directory path - terminated with
an attached "/" – or as file path – i.e. with attached fully qualified path, ending with a file name
(without a terminating "/"). When used in a part program, a file name (path) must also be
specified for a device with directory path.
Except for /dev/v24, a device is defined using the three items separated by a comma for
"Server", "Path" and the optional "Write mode".
For the files or directories (this then applies to all files in the directory), it can be specified as to
whether the file should be overwritten after it has been opened ("O" = Overwrite) or whether the
outputs should be attached to the file ("A" = Append). The default value is "A". A file/directory
that does not exist is newly created when opening.
For the device V.24 interface, only the settings for baud rate, data bits, stop bits, parity, protocol
and possibly end are specified in this sequence.
For files that are generated/saved on the LOCAL_DRIVE, LOCAL_DRIVE_MAX_FILESIZE
data can be used to set a maximum file size in bytes - this is then valid as standard for all files.
The file size is checked when executing an EXTOPEN command in Append mode. Optionally,
the write mode ("O" = Overwrite, "A" = Append) can be defined using the
LOCAL_DRIVE_FILE_MODE data. The default value is "A".
Note
A copy template for the extdev.ini configuration file is available in the /siemens/sinumerik/nck
directory.
Note
Changes to the extdev.ini file only become effective after an NC restart/boot.
Note
USB devices
For SINUMERIK 840D sl, only statically connected USB interfaces of a TCU can be configured
as USB devices. The configuration is realized using the SERVER:/PATH type as specification
for "Server" in the sense above, whereby SERVER is the TCU name and /PATH designates the
USB interface. The USB interfaces of a TCU are addressed using "dev0-0", "dev0-1", "dev1-0".
The path data always starts with "/Partition", whereby the partition can be specified using a two-
digit partition number or its partition name – and where required, is extended with a file path up
to the required target, e.g.:
/dev/ext/8 = "TCU4:/dev0-0, /01/, A"
/dev/ext/8 = "TCU4:/dev0-0, /01/mydir.dir/"
/dev/ext/8 = "TCU4:/dev0-0, /myfirstpartition/Mydir.dir/myfile.txt, O"
Example
[ExternalDevices]
; Comment line
; example for V24
Basic functions
206 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.15 Process Datashare - output to an external device/file
LOCAL_DRIVE_MAX_FILESIZE = 50000
LOCAL_DRIVE_FILE_MODE = "O"
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 207
Mode group, channel, program operation, reset response
2.15 Process Datashare - output to an external device/file
2.15.3 Programming
The writing of data from a part program to an external device/file is performed in three steps:
1. Open the external device/file
The external device/file is opened for the channel for writing using the EXTOPEN command.
2. Writing data
The output data can be processed using the string functions of the NC language, e.g.
SPRINT. The WRITE command is used for writing.
3. Close the external device/file
The external device/file assigned in the channel is released again using the EXTCLOSE
command, when the end of the program is reached (M30) or for a channel reset.
Syntax
DEF INT <Result>
DEF STRING[<n>] <Output>
…
EXTOPEN(<Result>,<ExtDev>,<SyncMode>,<AccessMode>,<WriteMode>)
…
<Output>="data output"
WRITE(<Result>,<ExtDev>,<Output>)
…
EXTCLOSE(<Result>,<ExtDev>)
Basic functions
208 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.15 Process Datashare - output to an external device/file
Meaning
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 209
Mode group, channel, program operation, reset response
2.15 Process Datashare - output to an external device/file
Basic functions
210 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.15 Process Datashare - output to an external device/file
EXTCLOSE: Pre-defined procedure to close an external device/file that has been opened
<Result>: Parameter 1: Result variable
Type: INT
Values: 0 No error
16 Invalid external path has been programmed
21 Error when closing the external device
<ExtDev>: Parameter 2: Symbolic identifier for the external device/file description to be
closed, see EXTOPEN!
Note:
The identifier must be identical to the identifier specified in the EXTOPEN call!
Example
Program code
N10 DEF INT RESULT
N20 DEF BOOL EXTDEVICE
N30 DEF STRING[80] OUTPUT
N40 DEF INT PHASE
N50 EXTOPEN(RESULT,"LOCAL_DRIVE/my_file.txt","SYN","SHARED")
N60 IF RESULT > 0
N70 MSG("Error for EXTOPEN:" << RESULT)
N80 ELSE
N90 EXTDEVICE=TRUE
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 211
Mode group, channel, program operation, reset response
2.16 System settings for power-up, RESET / part program end and part program start
Program code
N100 ENDIF
…
N200 PHASE=4
N210 IF EXTDEVICE
N220 OUTPUT=SPRINT("End phase: %D",PHASE)
N230 WRITE(RESULT,"LOCAL_DRIVE/my_file.txt",OUTPUT)
N240 ENDIF
…
2.16 System settings for power-up, RESET / part program end and part
program start
2.16.1 System settings for power-up, RESET / part program end and part program start
Concept
The behavior of the control can be set via the machine data for the following events:
● Run-up (power-on)
● Reset / part program end
● Part program start
Basic functions
212 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.16 System settings for power-up, RESET / part program end and part program start
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 213
Mode group, channel, program operation, reset response
2.16 System settings for power-up, RESET / part program end and part program start
%RRWLQJ
32:(521
%LW 7UDQVIRUPDWLRQDFWLYH
0' DFFWR0'0'%LW0'%LW
5(6(7B02'(B0$6. *HRD[LVLQWHUFKDQJHDFWLYH
%LW 'HIDXOW DFFWR0'ZLWK0'
VHWWLQJ
%LW
%LW
%LW
7KHWRROOHQJWK
0'
%LWDQGELW FRPSHQVDWLRQ
VHOHFWHGEHIRUH32:(521
UHPDLQVDFWLYH
%LW
7RROOHQJWKFRPSHQVDWLRQDFWLYH
DFFWR0'0'
0'
7UDQVIRUPDWLRQRII
7RROOHQJWKFRPSHQVDWLRQDFWLYH
*FRGHVDFFWR0'0&B*&2'(B5(6(7B9$/8(6
&RXSOHGPRWLRQJURXSVLVWULJJHUHG
7DQJHQWLDOIROORZXSLVQRWDFWLYH
6\QFKURQL]HGVSLQGOHFRXSOLQJLVQRWDFWLYH
$[LDOUHYROXWLRQDOIHHGUDWHRIISDWKDQGV\QFKURQL]HGD[HVEDFNWRPDVWHUVSLQGOH
*HRPHWU\D[LVDVVLJQPHQWDFFWR0'0&B$;&21)B*(2$;B$66,*1B7$%
0DVWHUYDOXHFRXSOLQJLVQRWDFWLYH
%DVLFIUDPHLVGHVHOHFWHG
(OHFWURQLFJHDUER[LVQRWDFWLYH
0DVWHUVSLQGOHEDVLFSRVLWLRQDFFWR0'0&B63,1'B'()B0$67(5B63,1'
0DVWHUWRROKROGHUEDVLFSRVLWLRQDFFWR0'0&B722/B0$1*(0(17B722/+2/'(5
5HIHUHQFHD[LVDFFWR0'0&B',$0(7(5B$;B'()
5(6(7SDUWSURJUDPHQG
Basic functions
214 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.16 System settings for power-up, RESET / part program end and part program start
System settings after reset / part program end and part program start
MD20110 $MC_RESET_MODE_MASK, bit 0 = 0 or 1
5(6(7SDUWSURJUDPHQG
%LW *FRGHVDFFWR0'DQG0'
0'ELWDUHHYDOXDWHGLH
0'
WKHIXQFWLRQDVVLJQHGWRWKHUHOHYDQWELWV
5(6(7B02'(B0$6.
HLWKHUUHWXUQVWRLWVUHVHWSRVLWLRQRU
%LW
'HIDXOW VWD\VLQLWVFXUUHQWSRVLWLRQVHHWDEOHV
VHWWLQJ EHORZ
%LW
7KHFXUUHQWVHWWLQJVDUHUHWDLQHG
3DUWSURJUDPVWDUW
*FRGHVDFFWR0'
7RROOHQJWKFRPSHQVDWLRQDFWLYH
7UDQVIRUPDWLRQRII
&RXSOHGPRWLRQRII
7DQJHQWLDOIROORZXSRII 7KHVHWWLQJVDFWLYDWHGE\5(6(7
6\QFKURQL]HGVSLQGOHRII EHFRPHYDOLG
*HRPHWU\D[LVDVVLJQPHQWDFFWR0'
0DVWHUYDOXHRII
$[LDOUHYROXWLRQDOIHHGUDWHRII
5HVHUYHGEDVLFIUDPHRII
0DVWHUVSLQGOHDFFWR0'
0DVWHUWRROKROGHURII
5HIHUHQFHD[LVDFFWR0'
%LW
%LW
0' )XQFWLRQWDNHVDFFRXQWRI5(6(7SRVLWLRQ
67$57B02'(B0$6.
%LW
%LW
5HIHUHQFHD[LVLVUHWDLQHG
%LW GHIDXOWVHWWLQJ
%LW7KHFXUUHQWVHWWLQJVDUHUHWDLQHG
%LW)XQFWLRQWDNHVDFFRXQWRI5(6(7SRVLWLRQ
,QWHUSUHWDWLRQRIVWSDUWSURJUDPEORFN
Figure 2-8 System settings after reset / part program end and part program start
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 215
Mode group, channel, program operation, reset response
2.16 System settings for power-up, RESET / part program end and part program start
Control basic setting after run-up, reset / part program end and part program start
The control basic setting after run-up (power-on), reset / part program end and part program
start is defined in the following machine data:
● MD20110 $MC_RESET_MODE_MASK (definition of the control basic setting after run-up
and reset / part program end)
● MD20112 $MC_START_MODE_MASK (definition of the control basic setting after part
program start)
Further information
Detailed machine data description
Example
Basic functions
216 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.16 System settings for power-up, RESET / part program end and part program start
Active level (bit 4) and settable frame (bit 5) remain active after reset and are reset on part
program start:
● MD20110, bit 4 = 1
● MD20110, bit 5 = 1
● MD20112, bit 4 = 1
● MD20112, bit 5 = 1
Note
MD20110/MD20112, bit 5 and bit 6
If MD20110/MD20112 are parameterized so that tool length compensation or a frame is
active on a part program start in the automatic or MDI mode, the first programming of the
axes must use absolute measurements (because of the traversing of the offset).
Exception: With MD42442/MD42440 the offsetting process for G91 is suppressed.
Function
If a part program with a machining operation with tool orientation is aborted due to a power
failure or reset, it is possible to select the previously active transformation and generate a frame
in the direction of the tool axis after the control has run up (power on). The tool can then be
retracted in JOG mode by means of a retraction movement towards the tool axis.
Requirement
The active measuring systems must have a machine reference for all the machine axes
involved in the transformation. See Function Manual "Axes and Spindles", Section "Automatic
restoration of the machine reference".
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 217
Mode group, channel, program operation, reset response
2.16 System settings for power-up, RESET / part program end and part program start
Parameterization
The following machine data must be set so that the last active transformation is retained after
POWER ON:
● MD20144 $MC_TRAFO_MODE_MASK, bit 1 = 1
● MD20110 $MC_RESET_MODE_MASK, bit 0 = 1
● MD20110 $MC_RESET_MODE_MASK, bit 7 = 1
See also Section "System settings for power-up, RESET / part program end and part program
start (Page 212)".
Programming
Application
In the user program (…/_N_CMA_DIR/_N_PROG_EVENT_SPF) to be called event-controlled
when running up (requirement: MD20108 bit 3 = 1), the system must wait using the command
WAITENC until the valid axis positions are available.
A frame that positions the tool axis in the direction of the X, Y or Z axis can then be generated
using the NC language command TOROTX/TOROTY/TOROTZ.
Example
Orientation transformation and orientation axes with incremental encoders.
Configuration: Meaning:
MD10720 $MN_OPERATING_MODE_DEFAULT [ 0 ] = 6 Run-up in JOG mode.
MD30240 $MA_ENC_TYPE [ 0, <axis>] = 1 Incremental measuring system.
MD34210 $MA_ENC_REFP_STATE [ 0, <axis>] = 3 Enable the restoration of axis positions for incre‐
mental encoders.
MD20108 $MC_PROG_EVENT_MASK = ’H9’ Activate event-controlled using program
PROG_EVENT during run-up and at the start of
the part program.
MD20152 $MC_GCODE_RESET_MODE [ 52 ] = 1 Obtain TOFRAME via reset.
MD20110 $MC_RESET_MODE_MASK = ’HC1’ Obtain transformation and tool offset via reset.
MD20144 $MC_TRAFO_MODE_MASK = ’H02’ Obtain transformation via POWER OFF.
Basic functions
218 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.16 System settings for power-up, RESET / part program end and part program start
; Example with activation of the frame, which aligns the WCS in the tool direction,
; when running up and resetting with part program start.
IF $P_PROG_EVENT == 4 ; Run-up.
IF $P_TRAFO <> 0 ; Transformation was selected.
WAITENC ; Wait for valid axis positions of the orientation axes.
TOROTZ ; Rotate the Z axis of the WCS towards the tool axis.
ENDIF
M17
ENDIF
IF $P_PROG_EVENT == 1 ; Part program start.
TOROTOF ; Reset tool frame.
RET
ENDIF
The WAITENC command essentially corresponds to the following program sequence (example
for 5-axis machine with AB kinematics):
Continuing machining
AUTOMATIC mode
For automatic execution of programs in the AUTOMATIC mode, all the machine axes, whose
actual position of the active measuring system has been restored, must be referenced.
Boundary condition
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 219
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
2.17.1 Overview
Function
User-specific auxiliary functions (e.g. M101) do not trigger any system functions. They are only
output to the NC/PLC interface. The functionality of the auxiliary function must be implemented
by the user / machine manufacturer in the PLC user program. A description will be provided as
to how a user-specific subprogram call can be configured (replacement subprogram) instead
of the output to NC/PLC interface, which is the default setting.
Function M101 is then still programmed in the part program. However, when executing the part
program, the substitute subprogram is called. Therefore, the NC replaces the function by a
subprogram call. This results in the following advantages:
● When adapting to the production process, an existing, tested and proven part program can
still be used, unchanged. The changes required are then shifted into the user-specific
subprograms.
● The functionality can be implemented within the substitute subprogram with the full
functional scope of the NC language.
● The communication overhead between NC and PLC is not required.
Auxiliary functions
M Switching functions
T Tool selection
TCA Tool selection independent of the tool status
D Tool offset
DL Additive tool offset
Basic functions
220 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
General Information
The following conditions are applicable for replacing the M functions:
● Per block only one M function is replaced.
● A block in which an M function is to be replaced, must not contain the following elements:
– M98
– Modal subprogram call
– Subprogram return
– Part program end
● M functions that trigger system functions must not be replaced by a subprogram (see
Section "Non-replaceable M functions").
Parameterization
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 221
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Note
For an M function replacement with transfer of information via system variable, the address
extension and function value of the M function must be programmed as constant values.
Permissible programming:
● M<function value>
● M=<function value>
● M[<address extension>]=<function value>
Illegal programming:
● M=<variable1>
● M[<variable2>]=<variable1>
Programming
Rules for replacing M functions:
● The replacement subprogram is called at the block end
● Within the replacement subprogram, no M functions are replaced
● In an ASUB, the M function is also replaced if the ASUB was started within the replacement
subprogram.
Basic functions
222 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Note
Exception
The M function parameterized with MD22560 $MC_TOOL_CHANGE_M_CODE (tool change
with M function) must not be replaced with a subprogram.
Supplementary conditions
For replacing functions T, TCA, D and DL, the following supplementary conditions apply:
● A maximum of one function replacement is active per block.
● A block with the function replacement must not contain the following elements:
– M98
– Modal subprogram call
– Subprogram return
– Part program end
● If the multitool slot number is programmed with address MTL for the multitool select with
T = slot number, the T replacement also replaces the MTL address. The programmed
values can be queried in the replacement subprogram using the $C_MTL_PROG and
$C_MTL system variables.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 223
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Note
It is recommended that the same subprogram is used to replace T, TCA and D/DL functions.
Basic functions
224 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Value Meaning
0 Replacement not active
1 Replacement active, subprogram call is made at the block start
2 Replacement active, subprogram call is made at the block end
Parameterization Meaning
MD22550 $MC_TOOL_CHANGE_MODE = 0 Tool change with T function
MD10717 $MN_T_NO_FCT_CYCLE_NAME = "MY_T_CYCLE" Name of the subprogram to re‐
place the T function
MD10719 $MN_T_NO_FCT_CYCLE_MODE = 0 Call time: End of block
Programming Comment
N110 D1 ; D1
N120 G90 G0 X100 Y100 Z50 ; D1 is active.
N130 D2 X110 Z0 T5 ; D1 remains active. The T function is replaced
at the block end with the MY_T_CYCLE subprogram
call. D2 provides MY_T_CYCLE in a system varia-
ble.
A detailed example for replacement of the T function can be found in Section: "Examples of M/
T function replacement at a tool change (Page 227)".
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 225
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
General Information
The replacement subprogram is provided with all of the information relevant to the functions
programmed in the block (T or TCA, D or DL, M) via system variables.
Exception
D or DL number is not transferred if:
● MD10719 $MN_T_NO_FCT_CYCLE_MODE, bit 0 = 1
● MD22550 $MC_TOOL_CHANGE_MODE = 1
AND
● D or DL are programmed together with the T or M function in a block.
CAUTION
Values do not act
The values provided for the replacement subprogram in the system variables are not yet
effective. It is the sole responsibility of the user / machine manufacturer to resolve this by
using the appropriate programming in the replacement subprogram.
System variable
Basic functions
226 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Example 1
The function M6 is replaced by calling the subprogram "SUB_M6".
The information relevant for a tool change should be transferred using system variables.
Parameterization
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 227
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Main program
Programming Comment
PROC MAIN
... ;
N10 T1 D1 M6 ; M6 is replaced by subprogram "SUB_M6"
;
... ;
N90 M30
Subprogram "SUB_M6"
Programming Comment
PROC SUB_M6
N110 IF $C_T_PROG==TRUE ; IF address T is programmed
N120 T[$C_TE]=$C_T ; Execute T selection
N130 ENDIF ; ENDIF
N140 M[$C_ME]=6 ; Execute tool change.
N150 IF $C_D_PROG==TRUE ; IF address D is programmed
N160 D=$C_D ; Execute D selection
N170 ENDIF ; ENDIF
N190 M17
Example 2
The new tool is prepared for changing with the T function. The tool change is only realized with
function M6. The T function is replaced by calling the subprogram "MY_T_CYCLE". The D / DL
number is transferred to the subprogram.
Parameterization
Parameterization Meaning
MD22550 $MC_TOOL_CHANGE_MODE = 1 Tool change prepared with T
function
MD10717 $MN_T_NO_FCT_CYCLE_NAME = "MY_T_CYCLE" Replacement subprogram
MD10719 $MN_T_NO_FCT_CYCLE_MODE = 0 Transfer of the D/DL number
Main program
Basic functions
228 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Example 3
The new tool is prepared for changing with the T function. The tool change is only realized with
function M6. The T function is replaced by calling the subprogram "MY_T_CYCLE". The D / DL
number is not transferred to the subprogram.
Parameterization
Parameterization Meaning
MD22550 $MC_TOOL_CHANGE_MODE = 1 Tool change prepared with T
function
MD10717 $MN_T_NO_FCT_CYCLE_NAME = "MY_T_CYCLE" Replacement subprogram
MD10719 $MN_T_NO_FCT_CYCLE_MODE = 1 No transfer of the D/DL number
Main program
Example 4
The functions T and M6 are replaced by the subprogram "MY_T_CYCLE".
The parameters are transferred to the subprogram when replacing M6.
If M6 is programmed together with D or DL in the block, the D or the DL number is also
transferred as parameter to the subprogram if no transfer of the D/DL number has been
parameterized:
MD10719 $MN_T_NO_FCT_CYCLE_MODE = 1
Parameterization
Configuration Meaning
MD22550 $MC_TOOL_CHANGE_MODE = 1 Tool change with M function
MD22560 $MC_TOOL_CHANGE_M_CODE = 6 M code for tool change
MD10715 $MC_M_NO_FCT_CYCLE[3] = 6 M function to be replaced
MD10716 $MC_M_NO_FCT_CYCLE_NAME[3] = "MY_T_CYCLE" Replacement subprogram for
the M function
MD10717 $MN_T_NO_FCT_CYCLE_NAME = "MY_T_CYCLE" Replacement subprogram for
the T function
MD10718 $MN_M_NO_FCT_CYCLE_PAR = 3 Parameter transfer to the
replacement subprogram for M6
MD10719 $MN_T_NO_FCT_CYCLE_MODE = 1 No transfer of the D/DL number
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 229
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Main program
Parameterization
Main program
Programming Comment
PROC MAIN
... ;
N10 G01 F1000 X10 T1=5 D1 ; T and D function replaced by calling
; "D_T_SUB_PROG" at start of block
... ;
N90 M30
Subprogram "D_T_SUB_PROG"
Programming Comment
N1000 PROC D_T_SUB_PROG DISPLOF SBLOF
Basic functions
230 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Programming Comment
N9999 RET
Conflict case
A conflict is present if several functions are programmed in one block and the functions should
be replaced with different subprograms:
● Addresses D and DL replaced with subprogram:
MD11717 $MN_FCT_CYCLE_NAME = "D_SUB_PROG"
● Address T replaced with subprogram:
MD10717 $MN_FCT_CYCLE_NAME = "T_SUB_PROG"
● M function M6 replaced with subprogram:
MD10715 $MN_M_NO_FCT_CYCLE[0] = 6
MD10716 $MN_M_NO_FCT_CYCLE_NAME[0] = "M6_SUB_PROG"
MD10718 $MN_M_NO_FCT_CYCLE_PAR = 0
MD22550 $MC_TOOL_CHANGE_MODE = 1
MD22560 $MC_TOOL_CHANGE_M_CODE = 6
Resolution
A conflict is resolved corresponding to the following table:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 231
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Function
When a coupling is active the following spindle functions can be replaced for leading spindles:
● M40: Automatic gear stage change
● M41 ... M45 Programmed gear stage change
● SPOS, SPOSA and M19: Spindle positioning
Boundary conditions
● To replace a spindle function, the following conditions must be met:
– The programmed spindle must be the leading spindle of an active coupling.
– Leading and following spindle are located in the same channel. This is only detected if
the leading spindle is located in the channel in which the coupling was closed. If the
leading spindle is changed to another channel, a gear stage change or positioning of this
spindle does not call the replacement subprogram.
– A programmed gear stage change must result in a real gear stage change. For this
purpose, the programmed and active gear stage must differ.
● In a block, only one spindle function can be replaced. Multiple replacements lead to the
termination of the program processing. The spindle functions, which are to be replaced,
must then be distributed over several blocks.
Parameterization
Spindle function
The spindle functions to be replaced by the subprogram are selected in the machine data:
Basic functions
232 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
MD30465 $MA_AXIS_LANG_SUB_MASK
Bit Meaning
0 Gear-stage change automatic (M40) and directly (M41-M45)
Val‐ Meaning
ue
0 No replacement
1 Replacement through the subprogram set in MD15700 and MD15702
1 Spindle positioning with SPOS / SPOSA / M19
Val‐ Meaning
ue
0 No replacement
1 Replacement through the subprogram set in MD15700 and MD15702
Subprogram: Name
The name of the replacement subprogram is entered in the machine data:
MD15700 $MN_LANG_SUB_NAME = "<subprogram name>"
Subprogram: Path
The path of the replacement subprogram is set in the machine data:
MD15702 $MN_LANG_SUB_PATH = <value>
Value Meaning
0 Manufacturer cycle folder: /_N_CMA_DIR
1 User cycle folder: /_N_CUS_DIR
2 Siemens cycle folder: /_N_CST_DIR
Value Meaning
0 Replacement not active
1 Replacement active, subprogram call is made at the block start
2 Replacement active, subprogram call is made at the block end
Block processing
If the replacement subprogram is called at the block start, after processing the replacement
subprogram, the block that initiated the call is processed. The replaced commands are no
longer processed.
If the replacement subprogram is called at the block end, the block that initiated calling the
replacement subprogram is first processed without the commands to be replaced. The
replacement subprogram is then subsequently called.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 233
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Function
When a coupling is active, the commands for gear stage change (M40, M41 ... M45) of the
leading spindle are replaced by calling a user-specific subprogram.
Parameterization
Activation
● MD30465 $MA_AXIS_LANG_SUB_MASK, bit 0 = 1
Function
When a coupling is active, the positioning commands (SPOS, SPOSA or M19) of a leading
spindle are replaced by calling a user-specific subprogram (replacement subprogram).
Basic functions
234 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Application example
When machining workpieces in parallel on a double-spindle machine, the spindles are coupled
through a coupling factor not equal to 1. When changing the tool, they must be brought to the
same position. The replacement subprogram opens the coupling, separately positions the
spindles at the tool change position and then recloses the coupling.
Parameterization
Activation
● MD30465 $MA_AXIS_LANG_SUB_MASK, bit 1 = 1
MD22080 $MC_AUXFU_PREDEF_SPEC[9]
Bit Value Meaning
5 1 Output of the auxiliary function before the motion
6 1 Output of the auxiliary function during the motion
7 1 Output of the auxiliary function after the motion
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 235
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Parameterization
Basic functions
236 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Main program
Programming Comment
PROC MAIN
N110 COUPON(S2,S1) ; Close the synchronous spindle coupling
N120 G01 F100 X100 S5000 M3 M43 ; Subprogram call due to M43
N130 M40 ; Switch on automatic gear stage change
N140 M3 S1000 ; Subprogram call due to S1000
; and as a result an initiated automatic
; gear stage change
N9999 M30
Programming Comment
N1000 PROC LANG_SUB DISPLOF SBLOF
N1100 IF($P_SUB_AXFCT ==1) ; Replacement due to gear stage change
N1140 DELAYFSTON ; Start of stop delay area
N1150 COUPOF(S2,S1) ; Open synchronous spindle coupling
N1160 ;gear stage change separately for leading and following spindles
N1170 M1=$P_SUB_GEAR M2=$P_SUB_GEAR
N1180 DELAYFSTON ; End of stop delay area
N1190 COUPON(S2,S1) ; Close the synchronous spindle coupling
N1200 ENDIF
...
N9999 RET
Programming Comment
N1000 PROC LANG_SUB DISPLOF SBLOF
N1010 DEF AXIS _LA ; Bit memory for leading axis / leading spindle
N1020 DEF AXIS _CA ; Bit memory for following axis / following
spindle
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 237
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Programming Comment
N1030 DEF INT _GEAR ; Bit memory for gear stage
Parameterization
Main program
Programming Comment
PROC MAIN
...
N210 COUPON(S2,S1) ; Activate synchronous spindle coupling
N220 SPOS[1]=100 ; Position leading spindle with SPOS
...
Basic functions
238 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Programming Comment
N310 G01 F1000 X100 M19 ; Position leading spindle with M19
Programming Comment
N1000 PROC LANG_SUB DISPLOF SBLOF
N2100 IF($P_SUB_AXFCT==2)
N2110 ;Replacement of SPOS/SPOSA/M19 for active synchronous spindle coupling
N2185 DELAYFSTON ; Start of stop delay area
N2190 COUPOF(S2,S1) ; Open synchronous spindle coupling
N2200 ; Position leading and following spindles
N2210 IF($P_SUB_SPOS==TRUE) OR ($P_SUB_SPOSA==TRUE)
N2220 ;SPOS and SPOSA are mapped to SPOS
N2230 CASE $P_SUB_SPOSMODE OF \
0 GOTOF LABEL1_DC \
1 GOTOF LABEL1_IC \
2 GOTOF LABEL1_AC \
3 GOTOF LABEL1_DC \
4 GOTOF LABEL1_ACP \
5 GOTOF LABEL1_ACN \
DEFAULT GOTOF LABEL_ERR
LABEL1_DC: SPOS[1]=DC($P_SUB_SPOSIT) SPOS[2]=DC($P_SUB_SPOSIT)
GOTOF LABEL1_CONT
LABEL1_IC: DELAYFSTOF
SPOS[1]=IC($P_SUB_SPOSIT) SPOS[2]=IC($P_SUB_SPOSIT)
DELAYFSTON
GOTOF LABEL1_CONT
LABEL1_AC: SPOS[1]=AC($P_SUB_SPOSIT) SPOS[2]=AC($P_SUB_SPOSIT)
GOTOF LABEL1_CONT
LABEL1_ACP: SPOS[1]=ACP($P_SUB_SPOSIT) SPOS[2]=ACP($P_SUB_SPOSIT)
GOTOF LABEL1_CONT
LABEL1_ACN: SPOS[1]=ACN($P_SUB_SPOSIT) SPOS[2]=ACN($P_SUB_SPOSIT)
LABEL1_CONT:
N2250 ELSE ; Position the spindle with M19
N2270 M1=19 M2=19 ; Leading and following spindles
N2280 ENDIF ; End replacement SPOS, SPOSA
N2285 DELAYFSTOF ; End of stop delay area
N2290 COUPON(S2,S1) ; Activate synchronous spindle coupling
N2410 ELSE
N2420 ;from here processing further replacements
...
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 239
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Programming Comment
N3300 ENDIF ; End replacements
...
N9999 RET ; Normal end of program
LABEL_ERR: SETAL(61000) ; Error has occurred
Programming Comment
N1000 PROC LANG_SUB DISPLOF SBLOF
N1010 DEF AXIS _LA ; Leading axis/spindle
N1020 DEF AXIS _CA ; Following axis/spindle
N1030 DEF INT _LSPI ; Leading spindle number (programmed
; spindle)
N1040 DEF INT _CSPI ; Following spindle number
...
N2100 IF($P_SUB_AXFCT==2)
N2110 ; Replacement of SPOS/SPOSA/M19 for active ; synchronous spindle coupling
N2120 _LA=$P_SUB_LA ; Axis name of the leading spindle
N2130 _CA=$P_SUB_CA ; Axis name of the following spindle
N2140 _LSPI=AXTOSPI(_LA) ; Number of the leading spindle
N2180 _CSPI=AXTOSPI(_LA) ; Number of the following spindle
N2185 DELAYFSTON ; Start of stop delay area
N2190 COUPOF(_CA,_LA) ; Deactivate synchronous spindle coupling
N2200 ; Position leading and following spindles:
N2210 IF($P_SUB_SPOS==TRUE) OR ($P_SUB_SPOSA==TRUE)
N2220 ;SPOS and SPOSA are mapped to SPOS
N2230 CASE $P_SUB_SPOSMODE OF
0 GOTOF LABEL1_DC \
1 GOTOF LABEL1_IC \
2 GOTOF LABEL1_AC \
3 GOTOF LABEL1_DC \
4 GOTOF LABEL1_ACP \
5 GOTOF LABEL1_ACN \
DEFAULT GOTOF LABEL_ERR
LABEL1_DC: SPOS[_LSPI]=DC($P_SUB_SPOSIT) SPOS[_CSPI]=DC($P_SUB_SPOSIT)
GOTOF LABEL1_CONT
LABEL1_IC: DELAYFSTOF
SPOS[_LSPI]=IC($P_SUB_SPOSIT) SPOS[_CSPI]=IC($P_SUB_SPOSIT)
DELAYFSTON
GOTOF LABEL1_CONT
Basic functions
240 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Programming Comment
LABEL1_AC: SPOS[_LSPI]=AC($P_SUB_SPOSIT) SPOS[_CSPI]=AC($P_SUB_SPOSIT)
GOTOF LABEL1_CONT
LABEL1_ACP: SPOS[_LSPI]=ACP($P_SUB_SPOSIT) POS[_CSPI]=ACP($P_SUB_SPOSIT)
GOTOF LABEL1_CONT
LABEL1_ACN: SPOS[_LSPI]=ACN($P_SUB_SPOSIT) POS[_CSPI]=ACN($P_SUB_SPOSIT)
LABEL1_CONT:
N2250 ELSE ; Position spindles with M19
N2270 M[_LSPI]=19 M[_CSPI]=19
N2280 ENDIF
N2285 DELAYFSTOF ; End of stop delay area
N2290 COUPON(_CA,_LA) ; Activate synchronous spindle coupling
N2410 ELSE
N2420 ;from here processing further replacements
...
N3300 ENDIF
...
N9999 RET ; Normal end of program
LABEL_ERR: SETAL(61000) ; Error has occurred
General rules
● The subprogram called when making the replacement can contain the command PROC and
the attribute SBLOF and DISPLOF.
● The replacement is also made in the ISO language mode. However, the replacement
subprograms are exclusively processed in the standard language mode (Siemens). There
is an implicit switchover into the standard language mode. The original language mode is
reselected with the return jump from the replacement subprogram.
● System variables are exclusively used to transfer information to the replacement
subprogram. Transfer parameters are not possible.
● The behavior for a single block and attribute SBLOF depends on the setting in:
MD10702 IGNORE_SINGLEBLOCK_MASK, bit 14 (prevent single-block stop)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 241
Mode group, channel, program operation, reset response
2.17 Replacing functions by subprograms
Value Meaning
0 The replacement subprogram behaves like a "normal" subprogram:
● Return jump with M17: Stop at the end of the subprogram
Note
The output of the M function at the PLC depends on:
MD20800 $MC_SPF_END_TO_VDI, bit 0 (subprogram end to PLC)
- Bit 0 = 0: No output
- Bit 0 = 1: M17 is output to the PLC.
● Return jump with RET: No stop at the end of the replacement subprogram
1 In the block, in which the replacement subprogram is called, only one stop is made. Regardless
of whether:
● The subprogram was called at the block start and/or at the block end
● Other subprograms are called in the subprogram
● The subprogram is exited with M17 or RET
The single-block stop takes place for the replacement of M functions at the end of the replace‐
ment subprogram.
For the replacement of T and D/DL functions, the time of the single-block stop depends on
when the subprogram is called:
● Call at block start: Single-block stop at the end of the block
● Call at the block end: Single-block stop at the end of the replacement subprogram
● For replacement subprograms with the attribute DISPLOF in the block display, the program
line is displayed as actual block, which resulted in the subprogram being called.
● In the replacement subprogram, areas or the complete replacement subprogram can be
protected against interruptions, such as NC stop, read-in inhibit etc., using the DELAYFSTON
and DELAYFSTOF commands.
● Replacements do not occur recursively, i.e. the function that has led to the replacement
subprogram call is no longer replaced if it is programmed again in the replacement
subprogram.
Basic functions
242 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.18 Renaming/locking NC commands
2.17.5 Restrictions
● Function replacements are not permitted in:
– Synchronized actions
– Technology cycles
● There must be no blockwise synchronized actions in front of a block that contains functions
at the beginning to be replaced. See the paragraph below "Example for: Non-modal
synchronized actions".
● Only the actions required for the respective replacements can be performed in the
replacement subprogram.
● In a block, in which the replacement subprogram is called at the block end, the following
should be observed:
– No modal subprogram call should be active
– No subprogram return jump should be programmed
– No program end should be programmed
Note
The controller does not monitor whether the function to be replaced has been realized in
the replacement subprogram.
Program code
...
N1000 WHENEVER $AA_IM[X2] <= $AA_IM[X1] + 0.5 DO $AA_OVR[X1]=0
N1010 G1 X100 M43
...
If, in block N1010, the function M43 initiates that a replacement subprogram is called,
machining is interrupted and an alarm is output.
Function
The machine manufacturer or end user can change the names of existing NC commands with
the "Rename/lock NC commands" function.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 243
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
Application
The function can be used for the following purposes:
● Improve the readability of part programs
● Lock NC commands
● User-specific extension of NC functions
Parameterization
The renaming/locking of NC commands is made via the machine data:
MD10712 $MN_NC_USER_CODE_CONF_NAME_TAB[<n>] (list of reconfigured NC codes)
An even index [<n>] contains the original name of the command. The following uneven index
contains the new name of the command.
An empty string ("") as new name means that there is no new name for the command.
Consequently, the command is locked and can no longer be programmed.
Changes of MD10712 become effective during the control system startup.
Example
Basic functions
244 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
2.19.1.1 Function
The "Program runtime" function provides various timers to monitor technological processes,
which can be read into the part program and into synchronized actions via system variables.
There are two types of timers:
1. Standard timers
Standard timers are always active
2. Timers that can be activated
Timers that can be activated must be activated via machine data.
Standard timers
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 245
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
Program runtime
The timers to measure the program runtimes are only available in AUTOMATIC mode.
Basic functions
246 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
Note
Residual time for a workpiece
If the same workpieces are machined one after the other then using the following timer values
the remaining residual time for a workpiece can be determined.
● Processing time for the last workpiece produced (see $AC_OLD_PROG_NET_TIME)
● Current processing time (see $AC_ACT_PROG_NET_TIME)
The residual time is displayed on the user interface in addition to the current processing time.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 247
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
Note
Using STOPRE
The system variables $AC_OLD_PROG_NET_TIME and
$AC_OLD_PROG_NET_TIME_COUNT do not generate any implicit preprocessing stop. This
is uncritical when used in the part program if the value of the system variables comes from the
previous program run. However, if the trigger for the runtime measurement
($AC_PROG_NET_TIME_TRIGGER) is written very frequently and as a result
$AC_OLD_PROG_NET_TIME changes very frequently, then an explicit STOPRE should be
used in the part program.
Program runtime
The timers to measure the program runtimes are only available in AUTOMATIC mode.
2.19.1.2 Commissioning
Activation/deactivation
The timer that can be activated is switched-in/switched-out using machine data:
Basic functions
248 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
Parameterization
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 249
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
Block search
No program runtimes are determined through block searches.
REPOS
The duration of a REPOS process is added to the current processing time
($AC_ACT_PROG_NET_TIME).
2.19.1.4 Examples
Basic functions
250 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
Program code
...
N50 DO $AC_PROG_NET_TIME_TRIGGER=2
N60 FOR ii= 0 TO 300
N70 mySubProgrammA
N80 DO $AC_PROG_NET_TIME_TRIGGER=1
N95 ENDFOR
N97 mySubProgrammB
N98 M30
After the program has processed line N80, the net runtime of "mySubProgrammA" is located in
$AC_OLD_PROG_NET_TIME.
The value from $AC_OLD_PROG_NET_TIME:
● Is kept beyond M30.
● Is updated each time the loop is run through.
Program code
N10 DO $AC_PROG_NET_TIME_TRIGGER=2
N20 mySubProgrammA
N30 DO $AC_PROG_NET_TIME_TRIGGER=3
N40 mySubProgrammB
N50 DO $AC_PROG_NET_TIME_TRIGGER=4
N60 mySubProgrammC
N70 DO $AC_PROG_NET_TIME_TRIGGER=1
N80 mySubProgrammD
N90 M30
2.19.2.1 Function
Various counters with a range of values from 0 to 999,999,999 are available with the
"Workpiece counter" function in the form of channel-specific system variables. Read and write
access to the system variables is possible.
The following channel-specific machine data can be used to control counter activation, counter
reset timing and the counting algorithm.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 251
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
Note
All workpiece counters are set to "0" when the control runs up with default values and can be
read and written independent of their activation.
2.19.2.2 Commissioning
Activation
The workpiece counter is activated with the machine data:
MD27880 $MC_PART_COUNTER (activation of workpiece counters)
Basic functions
252 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
Parameter assignment
<n> Meaning
0 MD27882[0] defines the M command in which $AC_TOTAL_PARTS is incremented.
1 MD27882[1] defines the M command in which $AC_ACTUAL_PARTS is incremented.
2 MD27882[2] defines the M command in which $AC_SPECIAL_PARTS is incremented.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 253
Mode group, channel, program operation, reset response
2.19 Program runtime / part counter
$AC_REQUIRED_PARTS ≤ 0
Where $AC_REQUIRED_PARTS ≤ 0 and MD27880 $MC_PART_COUNTER, bit 0 = 1, the
counting procedure and the identity comparison set with MD27880 are not conducted for all the
active counters.
2.19.2.4 Examples
Basic functions
254 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.20 Workpiece simulation
Workpiece counter $AC_ACTUAL_PARTS is not processed during the program test / block
search:
● MD27880 $MC_PART_COUNTER = 'H700'
● MD27882 $MC_PART_COUNTER_MCODE[1] = 75
$AC_ACTUAL_PARTS is active; the counter is incremented by a value of "1" with each M75,
apart from during the program test and search.
Function
The actual part program is completely calculated in the tool simulation and the result is
graphically displayed in the user interface. The result of programming is verified without
traversing the machine axes. Incorrectly programmed machining steps are detected at an early
stage and incorrect machining on the workpiece prevented.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 255
Mode group, channel, program operation, reset response
2.21 Data lists
Simulation NC
The simulation uses its own NC instance (simulation NC). Therefore, before a simulation is
started, the real NC must be aligned to the simulation NC. With this alignment, all active
machine data is read out of the NC and read into the simulation NC. The NC and cycle machine
data is included in the active machine data.
Note
In part programs, CC-specific language commands and machine data of unsupported
CCs cannot be used (see also paragraph "CC-commands in the part program").
Special motion of supported CCs (OEM transformations) are - under certain circumstances -
incorrectly displayed.
2.21.1 Function
Various counters with a range of values from 0 to 999,999,999 are available with the
"Workpiece counter" function in the form of channel-specific system variables. Read and write
access to the system variables is possible.
The following channel-specific machine data can be used to control counter activation, counter
reset timing and the counting algorithm.
Basic functions
256 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.21 Data lists
Note
All workpiece counters are set to "0" when the control runs up with default values and can be
read and written independent of their activation.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 257
Mode group, channel, program operation, reset response
2.21 Data lists
Basic functions
258 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.21 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 259
Mode group, channel, program operation, reset response
2.21 Data lists
Block search
Reset response
Basic functions
260 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Mode group, channel, program operation, reset response
2.21 Data lists
Memory settings
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 261
Mode group, channel, program operation, reset response
2.21 Data lists
Basic functions
262 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames 3
3.1 Brief description
3.1.1 Axes
Machine axes
Machine axes are the axes that actually exist on a machine tool.
Channel axes
Every geometry axis and every special axis is assigned to a channel and, therefore, a channel
axis. Geometry axes and additional axes are always traversed in "their" channel.
Geometry axes
The three geometry axes always make up a fictitious rectangular coordinate system, the basic
coordinate system (BCS).
By using FRAMES (offset, rotation, scaling, mirroring), it is possible to image geometry axes of
the workpiece coordinate system (WCS) on the BCS.
Special axes
In contrast to geometry axes, no geometrical relationship is defined between the special axes.
Path axes
Path axes are interpolated together (all the path axes of a channel have a common path
interpolator).
All the path axes of one channel have the same acceleration phase, constant travel phase and
delay phase.
Positioning axes
Positioning axes are interpolated separately (each positioning axis has its own axis
interpolator). Each positioning axis has its own feedrate and acceleration characteristic.
Synchronized axes
Synchronous axes are interpolated together with path axes (all path axes and synchronous
axes of one channel have a common path interpolator).
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 263
Axes, coordinate systems, frames
3.1 Brief description
All path axes and all synchronous axes of a channel have the same acceleration phase,
constant travel phase and deceleration phase.
Axis configuration
The machine data below are used to assign the geometry axes, special axes, channel axes and
machine axes as well as the names of the individual axis types:
MD20050 $MC_AXCONF_GEOAX_ASIGN_TAB (assignment of geometry axis to channel
axis)
MD20060 $MC_AXCONF_GEOAX_NAME_TAB (name of the geometry axis in the channel)
MD20070 $MC_AXCONF_MACHAX_USED (machine axis number valid in channel)
MD20080 $MC_AXCONF_CHANAX_NAME_TAB (name of the channel axis in the channel)
MD10000 $MN_AXCONF_MACHAX_NAME_TAB (machine axis name)
MD35000 $MA_SPIND_ASSIGN_TO_MACHAX (assignment of spindle to machine axis)
Link axis
Link axes are axes, which are physically connected to another NCU and whose position is
controlled from this NCU. Link axes can be assigned dynamically to channels of another NCU.
Link axes are not local axes from the perspective of a particular NCU.
The axis container concept is used for the dynamic modification of the assignment to an NCU.
Axis replacement with GET and RELEASE from the part program is not available for link axes
across NCU boundaries.
Further information
The link axes are described under Distributed systems (Page 729).
Axis container
An axis container is a circular buffer data structure, in which local axes and/or link axes are
assigned to channels. The entries in the circular buffer can be shifted cyclically.
In addition to the direct reference to local axes or link axes, the link axis configuration in the
logical machine axis image also allows references to axis containers.
This type of reference consists of:
● Axis container number
● A slot (circular buffer location within the corresponding container)
Basic functions
264 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.1 Brief description
MCS
The machine coordinate system (MCS) has the following properties:
● It is defined by the machine axes.
● The machine axes can be perpendicular to each other to form Cartesian system or arranged
in any other way.
● The names of the machine axes can be defined.
● The machine axes can be linear or rotary axes.
BCS
The basic coordinates system (BCS) has the following properties:
● The geometry axes form a perpendicular Cartesian coordinate system.
● The BCS is derived from a kinematic transformation of the MCS.
BZS
The basic zero system (BZS) is the basic coordinate system with a basic offset.
SZS
The settable zero system (SZS) is the workpiece coordinate system with a programmable
frame from the viewpoint of the WCS. The workpiece zero is defined by the settable frames G54
to G599.
WCS
The workpiece coordinate system (WCS) has the following properties:
● In the workpiece coordinate system all the axes coordinates are programmed (parts
program).
● It is made up of geometry axes and special axes.
● Geometry axes always form a perpendicular Cartesian coordinate system
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 265
Axes, coordinate systems, frames
3.1 Brief description
● Special axes form a coordinate system without any geometrical relation between the special
axes.
● The names of the geometry axes and special axes can be defined.
● The workpiece coordinate system can be translated, rotated, scaled or mirrored with
FRAMES (TRANS, ROT, SCALE, MIRROR).
Multiple translations, rotational movements, etc., are also possible.
3.1.3 Frames
A frame is a closed calculation rule (algorithm) that translates one Cartesian coordinate system
into another.
Frame components
A frame consists of the following components:
Basic functions
266 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.1 Brief description
6FDOLQJ
0LUURULQJ
5RWDWLRQ
)LQHRIIVHW
&RDUVHRIIVHW
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 267
Axes, coordinate systems, frames
3.1 Brief description
Rotation
Orientations in space are defined via frame rotations as follows:
● Rotation with ROT defines the individual rotations for all geometry axes.
● Solid angles with ROTS, AROTS, CROTS define the orientation of a plane in space.
● Frame rotation with TOFRAME defines a frame with a Z axis pointing in the tool direction.
Scaling
SCALE is used to program the programmable scale factors for all geometry axes and special
axes.
If a new scaling is to be based on a previous scaling, rotation, translation or mirroring, then
ASCALE must be programmed.
Mirroring
The following machine data is used to set how the mirroring is to be performed:
MD10610 $MN_MIRROR_REF_AX
Concatenation
Frames and frame components can be combined using the concatenation operator ":". The
channel-specific active frame $P_ACTFRAME results, for example, from the chaining of all
active frames of the channel:
Supplementary conditions
Value Meaning
1 Work offset is applied on FRAME and incremental programming of an axis (= default setting).
0 Only the programmed path is traversed.
Basic functions
268 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.2 Axes
Consistency
When writing, reading and activating frames, e.g. using channel coordination, the user is solely
responsible for achieving consistent behavior within the channels. Cross-channel activation of
frames is not supported.
3.2 Axes
3.2.1 Overview
*HRPHWU\D[HV $GGLWLRQDOD[HV
&KDQQHOD[HV
.LQHPDWLFV
WUDQVIRUPDWLRQ
/LQHDUD[HV
5RWDU\D[HV
2ULHQWDWLRQD[HV
0DFKLQHD[HV
Figure 3-2 Relationship between geometry axes, special axes and machine axes
0DFKLQHD[HV
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 269
Axes, coordinate systems, frames
3.2 Axes
Meaning
Machine axes are the axes that actually exist on a machine tool.
:=0
<
6&
%
Application
The following can be machine axes:
● Geometry axes X, Y, Z
● Orientation axes A, B, C
● Loader axes
● Tool turrets
● Axes for tool magazine
● Axes for automatic tool changer
● Spindle sleeves
Basic functions
270 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.2 Axes
Meaning
Each geometry axis and each special axis is assigned to a channel. Geometry axes and
additional axes are always traversed in "their" channel.
Meaning
The three geometry axes always make up a fictitious rectangular coordinate system.
By using FRAMES (offset, rotation, scaling, mirroring), it is possible to image geometry axes of
the workpiece coordinate system (WCS) on the BCS.
Application
Geometry axes are used to program the workpiece geometry (the contour).
Plane selection G17, G18 and G19 (DIN 66217) always refers to the three geometry axes. That
is why it is advantageous to name the three geometry axes X, Y and Z.
Significance
In contrast to geometry axes, no geometrical relationship is defined between the special axes.
Note
Geometry axes have an exactly defined relationship in the form of a rightangled coordinate
system.
Special axes are part of the basic coordinate system (BCS). With FRAMES (translation,
scaling, mirroring), special axes of the workpiece coordinate system can be mapped on the
basic coordinate system.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 271
Axes, coordinate systems, frames
3.2 Axes
Application
Typical special axes are:
● Rotary axes
● Machine tool axes
● Tool revolver axes
● Loader axes
Meaning
Path axes are interpolated together (all the path axes of a channel have a common path
interpolator).
All the path axes of one channel have the same acceleration phase, constant travel phase and
delay phase.
The feedrate programmed under address F (path feedrate) applies to all the path axes
programmed in a block, with the following exceptions:
● An axis has been programmed that has been defined as having no control over the path
velocity with instruction FGROUP.
● Axes programmed with instructions POS or POSA have an individual feedrate setting (axis
interpolator).
Application
Path axes are used to machine the workpiece with the programmed contour.
Meaning
Positioning axes are interpolated separately (each positioning axis has its own axis
interpolator). Each positioning axis has its own feedrate and acceleration characteristic.
Positioning axes can be programmed in addition to path axes (even in the same block). Path
axis interpolation (path interpolator) is not affected by the positioning axes. Path axes and the
individual positioning axes do not necessarily reach their block end points at the same time.
Basic functions
272 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.2 Axes
Instructions POS and POSA are used to program positioning axes and define block change
criteria:
● POS
Block change takes place when the path axes and positioning axes have reached their block
end points.
● POSA
Block change takes place when the path axes have reached their end of block position.
Positioning axes continue to traverse beyond block limits to their block end point.
Concurrent positioning axes differ from positioning axes in that they:
● Only receive their block end points from the PLC
● Can be started at any time (not at block limits)
● Do not affect the execution of current part programs.
Application
Typical positioning axes are:
● Loaders for moving workpieces away from machine
● Tool magazine/turret
Further information
● Function Manual Axes and Spindles
● Function Manual Synchronized Actions
● Function Manual PLC and Basic Program
Meaning
A main axis is an axis that is interpolated by the main run.
This interpolation can be started as follows:
● From synchronized actions
(as command axes due to an event via block-related, modal or static synchronized actions)
● From the PLC via special function blocks in the basic PLC program
(named as a concurrent positioning axis or a PLC axis)
● Via the setting data or from the part program
(as an asynchronous or block-synchronous oscillating axis)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 273
Axes, coordinate systems, frames
3.2 Axes
Channel control
An axis interpolated by the main axis reacts in terms of:
● NC stop
● Alarm handling
● Program control
● End of program
● RESET
Note
The response at the end of the program varies. The axis movement need not always be
completed and, therefore, may carry on beyond the end of the program.
Application
Certain axes in the main run can be decoupled at the channel response triggered by the NC
program sequence and controlled from the PLC. These axes are also interpolated in the main
run and respond independently for the channel and program sequence.
A PLC-controlled axis can then be controlled independently by the NC. This concerns the
following actions:
● The sequence for canceling the axis (equivalent to delete distancetogo)
● Stopping or interrupting the axis
● Continuing the axis (continue sequence of motion)
● Resetting the axis to its basic status
Meaning
Synchronous axes are components of the path axes, which are not referenced in order to
calculate the tool path velocity. They are interpolated together with path axes (all path axes and
synchronous axes of one channel have a common path interpolator).
All path axes and all synchronous axes of a channel have the same acceleration phase,
constant travel phase and deceleration phase.
The feedrate (path feedrate) programmed under address F applies to all the path axes
programmed in a block but not to the synchronous axes.
Synchronous axes take the same time to cover the programmed path as the path axes.
FGROUP command
The command FGROUP specifies whether the axis is a feed-defining path axis (used to calculate
the path velocity) or a synchronous axis (not used to calculate the path velocity).
Basic functions
274 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.2 Axes
Example
Program code Comment
N05 G00 G94 G90 M3 S1000 X0 Y0 Z0 ;
N10 FGROUP(X,Y) ; Axes X and Y are path axes,
Z is a synchronous axis
N20 G01 X100 Y100 F1000 ; Progr. feedrate 1000 mm/min.
Feedrate of axis X = 707 mm/min.
Feedrate of axis Y = 707 mm/min.
N30 FGROUP (X) ; Axis X is a path axis,
axis Y is a synchronous axis
N20 X200 Y150 ; Progr. Feedrate 1000 mm/min
Feedrate of Axis X = 1000 mm/min
Feedrate of Axis Y is set to 500 mm/min,
because only half the distance is to be
traversed.
Note
The channel axis name must be used for the FGROUP command.
This is defined by the machine data:
MD20080 $MC_AXCONF_CHANAX_NAME_TAB (name of the channel axis in the channel)
Application
In the case of helical interpolation FGROUP can be programmed to determine whether:
● The programmed feedrate should be valid on the path
(all three programmed axes are path axes)
● The programmed feedrate should be valid on the circle
(two axes are path axes and the infeed axis is a synchronous axis)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 275
Axes, coordinate systems, frames
3.2 Axes
&KDQQHO &KDQQHO
VWJHRPHWU\D[LV >@ ; VWJHRPHWU\D[LV >@
QGJHRPHWU\D[LV >@ < QGJHRPHWU\D[LV >@
UGJHRPHWU\D[LV >@ = UGJHRPHWU\D[LV >@
&KDQQHOD[LVQDPHV 0DFKLQHD[HVXVHG
0'0&B$;&21)B&+$1$;B1$0(B7$%>N@>Q@ 0'0&B$;&21)B0$&+$;B86('>N@>Q@
&KDQQHON &KDQQHON
&KDQQHO &KDQQHO
VWFKDQQHOD[LV >@ ; VWFKDQQHOD[LV >@
QGFKDQQHOD[LV >@ < QGFKDQQHOD[LV >@
UGFKDQQHOD[LV >@ = UGFKDQQHOD[LV >@
WKFKDQQHOD[LV >@ $ WKFKDQQHOD[LV >@
WKFKDQQHOD[LV >@ % WKFKDQQHOD[LV >@
WKFKDQQHOD[LV >@ 8 WKFKDQQHOD[LV >@
WKFKDQQHOD[LV >@ 9 WKFKDQQHOD[LV >@
WKFKDQQHOD[LV >@ WKFKDQQHOD[LV >@
/RJLFDOPDFKLQHD[LVLPDJH
0'01B$;&21)B/2*,&B0$&+$;B7$%>Q@
>@ >@ >@ >@ >@ >@ >@ >@
1&B$;
&7B6/
$;
$;
$;
$;
$;
$;
$[LVFRQWDLQHUQDPHV
0'
01B$;&7B1$0(B7$%>Q@
/RFDOPDFKLQHD[HV
0' $[LVFRQWDLQHU&7 >@ &7
01B$;&21)B0$&+$;B1$0(B7$%>Q@ 0'01B$;&7B$;&21)B$66,*1B7$% >@ &7
VWPDFKLQHD[LV >@ $; 6ORW 6ORW >@ &7
QGPDFKLQHD[LV >@ $; >@ &7
UGPDFKLQHD[LV >@ $;
$;
$;
B
&
Qำ
1
B
&
;
$;
6ORW 6ORW
/LQND[LV0DFKLQHD[LV$;RQ1&8
Basic functions
276 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.2 Axes
1&8 6HWSRLQWFKDQQHORIWKHPDFKLQHD[LV
0'
0$B&75/287B02'8/(B15>$FKVH!@>Q@
VWPDFKLQHD[LV >@
QGPDFKLQHD[LV >@
UGPDFKLQHD[LV >@ /RJLFDOGULYHDGGUHVVHV
WKPDFKLQHD[LV >@ 0'
01B'5,9(B/2*,&B$''5(66
VWGULYH >@
QGGULYH >@
UGGULYH >@
$FWXDOYDOXHFKDQQHORIWKHPDFKLQHD[LV WKGULYH >@
0' >@
0$B(1&B02'8/(B15>$FKVH!@>Q@ >@
VWPDFKLQHD[LV >@
QGPDFKLQHD[LV >@
UGPDFKLQHD[LV >@
WKPDFKLQHD[LV >@
Boundary conditions
● Leading zeros for user-defined axis names are ignored:
MD10000 `$MN_AXCONF_MACHAX_NAME_TAB[0] = X01 corresponds to X1
● The geometry axes must be assigned to the channel axes in ascending order without any
gaps.
● All channel axes that are not geometry axes are special axes.
Example
Channel axis B is not assigned to a machine axis.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 277
Axes, coordinate systems, frames
3.2 Axes
1&8
&KDQQHOD[LVQDPHV 0DFKLQHD[HVXVHG
0'0&B$;&21)B&+$1$;B1$0(B7$%>Q@>P@ 0'0&B$;&21)B0$&+$;B86('>Q@>P@
&KDQQHOQ &KDQQHOQ
&KDQQHO &KDQQHO
VWFKDQQHOD[LV >@ ; VWFKDQQHOD[LV >@
QGFKDQQHOD[LV >@ < QGFKDQQHOD[LV >@
UGFKDQQHOD[LV >@ = UGFKDQQHOD[LV >@
WKFKDQQHOD[LV >@ $ WKFKDQQHOD[LV >@
WKFKDQQHOD[LV >@ % &KDQQHOD[LVJDS WKFKDQQHOD[LV >@
WKFKDQQHOD[LV >@ 8 WKFKDQQHOD[LV >@
WKFKDQQHOD[LV >@ 9 WKFKDQQHOD[LV >@
WKFKDQQHOD[LV >@ WKFKDQQHOD[LV >@
Boundary conditions
● Channel axes without assigned machine axes (channel axis gaps) are, regarding the
number and indexing of the channel axes, treated just like normal channel axes with
associated machine axes.
● If a channel axis without assigned machine axis (channel axis gap) is defined as geometry
axis, then this is rejected without an alarm.
Meaning
A link axis is a machine axis that is not on the NCU from which it is traversed. The name of a
local machine axis is not entered in the machine data for the logical machine axis image of the
traversing NCU, but the NCU and machine axis name of the NCU to which it is physically
connected.
As an example, machine axis AX1 of NCU2 should be traversed from NCU1:
● NCU1: MD10002 $MN_AXCONF_LOGIC_MACHAX_TAB[n] = NC2_AX1
Requirement
The NCUs involved must be connected using link communication as a requirement for using
link axes. The link axes and link communication functions are described in detail in Distributed
systems (Page 729).
Basic functions
278 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.3 Zero points and reference points
Machine zero M
The machine zero M defines the machine coordinate system MCS. All other reference points
refer to the machine zero.
Workpiece zero W
The workpiece zero W defines the workpiece coordinate system in relation to the machine zero
M. The programmed part-program blocks are executed in the workpiece coordinate system
WCS.
Reference point R
The position of the reference point R is defined by cam switches. Reference point R calibrates
the position measuring system.
With incremental encoders, the reference point must be approached every time the control
power is switched on. The control can only then work with the measuring system and transfer
all position values to the coordinate systems.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 279
Axes, coordinate systems, frames
3.3 Zero points and reference points
0 :
7
Basic functions
280 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.3 Zero points and reference points
;
0DFKLQH]HUR :RUNSLHFH]HUR
:RUNSLHFHOHQJWK
==
0 :
6SLQGOH
;
=
5HIHUHQFHSRLQW
7 5
7RROKROGHU
0DFKLQH]HUR
7RROFDUULHU
/
UHIHUHQFHSRLQW
;
/
=
0
Figure 3-9 Position of the reference point to the machine zero point
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 281
Axes, coordinate systems, frames
3.4 Coordinate systems
3.4.1 Overview
Definitions
DIN 66217 stipulates that when programming machine tools, right-angled, rectangular
(Cartesian) coordinate systems must be used. The positive directions of the coordinate axes
can be determined using the "right-hand rule".
<
;
=
The coordinate system used when programming is referred to the workpiece. Programming is
realized independent of whether the tool or the workpiece is moved. When programming, it is
always assumed that the tool traverses relative to the coordinate system of the workpiece,
which is intended to be stationary.
Positive (clockwise) rotation of rotary axes can also be defined using the "right-hand rule". If the
thumb of the right hand points towards the positive direction of a coordinate axis (linear axis),
then the fingers point in the positive direction of rotation of the associated rotary axis.
=
&
r r
$ %
r
; <
Basic functions
282 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
Coordinate systems
The following coordinate systems are defined for machine tools:
:&6
3B75$)5$0(3B3)5$0(
3B,62)5$0(3B&<&)5$0(
6=6
3B722/)5$0(3B:3)5$0(
LQD
3B,)5$0(3B*)5$0(
FK
H
%=6
DP
)U
3B$&7%)5$0(
3B3$57)5$0(3B6(7)5$0(3B(;7)5$0(
3B,62)5$0(3B,62)5$0(3B,62)5$0(
%&6
+DQGZKHHO'5)RIIVHWRYHUODLGPRYHPHQWH[WHUQDOZRUNRIIVHWNLQHPDWLF
WUDQVIRUPDWLRQ
0&6
5HIHUHQFHSRLQWRIIVHW
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 283
Axes, coordinate systems, frames
3.4 Coordinate systems
&
<
;
=
0
Basic functions
284 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
CAUTION
Loss of the encoder adjustment
After a preset offset, the appropriate machine axis is in the "Not referenced" state! This means
that when using absolute encoders, the encoder adjustment is lost and must be performed
again (e.g. by calibration with a laser interferometer ). The use of PRESETON in combination
with absolute encoders is therefore not recommended.
Note
We recommend that the function is only used for machine axes that do not require a reference
point.
In order to restore the original machine coordinate system, the machine axis must be re-
referenced, e.g. with G74 (reference point approach).
The machine axes are not moved with the preset offset.
Further information
● "NC Programming" Programming Manual, supplemental commands
● "NC Programming" Programming Manual, coordinate transformations (FRAMES)
3.4.2.1 Actual value setting with loss of the referencing status (PRESETON)
Function
The PRESETON() procedure sets a new actual value for one or more axes in the machine
coordinate system (MCS). This corresponds to work offset of the axis MCS. The axis is not
traversed.
A preprocessing stop with synchronization is triggered by PRESETON. The actual position is not
assigned until the axis is at standstill.
If the axis is not assigned to the channel for PRESETON, the next steps depend on the
replacement behavior parameterized in the following machine data:
MD30552 $MA_AUTO_GET_TYPE
Referencing status
By setting a new actual value in the machine coordinate system, the referencing status of the
machine axis is reset.
DB31, ... DBX60.4/.5 = 0 (referenced/synchronized measuring system 1/2)
It is recommended that PRESETON only be used for axes that do not require a reference point.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 285
Axes, coordinate systems, frames
3.4 Coordinate systems
To restore the original machine coordinate system, the measuring system of the machine axis
must be referenced again, e.g. through active referencing from the part program (G74).
CAUTION
Loss of the referencing status
By setting a new actual value in the machine coordinate system with PRESETON, the
referencing status of the machine axis is reset to "not referenced/synchronized".
Programming
Syntax
PRESETON(<axis_1>, <value_1> [, <axis_2>, <value_2>, ... <axis_8>,
<value_8>])
Meaning
System variable
$AC_PRESET
The axis-specific system variable $AC_PRESET provides the vector from the zero point of the
currently offset MCS' to the zero point of the original MCS0 after the referencing of the machine
axis.
$AC_PRESET<axis> = $AC_PRESET<axis> + "current actual position of the axis in the MCS"
- "PRESETON actual position"
The work offset can be undone with the system variables:
PRESETON(<axis>, $VA_IM + $AC_PRESET[<axis>]) ; "current actual
position of the axis in the MCS'" + "offsets"
Basic functions
286 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
Example
Program code
N10 G1 X10 F5000
N20 PRESETON(X, $AA_IM[X]+70) ; actual value = 10 + 70 = 80 =>
; $AC_PRESET = $AC_PRESET - 70
Boundary conditions
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 287
Axes, coordinate systems, frames
3.4 Coordinate systems
Geometry axes
● PRESETON can be used on a stationary geometry axis when a further geometry axis is not
being traversed in the channel at the same time.
● PRESETON can be used on a stationary geometry axis even when a further geometry axis
is being traversed in the channel at the same time, but this axis is in the "neutral axis" state
or traversing as a command axis.
Example: A further geometry (X) is traversing at the same time in the "neutral axis" state
PLC-controlled axes
PRESETON can be used on PLC-controlled axes according to their current type.
Spindle states
The following table shows the reactions that occur when PRESETON is used on a spindle in a
synchronized action:
Basic functions
288 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
Axis couplings
● Leading axes: The sudden change of the leading axis position caused by PRESETON is not
traversed in the following axes. The coupling is not changed.
● Following axes: Only the overlaid position component of the following axis is affected
by PRESETON.
Gantry grouping
If PRESETON is used on the guide axis of a gantry grouping, the work offset is also performed
in all synchronized axes of the gantry grouping.
Indexing axes
PRESETON can be used on indexing axes.
DRF offset
A DRF offset of the axis is deleted by PRESETON.
Axis-specific compensations
Axis-specific compensations remain active after PRESETON.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 289
Axes, coordinate systems, frames
3.4 Coordinate systems
JOG mode
PRESETON must only be used on a stationary axis.
3.4.2.2 Actual value setting without loss of the referencing status (PRESETONS)
Function
The PRESETONS() procedure sets a new actual value for one or more axes in the machine
coordinate system (MCS). This corresponds to work offset of the axis MCS. The axis is not
traversed.
A preprocessing stop with synchronization is triggered by PRESETONS. The actual position is
not assigned until the axis is at standstill.
If the axis for PRESETONS is not assigned to the channel, the next steps depend on the axis-
specific configuring of the axis replacement behavior:
MD30552 $MA_AUTO_GET_TYPE
Referencing status
By setting a new actual value in the machine coordinate system (MCS) with PRESETONS, the
referencing status of the machine axis is not changed.
Prerequisites
● Encoder type
PRESETONS is only possible with the following encoder types of the active measuring
system:
– MD30240 $MA_ENC_TYPE[<measuring system>] = 0 (simulated encoder)
– MD30240 $MA_ENC_TYPE[<measuring system>] = 1 (raw signal encoder)
● Referencing mode
PRESETONS is only possible with the following referencing modes of the active measuring
system:
– MD34200 $MA_ENC_REFP_MODE[<measuring system>] = 0 (reference point
approach not possible)
– MD34200 $MA_ENC_REFP_MODE[<measuring system>] = 1 (referencing of
incremental, rotary or linear measuring systems: zero pulse on the encoder track)
Commissioning
Basic functions
290 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
Note
PRESETON deactivated
Activation of the "Actual value setting without loss of the referencing status PRESETONS"
function deactivates the "Actual value setting with loss of the referencing status PRESETON"
function. The options mutually exclude each other.
Programming
Syntax
PRESETONS(<axis_1>, <value_1> [, <axis_2>, <value_2>, ... <axis_8>,
<value_8>])
Meaning
System variable
$AC_PRESET
The axis-specific system variable $AC_PRESET provides the vector from the zero point of the
currently offset MCS' to the zero point of the original MCS0 after the referencing of the machine
axis.
$AC_PRESET<axis> = $AC_PRESET<axis> + "current actual position of the axis in the MCS"
- "PRESETONS actual position"
The work offset can be undone with the system variables:
PRESETONS(<axis>, $VA_IM + $AC_PRESET[<axis>]) ; "current actual
position of the axis in the MCS'" + "offsets"
Example
Work offset of the X axis MCS by 70 units.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 291
Axes, coordinate systems, frames
3.4 Coordinate systems
The programmed end position of the X axis (command axis) is transformed to the new MCS
with PRESETONS.
Program code
N10 G1 X10 F5000
N20 PRESETONS(X, $AA_IM[X]+70) ; actual value = 10 + 70 = 80 =>
; $AC_PRESET = $AC_PRESET - 70
Boundary conditions
Basic functions
292 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
Geometry axes
● PRESETONS can be used on a stationary geometry axis when a further geometry axis is not
being traversed in the channel at the same time.
● PRESETONS can be used on a stationary geometry axis even when a further geometry axis
is being traversed in the channel at the same time, but this axis is in the "neutral axis" state
or traversing as a command axis.
Example: A further geometry (X) is traversing at the same time in the "neutral axis" state
PLC-controlled axes
PRESETONS can be used on PLC-controlled axes according to their current type.
Spindle states
The following table shows the reactions that occur when PRESETONS is used on a spindle in a
synchronized action:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 293
Axes, coordinate systems, frames
3.4 Coordinate systems
Axis couplings
● Leading axes: The sudden change of the leading axis position caused by PRESETONS is not
traversed in the following axes. The coupling is not changed.
● Following axes: Only the overlaid position component of the following axis is affected
by PRESETONS.
Gantry grouping
If PRESETONS is used on the guide axis of a gantry grouping, the work offset is also performed
in all synchronized axes of the gantry grouping.
Indexing axes
PRESETONS can be used on indexing axes.
DRF offset
A DRF offset of the axis is deleted by PRESETONS.
Basic functions
294 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
Axis-specific compensations
Axis-specific compensations remain active after PRESETONS.
JOG mode
PRESETONS must only be used on a stationary axis.
Synchronized actions
In a synchronized action for an axis, if several PRESETONS instructions are included, then only
the last instruction in the sequence from left to right is actually executed.
Example:
Program code
N10 ID=1 WHEN TRUE DO PRESETONS(X,40) PRESETONS(X,39) PRESETONS(X,38)
; This is equivalent to:
N10 ID=1 WHEN TRUE DO PRESETONS(X,38)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 295
Axes, coordinate systems, frames
3.4 Coordinate systems
<
0&6 %&6
;
=
0DFKLQH]HUR
<%.6
\0.6 .LQHPDWLF
WUDQVIRUPDWLRQ
;%.6
=%.6
;0.6 %DVLFFRRUGLQDWHV\VWHP%&6
=0.6
0DFKLQHFRRUGLQDWH
V\VWHP0&6
Machine kinematics
The workpiece is always programmed in a two- or three-dimensional, right-angled coordinate
system (WCS). However, such workpieces are being programmed ever more frequently on
machine tools with rotary axes or linear axes not perpendicular to one another. Kinematic
transformation is used to represent coordinates programmed in the workpiece coordinate
system (rectangular) in real machine movements.
Basic functions
296 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
Further information
Function Manual Transformations, Multi-axis transformations
<
<
%DVLFRIIVHW
;
=
;
%DVLF]HURV\VWHP%=6
=
%DVLFFRRUGLQDWHV\VWHP
%&6
Basic offset
The basic offset describes the coordinate transformation between BCS and BZS. It can be
used, for example, to define the palette zero.
The basic offset comprises:
● External work offset
● DRF offset
● Superimposed motion
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 297
Axes, coordinate systems, frames
3.4 Coordinate systems
=
<
0
;
① A kinematic transformation is not active. This means that the machine coordinate system and
the basic coordinate system coincide.
② The basic zero system (BZS) with the pallet zero are obtained from the basic offset.
③ The settable work offset G54 or G55 specifies the "settable zero system" (SZS) for work‐
piece 1 or workpiece 2 respectively.
④ The workpiece coordinate system (WCS) results from the programmable coordinate trans‐
formation.
Figure 3-18 Example for coordinate systems on machine tool
Basic functions
298 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
<
<
*ಹ*
;
=
;
6HWWDEOH]HURV\VWHP6=6
=
%DVLF]HURV\VWHP
%=6
Figure 3-19 Settable FRAME G54 ... G599 between BZS and SZS
Programmable offsets act on the "settable zero system". All programmable offsets refer to the
"settable zero system".
Value Meaning
0 Actual value display in relation to the WCS
1 Actual value display in relation to the SZS
Note
Display of the current coordinate system
When "Actual-value display in relation to the SZS" is active, the WCS is still displayed on the
HMI operator interface as the coordinate system to which the actual-value display relates.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 299
Axes, coordinate systems, frames
3.4 Coordinate systems
Example
Actual value display in relation to the WCS or SZS
<
<
3URJUDPPDEOH)5$0(ZLWK
3B3)5$0(
;
=
;
:RUNSLHFHFRRUGLQDWHV\VWHP
:&6
=
6HWWDEOH]HURV\VWHP
6=6
Basic functions
300 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
]%16
]%.6
[%16
$$B(75$163B(;7)5$0(
[%.6
The external work offset $AA_ETRANS is effective in two ways depending on the machine data
parameterization:
1. The $AA_ETRANS system variable has a direct effect as offset value after activation by the
NC/PLC interface signal.
2. The value of the $AA_ETRANS system variable is taken into the system frame
$P:EXTFRAME and the data management frame $P_EXTFR after activation by the NC/
PLC interface signal. The active complete frame $P_ACTFRAME is then recalculated.
Machine data
In conjunction with the $AA_ETRANS system variable, a distinction is made between two
procedures which are selected via the following machine data:
MD28082 $MC_MM_SYSTEM_FRAME_MASK, bit1 = <value>
<Value> Meaning
0 Function: Direct writing of $AA_ETRANS[<axis>] by the PLC, HMI or NC program.
Enable to traverse the work offset of $AA_ETRANS[<axis>] in the next possible traversing block: DB31, ...
DBX3.0
1 Function: Activation of the active system frame $P:EXTFRAME and the data management frame $P_EXTFR
Enable to traverse the work offset of $AA_ETRANS[<axis>] through: DB31, ... DBX3.0. The following is per‐
formed in the channel:
● Stop of all traversing movements in the channel (except command and PLC axes)
● Preprocessing stop with subsequent reorganization (STOPRE)
● Coarse offset of the active frame $P_EXTFRAME[<axis>] = $AA_ETRANS[<axis>]
● Coarse offset of the data management frame $P_EXTFR[<axis>] = $AA_ETRANS[<axis>]
● Recalculation of the active complete frame $P_ACTFRAME
● Traversing of the offset in the programmed axes.
● Continuation of the interrupted traversing movement or the NC program
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 301
Axes, coordinate systems, frames
3.4 Coordinate systems
Programming
Syntax
$AA_ETRANS[<axis>] = <value>
Meaning
System variable
The DRF offset can be read from the axis-specific system variable:
$AC_DRF[<Axis>]
Further information
Function Manual Axes and Spindles; Manual traversing
Basic functions
302 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
Machine data
● The reset behavior for the system frame active of the $P_EXTFRAME external work offset
in the channel is set with the following machine data:
● MD24006 $MC_CHSFRAME_RESET_MASK, bit 1 = <value>
Value Meaning
The active system frame of the external work offset after channel/program end reset is:
0 Not active
1 Active
● The Power On behavior of the channel-specific system frame of the $P_EXTFR external
work offset of the data management is set with the following machine data:
MD24008 $MC_CHSFRAME_POWERON_MASK, bit 1 = <value>
Value Meaning
The $P_EXTFR system frame of the external work offset for Power On
0 Not deleted
1 Deleted
3.4.8.1 Function
Axis-specific system variable $AA_OFF[<axis>] can specify an absolute position or an
incremental distance of the specified axis in a synchronous action, for example. The resulting
traversing motion is then executed in parallel with the traversing motions of the channel of the
axis.
$AA_OFF[<axis>] = <value>
3.4.8.2 Commissioning
Machine data
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 303
Axes, coordinate systems, frames
3.4 Coordinate systems
System variable
Note
CORROF can be programmed in an NC program.
CORROF must not be programmed in a synchronized action.
Syntax
CORROF(<Axis>,"<String>"[,<Axis>,"<String>"])
Meaning
CORROF: Procedure for the deselection of the following offsets and overlays of an axis:
● DRF offset
● Position offsets ($AA_OFF)
Effective‐ Modal
ness:
Basic functions
304 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.4 Coordinate systems
Examples
...
; The position offset of the X axis is deselected: $AA_OFF[X]=0
; The X axis is not traversed.
; The position offset is added to the current position of the X axis.
N80 CORROF(X,"AA_OFF")
...
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 305
Axes, coordinate systems, frames
3.4 Coordinate systems
Example 4: Axis-specific deselection of a DRF offset and a $AA_OFF position offset (1)
A DRF offset is generated in the X axis by DRF handwheel traversal. No DRF offsets are
operative for any other axes in the channel.
Example 5: Axis-specific deselection of a DRF offset and a $AA_OFF position offset (2)
A DRF offset is generated in the X and Y axes by DRF handwheel traversal. No DRF offsets are
operative for any other axes in the channel.
Further information
$AA_OFF_VAL
Once the position offset has been deselected by means of $AA_OFF, system variable
$AA_OFF_VAL (integrated distance of axis overlay) for the corresponding axis will equal zero.
Basic functions
306 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
3.5 Frames
Axis-specific frame
An axis-specific frame contains the frame values of an axis.
Example data structure of an axis-specific frame for geometry axis X:
Channel-specific frame
A channel-specific frame contains frame values for all channel axes (geometry, special and
machine axes).
Rotations (ROT) are only included in the calculation for geometry axes.
A channel-specific frame is only active in the channel in which the frame is defined.
Example of the data structure of a channel-specific frame:
● Geometry axes: X, Y, Z
● Special axes: A
● Machine axes: AX1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 307
Axes, coordinate systems, frames
3.5 Frames
Global frame
A global frame contains the frame values for all machine axes.
A global frame is active in all channels of the NC.
Example data structure of global frame:
● Machine axes: AX1, ... AX5
3.5.2.1 Translation
Programming
The programming of the translation or coarse offset can be performed via the following
commands:
● Example of data management frames $P_UIFR
– Complete frame: $P_UIFR[<n>] = CTRANS(<K1>,<V1>[,<K2>,<V2>]
[,<K3>,<V3>])
with Km = coordinate x, y or z and Vm = offset m
– Frame component: $P_UIFR[<n>,<k>,TR] = <V>
with K = coordinate x, y or z and V = offset
● Example of programmable frame
– TRANS <K1> <V1> [<K2> <V2>][<K3> <V3>]
with Km = coordinate x, y or z and Vm = offset m
Programs examples:
Basic functions
308 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
7UDQVODWLRQILQH
GLVSODFHPHQW
\
Parameterization
The fine offset is enabled via the machine data:
MD18600 $MN_MM_FRAME_FINE_TRANS = <value>
Value Meaning
0 The fine offset cannot be entered or programmed.
1 Fine offset is possible for settable frames, basic frames and the programmable frame via
command or program.
Programming
The programming of the translation or coarse offset can be performed via the following
commands:
● Example of data management frames $P_UIFR
– Complete frame: $P_UIFR[<n>] = CFINE(<K1>,<V1>[,<K2>,<V2>]
[,<K3>,<V3>])
with Km = coordinate x, y or z and Vm = offset m
– Frame component: $P_UIFR[<n>,<K>,FI] = <V>
with K = coordinate x, y or z and V = offset
● Example of programmable frame
– TRANS <K1> <V1> [<K2> <V2>][<K3> <V3>]
with Km = coordinate x, y or z and Vm = offset m
Programming examples:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 309
Axes, coordinate systems, frames
3.5 Frames
Function
The direction of rotation around the coordinate axes is determined by means of a right-hand,
rectangular coordinate system with axes x, y and z. If the rotary motion is in a clockwise
direction when looking in the positive direction of the coordinate axis, the direction of rotation
is positive. A, B and C designate rotations whose axes are parallel to the coordinate axes.
<
[
<
]
]
The following figure shows the new position of the coordinate system x', y' and z' after the
rotation around z with γ = -45°
$ [
&
Basic functions
310 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Value Meaning
1 Euler angles in zy'x'' convention (RPY angles)
2 Euler angles in zx'z" convention
Note
For historical reasons, Euler angles in zx'z" convention can be used. However, it is strongly
recommended that only Euler angles in zy'x" convention (RPY angles) be used (see
Section Rotation with a Euler angles: ZY'X" convention (RPY angles) (Page 311)).
<DZ
= 3LWFK
<
5ROO
For the ZY'X'' convention, the rotations are carried out in the following sequence:
\ೀ \ು \ೀ
] ]ಿ ]ಿ
\ಿ \ಿ
[ು
]ೀ ]ೀ ]ು
\
[ಿ [ಿ [ೀ [ೀ
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 311
Axes, coordinate systems, frames
3.5 Frames
Value range
With RPY angles, programmed values can only be unambiguously calculated back within the
following value ranges:
-180 ≤ x ≤ 180
-90 < y < 90
-180 ≤ z ≤ 180
Syntax
<frame> = CROT([<1st GAx>,<angle>,][<2nd GAx>,<angle>,][<3rd
GAx>,<angle>])
ROT [<1st GAx> <Angle>] [<2. GAx> <Angle>] [<3. GAx> <Angle>]
AROT [<1st GAx> <Angle>] [<2. GAx> <Angle>] [<3. GAx> <Angle>]
Meaning
Basic functions
312 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Syntax
<frame>[<index>,<GAx>,RT] = <angle>
Meaning
Note
It is recommended that when writing the rotation components of the frame, the specified value
ranges are observed so that the same values are obtained when reading back the rotation
components.
Gimbal lock
Gimbal lock designates a geometric problem in which the rotation components can no longer
be unambiguously calculated back from the position vector. Gimbal lock occurs in RPY angles
with an angular position of the rotation component y = 90°. In this case, the rotation components
are converted by the control system after being written so that the following applies:
● Rotation component z = rotation component z - rotation component x
● Rotation component x = 0°
● Rotation component y = 90°
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 313
Axes, coordinate systems, frames
3.5 Frames
CAUTION
Different values for reading back the rotation component z
Because of the different conversion times after writing the complete frame or the writing
of individual rotation components of a data management frame and the writing of individual
rotation components of an active frame, different values can be read back for rotation
component z.
Basic functions
314 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Example
● Writing the complete frame
The conversion is made in each block after the complete frame has been written.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 315
Axes, coordinate systems, frames
3.5 Frames
Note
Recommended use
For historical reasons, Euler angles in zx'z" convention can be used. However, it is strongly
recommended that only Euler angles in zy'x" convention (RPY angles) be used (see
Section Rotation with a Euler angles: ZY'X" convention (RPY angles) (Page 311)).
] ]ಿ ]ಿ \ು
]ೀ ]ೀ
[ೀ [ೀ [ು
\ಿ \ಿ \ೀ \ೀ
]ು
[ಿ [ಿ
Value range
Data from Euler angles can only be unambiguously calculated back within the following value
ranges:
Note
It is recommended that when writing the rotation components of the frame, the specified value
ranges are observed so that the same values are obtained when reading back the rotation
components.
Basic functions
316 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Syntax
CRPL(<rotary axis>,<angle of rotation>)
Meaning
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 317
Axes, coordinate systems, frames
3.5 Frames
3.5.2.7 Scaling
6FDOLQJ
Programming
The program commands below are used to program the scaling:
$P_UIFR[1] = CSCALE(x,1,y,1)
SCALE x = 1y = 1
$P_UIFR[1,x,sc] = 1
3.5.2.8 Mirroring
0LUURULQJ
Programming
The program commands below are used to program a mirroring:
$P_UIFR[1] = CMIRROR(x,1,y,1)
MIRROR x = 1y = 1
$P_UIFR[1,x,mi] = 1
Basic functions
318 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
SPI
When programming frame commands, the SPI(<spindle number>) axis function can be
used in place of an axis name.
SPI(<spindle number>) forms the reference of the spindle to the channel axis.
→ refer to MD35000 $MA_SPIND_ASSIGN_TO_MACHAX[ ] (assignment of spindle to machine
axis)
The following frame commands can be programmed with SPI(spino):
CTRANS()
CFINE()
CMIRROR()
CSCALE()
A spindle can only be assigned to one rotary axis at a time. The CROT(..) function can
therefore not be programmed withSPI(), as only geometry axes are permitted forCROT().
The channel axis name or machine axis name of the axis belonging to the spindle is always
output when decompiling frames, even when axis names have been programmed in the part
program with SPI(..).
If the spindle is assigned e.g., to the Channel Axis A then the programming:
N10 $P_UIFR[1] =
CTRANS(SPI(1),33.33,X,1):CSCALE(SPI(1),33.33):CMIRROR(SPI(1))
during recompilation:
$P_UIFR[1]=CTRANS(X,1,A,33.33):CSCALE(A,33.33):CMIRROR(A)
If a spindle and an assigned axis are programmed in a frame command, then Alarm 16420
"Axis % multiply programmed" is output.
Example:
$P_UIFR[1] = CTRANS(SPI(1),33.33,X,1,A,44)
(The spindle is assigned to Axis A.)
Programming examples
$P_PFRAME[SPI(1),TR]=22.22
$P_PFRAME=CTRANS(X, axis value,Y,axis value,SPI(1),axis value)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 319
Axes, coordinate systems, frames
3.5 Frames
$P_PFRAME=CSCALE(X,Scale,Y,scale,SPI(2),scale)
$P_PFRAME=CMIRROR(S1,Y,Z)
$P_UBFR=CTRANS(A,10):CFINE(SPI(1),0.1)
6FDOLQJ
0LUURULQJ
5RWDWLRQ
)LQHRIIVHW
&RDUVHRIIVHW
The formulae below are used to discover the coordinate transformation for geometry axes:
%&6᪸:&6 Y
LQY0
LQY6
LQY5YW
3.5.3.1 Overview
Frame types
The following frame types are available:
● System frames ($P_PARTFR, ... see figure)
● Basic frames ($P_NCBFR[<n>], $P_CHBFR[<n>])
Basic functions
320 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
*ULQGLQJIUDPHV
1&8RGHU&+$1
3B*)5>Q@
6\VWHPIUDPHV
&+$1 3B*)5>@
3B5(/)5 3B&<&)5
3B,62)5 3B75$)5
***3,B6(78'7
$FWLYDWLRQRIGDWDVWRUDJHIUDPHVWKURXJK *)5$0(*)5$0(5HVHW
7UDQVIRUPDWLRQVZHFKVHO*(2$;
&KDQQHO $FWLYHIUDPHV
3B$&7)5$0( 3B3$57)5$0(3B6(7)5$0(3B(;7)5$0(
DFWLYHFRPSOHWHIUDPHWKURXJKFKDLQLQJ 3B,62)5$0(3B,62)5$0(3B,62)5$0(
RIDOODFWLYHIUDPHVLQWKHVSHFLILHGRUGHU 3B$&7%)5$0(3B,)5$0(3B*)5$0(
3B722/)5$0(3B:3)5$0(3B75$)5$0(
3B3)5$0(3B,62)5$0(3B&<&)5$0(
3DUWSURJUDP
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 321
Axes, coordinate systems, frames
3.5 Frames
Writing frames
Data management frames and active frames can be written from the part program. Only data
management frames can be written via the user interface.
Archiving frames
Only data management frames can be archived.
Basic functions
322 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 323
Axes, coordinate systems, frames
3.5 Frames
● All channels of an NCU can read and write NCU-global frames equally.
● As the assignment of machine axes to channel axes and, in particular, to geometry axes,
can be different in all channels, there is consequently no unique cross-channel geometric
relationship between the channel axes. Therefore, only offset, scaling and mirroring is
possible for NCU-global frames. Rotations are not possible.
Note
Program coordination
The coordination of channel-specific accesses to NCU-global frames is the sole responsibility
of the user. It is recommended that the commands for the program coordination be used.
Further information
"NC Programming" Programming Manual
3.5.4.1 Overview
The figure below shows the frame chain for the current complete frame. The frame chain is
located between the basic coordinate system (BCS) and the workpiece coordinate system
(WCS).
The settable zero system (SZS) corresponds to the WCS transformed by the programmable
frame. The basic zero system (BZS) still includes the current settable frame. The system frame
for the external work offset exists only if it has been configured. Otherwise, the external work
offset is traversed as overlaid movement of the axis.
Basic functions
324 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
:&6
3B75$)5$0(3B3)5$0(
3B,62)5$0(3B&<&)5$0(
6=6
3B722/)5$0(3B:3)5$0(
Q
DL
3B,)5$0(3B*)5$0(
FK
H
%=6
D P
)U
3B$&7%)5$0(
3B3$57)5$0(3B6(7)5$0(3B(;7)5$0(
3B,62)5$0(3B,62)5$0(3B,62)5$0(
%&6
+DQGZKHHO'5)RIIVHWRYHUODLGPRYHPHQWH[WHUQDOZRUNRIIVHWNLQHPDWLF
WUDQVIRUPDWLRQ
0&6
5HIHUHQFHSRLQWRIIVHW
Complete frame
The current complete frame $P_ACTFRAME results from the chaining of all active frames of the
frame chain:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 325
Axes, coordinate systems, frames
3.5 Frames
The position indicator for axis setpoints is done in WCS or in SZS. The configuring is done via
HMI machine data. Always only one display-coordinate system is active in the channel. For this
reason only one relative frame is provided which generates both relative coordinate systems in
the same ratio. The HMI displays the relative coordinates according to the configuration.
6 5( /
:&
6 5(/
6=
(
$0
)5
(
(/
$0
B5
)5
3
(/
:&6
B5
3
6=6
The axis position in the relative coordinate system WCSRel can be read via the variable
$AA_PCS_REL[ax]. The variable can be read in part program, BTSS and via synchronized
actions.
The axis position in the relative coordinate system SZSRel can be read via the variable
$AA_ACS_REL[ax]. The variable can be read in part program, BTSS and via synchronized
actions.
Basic functions
326 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
The setting of a relative reference point via the operator panel is done via the general command
interface for the workpiece and tool measuring. The system frame $P_RELFR for relative
coordinate systems is calculated and activated as follows:
● $AC_MEAS_TYPE = 14
● PI-services _N_SETUDT(6, 7)
An example of setting the relative axis positions can be found in:
Further information
Function Manual Technologies; Measurement (M5)
Machine data
The specification how the SZS is to be calculated from the cycle-specific WCS is set via the
following machine data.
MD24030 $MC_FRAME_ACS_SET = <value>
<value> Meaning
0 SZS = WCS transformed with $P_TRAFRAME, $P_PFRAME, $P_ISO4FRAME and $P_CY‐
CFRAME
1 SZS = WCS transformed only with $P_CYCFRAME
0'0&B)5$0(B$&6B6(7 0'0&B)5$0(B$&6B6(7
6=6 ;6=6
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 327
Axes, coordinate systems, frames
3.5 Frames
Effects
The reconfiguration of the SZS has an effect on:
● SZS-related actual values: Actual-value displays, system variables, e.g. $AA_IEN, etc.
● Manual traversing (JOG) of geometry axes in the SZS
3.5.4.4 Manual traversing of geometry axes either in the WCS or in the SZS ($AC_JOG_COORD)
Previously, geometry axes have been traversed manually in JOG mode in the WCS. In
addition, there is also the option to carry out this manual traversing in the SZS coordinate
system. The $AC_JOG_COORD variable enables the user to switch between manual
traversing in the WCS and SZS. The user can now select if he wants to traverse in the SZS or
the WCS.
During manual traversing in the JOG mode, the geometry axes can be traversed either in the
workpiece coordinate system (WCS) or in the settable zero system (SZS).
System variables
During manual traversing in the JOG mode, the geometry axes can be traversed either in the
workpiece coordinate system (WCS) or in the settable zero system (SZS). The selection is
made via the system variable $AC_JOG_COORD:
$AC_JOG_COORD = <value>
<Value> Meaning
0 Workpiece coordinate system (WCS)
1 Settable zero system (SZS)
Basic functions
328 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
3$
68
:.6
3B75$)5$0(3B3)5$0(
*
3B,62)5$0(3B&<&)5$0(
* (16
3B722/)5$0(3B:3)5$0(
3B,)5$0(3B*)5$0(
%16
3B$&7%)5$0(
3B3$57)5$0(3B6(7)5$0(3B(;7)5$0(
3B,62)5$0(3B,62)5$0(3B,62)5$0(
%.6
+DQGZKHHO'5)PRYHPHQWRYHUODLGPRYHPHQW
([WHUQDOZRUNRIIVHW
.LQHPDWLFVWUDQVIRUPDWLRQ
0.6
5HIHUHQFHSRLQWRIIVHW
Machine data
The behavior of position displays (HMI) and position values in system variables is specified via
the following machine data:
MD24020 $MC_FRAME_SUPPRESS_MODE, bit<n> = <value> (positions during frame
suppression)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 329
Axes, coordinate systems, frames
3.5 Frames
Programming
Com‐ Meaning
mand
G53: Nonmodal suppression of the following frames:
$P_TRAFRAME : $P_PFRAME : $P_ISO4FRAME : $P_CYCFRAME
$P_IFRAME : $P_GFRAME : $P_TOOLFRAME : $P_WPFRAME :
G153: Non-modal suppression of the frames as for G53 plus following frames:
$P_PARTFRAME : $P_SETFRAME : $P_EXTFRAME : $P_ACTBFRAME
$P_ISO1FRAME : $P_ISO2FRAME : $P_ISO3FRAME :
SUPA: Implicit preprocessing stop and non-modal suppression of the frames as for G53 and G135
plus following frames:
● Handwheel offsets (DRF)
● Overlaid movement
● External work offset
G500: Modal activation of the G500 frame. The G500 frame should normally be a zero frame.
DRFOF: Deactivation (deletion) of the handwheel offsets (DRF)
3.5.5.1 Overview
The following frames are available:
● Settable frames (G500, G54 ... G57, G505 ... G599)
● Grinding frames (GFRAME0 ... GFRAME100)
● Basic frames
● Programmable frame
● System frames
Basic functions
330 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Machine data
Value G command
1 G500
2 G54
3 G55
4 G56
5 G57
6 G505
... ...
100 G599
Value Meaning
After channel reset or part program end:
0 The settable frame-specific G command in accordance with MD20150 is active.
1 The currently active settable frame-specific G command remains active.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 331
Axes, coordinate systems, frames
3.5 Frames
Note
MD20110 $MC_RESET_MODE_MASK
The MD20152 $MC_GCODE_RESET_MODE machine data is evaluated only for:
MD20110 $MC_RESET_MODE_MASK, bit 0 == 1
System variables
Basic functions
332 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Programming
Supplementary conditions
Grinding frames are additional work offsets or "fit-dependent corrections" available particularly
for the grinding technology. They are added to the work offset of the adjustable frames
(Page 331).
3B*)5>@ 3B*)5>@
3B,)5$0(
(16 (16* (16*
%16
5$0(
&7%)
3B$
%.6ิ0.6
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 333
Axes, coordinate systems, frames
3.5 Frames
Based on the base zero system (BZS), the settable zero system (SZS) results from the chaining
of the frames active in the channel:
$P_IFRAME: $P_GFRAME : $P_TOOLFRAME :$P_WPFRAME
Machine data
Value G command
1 GFRAME0 (zero frame)
2 GFRAME1
3 GFRAME2
... ...
101 GFRAME100
Value Meaning
After channel reset or part program end:
0 The grinding-specific G command in accordance with MD20150 is active.
1 The currently active grinding-specific G command remains active.
Basic functions
334 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Note
MD20110 $MC_RESET_MODE_MASK
The MD20152 $MC_GCODE_RESET_MODE machine data is evaluated only for:
MD20110 $MC_RESET_MODE_MASK, bit 0 == 1
System variables
Note
Display (SINUMERIK Operate)
The grinding frames of the data management are displayed in a separate window of the
SINUMERIK Operate user interface.
● Further information
Operating Manual Grinding; Section "Setting up the machine" > "Work offsets" > "Displaying
and editing seat-related fine offset"
Delete (SINUMERIK Operate)
The grinding frames of the data management can be deleted individually or, for example, after
a workpiece change, all together via the SINUMERIK Operate user interface.
● Further information
Operating Manual Grinding; Section "Setting up the machine" > "Work offsets" > "Displaying
and editing seat-related fine offset"
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 335
Axes, coordinate systems, frames
3.5 Frames
Programming
Syntax
GFRAME<n>
Meaning
Supplementary conditions
Basic functions
336 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Machine data
System variables
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 337
Axes, coordinate systems, frames
3.5 Frames
The predefined frame variable $P_BFRAME can be used to read and write the current basic
frame with the array index 0, which is valid in the channel, in the part program. The written basic
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_UBFR and $P_BFRAME must be written
simultaneously. The other channels must then activate the corresponding frame, e.g. with G54.
$P_BFRAME is identical to $P_CHBFRAME[0]. The system variable always has a valid default
value. If there is no channel-specific basic frame, an alarm: "Frame: Statement not permitted"
is output on a read or write access.
Supplementary conditions
Machine data
System variables
Basic functions
338 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Programming
A channel-specific settable frame of the data management $P_UIFR[<n>] becomes the
settable frame $P_IFRAME active in the channel through the appropriate command
(G54 ... G57, G505 ... G599 and G500).
Function
All active NCU-global and channel-specific basic frames are combined into the complete basic
frame $P_ACTBFRAME:
$P_ACTBFRAME = $P_NCBFRAME[0] : ... : $P_NCBFRAME[<n>] :
$P_CHBFRAME[0] : ... : $P_CHBFRAME[<n>]
%16
(
3B&+%)5$0(>Q!@
$0
)5
7%
3B&+%)5$0(>@
&
B$
3
3B1&%)5$0(>Q!@
3B1&%)5$0(>@
%.6
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 339
Axes, coordinate systems, frames
3.5 Frames
Machine data
Reset response
Which basic frames are active after a reset (channel reset, end of program reset or Power On)
is set via the machine data:
MD20110 $MC_RESET_MODE_MASK, bit0 = 1 and bit14 = 1
● Bit 1 = 0: Default value ⇒ reset behavior corresponding to the setting of the further bits
● Bit14 = 0: The basic frames are completely deselected with reset.
● Bit14 = 1: With reset, the machine data settings are taken over in the system variables and
the basic frames selected therein become active:
– $P_NCBFRMASK = MD10613 $MN_NCBFRAME_RESET_MASK
– $P_CHBFRMASK = MD24002 $MC_CHBFRAME_RESET_MASK
Example
Programming
Basic functions
340 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
MIRROR
Mirrorings of a geometry axis were previously (up to SW-P4) related to a defined reference axis
only using the machine data:
MD10610 $MN_MIRROR_REF_AX
(reference axis for the mirroring).
From the user's point of view, this definition is difficult to understand. When mirroring the z axis,
the display showed that the x axis was mirrored and the y axis had been rotated through 180
degrees. When mirroring two axes this became even more complex and it was no longer easy
to understand, which axes had been mirrored and, which had not.
As of SW P5, there is the option to clearly display the mirroring of an axis. Mirroring is then not
mapped to mirroring of a reference axis and rotations of other axes.
This setting can be configured using:
MD10610 $MN_MIRROR_REF_AX = 0
MIRROR and AMIRROR are used to expand the programming of the programmable frame.
Previously, the specified value of the coordinate axis, e.g. the value 0 for MIRROR X0 was not
evaluated, but rather the AMIRROR had a toggle function, i.e. MIRROR X0 activates mirroring
and an additional AMIRROR X0 deactivates it. MIRROR always has an absolute effect and
AMIRROR an additive effect.
The
MD10612 $MN_MIRROR_TOGGLE = 0 ("Mirror Toggle")
machine data setting can be used to define that the programmed values are evaluated.
A value of 0, as inAMIRROR X0, deactivates the mirroring of the axis, and values not equal to
0 cause the axis to be mirrored if it is not already mirrored.
Reading or writing mirroring component-by-component is independent of the machine data:
MD10612 $MN_MIRROR_TOGGLE
A value = 0 means that the axis is not mirrored and a value = 1 means that the axis will always
be mirrored, irrespective of whether it has already been mirrored or not.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 341
Axes, coordinate systems, frames
3.5 Frames
G59 is used for axis-specific overwriting of the additively programmed translations for the
specified axes which were programmed with ATRANS.
G59 X... Y... Z... A... ...
Example
Machine data
Basic functions
342 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
System variables
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 343
Axes, coordinate systems, frames
3.5 Frames
Note
Cycle programming
The frame variables of the system frames are only for the cycle programming. Therefore, in NC
programs the system frames should not be written directly by the user, but rather only via
system functions such as TOROT, PAROT, etc.
If a channel-specific system frame of the data management is not parameterized, the following
applies for the corresponding active system frame: $P_<system frame> == null frame.
Basic functions
344 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Four different settings for handling the current $P_ACTFRAME complete frame can be made
with the following machine data:
MD10602 $MN_FRAME_GEOAX_CHANGE_MODE = <value>
<value> Meaning
0 Delete
The current complete frame is deleted when geometry axes are switched over, when trans‐
formations are selected and deselected, and on GEOAX().
The modified geometry axis configuration is not used until a new frame is activated.
1 New calculation on receipt of the rotations
The current complete frame is calculated again when the geometry axes are switched over,
whereby the frame components of the new geometry axes are effective. The rotations of the
geometry axes which were programmed before the switchover remain effective for the new
geometry axes.
For TRANSMIT, TRACYL and TRAANG, see Section "Selecting and deselecting transforma‐
tions: General (Page 347)".
2 New calculation only when no rotations were active
The current complete frame is calculated again when the geometry axes are switched over,
whereby the frame components of the new geometry axes are effective. If rotations are active
in the current basic frames, the current settable frame or the programmable frame before the
switchover, it is aborted with the alarm "Frame: Geometry axis switchover not allowed".
For TRANSMIT, TRACYL and TRAANG, see Section "Selecting and deselecting transforma‐
tions: General (Page 347)".
3 Transformation: Reset / GEOAX(): New calculation on receipt of the rotations
● Transformation: The current frame is deleted when selecting and deselecting transfor‐
mations.
● GEOAX(): With GEOAX(), the current complete frame is calculated again and the trans‐
lations, scalings and mirrorings of the new geometry axes come into effect. The rotations
of the geometry axes which were programmed before the switchover remain effective for
the new geometry axes.
The workpiece geometry is described by a coordinate system that is formed by the geometry
axes. A channel axis is assigned to each geometry axis and a machine axis is assigned to each
channel axis. An axis-specific frame exists for each machine axis (system frame, basic frame,
settable frame, programmable frame). If a different machine axis is assigned to a geometry
axis, the machine axis provides its own axis-specific frame components. The new geometry in
the channel is then generated by the new contour frames resulting from the new geometry axes
(up to three).
The current valid frames are calculated again on the geometry axis switchover and a resulting
complete frame is generated. The data management frames are not included unless they are
activated.
Example:
The channel axis A is to become a geometry axis X through geo axis substitution. The
substitution is to give the programmable frame a translation component of 10 in the X axis. The
current settable frame is to be retained.
MD10602 $MN_FRAME_GEOAX_CHANGE_MODE = 1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 345
Axes, coordinate systems, frames
3.5 Frames
Example:
Channel axes 4, 5 and 6 become the geometry axes of a 5axis transformation. The geometry
axes are thus all substituted before the transformation. The current frames are changed when
the transformation is activated. The axial frame components of the channel axes which become
geometry axes are taken into account when calculating the new WCS. Rotations programmed
before the transformation are retained. The old WCS is restored when the transformation is
deactivated. The most common application is probably that the geometry axes do not change
before and after the transformation and that the frames are to stay as they were before the
transformation.
Machine data
Program code
$MC_AXCONF_CHANAX_NAME_TAB[0] = "CAX"
$MC_AXCONF_CHANAX_NAME_TAB[1] = "CAY"
$MC_AXCONF_CHANAX_NAME_TAB[2] = "CAZ"
$MC_AXCONF_CHANAX_NAME_TAB[3] = "A"
$MC_AXCONF_CHANAX_NAME_TAB[4] = "B"
$MC_AXCONF_CHANAX_NAME_TAB[5] = "C"
$MC_AXCONF_GEOAX_ASSIGN_TAB[0] = 1
$MC_AXCONF_GEOAX_ASSIGN_TAB[1] = 2
$MC_AXCONF_GEOAX_ASSIGN_TAB[2] = 3
$MC_AXCONF_GEOAX_NAME_TAB[0] = "X"
$MC_AXCONF_GEOAX_NAME_TAB[1]="Y"
$MC_AXCONF_GEOAX_NAME_TAB[2] = "Z"
$MC_TRAFO_GEOAX_ASSIGN_TAB_1[0]=4
$MC_TRAFO_GEOAX_ASSIGN_TAB_1[1]=5
$MC_TRAFO_GEOAX_ASSIGN_TAB_1[2]=6
$MC_TRAFO_AXES_IN_1[0] = 4
$MC_TRAFO_AXES_IN_1[1] = 5
$MC_TRAFO_AXES_IN_1[2] = 6
$MC_TRAFO_AXES_IN_1[3] = 1
$MC_TRAFO_AXES_IN_1[4] = 2
Basic functions
346 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Program:
Program code
$P_NCBFRAME[0] = CTRANS(X,1,Y,2,Z,3,A,4,B,5,C,6)
$P_CHBFRAME[0] = CTRANS(X,1,Y,2,Z,3,A,4,B,5,C,6)
$P_IFRAME = CTRANS(X,1,Y,2,Z,3,A,4,B,5,C,6):CROT(Z,45)
$P_PFRAME = CTRANS(X,1,Y,2,Z,3,A,4,B,5,C,6):CROT(X,10,Y,20,Z,30)
Note
Transformations with virtual axes
When selecting TRANSMIT or TRACYL, offsets, scaling and mirroring of the real Y axis are not
accepted in the virtual Y axis. Offsets, scaling and mirroring of the virtual Y axis are deleted for
TRAFOOF.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 347
Axes, coordinate systems, frames
3.5 Frames
Transmit expansions
The machine data below can be used to take the axis-specific complete frame of the
TRANSMIT rotary axis, i.e. translation, mirroring and scaling, into account in the transformation:
● MD24905 $MC_TRANSMIT_ROT_AX_FRAME_1 = 1
● MD24955 $MC_TRANSMIT_ROT_AX_FRAME_2 = 1
A rotary axis offset can, for example, be entered by compensating the oblique position of a
workpiece in a frame within a frame chain. As a rule, this offset can also be included in the
transformation as an offset in the rotary axis. A C axis offset, as in the figure above, then leads
to corresponding X and Y values.
● MD24905 $MC_TRANSMIT_ROT_AX_FRAME_1 = 2
● MD24955 $MC_TRANSMIT_ROT_AX_FRAME_2 = 2
With this setting, the axis-specific offset of the rotary axis is taken account of in the
transformation up to the SZS. The axis-specific offsets of the rotary axis included in the SZS
frames are entered into the transformation frame as rotation. This setting is only effective if the
transformation frame has been configured.
Frame expansions:
The expansions described below are only valid for the following machine data settings:
● MD10602 $MN_FRAME_GEOAX_CHANGE_MODE = 1
● MD10602 $MN_FRAME_GEOAX_CHANGE_MODE = 2
Basic functions
348 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
The selection of transformation TRANSMIT produces a virtual geometry axis, coupled by way
of the rotary axis, which is merely included in the contour frame but does not have a reference
to an axis-specific frame. The geometric value results from the rotation of a rotary axis. All other
geometry axes accept their axis-specific components when the transformation is selected.
Components:
● Translations
When selecting TRANSMIT, translations of the virtual axis are deleted. Translations of the
rotary axis can be taken into account in the transformation.
● Rotations
Rotations before the transformation are accepted.
● Mirrorings
Mirroring of the virtual axis is deleted. Mirroring of the rotary axis can be taken into account
in the transformation.
● Scalings
Scaling of the virtual axis is deleted. Scaling of the rotary axis can be taken into account in
the transformation.
; FRAME configurations
$MN_MM_NUM_GLOBAL_USER_FRAMES=0
$MN_MM_NUM_GLOBAL_BASE_FRAMES=3
$MN_NCBFRAME_RESET_MASK='HFF'
$MC_CHBFRAME_RESET_MASK='HFF'
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 349
Axes, coordinate systems, frames
3.5 Frames
$MC_TRAFO_AXES_IN_1[0]=1
$MC_TRAFO_AXES_IN_1[1]=6
$MC_TRAFO_AXES_IN_1[2]=3
$MC_TRAFO_AXES_IN_1[3]=0
$MC_TRAFO_AXES_IN_1[4]=0
$MA_ROT_IS_MODULO[AX6]=TRUE;
$MC_TRAFO_GEOAX_ASSIGN_TAB_1[0]=1
$MC_TRAFO_GEOAX_ASSIGN_TAB_1[1]=6
$MC_TRAFO_GEOAX_ASSIGN_TAB_1[2]=3
$MC_TRANSMIT_BASE_TOOL_1[0]=0.0
$MC_TRANSMIT_BASE_TOOL_1[1]=0.0
$MC_TRANSMIT_BASE_TOOL_1[2]=0.0
$MC_TRANSMIT_ROT_AX_OFFSET_1=0.0
$MC_TRANSMIT_ROT_SIGN_IS_PLUS_1=TRUE
$MC_TRANSMIT_ROT_AX_FRAME_1=1
$MC_TRAFO_AXES_IN_2[0]=1
$MC_TRAFO_AXES_IN_2[1]=6
$MC_TRAFO_AXES_IN_2[2]=2
$MC_TRAFO_AXES_IN_2[3]=0
$MC_TRAFO_AXES_IN_2[4]=0
$MC_TRAFO_GEOAX_ASSIGN_TAB_2[0]=1
$MC_TRAFO_GEOAX_ASSIGN_TAB_2[1]=6
$MC_TRAFO_GEOAX_ASSIGN_TAB_2[2]=2
$MC_TRANSMIT_BASE_TOOL_2[0]=4.0
$MC_TRANSMIT_BASE_TOOL_2[1]=0.0
$MC_TRANSMIT_BASE_TOOL_2[2]=0.0
$MC_TRANSMIT_ROT_AX_OFFSET_2=19.0
Basic functions
350 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
$MC_TRANSMIT_ROT_SIGN_IS_PLUS_2=TRUE
$MC_TRANSMIT_ROT_AX_FRAME_2=1
; Frame settings
N820 $P_UIFR[1] = ctrans(x,1,y,2,z,3,c,4)
N830 $P_UIFR[1] = $P_UIFR[1] : crot(x,10,y,20,z,30)
N840 $P_UIFR[1] = $P_UIFR[1] : cmirror(x,c)
N850
N860 $P_CHBFR[0] = ctrans(x,10,y,20,z,30,c,15)
N870
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 351
Axes, coordinate systems, frames
3.5 Frames
CTRANS(X,1,Y,0,Z,2,CAZ,3,C,4):CROT(X,10,Y,20,Z,30):CMIRROR(X,C)
N1190 setal(61000)
N1200 endif
N1240 if $P_ACTFRAME <>
CTRANS(X,11,Y,0,Z,22,CAZ,33,C,19):CROT(X,10,Y,20,Z,30):CMIRROR(X,C)
N1250 setal(61001)
N1260 endif
N1270
N1280
N1290 $P_UIFR[1,x,tr] = 11
N1300 $P_UIFR[1,y,tr] = 14
N1310
N1320 g54
N1330
; Set frame
N1350 ROT RPL=-45
N1360 ATRANS X-2 Y10
N1370
; Four-edge roughing
N1390 G1 X10 Y-10 G41 OFFN=1; allowance 1 mm
N1400 X-10
N1410 Y10
N1420 X10
N1430 Y-10
N1440
; Tool change
N1460 G0 Z20 G40 OFFN=0
N1470 T3 D1 X15 Y-15
N1480 Z10 G41
N1490
; Four-edge finishing
N1510 G1 X10 Y-10
N1520 X-10
N1530 Y10
N1540 X10
N1550 Y-10
N1560
Basic functions
352 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
; Deselect frame
N2950 m30 N1580 Z20 G40
N1590 TRANS
N1600
N1610 if $P_BFRAME <> CTRANS(X,10,Y,0,Z,20,CAZ,30,C,15)
N1620 setal(61000)
N1630 endif
N1640 if $P_BFRAME <> $P_CHBFR[0]
N1650 setal(61000)
N1660 endif
N1670 if $P_IFRAME <>
TRANS(X,11,Y,0,Z,2,CAZ,3,C,4):CROT(X,10,Y,20,Z,30):CMIRROR(X,C)
N1680 setal(61000)
N1690 endif
N1730 if $P_ACTFRAME <>
TRANS(X,21,Y,0,Z,22,CAZ,33,C,19):CROT(X,10,Y,20,Z,30):CMIRROR(X,C)
N1740 setal(61001)
N1750 endif
N1760
N1770 TRAFOOF
N1780
N1790 if $P_BFRAME <> CTRANS(X,10,Y,20,Z,30,C,15)
N1800 setal(61000)
N1810 endif
N1820 if $P_BFRAME <> $P_CHBFR[0]
N1830 setal(61000)
N1840 endif
N1850 if $P_IFRAME <>
TRANS(X,11,Y,2,Z,3,C,4):CROT(X,10,Y,20,Z,30):CMIRROR(X,C)
N1860 setal(61000)
N1870 endif
N1880 if $P_IFRAME <> $P_UIFR[1]
N1890 setal(61000)
N1900 endif
N1910 if $P_ACTFRAME <>
TRANS(X,21,Y,22,Z,33,C,19):CROT(X,10,Y,20,Z,30):CMIRROR(X,C)
N1920 setal(61002)
N1930 endif
N1940
N2010 $P_UIFR[1] = ctrans()
N2011 $P_CHBFR[0] = ctrans()
N2020 $P_UIFR[1] = ctrans(x,1,y,2,z,3,c,0)
N2021 G54
N2021 G0 X20 Y0 Z10 C0
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 353
Axes, coordinate systems, frames
3.5 Frames
N2030 TRANSMIT(1)
N2040 TRANS x10 y20 z30
N2041 ATRANS y200
N2050 G0 X20 Y0 Z10
N2051 if $P_IFRAME <> CTRANS(X,1,Y,0,Z,3,CAY,2)
N2052 setal(61000)
N2053 endif
N2054 if $P_ACTFRAME <> CTRANS(X,11,Y,20,Z,33,CAY,2):CFINE(Y,200)
N2055 setal(61002)
N2056 endif
N2060 TRAFOOF
N2061 if $P_IFRAME <> $P_UIFR[1]
N2062 setal(61000)
N2063 endif
N2064 if $P_ACTFRAME <> CTRANS(X,11,Y,2,Z,33):CFINE(Y,0)
N2065 setal(61002)
N2066 endif
[
'LDPHWHUG
TRACYL expansions:
The machine data below can be used to take the axis-specific complete frame of the TRACYL
rotary axis, i.e. the translation, fine offset, mirroring and scaling, into account in the
transformation:
● MD24805 $MC_TRACYL_ROT_AX_FRAME_1 = 1
● MD24855 $MC_TRACYL_ROT_AX_FRAME_2 = 1
Basic functions
354 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
A rotary axis offset can, for example, be entered by compensating the oblique position of a
workpiece in a frame within a frame chain. As a rule, this offset can also be included in the
transformation as an offset in the rotary axis or as a y offset. A C axis offset, as in the figure
above, then leads to corresponding X and Y values.
● MD24805 $MC_TRACYL_ROT_AX_FRAME_1 = 2
● MD24855 $MC_TRACYL_ROT_AX_FRAME_2 = 2
With this setting, the axis-specific offset of the rotary axis is taken account of in the
transformation up to the SZS. The axial offsets of the rotary axis included in the SZS frames are
entered into the transformation frame as offsets on the peripheral surface. This setting is only
effective if the transformation frame has been configured.
Frame expansions:
The expansions described below are only valid for the following machine data settings:
● MD10602 $MN_FRAME_GEOAX_CHANGE_MODE = 1
● MD10602 $MN_FRAME_GEOAX_CHANGE_MODE = 2
The selection of transformation TRACYL produces a virtual geometry axis on the peripheral
surface, coupled via the rotary axis, which is only taken into account in the contour frame but
does not have a reference to an axis-specific frame. All components of the virtual geometry axis
are deleted. All other geometry axes accept their axis-specific components when the
transformation is selected.
Components:
● Translations
When selecting TRACYL, translations of the virtual axis are deleted. Translations of the
rotary axis can be taken into account in the transformation.
● Rotations
Rotations before the transformation are accepted.
● Mirrorings
Mirroring of the virtual axis is deleted. Mirroring of the rotary axis can be taken into account
in the transformation.
● Scalings
Scaling of the virtual axis is deleted. Scaling of the rotary axis can be taken into account in
the transformation.
; FRAME configurations
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 355
Axes, coordinate systems, frames
3.5 Frames
$MN_MM_NUM_GLOBAL_USER_FRAMES = 0
$MN_MM_NUM_GLOBAL_BASE_FRAMES = 3
$MN_NCBFRAME_RESET_MASK = 'HFF'
$MC_CHBFRAME_RESET_MASK = 'HFF'
$MC_TRAFO_AXES_IN_3[0] = 1
$MC_TRAFO_AXES_IN_3[1] = 5
$MC_TRAFO_AXES_IN_3[2] = 3
$MC_TRAFO_AXES_IN_3[3] = 2
$MC_TRAFO_GEOAX_ASSIGN_TAB_3[0] = 1
$MC_TRAFO_GEOAX_ASSIGN_TAB_3[1] = 5
$MC_TRAFO_GEOAX_ASSIGN_TAB_3[2] = 3
$MC_TRACYL_BASE_TOOL_1[0] = 0.0
$MC_TRACYL_BASE_TOOL_1[1] = 0.0
$MC_TRACYL_BASE_TOOL_1[2] = 0.0
$MC_TRACYL_ROT_AX_OFFSET_1 = 0.0
$MC_TRACYL_ROT_SIGN_IS_PLUS_1 = TRUE
$MC_TRACYL_ROT_AX_FRAME_1 = 1
Basic functions
356 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
; Frame settings
N500 $P_UIFR[1] = CTRANS(x,1,y,2,z,3,b,4)
N510 $P_UIFR[1] = $P_UIFR[1] : CROT(x,10,y,20,z,30)
N520 $P_UIFR[1] = $P_UIFR[1] : CMIRROR(x,b)
N530
N540 $P_CHBFR[0] = CTRANS(x,10,y,20,z,30,b,15)
N550
N560 G54
N570
; Transformation ON
N780 TRACYL(40.)
N790
N800 if $P_BFRAME <> CTRANS(X,10,Y,0,Z,30,CAY,20,B,15)
N810 setal(61000)
N820 endif
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 357
Axes, coordinate systems, frames
3.5 Frames
; Transformation off
N1180 TRAFOOF
N1190
N1200 if $P_BFRAME <> CTRANS(X,10,Y,20,Z,30,B,15)
N1210 setal(61000)
Basic functions
358 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
N1220 endif
N1230 if $P_BFRAME <> $P_CHBFR[0]
N1240 setal(61000)
N1250 endif
N1260 if $P_IFRAME <>
TRANS(X,11,Y,2,Z,3,B,4):CROT(X,10,Y,20,Z,30):CMIRROR(X,B)
N1270 setal(61000)
N1280 endif
N1290 if $P_IFRAME <> $P_UIFR[1]
N1300 setal(61000)
N1310 endif
N1320 if $P_ACTFRAME <>
TRANS(X,21,Y,22,Z,33,B,19):CROT(X,10,Y,20,Z,30):CMIRROR(X,B)
N1330 setal(61002)
N1340 endif
N1350
N1360 G00 x0 y0 z0 G90
N1370
N1380 m30
=
0 :
Frame expansions:
The expansions described below are only valid for the following machine data settings:
● MD10602 $MN_FRAME_GEOAX_CHANGE_MODE = 1
● MD10602 $MN_FRAME_GEOAX_CHANGE_MODE = 2
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 359
Axes, coordinate systems, frames
3.5 Frames
Components:
● Translations
When selecting TRAANG, translations of the virtual axis are deleted.
● Rotations
Rotations before the transformation are accepted.
● Mirrorings
Mirrorings of the virtual axis are taken over.
● Scalings
Scalings of the virtual axis are taken over.
; FRAME configurations
$MN_MM_NUM_GLOBAL_USER_FRAMES = 0
$MN_MM_NUM_GLOBAL_BASE_FRAMES = 3
$MN_NCBFRAME_RESET_MASK = 'HFF'
$MC_CHBFRAME_RESET_MASK = 'HFF'
$MC_TRAFO_TYPE_1 = 1024
Basic functions
360 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
$MC_TRAFO_GEOAX_ASSIGN_TAB_1[0]=4
$MC_TRAFO_GEOAX_ASSIGN_TAB_1[1]=2
$MC_TRAFO_GEOAX_ASSIGN_TAB_1[2] = 3
$MC_TRAANG_ANGLE_1 = 85.
$MC_TRAANG_PARALLEL_VELO_RES_1 = 0.
$MC_TRAANG_PARALLEL_ACCEL_RES_1 = 0.
$MC_TRAANG_BASE_TOOL_1[0] = 0.0
$MC_TRAANG_BASE_TOOL_1[1] = 0.0
$MC_TRAANG_BASE_TOOL_1[2] = 0.0
$MC_TRAFO_TYPE_2 = 1024
$MC_TRAFO_AXES_IN_2[0] = 4
$MC_TRAFO_AXES_IN_2[1] = 3
$MC_TRAFO_AXES_IN_2[2] = 0
$MC_TRAFO_AXES_IN_2[3] = 0
$MC_TRAFO_AXES_IN_2[4] = 0
$MC_TRAFO_GEOAX_ASSIGN_TAB_2[0] = 4
$MC_TRAFO_GEOAX_ASSIGN_TAB_2[1] = 0
$MC_TRAFO_GEOAX_ASSIGN_TAB_2[2] = 3
$MC_TRAANG_ANGLE_2 = -85.
$MC_TRAANG_PARALLEL_VELO_RES_2 = 0.2
$MC_TRAANG_PARALLEL_ACCEL_RES_2 = 0.2
$MC_TRAANG_BASE_TOOL_2[0] = 0.0
$MC_TRAANG_BASE_TOOL_2[1] = 0.0
$MC_TRAANG_BASE_TOOL_2[2] = 0.0
; Frame settings
N820 $P_UIFR[1] = ctrans(x,1,y,2,z,3,b,4,c,5)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 361
Axes, coordinate systems, frames
3.5 Frames
Basic functions
362 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
N1220 setal(61000)
N1230 endif
N1240 if $P_ACTFRAME <>
TRANS(X,11,Y,22,Z,33,CAX,11,B,44,C,20):CROT(X,10,Y,20,Z,30):CMIRROR(X,CAX,
C)
N1250 setal(61001)
N1260 endif
N1270
N1280
N1290 $P_UIFR[1,x,tr] = 11
N1300 $P_UIFR[1,y,tr] = 14
N1310
N1320 g54
N1330
; Set frame
N1350 ROT RPL=-45
N1360 ATRANS X-2 Y10
N1370
; Four-edge roughing
N1390 G1 X10 Y-10 G41 OFFN=1; allowance 1 mm
N1400 X-10
N1410 Y10
N1420 X10
N1430 Y-10
N1440
; Tool change
N1460 G0 Z20 G40 OFFN=0
N1470 T3 D1 X15 Y-15
N1480 Z10 G41
N1490
; Four-edge finishing
N1510 G1 X10 Y-10
N1520 X-10
N1530 Y10
N1540 X10
N1550 Y-10
N1560
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 363
Axes, coordinate systems, frames
3.5 Frames
; Deselect frame
N1580 Z20 G40
N1590 TRANS
N1600
N1610 if $P_BFRAME <> CTRANS(X,10,Y,20,Z,30,CAX,10,B,40,C,15)
N1620 setal(61000)
N1630 endif
N1640 if $P_BFRAME <> $P_CHBFR[0]
N1650 setal(61000)
N1660 endif
N1670 if $P_IFRAME <>
TRANS(X,11,Y,14,Z,3,CAX,1,B,4,C,5):CROT(X,10,Y,20,Z,30):CMIRROR(X,CAX,C)
N1680 setal(61000)
N1690 endif
N1700 if $P_IFRAME <> $P_UIFR[1]
N1710 setal(61000)
N1720 endif
N1730 if $P_ACTFRAME <>
TRANS(X,21,Y,34,Z,33,CAX,11,B,44,C,20):CROT(X,10,Y,20,Z,30):CMIRROR(X,CAX,
C)
N1740 setal(61001)
N1750 endif
N1760
N1770 TRAFOOF
N1780
N1790 if $P_BFRAME <> CTRANS(X,10,Y,20,Z,30,B,40,C,15)
N1800 setal(61000)
N1810 endif
N1820 if $P_BFRAME <> $P_CHBFR[0]
N1830 setal(61000)
N1840 endif
N1850 if $P_IFRAME <>
TRANS(X,1,Y,14,Z,3,B,4,C,5):CROT(X,10,Y,20,Z,30):CMIRROR(X,C)
N1860 setal(61000)
N1870 endif
N1880 if $P_IFRAME <> $P_UIFR[1]
N1890 setal(61000)
N1900 endif
N1910 if $P_ACTFRAME <>
TRANS(X,11,Y,34,Z,33,B,44,C,20):CROT(X,10,Y,20,Z,30):CMIRROR(X,C)
N1920 setal(61002)
N1930 endif
N1940
N1950 m30
Basic functions
364 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
All rotations in the active frames that could cause coordinate axis motions for non-existent
geometry axes are deleted with the following machine data:
MD24040 $MC_FRAME_ADAPT_MODE = 1
The data management frames are not changed in the process. Only the possible rotations are
accepted for the activation of data management frames.
Example:
No Y axis exists:
● MD20050 $MC_AXCONF_GEOAX_ASSIGN_TAB[0] = 1
● MD20050 $MC_AXCONF_GEOAX_ASSIGN_TAB[1] = 0
● MD20050 $MC_AXCONF_GEOAX_ASSIGN_TAB[2] = 3
● $P_UIFR[1] = CROT(X,45,Y,45,Z,45)
Overview
The "mapped frames" function supports the cross-channel consistent change of axis-specific
frames inside channel-specific or global data management frames. Using axis-specific
machine data, it is defined between which axes mapping is realized.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 365
Axes, coordinate systems, frames
3.5 Frames
If frame mapping is, e.g. active for machine axes AX1 and AX4, and the axis-specific frame of
axis AX1 is changed in a channel-specific data management frame (e.g. basic frame
$P_CHBFR[x]) (translation, fine translation, scaling, mirroring), then this frame data for AX1
and AX4 is transferred to all channel-specific data management frames (e.g. basic frame
$P_CHBFR[x]) in all channels in which they are parameterized as channel axes.
Frame mapping is not realized when changing the axis-specific frame data for the rotation.
Requirements
The following requirements must be fulfilled for frame mapping:
● The data management frames used for mapping must be configured:
MD28083 $MC_MM_SYSTEM_DATAFRAME_MASK (system frames)
● Channel-specific data management frames must be explicitly enabled for mapping:
MD10616 $MN_MAPPED_FRAME_MASK (enable frame mapping)
Note
For global data management frames, mapping is always carried out. An enable is not
required.
Parameterization
The parameterization of the mapping relationships is realized in the axis-specific machine data:
MD32075 $MA_MAPPED_FRAME[<AXn>] = "AXm"
AXn, AXm: Machine axis name with n, m = 1, 2, ... max. number of machine axes
Mapping rules
The following rules apply for frame mapping:
● The mapping is bidirectional.
An axis-specific frame can be written for axis AXn or AXm. The frame data is always
accepted and taken for the other axis.
● All parameterized mapping relationships are always evaluated.
When writing an axis-specific frame of axes AXn, all mapping relationships are evaluated
and the frame data accepted for all directly and indirectly involved axes.
● The mapping is global across all channels.
When writing an axis-specific frame of axis AXn or AXm for a channel-specific frame, the
frame data is accepted for all channels in which AXn or AXm are parameterized as channel
axes.
Basic functions
366 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
● When writing an axis-specific frame using geometry or special axis name, the mapping
relationships are evaluated via the machine axes currently assigned to the geometry or
special axis.
● Mapping is frame-specific.
When writing an axis-specific frame, the frame data is only mapped within the same channel-
specific or global data management frame.
Note
Data consistency
The user / machine manufacturer is solely responsible for ensuring that after a frame is
written, consistent frame data is available in all channels, e.g. by using channel
synchronization.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 367
Axes, coordinate systems, frames
3.5 Frames
; $; ; $;
; $; ; $;
([SOLFLWPDSSLQJ
< $; < $;
,PSOLFLWPDSSLQJ
Basic functions
368 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Example
The following channels and channel axes are parameterized at a control:
● Channel 1
– Z: Geometry axis
– AX1: Machine axis of geometry axis Z
● Channel 2
– Z: Geometry axis
– AX4: Machine axis of geometry axis Z
The zero point of the Z axis should always be the same in both channels:
● Mapping relationship: $MA_MAPPED_FRAME[AX1] = "AX4"
Channel 1 Channel 2
... ...
N100 WAIT (10,1,2) N200 WAIT (10,1,2)
N110 $P_UIFR[1] = CTRANS(Z, 10)
N120 WAIT (20,1,2) N220 WAIT (20,1,2)
N130 G54 N230 G54
N140 IF ($P_IFRAME[0, Z, TR] <> 10) N230 IF ($P_IFRAME[0, Z, TR] <> 10)
N150 SETAL(61000) N250 SETAL(61000)
N160 ENDIF N260 ENDIF
... ...
Description:
N100 / N200 Channel synchronization for consistent writing and mapping of frame data
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 369
Axes, coordinate systems, frames
3.5 Frames
Overview
The "mapped frames" function supports the cross-channel consistent change of axis-specific
frames inside channel-specific or global data management frames. Using axis-specific
machine data, it is defined between which axes mapping is realized.
If frame mapping is, e.g. active for machine axes AX1 and AX4, and the axis-specific frame of
axis AX1 is changed in a channel-specific data management frame (e.g. basic frame
$P_CHBFR[x]) (translation, fine translation, scaling, mirroring), then this frame data for AX1
and AX4 is transferred to all channel-specific data management frames (e.g. basic frame
$P_CHBFR[x]) in all channels in which they are parameterized as channel axes.
Frame mapping is not realized when changing the axis-specific frame data for the rotation.
Requirements
The following requirements must be fulfilled for frame mapping:
● The data management frames used for mapping must be configured:
MD28083 $MC_MM_SYSTEM_DATAFRAME_MASK (system frames)
● Channel-specific data management frames must be explicitly enabled for mapping:
MD10616 $MN_MAPPED_FRAME_MASK (enable frame mapping)
Note
For global data management frames, mapping is always carried out. An enable is not
required.
Parameterization
The parameterization of the mapping relationships is realized in the axis-specific machine data:
MD32075 $MA_MAPPED_FRAME[<AXn>] = "AXm"
AXn, AXm: Machine axis name with n, m = 1, 2, ... max. number of machine axes
Basic functions
370 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Mapping rules
The following rules apply for frame mapping:
● The mapping is bidirectional.
An axis-specific frame can be written for axis AXn or AXm. The frame data is always
accepted and taken for the other axis.
● All parameterized mapping relationships are always evaluated.
When writing an axis-specific frame of axes AXn, all mapping relationships are evaluated
and the frame data accepted for all directly and indirectly involved axes.
● The mapping is global across all channels.
When writing an axis-specific frame of axis AXn or AXm for a channel-specific frame, the
frame data is accepted for all channels in which AXn or AXm are parameterized as channel
axes.
● When writing an axis-specific frame using geometry or special axis name, the mapping
relationships are evaluated via the machine axes currently assigned to the geometry or
special axis.
● Mapping is frame-specific.
When writing an axis-specific frame, the frame data is only mapped within the same channel-
specific or global data management frame.
Note
Data consistency
The user / machine manufacturer is solely responsible for ensuring that after a frame is
written, consistent frame data is available in all channels, e.g. by using channel
synchronization.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 371
Axes, coordinate systems, frames
3.5 Frames
; $; ; $;
; $; ; $;
([SOLFLWPDSSLQJ
< $; < $;
,PSOLFLWPDSSLQJ
Basic functions
372 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Example
The following channels and channel axes are parameterized at a control:
● Channel 1
– Z: Geometry axis
– AX1: Machine axis of geometry axis Z
● Channel 2
– Z: Geometry axis
– AX4: Machine axis of geometry axis Z
The zero point of the Z axis should always be the same in both channels:
● Mapping relationship: $MA_MAPPED_FRAME[AX1] = "AX4"
Channel 1 Channel 2
... ...
N100 WAIT (10,1,2) N200 WAIT (10,1,2)
N110 $P_UIFR[1] = CTRANS(Z, 10)
N120 WAIT (20,1,2) N220 WAIT (20,1,2)
N130 G54 N230 G54
N140 IF ($P_IFRAME[0, Z, TR] <> 10) N230 IF ($P_IFRAME[0, Z, TR] <> 10)
N150 SETAL(61000) N250 SETAL(61000)
N160 ENDIF N260 ENDIF
... ...
Description:
N100 / N200 Channel synchronization for consistent writing and mapping of frame data
N110 Writing of the settable data management frame $P_UIFR[1]:
Moving the zero point of the Z axis to 10 mm
Mapping the axis-specific frame data:
Channel1: Z ≙ AX1 ⇔ channel 2: Z ≙ AX4
N120 / N220 Channel synchronization for consistent activation of new frame data
N130 / N230 Activating the new frame data
N140 / N240 Checking the zero point of the Z axis for: 10 mm
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 373
Axes, coordinate systems, frames
3.5 Frames
Function description
The chaining between a frame and its inverse frame always produces a zero frame.
FRAME: INVFRAME(FRAME) ⇒ null frame
Frame inversion is an aid for coordinate transformations. Measuring frames are usually
calculated in the WCS. If you wish to transform this calculated frame into another coordinate
system, i.e. the calculated frame should be entered into any arbitrary frame within the frame
chain, then the calculations below should be used.
The new complete frame is a chain of the old complete frame and the calculated frame:
$P_ACTFRAME = $P_ACTFRAME: $AC_MEAS_FRAME
The new frame in the frame chain is therefore:
● Target frame is $P_SETFRAME:
$P_SETFRAME = $P_ACTFRAME: $AC_MEAS_FRAME: INVFRAME($P_ACTFRAME):
$P_SETFRAME
● The target frame is the nth channel basic frame $P_CHBFRAME[<n>]:
k = $MN_MM_NUM_GLOBAL_BASE_FRAMES
– For n = 0, TMP is resolved as:
TMP = $P_PARTFRAME : $P_SETFRAME : $P_EXTFRAME :
$P_NCBFRAME[<0...k>]
– For n ≠ 0, TMP is resolved as:
TMP = $P_PARTFRAME : $P_SETFRAME : $P_EXTFRAME :
$P_NCBFRAME[<0..k>] : $P_CHBFRAME[<0...n> - 1]
$P_CHBFRAME[<n>] = INVFRAME(TMP) : $P_ACTFRAME : $AC_MEAS_FRAME :
INVFRAME($P_ACTFRAME) : TMP : $P_CHBFRAME[<n>]
● The target frame is $P_IFRAME:
TMP = $P_PARTFRAME: $P_SETFRAME: $P_EXTFRAME: $P_BFRAME
$P_IFRAME = INVFRAME(TMP): $P_ACTFRAME: $AC_MEAS_FRAME:
INVFRAME($P_ACTFRAME) : TMP : $P_IFRAME
Example
A frame calculated, for example, using a measuring function, must be entered in the
actual SETFRAME such that the new complete frame is a chain of the old complete frame and
the measurement frame. The SETFRAME is calculated accordingly by means of frame
inversions.
Basic functions
374 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 375
Axes, coordinate systems, frames
3.5 Frames
Function description
The ADDFRAME() function calculates from the temporary frame the specified target frame
specified by the <STRING> parameter so that the new active $P_ACTFRAME complete frame
from the chaining of the old active complete frame with the temporary frame gives:
ERG = ADDFRAME(TMPFRAME,"$P_SETFRAME") ⇒ $P_SETFRAMEnew = $P_SETFRAMEold
ADD TMPFRAME and $P_ACTFRAMEnew = $P_ACTFRAMEold : TMPFRAME
If an active frame has been specified as a target frame, the new complete frame becomes
active at the preprocessing stage.
If the target frame is a data management frame, the frame becomes active only when it is
activated explicitly in the channel, e.g. part program or cycle.
The function returns a return value for which a user-specific response is possible, e.g. in a user
cycle.
Programming
Syntax
INT ADDFRAME(<FRAME>,<STRING>)
Meaning
<FRAME>: Frame variable with the values to be included additively in the calculation
Type FRAME
Basic functions
376 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
3.5.8 Functions
Machine data
The external work offset or the $P_EXTFRAME system frame is activated with the following
machine data:
MD28082 $MC_MM_SYSTEM_FRAME_MASK, bit 1 = TRUE
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 377
Axes, coordinate systems, frames
3.5 Frames
The magnitude for the external work offset can be specified manually via the HMI user
interface, and the PLC user program via OPI or programmed in the part program via the axial
system variable $AA_ETRANS[<axis>].
Activation
The external work offset is activated with the interface signal:
DB31, ... DBX3.0 (accept external work offset)
Behavior
Upon activation of the external work offset, the traversing movements of all axes, except
command and PLC axes, are stopped immediately and the advance is reorganized. The rough
offset of the current system frame and of the system frame in data management is set to the
value of the axial system variable $AA_ETRANS[<axis>]. Thereafter, the offset is traversed
first and then the interrupted movement is continued.
Behavior for incremental dimension
In case of active incremental dimension G91 and machine data:
MD42440 $MC_FRAME_OFFSET_INCR_PROG (work offset in frames) = 0
traversing the offset is done in the scope of the external work offset via system frame, despite
opposite configuring of the machine data, with the approach block, although it is specified by a
frame.
Note
The external work offset always acts absolutely.
3.5.8.3 Toolholder
Translations
With kinematics of type "P" and "M", the selection of a toolholder activates an additive frame
(table offset of the orientable toolholder) which takes into account the work offset as a result of
the rotation of the table. The work offset is entered in the system frame $P_PARTFR. In this case
the translatory component of this frame is overwritten. The other frame components are
retained.
The system frame $P_PARTFR must be enabled via the following machine data:
MD28082 $MC_MM_SYSTEM_FRAME_MASK, bit 2 = 1 (system frame for TCARR and
PAROT)
Note
Alternatively, the offset can also parameterized via machine data to record the table offset:
MD20184 $MC_TOCARR_BASE_FRAME_NUMBER = <number of the basic frame>
This option is only for compatibility reasons to older software versions. You are strongly
recommended not to use this procedure any longer.
Basic functions
378 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
2ULJLQDOSRVLWLRQRIWKHFRRUGLQDWHV\VWHP
&RRUGLQDWHV\VWHPSRVLWLRQDIWHU
7&$55
&RRUGLQDWHV\VWHPSRVLWLRQDIWHU
2ULJLQDO 3$527
SRVLWLRQRI
WDEOH
3RVLWLRQRIWKHWDEOH
DIWHUURWDWLRQ
With kinematics of type M (tool and table are each rotary around one axis), the activation of a
toolholder with TCARR simultaneously produces a corresponding change in the effective tool
length (if a tool is active) and the work offset.
Rotations
Depending on the machining task, it is necessary to take into account not only a work offset
(whether as frame or as tool length) when using a rotary toolholder or table, but also a rotation.
However, the activation of an orientable toolholder never leads directly to a rotation of the
coordinate system.
If only the tool can be rotated, a frame can be defined for it using TOFRAME or TOROT.
With rotary tables (kinematics types P and M), activation with TCARR similarly does not lead to
an immediate rotation of the coordinate system, i.e. even though the zero point of the
coordinate system is offset relative to the machine, while remaining fixed relative to the zero
point of the workpiece, the orientation remains unchanged in space.
If the coordinate system needs to be fixed relative to the workpiece, i.e. not only offset relative
to the original position but also rotated according to the rotation of the table, then PAROT can be
used to activate such a rotation in a similar manner to the situation with a rotary tool.
With PAROT, the translations, scalings and mirroring in the active frame are retained, but the
rotation component is rotated by the rotation component of an orientable toolholder
corresponding to the table. The entire programmable frame including its rotation component
remains unchanged.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 379
Axes, coordinate systems, frames
3.5 Frames
The rotation component that describes the rotation of the table is then either entered in the
system frame $PARTFR or in the basic frame parameterized with MD20184
$MC_TOCARR_BASE_FRAME_NUMBER:
$MC_MM_SYSTEM_FRAME_MASK, bit 2 = <value>
Value Meaning
1 Rotation component → $PARTFR
0 Rotation component → MD20184 $MC_TOCARR_BASE_FRAME_NUMBER
As with the note made in the description of the table offset, the second alternative here is not
recommended for use with new systems.
The rotation component of the part frame can be deleted with PAROTOF, irrespective of whether
this frame is in a basic or a system frame.
The translation component is deleted when a toolholder which does not produce an offset is
activated or a possibly active orientable toolholder is deselected with TCARR=0.
PAROT or TOROT take into account the overall orientation change in cases where the table or
the tool are oriented with two rotary axes. With mixed kinematics, only the corresponding
component caused by a rotary axis is considered. It is thus possible, for example, when using
TOROT, to rotate a workpiece such that an inclined plane lies parallel to the XY plane fixed in
space, whereby rotation of the tool must be taken into account in machining where any holes
to be drilled, for example, are not perpendicular to this plane.
Example
On a machine, the rotary axis of the table points in the positive Y direction. The table is rotated
by +45 degrees. PAROT defines a frame which similarly describes a rotation of 45 degrees
around the Y axis. The coordinate system is not rotated relative to the actual environment
(marked in the figure with "Position of the coordinate system after TCARR"), but is rotated by
-45 degrees relative to the defined coordinate system (position after PAROT). If this coordinate
system is defined with ROT Y-45, for example, and if the toolholder is then selected with active
TCOFR, an angle of +45 degrees will be determined for the rotary axis of the toolholder.
Language command PAROT is not rejected if no orientable toolholder is active. However, such
a call then produces no frame changes.
Incremental traversing
The end point for incremental traversing motion in the tool direction is programmed using MOVT
= <Value> or MOVT=IC(<Value>).
Basic functions
380 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
The positive traversing direction is defined from the tool tip to the tool adapter. Corresponding
to paraxial machining, e.g. with G91 Z ....
Absolute traversing
The end point for absolute incremental traversing motion in the tool direction is programmed
using MOVT=AC(<Value>).
In this case a plane is defined, which runs through the current zero point, and whose surface
normal vector is parallel to the tool orientation. MOVT then gives the position relative to this
plane (see figure). The reference plane is only used to calculate the end position. Active frames
are not affected by this internal calculation.
=
02
9 7
$&
ಹ
Programming with MOVT is independent of the existence of a toolholder that can be oriented.
The direction of the motion is dependent on the active plane.
It runs in the directions of the vertical axes, i.e. with G17 in Z direction, with G18 in Y direction
and with G19 in X direction. This applies when no orientable toolholder is active and for the case
of an orientable toolholder without rotary tool or with a rotary tool in its basic setting.
MOVT acts similarly for active orientation transformation (3-, 4-, 5-axis transformation).
If in a block with MOVT the tool orientation is changed simultaneously (e.g. active 5-axis
transformation by means of simultaneous interpolation of the rotary axes), the orientation at the
start of the block is decisive for the direction of motion of MOVT.
With an active 5-axis transformation, the path of the tool center point (TCP) is not affected by
the change of orientation, i.e. the path remains a straight line and its direction is determined by
the tool orientation at the start of the block.
If MOVT is programmed, linear or spline interpolation must be active (G0,G1, ASPLINE,
BSPLINE, CSPLINE). Otherwise, an alarm is produced.
If a spline interpolation is active, the resultant path is generally not a straight line, since the end
point calculated by MOVT is treated as if it had been programmed explicitly with X, Y, Z.
It is not permissible to program geometry axes in a block with MOVT.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 381
Axes, coordinate systems, frames
3.5 Frames
This applies both to programing in one block - and when configuring a frame in several
consecutive blocks:
● One block: N10 ROT X... Y... Z...
● Several consecutive blocks:
N10 ROT Y...
N20 AROT X...
N30 AROT Z...
Solid angle
Often, solid angles are specified in workpiece drawings to define inclined surfaces. Solid angles
are angles which the intersection lines of the inclined plane form with the main planes (X-Y, Y-
Z, Z-X planes) of the workpiece coordinate system (see diagram). The orientation of a plane in
space is defined unambiguously by specifying two solid angles. The third solid angle is derived
from the first two.
Rotations can be directly defined as solid angle using ROTS, AROTS and CROTS commands.
It is permissible to specify a single solid angle. The rotation which is performed with ROTS or
AROTS in this case is identical to that for ROT and AROT.
The two axes programmed in the command define a plane. The non-programmed axis defines
the associated third axis of a coordinate system. This also means that for the two programmed
axes, it is uniquely defined which is the first axis and which is the second axis. The definition
corresponds to the definition of a plane for G17/G18/G19.
The angle programmed with the axis letter of an axis of the plane then specifies the axis, around
which the other axis of the plane must be rotated in order to move this into the line of
intersection, which the rotated plane forms with the plane surrounded by the other and the third
axis. This definition ensures that, in the case that one of the two programmed angles is towards
zero, the defined plane enters the plane, which is created if only one axis is programmed (e.g.
with ROT or AROT).
Basic functions
382 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
= =
<ಿ
=ಿ
3 3
< <
6
3 3 ˞ 3
˟ =ಿ ˟
;ಿ
6
˞
3
<ಿ
; ;
;ಿ
= =
<ಿ <ಿ
3 3
< <
=ಿ
˞
3
6
;ಿ
6
=ಿ
˟ ˟
˞
3 3 3
; ;
;ಿ
I, ..., Quadrants 1 to 4
IV
① Inclined plane as specification for the new G17 plane
α, β Solid angle of the inclined plane
Figure 3-28 Rotation around the solid angle
In the diagram, the solid angles are shown for an example of a plane in quadrants I to IV. The
inclined plane defines the alignment of the G17 plane after rotating the workpiece coordinate
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 383
Axes, coordinate systems, frames
3.5 Frames
system WCS. The sign of the solid angle specifies the direction around which the coordinate
system is rotated around the relevant axis.
1. Rotation around y:
Rotation of the workpiece coordinate system WCS around the y axis around the signed
angle α ⇒
The x' axis is aligned parallel (colinear) to the intersection lines of the xz plane with the
inclined plane
2. Rotation around x':
Rotation of the new workpiece coordinate system WCS around the x' axis around the signed
angle β ⇒
– The y' axis is aligned in parallel (colinear) to the intersection lines of the zy plane with the
inclined plane
– The z' axis is perpendicular to the inclined plane
– G17' lies in parallel to the inclined plane
The programming to align the G17 plane of the workpiece coordinate system WCS to the
inclined plane is, for each quadrant:
● Quadrant I: ROTS X<+α> Y<-β>
● Quadrant II: ROTS X<-α> Y<-β>
● Quadrant III: ROTS X<-α> Y<+β>
● Quadrant IV: ROTS X<+α> Y<+β>
Orientation
The specification of the solid angle does not define the orientation of the two-dimensional
coordinate system within the plane (i.e. the angle of rotation around the surface normal vector).
The position of the coordinate system is thus determined so that the rotated first axis lies in the
plane which is formed by the first and third axes of the non-rotated coordinate system.
This means that
● When programming X and Y, the new X axis lies in the original Z-X plane.
● When programming Z and X, the new Z axis lies in the original Y-Z plane.
● When programming Y and Z, the new Y axis lies in the original X-Y plane.
If the required coordinate system does not correspond to this basic setting, then an additional
rotation must be performed with AROT....
Basic functions
384 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Note
In new systems, it is recommended that only the intended system frame is used for frames
produced by the commands of G group 53.
Example
TRANS is programmed after TOROT. TRANS without specified parameters deletes the
programmable frame. In the variant without a system frame, this also deletes the frame
component of the programmable frame produced by TOROT, but if the TOROT component is in
the system frame, it is retained.
TOROT or TOFRAME, etc. are disabled with language command TOROTOF. TOROTOF deletes the
entire system frame $P_TOOLFR. If the programmable frame (old variant) and not the system
frame is described by commands TOFRAME, etc. TOROT only deletes the rotation component
and leaves the remaining frame components unchanged.
If a rotating frame is already active before language command TOFRAME or TOROT is activated,
a request is often made that the newly defined frame should deviate as little as possible from
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 385
Axes, coordinate systems, frames
3.5 Frames
the old frame. This is the case, for example, if a frame definition needs to be modified slightly
because the tool orientation cannot be set freely on account of Hirth-toothed rotary axes. The
language commands uniquely define the Z direction of the new frame.
TCARR (request toolholder) and PAROT (align workpiece coordinate system on the workpiece)
TCARR uses the basic frame identified by following machine data:
MD20184 $MC_TOCARR_BASE_FRAME_NUMBER.
A system frame can be created for TCARR and PAROT alone, in order to avoid conflicts with
systems, which already use all the basic frames.
PAROT, TOROT and TOFRAME have previously changed the rotation component of the
programmable frames. In this case, it is not possible to shut down PAROT or TOROT separately.
On RESET, the programmable frame is deleted, which means that after changing the operating
mode to JOG, the rotation component of PAROT and TOROT is no longer available. The user
must also have unrestricted access to the programmable frame. Frames produced by PAROT
and TOROT must be able to be archived and reloaded via data backup.
The system frame for TCARR and PAROT is configured with:
MD28082 $MC_MM_SYSTEM_FRAME_MASK, bit 2 = 1
The following machine data is then no longer evaluated:
MD20184 $MC_TOCARR_BASE_FRAME_NUMBER
If the system frame for TCARR is configured, TCARR and PAROT describe that corresponding
system frame; otherwise the basic frame identified by machine data MD20184 is described.
With kinematics systems of the types P and M, TCARR will enter the table offset of the orientable
toolholder (work offset resulting from the rotation of the table) as a translation into the system
frame. PAROT converts the system frame so that a workpiece-related WCS results.
The system frames are stored retentively and therefore retained after a reset. The system
frames also remain active in the case of a mode change.
For the display, the commands PAROT and TOROT, TOFRAME are each assigned to a separate
G group.
Basic functions
386 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
PAROTOF
PAROTOF is the switch off command for PAROT. This command deletes the rotations in the
system frame for PAROT. In so doing, the rotations in the current $P_PARTFRAME and in the
data management frame $P_PARTFR are deleted. The position of the coordinate system is
then recreated according to TCARR. PAROTOF is in the same G group as PAROT and appears
therefore in the G command display.
TOROT (align Z axis of the WCS by rotating the frame parallel to the tool orientation) and TOFRAME
(ditto.)
The system frame for TOROT and TOFRAME is activated via the following machine data:
MD28082 $MC_MM_SYSTEM_FRAME_MASK, bit 3 = 1
This system frame is located before the programmable frame in the frame chain.
The SZS coordinate system is located before the programmable frame.
TOROTOF
TOROTOF is the switch off command for TOROT and TOFRAME. This command deletes the
corresponding system frame. The current $P_TOOLFRAME and the data management frame
$P_TOOLFR are also deleted. TOROTOF is in the same G group as TOROT and TOFRAME and
appears therefore in the G command display.
Example
Use of an orientable toolholder with resolved kinematics.
N10 $TC_DP1[1,1]=120
N20 $TC_DP3[1,1]= 13 ; Tool length 13 mm
; Definition of toolholder 1:
N30 $TC_CARR1[1] = 0 ; X component of the 1st offset vector
N40 $TC_CARR2[1] = 0 ; Y component of the 1st offset vector
N50 $TC_CARR3[1] = 0 ; Z component of the 1st offset vector
N60 $TC_CARR4[1] = 0 ; X component of the 2nd offset vector
N70 $TC_CARR5[1] = 0 ; Y component of the 2nd offset vector
N80 $TC_CARR6[1] = -15 ; Z component of the 2nd offset vector
N90 $TC_CARR7[1] = 1 ; X component of the 1st axis
N100 $TC_CARR8[1] = 0 ; Y component of the 1st axis
N110 $TC_CARR9[1] = 0 ; Z component of the 1st axis
N120 $TC_CARR10[1] = 0 ; X component of the 2nd axis
N130 $TC_CARR11[1] = 1 ; Y component of the 2nd axis
N140 $TC_CARR12[1] = 0 ; Z component of the 2nd axis
N150 $TC_CARR13[1] = 30 ; Angle of rotation of 1st axis
N160 $TC_CARR14[1] = -30 ; Angle of rotation of 2nd axis
N170 $TC_CARR15[1] = 0 ; X component of the 3rd offset vector
N180 $TC_CARR16[1] = 0 ; Y component of the 3rd offset vector
N190 $TC_CARR17[1] = 0 ; Z component of the 3rd offset vector
N200 $TC_CARR18[1] = 0 ; X component of the 4th offset vector
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 387
Axes, coordinate systems, frames
3.5 Frames
Basic functions
388 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Programmable frame
With the end of the subprogram the programmable frame active before the subprogram call is
reactivated.
System frames
If the system frames are changed by the subprogram, the change remains effective even after
the end of the subprogram.
Note
● It is strongly recommended that the following machine data is not changed between the
backup and restoration of the saved system frames. Otherwise, it is possible that the saved
system frames cannot be loaded.
MD28082 $MC_MM_SYSTEM_FRAME_MASK (configuration of channel-specific system
frames that are included in the channel calculation)
● The data backup is always performed in accordance with geometry axis assignments
currently valid in the channel rather than in accordance with the axis constellations originally
set in the machine data.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 389
Axes, coordinate systems, frames
3.5 Frames
3.5.12.1 POWER ON
Basic functions
390 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
System frames
The system frames are retained and remain active.
JOG mode
In JOG mode, the frame components of the current frame are only taken into account for the
geometry axes if a rotation is active. No other axis-specific frames are taken into account.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 391
Axes, coordinate systems, frames
3.5 Frames
Reset behavior of the system frames for TCARR, PAROT, TOROT and TOFRAME
The reset behavior of the system frames for TCARR, PAROT, TOROT and TOFRAME after channel
reset / part program end depends on the reset setting of the G commands.
Basic functions
392 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 393
Axes, coordinate systems, frames
3.5 Frames
Basic functions
394 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.5 Frames
In case of cascaded block searches, the frames are set to the status of the previous block
search.
SERUPRO
The "SERUPRO" function is not supported.
3.5.12.6 REPOS
There is no special treatment for frames. If a frame is modified in an ASUB, it is retained in the
program. On repositioning with REPOS, a modified frame is included, provided the modification
was activated in the ASUB.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 395
Axes, coordinate systems, frames
3.6 Workpiece-related actual-value system
3.6.1 Overview
Definition
The term "workpiece-related actual-value system" designates a series of functions that permit
the user:
● To use a workpiece coordinate system defined in machine data after powerup.
Features:
– No additional operations are necessary.
– Effective in JOG and AUTOMATIC modes
● To retain the valid settings for the following after end of program for the next part program:
– Active plane
– Settable frame (G54-G57)
– Kinematic transformation
– Active tool offset
● To change between work coordinate system and machine coordinate system via the user
interface.
● To change the work coordinate system by operator action (e.g., changing the settable frame
or the tool offset).
Switchover to WCS
The change to the WCS via the user interface causes the axis positions relative to the origin of
the WCS to be displayed.
Switchover to MCS
The change to the MCS via the user interface causes the axis positions relative to the origin of
the MCS to be displayed.
Basic functions
396 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.6 Workpiece-related actual-value system
)UDPHFKDLQ
:&6
)UDPHIRUF\FOHVSURJUDPPDEOH
IUDPHWUDQVIRUPDWLRQV
6=6
6\VWHPIUDPHIRU72527
72)5$0(ZRUNSLHFHV
**VHWWDEOHIUDPH
FKDQQHOVSHFRU1&8JOREDO
%=6
&KDLQHGILHOGRIEDVLFIUDPHV
FKDQQHOVSHFDQGRU1&8JOREDO
&KDLQHGV\VWHPIUDPHVIRU3$527VHWDFWXDO
YDOXHVFUDWFKLQJH[WZRUNRIIVHW
.LQHPDWLFVWUDQVIRUPDWLRQ
0&6
5HIHUHQFHSRLQWRIIVHW
0&6 PDFKLQHFRRUGLQDWHV\VWHP
%&6 EDVLFFRRUGLQDWHV\VWHP
:&6 ZRUNSLHFHFRRUGLQDWHV\VWHP
%=6 EDVLF]HURV\VWHP
6=6 VHWWDEOH]HURV\VWHP
For further information, see "Auxiliary function outputs to PLC (Page 611)" and Function
Manual Tools under Tool offset.
Further information
● NC Programming Programming Manual
● Function Manual Transformations, Kinematics transformation
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 397
Axes, coordinate systems, frames
3.6 Workpiece-related actual-value system
Overstore
Overstoring in RESET state of:
● Frames (zero offsets)
● Active plane
● Activated transformation
● Tool offset
immediately affects the actual-value display of all axes in the channel.
MD9440
If the HMI machine data
MD9440 ACTIVATE_SEL_USER_DATA
for the operator panel front is set, the entered values become active immediately in RESET
state.
When values are entered in the part-program execution stop state, they become effective when
program execution continues.
Basic functions
398 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.6 Workpiece-related actual-value system
Actual-value reading
If the actual value of $AA_IW is read in the WCS after activation of a frame (zero offset) or a tool
offset, the activated changes are already contained in the result read even if the axes have not
yet been traversed with the activated changes.
The actual values in the settable zero system (SZS) can be read from the part program for each
axis using the variable $AA_IEN[axis].
The actual values in the basic zero system (BZS) can be read from the part program for each
axis using the variable $AA_IBN[axis].
Actual-value display
The programmed contour is always displayed in the WCS.
The following offsets are added to the MCS:
● Kinematic transformation
● DRF offset/zero offset external
● Active frame
● Active tool offset of the current tool
Switchover by PLC
The actual values can be displayed in the WCS, SZS, BZS or MCS via the PLC. The PLC can
define, which coordinate system corresponds to the workpiece coordinate system on a
machine.
On MMC power-up the MCS is preset.
With the signal DB19 DBB0.7 "MCS/WCS switchover", it is also possible to switch from the PLC
to the WCS.
Transfer to PLC
Depending on machine data
MD20110 / MD20112, bit 1
, the auxiliary functions (D, T, M) are output to the PLC (or not) on selection of the tool length
compensation.
Note
If the WCS is selected from the PLC, an operator action can still be used to switch between the
WCS and MCS for the relevant mode.
However, when the mode and or area is changed, the WCS selected by the PLC is evaluated
and activated (see Section "Mode group, channel, program operation, reset response
(Page 29)").
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 399
Axes, coordinate systems, frames
3.8 Examples
3.8 Examples
3.8.1 Axes
Basic functions
400 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.8 Examples
:=0
<
6&
%
MD20050 AXCONF_GEOAX_ASSIGN_TAB[0] =1
MD20050 AXCONF_GEOAX_ASSIGN_TAB[1] =2
MD20050 AXCONF_GEOAX_ASSIGN_TAB[2] =3
MD20060 AXCONF_GEOAX_NAME_TAB[0] =X
MD20060 AXCONF_GEOAX_NAME_TAB[1] =Y
MD20060 AXCONF_GEOAX_NAME_TAB[2] =Z
MD20070 AXCONF_MACHAX_USED[0] =1
MD20070 AXCONF_MACHAX_USED[1] =2
MD20070 AXCONF_MACHAX_USED[2] =3
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 401
Axes, coordinate systems, frames
3.8 Examples
MD20080 AXCONF_CHANAX_NAME_TAB[0] =X
MD20080 AXCONF_CHANAX_NAME_TAB[1] =Y
MD20080 AXCONF_CHANAX_NAME_TAB[2] =Z
MD20080 AXCONF_CHANAX_NAME_TAB[3] =B
MD20080 AXCONF_CHANAX_NAME_TAB[4] = WZM
MD20080 AXCONF_CHANAX_NAME_TAB[5] = S1
MD30300 IS_ROT_AX[3] =1
MD30300 IS_ROT_AX[4] =1
MD30300 IS_ROT_AX[5] =1
MD30310 ROT_IS_MODULO[3] =1
MD30310 ROT_IS_MODULO[4] =1
MD30310 ROT_IS_MODULO[5] =1
MD30320 DISPLAY_IS_MODULO[3] =1
MD30320 DISPLAY_IS_MODULO[4] =1
MD20090 SPIND_DEF_MASTER_SPIND =1
MD35000 SPIND_ASSIGN_TO_MACHAX[AX1] =0
MD35000 SPIND_ASSIGN_TO_MACHAX[AX2] =0
MD35000 SPIND_ASSIGN_TO_MACHAX[AX3] =0
MD35000 SPIND_ASSIGN_TO_MACHAX[AX4] =0
MD35000 SPIND_ASSIGN_TO_MACHAX[AX5] =0
MD35000 SPIND_ASSIGN_TO_MACHAX[AX6] =1
Basic functions
402 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.8 Examples
Machine data
Machine data for channel 1 Value Machine data for channel 1 Value
$MC_AXCONF_CHANAX_NAME_TAB[0] =X $MC_AXCONF_CHANAX_NAME_TAB[0] =X
$MC_AXCONF_CHANAX_NAME_TAB[1] =Y $MC_AXCONF_CHANAX_NAME_TAB[1] =Y
$MC_AXCONF_CHANAX_NAME_TAB[2] =Z $MC_AXCONF_CHANAX_NAME_TAB[2] =Z
$MC_AXCONF_MACHAX_USED[0] =1 $MC_AXCONF_MACHAX_USED[0] =4
$MC_AXCONF_MACHAX_USED[1] =2 $MC_AXCONF_MACHAX_USED[1] =5
$MC_AXCONF_MACHAX_USED[2] =3 $MC_AXCONF_MACHAX_USED[2] =6
$MC_AXCONF_GEOAX_NAME_TAB[0] =X $MC_AXCONF_GEOAX_NAME_TAB[0] =X
$MC_AXCONF_GEOAX_NAME_TAB[1] =Y $MC_AXCONF_GEOAX_NAME_TAB[1] =Y
$MC_AXCONF_GEOAX_NAME_TAB[2] =Z $MC_AXCONF_GEOAX_NAME_TAB[2] =Z
$MC_AXCONF_GEOAX_ASSIGN_TAB[0] =1 $MC_AXCONF_GEOAX_ASSIGN_TAB[0] =4
$MC_AXCONF_GEOAX_ASSIGN_TAB[1] =2 $MC_AXCONF_GEOAX_ASSIGN_TAB[1] =5
$MC_AXCONF_GEOAX_ASSIGN_TAB[2] =3 $MC_AXCONF_GEOAX_ASSIGN_TAB[2] =6
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 403
Axes, coordinate systems, frames
3.8 Examples
3.8.3 Frames
Example 1
The channel axis is to be switched to a geometry axis by means of a geometry axis interchange.
The intention of the interchange is to give the programmable frame a translation component of
10 in the X axis.
The current settable frame is to be retained:
FRAME_GEOAX_CHANGE_MODE = 1
Multiple channel axes can become geometry axes at the same time on a transformation
change.
Example 2
Channel axes 4, 5 and 6 become the geometry axes of a 5axis orientation transformation. The
geometry axes are thus all substituted before the transformation.
The current frames are changed when the transformation is activated.
The axis-specific frame components of the channel axes that become geometry axes are used
in the calculation of the new WCS. Rotations programmed before the transformation are
retained. The old WCS is restored when the transformation is deactivated.
The most common application is probably that the geometry axes do not change before and
after the transformation and that the frames are to stay as they were before the transformation.
Machine data:
$MN_FRAME_GEOAX_CHANGE_MODE = 1
Basic functions
404 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.8 Examples
$MC_AXCONF_GEOAX_ASSIGN_TAB [0] = 1
$MC_AXCONF_GEOAX_ASSIGN_TAB [1] = 2
$MC_AXCONF_GEOAX_ASSIGN_TAB [2] = 3
$MC_TRAFO_GEOAX_ASSIGN_TAB_1 [0] = 4
$MC_TRAFO_GEOAX_ASSIGN_TAB_1 [1] = 5
$MC_TRAFO_GEOAX_ASSIGN_TAB_1 [2] = 6
$MC_TRAFO_AXES_IN_1 [0] = 4
$MC_TRAFO_AXES_IN_1 [1] = 5
$MC_TRAFO_AXES_IN_1 [2] = 6
$MC_TRAFO_AXES_IN_1 [3] = 1
$MC_TRAFO_AXES_IN_1 [4] = 2
Program:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 405
Axes, coordinate systems, frames
3.9 Data lists
Basic functions
406 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.9 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 407
Axes, coordinate systems, frames
3.9 Data lists
Identifier Description
$AA_ETRANS[axis] External work offset
$AA_IBN[axis] Actual value in basic zero coordinate system (BZS)
$AA_IEN[axis] Actual value in settable zero point coordinate system (SZS)
$AA_OFF[axis] Overlaid motion for programmed axis
$AC_DRF[axis] Handwheel override of an axis
$AC_JOG_COORD Coordinate system for manual traversing
$P_ACSFRAME Active frame between BCS and SZS
$P_ACTBFRAME Active complete basic frame
$P_ACTFRAME Active complete frame
$P_BFRAME 1st active basic frame. Corresponds to $P_CHBFRAME[0]
$P_CHBFR[<n>] Data management frame: Basic frame can be activated via G500, G54...G599
$P_CHBFRAME[<n>] Active basic frame
$P_CHBFRMASK Basic frame mask in the channel
$P_CHSFRMASK System frame mask
$P_CYCFR Data management frame: System frame for cycles
Basic functions
408 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Axes, coordinate systems, frames
3.9 Data lists
Identifier Description
$P_CYCFRAME Active system frame for cycles
$P_EXTFR Data management frame: System frame for work offset external
$P_EXTFRAME Active system frame for external work offset
$P_IFRAME Active settable frame
$P_ISO1FR Data management frame: System frame for ISO G51.1 mirroring
$P_ISO2FR Data management frame: System frame for ISO G68 2DROT
$P_ISO3FR Data management frame: System frame for ISO G68 3DROT
$P_ISO4FR Data management frame: System frame for ISO G51 Scale
$P_ISO1FRAME Active system frame for ISO G51.1 Mirroring
$P_ISO2FRAME Active system frame for ISO G68 2DROT
$P_ISO3FRAME Active system frame for ISO G68 3DROT
$P_ISO4FRAME Active system frame for ISO G51 Scale
$P_NCBFR[n] Data management frame: NCU-global basic frame in the data management,
can be activated via G500, G54...G599
$P_NCBFRAME[n] Active NCU-global basic frame
$P_NCBFRMASK Global basic frame mask
$P_PARTFR Data management frame: System frame for TCARR and PAROT
$P_PARTFRAME Active system frame for TCARR and PAROT with orientable toolholder
$P_PFRAME Active programmable frame
$P_SETFR Data management frame: System frame for actual value setting
$P_SETFRAME Active system frame for actual value setting
$P_TOOLFR Data management frame: System frame for TOROT and TOFRAME
$P_TOOLFRAME Active system frame for TOROT and TOFRAME
$P_TRAFRAME Data management frame: System frame for transformations
$P_TRAFRAME Active system frame for transformations
$P_UBFR 1st basic frame in the channel in the data management that is activated af‐
ter G500, G54...G599. Corresponds to $P_CHBFR[0].
$P_UIFR[n] Data management frame: Settable frame, can be activated via G500, G54
to G599
$P_UIFRNUM Number of active settable frame
$P_WPFR Data management frame: System frame for the workpiece
$P_WPFRAME Active system frame for the workpiece
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 409
Axes, coordinate systems, frames
3.9 Data lists
Basic functions
410 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain 4
4.1 Function description
4.1.1 Characteristics
This section describes how the kinematic structure of a machine can be mapped using a
kinematic chain and parameterized in the control using system variables for NC functions such
as "collision avoidance" or "kinematic transformation".
The system variables are retentively saved in the NC and can be archived and/or read as "NC
data" via SINUMERIK Operate using the commissioning archive.
For functions such as "collision avoidance", which also require a description of the machine
geometry, see Function Manual Monitoring and Compensating, Section Geometric machine
modeling.
Note
Graphical editor
As an alternative to writing the system variables in a part program, the machine can be modeled
from the SINUMERIK Operate user interface:
Operating area: "Commissioning" > "NC" > "Machine model"
Changes to the machine model
The direct changes to the machine model at the system variables only become visible at the
user interface after explicitly requesting that the machine model is recalculated by calling the
PROTA() or PROTS() function.
Changes to the machine model made at the user interface are immediately accepted in the
system variables of the NC. The changes only become active after explicitly requesting that the
machine model is recalculated by calling the PROTA() or PROTS() function.
Kinematic structure
The kinematic structure of a machine comprises the following:
● Number and type of the machine axes: Linear or rotary axes
● Arrangement of the machine axes: Position and orientation
● Dependencies of the machine axes to one another: Which machine axis traverses with
which other machine axis.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 411
Kinematic chain
4.1 Function description
Kinematic chain
A kinematic structure of a machine is described using a kinematic chain with the following
properties:
● A kinematic chain consists of an arbitrary number of interconnected elements.
● Parallel subchains can branch off from a kinematic chain.
● Only one active kinematic chain is available in the control.
● The active kinematic chain starts with the root element.
● Parameterized elements or subchains that are not connected to the root element or whose
connection points toward the root element, are not part of the currently active kinematic
chain.
● A kinematic chain is defined in the spatially fixed coordinates of the world coordinate system.
3DUDOOHOH7HLONHWWH
3DUDOOHOH7HLONHWWH
5RRW(OHPHQW
$QIDQJGHUZLUNVDPHQNLQHPDWLVFKHQ.HWWH
Element
An element of a kinematic chain basically describes the transformation with which the local
coordinate system of the previous element is mapped in the local coordinate system of the
current element:
Kn-1 ⇒ Tn ⇒ Kn
(OHPHQW (OHPHQW
H Q HQ
Basic functions
412 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.1 Function description
The following changing transformations, based on the current position values of the machine
axis assigned to the element (linear axis / rotary axis), are possible:
● Offset (type: AXIS_LIN (Page 423))
● Rotation (type: AXIS_ROT (Page 426))
A position or orientation change in an element, e.g. through a position change of the associated
machine axis, affects all the following elements of the chain or parallel subchains.
The maximum number of possible elements can be parameterized using machine data
(Page 417).
Parallel subchains
If a parallel subchain branches off from an element en, then for the kinematics, the branch is
always before the element. For this reason, a change in element en, e.g. a position change of
the associated machine axis, does not affect the subchain branch.
HO H O
HN H N
HP HP
Figure 4-3 Parallel subchains branching off from elements en and en+2
Switch
A switch is a special element that is not kinematically active (type: SWITCH (Page 433)) in a
kinematic chain, which can assume the CLOSED and OPEN states.
In the OPEN state, the connection from the previous to the following element is interrupted.
HN
1.B3$5$//(/
V[
1.B1(;7
H Q HQ
[\
In the CLOSED state, the previous element is connected to the following element.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 413
Kinematic chain
4.1 Function description
HN
1.B3$5$//(/
V[
1.B1(;7
H Q HQ
[\
Note
Local coordinate system
The local coordinate system of a switch is not rotated with respect to the world coordinate
system.
H H H
<
.
;
.:RUOGFRRUGLQDWHV\VWHP
7 ./RFDOHOHPHQWFRRUGLQDWHV\VWHPV
< <
. 7 .
7UDQVIRUPDWLRQV
; ; 7&RQVWDQWRIIVHWLQWKH;<GLUHFWLRQ
7
7&KDQJHDEOHRIIVHWLQWKH;GLUHFWLRQWKURXJKOLQHDUD[LV
< 7&KDQJHDEOHRIIVHWLQWKH<GLUHFWLRQWKURXJKOLQHDUD[LV
. ;
Elements with rotary axes change the orientation of the following elements. This is the reason
that the orientation and offset vectors of the following elements, for a defined initial position of
the previous orientation changing elements, must be referred to the world coordinate system.
Basic functions
414 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
H H H H
<
.
;
.:RUOGFRRUGLQDWHV\VWHP
.ORFDOHOHPHQWFRRUGLQDWHV\VWHPV
7
<
< . 7UDQVIRUPDWLRQV
. 7 7FRQVWDQWRIIVHWLQWKH;<GLUHFWLRQ
; 7FKDQJLQJRIIVHWLQWKH;GLUHFWLRQZLWKDOLQHDUD[LV
;
7 7FKDQJLQJURWDWLRQDURXQGWKH=ZLWKDURWDU\D[LV
< 7 7FKDQJLQJRIIVHWLQWKH<GLUHFWLRQZLWKDOLQHDUD[LV
,QLWLDOSRVLWLRQ7URWDU\D[LVGHJUHH
. ;
The origin and orientation of the world coordinate system can be freely selected in chain
elements that are defined before the root element. For the active coordinate system after the
root element, the following conditions must be met:
● Origin of the world coordinate system at the machine zero point
● Orientation of the world coordinate system so that the coordinate axes are arranged in the
positive traversing direction of the machine linear main axes
Direction vectors
Within a kinematic chain, the direction vectors, which are used to specify the alignment of the
machine axes, are always specified in absolute terms, i.e. referred to the world coordinate
system.
See also
Machine data (Page 417)
4.2 Commissioning
4.2.1 General
4.2.1.1 Overview
The commissioning of the "Kinematic chain" function is performed using:
● Machine data
– Specification of the quantity structure
– Specification of the first element in the kinematic chain
● System variables
– Specification of the kinematic properties of an element
– Connection of the element to the kinematic chain
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 415
Kinematic chain
4.2 Commissioning
General
The system variables to describe the elements of kinematic chains have the following
properties:
● The prefix for all system variables of the kinematic chain is $NK_, (N for NC, K for kinematic).
● The system variables can be read and written via NC programs.
● The system variables can be stored in archives and loaded to the NC again.
Data type
STRING
All system variables of the STRING data type have the following properties:
● Maximum string length: 31 characters
● No distinction is made between upper and lower case
Example: "Axis1" is identical to "AXIS1"
● Spaces and special characters are permitted
Example: "Axis1" is not identical to "Axis 1"
● Names that start with two underscores "__" are reserved for system purposes and must not
be used for user-defined names.
Note
Leading space
Since spaces are valid and distinct characters, names that start with a space followed by two
underscores "__" can, in principle, be used for user-defined names. However, because they
can be easily mistaken for system names, this procedure is not recommended.
Index_1
The individual elements are addressed via index_1. Index 0 → 1. Element, index 1 → 2.
Element, ... n → (n+1) element, with n = ($MN_MM_MAXNUM_KIN_CHAIN_ELEM - 1)
All system variables of an element have the same index.
Basic functions
416 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
Index_2
For system variables that contain a vector, the coordinates of the vector are addressed via
index_2.
● 0 → X axis
● 1 → Y axis
● 2 → Z axis
3DUDPHWHUL]HGHOHPHQWVDQGVXEFKDLQVWKDWDUHQRW (OHPHQWVDQGVXEFKDLQVRIWKHDFWLYHNLQHPDWLF
SDUWRIWKHDFWLYHNLQHPDWLFFKDLQ FKDLQ
0'01B5227B.,1B(/(0B1$0(
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 417
Kinematic chain
4.2 Commissioning
4.2.3.1 Overview
For the following types, variables dependent on the type are evaluated:
Basic functions
418 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
Note
Establish a defined initial state
It is recommended that a defined initial state be generated before parameterizing the kinematic
chain. To do this, the system variables of the kinematic chain should be set to their default value
using function DELOBJ().
Change system variable values
If the value of one of the system variables listed above is changed, then the change becomes
immediately visible on the user interface, e.g. SINUMERIK Operate. The machine model of the
NC is only updated after explicitly requesting that the machine model is recalculated by calling
the PROTA() or PROTS() function.
See also
Deletion of components (DELOBJ) (Page 436)
4.2.3.2 $NK_NAME
Function
Enter the NC-wide unique element name in the system variable. The element is referenced via
this name, e.g. within kinematic chains. The name is also displayed in the graphical editor of
SINUMERIK Operate.
Syntax
$NK_NAME[<n>] = "<name>"
Meaning
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 419
Kinematic chain
4.2 Commissioning
Example
The 9th kinematic element is assigned the name "B axis":
4.2.3.3 $NK_NEXT
Function
If the element is part of a kinematic chain, the name of the following element should be entered
in the system variable.
Syntax
$NK_NEXT[<n>] = "<name>"
Meaning
Example
The 9th kinematic element does not have a following element:
Basic functions
420 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
4.2.3.4 $NK_PARALLEL
Function
The name of the element that branches off before the current element should be entered in the
system variable. The branching element is parallel to the current element. Changes to the
current element, e.g. position changes of the assigned machine axis, have no effect on the
parallel element.
Syntax
$NK_PARALLEL[<n>] = "<name>"
Meaning
Example
The "Offset to the rotary table" element is arranged parallel to the 9th kinematic element:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 421
Kinematic chain
4.2 Commissioning
4.2.3.5 $NK_TYPE
Function
The element type should be entered in the system variable:
Type Description
AXIS_LIN The element describes a linear machine axis (linear axis) with direction vector
(Page 423) $NK_OFF_DIR and work offset $NK_A_OFF.
AXIS_ROT The element describes a rotary machine axis (rotary axis) with direction vector
(Page 426) $NK_OFF_DIR and work offset $NK_A_OFF or a spindle.
Note
The position of a spindle is considered differently depending on the function used by
the kinematic chain:
● Collision avoidance: Indeterminate position
● Kinematic transformation: Depending on the setting in $NT_CNTRL, bit 1-3, the
position corresponding to $NK_A_OFF or the speed setpoint is taken into con‐
sideration
ROT_CONST The element describes a constant rotation around direction vector $NK_OFF_DIR
(Page 429) and angle $NK_A_OFF.
OFFSET The element describes a constant linear offset with the offset vector $NK_OFF_DIR.
(Page 431)
SWITCH The element defines a switch, which is switched using system variable $NK_SWITCH
(Page 433) (Page 435).
Syntax
$NK_TYPE[<n>] = "<Typ>"
Meaning
Basic functions
422 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
Example
The 9th kinematic element is a rotary axis:
$NK_OFF_DIR
Function
The direction vector along which the linear axis $NK_AXIS assigned to the element moves,
should be entered in the system variable. The output coordinate system therefore results from
the input coordinate system, offset by the current position value of the linear axis and the work
offset specified in $NK_A_OFF.
Supplementary conditions:
● The direction vector must be specified as an absolute value, i.e. in relation to the world
coordinate system.
● The direction vector must be specified so that it points in the positive traversing direction of
the machine axis.
● The absolute value of the direction vector must be greater than 1*10-6.
Syntax
$NK_OFF_DIR[<n>,<k>] = <value>
Meaning
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 423
Kinematic chain
4.2 Commissioning
Example
; The linear axis of the 9th element moves along the direction vector. The direction vector is the
unit vector (1; 0; 0), rotated around Z with γ=90° in the X/Y plane, and around X with α=10° in
the Y/Z plane referred to the world coordinate system. The following values result from this for
the individual components (x, y, z) of the direction vector:
● x = cos(γ) * cos(α) = cos(90) * cos(10) = 0.0
● y = sin(γ) * cos(α) = sin(90) * cos(10) ≈ 0.985
● z = sin(α) = sin(10) ≈ 0.174
))B ',5
1 . B2
˞ _Y_
<
ˠ ]
[
; \
$NK_AXIS
Function
The name of the machine axis (MD10000 $MN_AXCONF_MACHAX_NAME_TAB) that is to be
assigned to the element should be entered in the system variable.
The output coordinate system of the element results from the input coordinate system offset by
the current position setpoint of the machine axis in the MCS and the offset specified in
$NK_A_OFF. The position setpoint of the machine axis contains all the active work offsets and
corrections.
In accordance with the AXIS_LIN type entered in $NK_TYPE, the machine axis must be a linear
axis:
MD30300 $MA_IS_ROT_AX = 0
Syntax
$NK_AXIS[<n>] = <name>
Basic functions
424 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
Meaning
Example
The 9th kinematic element is assigned the machine axis with the name V1 as linear axis.
$NK_A_OFF
Function
An additional work offset can be entered in the system variable for the assigned machine axis
($NK_AXIS). This work offset is only effective within the kinematic chain.
Syntax
$NK_A_OFF[<n>] = <value>
Meaning
Example
The linear axis zero point of the 9th kinematic element is moved by 30.0 mm compared to the
modelled kinematics.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 425
Kinematic chain
4.2 Commissioning
The unit in which the numerical value is interpreted depends on the current input system (inch/
metric).
$NK_OFF_DIR
Function
The direction vector around which the rotary axis $NK_AXIS assigned to the element rotates,
should be entered in the system variable. The output coordinate system is therefore calculated
from the input coordinate system, rotated by the current position value of the rotary axis and the
offset specified in $NK_A_OFF around the direction vector $NK_OFF_DIR.
Supplementary conditions:
● The direction vector must be specified as an absolute value, i.e. in relation to the world
coordinate system.
● The direction vector must be specified so that, in accordance with the "right-hand rule", the
thumb points in the direction of the vector when the rotary axis turns in the positive direction.
● The absolute value of the direction vector must be greater than 1*10-6.
Note
Spindle
If the assigned machine axis is a spindle, its position is taken into account in different ways
specific to the function:
● Collision avoidance: Indeterminate position
● Kinematic transformation: depending on the setting in $NT_CNTRL, bit 1-3
– Bit x == 0 → indeterminate position
– Bit x == 1 → current position value + $NK_A_OFF,
Syntax
$NK_OFF_DIR[<n>,<k>] = <value>
Meaning
Basic functions
426 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
Example
The rotary axis of the 9th element rotates around the direction vector. The direction vector is the
unit vector (1; 0; 0), rotated around Z with γ=90° in the X/Y plane, and around X with α=10° in
the Y/Z plane referred to the world coordinate system. The following values result from this for
the individual components (x, y, z) of the direction vector:
● x = cos(γ) * cos(α) = cos(90) * cos(10) = 0.0
● y = sin(γ) * cos(α) = sin(90) * cos(10) ≈ 0.985
● z = sin(α) = sin(10) ≈ 0.174
))B ',5
1 . B2
˞ _Y_
<
ˠ ]
[
; \
$NK_AXIS
Function
The name of the machine axis (MD10000 $MN_AXCONF_MACHAX_NAME_TAB) that is to be
assigned to the element should be entered in the system variable.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 427
Kinematic chain
4.2 Commissioning
The output coordinate system of the element results from the input coordinate system rotated
through the current position setpoint of the machine axis in the MCS and the offset specified in
$NK_A_OFF. The position setpoint of the machine axis contains all the active work offsets and
corrections.
The machine axis type must correspond to the type entered in $NK_TYPE:
In accordance with the AXIS_ROT type entered in $NK_TYPE, the machine axis must be a
rotary axis:
MD30300 $MA_IS_ROT_AX = 1
Syntax
$NK_AXIS[<n>] = <name>
Meaning
Example
The 9th kinematic element is assigned the machine axis with the name B1 as rotary axis.
$NK_A_OFF
Function
An additional work offset can be entered in the system variable for the assigned machine axis
($NK_AXIS). This work offset is only effective within the kinematic chain.
Syntax
$NK_A_OFF[<n>] = <value>
Basic functions
428 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
Meaning
Example
The rotary axis zero point of the 9th kinematic elements is moved through 30.0° compared to
the modelled kinematics.
$NK_OFF_DIR
Function
The direction vector around which the constant rotation is performed should be entered in the
system variable. The output coordinate system is therefore calculated from the input coordinate
system, rotated through the angle specified in $NK_A_OFF around the direction vector
$NK_OFF_DIR.
Supplementary conditions:
● The direction vector must be specified as an absolute value, i.e. in relation to the world
coordinate system.
● The direction vector must be specified so that, in accordance with the "right-hand rule", the
thumb points in the direction of the vector when the rotary axis turns in the positive direction.
● The absolute value of the direction vector must be greater than 1*10-6.
Syntax
$NK_OFF_DIR[<n>,<k>] = <value>
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 429
Kinematic chain
4.2 Commissioning
Meaning
Example
The output coordinate system of the 9th Elements therefore arises from the input coordinate
system, rotated through the angle specified in $NK_A_OFF around the direction vector. The
direction vector is the unit vector (1; 0; 0), rotated around Z with γ=90° in the X/Y plane, and
around X with α=10° in the Y/Z plane referred to the world coordinate system. The following
values result from this for the individual components (x, y, z) of the direction vector:
● x = cos(γ) * cos(α) = cos(90) * cos(10) = 0.0
● y = sin(γ) * cos(α) = sin(90) * cos(10) ≈ 0.985
● z = sin(α) = sin(10) ≈ 0.174
))B ',5
˞ 1 . B2
<
)
$ B2 )
ˠ ] 1. B
[
; \
Basic functions
430 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
$NK_A_OFF
Function
The angle through which the output coordinate system is rotated compared with the input
coordinate system around the direction vector $NK_OFF_DIR should be entered in the system
variable.
Syntax
$NK_A_OFF[<n>] = <value>
Meaning
Example
The angle of rotation of the 9th kinematic element is 30.0°.
$NK_OFF_DIR
Function
The offset vector by which the output coordinate system is moved compared to the input
coordinate system should be entered in the system variable.
The offset vector must be specified as an absolute value, i.e. in relation to the world coordinate
system.
Syntax
$NK_OFF_DIR[<n>,<k>] = <value>
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 431
Kinematic chain
4.2 Commissioning
Meaning
Example
The output coordinate system of the 9th element is obtained from the input coordinate system,
offset through the offset vector (x, y, z) with the following coordinates referred to the world
coordinate system:
● x = 10.0
● y = 20.0
● z = 30.0
=
))B ',5
1 . B2
<
]
[
; \
Basic functions
432 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
$NK_SWITCH_INDEX
Function
The switch is emulated using system variables $NK_SWITCH_INDEX and
$NK_SWITCH_POS (see the following paragraph)
Index i must be entered in $NK_SWITCH_INDEX, with which the switch is closed and opened
via system variable $NK_SWITCH[<i>].
Syntax
$NK_SWITCH_INDEX[<n>] = <i>
Meaning
$NK_SWITCH_ Index i, via which the switch is addressed using system variable $NK_SWITCH[<i>]
INDEX: Data type: INT
Range of values: -1, 0, 1, 2, ... ($MN_MAXNUM_KIN_SWITCHES - 1)
-1: The state of the switch is always CLOSED
Default value: -1
<n>: System variable or element index
Data type: INT
Range of values: 0, 1, 2, ... ($MN_MM_MAXNUM_KIN_CHAIN_ELEM - 1)
<i>: Index value
Data type: INT
Example
The 9th element of the kinematic chain is a switch, which is activated by system variable
$NK_SWITCH[ 2 ].
$NK_SWITCH_POS
Function
A switch is emulated by system variables $NK_SWITCH_INDEX (see the previous paragraph)
and $NK_SWITCH_POS.
In $NK_SWITCH_POS, value p (close value) should be entered, where the switch is brought
into the CLOSED position by system variable $NK_SWITCH[<i>].
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 433
Kinematic chain
4.2 Commissioning
Note
Parallel element $NK_PARALLEL
The connection to a parallel element specified in $NK_PARALLEL is not influenced by the
switch. This means that the previous element is always connected to the element in the branch
parallel with the switch.
Syntax
$NK_SWITCH_POS[<n>] = <p>
Meaning
Example
The 9th element of the kinetic chain is a switch, which is closed if $NK_SWITCH[ 3 ] == 1
See also
$NK_SWITCH (Page 435)
$MN_MAXNUM_KIN_SWITCHES (Page 417)
Basic functions
434 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.2 Commissioning
4.2.3.11 $NK_SWITCH
Function
The switch variable comprises an array of switch positions i. The actual switch positions p
should be entered in this array.
Function
To parameterize (Page 433) a switchi in a kinematic chain, switchiwith index i must be
connected to the switch variable and its switch position p for the CLOSED state assigned to it.
$NK_SWITCH_INDEX[<n>] = <i>
$NK_SWITCH_POS[<n>] = <p>
Switchi can then be closed and opened via index i of the switch variable:
Close: $NK_SWITCH[<i>] = <p>
Open: $NK_SWITCH[<i>] ≠ <p>
As many switches as required can be connected with an index of the switch variable.
Syntax
$NK_SWITCH[<i>] = <p>
Meaning
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 435
Kinematic chain
4.3 Programming
Example
The 9th kinematic element is assigned the name "B axis":
4.3 Programming
Syntax
[<RetVal>=] DELOBJ(<CompType>[,,,<NoAlarm>)])
[<RetVal>=] DELOBJ(<CompType>,<Index1>[,,<NoAlarm>])
[<RetVal>=] DELOBJ(<CompType>[,<Index1>][,<Index2>][,<NoAlarm>])
Basic functions
436 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.3 Programming
Meaning
DELOBJ: Deletion of elements from kinematic chains, protection areas, protection area ele‐
ments, collision pairs and transformation data
<CompType>: Component type to be deleted
Data type: STRING
Value: "KIN_CHAIN_ELEM"
Meaning: System variables of all kinematic elements: $NK_...
Value: "KIN_CHAIN_SWITCH"
Meaning: System variable $NK_SWITCH[<i>]
Value: "KIN_CHAIN_ALL"
Meaning: All kinematic elements and switches.
Is the same as the successive call of DELOBJ with "KIN_CHAIN_ELEM" and
"KIN_CHAIN_SWITCH"
Value: "PROT_AREA"
Meaning: System variables of the protection areas:
● $NP_PROT_NAME
● $NP_CHAIN_NAME
● $NP_CHAIN_ELEM
● $NP_1ST_PROT
Value: "PROT_AREA_ELEM"
Meaning: System variables of the protection area elements of machine protection
areas and/or automatic tool protection areas:
● $NP_NAME
● $NP_NEXT
● $NP_NEXTP
● $NP_COLOR
● $NP_D_LEVEL
● $NP_USAGE
● $NP_TYPE
● $NP_FILENAME
● $NP_PARA
● $NP_OFF
● $NP_DIR
● $NP_ANG
Value: "PROT_AREA_COLL_PAIRS"
Meaning: System variables of the collision pairs:
● $NP_COLL_PAIR
● $NP_SAFETY_DIST
Value: "PROT_AREA_ALL"
Meaning: All protection areas, protection area elements and collision pairs (system
variable $NP_... )
Is the same as the successive call of DELOBJ with "PROT_AREA,"
"PROT_AREA_ELEM," and "PROT_AREA_COLL_PAIRS"
Value: "TRAFO_DATA"
Meaning: System variables of all transformations $NT_...
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 437
Kinematic chain
4.3 Programming
Basic functions
438 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.3 Programming
Syntax
<RetVal> = NAMETOINT(<SysVar>,<Name>[,<NoAlarm>])
Meaning
Example
Program code Comment
DEF INT INDEX
$NP_PROT_NAME[27]="Cover"
...
INDEX = NAMETOINT("$NP_PROT_NAME","Cover") ; INDEX == 27
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 439
Kinematic chain
4.4 Example
4.4 Example
4.4.1 Specifications
General Information
The principle approach when parameterizing a kinematic chain with three switches using a part
program is shown using as example a 5-axis machine with three different tool heads, which are
used alternately. All of the system variables, relevant for kinematic chain, are written to the part
program:
● Kinematic chain $NK_...
Kinematic chain
&$$;,6
2))6(7
$$;,6
&$;,6
&$;,62))6(7
722/5()
=$;,6
6+($'
6
;,
$
<
6+($'
;$;,6
6+($'
Basic functions
440 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.4 Example
'2&.B3B +($'
6:,7&+ 2))6(7
'2&.B3B +($'
6:,7&+ 2))6(7
The kinematic chain starts with an element of the type "Offset". When completely
parameterizing the collision avoidance, these are assigned to all static protection areas of the
machine
The offset element is followed by the kinematic elements of the linear machine axes X, Y and
Z - as well as the offset and kinematic elements of rotary axes C and A.
The offset element for the reference point of the tool heads is followed by three switches to
switch on and switch off the tool heads. As a result of $NK_INDEX = 3 all three switches refer
to the same switch variable $NK_SWITCH[ 3 ]. As a result of the different switch positions (1,
2, 3), only the subchain of the active tool head is active.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 441
Kinematic chain
4.4 Example
Program code
;===========================================================
; Definitions
;===========================================================
N10 DEF INT KIE_CNTR ; COUNTER FOR ELEMENTS OF THE KIN. CHAINS
N20 DEF INT RETVAL
;
;===========================================================
; Initialization of collision data
;===========================================================
; Reset all parameters to their initial values:
N30 RETVAL = DELOBJ("KIN_CHAIN_ELEM")
N40 KIE_CNTR = 0
;
;===========================================================
; Kinematic chain
;===========================================================
; KE1: OFFSET: Root
; ----------------------------------------------------------
N50 $NK_TYPE[KIE_CNTR] = "OFFSET"
N60 $NK_NAME[KIE_CNTR] = "ROOT"
N70 $NK_NEXT[KIE_CNTR] = "X-AXIS"
N80 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: LINEAR AXIS: X axis
; ----------------------------------------------------------
N90 $NK_TYPE[KIE_CNTR] = "AXIS_LIN"
N100 $NK_NAME[KIE_CNTR] = "X-AXIS"
N110 $NK_NEXT[KIE_CNTR] = "Y-AXIS"
N120 $NK_AXIS[KIE_CNTR] = "X1"
;
N130 $NK_OFF_DIR[KIE_CNTR,0] = 1.0 ; X
N140 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: LINEAR AXIS: Y axis
; ----------------------------------------------------------
N150 $NK_TYPE[KIE_CNTR] = "AXIS_LIN"
N160 $NK_NAME[KIE_CNTR] = "Y-AXIS"
N170 $NK_NEXT[KIE_CNTR] = "Z-AXIS"
N180 $NK_AXIS[KIE_CNTR] = "Y1"
;
N190 $NK_OFF_DIR[KIE_CNTR,1] = 1.0 ; Y
N200 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: LINEAR AXIS: Z axis
; ----------------------------------------------------------
N210 $NK_TYPE[KIE_CNTR] = "AXIS_LIN"
N220 $NK_NAME[KIE_CNTR] = "Z-AXIS"
N230 $NK_NEXT[KIE_CNTR] = "C-AXIS-OFFSET"
N240 $NK_AXIS[KIE_CNTR] = "Z1"
;
Basic functions
442 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.4 Example
Program code
N250 $NK_OFF_DIR[KIE_CNTR,2] = 1.0 ; Z
N260 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: OFFSET: C axis
; ----------------------------------------------------------
N270 $NK_TYPE[KIE_CNTR] = "OFFSET"
N280 $NK_NAME[KIE_CNTR] = "C-AXIS-OFFSET"
N290 $NK_NEXT[KIE_CNTR] = "C-AXIS"
;
N300 $NK_OFF_DIR[KIE_CNTR,2] = 600.0 ; Z direction
N310 KIE_CNTR = KIE_CNTR + 1 ;
;
; ----------------------------------------------------------
; Kinematic element: ROTARY AXIS: C axis
; ----------------------------------------------------------
N320 $NK_TYPE[KIE_CNTR] = "AXIS_ROT"
N330 $NK_NAME[KIE_CNTR] = "C-AXIS"
N340 $NK_NEXT[KIE_CNTR] = "C-A-OFFSET"
N350 $NK_AXIS[KIE_CNTR] = "C1"
;
N360 $NK_OFF_DIR[KIE_CNTR,2] = 1.0 ; Z direction
N370 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: OFFSET: C-A axis
; ----------------------------------------------------------
N380 $NK_TYPE[KIE_CNTR] = "OFFSET"
N390 $NK_NAME[KIE_CNTR] = "C-A-OFFSET"
N400 $NK_NEXT[KIE_CNTR] = "A-AXIS"
;
N410 $NK_OFF_DIR[KIE_CNTR,0] = 20.0 ; X direction
N420 $NK_OFF_DIR[KIE_CNTR,1] = -5.0 ; Y direction
N430 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: ROTARY AXIS: A axis
; ----------------------------------------------------------
N440 $NK_TYPE[KIE_CNTR] = "AXIS_ROT"
N450 $NK_NAME[KIE_CNTR] = "A-AXIS"
N460 $NK_NEXT[KIE_CNTR] = "TOOL-REF"
N470 $NK_AXIS[KIE_CNTR] = "A1"
;
N480 $NK_OFF_DIR[KIE_CNTR,0] = 1.0 ; X direction
N490 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: OFFSET: Tool reference
; ----------------------------------------------------------
N500 $NK_TYPE[KIE_CNTR] = "OFFSET"
N510 $NK_NAME[KIE_CNTR] = "TOOL-REF"
N520 $NK_NEXT[KIE_CNTR] = "DOCKING_POINT 1"
;
N530 $NK_OFF_DIR[KIE_CNTR,2] = -200.0 ; Z direction
N540 KIE_CNTR = KIE_CNTR + 1
;
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 443
Kinematic chain
4.4 Example
Program code
; ----------------------------------------------------------
; Kinematic element: Switch 3/1
; ----------------------------------------------------------
N550 $NK_TYPE[KIE_CNTR] = "SWITCH"
N560 $NK_NAME[KIE_CNTR] = "DOCKING_POINT 1"
N570 $NK_NEXT[KIE_CNTR] = "HEAD 1"
N580 $NK_PARALLE[KIE_CNTR] = "DOCKING_POINT 2"
;
N590 $NK_SWITCH_INDEX[KIE_CNTR] = 3 ; Index 3
N600 $NK_SWITCH_POS[KIE_CNTR] = 1 ; switch position 1
N610 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: Switch 3/2
; ----------------------------------------------------------
N620 $NK_TYPE[KIE_CNTR] = "SWITCH"
N630 $NK_NAME[KIE_CNTR] = "DOCKING_POINT 2"
N640 $NK_NEXT[KIE_CNTR] = "HEAD 2"
N650 $NK_PARALLE[KIE_CNTR] = "DOCKING_POINT 3"
;
N660 $NK_SWITCH_INDEX[KIE_CNTR] = 3 ; Index 3
N670 $NK_SWITCH_POS[KIE_CNTR] = 2 ; switch position 2
N680 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: Switch 3/3
; ----------------------------------------------------------
N690 $NK_TYPE[KIE_CNTR] = "SWITCH"
N700 $NK_NAME[KIE_CNTR] = "DOCKING_POINT 3"
N710 $NK_NEXT[KIE_CNTR] = "HEAD 3"
N720 $NK_PARALLE[KIE_CNTR] = ""
N730 $NK_SWITCH_INDEX[KIE_CNTR] = 3 ; Index 3
N740 $NK_SWITCH_POS[KIE_CNTR] = 3 ; switch position 3
N750 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: OFFSET: HEAD 1
; ----------------------------------------------------------
N760 $NK_TYPE[KIE_CNTR] = "OFFSET"
N770 $NK_NAME[KIE_CNTR] = "HEAD 1"
N780 $NK_NEXT[KIE_CNTR] = ""
;
N790 $NK_OFF_DIR[KIE_CNTR,0] = 100 ; X direction
N800 $NK_OFF_DIR[KIE_CNTR,1] = -30 ; Y direction
N810 KIE_CNTR = KIE_CNTR + 1
;
; ----------------------------------------------------------
; Kinematic element: OFFSET: HEAD 2
; ----------------------------------------------------------
N820 $NK_TYPE[KIE_CNTR] = "OFFSET"
N830 $NK_NAME[KIE_CNTR] = "HEAD 2"
N840 $NK_NEXT[KIE_CNTR] = ""
;
N850 $NK_OFF_DIR[KIE_CNTR,2] = -230 ; Z direction
N860 KIE_CNTR = KIE_CNTR + 1
;
Basic functions
444 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Kinematic chain
4.5 Data lists
Program code
; ----------------------------------------------------------
; Kinematic element: OFFSET: HEAD 3
; ----------------------------------------------------------
N870 $NK_TYPE[KIE_CNTR] = "OFFSET"
N880 $NK_NAME[KIE_CNTR] = "HEAD 3"
N890 $NK_NEXT[KIE_CNTR] = ""
;
N900 $NK_OFF_DIR[KIE_CNTR,0] = 50 ; X direction
N910 $NK_OFF_DIR[KIE_CNTR,1] = -20 ; Y direction
N920 $NK_OFF_DIR[KIE_CNTR,2] = -90 ; Z direction
N930 KIE_CNTR = KIE_CNTR + 1
End
Identifier Description
$NK_NAME Name of the kinematic element
$NK_NEXT Name of the next element in the kinematic chain
$NK_PARALLEL Name of the first element of a parallel branching kinematic chain before the
element
$NK_TYPE Type of the kinematic element
$NK_OFF_DIR Depends on $NK_TYPE: Offset or direction vector
$NK_AXIS Name of the assigned machine axis or object name
$NK_A_OFF Work offset in the element for linear or rotary axes
$NK_SWITCH_INDEX Index i, via which the switch is addressed using system variable
$NK_SWITCH[<i>]
$NK_SWITCH_POS Switch position CLOSED
$NK_SWITCH Switch variable
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 445
Kinematic chain
4.5 Data lists
Basic functions
446 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead 5
5.1 Brief Description
Continuous-path mode
In the continuous-path mode, the NC attempts to keep the programmed path velocity as
constant as possible. In particular, deceleration of the path axes at the block limits of the part
program is to be avoided.
LookAhead
LookAhead is a function for optimizing the continuous path mode.
Smooth and uniform machining of workpieces is necessary to ensure a high-quality surface
finish. For this reason, path velocity variations should be avoided during machining whenever
possible. Without LookAhead, the NC only takes the traversing block immediately following the
current traversing block into consideration when determining the possible path velocity. If the
following block contains only a short path, the NC must reduce the path velocity (decelerate in
the current block) to be able to stop in time at the end of the next block, if necessary.
When the NC "looks ahead" over a configurable number of traversing blocks following the
current traversing block, a much higher path velocity can be attained under certain
circumstances because the NC now has considerably more traversing blocks and more path
available for calculation.
This has the following advantages:
● Machining with higher path velocities on average
● Improved surface quality by avoiding deceleration and acceleration
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 447
Continuous-path mode, exact stop, LookAhead
5.1 Brief Description
Basic functions
448 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.2 Exact stop mode
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 449
Continuous-path mode, exact stop, LookAhead
5.2 Exact stop mode
Application
Exact stop mode should always be used when the programmed contour must be executed
exactly.
Activation
In a program, exact stop operation can be specified using the following commands, either
modal or for specific blocks:
Command Meaning
G60 Exact stop operation is effective from the current modal block.
G9 Exact stop operation is effective in the current block.
Exact stop conditions - "Exact stop coarse" and "Exact stop fine"
The exact stop condition "coarse" or "fine" is fulfilled by a machine axis if its current following
error is less than or equal to the tolerance range around the setpoint position, parameterized in
the machine data:
● MD36000 $MA_STOP_LIMIT_COARSE (exact stop coarse)
● MD36010 $MA_STOP_LIMIT_FINE (exact stop fine)
)ROORZLQJHUURU 6HWSRLQWSRVLWLRQ
9HORFLW\VHWSRLQW
*
0'
0$B6723B/,0,7B&2$56(
*
0'
0$B6723B/,0,7B),1(
W
Basic functions
450 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.2 Exact stop mode
Note
The tolerance windows of the exact stop conditions "Exact stop coarse" and "Exact stop fine"
should be assigned in such a way that the following requirement is fulfilled:
"Exact stop coarse" > "Exact stop fine"
)ROORZLQJHUURU 6HWSRLQWSRVLWLRQ
%ORFNFKDQJHWLPHV
*
9HORFLW\VHWSRLQW
*
0'
0$B6723B/,0,7B&2$56(
*
0'
0$B6723B/,0,7B),1(
W
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 451
Continuous-path mode, exact stop, LookAhead
5.2 Exact stop mode
Application examples
● Adaptation of the positioning response to different mass ratios, such as after a new gearbox
stage has been selected.
● Reduction in positioning time, depending on various machining states, such as roughing
and finishing
Example
MD20550 $MC_EXACT_POS_MODE = 02
● <E> = 2: With rapid traverse, exact stop condition G602 (exact stop window coarse) is
always active, irrespective of any programming.
● <Z> = 0: When traversing with all other commands of the 1st G group, the programmed
exact stop condition is effective.
Basic functions
452 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Block change behavior for block transitions from G0 ↔ non-G0 to continuous path mode
For the continuous path mode, the block change behavior between rapid traverse and non
rapid traverse blocks (G0 ↔ non-G0) can be set using the following machine data:
MD20552 $MC_EXACT_POS_MODE_G0_TO_G1 = <Value>
<Value> Meaning
0 No additional stop at the block transition.
1 Stop at the block transition.
The behavior corresponds to G601 (exact stop window, fine)
2 Stop at the block transition.
The behavior corresponds to G602 (exact stop window, coarse)
3 Stop at the block transition.
The behavior corresponds to G603 (interpolator end)
4 No stop at the block transition.
For the continuous path mode, for block changes from G0 → non-G0, in the G0 block, the
actual value of the feedrate correction of the subsequent non-G0 block is predicatively taken
into account. Depending on the axis dynamic performance and the path length of the current
block, the block change is executed with the exact or the best possible adapted velocity of the
following block.
5 No stop at the block transition.
For the continuous path mode, for block changes from G0 → non-G0 and non-G0 → G0, the
current value of the feedrate correction (G0 → non-G0) or the rapid traverse contour (non-G0
→ G0) of the following block is predicatively taken into account. Depending on the axis dy‐
namic performance and the path length of the current block, the block change is executed
with the exact or the best possible adapted velocity of the following block.
Continuous-path mode
In the continuous-path mode, the path velocity is not decelerated for the block change in order
to permit the fulfillment of an exact stop criterion. The objective of this mode is to avoid rapid
deceleration of the path axes at the block-change point so that the axis velocity remains as
constant as possible when the program moves to the next block. To achieve this objective, the
"LookAhead" function is also activated when the continuous-path mode is selected.
Continuous-path mode causes the smoothing and tangential shaping of angular block
transitions by local changes in the programmed contour. The extent of the change relative to
the programmed contour can be limited by specifying the overload factor or rounding criteria.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 453
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Continuous-path mode:
● Contour rounding.
● Reduces machining times by eliminating braking and acceleration processes that are
required to fulfill the exact-stop criterion.
● Improves cutting conditions because of the more constant velocity.
Continuous-path mode is suitable if:
● A contour must be traversed as quickly as possible (e.g. with rapid traverse).
● The exact contour may deviate from the programmed contour within a specific tolerance for
the purpose of obtaining a continuous contour
Continuous-path mode is not practical if a contour is to be traversed precisely.
Basic functions
454 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Function
The function lowers the path velocity in continuou-path mode until the non-tangential block
transition can be traversed in one interpolation cycle while respecting the deceleration limit and
taking an overload factor into account.
With the reduced velocity, axial jumps in velocity are produced with a non-tangential contour at
the block transition. These jumps in velocity are also performed by the coupled motion
synchronized axes. The jump in velocity prevents the path velocity dropping to zero. This jump
is performed if the axial velocity was reduced with the axial acceleration to a velocity from which
the new setpoint can be reached with the jump. The magnitude of the setpoint jump can be
limited using an overload factor. Because the magnitude of the jump is axial, the minimum jump
of the path axes which are active during the block change is considered during block transition.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 455
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
%ORFNFKDQJH [
3DWKYHORFLW\
%ORFNFKDQJH W
9HORFLW\RI;D[LV $[LDO
*UDGLHQWD[ YHORFLW\MXPS
*UDGLHQWI[D[I[!
,32F\FOH W
9HORFLW\RI<D[LV $[LDO
YHORFLW\MXPS *UDGLHQWD[
*UDGLHQWI\D\
I\!I[!
I2YHUORDGIDFWRU
,32F\FOH W
Figure 5-3 Axial velocity change on block transition
With a practically tangential block transition, the path velocity is not reduced if the permissible
axial accelerations are not exceeded. This means that very small bends in the contour (e.g.
0.5°) are overtraveled directly.
Overload factor
The overload factor restricts step changes in the machine axis velocity at block ends. To ensure
that the velocity jump does not exceed the maximum load on the axis, the jump is derived from
the acceleration of the axis.
The overload factor indicates the extent by which the acceleration of the machine axis
(MD32300 $MA_MAX_AX_ACCEL) may be exceeded for an IPO-cycle.
The velocity jump results as follows:
Velocity jump = axis acceleration * (overload factor-1) * interpolator cycle.
The overload factor is saved in the machine data:
MD32310 $MA_MAX_ACCEL_OVL_FACTOR (overload factor for axial velocity jumps)
Factor 1.0 means that only tangential transitions with finite velocity can be traversed. For all
other transitions, the velocity is reduced to zero by changing the setpoint. This behavior is
Basic functions
456 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
equivalent to the function "Exact stop with interpolator end". This is undesirable for continuous-
path mode, so the factor must be set to greater than 1.0.
Note
For startup and installation, please note that the factor must be reduced if the machine is likely
to be subject to vibrations during angular block transitions and rounding is not to be used.
By setting the following machine data, the block transitions are rounded independent of the set
overload factor with G641/G642:
MD20490 $MC_IGNORE_OVL_FACTOR_FOR_ADIS
Activation/deactivation
Continuous-path mode with a reduction in speed according to the overload factor can be
activated in any NC part program block by the modal command G64.
Selecting the exact stop which works on a block-by-block basis enables rounding to be
interrupted (G9).
Continuous-path mode G64 can be deactivated by selecting:
● Modal exact stop G60
● Rounding G641, G642, G643, G644 or G645
5.3.3 Rounding
Function
The "Rounding" function adds intermediate blocks (positioning blocks) along a programmed
contour (path axes) at non-continuous (angular) block transitions so that the resulting new
block transition is continuous (tangential).
Synchronized axes
The rounding considers not only the geometry axes but also all synchronous axes. Although a
continuous block transition cannot be created for both axis types concurrently for the parallel
travel of path and synchronous axes. In this case, to favor path axes that always travel exactly,
only an approximately continuous block transition is created for synchronous axes.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 457
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Note
We recommend that when the "Rounding" function is used, synchronization conditions apply to
the end of the block before the rounding location rather than the end of the inserted rounding
block. The following block would then not be started and with a stop at the block end, the
contour of the following block can still be changed manually.
Exceptions
In the following cases, no rounding occurs at the block transition, for example, between the N10
blocks after N20, i.e. no rounding block is added:
Basic functions
458 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
The insertion of the rounding block would slow part program machining overproportionally
Possible causes:
● A program or program section consists of a number of very short traversal blocks (≈ 1
interpolator cycle / traversal block; because each traversal block requires at least one
interpolator cycle, the inserted intermediate block would almost double the machining time)
● G64 (path control operation without rounding) without speed reduction active for block
change
● The parameterized overload factor (MD32310 $MA_MAX_ACCEL_OVL_FACTOR) permits
the traversal of the programmed contour without the path speed needing to be reduced. See
also: MD20490 $MC_IGNORE_OVL_FACTOR_FOR_ADIS
Note
We recommend that when the "Rounding" function is used, synchronization conditions apply to
the end of the block before the rounding location rather than the end of the inserted rounding
block. The following block would then not be started and with a stop at the block end, the
contour of the following block can still be changed.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 459
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Function
In continuous-path mode with rounding according to a path criterion, the size of the rounding
area is influenced by the path criteria ADIS and ADISPOS.
The path criteria ADIS and ADISPOS describe the maximum distances which a rounding block
can occupy before and after a block.
3DWKFULWHULRQ
$',6 3URJUDPPHG
$',6326 LQWHUPHGLDWHSRLQWLQEORFN
3URJUDPPHGLQSXWEORFN 3URJUDPPHGRXWSXW
EORFN
Note
Acute angles produce rounding curves with a large degree of curvature and therefore cause a
corresponding reduction in velocity.
Note
ADISPOS is programmed in the same way as ADIS, but must be used specifically for
movements in rapid traverse mode G0.
Basic functions
460 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
● If a very small value is used for ADIS, the controller must make sure that every interpolated
block, even an intermediate rounding block, contains at least one interpolation point. The
maximum path velocity is thereby limited to ADIS / interpolator cycle.
● Irrespective of ADIS and ADISPOS, the rounding area is limited by the block length.
In blocks with short distances (distance < 4* ADIS and < 4 * ADISPOS respectively), the
rounding distance is reduced so that a traversable part of the original block is retained. The
remaining length depends on the axis path and is approximately 60% of the distance still to
be traversed in the block. ADIS or ADISPOS is therefore reduced to the remaining 40% of
the distance to be traversed. This algorithm prevents a rounding block being inserted for a
very small change in contour. In this case, switchover to continuous-path mode G64 is
automatic until rounding blocks can be inserted again.
1RVPRRWKLQJ
1
1
1
$',6
5HPDLQLQJSDWK
1
1
6WDUWRIEORFN1
1
$',6 $',6
5HPDLQLQJSDWK 5HPDLQLQJSDWK
1 1
Activation/deactivation
Continuous-path mode with rounding based on a path criterion can be activated in any NC part
program block by the modal command G641. Before or on selection, the path criteria ADIS/
ADISPOS must be specified.
Selecting the exact stop which works on a block-by-block basis enables rounding to be
interrupted (G9).
Continuous-path mode with rounding based on a path criterion (G641) can be deactivated by
selecting:
● Modal exact stop (G60)
● Continuous-path mode G64, G642, G643, G644 or G645
Program example
Program code Comment
N1 G641 Y50 F10 ADIS=0.5 ; Continuous-path mode with rounding based on a path
criterion (rounding clearance: 0.5 mm)
N2 X50
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 461
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Function
In continuous-path mode involving rounding in compliance with defined tolerances, the
rounding normally takes place while adhering to the maximum permissible path deviation.
Instead of these axis-specific tolerances, the maintenance of the maximum contour deviation
(contour tolerance) or the maximum angular deviation of the tool orientation (orientation
tolerance) can be configured.
Activation
Continuous-path mode with rounding in compliance with defined tolerances can be activated in
any NC part program block by the modal command G642 or G643.
Selecting the exact stop which works on a block-by-block basis enables rounding to be
interrupted (G9).
Continuous-path mode with rounding in compliance with defined tolerances (G642/G643) can
be deactivated by selecting:
● Modal exact stop (G60)
● Continuous-path mode G64, G641, G644 or G645
G642 G643
With G642, the rounding path is determined on the In the case of G643, each axis may have a differ‐
basis of the shortest distance for rounding all axes. ent rounding path. The rounding travels are taken
This value is taken into account when generating a into account axis-specifically and block-internally
rounding block. (⇒ no separate rounding block).
With G642, the rounding area results from the Very different specifications for the contour toler‐
smallest tolerance setting. ance and the tolerance of the tool orientation can
only have effect with G643.
Parameterization
Maximum path deviation
Basic functions
462 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
The maximum path deviation permitted with G642/G643 is set for each axis in the machine
data:
MD33100 $MA_COMPRESS_POS_TOL
Contour tolerance and orientation tolerance
The contour tolerance and orientation tolerance are set in the channel-specific setting data:
SD42465 $SC_SMOOTH_CONTUR_TOL (maximum contour deviation)
SD42466 $SC_SMOOTH_ORI_TOL (maximum angular deviation of the tool orientation)
The settings data can be programmed in the NC program and can in this way be specified
differently for each block transition.
Note
The setting data SD42466 $SC_SMOOTH_ORI_TOL is effective only in active orientation
transformation.
Rounding behavior
Rounding behavior with G642 and G643 is configured via the machine data:
MD20480 $MC_SMOOTHING_MODE (rounding behavior with G64x)
The units positions (E) define the behavior for G643, the tens positions (Z) the behavior for
G642:
Value E or Z Meaning
0 All axes:
Rounding by maintaining the maximum permitted path deviation:
MD33100 $MA_COMPRESS_POS_TOL
1 Geometry axes:
Rounding by maintaining the contour tolerance:
SD42465 $SC_SMOOTH_CONTUR_TOL
Remaining axes:
Rounding by maintaining the maximum permitted path deviation:
MD33100 $MA_COMPRESS_POS_TOL
2 Geometry axes:
Rounding by maintaining the orientation tolerance:
SD42466 $SC_SMOOTH_ORI_TOL
Remaining axes:
Rounding by maintaining the maximum permitted path deviation:
MD33100 $MA_COMPRESS_POS_TOL
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 463
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Value E or Z Meaning
3 Geometry axes:
Rounding by maintaining the contour tolerance and the orientation tolerance:
SD42465 $SC_SMOOTH_CONTUR_TOL
SD42466 $SC_SMOOTH_ORI_TOL
Remaining axes:
Rounding by maintaining the maximum permitted path deviation:
MD33100 $MA_COMPRESS_POS_TOL
4 All axes:
The rounding length programmed with ADIS or with ADISPOS is used (as in case of
G641).
Any axis-specific tolerance or contour and orientation tolerance specifications are
ignored.
Value Meaning
< 100: A profile of the limit velocity is calculated within the rounding area, based on the defined
maximum values for acceleration and jerk on the participating axes or path.
This can lead to an increase in the path velocity in the rounding area and therefore to the
acceleration of the participating axes.
≥100: A profile of the limit velocity is not calculated for rounding blocks with G641/G642. A
constant velocity limit is specified instead.
This prevents the participating axes being accelerated into the rounding area during
rounding with G641/G642. However, in certain cases, this setting can cause the rounding
blocks to be traversed too slowly, especially in large rounding areas.
1xx: No velocity profile for G641
2xx: No velocity profile for G642
Note
MD28530 $MC_MM_PATH_VELO_SEGMENTS (number of memory elements for limiting the
path velocity)
Supplementary conditions
Restriction for protection zones with active radius compensation and tool orientation:
Although tool radius compensation is applied for a tool orientation, which is not perpendicular
to one of the three datum planes of the basic coordinate system, the protection zones are not
rotated onto the corresponding plane.
For G643 the following must apply:
MD28530 $MC_MM_PATH_VELO_SEGMENTS > 0 (number of memory elements for limiting
the path velocity)
If this condition is met, then it must be applicable for all axes:
Basic functions
464 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Function
Maximizing the dynamic response of the axes is key to this type of continuous-path mode with
smoothing.
Note
Smoothing with G644 is only possible under the following conditions:
● All of the participating axes contain only one linear motion in the two blocks under
consideration.
● A kinematic transformation is not active.
If a participating axis contains a polynomial (polynomial programmed, spline active,
compressor active) or a kinematics transformation is active (PTP travel temporarily deactivates
a kinematics transformation), the block transition is smoothed with G642.
Activation
Continuous-path mode with smoothing with the maximum possible axial dynamic response can
be activated in any NC part program block by the modal command G644.
Selecting the exact stop which works on a block-by-block basis enables smoothing to be
interrupted (G9).
Continuous-path mode with smoothing with the maximum possible axial dynamic response
(G644) can be deactivated by selecting:
● Modal exact stop (G60)
● Continuous-path mode G64, G641, G642, G643 or G645
Parameter assignment
Smoothing behavior with G644 is configured via the thousands and tens of thousands places
in the machine data:
MD20480 $MC_SMOOTHING_MODE (smoothing behavior with G64x)
Value Meaning
Thousand's place:
0xxx: When smoothing with G644, the maximum deviations for each axis specified by the follow‐
ing machine data are respected:
MD33100 $MA_COMPRESS_POS_TOL
If the dynamics of the axis permit, then any specified tolerance is not utilized.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 465
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Value Meaning
1xxx: Specification of the maximum smoothing path by programming ADIS=...
or ADISPOS=... (as for G641).
2xxx: Input the maximum possible frequencies of each axis in the smoothing area using the ma‐
chine data:
MD32440 $MA_LOOKAH_FREQUENCY (smoothing frequency for LookAhead)
The smoothing area is defined so that no frequencies in excess of the specified maximum
can occur while the smoothing motion is in progress.
3xxx: Any axis that has a velocity jump at a corner traverses around the corner with the maximum
possible dynamic response (maximum acceleration and maximum jerk).
SOFT:
If SOFT is active, the maximum acceleration and the maximum jerk of each axis are main‐
tained.
BRISK:
If BRISK is active, only the maximum acceleration and not the maximum jerk of each axis is
maintained.
With this setting, neither the maximum deviations nor the smoothing distance are checked.
The resulting deviations or smoothing distances are determined exclusively by the dynamic
limits of the respective axis and the current path velocity.
4xxx: As in case of 0xxx, the maximum deviations of each axis specified with the following ma‐
chine data are used:
MD33100 $MA_COMPRESS_POS_TOL
Contrary to 0xxx, the specified tolerance is also utilized, if possible. Therefore, the axis does
not attain its maximum possible dynamics.
5xxx: As in case of 1xxx, the maximum possible smoothing path is specified through programming
of ADIS=... or ADISPOS=... respectively.
Contrary to 1xxx, the specified smoothing path is also utilized, if possible. Therefore, the
axes involved do not attain their maximum possible dynamics.
Note
Apart from the ones mentioned, the following limitation can also become active additionally:
The smoothing distance cannot exceed half the length of the original participating blocks.
Basic functions
466 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Jerk limitation
The smoothing of the velocity jump on each axis and thus the shape of the smoothing path
depends on whether an interpolation is performed with or without jerk limitation.
Without jerk limitation the acceleration of each axis reaches its maximum value in the entire
smoothing area:
9HORFLW\
7LPH
Q
LR
VLW
3R
With jerk limitation, the jerk of each axis is limited to its maximum value within the smoothing
area. The smoothing motion thus generally consists of 3 phases(① ... ③):
9HORFLW\
7LPH
Q
LR
VLW
3R
① During phase 1, each axis builds up its maximum acceleration. The jerk is constant and equal to
the maximum possible jerk on the respective axis.
② During phase 2, the maximum permissible acceleration is applied.
③ During phase 3, which is the last phase, the acceleration of each axis is reduced back to zero with
the maximum permissible jerk.
Function
In continuous-path mode with rounding, rounding blocks are also only generated on tangential
block transitions if the curvature of the original contour exhibits a jump in at least one axis.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 467
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
The rounding motion is defined here so that the acceleration of all axes involved remains
smooth (no jumps) and the parameterized maximum deviations from the original contour
(MD33120 $MA_PATH_TRANS_POS_TOL) are not exceeded.
In the case of angular, non-tangential block transitions, the rounding behavior is the same as
with G642 (see Section "Rounding in compliance with defined tolerances (G642/G643)
(Page 462)").
Activation/deactivation
Continuous-path mode with rounding of tangential block transitions can be activated in any NC
part program block by the modal command G645.
Selecting the exact stop which works on a block-by-block basis enables rounding to be
interrupted (G9).
Continuous-path mode with rounding of tangential block transitions (G645) can be deactivated
by selecting:
● Modal exact stop (G60)
● Continuous-path mode G64, G641, G642, G643 or G644
Parameterization
The following machine data indicates the maximum permissible path deviation for each axis
during rounding with G645:
MD33120 $MA_PATH_TRANS_POS_TOL
This value is only of relevance to tangential block transitions with variable acceleration. When
angular, non-tangential block transitions are rounded, (as with G642) the tolerance from
MD33100 $MA_COMPRESS_POS_TOL becomes effective.
See also
Free-form surface mode: Basic functions (Page 494)
Basic functions
468 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Example
Programmed: Two traversing blocks N10 and N20 with programmed rounding G641.
The traversing motion is interrupted in the rounding area. The axes, e.g. manually, are then
traversed to the REPOS start point. Depending on the selected REPOS mode, the
repositioning on the contour is made at the points ①, ② or ③.
5(326VWDUWLQJSRLQW
50%%/
50,%/50(%/
%UHDNSRLQW
501%/
1
7UDYHUVLQJ
GLUHFWLRQ
6PRRWKLQJVHW
1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 469
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
5.3.4 LookAhead
Function
LookAhead is a function which is active in continuous-path mode (G64, G64x) and determines
a foreseeable velocity control for multiple NC part program blocks over and beyond the current
block.
Note
LookAhead is only available for path axes, not for spindles and positioning axes.
If a part program contains consecutive blocks with very small paths, only one velocity is
reached per block without LookAhead, enabling deceleration of the axes at the end of the block
while maintaining acceleration limits. This means that the programmed velocity is not reached
at all. With LookAhead, however, it is possible to implement the acceleration and deceleration
phase over multiple blocks with approximately tangential block transitions, thereby achieving a
higher feedrate with shorter distances.
)HHGUDWH
*3UHGLFWLYHYHORFLW\FRQWURO
SURJUDPPHG
)
*&RQVWDQWYHORFLW\SKDVHFDQQRWEH
UHDFKHG
Figure 5-5 Velocity control with short distances and exact stop G60 or continuous-path mode G64 with
LookAhead
Deceleration to velocity limits is possible with LookAhead such that violation of the acceleration
and velocity limit is prevented.
LookAhead takes plannable velocity limits into consideration such as:
● Exact stop at block end
● Velocity limit in the block
● Acceleration limit in the block
● Velocity limit on block transition
● Synchronization with block change at block transition.
Basic functions
470 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Mode of operation
LookAhead carries out a block-specific analysis of velocity limits and specifies the required
brake ramp profile based on this information. LookAhead is adapted automatically to block
length, braking capacity and permissible path velocity.
For safety reasons, the velocity at the end of the last prepared block must initially be assumed
to be zero because the next block might be very small or be an exact-stop block, and the axes
must have been stopped by the end of the block.
With a series of blocks with high set velocity and very short paths, the speed can be increased
in each block depending on the velocity value currently calculated by the LookAhead function
in order to achieve the required set velocity. After this it can be reduced so that the velocity at
the end of the last block considered by the LookAhead function can be zero. This results in a
serrated velocity profile (see the following fig.) which can be avoided by reducing the set
velocity or increasing the number of blocks considered by the LookAhead function.
Y
9VHWSRLQW
9DFW
Figure 5-6 Example for modal velocity control (number of blocks considered by the LookAhead
function = 2)
Activation/deactivation
LookAhead is activated by selecting continuous-path mode G64, G641, G642, G643, G644 or
G645.
Selecting the exact stop which works on a non-modal basis enables rounding to be interrupted
(G09).
LookAhead is deactivated by selecting the modal exact stop (G60).
Parameterization
Number of blocks
To achieve reliable axis traversal in continuous-path mode, the feedrate must be adapted over
several blocks. The number of blocks considered by the LookAhead function is calculated
automatically and can, if required, be limited by a machine data. The default setting is "1", which
means that LookAhead only considers the following block for velocity control.
Because LookAhead is especially important for short blocks (relative to the deceleration path),
the number of blocks required is of interest for LookAhead braking. It is sufficient to consider the
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 471
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
path length to be equal to the deceleration path that is required to brake from maximum velocity
to standstill.
For a machine with a low axial acceleration of a = 1 m/s2 and a high feedrate of vpath = 10 m/min,
the following number of nLookAhead blocks are allocated to the controller where it has an attainable
block cycle time of TB = 10 ms:
nLookAhead = Deceleration path/Block length = ( vpath2 / (2a)) / (vpath * TB) = 9
Considering these conditions, it is advisable to adapt the feedrate over 10 blocks. The number
of blocks entered for the LookAhead function forecast does not change the LookAhead
algorithm and memory requirement.
Since the machining velocity is very often set to a lower value than the maximum velocity in a
program, more blocks than are required would be predicted, overloading the processor
unnecessarily. For this reason, the required number of blocks is derived from the velocity which
is calculated from the following multiplication:
● Programmed velocity * MD12100 $MN_OVR_FACTOR_LIMIT_BIN
(when using a binary-coded feedrate override switch)
● Programmed velocity * MD12030 $MN_OVR_FACTOR_FEEDRATE[30]
(when using a Gray-coded feedrate override switch)
The value for MD12100 or the 31st override value for MD12030 defines the dynamic response
reserves which the velocity control provides for when the path feedrate is overshot.
Note
The 31st override value for MD12030 should correspond to the highest override factor which is
actually used.
Note
The number of blocks considered by the LookAhead function is limited by the possible number
of NC blocks in the IPO buffer.
Velocity profiles
In addition to the fixed, plannable velocity limitations, LookAhead can also take account of the
programmed velocity. This makes it possible to achieve a lower velocity by applying
LookAhead beyond the current block.
● Determination of the following block velocity
One possible velocity profile contains the determination of the following block velocity.
Using information from the current and the following NC block, a velocity profile is calculated
from which, in turn, the required velocity reduction for the current override is derived.
The calculated maximum value of the velocity profile is limited by the maximum path velocity.
With this function it is possible to initiate a speed reduction in the current block taking
override into account such that the lower velocity of the following block can be achieved. If
the reduction in velocity takes longer than the travel time of the current block, the velocity is
further reduced in the following block. Velocity control is only ever considered for the
following block.
The function is activated via the machine data:
MD20400 $MC_LOOKAH_USE_VELO_NEXT_BLOCK
Basic functions
472 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Value Meaning
TRUE Function active
FALSE Function not active
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 473
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Basic functions
474 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
– MD20400 $MC_LOOKAH_USE_VELO_NEXT_BLOCK = 1
Y
YtPD[
9HORFLW\SURILOH
2YHUULGH
2YHUULGH 3URJUDPPHGVHWSRLQW
9HORFLW\SURILOH
9HORFLW\SURILOH
2YHUULGH
Note
If neither of the procedures has been activated, the setpoint velocity is always applied in the
current block.
Note
Plannable velocity limits restrict override-specific velocity limits.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 475
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Boundary conditions
Axis-specific feed stop/axis disable
Axis-specific feed stop and axis-specific axis disable are ignored by LookAhead.
If an axis is to be interpolated that should on the other hand be made stationary by axis-specific
feed stop or axis disable, LookAhead does not stop path motion before the block in question but
decelerates in the block itself.
If this response is not wanted, an axis-specific feed stop can be transferred to a channel via the
PLC to stop the path immediately (see also Function Manual Monitoring and Compensating,
Section Clamping monitoring).
Function
The "Free-form surface mode: Extension function" is an extension of the Look Ahead standard
functionality and is used to calculate the path velocity profile during free-form surface
machining (see also Section "Free-form surface mode: Basic functions (Page 494)").
Its use optimizes the continuous-path mode as follows:
● Symmetry between the acceleration and deceleration profiles
● Uniform acceleration process, even with changing jerk or acceleration limits
● Uniform acceleration process of target velocity profiles, irrespective of the degree to which
they can or cannot be started with the specified dynamic response limit
● Look Ahead braking to lower setpoint velocities
Uniformity and compliance with the dynamic response limit guarantee that the setpoint velocity
profiles are smoothed to a homogeneous velocity profile on the part. This serves to minimize
the effect of following errors on the quality of the surface.
Advantages
● Greater uniformity in the surface of the workpiece
● Lower machine load
Applications
The "Free-form surface mode: Extension function" is used to machine workpieces which
primarily comprise free-form surfaces.
Note
As better results are not achieved for standard machining applications, standard Look Ahead
functionality should be used in these cases.
Basic functions
476 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Activation
This function is only effective with the following conditions:
● AUTOMATIC mode active
● "Acceleration with jerk limitation (SOFT)" mode active
Parameterization
Working memory
The memory for the "Free-form surface mode: Extended function" is configured via the
machine data:
MD28533 $MC_MM_LOOKAH_FFORM_UNITS = <value>
The required memory depends on the part program, the block lengths, the axis dynamic
response, as well as on an active kinematic transformation.
The following setting applies as a guideline for machining free-form surfaces: MD28533 = 18
Note
Due to the additional storage requirements, MD28533 should only be set for the channels in
which free-form surfaces are being machined.
Activation/deactivation
The function can be switched on or off independently for every dynamic response mode (see
Section "Dynamic response mode for path interpolation (Page 492)"):
MD20443 $MC_LOOKAH_FFORM[<n>]= <value>
Index <n> Dynamic response mode <Value> Free-form surface mode: Extension
function
0 Standard dynamic response set‐ 0 Off
tings (DYNNORM) 1 On
1 Positioning mode, tapping 0 Off
(DYNPOS) 1 On
2 Roughing (DYNROUGH) 0 Off
1 On
3 Semi-finishing (DYNSEMIFIN) 0 Off
1 On
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 477
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Index <n> Dynamic response mode <Value> Free-form surface mode: Extension
function
4 Finishing (DYNFINISH) 0 Off
1 On
5 Smooth-finishing (DYNPREC) 0 Off
1 On
The "Free-form surface mode: Extension function" is typically only active if the "Free-form
surface mode: Basic functions" are also active. Therefore, the settings in
MD20443 $MC_LOOKAH_FFORM[<n>] should correspond to the settings in
MD20606 $MC_PREPDYN_SMOOTHING_ON[<n>].
The standard Look Ahead functionality is active in the dynamic response modes in which the
"Free-form surface mode: Extension function" is switched off.
Programming
Generally speaking, the "Free-form surface mode: Extension function" becomes effective as a
result of a change in the dynamic response mode in the part program.
Example
The following parameters are assumed:
MD20443 $MC_LOOKAH_FFORM[0] = 0
MD20443 $MC_LOOKAH_FFORM[1] = 0
MD20443 $MC_LOOKAH_FFORM[2] = 1
MD20443 $MC_LOOKAH_FFORM[3] = 1
MD20443 $MC_LOOKAH_FFORM[4] = 1
MD20443 $MC_LOOKAH_FFORM[5] = 1
Change of the dynamic response mode in the part program:
Basic functions
478 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.3 Continuous-path mode
Note
When switching between the standard Look Ahead functionality and the "Free-form surface
mode: Extension function" or vice versa, continuous-path mode is interrupted by an interpolator
stop.
Boundary conditions
Automatic changeover
The following functions result in an automatic switchover to standard Look Ahead functionality:
● Thread cutting/tapping (G33, G34, G35, G331, G332, G63)
● Path master-value coupling
● Punching, nibbling
● Cartesian PTP travel
The "Free-form surface mode: Extension function" is then switched on again automatically.
Use of FLIN
The FLIN feedrate profile cannot be used in conjunction with the "Free-form surface mode:
extension function" function:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 479
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Introduction
The velocity control function utilizes the specified axial dynamic response. If the programmed
feedrate cannot be achieved, the path velocity is brought to the parameterized axial limit values
and the limit values of the path (velocity, acceleration, jerk). This can lead to repeated braking
and acceleration on the path.
If a short acceleration takes place during a machining function with high path velocity, and is
thus followed almost immediately by braking, the reduction in the machining time is only
minimal. Acceleration of this kind can, however, have undesirable effects if, for example, it
results in machine resonance.
In some applications in mold making, especially in the case of high-speed cutting, it is desirable
to achieve a constant path velocity. In these cases, it can therefore be reasonable to sacrifice
transient acceleration processes in favor of a smoother tool path velocity.
Function
If the "smoothing the path velocity" function is active, a smoothing factor, which determines the
maximum permissible productivity loss, takes effect with a view to achieving smoother path
velocity control: Acceleration processes which contribute less than this factor to a shorter
program runtime are not performed. Account is only taken of acceleration processes whose
frequencies lie above the configurable limit frequencies of of the axes involved.
Benefits:
● Avoidance of excitations of possible machine resonance due to continuous, transient
braking and acceleration processes (in the area of less IPO cycles).
● Avoidance of constantly varying cutting rates due to acceleration which brings no significant
shortening of the program running time.
Basic functions
480 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Note
The smoothing of the path velocity does not lead to contour errors.
Variations in axis velocity due to curvatures in the contour at constant path velocity may
continue to occur and are not reduced with this function.
Variations in path velocity due to the input of a new feedrate are not changed either. This
remains the responsibility of the programmer of the subprogram.
Requirements
● The smoothing of the path velocity is only effective in continuous-path mode with
LookAhead over multiple blocks with SOFT and BRISK. Smoothing is not effective with G0.
● The controller's cycle times must be configured in such a way that preprocessing can
prepare sufficient blocks to enable an acceleration process to be analyzed.
Activation/deactivation
The "smoothing of the path velocity" function is activated/deactivated with the machine data:
MD20460 $MC_LOOKAH_SMOOTH_FACTOR (smoothing factor for LookAhead)
Value Meaning
0.0 Smoothing of the path velocity not active (default)
>0 Smoothing of the path velocity active
Parameterization
Smoothing factor
The smoothing factor is set via the channel-specific machine data:
MD20460 $MC_LOOKAH_SMOOTH_FACTOR (smoothing factor for LookAhead)
The percentage value defines how much longer a processing step without accelerations/
decelerations may be than the corresponding step with accelerations/decelerations.
This would be a "worst-case" value, if all accelerations within the part program, except the initial
approach motion, were smoothed. The actual extension will always be smaller, and may even
be 0, if the criterion is not met by any of the accelerations. Values between 50 and 100% may
also be entered without significantly increasing the machining time.
Consideration of the programmed feed
The path velocity can be smoothed with or without taking the programmed feedrate into
consideration. The selection is made via the machine data:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 481
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Value Meaning
0 Programmed feedrate is not taken into consideration.
1 Programmed feedrate is considered (default setting).
When considering the programmed feedrate, the specified smoothing factor (see MD20460) is
maintained better when the override is 100%.
Axis-specific limit frequencies
The axis-specific limit frequencies are defined via the machine data:
MD32440 $MA_LOOKAH_FREQUENCY (smoothing frequency for LookAhead)
Acceleration and deceleration processes, which run with a high frequency, are smoothed
depending upon the parameterization of the following machine data or else are reduced in
dynamics:
MD20460 $MC_LOOKAH_SMOOTH_FACTOR (smoothing factor for LookAhead)
MD20465 $MC_ADAPT_PATH_DYNAMIC (adaptation of the dynamic path response)
For further information on MD20465, see Section "Adaptation of the dynamic path response
(Page 483)".
Note
If vibrations are generated in the mechanical system of an axis and if the corresponding
frequency is known, MD32440 should be set to a value smaller than this frequency.
The needed resonance frequencies can be calculated using the built-in measuring functions.
Mode of operation
The minimum value for MD32440 is calculated as fpath on the basis of the axes involved in the
path. For the smoothing only those acceleration processes are taken into consideration, in
which the start and the end velocity of this motion are reached within the time given below:
t = t2 - t1 = 2 / fpath
These acceleration processes are dispensed with if the resulting extension in the processing
time does not exceed the limit specified in excess of the smoothing factor (MD20460).
Example
The following parameters are assumed:
MD20460 $MC_LOOKAH_SMOOTH_FACTOR = 10%
MD32440 $MA_LOOKAH_FREQUENCY[AX1] = 20 Hz
MD32440 $MA_LOOKAH_FREQUENCY[AX2] = 20 Hz
MD32440 $MA_LOOKAH_FREQUENCY[AX3] = 10 Hz
The path involves the three axes X = AX1, Y = AX2, Z = AX3.
Basic functions
482 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
The minimum value of MD32440 for these three axes is thus 10 Hz. This means that any
acceleration, which is completed within a period of t2 - t1 = 2/10 Hz = 200 ms, is examined. The
time t2 is the time it takes to reach velocity v1 again following an acceleration process starting
from velocity v1. The extending of the execution time is also only considered within this range.
If the time t2 - t1 is greater than 200 ms or if the additional program execution time t3 - t2 is more
than 10% (= MD20460) of t2 - t1, the following time characteristic applies:
Y
Y
W W W
Figure 5-7 Characteristic of time-optimum path velocity (without smoothing)
If, however, the time t2 - t1 is less than 200 ms or if the additional program execution time t3 - t2
is no more than 10% of t2 - t1, the following time characteristic applies:
Y
Y
W
W W W
Figure 5-8 Characteristic of the smoothed path velocity
Function
Highly dynamic acceleration and deceleration processes during machining can cause
excitation of mechanical vibrations of machine elements and consequently a reduction of the
surface quality of the workpiece.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 483
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
The dynamic response of the acceleration and deceleration processes can be adapted to the
machine conditions using the "adaptation of the dynamic path response" function.
Note
The "adaptation of the dynamic path response" function only concerns the resulting path and
not the deceleration and acceleration processes of the individual axes involved in the path. For
this reason, critical deceleration and acceleration processes of the axes with respect to the
excitation of mechanical vibrations can occur due to discontinuous contour profiles or kinematic
transformations, even with a constant path velocity profile.
Effectiveness
The "adaptation of the dynamic path response" function is only effective during path motions:
● Continuous-path mode (G64, G64x)
In continuous-path mode, the optimal effect of the dynamic response adaptation is attained
with an active 100% override. Considerable deviations from this value or functions that
cause the path axes to decelerate (e.g. auxiliary function outputs to the PLC) greatly reduce
the desired action.
● Exact stop (G60)
In addition, the "adaptation of the dynamic path response" function is not active during path
motions:
● Programmed rapid traverse (G0)
● Changes in the override value
● Stop requests during motion (e.g. NC Stop, NC Reset)
● "Velocity-dependent path acceleration" function (DRIVE) is active
Activation/deactivation
The function is activated/deactivated with the machine data:
MD20465 $MC_ADAPT_PATH_DYNAMIC (adaptation of the dynamic path response)
Value Meaning
= 1.0 Dynamic adaptation not active (default setting)
> 1.0 Dynamic adaptation active
When activation takes place, the "smoothing the path velocity" function is always activated
internally in continuous-path mode as well (see Section "Smoothing of the path velocity
(Page 480)").
If the smoothing factor (MD20460 $MC_LOOKAH_SMOOTH_FACTOR) is set to 0%
(= function deactivated; default!), a smoothing factor of 100% is used as a substitute. For a
smoothing factor other than 0%, the set value takes effect.
Basic functions
484 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Parameterization
Adaptation factor of the dynamic path response
Via the adaptation factor of the dynamic path response, temporary changes in the path velocity
are executed with smaller dynamic response limit values.
The adaptation factor is to be set on a channel-specific basis:
● For traversing motions with acceleration without jerk limitation (BRISK) via:
MD20465 $MC_ADAPT_PATH_DYNAMIC[ 0 ]
→ The adaptation factor acts on the acceleration.
● For traversing motions with acceleration with jerk limitation (SOFT) via:
MD20465 $MC_ADAPT_PATH_DYNAMIC[ 1 ]
→ The adaptation factor acts on the jerk.
Axis-specific limit frequencies
The dynamic response limiting should only be active during deceleration and acceleration
processes that trigger mechanical vibrations larger than a specific limiting frequency, thus
causing excitation of machine resonances.
This limit frequency from which the dynamic response limiting activates, is specified on an axis-
specific basis via the machine data:
MD32440 $MA_LOOKAH_FREQUENCY (smoothing frequency for LookAhead)
For further information, see Section "Smoothing of the path velocity (Page 480)".
Mode of operation
During processing and via all the axes involved in the path, the controller cyclically establishes
the minimum of all the limit frequencies to be the limit frequency (f) for the adaptation of the
dynamic response and calculates the relevant time window (tadapt) from this:
tadapt = 1 / f
The size of the relevant time window tadapt determines the further behavior:
1. The time needed to change the velocity is less than tadapt:
The acceleration rates are reduced by a factor > 1 and ≤ the value written in machine data:
MD20465 ADAPT_PATH_DYNAMIC (adaptation of the path dynamics)
The reduction in acceleration rate increases the time taken to change the velocity.
The following cases are different:
– The acceleration rate is reduced with a value less than MD20465 so that the process
lasts for tadapt [s]. The permitted reduction does not need to be fully utilized.
– The acceleration time is reduced with the value written in MD20465. The process lasts
less than tadapt despite the reduced acceleration. The permitted reduction was fully
utilized.
2. The time needed to change the velocity is greater than tadapt:
No dynamic response adaptation is required.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 485
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Example
The following example is intended to show the effect of the "adaptation of the dynamic path
response" function on traversing motions with acceleration and without jerk limitation (BRISK).
The following parameters are assumed:
Note
To illustrate the effect of dynamic response adaptation, the value for the smoothing factor
(MD20460) is set to "1", whereby the "smoothing of the path velocity" function is practically
deactivated.
Basic functions
486 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Y% WDGDSW
Y
WDGDSW
WDGDSW
WDGDSW
W W W W W W W W W
Y%
WDGDSW
Y
WDGDSW
WDGDSW
W W W W W W W W W
Figure 5-9 Path velocity profile optimized for time without smoothing or dynamic adaptation response
Y%
WDGDSW
Y
WDGDSW
WDGDSW
W W W W W W W W W
Figure 5-10 Path velocity profile with adaptation of dynamic path response
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 487
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Intervals t0 - t1 and t2 - t3: The acceleration process between t0 - t1 and the deceleration
process between t2 - t3 are extended in terms of time to tadapt01
or tadapt23 as a result of the acceleration being adapted.
Interval t4 - t5: The acceleration process between t4 - t5 is executed with an
acceleration reduced by the maximum adaptation factor of
1.5. However, the acceleration process is completed before
time tadapt45.
Interval t6 - t7: The deceleration process between t6 - t7 remains unchanged
as it lasts longer than tadapt67.
Procedure
The determination of the dynamic response limits for the traversing of path axes by means of
acceleration with jerk limiting (SOFT) is described below. This procedure can be applied by
analogy to the case of acceleration without jerk limiting (BRISK).
1. Deactivate the "adaptation of the dynamic path response" function:
MD20465 $MC_ADAPT_PATH_DYNAMIC[1] = 1
2. Observe the positioning behavior of each path axis at different traversing velocities. When
doing so, set the jerk such that the desired positioning tolerance is maintained.
Note
The higher the traversing velocity from which the positioning process is started, the higher
in general the jerk can be set.
3. Use the maximum permissible jerk determined for the least critical traversing velocity:
MD32431 $MA_MAX_AX_JERK (maximum jerk)
4. Determine the FAPD factor for all of the path axes using:
FAPD = (largest determined jerk) / (smallest determined jerk)
Note
The smallest determined jerk is the value for the jerk during the most critical traversing
velocity.
5. Enter the largest FAPD factor that was determined via all the path axes as the value for the
adaptation factor for the path dynamic response:
MD20465 $MC_ADAPT_PATH_DYNAMIC[ 1 ] = FAPD
Basic functions
488 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
5.4.4 Interaction between the "smoothing of the path velocity" and "adaptation of the
path dynamic response" functions
The following examples serve to illustrate the interaction between the "smoothing of the path
velocity" and "adaptation of the path dynamic response" functions in continuous-path mode.
Example 1
Acceleration mode: BRISK
The path involves the three axes X = AX1, Y = AX2, Z = AX3.
The following parameters are assumed:
MD20465 $MC_ADAPT_PATH_DYNAMIC[0] = 3
MD20460 $MC_LOOKAH_SMOOTH_FACTOR = 80.0
MD32440 $MA_LOOKAH_FREQUENCY[AX1] = 20 TAX1 = 1/20 Hz = 50 ms
MD32440 $MA_LOOKAH_FREQUENCY[AX2] = 20 TAX2 = 1/20 Hz = 50 ms
MD32440 $MA_LOOKAH_FREQUENCY[AX3] = 20 TAX3 = 1/20 Hz = 50 ms
Y%
Y
Y
W W W W W W
Figure 5-11 Path velocity profile optimized for time without smoothing or dynamic adaptation response
Y%
Y
W
W
W
W
W
W
Figure 5-12 Path velocity profile with smoothing of the path velocity and adaptation of dynamic path
response
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 489
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Interval t1 - t2: The acceleration and deceleration process between t1 and t2 does not
take place because the lengthening of the machining time without the
acceleration process to v12 is less than the resulting time if a smoothing
factor of 80% is applied.
Interval t3 - t5: The acceleration and braking profile between t3 and t5 does not fulfill this
condition or takes longer than the parameterized smoothing time
TAxn = 2/20 Hz = 100 ms.
Effects of the dynamic response adaptation:
Note
The example shows that those acceleration or deceleration processes that are not eliminated
by the smoothing of the path velocity can be subsequently optimized by adapting the dynamic
path response. For this reason, both functions should always be activated, if possible.
Example 2
Acceleration mode: SOFT
The path involves the three axes X = AX1, Y = AX2, Z = AX3.
The following parameters are assumed:
MD20465 $MC_ADAPT_PATH_DYNAMIC[1] = 1
MD20460 $MC_LOOKAH_SMOOTH_FACTOR = 0.0
MD32440 $MA_LOOKAH_FREQUENCY[AX1] = 10 TAX1 = 1/20 Hz = 100 ms
MD32440 $MA_LOOKAH_FREQUENCY[AX2] = 10 TAX2 = 1/20 Hz = 100 ms
MD32440 $MA_LOOKAH_FREQUENCY[AX3] = 20 TAX3 = 1/20 Hz = 50 ms
This leads to a path velocity profile which is optimized in terms of time without smoothing the
path velocity or adapting the dynamic path response:
Basic functions
490 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
MD20465 $MC_ADAPT_PATH_DYNAMIC[1] = 4
MD20460 $MC_LOOKAH_SMOOTH_FACTOR = 1.0
This results in a path velocity profile with adaptation of the dynamic path response and with
minimum, and thus virtually deactivated, smoothing of the path velocity:
The smoothing factor is set to 0% instead of 1% (in accordance with the default!):
A smoothing factor of 100% comes into effect with this parameter assignment.
This gives rise to a path velocity profile with smoothing of the path velocity and adaptation of
dynamic path response:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 491
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Function
Technology-specific, dynamic response settings can be saved in machine data and can be
activated in the part program via the commands from G group 59 (dynamic response mode for
path interpolation).
Note
The dynamic response of the path axes alone is determined by the commands from G group
59 (dynamic response mode for path interpolation). They have no effect on:
● Positioning axes
● PLC axes
● Command axes
● Motions based on axis coupling
● Overlaid motions with handwheel
● JOG motions
● Reference point approach (G74)
● Fixed-point approach (G75)
● Rapid traverse motion (G0)
The standard dynamic response setting (DYNNORM) always takes effect for these axis
motions.
Application
By switching the dynamic response settings, roughing can be optimized in terms of time and
smoothing can be optimized in terms of the surface, for example.
Parameter assignment
Basic functions
492 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Note
Writing the machine data without an index places the same value in all field elements of the
relevant machine data.
Reading the machine data without an index always supplies the value of the field with index 0.
Suppressing G commands
It is recommended that G commands from G group 59 (dynamic response mode for path
interpolation) which are not intended for use should be suppressed via the following machine
data:
MD10712 $MN_NC_USER_CODE_CONF_NAME_TAB[<n>] (list of reconfigured NC
commands)
If a suppressed G command is used, an alarm is displayed. This prevents machine data that
has not been parameterized taking effect.
Example
The G commands DYNPOS and DYNSEMIFIN can be suppressed with the following settings:
● MD10712 $MN_NC_USER_CODE_CONF_NAME_TAB[0]="DYNPOS"
● MD10712 $MN_NC_USER_CODE_CONF_NAME_TAB[1]=" "
● MD10712 $MN_NC_USER_CODE_CONF_NAME_TAB[2]="DYNSEMIFIN"
● MD10712 $MN_ NC_USER_CODE_CONF_NAME_TAB[3]=" "
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 493
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Further information
Detailed information regarding programming of the G commands for G group 59 (dynamic
response mode for path interpolation) can be obtained in:
"NC Programming" Programming Manual
Introduction
In tool and mold making applications, it is important that the surfaces on the workpiece are as
uniform as possible. This requirement is generally more important than the precision of the
surface of the workpiece.
Workpiece surfaces that lack uniformity can be attributed to the following causes, for example:
● The part program to machine the workpiece contains a non-uniform geometry. This, most
notably, influences the profile of the curvature and torsion.
Note
The curvature k of a contour is the inverse of radius r of the adapted circle at a contour point
(k = 1/r). The torsion is the change in curvature (1st derivative).
As a result of the lack of uniformity in geometry, the machine's dynamic response limits are
reached when processing the part program - and axes are unnecessarily decelerated and
accelerated. Depending on the extent of the effective over-travel of the axes, this leads to
different deviations in contours.
● When an axis unnecessary brakes or accelerates, this can trigger machine vibration that
result in unwanted marks on the workpiece.
Basic functions
494 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Function
With the "Free-form surface mode: Basic functions" - for the active geometry axes and for active
orientation transformation of the rotary axes involved with the transformation - can be used to
define path velocity limits to make them less sensitive to small geometric fluctuations in
curvature and torsion without exceeding the machine's dynamic limits in terms of axis
acceleration and jerk.
This has the following advantages:
● Greater uniformity in the profile of the path velocity
● Greater uniformity in the surface of the workpiece
● Shorter machining time (if the dynamic response of the machine permits it)
Applications
The function is used to machine workpieces which primarily comprise free-form surfaces.
Requirements
The function can only be activated if the required memory capacity is reserved when
configuring the memory:
MD28610 $MC_MM_PREPDYN_BLOCKS = 10
The value entered specifies the number of blocks that have to be taken into consideration when
determining the path velocity (velocity preparation).
A sensible value is "10".
If MD28610 has a value of "0", only the motion of the axes in a particular block are taken into
consideration when determining the maximum velocity of the path for that particular block. If the
geometry of neighboring blocks is also taken into consideration when determining the velocity
of the path (value > 0), a more uniform path velocity is achieved.
Activation/deactivation
The function can be switched on or off independently for every dynamic response mode (see
Section "Dynamic response mode for path interpolation (Page 492)"):
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 495
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Index <n> Dynamic response mode <Value> Free-form surface mode: Basic func‐
tions
0 Standard dynamic response set‐ 0 Off
tings (DYNNORM) 1 On
1 Positioning mode, tapping 0 Off
(DYNPOS) 1 On
2 Roughing (DYNROUGH) 0 Off
1 On
3 Semi-finishing (DYNSEMIFIN) 0 Off
1 On
4 Finishing (DYNFINISH) 0 Off
1 On
5 Smooth-finishing (DYNPREC) 0 Off
1 On
Note
Due to the additional memory requirement, the function should only be activated in the relevant
processing channels.
Parameterization
Change in the contour sampling factor
The secant error which occurs during the interpolation of curved contours is dependent on the
following factors:
● Curvature
● Interpolator clock cycle (indicated in MD10071 $MN_IPO_CYCLE_TIME)
● Velocity with which the relevant contour is traversed
The maximum possible secant error is defined for each axis in the machine data:
MD33100 $MA_COMPRESS_POS_TOL (max. deviation with compression)
If the set interpolator clock cycle is not sufficiently small, the max. path velocity may be reduced
in the case of contours with higher levels of curvature. This is necessary for ensuring that the
surface of the workpiece is also produced with an adequate degree of precision in cases such
as these.
By changing the contour sampling factor, the time interval with which a curved contour is
sampled in the interpolator (contour sampling time) can be set differently than the interpolator
clock cycle. A contour sampling time which is shorter than the interpolator clock cycle can
prevent a reduction in path velocity in the case of contours with a higher level of curvature.
The contour sampling factor is set with machine data:
MD10682 $MN_CONTOUR_SAMPLING_FACTOR
The effective contour sampling time is calculated as follows:
Basic functions
496 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.4 Dynamic adaptations
Ts = f * T1
Note
MD10680 is specifically set for every control model, and cannot be changed.
Velocity limiting
The mode of velocity limiting due to curvatures can be specified for each dynamic response
mode with the following machine data:
MD22450 $MC_DYN_LIM_MODE [<n>] = <Value>
<Value> Meaning
=0 Velocity limitation is based on the axis-specific accelerations of the geometry axes involved
in the path
This setting increases path velocity as faster speeds are possible in a diagonal direction.
=1 Velocity limit is based on the geometric curvatures of the geometry axes involved in the path
This setting limits the path velocity at positions with diagonal and axis-parallel tangents
equally. The course of path velocity is thus smoother. This setting should therefore be se‐
lected for finishing.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 497
Continuous-path mode, exact stop, LookAhead
5.5 Compressor functions
Programming
Depending on the setting in machine data MD20606 $MC_PREPDYN_SMOOTHING_ON,
"Free-form surface mode: Basic functions" can be activated and deactivated in the part
program by changing the active dynamic response mode.
Example:
By assigning the parameters MD20606 $MC_PREPDYN_SMOOTHING_ON[2-5] = 1 and
MD20606 $MC_PREPDYN_SMOOTHING_ON[0-1] = 0, the function can be activated using
the commands DYNROUGH, DYNSEMIFIN, DYNFINISH and DYNPREC and deactivated using
the commands DYNNORM and DYNPOS.
See also
Rounding of tangential block transitions (G645) (Page 467)
Free-form surface mode: Extension function (Page 476)
5.5.1.1 Function
CAD/CAM systems generate a large number of linear and circular blocks, some of which with
very short path lengths, to describe complex contours. The maximum possible path velocity is
frequently limited by the block change time. As of a certain path velocity, not enough new
traversing blocks can be prepared in the preprocessing and switched to the main run.
Basic functions
498 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.5 Compressor functions
The compressor functions with their most important properties/attributes that are available are
listed in the following table:
If commands which are not traversing instructions are programmed in and between the
traversing blocks to be compressed (e.g. auxiliary function outputs, commands for activating
the absolute or chain dimensional notations, etc.), the compression process is interrupted. To
ensure that blocks can be compressed in the part program, only G0, G1, G2, G3, axis positions,
orientation vectors and feedrate values may be programmed. All other commands or G codes
will interrupt the compression and this can lead to a slowing down of the part program execution
for short paths.
The maximum tolerable deviation of the calculated path to the programmed positions can be
specified in machine data for all compressor functions (see "Parameterization (Page 500)").
Unlike COMPON and COMPCURV, the parameterized tolerances are not used in different
directions in neighboring paths with COMPCAD and COMPSURF.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 499
Continuous-path mode, exact stop, LookAhead
5.5 Compressor functions
Value Meaning
0xx Circular blocks and G0 blocks are not compressed. This is compatible with earlier SW
versions.
1xx Circular blocks are linearized and compressed by COMPCAD.
Advantage:
The compressor function operates more precisely and therefore creates generally better
surfaces.
Disadvantage:
The compressor function is more sensitive to defects in the NC programs. For reasons of
compatibility it might therefore be necessary to keep the setting 0xx.
2xx G0 blocks are compressed - it is possible that a different tolerance becomes effective (see
"Tolerances for rapid traverse movements (Page 514)").
Advantage:
As a result that the tolerance has been set higher and the compression of G0 infeed motion,
these can be more quickly and more fluidly executed.
3xx Combination of the two previous options: Circular blocks as well as G0 blocks are com‐
pressed.
Activation / deactivation
Compressor functions COMPON, COMPCURV, COMPCAD and COMPSURF are activated/
deactivated using the G commands of G group 30 (see "Programming (Page 502)").
5.5.1.2 Commissioning
Parameterization
Basic functions
500 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.5 Compressor functions
Note
Corner limit angle and compressor function COMPCAD
The corner limit angle for the compressor function COMPCAD set via the setting data SD42470
$SC_CRIT_SPLINE_ANGLE is only used as an approximate measure for corner detection. By
evaluating the plausibility, the compressor can also identify flatter block transitions as corners
and larger angles as outliers.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 501
Continuous-path mode, exact stop, LookAhead
5.5 Compressor functions
Recommended settings for tool and mold making with Advanced Surface / Top Surface
Compressor functions are very important in milling of free-form surfaces in tool and mold
making. If they are used as part of the option "Advanced Surface" or "Top Surface" for which
a license is required, please observe the setting recommendations! A special test program is
provided via the SIOS portal for checking the set machine and setting data.
→ Test program for Advanced Surface / Top Surface (https://support.industry.siemens.com/cs/
ww/en/view/109738423)
5.5.1.3 Programming
Syntax
COMPON / COMPCURV / COMPCAD / COMPSURF
...
COMPOF
Meaning
Note
The rounding function G642 and jerk limitation SOFT further improve the surface quality. These
commands must be written at the beginning of the program.
Example: COMPCAD
Program code Comment
N10 G00 X30 Y6 Z40
N20 G1 F10000 G642 ; Activation: Rounding function G642
N30 SOFT ; Activation: Jerk limitation SOFT
N40 COMPCAD ; Activation: Compressor function COMPCAD
N50 FIFOCTRL
Basic functions
502 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.5 Compressor functions
Syntax
COMPCAD / COMPSURF
...
COMPOF
Meaning
Note
The smoothing function G642 and jerk limitation SOFT further improve the surface quality.
These commands must be written at the beginning of the program.
Example: COMPCAD
Program code Comment
N10 G00 X30 Y6 Z40
N20 G1 F10000 G642 ; Activation: Smoothing function G642
N30 SOFT ; Activation: Jerk limitation SOFT
N40 COMPCAD ; Activation: Compressor function COMPCAD
N50 FIFOCTRL
N24050 Z32.499 ; 1st traversing block
N24051 X41.365 Z32.500 ; 2nd traversing block
...
N99999 X... Z... ; last traversing block
COMPOF ; compressor function off.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 503
Continuous-path mode, exact stop, LookAhead
5.5 Compressor functions
Function
When spline blocks are generated to describe complex contours using CAD/CAM systems,
spline blocks with very short path lengths occur between spline blocks with long path lengths.
These force the control to significantly reduce the path velocity. The functions for the
compression of short spline blocks generate new spline blocks with the longest possible path
lengths.
Commissioning
Activation
The compression of short spline blocks can be activated for the following spline types:
● BSPLINE
● BSPLINE/ORICURVE
● CSPLINE
It is activated in the channel-specific machine data:
Basic functions
504 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.5 Compressor functions
Boundary conditions
● If commands that are not traverse commands, e.g. auxiliary function outputs, are
programmed in and between the traversing blocks to be compressed, the spline blocks
cannot be combined.
● The maximum number of blocks that can be combined into a program section in succession,
depends on the parameterized size of the block memory available in the block preparation.
MD28070 $MC_MM_NUM_BLOCKS_IN_PREP (number of blocks for block preparation)
Example
To achieve a higher path velocity when executing the traversing blocks, compression for short
spline blocks is activated for BSPLINE interpolation:
MD20488 $MC_SPLINE_MODE, Bit 0 = 1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 505
Continuous-path mode, exact stop, LookAhead
5.6 Contour/Orientation tolerance
5.6.1 Commissioning
Machine data
Smoothing mode
MD20480 $MC_SMOOTHING_MODE (smoothing behavior with G64x)
Compressor mode
MD20482 $MC_COMPRESSOR_MODE (mode of compression)
Smoothing G645
MD33120 $MA_PATH_TRANS_POS_TOL (maximum contour deviation for smoothing G645)
Effective for smoothing tangential, but not continuously curved block transitions (e.g. circle -
straight line)
Setting data
Basic functions
506 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.6 Contour/Orientation tolerance
5.6.2 Programming
Syntax
CTOL=<Value>
OTOL=<Value>
ATOL[<Axis>]=<Value>
Meaning
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 507
Continuous-path mode, exact stop, LookAhead
5.6 Contour/Orientation tolerance
Note
The channel-specific tolerance values programmed with CTOL and OTOL have higher priority
than the axis-specific tolerance values programmed with ATOL.
Note
Scaling frames
Scaling frames affect programmed tolerances in the same way as axis positions; in other
words, the relative tolerance remains the same.
Basic functions
508 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.6 Contour/Orientation tolerance
Example
Program code Comment
COMPCAD G645 G1 F10000 ; Activate COMPCAD compressor function.
X... Y... Z... ; The machine and setting data is applied here.
X... Y... Z...
X... Y... Z...
CTOL=0.02 ; A contour tolerance of 0.02 mm is applied start-
ing from here.
X... Y... Z...
X... Y... Z...
X... Y... Z...
ASCALE X0.25 Y0.25 Z0.25 ; A contour tolerance of 0.005 mm is applied start-
ing from here.
X... Y... Z...
X... Y... Z...
X... Y... Z...
CTOL=–1 ; The machine and setting data is applied again
starting from here.
X... Y... Z...
X... Y... Z...
X... Y... Z...
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 509
Continuous-path mode, exact stop, LookAhead
5.6 Contour/Orientation tolerance
System variables
Note
If now tolerance values have been programmed, the $A variables are not differentiated enough
to distinguish the tolerance of the individual functions.
Circumstances like this can occur if the machine data and the setting data set different
tolerances for compressor functions, smoothing and orientation smoothing. The system
variables then return the greatest value occurring with the functions that are currently active.
For example, if a compressor function is active with an orientation tolerance of 0.1° and
ORISON orientation smoothing with 1°, the $AC_OTOL variable will return the value "1." If
orientation smoothing is deactivated, $AC_OTOL returns a value value "0.1."
Basic functions
510 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
Supplementary conditions
The tolerances programmed with CTOL, OTOL and ATOL also affect functions that indirectly
depend on these tolerances:
● Limiting the chord error in the setpoint value calculation
● The basic functions of the free-form surface mode
The following smoothing functions are not affected by the programming of CTOL, OTOL and
ATOL:
● Smoothing the orientation with OSD
OSD does not use a tolerance, it uses a distance from the block transition.
● Smoothing with G644
G644 is not used for smoothing, it is used for optimizing tool changes and other motion not
involving machining.
● Smoothing with G645
G645 virtually always behaves like G642 and, thus, uses the programmed tolerances. The
tolerance value from machine data MD33120 $MA_PATH_TRANS_POS_TOL is only used
in uniformly tangential block transitions with a jump in curvature, e.g. a tangential circle/
straight line transition. The rounding path at these points may also be located outside the
programmed contour, where many applications are less tolerant. Furthermore, it generally
takes a small, fixed tolerance to compensate for the sort of changes in curvature which need
not concern the NC programmer.
5.7.1 Function
Application
Rapid traversing movements are used for the following tasks, for example:
● Quickly positioning of the tool
● Passing around the workpiece
● Approaching tool change points
● Retracting the tool
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 511
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
Note
Rapid traversing movements are not suitable for workpiece machining!
Activation
Rapid traverse is activated by programming of G0 in the part program (see "Programming
(Page 516)").
Liner/non-linear interpolation
Path axes can be traversed in linear or non-linear interpolation mode in rapid traverse
movement.
=
<
;
Linear interpolation
Properties:
● The path axes are interpolated together.
● The tool movement programmed with G0 is executed at the highest possible velocity (rapid
traverse).
Basic functions
512 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
Non-linear interpolation
Properties:
● Each path axis interpolates as a single axis (positioning axis) independently of the other
axes at the axis-specific rapid traverse velocity.
● The channel-specific "Delete distance-to-go" command via the PLC and synchronized
action is applied to all positioning axes that were programmed as path axes.
In non-linear interpolation, with reference to the axis-specific jerk, one of the following two
settings applies alternatively:
● Positioning axis commands BRISKA, SOFTA, DRIVEA
● Machine data:
– MD32420 $MA_JOG_AND_POS_JERK_ENABLE
– MD32430 $MA_JOG_AND_POS_MAX_JERK
The existing system variables which refer to the distance-to-go ($AC_PATH, $AC_PLTBB and
$AC_PLTEB) are supported.
CAUTION
Risk of collision
Since the tool movement for non-linear interpolation can differ from the tool movement for
linear interpolation, synchronous actions relative to the coordinates of the path movement
may not become active.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 513
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
Independently of the default setting, the desired interpolation response can also be set in the
part program (see "Switch on/off linear interpolation for rapid traverse movements (RTLION,
RTLIOF) (Page 518)").
Advantage
Greater G0 tolerances allow a faster traversing of G0 blocks.
Prerequisites
G0 tolerances are only effective in compliance with the following conditions:
● One of the following functions is active:
– Compressor function COMP...
– Smoothing function G642 or G645
– Orientation smoothing OST
– Orientation smoothing ORISON
– Smoothing for path-relevant orientation ORIPATH
● Several (≥ 2) consecutive G0 blocks in the part program.
For a single G0 block, the G0 tolerances are not effective, as at the transition from a non G0
motion to a G0 motion (and vice versa), the "lower tolerance" always applies (workpiece
processing tolerance)!
Basic functions
514 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
5.7.2 Commissioning
<Value> Meaning
0 In the rapid traversing mode (G0) the non-linear interpolation is active.
Path axes are traversed as positioning axes.
1 In the rapid traversing mode (G0) the linear interpolation is active.
The path axes are interpolated together.
G0 tolerances
Relative G0 tolerance
Tolerances for rapid traverse movements can be set relative to the workpiece processing
tolerances via a channel-specific tolerance factor:
MD20560 $MC_G0_TOLERANCE_FACTOR (tolerance factor for G0)
The tolerance factor can be both greater or less than 1.0. If the factor is equal to 1.0 (default
value), then the same tolerances are active for rapid traverse movements as for non-rapid
traverse movements. Normally, the tolerance factor is set to > 1.0.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 515
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
Absolute G0 tolerances
Alternatively, the channel-specific tolerances for rapid traverse movements can also be set
absolute and separate for contour tolerance and orientation tolerance:
● MD20561 $MC_G0_TOLERANCE_CTOL_ABS (contour tolerance for G0 movements) =
<Value>
<Value> Meaning
= 0 (default) The contour tolerance for G0 movements is determined by the relative G0 tol‐
erance.
>0 The contour tolerance for G0 movements is defined with the value of MD20651.
<Value> Meaning
= 0 (default) The orientation tolerance for G0 movements is determined by the relative G0
tolerance.
>0 The orientation tolerance for G0 movements is defined with the value of
MD20652.
5.7.3 Programming
Syntax
G0 X… Y… Z…
G0 RP=… AP=…
Meaning
Basic functions
516 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
Examples
Example 1: Milling
<
1
1
;
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 517
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
Example 2: Turning
;
1
1
=
5.7.3.2 Switch on/off linear interpolation for rapid traverse movements (RTLION, RTLIOF)
Independently of the default setting (MD20730 $MC_G0_LINEAR_MODE), the interpolation
response for rapid traverse movements can also be set in the part program using the
commands of the G group 55.
Syntax
RTLIOF
...
RTLION
Basic functions
518 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
Meaning
Note
Preconditions for RTLIOF
To ensure, with RTLIOF non-linear interpolation, the following conditions must be fulfilled:
● No transformation (TRAORI, TRANSMIT, etc.) active.
● G60 active (stop at the block end).
● No compressor active (COMPOF).
● No tool radius compensation active (G40).
● No contour handwheel selected.
● No nibbling active.
If one of these conditions is not met, linear interpolation is as with RTLION.
Example
Program code Comment
; Linear interpolation is the default:
; MD20730 $MC_GO_LINEAR_MODE == TRUE
...
N30 RTLIOF ; Switch off linear interpolation.
N40 G0 X0 Y10 ; G0 blocks are traversed using non-linear inter-
polation.
N50 G41 X20 Y20 ; TRC active ⇒ G0 blocks are traversed using lin-
ear interpolation.
N60 G40 X30 Y30 ; TRC not active ⇒ G0 blocks are traversed using
non-linear interpolation.
N70 RTLION ; Switch on linear interpolation.
...
Further information
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 519
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
5.7.3.3 Adapt tolerances for rapid traverse motion (STOLF, CTOLG0, OTOLG0)
The tolerances for rapid traverse motion (G0 tolerances) configured using machine data can be
temporarily adapted in the part program. In so doing, the settings in the machine data are not
changed. After channel or end of program reset, the configured tolerances become effective
again.
Requirements
G0 tolerances are only effective in compliance with the following conditions:
● One of the following functions is active:
– Compressor function COMP...
– Smoothing function G642 or G645
– Orientation smoothing OST
– Orientation smoothing ORISON
– Smoothing for path-relevant orientation ORIPATH
● Several (≥ 2) consecutive G0 blocks in the part program.
For a single G0 block, the G0 tolerances are not effective, as at the transition from non G0
motion to G0 motion (and vice versa), the "lower tolerance" always applies (workpiece
processing tolerance)!
Syntax
Basic functions
520 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
Meaning
STOLF: Address for programming a temporarily effective tolerance factor for rapid traverse motion
<Value>: G0 tolerance factor
Type: REAL
Value: ≥ 0: The G0 tolerance factor can be greater or less than 1.0. If
the factor is equal to 1.0 (default value), then the same
tolerances are active for rapid traverse motion as for non-
rapid traverse motion. Normally, the tolerance factor is set
to > 1.0.
The programmed G0 tolerance factor remains effective
until it is overwritten by renewed STOLF programming,
replaced by CTOLG0/OTOLG0 programming or deleted
by channel or end of program reset.
< 0: the programmed tolerance factor is deleted
⇒ The tolerance value preset in the machine data becomes
effective again.
CTOLG0: Address for programming a temporarily effective contour tolerance factor for rapid traverse
motion
<Value>: Absolute value for the contour tolerance
Type: REAL
Value: ≥ 0: The programmed absolute value for the contour tolerance
remains effective until it is overwritten by renewed
CTOLG0 programming, replaced by STOLF programming
or deleted by channel or end of program reset.
< 0: the programmed tolerance value is deleted
⇒ The tolerance value preset in the machine data becomes
effective again.
OTOLG0: Address for programming a temporarily effective orientation tolerance factor for rapid tra‐
verse motion
<Value>: Absolute value for the orientation tolerance
Type: REAL
Value: ≥ 0: The programmed absolute value for the orientation toler‐
ance remains effective until it is overwritten by renewed
OTOLG0 programming, replaced by STOLF programming
or deleted by channel or end of program reset.
< 0: the programmed tolerance value is deleted
⇒ The tolerance value preset in the machine data becomes
effective again.
Note
The last programmed address always has priority, as shown in the following examples:
● When CTOLG0 is programmed with active STOLF, the tolerance value programmed with
CTOLG0 is applied to smooth the contour.
● When OTOLG0 is programmed with active STOLF, the tolerance value programmed with
OTOLG0 is applied to smooth the orientation.
● After programming STO again, the tolerance factor for the contour and orientation tolerance
is applied.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 521
Continuous-path mode, exact stop, LookAhead
5.7 Rapid traverse movements
Examples
Basic functions
522 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.8 RESET behavior
Further information
● In synchronized actions or with preprocessing stop in the part program via system variable:
$AC_STOLF Active G0 tolerance factor
G0 tolerance factor, which was effective when processing the
actual main run block.
● In synchronized actions or with preprocessing stop in the part program via the system
variables:
$AC_CTOL_G0_ABS Active contour tolerance for G0 motion
G0 contour tolerance that was active when the current main
run block was preprocessed.
$AC_OTOL_ G0_ABS Active orientation tolerance for G0 motion
G0 orientation tolerance that was active when the current
main run block was preprocessed.
MD20150
With the reset (channel or mode group reset), the initial setting parameterized channel-
specifically becomes effective for all G groups:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 523
Continuous-path mode, exact stop, LookAhead
5.9 Supplementary conditions
Basic functions
524 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.10 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 525
Continuous-path mode, exact stop, LookAhead
5.10 Data lists
Basic functions
526 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Continuous-path mode, exact stop, LookAhead
5.10 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 527
Continuous-path mode, exact stop, LookAhead
5.10 Data lists
Basic functions
528 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel program coordination and channel-by-
channel running-in 6
6.1 Cross-channel program coordination
Requirement
All the channels involved in the program coordination must belong to the same mode group:
MD10010 $MC_ASSIGN_CHAN_TO_MODE_GROUP[<Channel>] = <Mode group number>
Note
Minimum distance between commands
At least two traversing block distances must be maintained between the commands INIT,
START, WAITE, WAITM, SETM, CLEARM and the command WAITMC. WAITMC is an executable
block, but is moved into the previous block for optimization, and then deleted as a block. SETM
for example is not an executable block, and is moved into the next block so that if there were
a distance of one block between two commands, both commands would be in the middle block.
As only one block is possible, optimization is not performed with a one block distance
for WAITMC.
This stops the program, and processing is briefly interrupted.
Syntax
INIT(<ChanNo>, <Prog>, <AckMode>)
START(<ChanNo>, <ChanNo>, ...)
WAITM(<MarkNo>, <ChanNo>, <ChanNo>, ...)
WAITE(<ChanNo>, <ChanNo>, ...)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 529
Cross-channel program coordination and channel-by-channel running-in
6.1 Cross-channel program coordination
Meaning
INIT(): Predefined procedure for selecting the NC program that is to be executed in the speci‐
fied channel
START(): Predefined procedure for starting the selected program in the respective channel
WAITM(): Predefined procedure to wait for a wait marker to be reached in the specified channels
The specified wait marker is set by WAITM in the same channel. The previous block is
terminated with exact stop. The wait marker is deleted after synchronization.
A maximum of 10 markers can be set simultaneously in each channel.
WAITE(): Predefined procedure to wait for the end of program in one or more other channels
WAITMC(): 1) Predefined procedure to wait for a wait marker to be reached in the specified channels
In contrast to WAITM, the braking of the axes to exact stop is only initiated if the other
channels have not yet reached the wait marker.
SETM(): 1) Predefined procedure to set one or more wait markers for the channel coordination
The processing in own channel is not affected by this.
SETM remains valid after a channel reset and NC start.
CLEARM(): 1)
Predefined procedure to delete one or more wait markers for the channel coordination
The processing in own channel is not affected by this.
CLEARM() deletes all wait markers in the channel.
CLEARM(0) only deletes wait marker "0".
CLEARM remains valid after a channel reset and NC start.
<ChanNo>: Channel number
The number of the own channel does not have to be specified.
Type: INT
<Prog>: Absolute or relative path specification (optional) + program name
Type: STRING
Information relating to path data, see the Programming Manual NC Programming,
Chapter "Addressing program memory files".
<AckMode>: Acknowledgment mode (optional)
Type: CHAR
Val‐ "N" Without acknowledgment
ues: The program execution is continued after the command has been sent.
The sender is not informed if the command cannot be executed suc‐
cessfully.
"S" Synchronous acknowledgment
The program execution is stopped until the receiving component has
acknowledged the command. If the acknowledgment is positive, the
next command is executed. If the acknowledgment is negative, an error
message is output.
Basic functions
530 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel program coordination and channel-by-channel running-in
6.1 Cross-channel program coordination
Examples
START using local "channel names", user variables and parameterized channel names
Program code
INIT(2,"/_N_WCS_DIR/_N_SHAFT1_WPD/_N_CUT1_MPF")
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 531
Cross-channel program coordination and channel-by-channel running-in
6.1 Cross-channel program coordination
Program code
INIT(2,"MYPROG")
● Channel 2: In channel 1, the program MPF200_MPF is selected and started for channel 2
using blocks N10 and N20.
Basic functions
532 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel program coordination and channel-by-channel running-in
6.1 Cross-channel program coordination
1 1
:$,70 :$,70
&KDQQHO
1
03) 1
0
:DLWLQJ
&KDQQHO 1
1 1
03) :DLWLQJ :DLWLQJ 0
Boundary conditions
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 533
Cross-channel program coordination and channel-by-channel running-in
6.1 Cross-channel program coordination
See also
Conditional wait (WAITMC) in the continuous path mode (Page 534)
Programming: Fetching an axis (GET, GETD) (Page 551)
Requirement
The following functions must be active in the channel:
● Continuous-path mode (G64, G641, G642, G643, G644 or G645)
● "LookAhead" function
Braking behavior
No braking
Starting with the motion block before the WAITMC call, the wait markers of the other channels
to be synchronized are checked. If these are already available, no braking is performed:
Y
:$,70&
Figure 6-1 Change of the path velocity for the conditional waiting with WAITCM: Wait markers for all
channels already available
Short-time braking
If the wait marker for a channel to be synchronized is missing, braking will be started. During
braking, a check is made in each interpolator cycle as to whether the still missing wait markers
have been received in the meantime. If this is the case, then the axis accelerates back to the
programmed velocity:
Basic functions
534 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel program coordination and channel-by-channel running-in
6.1 Cross-channel program coordination
Y
:$,70&
Figure 6-2 Change of the path velocity for the conditional waiting with WAITCM: The last wait marker
arrives during braking
Y
:$,70&
6WDQGVWLOO
Figure 6-3 Change of the path velocity for the conditional waiting with WAITCM: The last wait marker
arrives after the braking
Channel 1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 535
Cross-channel program coordination and channel-by-channel running-in
6.1 Cross-channel program coordination
Channel 2
Channel 3
Basic functions
536 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel program coordination and channel-by-channel running-in
6.1 Cross-channel program coordination
&RQGLWLRQIXOILOOHG :+(1FRQGLWLRQ!
&KDQQHO '26(70
&KDQQHO 6(70 6(70
&KDQQHO
3DWKYHORFLW\
1REUDNLQJ
&KDQQHO
Figure 6-4 Conditional wait in path-controlled operation with three involved channels (schematic)
Note
For an active G64, WAITMC does not to create a dedicated block, but instead, is added to the
previous block. A drop in velocity must be prevented when continuous-path mode is active.
A WAITMC is therefore fulfilled if the preceding block is stopped, e.g. by a read-in disable.
Channel 2
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 537
Cross-channel program coordination and channel-by-channel running-in
6.2 Running-in channel-by-channel
Channel 3
Comment
; During traversing read-in disable M555
N300 ; Machining in channel 3
N312 G18 G64 D1 X180 Z300 M555
N320 WAITMC(1,2,3) ; Wait because of read-in inhibit
6.2.1 Function
The "channel-by-channel running-in" function is used to test or run-in the NC programs of one
or more channels that are synchronized with each other. The programmed traversing motion of
the channel axes and/or spindles in the channels, which are in the "Normal operating" state,
results in the machine axes traversing. The following applies to channels that are in the
"Program test" state:
● In the default setting, for axes for normal operation, identical setpoints are generated,
however, these are not output at the machine axes .
● In the default setting, the setpoints for spindles are output at the machine axes.
● The displayed actual values of the inhibited axes/spindles are internally generated from
setpoints.
● The commands for channel synchronization are processed normally.
● The NC/PLC interface signals are processed normally.
● The processing time of the program is the same as in normal operation.
Temporarily when required, the "Program test" state can be exited on an axis-for-axis basis.
The setpoints are then output again on the machine axes so that they are really traversed on
the machine.
Basic functions
538 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel program coordination and channel-by-channel running-in
6.2 Running-in channel-by-channel
6.2.2 Sequence
Normally, a channel moves a tool in the working area. If several channels are each moving a
tool in the same working area, the tool movements must be synchronized. The following
synchronizations are possible:
● Channel synchronization via the program coordination commands WAITM, WAITMC, WAITE,
START.
● Channel synchronization via the PLC user program and NC/PLC interface signals. For
example, via M function output from the channel to the PLC and read-in disable from the
PLC to the channel.
● Axis interchange: The channel waits until the other channel relinquishes the axis.
● Synchronization by means of global variables in the NC program.
● Cross-channel couplings
● Axis container rotation
● Testing the program including the parallel synchronized actions in the main run and
synchronization of the synchronized actions with the channel.
Under these general conditions, it is almost impossible to just start one channel - it would
remain stationary at the first synchronization location.
Using the "Channel-by-channel running-in", function, all of the required channels can be started
so that only those channels receive the traversing enable signals, whose interaction of the
programmed traversing motion are to be tested. The other channels are then in the "program
test" state.
To do this, before starting the channels, the machine operator must define the channels that are
to be traversed under "Program test". This is made from the user interface in the "Program
controls" menu.
Selection
"Program test" (PRT) for the channel displayed in the "Machine" basic display is selected via
the user interface, e.g. SINUMERIK Operate:
1. Softkey: Operating area "Machine" > "Program control"
2. "Program controls" menu: Select check box "Program test (PRT)".
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 539
Cross-channel program coordination and channel-by-channel running-in
6.2 Running-in channel-by-channel
Note
Default state of traversing motion
The default state regarding traversing motion after selecting "Program test" in the channel is:
● Axes: Inhibited
● Spindles: Enabled
Note
Automatic transfer of the interface signals
The HMI request signals DB21, ... DBX128.0 / .1 are only transferred from the basic PLC
program to the PLC request signals DB21, ... DBX14.0 / .1 if FB1 parameter MMCToIF is set
to TRUE. If the parameters are not set, then the PLC request signals must be set by the PLC
user program.
Basic functions
540 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel program coordination and channel-by-channel running-in
6.2 Running-in channel-by-channel
NOTICE
Spindle traversing motion
Traversing motion of the spindles of the channel is enabled in the "Program test" as default
setting.
Selection
"Program test" (PRT) for one or several channels parameterized in the control is selected via
the user interface, e.g. SINUMERIK Operate:
1. Softkey: Operating area "Machine" > "Program control"
2. Softkey: "Running-in"
3. "Program controls" menu: Deselect group "Running-in” > Check box "Channel x".
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 541
Cross-channel program coordination and channel-by-channel running-in
6.2 Running-in channel-by-channel
Note
Default state of traversing motion
The default state regarding traversing motion after selecting "Program test" in the channel is:
● Axes: Inhibited
● Spindles: Enabled
Basic functions
542 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel program coordination and channel-by-channel running-in
6.2 Running-in channel-by-channel
Note
Automatic transfer of the interface signals
The HMI request signals DB21, ... DBX128.0 / .1 are only transferred from the basic PLC
program to the PLC request signals DB21, ... DBX14.0 / .1 if FB1 parameter MMCToIF is set
to TRUE. If the parameters are not set, then the PLC request signals must be set by the PLC
user program.
NOTICE
Spindle traversing motion
Traversing motion of the spindles of the channel is enabled in the "Program test" as default
setting.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 543
Cross-channel program coordination and channel-by-channel running-in
6.2 Running-in channel-by-channel
● Without preprocessing stop in the part program via the system variable:
$P_ISTEST Supplies TRUE (1), if the "program test" state for the channel is active.
Example
The channel runs under "program test" and axis "C" was withdrawn using "suppress program
test". A query using system variables then supplies the following result:
● $AC_ISTEST == TRUE
● $P_ISTEST == TRUE
● $AA_ISTEST[C] == FALSE
Basic functions
544 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel program coordination and channel-by-channel running-in
6.2 Running-in channel-by-channel
6.2.7 Examples
Example 1: Channel 2 is to be tested in a 3-channel system.
Test option 1: Program test without SERUPRO
1. The user decides which axes/spindles should actually be physically traversed. "Suppress
program test" is set for these axes.
2. The "program test" state is selected for channels 1 and 3.
3. Channels 1, 2 and 3 are started via the PLC.
4. "Program test" can be selected again after the end of the program.
5. If the actual setting of "suppress program test" is also practical for other situations (channel
1 or channel 3 are to be tested), then this signal can remain set. This is certainly practical
in many cases.
Test option 2: Program test with SERUPRO
1. The user decides which axes/spindles should actually be physically traversed. "Suppress
program test" is set for these axes.
2. The "program test" state is selected for channels 1 and 3.
3. Channels 1, 2 and 3 are started via the PLC.
4. A fault or an alarm occurs, the user interrupts with RESET.
5. SERUPRO at the interruption location of all 3 channels.
6. Search destination has been reached in all 3 channels.
7. Start all 3 channels.
8. Channels 1 and 3 are now again in "program test" and "channel-by-channel running-in" is
continued.
With this sequence, the program moves to position 1010, i.e. the simulated component "1000"
of this axis is moved after activating "suppress program test".
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 545
Cross-channel program coordination and channel-by-channel running-in
6.3 Supplementary conditions
In block N20040, machine axis AX1 is interchanged to channel 2, the last position of the axis
from channel 1 is taken over and the axis traversed to position 110.
Example
Before an NC start, the MDI block buffer contains the following blocks:
Basic functions
546 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel program coordination and channel-by-channel running-in
6.3 Supplementary conditions
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 547
Cross-channel program coordination and channel-by-channel running-in
6.3 Supplementary conditions
Basic functions
548 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange 7
7.1 Overview
Note
Spindles
The following statements and functions regarding the "axis replacement" function for axes also
apply to spindles.
Each axis must be assigned to a channel during control commissioning. The axis can only be
traversed, for example, by part programs or synchronized actions from the channel to which the
axis is assigned. With the "axis replacement" function, it is possible to enable an axis and to
allocate it to another channel, that is, to replace the axis. Only than can the axis be traversed
by another channel.
Axis states
As part of the "axis replacement" function, an axis can have the following states:
● "Channel axis"
A channel axis is an axis that is assigned to a channel. It can be traversed via a part program
or manually.
● "PLC axis"
A PLC axis is an axis that is assigned to the PLC. It can only be traversed by the PLC user
program or function block FC18.
● "Neutral axis"
A neutral axis is an axis that is not currently assigned to a channel or the PLC. Before
traversing, it must first be requested by a channel or the PLC.
● "Axis in another channel"
An axis is in this state if a channel has requested the axis. However, it could not yet be
assigned to it because it is still occupied by another channel.
7.2 Commissioning
Parameter assignment
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 549
Cross-channel axis interchange
7.3 Programming: Releasing an axis (RELEASE)
System variable
Axis-specific system variable
● Axis type in relation to axis replacement:
$AA_AXCHANGE_TYP[<axis>]
● Axis replacement status of the axis:
$AA_AXCHANGE_STAT[<axis>]
Function
An axis that is assigned to the current channel is released for an axis interchange via the
predefined RELEASE() procedure and put into the "neutral axis" state for this purpose.
Syntax
RELEASE(<axis1>[, axis2 ... axis15])
Meaning
Basic functions
550 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.4 Programming: Fetching an axis (GET, GETD)
Supplementary conditions
No enable possible
● The axis is involved in a transformation.
● The axis belongs to an axis grouping.
Function
With the predefined GET() procedure, an axis is requested for the same channel.
In the channel, to which the axis is currently assigned, the axis must be released in a part
program or synchronized action for axis interchange with RELEASE().
After axis interchange, the axis has "channel axis" status.
Syntax
GET(<axis1>[, axis2 ... axis15])
Meaning
Supplementary conditions
Axis interchange is delayed in the following situations:
● The axis has not yet been released with RELEASE by the channel to which it is assigned.
● A change of measuring system has not yet been completed.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 551
Cross-channel axis interchange
7.4 Programming: Fetching an axis (GET, GETD)
● The change of status of the controller enable has not yet been completed (transition of rules
to follow-up/stop and vice versa).
● The NC/PLC interface signal "axis or spindle disable" is pending (DB31, ... DBX1.3 == 1)
● The current traversing movement (interpolation) of the axis has not yet been completed.
Function
An axis that is not assigned to the current channel is required for the following machining
section of a part program. With the predefined procedure GETD(), the axis is fetched directly
from the channel to which the axis is assigned. For this purpose, the axis does not have to be
released by this channel with RELEASE().
After axis interchange, the axis has "channel axis" status.
Depending on the state of the axis in the relinquishing channel, a preprocessing stop is
triggered in this channel (STOPRE):
● "Channel axis" status ⇒ preprocessing stop
● "Neutral axis" status ⇒ no preprocessing stop
To coordinate transfer of the axis between the channels with GETD(), we recommend using
channel synchronization (Page 529) between the requesting and the relinquishing channel.
NOTICE
Preprocessing stop in the relinquishing channel
If the axis in the relinquishing channel has "channel axis" status, a preprocessing stop will be
triggered in this channel (STOPRE):
Syntax
GETD(<axis>)
Meaning
Supplementary condition
If the axis has "PLC axis" status in the relinquishing channel, the axis must be released for axis
interchange by the PLC user program.
Basic functions
552 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.5 Automatic axis replacement
Supplementary conditions
Channel reset
● If a channel reset is triggered in the channel that requested the axis, axis interchange is
canceled.
● A replaced axis remains assigned to the channel that last requested it even after a channel
reset.
Function
Automatic axis replacement or automatic fetching of an axis into the current channel is
performed if the axis is programmed in the part program or synchronized action, but it is not
assigned to the channel at the moment.
Requirement
Parameterization of automatic axis replacement by GET() or GETD():
MD30552 $MA_AUTO_GET_TYPE (Page 549)
Supplementary conditions
See Description (Page 551) of GETD().
Examples
Example 1
Example 2
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 553
Cross-channel axis interchange
7.6 Axis replacement via PLC
Example 3
*) If the axis has not yet been synchronized, a separate block is generated for automatic
fetching of the axis using (GET() or GETD().
Function
Axis replacement can be requested by the PLC user program via the NC/PLC interface:
● From an NC channel to the PLC
● From the PLC to an NC channel
● From an NC channel to another NC channel
'%'%%3/&ൺ1&
%LW
5HTXLUHPHQW&KDQQHOQXPEHURIWKH
FKDQQHOWRZKLFKWKHD[LVLVWREHDVVLJQHG
5HTXLUHPHQW6ZLWFKRYHUD[LV
5HTXHVWIURP3/&ൺ
$FNQRZOHGJPHQWE\1&ൺ
5HTXLUHPHQW$[LVW\SH3/&D[LV
Figure 7-1 Axis replacement request: DB31, ... DBB8 (PLC → NC)
Basic functions
554 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.6 Axis replacement via PLC
'%'%%1&ൺ3/&
%LW
&KDQQHOQXPEHURIWKHFKDQQHOWR
ZKLFKWKHD[LVLVDVVLJQHG
1HZD[LVW\SHUHTXHVWHGE\WKH3/&
$[LVUHSODFHPHQWLVSRVVLEOH
1HXWUDOD[LV
$[LVW\SH
3/&D[LV
Figure 7-2 Axis replacement status: DB31, ... DBB68 (NC → PLC)
Examples
Example 1
Axis replacement of an axis from channel 1 to channel 2 by means of RELEASE() and GET()
in part programs that are executed in each channel:
● Channel 1: RELEASE(<axis>)
● Channel 2: GET(<axis>)
'%'%% '%'%%
$IWHUSRZHURQ
FKDQQHOD[LVLQ.
.5(/($6($;
7LPH
.*(7$;
Example 2
Status change of an axis assigned to channel 1 from "NC axis" to "PLC axis" by the PLC user
program.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 555
Cross-channel axis interchange
7.6 Axis replacement via PLC
'%'%% '%'%%
7LPH
$IWHUSRZHURQ
FKDQQHOD[LVLQ.
5HTXHVWE\3/&
1HZ7<33/&D[LV
5HTXHVWGHWHFWHG
$[LVUHSODFHPHQWSRVVLEOH
5HTXHVWE\1&UHVHW
3/&D[LVLQ.
Example 3
Status change of an axis assigned to channel 1 from "NC axis" via "PLC axis" to "neutral axis"
by the PLC user program.
'%'%% '%'%%
$IWHUSRZHURQ
7LPH
FKDQQHOD[LVLQ.
5HTXHVWE\3/&
1HZ7<33/&D[LV
5HTXHVWGHWHFWHG
$[LVUHSODFHPHQWSRVVLEOH
5HTXHVWE\1&UHVHW
3/&D[LVLQ.
5HTXHVWE\3/&
1HZ7<31HXWUDOD[LV
5HTXHVWGHWHFWHG
$[LVUHSODFHPHQWSRVVLEOH
1HXWUDOD[LVLQ 5HTXHVWE\1&UHVHW
.
Basic functions
556 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.8 Axis replacement with and without preprocessing stop
Note
The implicit assignment of an axis to a channel is notpossible if the axis in the state "main run
axis" (e.g. is a PLC axis). In order to be able to participate in the axis container rotation, the axis
must first exit the state.
For further explanations on the axis replacement of container axes (see Section "B3:
Distributed systems").
Activation
Axis interchange using axis container rotation and implicit GET/GETD is activated using
machine data MD10722 $MN_AXCHANGE_MASK, bit 1=1.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 557
Cross-channel axis interchange
7.8 Axis replacement with and without preprocessing stop
Activation
Replacement without preprocessing and checking of the current states is activated with
machine data MD10722 $MN_AXCHANGE_MASK, Bit 2=1.
Example
Activating an axis replacement without a preprocessing stop
Table 7-1
N010 M4 S1000
N011 G4 F2
N020 M5
N021 SPOS=0
N022 POS[B]=1
N023 WAITP(B) ; Axis b becomes the neutral axis
N030 X1 F10
N031 X100 F500
N032 X200
N040 M3 S500
N041 G4 F2
N050 M5
N099 M30
If the spindle (axis B) is traversed immediately after block N023 as a PLC axis to 180° and back
to 1°, and then again to the neutral axis, block N040 does not trigger a preprocessing stop nor
a reorganization.
Basic functions
558 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.9 Axis exclusively controlled from the PLC
Function
After the control boots, the axis is in the "neutral axis" state. The PLC controls it. To traverse the
axis as competing positioning axis (from the PLC via function block FC18), the axis must first
be explicitly requested from the PLC.
Note
Per machine data, the axis interchange to the PLC can be exclusively restricted to PLC
controlled axes: MD10722 $MN_AXCHANGE_MASK, Bit 3 = 1
Parameter assignment
Parameterizing an axis as axis that is exclusively controlled from the PLC is realized using the
axis-specific machine data:
MD30460 $MA_BASE_FUNCTION_MASK, Bit 4 = 1
Control by PLC
The traversing behavior of an axis exclusively controlled from the PLC is only influenced by the
axial NC/PLC interface signals:
● DB31, ... DBX28.1 (reset)
● DB31, ... DBX28.2 (continue)
● DB31, ... DBX28.6 (stop along braking ramp)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 559
Cross-channel axis interchange
7.10 Axis permanently assigned to the PLC
Function
After the control has booted, the axis is in the "neutral axis" state and is controlled from the NC
channel. To traverse the axis as competing positioning axis (from the PLC via function block
FC18), the axis does not have to be explicitly requested from the PLC. Axis interchange to the
PLC is realized automatically using the traversing request via FC18. After the traversing motion
requested via FC18 has been completed, the axis again automatically changes into the "neutral
axis" state.
After the axis has been interchanged, and after the request from the PLC, the axis can also be
controlled from the PLC: "PLC axis" state.
Note
Per machine data, the axis interchange to the PLC can be exclusively restricted to axes that are
permanently assigned to the PLC: MD10722 $MN_AXCHANGE_MASK, Bit 3 = 1
Parameter assignment
Parameterizing an axis as axis that is permanently assigned to the PLC is realized using the
axis-specific machine data:
MD30460 $MA_BASE_FUNCTION_MASK, Bit 5 = 1
Basic functions
560 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.11 Geometry axis in rotated frame and axis replacement
After traversing functions 1. to 3. have been completed, the axis automatically goes back into
the "neutral axis" state.
Note
Changing the operating mode in the JOG mode
Before changing the operating mode from JOG into another mode, all traversing motion of all
PLC and command axes, which have been linked as geometry axes in the rotated WCS, must
have been concluded. These axes must at least have become neutral axes again, otherwise
alarm 16908 will be output when the operating mode is changed. This alarm is also displayed
when only a single geometry axis is traversed as a PLC or command axis in the rotated
coordinate system.
Such an axis can only become a PLC or command axis within the channel. An axis replacement
in another channel is not permissible.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 561
Cross-channel axis interchange
7.12 Axis replacement from synchronized actions
Supplementary conditions
If MD32074 $MA_FRAME_OR_CORRPOS_NOTALLOWED, bit 10 == 0 and ROT Z45 is
programmed in the NC program, then for the X and Y axes no axis interchange is possible. This
is also analogously valid for the Z axis for e.g. ROT X45 or ROT Y45 – and also in the JOG
operating mode – if a block was interrupted with this type of programming. Although in this case
the NC/PLC interface signals "Axis replacement possible" (DB31, ...DBX68.5) are set for the X
and Y axes, these are however reset.
Only if MD32074 $MA_FRAME_OR_CORRPOS_NOTALLOWED, Bit 10 == 1 and no block
with this programming is being currently traversed, then in the JOG mode, these types of axes
can be interchanged.
Function
As action of a synchronized action, an axis can be requested for the channel (GET(<axis>))
or released for axis replacement (RELEASE(<axis>)).
Note
The axis must be assigned as a channel axis via machine data.
An axis can be transferred directly between channels to a certain channel with command
AXTOCHAN via synchronized actions or in the part program. This axis does not have to be the
same channel and it is not necessary that this channel be in possession of the current
interpolation right for the axis.
<Value> Meaning
0 The axis is assigned to the NC program
1 Axis assigned to PLC or active as command axis or oscillating axis
2 Another channel has the interpolation right.
3 Axis is neutral axis.
4 Neutral axis is controlled by the PLC.
5 Another channel has the interpolation right, axis is requested for NC program.
6 Another channel has the interpolation right, axis is requested as neutral axis.
7 Axis is PLC axis or active as a command axis/oscillating axis; the axis is requested for the NC
program.
8 Axis is PLC axis or active as a command axis/oscillating axis; the axis is requested as neutral
axis.
Basic functions
562 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.12 Axis replacement from synchronized actions
<Value> Meaning
9 Permanently assigned PLC axis, in the neutral axis state.
10 Permanently assigned PLC axis, controlled by PLC, in the neutral axis state.
A "permanently assigned PLC axis in the neutral axis state" (9) and a "permanently assigned
PLC axis controlled from the PLC in the neutral axis state" (10) is independent of GET and
RELEASE permanently assigned to the PLC. Whether the axis can also be replaced is
displayed in system variable $AA_AXCHANGE_STAT[axis].
State transitions GET, RELEASE from synchronous actions and when GET is completed
$AA_AXCHANGE_TYP=3 $AA_AXCHANGE_TYP=4
Neutral axis neutral axis is
GSf
NC program
Axis (spindle) Axis (spindle)
GD
After power ON GSf =2
GSf
R0
BP GSy
BP
Rn =5
PLC axis
(spindle)
PLC =8 PLC $AA_AXCHANGE_TYP=
GSy GSy
=1 requested as =7
neutral axis PLC
PLC assigned or
active as HL axis requested for NC program
RELEASE(AX ...) from synchronous actions GET (AX ...) from synchronous actions
RSy GSy
$AA_AXCHANGE_TYP=0 $AA_AXCHANGE_TYP=n
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 563
Cross-channel axis interchange
7.13 Axis interchange for leading axes (gantry)
Further information
Function Manual Synchronized Actions; Actions in synchronized actions
Function
A closed gantry grouping is treated regarding its axes always as a unit regarding axis
interchange. This is the reason why for an axis interchange of the leading axis, an axis
interchange is simultaneously made for all synchronous axes of the gantry grouping. In addition
to the preconditions for the leading axis described in the previous chapters, the appropriate
preconditions must also be fulfilled for all synchronous axes of the gantry grouping.
Basic functions
564 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.14 State diagram
3RZHU2Q
&KDQQHO
:$,73$1'
$[LVLVQRWV\QFKURQL]HG
$1'
$[LVQRWPDLQUXQD[LV
5(/($6( 67235( 5(/($6(
25 25
:$,73 :$,73
1HXWUDOD[LV
*(7 *(7
25 25
&KDQQHOUHVHW &KDQQHOUHVHW
67235( 67235(
5HTXHVWE\3/&
*(7'D[LV!
67235(
&KDQQHO
&KDQQHOD[LV &KDQQHOD[LV
*(7'D[LV!
67235(
5HTXHVWE\3/& 5HTXHVWE\3/&
5HOLQTXLVKPHQWE\3/&
QHXWUDO
5HOLQTXLVKPHQWE\3/& 5HOLQTXLVKPHQWE\3/&
WRFKDQQHO WRFKDQQHO
67235( 67235(
3/&D[LV
① MD30550 $MA_AXCONF_ASSIGN_MASTER_CHAN[<axis>]
Figure 7-4 State diagram: Axis replacement
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 565
Cross-channel axis interchange
7.15 Boundary conditions
Example
Block search with calculation to target block N700:
Further information
You will find more information under Block search, types 1, 2, and 4: (Page 121).
Basic functions
566 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.16 Example
7.16 Example
Assumptions
● Channel 1: The following axes are channel axes: 1, 2, 3, 4
● Channel 2: The following axes are channel axes: 4, 5, 6
● Default assignment: Axis 4 (AX4) is assigned to channel 1 by default
Parameter assignment
Channel 1
Axis names in the channel: MD20080
● $MC_AXCONF_CHANAX_NAME_TAB[<channel 1>][ 0 ] = "X" ; 1st channel axis
● $MC_AXCONF_CHANAX_NAME_TAB[<channel 1>][ 1 ] = "Y" ; 1st channel axis
● $MC_AXCONF_CHANAX_NAME_TAB[<channel 1>][ 2 ] = "Z" ; 1st channel axis
● $MC_AXCONF_CHANAX_NAME_TAB[<channel 1>][ 3 ] = "U" ; 1st channel axis
Machine axes used: MD20070
● $MC_AXCONF_MACHAX_USED[<channel 1>][ 0 ] = 1 ; 1st channel axis → axis 1
● $MC_AXCONF_MACHAX_USED[<channel 1>][ 1 ] = 2 ; 2nd channel axis → axis 2
● $MC_AXCONF_MACHAX_USED[<channel 1>][ 2 ] = 3 ; 3rd channel axis → axis 3
● $MC_AXCONF_MACHAX_USED[<channel 1>][ 3 ] = 4 ; 4th channel axis → axis 4
Channel 2
Axis names in the channel: MD20080
● $MC_AXCONF_CHANAX_NAME_TAB[<channel 2>][ 0 ] = "X" ; 1st channel axis
● $MC_AXCONF_CHANAX_NAME_TAB[<channel 2>][ 1 ] = "Y" ; 1st channel axis
● $MC_AXCONF_CHANAX_NAME_TAB[<channel 2>][ 2 ] = "U" ; 1st channel axis
Machine axes used: MD20070
● $MC_AXCONF_MACHAX_USED[<channel 2>][ 0 ] = 5 ; 1st channel axis → axis 5
● $MC_AXCONF_MACHAX_USED[<channel 2>][ 1 ] = 6 ; 2nd channel axis → axis 6
● $MC_AXCONF_MACHAX_USED[<channel 2>][ 2 ] = 4 ; 3rd channel axis → axis 4
Default assignment
Master channel of axis 4 (AX4) → channel 1
AX4 is the standard name of the 4th machine axis according to MD10000
$MN_AXCONF_MACHAX_NAME_TAB[ 3 ]
● MD30550 $MA_AXCONF_ASSIGN_MASTER_CHAN[ AX4 ] = 1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 567
Cross-channel axis interchange
7.17 Data lists
Program example
Program in channel 1 Program in channel 2
... ...
; Traversing axis 4 (AX4) ; Synchronization point with channel 1
G01 F1000 U100 ; WAITM(1,1,2)
; Release of AX4 ; Request for AX4
RELEASE(AX4) GET(AX4)
; Selection of program TAUSH2 in channel ; Traversing axis 4 (AX4)
2: G0 U0
INIT (2,"_N_MPF_DIR\_N_TAUSH2_MPF","S")
; Start program TAUSH2 in channel 2 ...
START(2)
; Synchronization point with channel 2 ; Release of AX4
WAITM (1,1,2) RELEASE(AX4)
... ...
M30 M30
Basic functions
568 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.17 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 569
Cross-channel axis interchange
7.17 Data lists
Basic functions
570 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Cross-channel axis interchange
7.17 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 571
Cross-channel axis interchange
7.17 Data lists
Basic functions
572 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Preprocessing 8
8.1 Brief description
Preprocessing
The programs stored in the directories for standard and user cycles can be preprocessed to
reduce runtimes.
Preprocessing is activated via machine data.
Standard and user cycles are preprocessed when the power is switched on, i.e. as an internal
control function, the part program is translated (compiled) into a binary intermediate code
optimized for processing purposes.
All program errors that can be corrected by means of a compensation block are detected during
preprocessing. In addition, when the program includes branches and check structures, a check
is made to ensure that the branch destinations are present and that structures are nested
correctly.
The full scope of control functionality is available:
● Override influence
● Reactions to data and signals that are input by the PLC or the operator
● Current block display
● The programs can be processed in single block mode (SBL1 and SBL2). Block searches
can be executed. The compilation cannot be stored; it is concealed from the user and
regenerated every time the power is switched on.
Preprocessing can be used:
● To optimize the runtimes of part programs with high-level language components (branches,
check structures, motion-synchronous actions)
● CPU time intensive part programs (e.g. stock removal cycles)
● Faster processing of time-critical sections (e.g. program continuation after preprocessing
stop during rapid deletion of distance-to-go, or return stroke, or in the tool change cycle).
General information
Preprocessing standard and user cycles is possible. The processing time of part programs can
then be reduced without restricting the control functionality.
The standard and user cycles are preprocessed when machine data is set accordingly:
MD10700 $MN_PREPROCESSING_LEVEL (program preprocessing level)
Preprocessing is carried out program-specifically. It is possible to mix preprocessed part
programs and part programs interpreted in ASCII format. Preprocessing serves to reduce
incidental times.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 573
Preprocessing
8.1 Brief description
Memory space is needed for preprocessing cycles. You can optimize your memory utilization
in two ways:
● The program to be executed can be shortened with the command DISPLOF (display off).
● MD10700 $MN_PREPROCESSING_LEVEL has been expanded by bit 2 and 3. This allows
selective cycle preprocessing of the individual directories (e.g. user cycles).
MD10700 $MN_PREPROCESSING_LEVEL has been expanded by bit 4. In this way, the
preprocessing of the user cycles can be selected from the directory _N_CMA_DIR.
MD10700 $MN_PREPROCESSING_LEVEL has been expanded by bit 5. In this way,
individual user cycles can be preprocessed in a targeted manner if they have the command
PREPRO after the PROC instruction.
Precompiled cycles are stored in the dynamic NC memory by default. MD10700
$MN_PREPROCESSING_LEVEL has been expanded by bit 6. This allows specifying that the
compiled programs that are now stored in the dynamic NC memory and no longer have enough
space can be stored in static NC memory.
Functionality
The programs stored in the directories for standard and user cycles are preprocessed when the
power is switched on, i.e. the part program is translated (compiled) into an intermediate binary
code optimized for processing purposes. The compilation is processed when called.
Runtime optimization
The preprocessing function is primarily suited for optimizing the runtimes of part programs with
high-level language components (jumps, control structures, synchronized actions).
While jumps and control structures are dissolved by a search through all blocks (block start)
when part programs are interpreted in ASCII format (active as default), a branch is made
directly to the destination block in a preprocessed part program.
This lifts the runtime differences between jumps and control structures.
Example of preprocessing execution time:
Execution reduction by 30% with active compressor
DEF INT COUNTER
Target: G1 G91 COMPCAD
G1 X0.001 Y0.001 Z0.001 F100000
COUNTER=COUNTER +1
COUNTER=COUNTER -1
COUNTER=COUNTER +1
IF COUNTER<= 100000 GOTOB TARGET
Computation-intensive programs and programs with symbolic names are processed more
quickly.
Execution time-critical sections (e.g. continuation of processing after deletion of distance-to-go
or preprocessing stop in cycles) can be processed faster.
Basic functions
574 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Preprocessing
8.2 Program handling
If the interrupt routine exists as a preprocessed cycle, the processing can be continued more
quickly after the program interrupt.
Activation/Deactivation
Cycles are preprocessed on POWER ON if the following machine data is set:
MD10700 $MN_PREPROCESSING_LEVEL, bit 1 (program preprocessing level)
The areas occupied in the dynamic NC memory by the compilation are visible to the user.
Bit combinations are permissible.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 575
Preprocessing
8.2 Program handling
Compiling
Subroutines (_SPF file extension) located in the directories for standard cycles (_N_CST_DIR,
_N_CMA_DIR) and user cycles (_N_CUS_DIR) and any subroutines marked with PREPRO are
compiled. The name of the compilation corresponds to the original cycle with extension _CYC.
Note
Program changes to precompiled programs do not take effect until the next POWER ON.
Access rights
The preprocessed program can only be executed, but not read or written. The compilation
cannot be modified or archived. The original cycles _SPF files are not deleted.
The compilation is not changed when the ASCII cycle is altered, i.e. changes do not take effect
until after the next POWER ON.
Memory requirements
The memory requirement for compiled cycles is approximately factor 2 in addition to the ASCII
part program.
The memory requirements for variables defined in the part programs are defined by the
following machine data:
MD28020 $MC_MM_NUM_LUD_NAMES_TOTAL (number of local user variables)
MD28010 $MC_MM_NUM_REORG_LUD_MODULES (number of modules for local user
variables with REORG)
MD28040 $MC_MM_LUD_VALUES_MEM (memory size for local user variables)
MD18242 $MC_MM_MAX_SIZE_OF_LUD_VALUE (memory block size for LUD/GUD values)
Further information is provided under Memory configuration (Page 799).
While preprocessing is in progress, the amount of memory required is the same as if the
preprocessed program were called on the first subprogram level.
When programs are preprocessed after POWER ON, a name is counted for each branch
destination/label as if it were a variable. These names must be taken into account in the
following machine data:
MD28020 $MC_MM_NUM_LUD_NAMES_TOTAL (number of local user variables)
Example
Program code Comment
PROC NAMES ;
DEF INT VARIABLE, ARRAY[2] ; 2 names
START: ; 1 name, only for preprocessing
FOR VARIABLE = 1 TO 9 ; 1 name, only for preprocessing
Basic functions
576 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Preprocessing
8.3 Program call
In order to execute this program normally, the following machine data must specify at least 3
names:
MD28020 $MC_MM_NUM_LUD_NAMES_TOTAL
Six names are required to compile this program after POWER ON.
Preprocessed programs/cycles are stored in the dynamic NC memory. The space required for
each program must be flashed over unmodified as outlined above. Adjustment of the memory
mapping in the static NC memory is required only if bit 6 = 1 is set in the following machine data:
MD10700 $MN_PREPROCESSING_LEVEL (program processing level)
In this case, the program compilations for which there is insufficient space in the dynamic NC
memory are stored in the static NC memory.
Examples for appropriate machine data settings can be found under "Examples" in the
Subsection "Preprocessing in the dynamic NC memory".
Overview
Main program
Call
CYCLE_SPF ASCII
without preprocessing Cycle
CYCLE _N_CYCLE_SPF
Preprocessing
CYCLE_CYC
_N_CYCLE_CYC
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 577
Preprocessing
8.3 Program call
PROC CYCLE95
(REAL FFW1, ...)
CYCLE95 (10...)
_N_CYCLE95_SPF
Preprocessing
Call Pre-
with preprocessing processed
Cycle
_N_CYCLE95_CYC
Call
● Compiled cycle: A compiled cycle is called in exactly the same way as a normal subroutine.
Example: CYCLE
● Preprocessing is activated: The compiled cycle is called instead of the ASCII cycle.
– If the subroutine is called explicitly with extension _SPF, then the ASCII cycle is called
even if a compilation is available.
Example: CYCLE_SPF; ASCII cycle call
– If the subroutine is called explicitly with extension _CYC, then the preprocessed cycle is
called (assuming that it is available). An error message is output if no compilation is
available.
Example: CYCLE_CYC; calls a precompiled cycle
– If bit 5 is set and a file that is not marked with PREPRO is called explicitly with the
extension _CYC, an error message is issued with Alarm 14011.
● If a subroutine is called without explicit extension, an attempt is first made to load the
program. If this is not possible (not marked with PREPRO), an attempt is made to load the
SPF program.
Basic functions
578 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Preprocessing
8.4 Constraints
● The change to an external language mode with G291 is rejected and an alarm issued. When
calling a precompiled cycle, an explicit change is made into the Siemens language mode.
● When the subroutine is called, it is checked whether the compiled file is older than the cycle.
If so, the compile file is deleted and an alarm issued. The user must preprocess the cycles
again.
Note
Only cycles without parameters may be called with the extension _SPF or _CYC.
It is not permissible that PUDs are used in cycles that have been preprocessed. The PUDs
are created in the calling main program. At the time of compilation after POWER ON, this
data is not known to the cycles.
The actual program display shows whether the current ASCII cycle or the compilation has been
called (extension _SPF or _CYC).
Call condition
All cycles in the cycle directories must be compiled before preprocessing is activated. Non-
compiled cycles in _N_CUS_DIR and _N_CST_DIR which were loaded after POWER ON, for
example, can only be called through explicit specification of extension _SPF.
If preprocessing is active and bit 5 is set, all programs that do not start with the PREPRO PROC
instruction are not precompiled.
Syntax check
All program errors, which can be corrected using a correction block, are already identified at the
time of preprocessing. In addition, when the program includes branches and check structures,
a check is made to ensure that the branch destinations are present and that structures are
nested correctly.
Branch destinations and labels must be unique in the program.
After the errors detected during preprocessing have been corrected, preprocessing must be
started again by means of an NC POWER ON.
8.4 Constraints
Language scope
The full vocabulary of the NC language is available in the part program.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 579
Preprocessing
8.4 Constraints
There are no restrictions on the calculation of measured process variables and in the reaction
to signals from the process and other channels (override, deletion of distance-to-go, motion-
synchronous actions, channel coordination, interrupt processing, etc.).
Axis name
Part programs are compiled independently of channels. For this reason, the geometry and
channel names set in the following machine data must be identical in all channels if they
are used directly in the precompiled cycles:
MD20060 $MC_AXCONF_GEOAX_NAME_TAB (name of the geometry axis in the channel)
MD20080 $MC_AXCONF_CHANAX_NAME_TAB (name of the channel axis in the channel)
Generally speaking, axis names are not used directly in machining cycles since cycles are
written as follows:
● independently of channels and
● independently of the axis names defined on the machine.
The axes to be traversed are addressed indirectly via machine data or transferred as
parameters:
● Indirect axis programming:
– IF $AA_IM[AXNAME($MC_AXCONF_CHANAX_NAME_TAB[4])] > 5
; This branch will pass through if the actual value of the 5th channel axis
; with reference to the machine coordinate system is greater than 5.
– G1 AX[AXNAME($MC-AXCONF-GEOAX-NAME-TAB[0])] = 10
F1000 G90.
; Traverse the 1st geometry axis to the value 10.
ENDIF
● Transfer of axis to be traversed from the main program:
– Cycle definition
PROC DRILL(AXIS DRILL_AXIS)
WHILE $AA_IW[DRILL_AXIS] > -10
G1 G91 F250 AX[DRILL_AXIS] = -1
ENDWHILE
– Call from the main program
DRILL(Z)
Basic functions
580 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Preprocessing
8.5 Examples
8.5 Examples
Sample constellations:
a) Bit 5 = 1
MD10700 $MN_PREPROCESSING_LEVEL=45 ; bit 0, 2, 3, 5
Subprogram UP1 is pretranslated, and the call description is generated.
Subprogram UP2 is not pretranslated, but the call description is generated.
b) Bit 5 = 0
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 581
Preprocessing
8.5 Examples
Machine data for preprocessing in the dynamic NC memory with the option of using the static
NC memory and selective selection:
Basic functions
582 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Preprocessing
8.6 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 583
Preprocessing
8.6 Data lists
Basic functions
584 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Emergency stop 9
9.1 Brief Description
Function
The control system supports the machine manufacturer in implementing an emergency stop
function on the basis of the following functions:
● An emergency stop button is installed in a location easily accessible to the machine operator
on all SINUMERIK machine control panels. The functionality of the emergency stop button
includes the positive opening of electrical switching contacts and a mechanical self-
activating latching/locking.
● The emergency stop request to the NC is transmitted via the NC/PLC interface on the PLC.
● The Emergency Stop function must bring the machine to a standstill according to stop
category 0 or 1 (EN 60204).
● In the case of an emergency stop, all machine functions controlled by the PLC can be
brought to a safe state that can be set by the machine manufacturer.
● Unlatching the emergency stop button does not cancel the emergency stop state nor does
it initiate a restart.
● After the emergency stop state has been canceled, it is not necessary to reference the
machine axes or synchronize the spindles. The actual positions of the machine axes are
continuously tracked during the emergency stop sequence.
Relevant standards
Compliance with the following standards is essential for the emergency stop function:
● EN ISO 12000-1
● EN ISO 12000-2
● EN 418
● EN 60204
Emergency stop
In accordance with EN 418, an emergency stop is a function that:
● Is intended to prevent or diminish developing or existing risks to operating personnel, and
damage to the machine or machined materials.
● Is triggered by a single action of a person, if the normal stop function is not suitable for it.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 585
Emergency stop
9.3 Emergency stop control elements
Hazards
In the terms of EN 418, risks may arise from:
● Functional irregularities (machine malfunctions, unacceptable properties of the material to
be machined, human error, etc.).
● Normal operation.
Basic functions
586 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Emergency stop
9.4 Emergency stop sequence
Connection conditions
For connection of the emergency stop button, see:
Further information:
Equipment Manual Operator Components
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 587
Emergency stop
9.5 Emergency stop acknowledgement
● The digital and analog outputs of the PLC I/O are not influenced by the emergency stop
sequence in the NC.
If individual outputs are required to attain a particular state or voltage level in the event of an
emergency stop, the machine manufacturer must implement this in the PLC user program.
● The fast digital outputs of the NCK I/O system are not influenced by the emergency stop
sequence in the NC.
If individual outputs must assume a specific state in case of emergency stop, the machine
manufacturer must transmit the desired state to the NC in the PLC user program via
interface signals:
DB10 DBB4-7
Note
If the sequence in the NC is not to be executed as described above, then the interface signal
DB10 DBX56.1 (emergency stop) must not be set until an emergency stop state defined by
the machine manufacturer in the PLC user program is reached.
As long as the interface signal is not set and no other alarm is pending, all interface signals
are operative in the NC. Any emergency stop state defined by the manufacturer (including
axis-, spindle- and channel-specific emergency stop states) can therefore be assumed.
Basic functions
588 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Emergency stop
9.5 Emergency stop acknowledgement
Hence it can be noted that the interface signal DB10 DBX56.2 (acknowledge emergency stop)
and the interface signal DB21, ... DBX7.7 (Reset) together are set at least for so long until the
interface signal DB10 DBX106.1(emergency stop active) is reset.
Note
The emergency stop state cannot be reset with the interface signal DB21, ... DBX7.7 (Reset)
alone.
'%'%;(PHUJHQF\6WRS
'%'%;DFNQRZOHGJH(PHUJHQF\
6WRS
'%'%;HPHUJHQF\VWRS
DFWLYH
'%'%;5(6(7
Effects
Resetting the emergency stop state has the following effects:
● Within the controller for all machine axes:
– The servo enables are set.
– The follow-up mode is canceled.
– The position control is activated.
● The following interface signals are set:
DB31, ... DBX60.5 (position control active)
DB11 DBX6.3 (mode group ready)
● The following interface signal is reset:
DB10 DBX106.1 (emergency stop active)
● Alarm 3000 "Emergency stop" is deleted.
● Part program processing is interrupted in all channels of the NC.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 589
Emergency stop
9.6 Data lists
Basic functions
590 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Various NC/PLC interface signals and functions 10
10.1 Brief description
Contents
The PLC/NC interface comprises a data interface on one side and a function interface on the
other. The data interface contains status and control signals, auxiliary and G commands, while
the function interface is used to transfer jobs from the PLC to the NC.
This Description describes the functionality of interface signals, which are of general relevance
but are not included in the descriptions of functions.
● Asynchronous events
● Status signals
● PLC variable (read and write)
10.2 Functions
Value Meaning
0 If the preprocessing run of a channel is too slow, the display is not refreshed in all channels.
1 If the preprocessing run of a channel is too slow, the display is only refreshed in the time critical channels in order to
obtain processor time for the preprocessing run.
2 Display refresh is not suppressed.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 591
Various NC/PLC interface signals and functions
10.2 Functions
Access from NC
System variables are available in the NC for fast access to PLC variables from a part program
or synchronized action. The data is read/written directly by the NC. The data type results from
the identifier of the system variables. The position within the memory area is specified as index
in bytes.
Basic functions
592 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Various NC/PLC interface signals and functions
10.2 Functions
1&$B'%'> 3/&&$//)&
'DWHQW\S'%'%\WH
Boundary conditions
● The structuring of the DPR memory area is the sole responsibility of the user. No checks are
made for matching configuration.
● A total of 4096 bytes are available in the input and output directions.
● Single-bit operations are not supported and must be linked back to byte operations by the
user.
● Since the contents of variables are manipulated directly in the communications buffer, the
user must remember that intermediate changes in values occur as a result of multiple
access operations where a variable is evaluated several times or when variables are linked
(i.e. it may be necessary to store values temporarily in local variables or R parameters or to
set up a semaphore).
● The user's programming engineer is responsible for coordinating access operations to the
communications buffer from different channels.
● Data consistency can be guaranteed only for access operations up to 16 bits (byte and
word). The user is solely responsible for ensuring consistent transmission of 32-bit variables
(double and real). A simple semaphore mechanism is available in the PLC for this purpose.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 593
Various NC/PLC interface signals and functions
10.2 Functions
Program code
N10 DEF REAL DBR
N12 DEF REAL EPSILON = 0.00001
N20 $A_DBR[0]=145.145
N30 G4 F2
N40 STOPRE
N50 DBR=$A_DBR[0]
N60 IF ( ABS(DBR/145.145-1.0) < EPSILON ) GOTOF ENDE
N70 MSG ( "error" )
N80 M0
N90 END:
N99 M30
Activation
The maximum number of simultaneously writable output variables is adjustable via:
MD28150 $MC_MM_NUM_VDIVAR_ELEMENTS (number of elements for writing PLC
variables)
Example
A variable of type WORD is to be transferred from the PLC to the NC.
The position offset within the NC input (PLC output area) should be the fourth byte. The position
offset must be a whole-number multiple of the data width.
Basic functions
594 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Various NC/PLC interface signals and functions
10.2 Functions
Further information
A detailed description of the data exchange by the PLC with FC 21 can be found in:
Function Manual PLC and Basic Program
Access authorization
Access to functions, programs and data is useroriented and controlled via 8 hierarchical
protection levels. These are subdivided into:
● Password levels for Siemens, machine manufacturer and end user
● Keyswitch positions for end user
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 595
Various NC/PLC interface signals and functions
10.2 Functions
Access features
● Protection level 0 provides the greatest number of access rights, protection level 7 the least.
● If certain access rights are granted to a protection level, these protection rights automatically
apply to any higher protection levels.
● Conversely, protection rights for a certain protection level can only be altered from a higher
protection level.
● Access rights for protection levels 0 to 3 are permanently assigned by Siemens and cannot
be altered (default).
● Access rights can be set by querying the current keyswitch positions and comparing the
passwords entered. When a password is entered it overwrites the access rights of the
keyswitch position.
Basic functions
596 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Various NC/PLC interface signals and functions
10.2 Functions
● Options can be protected on each protection level. However, option data can only be
entered in protection levels 0 and 1.
● Access rights for protection levels 4 to 7 are only suggestions and can be altered by the
machine tool manufacturer or end user.
10.2.4.1 Password
Set password
The password for a protection level (0 – 3) is entered via the HMI user interface.
Operating area "Commissioning" > "Password" > "Set password"
Delete password
Access rights assigned by means of setting a password remain effective until they are explicitly
revoked by deleting the password:
Operating area "Commissioning" > "Password" > "Delete password"
Change password
The password for a protection level (0 – 3) is changed via the HMI user interface.
Operating area "Commissioning" > "Password" > "Change password"
Note
Warm restart
Access rights and password status (set/deleted) are not affected by a warm restart!
New password
A password may contain up to eight characters. We recommend that you confine yourself to the
characters available on the operator panel front when selecting the password.
Where a password consists of less than eight characters, the additional characters are
interpreted as blanks.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 597
Various NC/PLC interface signals and functions
10.2 Functions
When assigning a new password, the rules for assigning secure passwords must be taken into
account.
Note
Assigning secure passwords
Observe the following rules when assigning new passwords:
● When assigning new passwords, make sure that you do not assign passwords that can be
easily guessed, e.g. simple words, key combinations that can be easily guessed, etc.
● Passwords must always contain a combination of upper-case and lower-case letters as well
as numbers and special characters. Passwords must comprise at least eight characters.
PINS must comprise an arbitrary sequence of digits.
● Wherever possible and where it is supported by the IT systems, a password must always
have a character sequence as complex as possible.
Further rules for the assignment of secure passwords can be found at Federal Office for
Information Security (Bundesamt für Sicherheit in der Informationstechnik, abbreviated as
BSI). (https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/International/
GSK_15_EL_EN_Draft.pdf?__blob=publicationFile&v=2)
You can use a program for password management for assistance when dealing with
passwords. With its help, you can save passwords and PINs in encrypted form, manage them
and generate secure passwords.
Defaults
As standard, the following passwords are effective for protection levels 1 - 3:
● Protection level 1: SUNRISE
● Protection level 2: EVENING
● Protection level 3: CUSTOMER
NOTICE
A cold restart reset the passwords to the default settings
After a cold restart (the NC powers up and standard machine data is loaded), the passwords
of protection levels 1 - 3 are again reset to the default settings. For security reasons, after a
cold restart we urgently recommend that the default settings of the passwords are changed.
Further information
● Commissioning Manual Commissioning CNC: NC, PLC, Drive; Requirements for
commissioning > Switch-on and power up and Access levels
Basic functions
598 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Various NC/PLC interface signals and functions
10.2 Functions
Keyswitch
The keyswitch has four positions, to which protection levels 4 to 7 are assigned. The keyswitch
comprises a number of keys in a variety of colors which can be set to different switch positions.
3RVLWLRQ %LW
RU
3RVLWLRQ %ODFNNH\ %LW
RURU
3RVLWLRQ *UHHQNH\ %LW
RURU
3RVLWLRQ RU %LW
5HGNH\
Switch positions
Switch position 0 has the most restricted access rights. Switch position 3 has the least restricted
access rights.
DB10, DBX56.4 / .5 / .6 / .7 (switch positions 0 / 1 / 2 / 3)
Machine-specific enables for access to programs, data and functions can be assigned to the
switch positions. For detailed information, please refer to:
Further information
● Commissioning Manual Commissioning CNC: NC, PLC, Drive; Requirements for
commissioning > Switch-on and power up and Access levels
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 599
Various NC/PLC interface signals and functions
10.2 Functions
Default values
On delivery or following standard commissioning, with very few exceptions, the default value for
the protection level will be set to 7, i.e. the lowest protection level.
Note
Further information
Commissioning Manual: CNC: NC, PLC, Drive, Commissioning NC-controlled drives
The following duplication and management of the data sets is performed via the user interface:
SINUMERIK Operate: Operating area "Start-up" > "Drive system" > "Drives" > "Data sets"
The activation of the motor data set (MDS) or drive data set (DDS) required for a machine axis
in a specific machining situation, must be made from the PLC user program via the interfaces
described below.
Basic functions
600 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Various NC/PLC interface signals and functions
10.2 Functions
Formatting
The formatting interface is used to set which bits of the request and display interface are used
to address the motor data sets (MDS) and which are used to address the drive data sets (DDS):
DB31, ... DBX130.0 - 4, with bit x = <value>
<value> Meaning
0 Bit position for motor data set (MDS) – or invalid bit position
1 Bit position for drive data set (DDS)
Note
With invalid request and display interfaces, it however remains the sole responsibility of the
user / machine manufacturer to perform a data set switchover via the invalid request and
display interfaces.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 601
Various NC/PLC interface signals and functions
10.2 Functions
See also
Example (Page 602)
Overview of the interfaces (Page 603)
Value range
Addressing a motor or drive data set n, with n = 1, 2, 3, ..., is realized based on its index i, with
i = n - 1 = 0, 1, 2, ...
● Motor data sets: MDS[ 0, 1, 2, ... 15 ]
● Drive data sets: DDS[ 0, 1, 2, ... 31 ]
Formatting interfaces
Formatting the request interface, i.e. which bits are used to address the motor data sets (MDS)
– and which are used to address the drive data sets (DDS) is set via the formatting interface
(Page 601).
10.2.5.5 Example
Two motor data sets (MDS) and two drive data sets (DDS) are available in the drive for each
motor data set. This corresponds to "No.": 9 of the possible data set combinations displayed in
the Figure 10-3 Principle of the motor/drive data set switchover (Page 604).
Basic functions
602 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Various NC/PLC interface signals and functions
10.2 Functions
Format
Bit positions for drive data set switchover (DDS):
● DB31, ... DBX130.0 == 1
Bit positions for motor data set switchover (MDS):
● DB31, ... DBX130.1 == 0
Invalid bit positions:
● DB31, ... DBX130.2 == 0
● DB31, ... DBX130.3 == 0
● DB31, ... DBX130.4 == 0
See also
Overview of the interfaces (Page 603)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 603
Various NC/PLC interface signals and functions
10.2 Functions
Basic functions
604 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Various NC/PLC interface signals and functions
10.3 Examples
Variable number of drive data sets for the "last" motor data set
The "last" motor data set is the motor data set with the highest number or index.
Generally, the same number of drive data sets is created for each motor data set (number of
"DDS per MDS") in the drive. Only the "last" motor data set can differ from this; any number (a)
of drive data sets can be parameterized:
1 ≤ a ≤ (number of "DDS per MDS")
Example
4 motor data sets (MDS) and 8 drive data sets (DDS) per motor data set (DDS per MDS) are
to be parameterized. This corresponds to "No.": 22 of the possible data set combination
displayed in the Figure 10-3 Principle of the motor/drive data set switchover (Page 604):
● Motor data sets: MDS[ 0 ], MDS[ 1 ], ... MDS[ 3 ] ("last" motor data set)
● Drive data sets per motor data set: DDS[ 0 ] ... DDS[ 7 ]
The number of drive data sets for the individual motor data sets is therefore:
Motor data set (MDS) Number of drive data sets (DDS) per motor data set (MDS)
MDS[ 0 ] ... MDS[ 2 ] 8
MDS[ 3 ] 1-8
See also
Overview of the interfaces (Page 603)
10.3 Examples
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 605
Various NC/PLC interface signals and functions
10.3 Examples
Preconditions
The parameter set changeover must be enabled by the machine data:
MD35590 $MA_PARAMSET_CHANGE_ENABLE [AX1] = 1 or 2 (parameter set change
possible)
The 1st parameter set for machine axis X1 is set, in accordance with machine data with index
"0" NC/PLC interface:
DB31, … DBX9.0 - DBX9.2 = 0 (controller parameter set)
Basic functions
606 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Various NC/PLC interface signals and functions
10.4 Data lists
Switchover
In order to switch over the position-control gain, the PLC user program selects the 4th
parameter set for machine axis X1.
● Request by PLC user program:
DB31, … DBX9.0 – DBX9.2 = 3 (parameter set servo)
– A request to change over to the 4th parameter set is sent for machine axis AX1.
– The parameter set is changed over once a delay has elapsed.
– Parameter set 4 is now active, in accordance with machine data with index "3"
● Feedback by NC:
DB31, … DBX69.0 – DBX69.2 = 3 (parameter set servo)
– The NC confirms/acknowledges the parameter-set changeover.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 607
Various NC/PLC interface signals and functions
10.4 Data lists
Basic functions
608 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Various NC/PLC interface signals and functions
10.4 Data lists
Names Description
$P_FUMB Unassigned part program memory (Free User Memory Buffer)
$A_DBB[n] Data on PLC (data type BYTE)
$A_DBW[n] Data on PLC (WORD type data)
$A_DBD[n] Data on PLC (DWORD type data)
$A_DBR[n] Data on PLC (REAL type data)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 609
Various NC/PLC interface signals and functions
10.4 Data lists
Basic functions
610 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC 11
11.1 Brief description
11.1.1 Function
Auxiliary functions permit activation of the system functions of the NC and PLC user functions.
Auxiliary functions can be programmed in:
● Part programs
● Synchronized actions
● User cycles
For detailed information on the use of auxiliary function outputs in synchronized actions, see:
Further information
Function Manual Synchronized Actions
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 611
Auxiliary function outputs to PLC
11.1 Brief description
Further information
Function Manual PLC and Basic Program, Basic program
M functions
M (special function)
Address extension Value
Range of values Meaning Value range 10) Type Meaning Number 8)
0 (implicit) --- 0 ... 99 INT Function 5
Basic functions
612 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.1 Brief description
M (special function)
Range of values Meaning Value range 11) Type Meaning Number 8)
1 ... 20 Spindle number 1 ... 99 INT Function 5
Range of values Meaning Value range 12)
Type Meaning Number 8)
0 ... 99 Any 100 ... 2147483647 INT Function 5
8)
See "Meaning of footnotes" at the end of the overview.
10)
For the value range 0 ... 99, the address extension is 0. Mandatory without address extension: M0, M1, M2, M17, M30
11)
M3, M4, M5, M19, M70: The address extension is the spindle number, e.g. M2=5 ⇒ spindle stop (M5) for spindle 2.
Without address extension, the M function acts on the master spindle.
12)
User-specific M functions.
Use
Controlling machine functions in synchronism with the part program.
Further information
● The following M functions have a predefined meaning: M0, M1, M2, M17, M30, M3, M4, M5,
M6, M19, M70, M40, M41, M42, M43, M44, M45.
● A dynamic NC/PLC interface signal for displaying the validity is assigned to the M functions
(M0 - M99). Furthermore, 64 additional signals can be assigned for independent M functions
(see Function Manual PLC and Basic Program, Section Basic program).
● For subprograms, machine data can be used to set whether an output of the M function
should be realized for the end of the part program M17, M2 or M30 to the PLC:
MD20800 $MC_SPF_END_TO_VDI (subprogram end to PLC)
● For the predefined M functions M40 – M45, only limited redefinition of the output
specification is possible.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 613
Auxiliary function outputs to PLC
11.1 Brief description
● The predefined auxiliary functions M0, M1, M17, M30, M6, M4, M5 cannot be redefined.
● M function-specific machine data:
– MD10800 $MN_EXTERN_CHAN_SYNC_M_NO_MIN
– MD10802 $MN_EXTERN_CHAN_SYNC_M_NO_MAX
– MD10804 $MN_EXTERN_M_NO_SET_INT
– MD10806 $MN_EXTERN_M_NO_DISABLE_INT
– MD10814 $MN_EXTERN_M_NO_MAC_CYCLE
– MD10815 $MN_EXTERN_M_NO_MAC_CYCLE_NAME
– MD20094 $MC_SPIND_RIGID_TAPPING_M_NR
– MD20095 $MC_EXTERN_RIGID_TAPPING_M_NR
– MD20096 $MC_T_M_ADDRESS_EXT_IS_SPINO
– MD22200 $MC_AUXFU_M_SYNC_TYPE
– MD22530 $MC_TOCARR_CHANGE_M_CODE
– MD22532 $MC_GEOAX_CHANGE_M_CODE
– MD22534 $MC_TRAFO_CHANGE_M_CODE
– MD22560 $MC_TOOL_CHANGE_M_CODE
S functions
S (spindle function)
Address extension10) Value
Range of values Meaning Range of values Type Meaning Number 8)
0 ... 20 Spindle number 5)
0 ... ± 3.4028 exp38 3)
REAL Spindle speed 3
3) 5) 8)
See "Meaning of footnotes" at the end of the overview
10)
The master spindle of the channel is addressed if no address extension is specified.
Use
Spindle speed.
Further information
● S functions are assigned to auxiliary function group 3 by default.
● Without an address extension, the S functions refer to the master spindle of the channel.
● S function-specific machine data:
MD22210 $MC_AUXFU_S_SYNC_TYPE (output time of the S functions)
Basic functions
614 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.1 Brief description
H functions
The functionality of an H function must be implemented in the PLC user program.
Use
User-specific auxiliary functions.
Further information
H function-specific machine data:
● MD22110 $MC_AUXFU_H_TYPE_INT (type of H-auxiliary function is an integer)
● MD22230 $MC_AUXFU_H_SYNC_TYPE (output time of the H functions)
T functions
Tool names are not output at the NC/PLC interface.
T (tool number) 1) 5) 6)
Address extension Value
Range of values Meaning Range of values Type Meaning Number 8)
1 ... 12 Spindle number 0 ... 32000 INT Selection of the tool 1
(with active tool man‐ (also symbolic names for ac‐
agement) tive tool management)
1) 5) 6) 8)
See "Meaning of footnotes" at the end of the overview.
Use
Tool selection.
Further information
● Identification of the tools, optionally with tool number or location number (see Function
Manual Tools, Section Tool offset).
Function Manual Tool Management
● When T0 is selected, the current tool is removed from the toolholder but not replaced by a
new tool (default setting).
● T function-specific machine data:
MD22220 $MC_AUXFU_T_SYNC_TYPE (output time of the T functions)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 615
Auxiliary function outputs to PLC
11.1 Brief description
D functions
The tool offset is deselected using D0. Default setting is D1.
D (tool offset)
Address extension Value
Range of values Meaning Range of values Type Meaning Number 8)
--- --- 0 ... 9 INT Selection of the tool 1
offset
8)
See "Meaning of footnotes" at the end of the overview.
Use
Selection of the tool offset.
Further information
● Initial setting: D1
● After a tool change, the default tool cutting edge can be parameterized via:
MD20270 $MC_CUTTING_EDGE_DEFAULT (basic position of the tool cutting edge
without programming)
● Deselection of the tool offset: D0
● D function-specific machine data:
MD22250 $MC_AUXFU_D_SYNC_TYPE (output time of the D functions)
DL functions
The additive tool offset selected with DL refers to the active D number.
Use
Selection of the additive tool offset with reference to an active tool offset.
Further information
● Initial setting: DL = 0
● DL values cannot be output to the PLC via synchronized actions.
● Default setting of the additive tool offset without an active DL function:
MD20272 $MC_SUMCORR_DEFAULT (basic setting of the additive offset without a
program)
Basic functions
616 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.1 Brief description
F functions
F (feedrate)
Address extension Value
Range of values Meaning Range of values Type Meaning Number 8)
--- --- 0.001 ... 999 999.999 REAL Path feedrate 6
8)
See "Meaning of footnotes" at the end of the overview.
Use
Path velocity.
Further information
F function-specific machine data:
● MD22240 $MC_AUXFU_F_SYNC_TYPE (output time of F functions)
FA functions
FA (axes-specific feedrate)
Address extension Value
Range of values Meaning Range of values Type Meaning Number 8)
1 - 31 Axis number 0.001 ... 999 999.999 REAL Axial feedrate 6
8)
See "Meaning of footnotes" at the end of the overview.
Use
Axis-specific velocity.
Further information
F function-specific machine data:
● MD22240 $MC_AUXFU_F_SYNC_TYPE (output time of F functions)
Meaning of footnotes
1)
If tool management is active, neither a T change signal nor a T word is output at the
channel-specific NC/PLC interface.
2)
The type for the values can be selected by the user via MD22110 $MC_AUX‐
FU_H_TYPE_INT.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 617
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
3)
Because of the limited display options on the operator panel screens, the REAL type
values displayed are restricted to:
–999 999 999.9999 to 999 999 999.9999
The NC calculates internally but with complete accuracy.
4)
The REAL values are rounded and output to the PLC when setting the machine data:
MD22110 $MC_AUXFU_H_TYPE_INT = 1 (type of H-auxiliary functions is an integer)
The PLC user program must interpret the value transferred according to the machine data
setting.
5)
If the tool management is active, the meaning of the address extension can be parame‐
terized. Address extension = 0 means the value must be replaced by that of the master
spindle number, i.e. it is equivalent to not programming the address extension.
Auxiliary functions M19 "Position spindle" collected during a block search are not output to
the PLC.
6)
M6: Range of values of the address extension:
- without tool management: 0 ... 99
- with tool management: 0 ... maximum spindle number
0: To be replaced by the value of the master spindle number or master tool holder
7)
If tool management is active, the auxiliary function M6 "Tool change" can only be pro‐
grammed once in a part program block, irrespective the address extensions that are pro‐
grammed.
8)
Maximum number of auxiliary functions per part program block.
Function
Every pre-defined auxiliary function is assigned to a system function and cannot be changed.
If a pre-defined auxiliary function is programmed in a part program/cycle, then this is output to
the PLC via the NC/PLC interface and the corresponding system function is executed in the NC.
Basic functions
618 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Parameter Meaning
Index <n> Machine data index of the parameters of an auxiliary function
Type MD22050 $MC_AUXFU_PREDEF_TYPE[<n>]
Address extension MD22060 $MC_AUXFU_PREDEF_EXTENSION[<n>]
Value MD22070 $MC_AUXFU_PREDEF_VALUE[<n>]
Group MD22040 $MC_AUXFU_PREDEF_GROUP[<n>]
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 619
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Basic functions
620 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 621
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Basic functions
622 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 623
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Basic functions
624 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 625
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Basic functions
626 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 627
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Basic functions
628 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Legend:
( ) The value can be changed.
1)
The value is depends on the machine data:
MD22560 $MC_TOOL_CHANGE_M_MODE (M function for tool change)
2)
The value can be preset with a different value using the following machine data:
MD20095 $MC_EXTERN_RIGID_TAPPING_M_NR (M function for switching over to con‐
trolled axis mode (ext. mode))
MD20094 $MC_SPIND_RIGID_TAPPING_M_NR (M function for switching over to con‐
trolled axis mode)
Note
The value 70 is always output at the PLC.
3)
The value is set using machine data:
MD22254 $MC_AUXFU_ASSOC_M0_VALUE (additional M function for program stop)
4)
The value is set using machine data:
MD22256 $MC_AUXFU_ASSOC_M1_VALUE (additional M function for conditional stop)
5)
The value is set using machine data:
MD10714 $MN_M_NO_FCT_EOP (M function for spindle active after reset)
6)
The value is set using machine data:
MD26008 $MC_NIBBLE_PUNCH_CODE (definition of M functions)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 629
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Parameter Meaning
Index <n> Machine data index of the parameters of an auxiliary function
Output behavior MD22080 $MC_AUXFU_PREDEF_SPEC[<n>], Bits 0 ... 18
Bits 19 ... 31: Reserved
Basic functions
630 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Bit Meaning
0 Acknowledgement "normal" after an OB1 cycle
An auxiliary function with normal acknowledgment is output to the NC/PLC interface at the beginning of the OB1 cycle.
The auxiliary function-specific change signal indicates to the PLC user program that the auxiliary function is valid.
The auxiliary function is acknowledged as soon as organization block OB1 has run once. This corresponds to a
complete PLC user cycle.
The auxiliary function with normal acknowledgment is output in synchronism with the part program block in which it is
programmed. If execution of the parts program block, e.g. path and/or positioning axis movements, is completed before
acknowledgment of the auxiliary function, the block change is delayed until after acknowledgment by the PLC.
In continuous-path mode, a constant path velocity can be maintained in conjunction with an auxiliary function with
normal acknowledgment, if the auxiliary function is output by the PLC during the traversing motion and before reaching
the end of the block.
1 Acknowledgement "quick" with OB40
An auxiliary function with quick acknowledgment is output to the NC/PLC interface before the next OB1 cycle. The
auxiliary function-specific change signal indicates to the PLC user program that the auxiliary function is valid.
The auxiliary function is acknowledged immediately by the PLC basic program in the next OB40 cycle. Acknowledg‐
ment of the auxiliary function is not confirmation that the corresponding PLC user function has been executed. The
auxiliary function is still executed in the OB1 cycle. Next output of the auxiliary functions to the PLC is therefore not
possible until after this OB1 cycle has run completely. This is noticeable in continuous-path mode (drop in path velocity)
especially if auxiliary functions with quick acknowledgment are output in several consecutive part program blocks.
With auxiliary functions with quick acknowledgment, it cannot be guaranteed that the PLC user program will respond
in synchronism with the block.
Note
Parameterization of the output behavior of auxiliary functions as "quick auxiliary functions" is only possible in con‐
junction with user-defined auxiliary functions.
2 No predefined auxiliary function
A predefined auxiliary function is treated like a user-defined auxiliary function with this setting. The auxiliary function
then no longer triggers the corresponding system function but is only output to the PLC.
Example:
Reconfiguration of the "Position spindle" auxiliary function (index 9) to a user-defined auxiliary function with normal
acknowledgment and output prior to the traversing motion.
MD22080 $MC_AUXFU_PREDEF_SPEC [ 9 ] = 'H25' (100101B)
3 No output to the PLC
The auxiliary function is not output to the PLC.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 631
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Bit Meaning
4 Spindle response after acknowledgement by the PLC
The associated system function is only executed after acknowledgment by the PLC.
5 Output prior to motion
The auxiliary function is output to the PLC before the traversing motions programmed in the part program block (path
and/or block-related positioning axis movements).
6 Output during motion
The auxiliary function is output to the PLC during the traversing motions programmed in the part program block (path
and/or block-related positioning axis movements).
7 Output at block end
The auxiliary function is output to the PLC after the traversing motions programmed in the part program block have
been completed (path and/or block-related positioning axis movements).
8 Not output after block search, types 1, 2, 4
Block search, types 1, 2, 4: The auxiliary function collected during the block search is not output.
9 Collection during block search with program test (type 5, SERUPRO)
For a block search with program test, the auxiliary function is collected group-specific in the following system variables:
● $AC_AUXFU_M_VALUE[<n>]
● $AC_AUXFU_M_EXT[<n>]
● $AC_AUXFU_M_STATE[<n>]
10 No output during block search with program test (type 5, SERUPRO)
For block search with program test, the auxiliary function is not output to the PLC.
11 Cross-channel auxiliary function (SERUPRO)
For block search with program test (SERUPRO), the help function is collected on a cross-channel basis in the global
list of the auxiliary functions.
Note
For each auxiliary function group, only the last auxiliary function of the group is always collected.
12 Output performed via synchronized action (read only)
The bit is set if the auxiliary function was output to the PLC via a synchronized action.
13 Implicit auxiliary function (read-only)
The bit is set if the auxiliary function was implicitly output to the PLC.
14 Active M01 (read only)
The bit is set if the auxiliary function, for active M01, was output to the PLC.
15 No output during positioning test run
During the run-in test, the auxiliary function is not output to the PLC.
16 Nibbling off
17 Nibbling on
18 Nibbling
Basic functions
632 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Note
In the case of auxiliary functions for which no output behavior has been defined, the following
default output behavior is active:
● Bit 0 = 1: Output duration one OB1 cycle
● Bit 7 = 1: Output at block end
11.2.3 Parameterization
Note
1. Auxiliary function group and block search
Auxiliary functions of the 1st auxiliary function group are, for a block search, only collected, but
not output.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 633
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Type
The identifier of an auxiliary function is defined via the "type," e.g.:
Note
The "type" cannot be changed for predefined auxiliary functions.
Address extension
The "address extension" of an auxiliary function is for addressing different components of the
same type. In the case of predefined auxiliary functions, the value of the "address extension"
is the spindle number to which the auxiliary function applies.
The setting is made via the following machine data:
MD22060 $MC_AUXFU_PREDEF_EXTENSION[<n>] (address extension for predefined
auxiliary functions)
Grouping together auxiliary functions
To assign an auxiliary function for all spindles of a channel to the same auxiliary function group,
the value "-1" is entered for the "address extension" parameter.
Example:
The auxiliary function M3 (machine data index = 6) is assigned to the second auxiliary function
group for all the channel's spindles.
MD22040 $MC_AUXFU_PREDEF_GROUP[ 6 ] =2
MD22050 $MC_AUXFU_PREDEF_TYPE[ 6 ] = "M"
MD22060 $MC_AUXFU_PREDEF_EXTENSION[ 6 ] = -1
MD22070 $MC_AUXFU_PREDEF_VALUE[ 6 ] =3
Value
The parameters "value" and "type" define the meaning of an auxiliary function, i.e. the system
function that is activated on the basis of this auxiliary function.
The "value" of an auxiliary function is defined in the machine data:
Basic functions
634 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
Note
The "value" cannot be changed for a predefined auxiliary function. For some predefined
auxiliary functions, the "value" can be reconfigured via additional machine data (see Section
"Associated auxiliary functions (Page 642)").
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 635
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
06;
Y 2XWSXWEHKDYLRU
6SLQGOHUHVSRQVH
2XWSXW $FNQ
0 $[LVPRYHPHQW
%ORFNFKDQJH W
06;
Y 2XWSXWEHKDYLRU
6SLQGOHUHVSRQVH
2XWSXW $FNQ
0 $[LVPRYHPHQW
%ORFNFKDQJH W
06;
Y 2XWSXWEHKDYLRU
6SLQGOHUHVSRQVH
2XWSXW $FNQ
0 $[LVPRYHPHQW
%ORFNFKDQJH W
06;
Y 2XWSXWEHKDYLRU
6SLQGOHUHVSRQVH
2XWSXW $FNQ
0 $[LVPRYHPHQW
%ORFNFKDQJH W
Basic functions
636 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.2 Predefined auxiliary functions
0;
Y 2XWSXWEHKDYLRU
6SLQGOHUHVSRQVH
2XWSXW $FNQ
$[LVPRYHPHQW
0
%ORFNFKDQJH W
0;
Y
6SLQGOHUHVSRQVH 2XWSXWEHKDYLRU
2XWSXW $FNQ
$[LVPRYHPHQW
0
%ORFNFKDQJH W
Y 'HIDXOWVHWWLQJ
6SLQGOHUHVSRQVH 06;
2XWSXWEHKDYLRU
2XWSXW $FNQ
$[LVPRYHPHQW
0
%ORFNFKDQJH W
Y 'HIDXOWVHWWLQJ
6SLQGOHUHVSRQVH 06;
2XWSXWEHKDYLRU
2XWSXW $FNQ
$[LVPRYHPHQW
0
%ORFNFKDQJH W
'HIDXOWVHWWLQJ
Y 0;
6SLQGOHUHVSRQVH
2XWSXWEHKDYLRU
2XWSXW $FNQ
$[LVPRYHPHQW
0
%ORFNFKDQJH W
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 637
Auxiliary function outputs to PLC
11.3 Userdefined auxiliary functions
Y 'HIDXOWVHWWLQJ
6SLQGOHUHVSRQVH 0;
2XWSXWEHKDYLRU
2XWSXW $FNQ
$[LVPRYHPHQW
0
%ORFNFKDQJH W
'HIDXOWVHWWLQJ
Y 0;
6SLQGOHUHVSRQVH
2XWSXWEHKDYLRU
2XWSXW $FNQ
$[LVPRYHPHQW
0
%ORFNFKDQJH W
Y 'HIDXOWVHWWLQJ
6SLQGOHUHVSRQVH 06;
2XWSXWEHKDYLRU
2XWSXW $FNQ
6 $[LVPRYHPHQW
%ORFNFKDQJH W
Basic functions
638 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.3 Userdefined auxiliary functions
The relevant predefined auxiliary functions can be extended for the following system functions:
Auxiliary function "spindle right" for the second spindle of the channel:
MD22010 $MC_AUXFU_ASSIGN_TYPE[ n ] = "M"
MD22020 $MC_AUXFU_ASSIGN_EXTENSION[ n ] =2
MD22030 $MC_AUXFU_ ASSIGN_VALUE[ n ] =3
Auxiliary function "spindle right" for the third spindle of the channel:
MD22010 $MC_AUXFU_ ASSIGN_TYPE[ m ] = "M"
MD22020 $MC_AUXFU_ASSIGN_EXTENSION[ m ] =3
MD22030 $MC_AUXFU_ ASSIGN_VALUE[ m ] =3
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 639
Auxiliary function outputs to PLC
11.3 Userdefined auxiliary functions
● A user-specific auxiliary function is output to the PLC according to the parameterized output
behavior.
● The functionality of a user-specific auxiliary function is implemented by the machine
manufacturer/user in the PLC user program.
11.3.1 Parameterization
Note
1. Auxiliary function group and block search
Auxiliary functions of the 1st auxiliary function group are, for a block search, only collected, but
not output.
Basic functions
640 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.3 Userdefined auxiliary functions
Type
The name of an auxiliary function is defined via the "type".
The identifiers for user-defined auxiliary functions are:
Address extension
MD22020 $MC_AUXFU_ASSIGN_EXTENSION[<n>] (address extension user-defined
auxiliary functions)
The functionality of the address extension is not defined in user-specific auxiliary functions. It
is generally used to distinguish between auxiliary functions with the same "value".
Grouping together auxiliary functions
If all the auxiliary functions of the same type and value are assigned to the same auxiliary
function group, a value of "-1" must be entered for the "address extension" parameter.
Example:
All user-specific auxiliary functions with the value "= 8" are assigned to the tenth auxiliary
function group.
MD22000 $MC_AUXFU_ASSIGN_GROUP [ 1 ] = 10
MD22010 $MC_AUXFU_ ASSIGN_TYPE [ 1 ] = "H"
MD22020 $MC_AUXFU_ ASSIGN_EXTENSION [ 1 ] = -1
MD22030 $MC_AUXFU_ ASSIGN_VALUE [ 1 ] =8
Value
MD22030 $MC_AUXFU_ASSIGN_VALUE[<n>] (value of user-defined auxiliary functions)
The functionality of the "value" parameter is not defined in user-specific auxiliary functions. The
value is generally used to activate the corresponding PLC user function.
Grouping together auxiliary functions
If all the auxiliary functions of the same type and address extension are assigned to the same
auxiliary function group, a value of "-1" must be entered for the "value" parameter.
Example:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 641
Auxiliary function outputs to PLC
11.4 Associated auxiliary functions
All user-specific auxiliary functions with the address extension "= 2" are assigned to the
eleventh auxiliary function group.
MD22000 $MC_AUXFU_ASSIGN_GROUP [ 2 ] = 11
MD22010 $MC_AUXFU_ ASSIGN_TYPE [ 2 ] = "H"
MD22020 $MC_AUXFU_ ASSIGN_EXTENSION [ 2 ] =2
MD22030 $MC_AUXFU_ ASSIGN_VALUE [ 2 ] = -1
Function
Associated help functions are user-defined help functions with the same properties as the
corresponding predefined help functions. User-defined auxiliary functions can be associated
for the following predefined auxiliary functions:
● M0 (programmed stop)
● M1 (optional stop)
G group
An associated help function is assigned to the G group of the corresponding predefined help
function.
Parameterization
Association of a user-defined auxiliary function with one of the predefined auxiliary functions
mentioned is set in the machine data:
● MD22254 $MC_AUXFU_ASSOC_M0_VALUE (associated M function for "Programmed
stop")
● MD22256 $MC_AUXFU_ASSOC_M1_VALUE (associated M function for "Optional stop")
Basic functions
642 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.4 Associated auxiliary functions
Selection
Selection of "Associated help function" (M-1) is made via the SINUMERIK Operate user
interface in the operating area "Automatic" > "Program control" by setting the HMI/PLC
interface signal DB21, ... DBX24.4.
Depending on the value of the FB1 parameter MMCToIf, the interface signal is transmitted from
the basic PLC program to the NC/PLC interface signal DB21, ... DBX30.5:
● "TRUE": Transmission
● "FALSE": No transmission
By default, the value of the parameter is "TRUE".
Note
Selection option via user interface SINUMERIK Operate
The selection of an associated help function is only displayed in the "Automatic" > "Program
control" operating area if it is parameterized in the machine data.
Application
Associated auxiliary functions can be used in:
● Main program
● Subprogram
● Cycle
Note
Associated auxiliary functions may not be used in synchronized actions.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 643
Auxiliary function outputs to PLC
11.5 Type-specific output behavior
Boundary conditions
Please note the following boundary conditions:
● A user-defined auxiliary function may not be associated a multiple number of times.
● It is not permissible to associate predefined auxiliary functions (e.g. M3, M4, M5 etc.).
Examples
1. Associating the user-defined auxiliary function M111 for M0:
MD22254 $MC_AUXFU_ASSOC_M0_VALUE = 111
The user-defined auxiliary function M111 therefore has the same functionality as M0.
2. Associating the user-defined auxiliary function M222 for M1:
MD22256 $MC_AUXFU_ASSOC_M1_VALUE = 222
The user-defined auxiliary function M222 therefore has the same functionality as M1.
Function
The output behavior of auxiliary functions relative to a traversing motions programmed in the
parts program block can be defined type-specifically.
Parameter assignment
Parameters are assigned to type-specific output behavior via the machine data:
MD22200 $MC_AUXFU_M_SYNC_TYPE (output time for M functions)
MD22210 $MC_AUXFU_S_SYNC_TYPE (output time for S functions)
MD22220 $MC_AUXFU_T_SYNC_TYPE (output time for T functions)
MD22230 $MC_AUXFU_H_SYNC_TYPE (output time for H functions)
MD22240 $MC_AUXFU_F_SYNC_TYPE (output time for F functions)
MD22250 $MC_AUXFU_D_SYNC_TYPE (output time for D functions)
MD22252 $MC_AUXFU_DL_SYNC_TYPE (output time for DL functions)
The following output behaviors can be parameterized:
MD $MC_AUXFU_xx_SYNC_TYPE = <value>
Basic functions
644 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.5 Type-specific output behavior
For a description of the various output behaviors, see the section titled "Output behavior
(Page 635)".
Note
For the output behavior that can be set for each type of auxiliary function, please refer to the
"Detailed Description of Machine Data" Parameter Manual.
Example
Output of auxiliary functions with different output behaviors in a part program block with
traverse movement.
Output behavior for which parameters have been assigned:
Program code
...
N10 G01 X100 M07 H5 T5
...
;
7
0
+
!6WDUW1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 645
Auxiliary function outputs to PLC
11.6 Priorities of the output behavior for which parameters have been assigned
11.6 Priorities of the output behavior for which parameters have been
assigned
The following priorities must be observed for the following areas in connection with the
parameterized output behavior of an auxiliary function:
● Output duration (normal / quick acknowledgement)
● Output relative to motion (prior to / during / after the motion)
As a general rule, the parameterized output behavior with lower priority becomes active if no
output behavior with higher priority has been parameterized.
Output duration
The following priorities apply to the output duration:
Note
Part program blocks without path motion
In a part program block without a path motion (even those with positioning axes and spindles),
the auxiliary functions are all output immediately in a block.
Basic functions
646 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.7 Programming an auxiliary function
Syntax
An auxiliary function is programmed in a part program block with the following syntax:
<Type>[<Address extension>=]<Value>
Note
If no address extension is programmed, the address extension is implicitly set = 0.
Predefined auxiliary functions with the address extension = 0 always refer to the master spindle
of the channel.
Symbolic addressing
The values for the "address extension" and "value" parameters can also be specified
symbolically. The symbolic name for the address extension must then be stated in brackets.
Example:
Symbolic programming of the auxiliary function M3 (spindle right) for the 1st spindle:
Note
If you use symbolic names to program an auxiliary function, the symbolic name is not
transferred when the auxiliary function is output to the PLC. The corresponding numerical value
is transferred instead.
Examples
Example 1: Programming of predefined auxiliary functions
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 647
Auxiliary function outputs to PLC
11.8 Programmable output duration
Example 2: Programming examples of auxiliary functions with the corresponding values for
output to the PLC
Function
User-specific auxiliary functions for which the output behavior "Output duration of an OB1 cycle
(slow acknowledgment)" was parameterized can be defined for individual outputs via the part
program instruction QU (Quick) for auxiliary functions with quick acknowledgment.
Syntax
An auxiliary function with quick acknowledgment is defined in a part program block with the
following syntax:
<Type>[<Address extension>]=QU(<Value>)
Example
Different behavior for the output of the auxiliary functions M100 and M200 in a part program.
The output behavior of the auxiliary functions is parameterized as follows:
● M100
– Output duration one OB1 cycle (slow acknowledgment)
– Output during motion
● M200
– Output duration one OB1 cycle (slow acknowledgment)
– Output prior to motion
Basic functions
648 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.8 Programmable output duration
1)
Without a traversing motion, auxiliary functions are always output to the PLC immediately.
The following figure shows the time sequence of the part program. Please note the time
difference during the processing of part program blocks N20 and N30.
;D[LV
<D[LV
0
0
%ORFNQXPEHU 1 1 1 1 1
6WUREHIURP1&.DQG 0
DFNQRZOHGJHPHQWE\3/&
EDVLFSURJUDP 0
0FKDQJH167
0FKDQJH167
3/&F\FOHWLPH2%
2%
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 649
Auxiliary function outputs to PLC
11.10 Auxiliary functions without block change delay
Function
On output of an auxiliary function to the PLC, the following signals and values are transferred
to the NC/PLC interface:
● Change signals
● "Address extension" parameter
● "Value" parameter
Further information
● Function Manual PLC and Basic Program, Basic PLC program
● Function Manual PLC and Basic Program, Reference on the basic PLC program
Function
For auxiliary functions with parameterized and/or programmed output behavior, too:
● "Output duration one OB40 cycle (quick acknowledgment)"
● "Output before the motion" or "Output during the motion"
there may be drops in velocity in continuos-path mode (short traverse paths and high
velocities). This the system has to wait for acknowledgment of the auxiliary function by the PLC
toward the end of the block. To avoid these velocity drops, the block change can be made
irrespective of whether such auxiliary functions have been acknowledged:
Basic functions
650 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.11 M function with an implicit preprocessing stop
Parameter assignment
Suppression of the block change delay with quick auxiliary functions is set via the machine data:
MD22100 $MC_AUXFU_QUICK_BLOCKCHANGE (block change delay with quick auxiliary
functions)
Value Meaning
0 In the case of quick auxiliary function output to the PLC, the block change is delayed until
acknowledgment by the PLC (OB40).
1 In the case of quick auxiliary function output to the PLC, the block change is not delayed.
Boundary conditions
Synchronism of auxiliary functions that are output without a block change delay is no longer
ensured for the part program block in which they are programmed. In the worst case scenario,
acknowledgment comes one OB40 cycle and execution of the auxiliary function comes one
OB1 cycle after the change to the next part program block.
Function
Triggering a preprocessing stop in conjunction with an auxiliary function can be programmed
explicitly via the STOPRE part program command. Always triggering a preprocessing stop in M
function programming can be parameterized for each M function via the following machine data:
MD10713 $MN_M_NO_FCT_STOPRE[<n>] (M function with preprocessing stop)
Example
The user-defined M function M88 is intended to trigger a preprocessing stop.
Parameterization:
MD10713 $MN_M_NO_FCT_STOPRE [ 0 ] = 88
Application:
Part program (extract)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 651
Auxiliary function outputs to PLC
11.12 Response to overstore
Supplementary conditions
If a subprogram is called indirectly via an M function in a part program in one of the following
ways, no preprocessing stop is performed:
● MD10715 $MN_M_NO_FCT_CYCLE (M function to be replaced by subprogram)
● M98 (ISO dialect T / ISO dialect M)
Overstore
On the SINUMERIK operator interface, before starting the following functions:
● NC START of a part program
● NC START to resume an interrupted part program
the auxiliary functions that are output at the start can be changed by the "Overstore" function.
Possible applications include:
● Addition of auxiliary functions after block search
● Restoring the initial state to position a part program
Duration of validity
An overstored auxiliary function, e.g. M3 (spindle right), is valid until it is overwritten by another
auxiliary function from the same auxiliary function group, by additional overstoring or by
programming in a part program block.
Basic functions
652 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.13 Behavior during block search
Output behavior
In the case of type 1, 2, and 4 block searches, the auxiliary functions are collected on the basis
of specific groups. The last auxiliary function in each auxiliary function group is output after NC-
START in a separate part program block before the actual reentry block, and has the following
output behavior:
● Output duration of one OB1 cycle (normal acknowledgement)
● Output prior to motion
Output control
Whether or not the auxiliary function is output to the PLC after a block search can be configured
via bit 8 of the machine data:
● MD22080 $MC_AUXFU_PREDEF_SPEC[<n>]
(output behavior of predefined auxiliary functions)
where <n> = system function index (0 ... 32)
● MD22035 $MC_AUXFU_ASSIGN_SPEC[<n>]
(output behavior of user-defined auxiliary functions)
where <n> = auxiliary function index (0 ... 254)
● MD11110 $MN_AUXFU_GROUP_SPEC[<n>]
(output behavior of the auxiliary functions in a group)
where <n> = group index (0 ... 63)
This behavior does not affect the display and does not affect variables
$AC_AUXFU_STATE[<n>], $AC_AUXFU_VALUE[<n>], and $AC_AUXFU_EXT[<n>].
The auxiliary functions are always regarded as collected after a block search, even though they
are not output to the PLC.
During collection, an auxiliary function that is not output after a block search also overwrites an
auxiliary function whose bit 8 is not set.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 653
Auxiliary function outputs to PLC
11.13 Behavior during block search
The user can scan the collected auxiliary functions after a block search and, under certain
circumstances, output them again by means of the subprogram or synchronized actions.
Note
The following auxiliary functions are not collected:
● Auxiliary functions which are not assigned to any auxiliary function group.
● Auxiliary functions which are assigned to the first auxiliary function group.
Function
User-defined auxiliary functions can also be assigned to multiple groups via the group
assignment (MD22000 $MC_AUXFU_ASSIGN_GROUP). During the block search these
auxiliary functions are collected for all the configured groups.
Note
Predefined auxiliary functions can only be assigned to one group.
Basic functions
654 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.13 Behavior during block search
Example
The DIN includes the following M-commands for coolant output:
● M7: Coolant 2 ON
● M8: Coolant 1 ON
● M9: Coolants 1 and 2 OFF
Consequently, both coolants can also be active together:
● If M7 and M8 are collected in two separate groups (e.g. groups 5 and 6)
● If M9 has to be assigned to these two groups, e.g.
– Group 5: M7, M9
– Group 6: M8, M9
Parameterization:
MD11100 $MN_AUXFU_MAXNUM_GROUP_ASSIGN = 4
MD22000 $MC_AUXFU_ASSIGN_GROUP [0] = 5
MD22000 $MC_AUXFU_ASSIGN_GROUP [1] = 5
MD22000 $MC_AUXFU_ASSIGN_GROUP [2] = 6
MD22000 $MC_AUXFU_ASSIGN_GROUP [3] = 6
MD22010 $MC_AUXFU_ASSIGN_TYPE [0] = M
MD22010 $MC_AUXFU_ASSIGN_TYPE [1] = M
MD22010 $MC_AUXFU_ASSIGN_TYPE [2] = M
MD22010 $MC_AUXFU_ASSIGN_TYPE [3] = M
MD22020 $MC_AUXFU_ASSIGN_EXTENSION [0] = 0
MD22020 $MC_AUXFU_ASSIGN_EXTENSION [1] = 0
MD22020 $MC_AUXFU_ASSIGN_EXTENSION [2] = 0
MD22020 $MC_AUXFU_ASSIGN_EXTENSION [3] = 0
MD22030 $MC_AUXFU_ASSIGN_VALUE [0] = 7
MD22030 $MC_AUXFU_ASSIGN_VALUE [1] = 9
MD22030 $MC_AUXFU_ASSIGN_VALUE [2] = 8
MD22030 $MC_AUXFU_ASSIGN_VALUE [3] = 9
MD22035 $MC_AUXFU_ASSIGN_SPEC [0] = 'H121'
MD22035 $MC_AUXFU_ASSIGN_SPEC [1] = 'H121'
MD22035 $MC_AUXFU_ASSIGN_SPEC [2] = 'H121'
MD22035 $MC_AUXFU_ASSIGN_SPEC [3] = 'H121'
Part program (section):
Program code
...
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 655
Auxiliary function outputs to PLC
11.13 Behavior during block search
Program code
N10 ... M8
N20 ... M9
N30 ... M7
...
During the block search, the auxiliary function M9 is collected for groups 5 and 6.
Scan of the collected M auxiliary functions:
M function of the fifth group: $AC_AUXFU_M_VALUE [4] = 7
M function of the sixth group: $AC_AUXFU_M_VALUE [5] = 9
Function
The following predefined procedure is provided to simplify the process of determining the
output sequence of M auxiliary functions for the programmer:
AUXFUMSEQ(VAR INT _NUM_IN, VAR INT _M_IN[], VAR INT _EXT_IN[], VAR
INT _NUM_OUT, VAR INT _M_OUT[], VAR INT _EXT_OUT[])
Input parameters:
VAR INT _NUM_IN: Number of relevant M commands
VAR INT _M_IN[]: Field of relevant M codes
VAR INT _EXT_IN[]: Field of relevant M address extensions
Output parameters:
VAR INT _NUM_OUT: Number of determined M codes
VAR INT _M_OUT[]: Field of determined M codes
VAR INT _EXT_OUT[]: Field of determined M address extensions
The function determines the sequence in which the M auxiliary functions, which have been
collected on a group-specific basis, are output for the predefined M codes. The sequence is
determined from the collection times $AC_AUXFU_M_TICK[<n>] (see Section "Time stamp of
the active M auxiliary function (Page 656)").
Basic functions
656 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.13 Behavior during block search
A particular M code is only taken into account once, even if it belongs to more than one group.
If the number of relevant M commands is less than or equal to 0, all the collected M codes are
output. The number of relevant M commands is limited to 64.
Example
M commands for coolant output:
● M7: Coolant 2 ON
● M8: Coolant 1 ON
● M9: Coolants 1 and 2 OFF
Group assignment:
● Group 5: M7, M9
● Group 6: M8, M9
Program code
...
N10 ... M8
N20 ... M9
N30 ... M7
...
During block searches, the auxiliary functions are collected on the basis of specific groups. The
last auxiliary function in an auxiliary function group is output to the PLC following a block search:
● Group 5: M7
● Group 6: M9
If they are output in the sequence M7 → M9, no coolant is then active. However, coolant 2 would
be active during the execution of the program. Therefore, the correct output sequence for the
M auxiliary functions is determined with an ASUP which contains the predefined procedure
AUXFUMSEQ(…):
Program code
DEF INT _I, _M_IN[3], _EXT_IN[3], _NUM_OUT, _M_OUT[2], _EXT_OUT[2]
_M_IN[0]=7 _EXT_IN[0]=0
_M_IN[1]=8 _EXT_IN[1]=0
_M_IN[2]=9 _EXT_IN[2]=0
AUXFUMSEQ(3,_M_IN,_EXT_IN,_NUM_OUT,_M_OUT,_EXT_OUT)
FOR _I = 0 TO _NUM_OUT-1
M[_EXT_OUT[_I]]=_M_OUT[_I]
ENDFOR
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 657
Auxiliary function outputs to PLC
11.13 Behavior during block search
Function
In certain situations, such as a tool change, it may be necessary not to output the spindle-
specific auxiliary functions collected during the block search in action blocks, but to delay
output, for example, until after a tool change. The automatic output of the spindle-specific
auxiliary functions after a block search may be suppressed for this purpose. Output can then be
performed manually later by overstoring or by an ASUP.
Parameterization
Suppression of the automatic output of the spindle-specific auxiliary functions after a block
search is set via machine data:
MD11450 $MN_SEARCH_RUN_MODE (behavior after a block search)
System variables
The spindle-specific auxiliary functions are always stored in the following system variables
during block searches, irrespective of the parameter assignment described above:
For later output of the spindle-specific auxiliary functions, the system variables can be read in
an ASUP, for example, and output after the action blocks are output:
Basic functions
658 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.13 Behavior during block search
Note
The contents of the system variables $P_S, $P_DIR and $P_SGEAR may be lost after block
search due to synchronization operations.
For more detailed information on ASUP, block search and action blocks, see Section "Mode
group, channel, program operation, reset response (Page 29)".
Example
Block search for contour with suppression of output of the spindle-specific auxiliary functions
and start of an ASUP after output of action blocks.
Parameterization: MD11450 $MN_SEARCH_RUN_MODE, bit 2 = 1
After the block search on N55, the ASUP is started.
Part program:
ASUP:
Explanation of example
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 659
Auxiliary function outputs to PLC
11.13 Behavior during block search
If the number of spindles is known, outputs of the same type can be written in one part program
block to reduce program runtime.
Output of $P_SEARCH_SDIR should be made in a separate part program block because
spindle positioning or switchover to axis mode in conjunction with the gear change can cause
an alarm.
If the ASUP which has been started is ended with REPOSA, spindle 1 remains at position 111
degrees, while spindle 2 is repositioned at position 77 degrees.
If a different response is required, the program sequence for block search (for example) "N05
M3 S..." and "N30 SPOS[2] = IC(...)" requires special treatment.
Whether block search is active can be ascertained in the ASUP via the system variable
$P_SEARCH.
$P_SEARCH==1 ; Block search active
In the case of incremental positioning after speed control operation, the path to be traversed is
defined but, in some cases, the final position reached only becomes known during positioning.
This is the case, for example, during position calibration on crossing the zero mark when
switching on position control. For this reason, the distance programmed after the zero position
is accepted as the REPOS position (REPOSA in the ASUP).
Supplementary conditions
Collected S values
The meaning of an S value in the part program depends on the feed type that is currently active:
G93, G94, G95, G97, G971: The S value is interpreted as the speed
G96, G961: The S value is interpreted as a constant cutting rate
If the feed operation is changed (e.g. for a tool change) before output of the system variable
$P_SEARCH_S, the original setting from the target block in the part program must be restored
to avoid use of the wrong type of feed.
Collected direction of rotation
For output of the direction of rotation, the system variable $P_SEARCH_SDIR is assigned
default value "-5" at the start of the block search. This value has no effect on output.
This ensures that the last spindle operating mode is retained for a block search across program
sections in which spindles are not programmed with a direction of rotation, positioning or axis
mode.
The programming of M19, SPOS, and SPOSA is collected as "M-19" (internal M19) in the
system variables $P_SEARCH_SDIR as an alternative to M3, M4, M5, and M70.
For the output of "M-19", the positioning data is read internally from the system variables
$P_SEARCH_SPOS and $P_SEARCH_SPOSMODE. Both system variables can also be
written to, in order, for example, to make corrections.
Note
Because of the assignments described above (e.g. M[<n>] = $P_SEARCH_SDIR[<n>]), the
values "-5" and "19" generally remain hidden from the user and only have to be observed in the
case of special evaluation of the system variables in the ASUP.
Basic functions
660 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.13 Behavior during block search
Output behavior
In the case of type 5 block searches (SERUPRO), an auxiliary function can be output to the PLC
during the block search and/or collected on a group-specific basis in the following system
variables:
● $AC_AUXFU_PREDEF_INDEX[<n>] (index of a predefined auxiliary function)
● $AC_AUXFU_TYPE[<n>] (type of auxiliary function)
● $AC_AUXFU_STATE[<n>] (output state of the auxiliary function)
● $AC_AUXFU_EXT[<n>] (address extension of the auxiliary function)
● $AC_AUXFU_VALUE[<n>] (value of the auxiliary function)
For a description of the system variables, see Section "Querying system variables
(Page 674)".
Output control
Whether an auxiliary function is output to the PLC during a type 5 block search (SERUPRO)
and/or collected on a group-specific basis in the following system variables can be configured
via bits 9 and 10 of the machine data:
● MD22080 $MC_AUXFU_PREDEF_SPEC[<n>]
(output behavior of predefined auxiliary functions)
where <n> = system function index (0 ... 32)
● MD22035 $MC_AUXFU_ASSIGN_SPEC[<n>]
(output behavior of user-defined auxiliary functions)
where <n> = auxiliary function index (0 ... 254)
● MD11110 $MN_AUXFU_GROUP_SPEC[<n>]
(output behavior of the auxiliary functions in a group)
where <n> = group index (0 ... 63)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 661
Auxiliary function outputs to PLC
11.13 Behavior during block search
Output counter
The user can output the collected auxiliary functions to the PLC on a channel-by-channel basis
in the block search ASUP. For the purposes of serialized output via multiple channels, the three
output counters are changed across all the channels each time an auxiliary function is output:
Explanation
● An auxiliary function package comprises a maximum of ten auxiliary functions.
● Two packages can be processed per IPO cycle in each channel during SERUPRO because
synchronized actions are processed in this cycle.
● An output sequence of up to a maximum of 20 packages (2 packages per channel * 10
channels) can be processed within an IPO cycle across all channels.
The encoding indicates how many auxiliary function packages and, within these, how many
auxiliary functions have been processed during the same IPO cycle:
● Auxiliary functions which have been collected in one IPO cycle have the same sequence
counter.
● Auxiliary functions which have been collected in one package (block or synchronized action)
all have the same package counter.
The total on the auxiliary function counter increases every time an auxiliary function is collected.
Basic functions
662 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.13 Behavior during block search
Q Q
Q
$&B$8;)8B35('()B,1'(;>Q@
$&B$8;)8B35('()B,1'(;>Q@ $&B$8;)8B35('()B,1'(;>Q@
$&B$8;)8B7<3(>Q@ $&B$8;)8B7<3(>Q@ $&B$8;)8B7<3(>Q@
$&B$8;)8B(;7>Q@ $&B$8;)8B(;7>Q@ $&B$8;)8B(;7>Q@
$&B$8;)8B9$/8(>Q@ $&B$8;)8B9$/8(>Q@ $&B$8;)8B9$/8(>Q@
$&B$8;)8B67$7(>Q@ $&B$8;)8B67$7(>Q@ $&B$8;)8B67$7(>Q@
$&B$8;)8B63(&>Q@ $&B$8;)8B63(&>Q@
$&B$8;)8B63(&>Q@
$&B$8;)8B7,&.>Q@ $&B$8;)8B7,&.>Q@ $&B$8;)8B7,&.>Q@
*OREDOOLVWRIDX[LOLDU\IXQFWLRQV
Q 0$;180B*52836
0$;180B&+$11(/6
Q $1B$8;)8B/,67B*5283,1'(;>Q@ $1B$8;)8B/,67B&+$112>Q@
$1B$8;)8B/,67B(1',1'(;
The global list is structured on the basis of the sequence in which the search target was found.
It is intended to be used as a system proposal for auxiliary functions to be output in the following
ASUP at the end of SERUPRO. If an auxiliary function is not to be output, the corresponding
group index is to be set to "0".
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 663
Auxiliary function outputs to PLC
11.13 Behavior during block search
This affects the groups of auxiliary functions for any spindle configured in the system, whereby
the spindle number corresponds to an auxiliary function's address extension.
Note
Within the context of the "axis interchange" and "axis container rotation" functions, the auxiliary
functions for programming the spindle must always be specified in a way which ensures
compatibility with the actual (motor) state during interchange/rotation. A distinction is made
here between the axis interchange and axis container mechanisms.
Example of axis container rotation:
An axis container has four spindles, each assigned to a separate channel (1 - 4). M3 S1000 is
always programmed in channel 1, and an axis container rotation is then executed. The other
channels do not perform any spindle programming. Following the third axis container rotation
and the fourth spindle programming, M3, all four spindles rotate clockwise at a speed of 1000
rpm. If the end of the SERUPRO now lies within this range, every ASUP for a channel is
expected to contain an M3 S1000 for the local spindle.
During interchange however, the collected auxiliary functions may only be assigned to the
channel where the spindle is currently located.
Basic functions
664 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.13 Behavior during block search
The spindle auxiliary functions are filtered out beforehand at the end of the block search
depending on the spindle state. The channel data is updated accordingly. The global auxiliary
function list can be processed sequentially in the ASUPs at the end of the SERUPRO, and the
sorted auxiliary functions can be output with channel synchronization.
Function
After completing the block search with the program test (SERUPRO), before starting the
subsequent processing, the auxiliary functions collected during the block search must be
output. For this purpose, during the block search, the auxiliary functions are collected in a global
list. The SERUPRO end ASUPs generate the corresponding part program blocks channel-
specific from this list. This ensures that the collected auxiliary functions can be output both
channel-specific as well as cross-channel in the correct sequence. A fully functional SERUPRO
end ASUP is a component of the NC software.
Users/machinery construction OEMs can change the SERUPRO end ASUP. The
subsequently described functions support processing the global list of auxiliary functions and
generating the part program blocks required for synchronized auxiliary function output.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 665
Auxiliary function outputs to PLC
11.13 Behavior during block search
Function AUXFUSYNC(...)
Function:
The function AUXFUSYNC generates a complete part program block as string from the global list
of auxiliary functions at each call. The part program block either contains auxiliary functions or
commands to synchronize auxiliary function outputs (WAITM, G4, etc.).
The function triggers a preprocessing stop.
Syntax:
PROC AUXFUSYNC(VAR INT <NUM>, VAR INT <GROUPINDEX>[10], VAR
STRING[400] <ASSEMBLED>)
Parameters:
<NUM>: Contains information about the part program block, supplied in param‐
eter <ASSEMBLED> or the auxiliary functions contained in it.
Value range: -1, 0, 1 ... 10
Val‐ Meaning
ue
≥1 Number of auxiliary functions contained in the part program block
0 Part program block without auxiliary functions, e.g. WAITM, G4
-1 End identifier. The global list of auxiliary functions has been
completely processed for the actual channel.
<GROUP INDEX>: Contains the indices of the auxiliary function groups contained in the
part program block. With index = number of the auxiliary function group
-1
<ASSEMBLED>: Contains the complete part program block for the channel-specific
SERUPRO end ASUP as string.
Further information:
If auxiliary functions were collected via a synchronized action, two NC blocks are generated.
One NC block to output the auxiliary functions. An executable NC block via which the NC block
is transported to the main run to output the auxiliary functions:
1. Output of the auxiliary functions via synchronized action, e.g.: WHEN TRUE DO M100 M102
2. Executable NC block, e.g.: G4 F0.001
Function AUXFUDEL(...)
Function:
The function AUXFUDEL deletes the specified auxiliary function from the global list of auxiliary
functions channel-specific for the calling channel. Deletion is realized by setting the
corresponding group index ...GROUPINDEX[n] to 0.
The function must be called before calling AUXFUSYNC.
The function triggers a preprocessing stop.
Syntax:
PROC AUXFUDEL(CHAR <TYPE>, INT <EXTENSION>, REAL <VALUE>, INT
<GROUP>)
Basic functions
666 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.13 Behavior during block search
Parameters:
Function AUXFUDELG(...)
Function:
The function AUXFUDELG deletes all auxiliary functions of the specified auxiliary function
group from the global list of auxiliary functions channel-specific for the calling channel. Deletion
is realized by setting the corresponding group index ...GROUPINDEX[n] to 0.
The function must be called before calling AUXFUSYNC.
The function triggers a preprocessing stop.
Syntax:
PROC AUXFUDELG(INT <GROUP>)
Parameters:
NOTICE
Multi-channel block search and AUXFUDEL / AUXFUDELG
If, for a multi-channel block search in the SERUPRO end ASUPs, auxiliary functions with
AUXFUDEL / AUXFUDELG are deleted from the global list of auxiliary functions, before
calling the AUXFUSYNC function, the channels involved must be synchronized. The
synchronization ensures that before calling the AUXFUSYNC, all delete requests are
processed and a consistent list is available.
Examples
Two examples for configuring a user-specific SERUPRO end ASUP.
Example 1: Deleting auxiliary functions and generating the auxiliary function output with
AUXFUSYNC(...)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 667
Auxiliary function outputs to PLC
11.13 Behavior during block search
Basic functions
668 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.13 Behavior during block search
Example 2: Deleting auxiliary functions and generating the auxiliary function output without
AUXFUSYNC(...)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 669
Auxiliary function outputs to PLC
11.13 Behavior during block search
Basic functions
670 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.14 Implicitly output auxiliary functions
Function
Implicitly output auxiliary functions are auxiliary functions which have not been programmed
explicitly and which are also output by other system functions (e.g. transformation selection,
tool selection, etc.). These implicit auxiliary functions do not lead to any system function;
instead, the M codes are collected according to output behavior parameters assigned to them
and/or are output to the PLC.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 671
Auxiliary function outputs to PLC
11.15 Information options
Parameterization
The M codes for auxiliary functions to be output implicitly are defined with the machine data:
● MD22530 $MC_TOCARR_CHANGE_M_CODE (M code at toolholder change)
This machine data value indicates the number of the M code which is output when a
toolholder is activated at the NC/PLC interface.
If the value is positive, the unchanged M code is always output.
If the value is negative, the number of the toolholder is added to the machine data value, and
this number is output.
● MD22532 $MC_GEOAX_CHANGE_M_CODE (M code when switching the geometry axes)
Number of the M code which is output when the geometry axes on the NC/PLC interface are
switched.
● MD22534 $MC_TRAFO_CHANGE_M_CODE (M code in the case of transformation
changes)
Number of the M code which is output during a transformation switch of the geometry axes
at the NC/PLC interface.
Note
No M code is output if the number of the M code being output or the MD22530/MD22532/
MD22534 value is between 0 and 6, or is either 17 or 30. Whether or not an M code which
is generated in this manner leads to conflicts with other functions is not monitored.
Output behavior
In the case of implicitly output auxiliary functions, bit 13 is set in machine data MD22080 or
MD22035 (output behavior of predefined or user-defined auxiliary functions).
This bit can be queried via the system variable $AC_AUXFU_SPEC[<n>].
Basic functions
672 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.15 Information options
Function
The output status and acknowledgment status of M auxiliary functions can be displayed on the
user interface on a group-specific basis.
Requirements
To implement function-oriented acknowledgment and display of M auxiliary functions, the
auxiliary functions must be managed in the PLC and, thus, in the user program itself. Therefore,
it is up to the PLC programmer to program the acknowledgment of these auxiliary functions.
The programmer must know which auxiliary functions in which group have to be acknowledged.
Standard
M auxiliary functions that are not managed by means of the PLC are identified by the NC as
"transferred" and output to the PLC. There is no functional acknowledgment for these auxiliary
functions. All M-auxiliary functions collected after a block search are also displayed so that the
operator knows which auxiliary functions will be output after a start following a block search.
PLC activities
In the case of auxiliary function groups that are managed by the PLC itself, the PLC user
program must acknowledge all auxiliary functions of this group at Transfer and End of function.
The PLC programmer must know all the auxiliary functions of these groups.
Miscellaneous
Only the group-specific M auxiliary functions are displayed. The block-by-block display is also
retained. Up to 15 groups can be displayed, whereby only the last M function of a group that was
either collected or output to the PLC is displayed for each group. The M functions are presented
in various display modes depending on their status:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 673
Auxiliary function outputs to PLC
11.15 Information options
Display update
The display is organized in such a way that the collected auxiliary functions are always output
first, before those managed by the PLC and before those managed by the NC. A collected
auxiliary function is marked as collected until it has been output from the NC to the PLC. PLC-
managed auxiliary functions are retained until they are substituted by another auxiliary
function. At a reset, only the collected auxiliary functions and the NC-managed auxiliary
functions are deleted.
Function
Auxiliary functions can be queried on a group-specific basis via system variables in the part
program and via synchronized actions:
$AC_AUXFU_... [<n>] = <Value>
Basic functions
674 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.15 Information options
Example
All M-auxiliary functions of the 1st group will be stored in the order they are output
id=1 every $AC_AUXFU_M_STATE[0]==2 do $AC_FIFO[0,0]=
$AC_AUXFU_M_VALUE[0]
Further information
List Manual System Variables
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 675
Auxiliary function outputs to PLC
11.16 Supplementary conditions
Spindle replacement
Because the auxiliary functions are parameterized channel-specifically, if function: "spindle
replacement" is used, the spindle-specific auxiliary function must be parameterized
immediately in all channels that use the spindles.
Tool management
If tool management is active, the following constraints apply:
● T and M<k> functions are not output to the PLC.
Note
k is the parameterized value of the auxiliary function for the tool change (default: 6):
MD22560 $MC_TOOL_CHANGE_M_CODE (auxiliary function for tool change)
● If no address extension is programmed, the auxiliary function refers to the master spindle or
the master tool holder of the channel.
Definition of the master spindle:
– MD20090 $MC_SPIND_DEF_MASTER_SPIND
– Part program instruction: SETMS
Definition of the master tool holder
– MD20124 $MC_TOOL_MANAGEMENT_TOOLHOLDER
– Part program instruction: SETMTH
Basic functions
676 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.16 Supplementary conditions
Thread cutting
During active thread cutting G33, G34 and G35, the following output behavior is always active
for the spindle-specific auxiliary functions:
● M3 (spindle right)
● M4 (spindle left)
Synchronized actions
With output auxiliary functions from synchronized actions, the parameterized output behavior
is ignored except for the following parameters:
● Bit0: Output duration of one OB1 cycle (normal acknowledgement)
● Bit1: Output duration of one OB40 cycle (quick acknowledgement)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 677
Auxiliary function outputs to PLC
11.17 Examples
Spindle-specific auxiliary function output only as information for the PLC user program
In certain controller situations, e.g. at the end of a block search, the collected spindle-specific
auxiliary functions (e.g. M3, M4, M5, M19, M40...M45, M70) is output to the NC/PLC interface only
for information purposes for the PLC user program. The controller generates a part program
block (action block) in which the collected auxiliary functions are entered with a negative
address extension. The corresponding system functions are then not executed.
Example: M(-2) = 41 request gear stage change for the 2nd spindle
11.17 Examples
Task
Parameter assignment of auxiliary functions M3, M4, and M5 for the second spindle of the
channel
Parameter assignment: M3
Requirements:
● Machine data index: 0 (first user-defined auxiliary function)
● auxiliary function group: 5
● Type and value: M3 (spindle right)
Basic functions
678 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.17 Examples
MD22000 $MC_AUXFU_ASSIGN_GROUP[ 0 ] =5
MD22010 $MC_AUXFU_ASSIGN_TYPE [ 0 ] = "M"
MD22020 $MC_AUXFU_ASSIGN_EXTENSION [ 0 ] =2
MD22030 $MC_AUXFU_ASSIGN_VALUE [ 0 ] =3
MD22035 $MC_AUXFU_ASSIGN_SPEC [ 0 ] = 'H21'
Parameter assignment: M4
Requirements:
● Machine data index: 1 (second user-defined auxiliary function)
● auxiliary function group: 5
● Type and value: M4 (spindle left)
● Address extension: 2 as appropriate for the 2nd spindle of the channel
● Output behavior:
– Output duration one OB1 cycle (normal acknowledgment)
– Spindle response following acknowledgment
– Output during motion
Parameter assignment:
MD22000 $MC_AUXFU_ASSIGN_GROUP [ 1 ] =5
MD22010 $MC_AUXFU_ASSIGN_TYPE [ 1 ] = "M"
MD22020 $MC_AUXFU_ASSIGN_EXTENSION [ 1 ] =2
MD22030 $MC_AUXFU_ASSIGN_VALUE [ 1 ] =4
MD22035 $MC_AUXFU_ASSIGN_SPEC [ 1 ] = 'H51'
Parameter assignment: M5
Requirements:
● Machine data index: 2 (third user-defined auxiliary function)
● auxiliary function group: 5
● Type and value: M5 (spindle stop)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 679
Auxiliary function outputs to PLC
11.17 Examples
MD22000 $MC_AUXFU_ASSIGN_GROUP [ 2 ] =5
MD22010 $MC_AUXFU_ASSIGN_TYPE [ 2 ] = "M"
MD22020 $MC_AUXFU_ASSIGN_EXTENSION [ 2 ] =2
MD22030 $MC_AUXFU_ASSIGN_VALUE [ 2 ] =5
MD22035 $MC_AUXFU_ASSIGN_SPEC [ 2 ] = 'H91'
Task
Parameterization of the auxiliary function-specific machine data for a machine with the
following configuration:
Spindles
● Spindle 1: Master spindle
● Spindle 2: Second spindle
Gear stages
● Spindle 1: 5 gear stages
● Spindle 2: No gear stages
Switching functions for cooling water on/off
● Spindle 1
– "On" = M50
– "Off" = M51
● Spindle 2
– "On" = M52
– "Off" = M53
Basic functions
680 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.17 Examples
Requirements
Spindle 1 (master spindle)
Note
Default assignments
● The auxiliary functions M3, M4, M5, M70 and M1=3, M1=4, M1=5, M1=70 of spindle 1
(master spindle) are assigned as standard to the 2nd auxiliary function group.
● All S and S1 values of spindle 1 (master spindle) are assigned as standard to the
3rd auxiliary function group.
● The gear stage last programmed is to be output after block search. The following auxiliary
functions are assigned for this reason to the 9th auxiliary function group:
– M40, M41, M42, M43, M44, M45
– M1=40, M1=41, M1=42, M1=43, M1=44, M1=45
● The auxiliary functions M3, M4, M5, M70 and M1=3, M1=4, M1=5, M1=70 (2nd auxiliary
function group) and S and S1 values (3rd auxiliary function group) should possess the
following output behavior:
– Output duration one OB40 cycle (quick acknowledgment)
– Output prior to motion
● The auxiliary functions for gear changeover M40 to M45 and M1=40 to M1=45 (9th auxiliary
function group) should have the following output behavior:
– Output duration of one OB1 cycle (normal acknowledgment)
– Output prior to motion
Spindle 2
● Only one M function for directional reversal may be programmed in one block. The direction
of rotation last programmed is to be output after block search. The following auxiliary
functions are assigned for this reason to the 10th auxiliary function group:
– M2=3, M2=4, M2=5, M2=70
● All S2 values are assigned to the 11th auxiliary function group.
● The auxiliary functions M2=3, M2=4, M2=5, M2=70 (10th auxiliary function group) and S2
values (11th auxiliary function group) should have the following output behavior:
– Output duration one OB40 cycle (quick acknowledgment)
– Output prior to motion
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 681
Auxiliary function outputs to PLC
11.17 Examples
Cooling water
● It is not permissible to switch the cooling water on and off in one part program block. After
a block search, the cooling water will be switched on or off. The following auxiliary functions
are assigned for this reason, e.g. to the 12th or 13th auxiliary function group:
– 12th auxiliary function group: M50, M51
– 13th auxiliary function group: M52, M53
● The auxiliary functions M50, M51 (12th auxiliary function group) and M52, M53
(13th auxiliary function group) should have the following output behavior:
– Output duration of one OB1 cycle (normal acknowledgment)
– Output prior to motion
Basic functions
682 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.17 Examples
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 683
Auxiliary function outputs to PLC
11.18 Data lists
Basic functions
684 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Auxiliary function outputs to PLC
11.18 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 685
Auxiliary function outputs to PLC
11.18 Data lists
Basic functions
686 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O 12
12.1 Introduction
Functions
I/O modules can be connected to a SINUMERIK 840D sl via PROFIBUS or PROFINET.
Normally, the PLC user program uses the appropriate digital or analog inputs and outputs for
access. The "Digital and analog NC I/O for SINUMERIK 840D sl" function enables access to the
inputs/outputs of the I/O modules via system variables of compile cycles directly from the NC
(part programs, synchronized actions and compile cycles). This I/O is referred to as the NC I/O
in the following.
Three different functions are available for compatibility reasons:
1. Indirect I/O access via PLC (Page 688)
The read and write requests of the inputs/outputs of the I/O modules are written from the NC
via the interface to the PLC. The requests are processed cyclically in the OB1 cycle.
This function has the lowest performance with regard to the quantity structure and response
time.
2. Direct I/O access via PLC (Page 709)
The read and write requests of the inputs/outputs of the I/O modules are written from the NC
via the interface to the PLC. An interrupt is then triggered on the PLC. The requests from the
PLC are processed as part of the interrupt processing.
From the quantity structure, the function is equivalent to that described above. However, the
response time is not as good.
3. Direct I/O access without PLC (Page 714)
Avoiding the PLC, the control internal images of the inputs/outputs of the I/O modules can
be accessed directly from the NC.
This is currently the function with the highest performance with regard to the quantity
structure and response time.
Prerequisites
● The PROFIBUS/PROFINET I/O modules of the NC I/O must be connected and ready to use.
● The HW configuration of the PROFIBUS/PROFINET I/O modules of the NC I/O has been
performed with the SIMATIC S7 Manager or HW Config and loaded to the PLC.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 687
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Monitoring
The following monitoring functions are active for the NC I/Os:
● Run-up:
– Check for consistency of the I/Os detected on the PLC and the NC I/O parameterized in
the machine data.
● Cyclic operation:
– Sign-of-life monitoring in interpolation cycles
– Module monitoring in interpolation cycles
– Temperature monitoring
In the event of an error, the DB10.DBX104.7 "NC ready" signal is reset and an alarm is
displayed.
Response to faults
The digital and analog outputs of the NC I/O are switched to a safe status (0 V) in the event of
faults (e.g. NC ready = 0), for errors in the NCU or power failures.
Application
The NC I/O is used, for example, by the following NC functions:
● Several feedrate values or auxiliary functions in one block
● Rapid retraction on final dimension
● Axis-specific delete distance-to-go
● Program branches
● Rapid NC Start
● Analog calipers
● Position switching signals
● Punching/nibbling functions
● Analog-value control
Basic functions
688 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
I/O modules can also be connected to the PROFIBUS DP/MPI interfaces X126 and X136. This
enables the number of digital and analog NC inputs/outputs to be expanded by 32 digital and 8
analog inputs and outputs respectively. These NC inputs/outputs are called external NC I/Os
in the following.
Further information
● Manual SINUMERIK 840D sl
● Operating instructions for SIMATIC ET 200S FC
See also
Direct I/O access via PLC (Page 709)
12.2.2 Parameterization
Machine data
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 689
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Slot addresses
Addressing of the digital I/Os:
● HW assignment for external digital inputs
MD10366 $MN_HW_ASSIGN_DIG_FASTIN[ <n> ] = <addressH>
● HW assignment for external digital outputs
MD10368 $MN_HW_ASSIGN_DIG_FASTOUT[ <n> ] = <addressH>
Addressing of the analog I/Os:
● HW assignment for external analog inputs
MD10362 $MN_HW_ASSIGN_ANA_FASTIN[ <n> ] = <addressH>
● HW assignment for external analog outputs
MD10364 $MN_HW_ASSIGN_ANA_FASTOUT[ <n> ] = <addressH>
<n>: Index for addressing the external digital I/O bytes (0 ... 3) or the external analog
I/Os (0 ... 7)
<address>: Slot address of the PROFIBUS/PROFINET module with 05 00 xxxx
05 Identifier for PROFIBUS/PROFINET module
00 Permanently assigned
xxxxH Hexadecimal logical start address of the slot
0000 = no active slot
The following must be taken into account for logical start addresses
within the PLC process image:
● Input slots: Reading from the NC also possible
● Output slots: Writing from the NC not permitted ⇒ alarm after run-
up of the NC
Further information
Equipment Manual NCU 7x0.3 PN, NCU 7x0.3B PN; Technical data >
PLC > Process image size
Detailed information can be obtained under Address (http://
support.automation.siemens.com/WW/view/de/54058408)
Assignment to NC functions
The I/Os are required by several NC functions. The assignment of the I/Os used is performed
function-specifically via machine data, e.g. for the "Multiple feedrates in one block" function via
the machine data:
Basic functions
690 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Note
Multiple assignments
Multiple assignments of inputs are not considered to be incorrect parameterization.
Multiple assignments of outputs are considered to be incorrect parameterization, are checked
during run-up and indicated by an alarm.
Hardware assignment
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 691
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
A preprocessing stop is triggered in the channel when reading input data from a part program.
Output data
A preprocessing stop is triggered in the channel when reading output data from a part program.
Function
Using system variables $A_IN, values of digital NC inputs can be read into an NC program or
synchronized action. The read value can be influenced via NC/PLC interface signals.
Application examples
Digital NC inputs are used, for example, for the following NC functions:
● Delete distance-to-go with positioning axes
● Fast program branching at the end of block
● Programmed read-in disable
● Several feedrates in one block
Further information
Function Manual Synchronized Actions
Basic functions
692 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
1&LQSXW
1& 3/&
$FWXDOYDOXH
'%'%%'%%
/RFN
'%'%%'%%
6HW
'%'%%'%%
1&SURJUDP
$B,1>@ 1&LQSXWYDOXH
Actual value
The actual value of the NC input can be read in the PLC user program via the actual value
interface.
Note
Different values
The value in the "Actual value" interface can, as a result of the various subsequent influencing
possibilities, have a different value than that available at the NC input, which is read using
system variable $A_IN.
Lock
If a bit is set in the interface, for the corresponding input, a value of 0 is transferred.
Set
If a bit is set in the interface, for the corresponding input, a value of 1 is transferred.
Overview
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 693
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Boundary conditions
Function
Using system variables $A_OUT, values of digital NC outputs can be written to an NC program
or synchronized action. The written value can be influenced using NC/PLC interface signals.
Application examples
● Positioning switching signals (see Function Manual Axes and Spindles, Section Software
cams)
● Output of comparator signals
Further information
Function Manual Synchronized Actions
1& 3/&
1&SURJUDP
$B287>@ 6HWWLQJYDOXH
'%'%%'%%
2YHUZULWH
'%'%%'%%
1&RXWSXWYDOXH 6HWSRLQW
'%'%%'%%
7DUJHW
'%'%%'%%
/RFN
'%'%%'%%
1&RXWSXW
Basic functions
694 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Overwrite
If, in the interface, a bit is set, then for the corresponding output, instead of the value written
using system variables $A_OUT, the setting value specified from the PLC user program is
used. The value written via system variables $A_OUT is then lost.
If the bit in the interface is reset, then the actual value is kept at the hardware output.
Setting value
Using the setting value, the PLC user program can specify a defined output value. In order that
the setting value becomes active, it must be activated via the interfaces for "Overwrite" or
"Target".
Setpoint
The actual NC output value can be read in the PLC user program via the setpoint.
Note
Different values
The value in the "Setpoint" interface can, as a result of the various subsequent influencing
possibilities, have a different value than that available at the NC output.
Target
If, in the interface, a bit is set, then for the corresponding output, instead of the NC output value,
the setting value specified by the PLC user program is used. The actual NC output value is kept.
If a bit is reset in the interface, then the last NC output value becomes active again.
Lock
If a bit is set in the interface, for the corresponding output, a value of 0 is output.
Overview
Boundary conditions
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 695
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Function
Fast NC I/O inputs can be set via the software depending on the fast-output signal states.
Overview:
2XWSXW ,QSXW
%\WH %\WH
%LW %LW
$OWHUQDWLYHV
,QWHUFRQQHFW
25ORJLFRSHUDWLRQ
$1'ORJLFRSHUDWLRQ
Connecting
The NC I/O fast input is set to the signal state of the assigned fast output.
OR operation
The NC I/O fast input adopts the signal state as a result of the ORing of the output signal with
the assigned input signal.
AND operation
The NC I/O fast input adopts the signal state as a result of the ANDing of the output signal with
the assigned input signal.
Basic functions
696 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Special cases
● If several output bits are assigned to the same input bit, then the one with the highest MD
index becomes effective.
● If inputs or outputs are specified which do not exist or are not activated, then the assignment
is ignored without an alarm. Checking of the active bytes of the NC I/Os is performed via the
entries in machine data:
MD10350 $MN_FASTIO_DIG_NUM_INPUTS
MD10360 $MN_FASTIO_DIG_NUM_OUTPUTS
Defining assignments
The assignments are specified via machine data:
MD10361 $MN_FASTIO_DIG_SHORT_CIRCUIT[n]
n: can accept values 0 to 9, so up to 10 assignments can be specified.
Two hexadecimal characters are provided for specifying the byte and bit of an output and an
input.
Specifying 0, A and B in input bits 12 - 15 results in the following logic operations:
0 Connecting
A AND operation
B OR operation
)$67,2B',*B6+257B&,5&8,7>Q@
2XWSXW ,QSXW
%LW %\WH %LW %\WH
൹7\SHRIORJLFRS
%LW
Examples
Connect:
MD10361 $MN_FASTIO_DIG_SHORT_CIRCUIT = '04010302H'
Output 4, byte 1, connect to
Input 3, byte 2
AND operation:
MD10361 $MN_FASTIO_DIG_SHORT_CIRCUIT = '0705A201H'
Output 7, byte 5 AND operation with
Input 2, byte 1
OR operation:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 697
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Function
Using system variables $A_INA, values of analog NC inputs can be read into an NC program
or synchronized action. The read value can be influenced via NC/PLC interface signals.
1&LQSXW
1& 3/&
$FWXDOYDOXH
'%'%:'%:
/RFN
'%'%%
6HWWLQJYDOXH
'%'%:'%:
7DUJHW
'%'%%
1&SURJUDP
$B,1>@ 1&LQSXWYDOXH
Actual value
The actual value of the NC input can be read in the PLC user program via the actual value
interface.
Basic functions
698 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
The actual value is represented as a fixed point number (16 bit value including sign) in a 2's
complement.
See "Representation of the analog I/O values (Page 703)".
Note
Different values
The value in the "Actual value" interface can, as a result of the various subsequent influencing
possibilities, have a different value than that available at the NC input, which is read using
system variable $A_INA.
Lock
If a bit is set in the interface, for the corresponding input, a value of 0 is transferred.
Setting value
Using the setting value, the PLC user program can specify a defined input value. In order that
the setting value becomes active, it must be activated via the "Overwrite" interface.
The setting value must be specified as a fixed point number (16 bit value including sign) in 2's
complement.
See "Representation of the analog I/O values (Page 703)".
Target
If a bit is set in the interface, for the corresponding input, the associated "Setting value" is
transferred.
Overview
Machine data
Weighting factor
Using the weighting factor, for each analog NC input, the DA converter of the I/O module being
used can be adapted by appropriately parameterizing it.
MD10320 $MN_FASTIO_ANAINTPUT_WEIGHT[<Output>]
Note
Analog NC inputs without hardware
With a weighting factor of 32767, the digitized analog values for the NC program and PLC user
program are identical. As a consequence, the NC output can be used for 1:1 communication
between the NC program and PLC user program.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 699
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Supplementary conditions
Behavior for a warm restart, end of program reset and channel reset
After a warm restart, end of program reset or channel reset, for all NC inputs, the analog value
present is transferred. Every NC input can be set as a function of the specific application from
the PLC user program.
Function
Using system variables $A_OUTA, values of analog NC outputs can be written to an NC
program or synchronized action. The written value can be influenced using machine data and
NC/PLC interface signals.
Further information
Function Manual Synchronized Actions
Basic functions
700 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
1& 3/&
1&SURJUDP
$B287$>@
(YDOXDWLRQ
6HWWLQJYDOXHIURPWKH3/&
'%'%:'%:
2YHUZULWH
'%'%%
6HWSRLQW
1&RXWSXWYDOXH
'%'%:'%:
7DUJHW
'%'%%
/RFN
'%'%%
1&RXWSXW
1) MD10330 $MN_FASTIO_ANA_OUTPUT_WEIGHT[<Output>]
Setting value
Using the setting value, the PLC user program can specify a defined output value. In order that
the setting value becomes active, it must be activated via the interfaces for "Overwrite" or
"Target".
The setting value must be specified as a fixed point number (16 bit value including sign) in 2's
complement.
See "Representation of the analog I/O values (Page 703)".
Overwrite
If a bit is set, then for the corresponding output, instead of the value written using system
variables $A_OUTA, the setting value specified from the PLC user program is used. The value
written via system variables $A_OUTA is then lost.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 701
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
If a bit is reset, for the corresponding output, the actual value at the hardware output is kept.
Target
If a bit is set, then for the corresponding output, instead of the NC output value, the setting value
specified by the PLC user program is used. The actual NC output value is kept.
If a bit is reset, then for the corresponding output, the last NC output value becomes active
again.
Lock
If a bit is set in the interface, a value of 0 is output at the corresponding NC output.
Setpoint
The actual NC output value can be read in the PLC user program via the setpoint.
The setpoint is represented as a fixed point number (16 bit value including sign) in a 2's
complement.
See "Representation of the analog I/O values (Page 703)".
Note
Different values
The value in the "Setpoint" interface can, as a result of the various subsequent influencing
possibilities, have a different value than that available at the NC output.
Overview
Machine data
Weighting factor
Using the weighting factor, for each analog NC output, the DA converter of the I/O module being
used can be adapted by appropriately parameterizing it.
MD10330 $MN_FASTIO_ANA_OUTPUT_WEIGHT[<Output>]
Basic functions
702 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Note
Analog NC outputs without hardware
With a weighting factor of 32767, the digitized analog values for the NC program and PLC user
program are identical. As a consequence, the NC output can be used for 1:1 communication
between the NC program and PLC user program.
Boundary conditions
Bit number 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Signifi‐ SG 2 14
2 13
2 12
2
11
2 10
2 9
2 8
27
2 6
2 5
24
2 3
2 2
21
20
cance
SG: Sign
Increment
For a resolution of 16 bits and a nominal range of ±10 V, the increment is:
20 V / 216 = 20 V / 65536 ≈ 0.305 mV
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 703
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
14-bit resolution
For a resolution of 14 bits including sign and a nominal range of ±10 V, the increment is:
20 V / 214 = 20 V / 16384 ≈ 1.22 mV
Bit 0 ... 1 are always "0".
12-bit resolution
For a resolution of 12 bits including sign and a nominal range of ±10 V, the increment is:
20 V / 212 = 20 V / 4096 ≈ 4.88 mV
Bit 0 ... 3 are always "0".
Bit number 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Significance of the bits SG 2 14
2
13
2
12
211
2
10
29
2 8
2
7
2 6
2 5
24
2 3
2 2
21
20
16-bit resolution: 32767D = 7FFFH 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
14-bit resolution: 8191D = 1FFFH 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
12-bit resolution: 2047D = 7FFH 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
Note
The data (resolution, nominal range) of the analog input/output module used can be taken from
the documentation of the particular module.
Examples
Digital representation of analog values at a resolution of 14 bits including sign and a nominal
range of ±10 V.
Basic functions
704 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Function
Two internal comparator input bytes, each with eight comparator inputs, are available in
addition to the digital and analog NC inputs. The signal state of the comparator inputs is
generated on the basis of a comparison between the analog values present at the fast analog
inputs and the threshold values parameterized in setting data.
The $A_INCO[<n>] system variable allows the signal state (i.e. the result of the comparison) of
comparator input [<n>] to be scanned directly in the part program.
Applies for index <n>:
Terms
In this description, the terms comparator inputs (with index <n>; value range of <n>: 1 ... 8 or
9 ... 16) and comparator input bits (with index <b>; value range of <b>: 0 ... 7) are used.
They are related as follows:
For <n> = 1 ... 8: Comparator input <n> is equivalent to comparator input bit
<b> = <n> - 1.
For <n> = 9 ... 16: Comparator input <n> is equivalent to comparator input bit
<b> = <n> - 9.
Example: Comparator input 1 is equivalent to comparator input bit 0.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 705
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Comparator settings
The settings for the individual bits (0 to 7) of comparator byte 1 or 2 are parameterized via the
machine data:
MD10540 $MN_COMPAR_TYPE_1 (parameter assignment for comparator byte 1)
or
MD10541 $MN_COMPAR_TYPE_2 (parameter assignment for comparator byte 2)
The following settings are possible:
● Comparison type mask (bits 0 … 7)
The type of comparison condition is defined for each comparator input bit:
Threshold values
The threshold values used for comparisons on comparator byte 1 or 2 must be stored as setting
data. A separate threshold value must be entered for each comparator input bit <b> (with <b>
= 0 … 7):
SD41600 $SN_COMPAR_THRESHOLD_1[<b>]
or
SD41601 $SN_COMPAR_THRESHOLD_2[<b>]
Basic functions
706 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 707
Digital and analog NC I/O
12.2 Indirect I/O access via PLC
Functional sequence
The functional sequence for comparator input byte 1 is represented schematically in the
following figure.
'LJLWDO
$QDORJLQSXW
2XWSXWE\WH
$QDORJLQSXW
0'%LW &RPSDULVRQ
ELW $QDORJYDOXHWKUHVKROGYDOXH ,QYHUVLRQPDVN 0'%LW
RU
%LW $QDORJYDOXHุWKUHVKROGYDOXH
7KUHVKROGYDOXH
7KUHVKROGYDOXH
6'
&RPSDUDWRULQSXWE\WH &RPSDUDWRULQSXWE\WH
&RPSDUDWRULQSXWELW
&RPSDUDWRULQSXW
3DUWSURJUDP
$B,1&2>Q!@ 1&IXQFWLRQV
5HDGLQJRIFRPSDUDWRU $FFHVVWRFRPSDUDWRULQSXWE\WH
LQSXWQ!Q! bb RURI1&IXQFWLRQV
)URPWKHSDUWSURJUDP
Basic functions
708 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.3 Direct I/O access via PLC
12.3.1 Parameterization
Machine data
Update time
● Time within which the data that can be read by means of $A_PBx_IN is updated (see
Subsection "Transfer times" below).
MD10398 $MN_PLCIO_IN_UPDATE_TIME
Format display
● Format display of system variables $A_PBx_OUT and $A_PBx_IN (see Subsection
"Selection of the storage format (little/big endian)" below).
MD10399 $MN_PLCIO_TYPE_REPRESENTATION
Note
The logical PLC I/O addresses entered in the machine data and the number of bytes to be
transferred must be consistent with the PLC hardware configuration. In the configured areas,
there must not be any "address gaps" in the PLC I/O expanded configuration.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 709
Digital and analog NC I/O
12.3 Direct I/O access via PLC
0'01B3/&,2B/2*,&B$''5(66B,1
0'01B3/&,2B180B%<7(6B,1
3/&LQSXWLPDJH
Transfer times
● Transfer of the output data from the NC to the output modules
– The output data is transferred from the NC to the output modules at the end of the current
interpolator cycle.
– The transfer is only performed when at least one output data item has been written in the
current interpolator cycle.
● Transfer of the input data from the input modules to the NC
– Time within which the cyclic request for the update of the input data (input image of the
modules → NC input data) from the NC to the PLC is sent, can be set via the machine
data:
– MD10398 $MN_PLCIO_IN_UPDATE_TIME = <update time>
– The parameterized update time is rounded up internally to the next highest multiple of an
interpolator cycle. With update time = 0, the request is transferred to the PLC in each
interpolation cycle.
– The request for the update of the input data is sent to the PLC at the end of the
parameterized interpolation cycle.
– The updated input data is available at the earliest in the following interpolation cycle.
Basic functions
710 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.3 Direct I/O access via PLC
<val‐ Meaning
ue>
0 Little endian format (default setting)
System variables are displayed in little endian format ⇒ least significant byte at least significant
address
1 Big endian format (PLC standard format, recommended)
System variables are displayed in big endian format ⇒ most significant byte at least significant
address
Note
The big endian format is the format usually used in the PLC and PLC I/O. Therefore, it is
recommended that you use this setting.
A preprocessing stop is triggered in the channel when reading from a part program.
Output data
A preprocessing stop is triggered in the channel when reading output data from a part program.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 711
Digital and analog NC I/O
12.3 Direct I/O access via PLC
Time response
The time when the data is read in from the PLC I/Os is not synchronized with the time when the
data is made available to the part program via system variables!
Data transfer
● The output of the output data on the PLC I/O is always for all parameterized output data,
even when only one output data item was written for each system variable.
● If several system variables are assigned values simultaneously, it is not certain that they are
transferred in the same interpolation cycle.
12.3.4 Examples
Specifications
● Decimal logical addresses of the output data to be written within the PLC I/O
– 521: 1-byte integer value
– 522: 2-byte integer value
● The output data is written to a part program via the R parameters R10 - R11.
● In order to only slow down the execution of the PLC user program (OB1) slightly, the update
cycle for write access should be 3-times the interpolator cycle of 12 ms.
● Data is to be output directly to the following PLC I/Os:
Parameterization
The machine data should be set as follows:
● Length of the NC I/O output data area: 2 + 1 = 3 bytes
MD10396 $MN_PLCIO_NUM_BYTES_OUT= 3
● Logical start address of the input data area: 521
MD10397 $MN_PLCIO_LOGIC_ADDRESS_OUT = 521
Basic functions
712 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.3 Direct I/O access via PLC
Refreshing
The transfer of the system data to the PLC I/O is not performed until the PLC has detected the
PROFIBUS/PROFINET I/O error-free after the control startup. The transfer is then performed
in every third interpolation cycle.
Programming
Writing the NC I/O to synchronized actions with R parameters:
0'01B3/&,2B/2*,&B$''5(66B287
0'
01B3/&,2B180B%<7(6B287
$B3%:B287>@
3/&RXWSXWLPDJH
Specifications
● Decimal logical addresses of the input data to be read within the PLC I/O
– 420: 2-byte integer value
– 422: 4-byte integer value
– 426: 4-byte real value
– 430: 1-byte integer value
● The input data should be stored in a part program in the R parameters R1 - R4.
● In order to only slow down the execution of the PLC user program (OB1) slightly, the update
cycle for read access should be 3-times the interpolator cycle of 12 ms.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 713
Digital and analog NC I/O
12.4 Direct I/O access without PLC
Parameterization
● Length of the NC I/O input data area: 2 + 4 + 4 + 1 = 11 bytes
MD10394 $MN_PLCIO_NUM_BYTES_IN = 11
● Logical start address of the input data area: 420
MD10395 $MN_PLCIO_LOGIC_ADRESS_IN = 420
● Update cycle: I/O input data → system variables = 3 * interpolator cycle= 3 * 12 ms = 36 ms
MD10398 $MN_PLCIO_IN_UPDATE_TIME = 3 * 0.012 = 0.036
● Data format: Big endian
MD10399 $MN_PLCIO_TYPE_REPRESENTATION = 1
Refreshing
The system variables are updated in every third interpolation cycle after the NC and PLC
startup.
Programming
Reading in the NC I/O in R parameters:
0'01B3/&,2B/2*,&B$''5(66B,1
0'01B3/&,2B180B%<7(6B,1
$B3%'B,1>@
3/&LQSXWLPDJH
Basic functions
714 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.4 Direct I/O access without PLC
I/O range
If slots are configured for a PROFINET slave used for the NC I/O in such a way that they are
in ascending order without gaps, they are called the I/O range in the following.
An I/O range is therefore characterized by:
● Logical start address: Logical start address of the first slot of the PROFINET slave
● Length: Total length of all slots used for the PROFINET slave
The parameterization of the logical start address and the length of the I/O range is performed
in the NC via machine data (see "Parameter assignment (Page 716)").
Reading/writing
Parallel reading/writing
Reading
Parallel reading through compile cycles and part programs / synchronized actions on input data
of the same I/O range is possible. Write access to the NC I/O is performed in different ways.
● The data consistency is ensured.
● The data equality during an interpolator cycle is not ensured.
Writing
Parallel writing through compile cycles and part programs / synchronized actions on output
data of the same I/O range is not possible.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 715
Digital and analog NC I/O
12.4 Direct I/O access without PLC
Machine data
Basic functions
716 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.4 Direct I/O access without PLC
12.4.3 Reading/writing
Input data
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 717
Digital and analog NC I/O
12.4 Direct I/O access without PLC
<n> = input range 1, 2, ... m; <b> = byte index within the input range: 0, 1, ... (length - 1)
Output data
<n> = output range 1, 2, ... m; <b> = byte index within the output range: 0, 1, ... (length - 1)
Configured and parameterized I/O ranges for part programs / synchronized actions
Each system variable is a 32-bit bit array. Each bit is assigned to an I/O range.
Bit <n> ≙ machine data index <n> ≙ I/O range <n+1>
Bit <n> == 1 ⇒ The I/O range <n+1> is configured/parameterized.
Basic functions
718 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.4 Direct I/O access without PLC
Supplementary conditions
● A preprocessing stop is triggered in the channel when reading/writing from a part program.
● To ensure data consistency during programming from the part program and the
synchronized actions, the PROFIBUS I/O data is accessed which is kept consistent for the
respective IPO cycle.
● If the same PROFIBUS I/O data is to be write-accessed several times within an interpolation
cycle (e.g. synchronized actions, access from different channels, etc.), then the data of the
last write access is valid.
● The PROFIBUS I/O data to be written is output at the PROFIBUS I/O only after the
corresponding IPO cycle.
● The <b> (RangeOffset) indicates the place (byte offset) within the I/O range as of which the
data access is to be started. Data types can be read/written at any byte offset within the I/O
range. Read/write accesses which exceed the configured limits of the respective I/O range
are rejected with the generation of an alarm (17030).
● Via the machine data MD10502 $MN_DPIO_RANGE_ATTRIBUTE_IN or MD10512
$MN_DPIO_RANGE_ATTRIBUTE_OUT (see "Parameter assignment (Page 716)"), the
display format (little/big endian) for $A_DPx_IN[<n>,<b>] or $A_DPx_OUT[<n>,<b>]
system variables can be defined for the read/write direction as well as for each individual I/
O range.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 719
Digital and analog NC I/O
12.4 Direct I/O access without PLC
12.4.5 Examples
Requirement
A valid configuration must already have been loaded to the PLC.
Specifications
● Parameterization of the 6th data record: Machine data / system variable index = 5
● Configuration data:
– Logical start address = 334
– Slot length = 8 bytes
● Representation: Little endian format
Examples
Basic functions
720 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.4 Direct I/O access without PLC
Specifications
● Parameterization of the 7th data record: Machine data / system variable index = 6
● Configuration data:
– Logical start address = 444
– Slot length = 10 bytes
● Representation: Little endian format
Requirement
A valid configuration must already have been loaded to the PLC.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 721
Digital and analog NC I/O
12.4 Direct I/O access without PLC
Specifications
● Parameterization of the 1st data record: Machine data / system variable index = 0
● Configuration data:
– Logical start address = 456
– Slot length = 32 bytes
● Representation: Big endian format
Examples
Basic functions
722 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.4 Direct I/O access without PLC
Specifications
● Parameterization of the 2nd data record: Machine data / system variable index = 1
● Configuration data:
– Logical start address = 312
– Slot length = 32 bytes
● Representation: Big endian format
Requirement
A valid configuration must already have been loaded to the PLC.
Specifications
● Parameterization of the 6th data record: Machine data / system variable index = 5
● Configuration data:
– Logical start address = 1200
– Slot length = 32 bytes
● Representation: Big endian format
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 723
Digital and analog NC I/O
12.5 Data lists
Examples
Basic functions
724 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.5 Data lists
Identifier Description
$A_IN Digital NC input
$A_OUT Digital NC output
$A_INA Analog NC input
$A_OUTA Analog NC output
$A_DPB_IN Reads a data byte (8 bit)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 725
Digital and analog NC I/O
12.5 Data lists
Identifier Description
$A_DPW_IN Reads a data word (16 bit)
$A_DPSB_IN Reads a data byte (8 bit)
$A_DPSW_IN Reads a data word (16 bit)
$A_DPSD_IN Reads a double word (32 bit)
$A_DPR_IN Reads input data (32 bit REAL)
$A_DPB_OUT Writes a data byte (8 bit)
$A_DPW_OUT Writes a data word (16 bit)
$A_DPSB_OUT Writes a data byte (8 bit)
$A_DPSW_OUT Writes a data word (16 bit)
$A_DPSD_OUT Writes a double word (32 bit)
$A_DP_IN_VALID Reads all valid input ranges
$A_DP_OUT_VALID Reads all valid output ranges
$A_DP_IN_STATE[<n>] Reads the state of the input range
$A_DP_OUT_STATE[<n>] Reads the state of the output range
$A_DP_IN_LENGTH[<n>] Reads the length of the input data range
$A_DP_OUT_LENGTH[<n>] Reads the length of the output data range
12.5.4 Signals
12.5.4.1 Signals to NC
Basic functions
726 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Digital and analog NC I/O
12.5 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 727
Digital and analog NC I/O
12.5 Data lists
Basic functions
728 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems 13
13.1 Brief description
0DFKLQHFRQWUROSDQHO 0DFKLQHFRQWURO
0&3[[[ SDQHO
,QGXVWULDO(WKHUQHW 0&3[[[
3&XQLW3&8[
,(6ZLWFK ZLWK
6&$/$1&([[[ 8VHULQWHUIDFH
6,180(5,.2SHUDWH
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 729
Distributed systems
13.1 Brief description
N: SINUMERIK 840D sl
● Internal SINUMERIK Operate user interface
Because of the existing external SINUMERIK Operate user interface on the PCU in the
system network, the NCU-integrated internal SINUMERIK Operate user interface must be
switched off. The internal SINUMERIK Operate user interface must not be switched off only
when it is used with a limited range of functions, exclusively within the scope of tool
management. Detailed information on this can be found in the Commissioning Manual
"Operator Components and Networking (IM5)", Section "Network configuration" >
"Application example"
● Machine control panel (MCP)
For a flexible switchover of the machine control panels, only one MCP can be connected to
one NCU. The switchover of the MCPs is user-specifically via the PLC user program
(function block FB 9).
Basic functions
730 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.1 Brief description
Further information
● TCU, MCP, PCU:
SINUMERIK 840D sl Operator Components and Networking Manual
● NCU:
Equipment Manual SINUMERIK Control
● Machine control panel (MCP)
FB 9: MtoN Control Unit Switchover
● Switch SCALANCE:
System Manual Communication with SIMATIC
● Industry PCs compatible with PCU-Basesoftware
Commissioning Manual SINUMERIK 840D sl PCU-Basesoftware
Further information
● Structure of the system network and commissioning of a TCU:
Operator Components and Networking Commissioning Manual (IM5)
● Configuration of the channel menu
SINUMERIK Operate Commissioning Manual (IM9), Section "Channel menu"
Programming
You can find further information in the PLC Function Manual.
Constraints
Currently, only one PCU (M) can be configured for each T:M:N network ⇒ T:1:N
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 731
Distributed systems
13.1 Brief description
Safety Integrated
If axis-specific Safety Integrated Functions are active for a link axis, data that is not safety-
related is exchanged between the local safety axis (link axis on NCUx) and the channel that is
traversing it (NCUy) via the NCU link. This also enables Safety Integrated-supporting functions
for link axes, such as velocity/speed monitoring-dependent setpoint limiting and higher-order
stop functions (STOP D/E).
Link module
The link communication requires optional link modules. A link module is an optional PROFINET
module for isochronous real-time communication (IRT) via Ethernet. The link module occupies
the option slot of the NCU.
Quantity structure
As standard, a maximum of three NCUs can be interconnected to form a link group.
Note
For a specific project, on request to your local regional Siemens representative, further NCUs
can be integrated to form a link group.
Note
On systems without an NCU link, link variables can also be used as additional NCU global user
data alongside standard global user data (GUD).
Basic functions
732 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.1 Brief description
Application
A lead link axis is always required when not all interpolators of a coupling group are on the same
NCU. The lead link axis provides an image of the leading axis/spindle or the master value for
the local interpolators, on another NCU. Starting from this master value, the setpoints of the
following axes/spindles are then generated by the interpolators on this NCU.
Further application
A lead link axis is also used if more machine axes are involved in a coupling than are available
absolutely or relatively on an NCU for the coupling.
Further information
Function Manual Axes and Spindles, Axis couplings
13.1.2.5 Dependencies
In order that several axes can be traversed in an interpolatary relationship, it is essential that
the setpoints generated by the interpolator of the traversing channel be transferred to the
position control at the same time.
During the transfer of the setpoints via the NCU link, for example, for a link axis there is a delay
of one interpolator cycle in relation to the setpoint of a local axis. The delay must be
compensated by a suitable increase of the buffer between the interpolator and the position
controller :
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 733
Distributed systems
13.1 Brief description
Note
In contrast to lead link axes, link and container link axes require another compensation value
(MD18720 $MN_MM_SERVO_FIFO_SIZE). With simultaneous use of link or container link
axes and lead link axes within a link group, the delays cannot be compensated.
Basic functions
734 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.1 Brief description
1&8/LQNYLD352),1(7
1&8 6HWSRLQWWUDQVIHULVQRWFXUUHQWO\UHTXLUHG 1&8
/LQNPRGXOH /LQNPRGXOH
5RWDU\WDEOH
'ULYH 075 'ULYH
8QORDGLQJVWDWLRQ
/RDGLQJVWDWLRQ
6SLQGOH06
=
6SLQGOH06
;
=
0DFKLQLQJVWDWLRQ
;
0DFKLQLQJVWDWLRQ
1&8/LQNYLD352),1(7
1&8 6HWSRLQWWUDQVIHU1&8!1&8VSLQGOH06 1&8
/LQNPRGXOH /LQNPRGXOH
6SLQGOH06
1&8 6SLQGOH06 1&8
5RWDU\D[LV075
'ULYH 'ULYH
/RDGLQJVWDWLRQ 8QORDGLQJVWDWLRQ
6SLQGOH06
=
6SLQGOH06
= ;
0DFKLQLQJVWDWLRQ
;
0DFKLQLQJVWDWLRQ
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 735
Distributed systems
13.2 NCU link
Parameterization (schematic)
General
Programmed channel axes in the part programs of both NCUs: X, Z, S1
NCU1 Machine axes defined in the NCU:
Local: X1, Z1
Axis container: MS1, MS2
NCU2 Machine axes defined in the NCU:
Local: X1, Z1
Axis container: MS3, MS4
'DWDH[FKDQJHE\1&8/LQNYLD352),1(7
Basic functions
736 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
Data transfer
Depending on the active functions, the following cyclic and non-cyclical data transmissions
occur between the NCUs involved with the link communication:
● High-priority, cyclic data transfer:
– Setpoints, actual values and status signals of the axes
– NCU status signals
● High-priority, non-cyclic, non-displaceable data transfer:
– Non-safety-related data as part of the Safety Integrated function
– States of the container axes during an axis container rotation
● Low-priority, non-cyclic, displaceable data transfer (listed in order of decreasing priority):
– Link variables
– Warm restart requirements
– Activation of axis container rotations
– Changes in NCU-global machine and setting data
– Activation of the axial machine data for link axes
– Alarms
Displacement
If for low-priority, non-cyclic, displaceable data transmission not all requirements can be sent
in a single interpolator cycle, the request with higher priority displaces that with a lower priority.
The requirements with lower priority are then sent at a later point in time.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 737
Distributed systems
13.2 NCU link
Note
For a specific project, on request to your local regional Siemens representative an NCU-link
group with more than three NCUs is possible. Without project-specific supplements, more than
three NCUs are rejected with Alarm 380020.
1&8/LQNYLD352),1(7
6DIHW\,QWHJUDWHG
(WKHUQHW352),1(7
1&8 1&8
352),%86
1&. 1&.
&KDQQHO
1*)
1;=
&KDQQHOD[HV
; =
0'
1&B$;
$;
$;
/RJ0DFKLQHD[LVLPDJH
$;
0'
0DFKLQHD[HV
0'
0$
0$
&RQWURO8QLW &RQWURO8QLW
;
0RWLRQ 0RWLRQ
0RQLWRU 0RQLWRU
00 60 60 00
63/ 63/
3/& 3/&
; ; ;
;
3 3 3
0 0
)6HQG)5HFY
1&8ORFDOD[LV 31 /LQND[LV
31
352),VDIH 352),VDIH
The safety-related input signals (F_DI) of both NCUs can be acquired, linked via the safe
programmable logic (SPL) and exchanged using the safety-related CPU-CPU communication
(FSend/FRecv).
Basic functions
738 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
As part of the Safety Integrated function, the NCU-link communication permits the single-
channel non-safety-related transfer of link axis data for Safety Integrated-supporting functions.
Examples:
● Interpolatory braking for an implicit Stop D of all traversing axes, including the link axes, in
the channel.
● Reduce the speed of all axes traversing in the channel, including link axes, for a change of
the safe speed.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 739
Distributed systems
13.2 NCU link
Further information
The "Safety Integrated" function is described in detail in:
SINAMICS S120 Safety Integrated Function Manual
Note
There is only one option slot on the NCU module. This prevents the parallel use of an NCU-link
module and other optional modules.
Further information
Equipment Manual NCU7x0.3 PN; Connectable components > CBE30-2
Basic functions
740 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
MD10050 $MN_SYSCLOCK_CYCLE_TIME
Note
Manual alignment across several communications buses
If several isochronous communication buses (PROFIBUS 1 ... n, PROFINET 1 ... m) have been
configured on an NCU, the same DP cycle time in STEP 7 HW Config must be set for each
communication bus.
Depending on the position control cycle clock
For the SINUMERIK 840D sl, the ratio between the basic system cycle clock and the position
control cycle clocks is fixed (1:1) and cannot be changed. Because only certain position control
cycle clocks can be set for the NCU link, only these position control cycle clocks can be set as
the basic system cycle clock or DP cycle time. See the next paragraph "Position control cycle
clock".
Note
Permitted position control cycle clocks
For the NCU link, depending on the number of NCUs in the link group, only the following
position control cycle clocks [ms] are set:
● 2 NCU: 2.0, 2.5, 3.0, 3.5, 4.0
● 3 NCU: 3.0, 3.5, 4.0
See Section "Configuration (Page 743)".
Interpolator cycle
The interpolator cycle clock is set as a ratio of the basic system cycle clock. The setting is made
via the following machine data:
MD10070 $MN_IPO_SYSCLOCK_TIME_RATIO
The actual interpolator cycle clock is displayed in machine data:
MD10071 $MN_IPO_CYCLE_TIME
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 741
Distributed systems
13.2 NCU link
Notes on setting
System utilization
The system utilization is displayed on the SINUMERIK Operate user interface, under:
"Diagnostics" operating area > "ETC key (">") > "System utilization"
WARNING
Open-loop control failure due to CPU time overflow at the interpolator level
If, when parameterizing the NC, the interpolator clock cycle was set to short, then as a result
of the additional CPU time load due to transferring link variables, in productive operation CPU
time overflow can occur at the interpolator level.
Further information: Diagnostics Manual; NC Alarms > Alarm 4240 level overflow at the IPO
or position controller level.
Basic functions
742 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
13.2.1.5 Configuration
The NC system software supplies specific configurations for each supported combination of
NCU number and position controller cycle of a link group (see section "Parameter assignment:
NC system cycles (Page 740)").
During the system startup, the appropriate configuration will be loaded (as specified by the
values parameterized in the machine data):
● MD18782 $MN_MM_LINK_NUM_OF_MODULES (number of NCUs of the line group))
● MD10061 $MN_POSCTRL_CYCLE_TIME (position controller cycle)
Note
For applications, in which the standard configurations that have been supplied cannot be used,
please contact your local Siemens sales person.
Cabling
Starting from the NCU1, the NCU link modules should be wired up in the NCU number
sequence according to the following schematic: NCU(n), Port 0 → NCU(n+1), Port 1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 743
Distributed systems
13.2 NCU link
1&8/LQNYLD352),1(7 1&8/LQNYLD352),1(7
3RUW
3RUW
3RUW
3RUW
3RUW
3RUW
3RUW
3RUW
3RUW
3RUW
3RUW
3RUW
1&8 1&8 1&8
/LQNPRGXOH /LQNPRGXOH /LQNPRGXOH
13.2.1.7 Activation
The link communication is activated using the following machine data:
MD18780 $MN_ MM_NCU_LINK_MASK, Bit 0 = 1
Note
Activation time
It is recommended to activate the link communication only after complete commissioning of the
entire functionality on all participating NCUs has been done.
Complex systems with several NCUs require for the complete system coordination of the
manufacturing processes a cyclic exchange of user-specific data between the NCUs. The data
exchange is performed via the link communication and a special memory area, the link
variables memory available for each NCU.
The size and data structure of the link variables memory can be specified for each specific user.
The data stored in the link variables memory is addressed using a special $A_DLx link
variables.
Link variables are therefore system-global user variables that can be read and written in part
programs and cycles by all NCUs involved in a link group if link communication has been
configured. Unlike global user variables (GUD), link variables can also be used in synchronized
actions.
Basic functions
744 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
1&8/LQNYLD352),1(7
Note
If an NCU Is not a node of a link group or the link variables are not required for communication
via NCU link, the link variables can be used as the NCU-global user variables.
Initialization
After an NCU is powered up, the link variables memory is initialized with 0.
Structure
From the point of view of the system, the link variables memory is an unstructured memory area
that is available for link communication purposes. The link variables memory is structured by
the user/machine manufacturer alone. Depending on how the data structure is defined, the link
variables memory is accessed by means of data format-specific link variables.
System-wide alignment
Once a link variables memory has been written to, the changes that have been made to the data
are transferred to the link variables memories of all other NCUs involved in the link group. The
link variables memories are usually updated by means of link communication within two
interpolation cycles.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 745
Distributed systems
13.2 NCU link
Write
A link variable is written with main-run synchronism.
Read
A preprocessing stop is initiated when a link variable is read.
Checks
The following checks are performed for the link variables and link variables memory:
● Observance of the value range limits
● Access to format limit
● Observance of defined memory area in link variables memory
The user/machine manufacturer is solely responsible for preventing the following errors:
● Accessing with incorrect data format
● Accessing the wrong address (index i)
● Reciprocal overwriting of the same data item by multiple channels of a single NCU or
different NCUs
● Reading a data item before it has been updated by a channel of its own NCU or of a different
NCU
Note
Data consistency
The user/machine manufacturer is solely responsible for ensuring data consistency within
the link variables memory, both on a local-NCU basis and across NCUs.
Basic functions
746 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
Identifier Meaning
$AN_LINK_TRANS_RATE_LAST The number of write requests that were still free in
the last interpolator cycle.
$AN_LINK_TRANS_RATE_LAST_SUM[<n>] The number of write requests that were still free in
the last interpolator cycle in the send direction to
the specified NC <n> (NCU number).
$AN_LINK_CONN_SIZE_LINKVAR The number of bytes to be transferred for a write
request of a link variable.
$AN_LINK_CONN_SND[<n>] The maximum number of bytes that can be trans‐
ferred per interpolator cycle from the current NCU
to the specified NCU.
$AN_LINK_CONN_RCV[<n>] The maximum number of bytes that can be trans‐
ferred per interpolator cycle from the specified
NCU to the current NCU.
<n>: NCU number according to MD12510 $MN_NCU_LINKNO of the relevant NCU
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 747
Distributed systems
13.2 NCU link
Identifier Meaning
$A_LINK_TRANS_RATE 1)
Number of write requests that still can be transfer‐
red in the current interpolator cycle.
1) Application example, refer to Section: "Synchronization of a write request (Page 748)"
Program example
N120 WHEN $A_LINK_TRANS_RATE > 0 DO $A_DLW[0] = 9
N125 WHEN $A_LINK_TRANS_RATE > 0 DO $A_DLD[2] = 7
N130 G4 F1
The synchronized action in N120 is performed only when the write request can be transferred
in the same interpolator cycle to the other NCU of the link group. In this case, the
$A_LINK_TRANS_RATE system variable is also decremented in the same interpolator cycle
so that the updated value is available for the synchronized action in the following N125 block.
Basic functions
748 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
Memory structure
The data is arranged in the link variables memory as follows, with the data format limits taken
into account:
/LQNYDULDEOHPHPRU\
0'01B00B6,=(2)B/,1.9$5B'$7$
':25' ':25'
5($/
Note
Memory structure
The data in the link variables memory is always arranged randomly and may therefore appear
different (although the data format limits will still be taken into account).
Access via a link variable must be programmed as follows, in accordance with the memory
structure defined:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 749
Distributed systems
13.2 NCU link
Task
A system contains two NCUs (NCU1/NCU2). The NCUs are connected via the NCU link. The
MA2 machine axis of NCU1 (drive 2) travels in interpolation mode as link axis for NCU2. The
actual current value of drive 2 should be transferred for evaluation from NCU1 to NCU2. The
figure below shows the basic design of the system.
1&8OLQNYLD352),1(7
1&B$;
/RJPDFKLQHD[LVLPDJH
0'
$;
$;
$;
$;
$;
01B$;&21)B/2*,&B0$&+$;B7$%
0DFKLQHD[HV
0$
0$
0$
0$
0$
0$
0$
0'
01B$;&21)B0$&+$;B1$0(B7$%
'ULYH
'ULYH
'ULYH
'ULYH
'ULYH
'ULYH
Requirement
The actual current value for drive 2 (NCU1/MA2) can be read via the $VA_CURR system
variable. In the case of PROFIdrive-based drives, the following machine data item needs to be
set for this purpose:
MD36730 $MA_DRIVE_SIGNAL_TRACKING = 1 (acquisition of additional actual drive values)
Setting the machine data makes the following drive actual values available:
● $AA_LOAD, $VA_LOAD (drive capacity utilization in %)
● $AA_POWER, $VA_POWER (drive active power in W)
● $AA_TORQUE, $VA_TORQUE (drive torque setpoint in Nm)
● $AA_CURR, $VA_CURR (actual current value of axis or spindle in A)
Basic functions
750 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
Programming
NCU1
A static synchronized action is used to write cyclically in the interpolation cycle the actual
current value $VA_CURR of axis 2 (NCU1/MA2) via the link variable $A_DLR[0] (REAL value)
to the first 8 bytes of the link variables memory:
Program code
IDS=1 WHENEVER TRUE DO $A_DLR[0]=$VA_CURR[MA2]
NCU2
With a static synchronized action, the transferred actual current value is read cyclically in the
interpolator cycle via link variable $A_DLR[0]. If the actual current value is greater than 23 A,
alarm 61000 is displayed.
Program code
IDS=1 WHEN $A_DLR[0] > 23.0 DO SETAL(61000)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 751
Distributed systems
13.2 NCU link
1&8OLQN
1&8 1&8
&KDQQHO
1*)
1;=
&KDQQHOD[HV
0'
;
=
0&B$;&21)B&+$1$;B1$0(B7$%
1&B$;
/RJPDFKLQHD[LVLPDJH
$;
$;
$;
0'
01B$;&21)B/2*,&B0$&+$;B7$%
0DFKLQHD[HV
0$
0$
0'
;
01B$;&21)B0$&+$;B1$0(B7$%
'ULYH
'ULYH
/RFDOD[LV /LQND[LV
Requirement
The use of link axes requires a link communication defined in accordance with "Section Link
communication (Page 736)".
Home NCU
The home NCU of a link axis is the NCU on which it is physically connected as machine axis.
The position control and the exchange of axial NC/PLC interface signals of a link axis always
occurs on the home NCU. The generation of the setpoint can in principle be performed on any
NCU of the link group.
In the above figure:
● NCU1: Home NCU of machine axis MA1
● NCU2: Home NCU of machine axis MA2
Basic functions
752 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
13.2.3.3 Parameterization
Direct assignment
A geometry or special axis can be assigned directly to a link axis in the logical machine axis
image by specification of the link axis name:
MD10002 $MA_AXCONF_LOGIC_MACHAX_TAB[ <axis>] = <link axis>
Parameters Meaning
<axis>: Machine axis index: 0, 1, 2, … (max. number of machine axes - 1)
<link axis>: Name of the link axis: NCx_AXy, see Section "Name of a link axis (Page 753)"
Indirect assignment
A geometry or special axis can be assigned to a link axis indirectly in the logical machine axis
image by specification of a container slot. The container slot then contains the actual name of
the link axis, as described above. This is called a container-link axis. See also Section: "Axis
container (Page 757)".
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 753
Distributed systems
13.2 NCU link
Example
1&8
*HRPHWU\D[LVQDPH *HRPHWU\D[HVXVHGLQWKHFKDQQHO &KDQQHOD[LVQDPH
0' 0' 0'
0&B$;&21)B*(2$;B1$0(B7$% 0&B$;&21)B*(2$;B$66,*1B7$% 0&B$;&21)B&+$1$;B1$0(B7$%
&KDQQHO &KDQQHO &KDQQHO
; ;
&KDQQHO &KDQQHO &KDQQHO
= =
VWJHRPHWU\D[LV>@ ; VWFKDQQHOD[LV>@ ;
QGJHRPHWU\D[LV>@ = QGFKDQQHOD[LV>@ =
UGJHRPHWU\D[LV>@ UGFKDQQHOD[LV>@
0DFKLQHD[HVXVHGLQWKHFKDQQHO /RJLFDOPDFKLQHD[LVLPDJH
0'0&B$;&21)B0$&+$;B86(' 0'01B$;&21)B/2*,&B0$&+$;B7$%
&KDQQHO
1&B$;
1&B$;
&KDQQHO
$;
$;
Channel 1
The local AX1/AX2 machine axes of the NCU1 are assigned to the X/Z geometry axes.
Channel 2
The NC2_AX1/NC2_AX2 link axes of the NCU2 are assigned to the X/Z geometry axes.
Description
During program execution and after block search with "search via program test" (SERUPRO),
the pre-defined auxiliary functions S, M3, M4, M5, M19 and M70 are output channel-specific on
the NCU on which the spindle has been programmed and also axis-specific on the home NCU.
Basic functions
754 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
Further information
Detailed information regarding the auxiliary function output can be obtained in:
Function Manual Basic Functions, Auxiliary function outputs to PLC
Alarm acknowledgement
This additional alarm must be acknowledged by an NC reset. If the original alarm is still active
at this time, although the additional alarm can be acknowledged, an additional self-clearing
alarm will be generated that prevents a traversal of the axes or a program start until the original
alarm has been acknowledged.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 755
Distributed systems
13.2 NCU link
Alarm acknowledgement
See alarm acknowledgement under "Alarms: Behavior for Emergency Stop"
Effect
In the NC/PLC interface, instead of signal DB11 DBX26.3 (mode group ready), the signal
DB21, DBX36.5 (channel ready), is reset.
Advantage
The alarm response remains limited to the channel in which the error is detected. If required,
the PLC user program can initiate further responses.
Requirement
There is no higher-priority alarm response than "Mode group not ready".
Compensations
The following compensations are not available:
● Link axes: Quadrant error compensation (QEC)
● Container link axes: Sag compensation (CEC)
Basic functions
756 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
Frames
A link axis is permitted in a Frame command only when it is a geometry axis. The Frame
command changes only the geometry in the channel to which the link axis is currently assigned.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 757
Distributed systems
13.2 NCU link
$[LVFRQWDLQHU&7
6ORW 6ORW
;
;
$
$
B
B
&
&
1
1
1
1
&
&
B
B
$
$
;
;
6ORW 6ORW
Rules
The following rules must be observed with regard to axis containers:
● All machine axes of an axis container may be assigned to just one channel axis at any one
time.
● Multiple slots of an axis container must not reference the same machine axis.
● At any one time, only one channel is authorized to write to a machine axis, directly or via a
container axis.
● Several geometry and/or special axes of a channel can also be assigned to the container
axes of an axis container.
Basic functions
758 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
CT<container number>: The number of the axis container is attached to the CT letter
combination.
Example: CT3
<container name>: Individual name of the axis container set using
MD12750 $MN_AXCT_NAME_TAB
Example: A_CONT3
<axis name>: Axis name of a container axis which is known in the channel
involved.
Implicit wait
There is an implicit wait for the completion of a requested axis container rotation if one of the
following events has occurred:
● Part program language commands which will cause a container axis assigned to this axis
container in this channel to move
● GET(<channel axis name>) on a corresponding container axis
● The next AXCTSWE(<axis container>) for this axis container
Note
Even an IC(0) will result in a wait including synchronization where necessary (block-by-
block change in addressing according to incremental dimension even though an absolute
dimension has been set globally).
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 759
Distributed systems
13.2 NCU link
Note
SD41700 $SN_AXCT_SWWIDTH[<axis container>] is only updated for a new configuration. If,
after incremental rotation of the RTM/MS, the position of a circuit before the initial position is
reached, the container can be rotated normally in the forward direction to reach the initial
position of the container again. The drum or rotary table must however be turned back to the
original position, so that measuring and supply cables are not twisted.
See also
System variable (Page 768)
Programming (Page 766)
13.2.4.2 Parameterization
Machine data
Parameters Meaning
<index>: 0, 1, … max. axis container index
<name>: Name of the axis container (e.g. CT1)
Basic functions
760 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
Parameters Meaning
x: 1 … max. number of axis containers
<index>: 0, 1, … max. slot index
<axis>: Name of a local machine axis (e.g. AX1)
Name of a link axis. See Section "General information (Page 751)".
The slots within an axis container must be assigned in ascending order without gaps, starting
with slot index 0.
Setting data
Parameters Meaning
<index>: 0, 1, … max. axis container index
<increment>: Number of slots through which the axis container rotates
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 761
Distributed systems
13.2 NCU link
$[LVFRQWDLQHU&7 $[LVFRQWDLQHU&7
;
;
;
;
$
$
$
$
B
B
B
B
&
&
&
&
1
1
1
1
1
1
1
&
&
&
&
B
B
B
B
$
$
$
;
;
;
;
6ORW 6ORW 6ORW 6ORW
$VVLJQPHQWSULRUWRURWDWLRQ $VVLJQPHQWDIWHUURWDWLRQ
6'61B$;&7B6::,'7+>@
Based on the initial setting stated above, the link axis NCU2_ AX1 is assigned to slot 1 after a
rotation with an increment of 2, (figure "Axis container rotation, Fig. 2," left part).
Based on the initial setting stated above, the link axis NCU1_ AX2 is assigned to slot 1 after a
rotation with an increment of -1 (figure "Axis container rotation, Fig. 2," right part).
$[LVFRQWDLQHU&7 $[LVFRQWDLQHU&7
;
;
;
$
$
$
B
B
B
B
&
&
&
&
1
1
1
1
1
1
&
&
&
&
B
B
B
B
$
$
$
;
;
;
;
$VVLJQPHQWDIWHUURWDWLRQ $VVLJQPHQWDIWHUURWDWLRQ
6'61B$;&7B6::,'7+>@ 6'61B$;&7B6::,'7+>@
Basic functions
762 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
Control startup
During the control startup, all machine data will be aligned to the values of the container axis of
the first slot. If the value of a machine data item changes, the following message will be
displayed: "The axial machine data of the axes in axis container <n> has been adapted".
Slot change
If a slot of an axis container is assigned another machine axis, (MD127xx
AXCT_AXCONF_ASSIGN_TAB<x>), the following message is displayed: "The machine data
of the axes in axis container <n> will be adapted at the next startup".
Note
Container-link axes
For container-link axes, a machine data alignment is performed for all NCUs of the link group
involved on the axis container.
Parameter example
Assumptions
NCU Components
NCU1: Channel 1, X/Z geometry axes → 1st/2nd channel axis
Channel 2, X/Z geometry axes → 1st/2nd channel axis
Machine axes: AX1, AX2
CT1 axis container with four slots
NCU2: Machine axes: AX1, AX2
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 763
Distributed systems
13.2 NCU link
1&8
*HRPHWU\D[LVQDPH *HRPHWU\D[HVXVHGLQWKHFKDQQHO &KDQQHOD[LVQDPH
0' 0' 0'
0&B$;&21)B*(2$;B1$0(B7$% 0&B$;&21)B*(2$;B$66,*1B7$% 0&B$;&21)B&+$1$;B1$0(B7$%
&KDQQHO &KDQQHO &KDQQHO
; ;
&KDQQHO &KDQQHO &KDQQHO
= =
VWJHRPHWU\D[LV>@ ; VWFKDQQHOD[LV>@ ;
QGJHRPHWU\D[LV>@ = QGFKDQQHOD[LV>@ =
UGJHRPHWU\D[LV>@ UGFKDQQHOD[LV>@
0DFKLQHD[HVXVHGLQWKHFKDQQHO /RJLFDOPDFKLQHD[LVLPDJH
0'0&B$;&21)B0$&+$;B86(' 0'01B$;&21)B/2*,&B0$&+$;B7$%
&KDQQHO
&7B6/
&7B6/
&7B6/
&7B6/
&KDQQHO
$[LVFRQWDLQHU&7
6ORW 6ORW
6ORWDVVLJQPHQW
0'
;
;
$
01B$;&21)B$66,*1B7$%>@ ಯ1&B$;ರ
$
B
B
&
01B$;&21)B$66,*1B7$%>@ ಯ1&B$;ರ
&
1
01B$;&21)B$66,*1B7$%>@ ಯ1&B$;ರ
01B$;&21)B$66,*1B7$%>@ ಯ1&B$;ರ
1
1
&
&
B
B
$
$
;
;
6ORW 6ORW
Figure 13-14 Example: Parameter assignment of channel axes and axis containers
Effect
By programming the X and Z geometry axes in the 1st and 2nd channel of the NCU1, the
following axes traverse in the current position of the container:
● The local AX1 and AX2 machine axes of the NCU1.
● As container-link axes, the AX1 and AX2 machine axes of the NCU2.
For the axis container rotation, see Section "Programming (Page 766)".
Basic functions
764 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
$[LVFRQWDLQHU&7[ $FKVFRQWDLQHU&7[
1&8
1&8
1&8
1&8
6\PPHWULFDOD[LVGLVWULEXWLRQ $V\PPHWULFDOD[LVGLVWULEXWLRQ
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 765
Distributed systems
13.2 NCU link
&7B6/
&7B6/
&7B6/
/$,
$;
$;
$;
$;
$ $
$ $
$ $ $ $ $ $ $ $
&7B6/
&7B6/
&7B6/
/$,
$;
$;
$ $
$ $
$ $ $ $ $ $
13.2.4.3 Programming
Function
The AXCTSWE or AXCTSWED commands are used to enable the rotation of the specified axis
container.
Any previously set enable for axis container rotation is cancelled with the AXCTSWEC command.
Syntax
AXCTSWE(<ID>)
AXCTSWED(<ID>)
Basic functions
766 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
AXCTSWEC(<ID)
Meaning
Further information
The use of the AXCTSWEC command in synchronized actions is described in detail in:
Function Manual Synchronized Actions, Detailed description > Actions in synchronized actions
> Cancel release for axis container rotation (AXCTSWEC)
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 767
Distributed systems
13.2 NCU link
Description
Further information
A detailed description of the system variables can be found in:
List Manual System Variables
See also
Evaluating axis container system variables (Page 780)
Basic functions
768 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
6WDUW
,QLWLDOVHWXS
,)
+DVD[LVFRQWDLQHU
URWDWLRQWHUPLQDWHG" 1R
6HWXSF\FOLF
,)
+DVURWDWLRQRQWKH 0DLQWDLQLQJ
PDFKLQHWHUPLQDWHG" 1R
<HV
0DFKLQHF\FOLF
&OHDQXSF\FOLF
&RQWDLQHUURWDWLRQHQDEOH
$;&76:(&7
,)
&RQWLQXHF\FOLF
<HV PDFKLQLQJ"
1R
)LQDOFOHDQXS
(QG
Figure 13-18 Example: Schematic machining sequence for a station of a rotary cycle machine
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 769
Distributed systems
13.2 NCU link
MD1270x $MN_AXCT_AXCONF_ASSIGN_TABx
Note
Alignment between setpoint and actual status
After a controller startup, it is the sole responsibility of the user / machine manufacturer to detect
any difference between the status of the axis container and the machine status and to
compensate for this with a suitable axis container rotation.
Mode change
A container axis whose axis container in the Automatic mode was enabled for rotation cannot
be traversed after a change in the JOG mode.
Block search
An axis container rotation (AXCTSWE) cannot be enabled and activated in one block, but the
enabling and activation commands must be programmed in separate action blocks. In other
words, the axis container status changes in response to each separate rotation command as
a function of the status of other channels.
13.2.4.7 Behavior when withdrawing the release for axis container rotation
TheAXCTSWE command enables the channel-specific axis container rotation for an axis
container. The AXCTSWEC command cancels the enable.
The following figure shows an example the sequence of an axis container rotation as
represented in the axis container-specific system variables. Two channels for two NCUs are
always involved on the axis container.
Basic functions
770 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
1&8
&KDQQHO
$&B$;&76:$>,'!@
&KDQQHO
$&B$;&76:$>,'!@
1&8
$1B$;&76:$>,'!@
1&8
&KDQQHO
$&B$;&76:$>,'!@
&KDQQHO
$&B$;&76:$>,'!@
1&8
$1B$;&76:$>,'!@
To allow a previously granted enable to be canceled, the enable for at least one of the channels
(NCU1 or NCU2) involved on the axis container must still be pending at the time of the
cancellation. This means the cancel must be made before time ④.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 771
Distributed systems
13.2 NCU link
Withdrawal is no longer possible as soon as all enable signals are available from all channels
of all NCUs (instant in time ④). In this case, the AXCTSWEC command has no effect. No
feedback is sent to the user.
See also
Programming (Page 766)
Axis mode
If a container axis in axis mode or as a positioning spindle (POSA, SPOSA) traverses, the axis
container rotates only after reaching the programmed end position.
Spindle
● A container axis active as a spindle continues to rotate during an axis container rotation.
● The control type of a spindle (speed / position control) refers to the associated machine axis.
The set control type "moves" with the machine axis when an axis container rotates.
● For commands that refer to the master spindle of the channel, a machine axis with the
corresponding spindle number must exist in the channel at the time of execution of the
command:
MD35000 $MA_SPIND_ASSIGN_TO_MACHAX[ <axis>] == number of the master spindle
Note
It is the sole responsibility of the user / machine manufacturer to ensure for spindles as
container axes that an appropriate machine axis must still exist in the channel after an axis
container rotation for the master spindle.
Work offsets
Note
It is the sole responsibility of the user / machine manufacturer to ensure that after an axis
container rotation the effective work offsets in the channel are adapted to the changed machine
axis assignments.
Continuous-path mode
If continuous-path mode is active in the channel and an axis container rotation is performed, a
subsequent programming of a container axis interrupts the continuous-path mode. The
interruption also occurs even when the container axis not a path axis.
Basic functions
772 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
PLC axis
If a container axis whose axis container has been enabled for rotation becomes a PLC axis, the
status change occurs only after completion of the axis container rotation.
Command axis
If a container axis whose axis container has been enabled for rotation traverses as a command
axis, the traversing movement is performed only after completion of the axis container rotation.
Oscillating axis
If a container axis whose axis container has been enabled for rotation becomes an oscillation
axis, the status change occurs only after completion of the axis container rotation.
Axial frames
The axial frame of a channel axis, which is also a container axis, is no longer valid after an axis
container rotation. Since the axis container rotation assigns a new machine axis to the channel
axis, but the axial frame is referred to a machine axis, the rotation also changes the axial frame.
If the two frames do not coincide, a synchronization process (internal REORG) is performed.
Note
The assignment between a channel axis and a machine axis is altered by the axis container
rotation. The current frames remain unchanged after a rotation. The user is responsible for
ensuring that the correct frames are selected after a rotation by programming basic frame
masks, for example.
Transformation
If a container axis is involved as a spindle in a transformation, the transformation must be
deselected before the enable of the axis container rotation.
Axis couplings
If an axis coupling is active for a container axis, the coupling with COUPOF must be deselected
before the enable of the axis container rotation. After completion of the rotation, the coupling
can be immediately selected again with COUPON. A new define of the coupling is not required.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 773
Distributed systems
13.2 NCU link
Gantry axis
A gantry axis cannot be a container axis.
Drive alarms
If a drive alarm is pending for a container axis, the axis container rotation is not performed.
/HDGLQJD[LVGDWD
$[LVFRXSOLQJ
)ROORZLQJD[LVGDWD /HDGOLQND[LV
8S
1&8OLQN )ROORZLQJD[LV
1&8 1&8
.DQDODFKVHQ
; ; < 0'
0&B$;&21)B&+$1$;B1$0(B7$%
/RJ0DVFKLQHQDFKVDEELOG
$; 1&B$; $; 0'
01B$;&21)B/2*,&B0$&+$;B7$%
/HDGOLQN 0DVFKLQHQDFKVHQ
0$ 0$ 0'
$[LV
01B$;&21)B0$&+$;B1$0(B7$%
$QWULHE
$QWULHE
/HDGLQJD[LV )ROORZLQJD[LV
Figure 13-20 Lead-link axis
Basic functions
774 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
Coupled axes
Lead link axes can be used in conjunction with following axis couplings:
● Master value coupling
● Coupled motion
● Tangential tracking
● Electronic gear (ELG)
● Synchronous spindle
Requirement
The NCU must communicate via the NCU link. See Section "Link communication (Page 736)"
13.2.5.2 Parameterization
Link communication
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 775
Distributed systems
13.2 NCU link
Setpoint synchronization
Note
With the simultaneous use of lead link axes and cross-NCU axis containers, the axis container
means machine data MD18720 $MN_MM_SERVO_FIFO_SIZE = 3 must be set. This means a
synchronous output of the setpoints for leading and following axis is not possible. The offset
then has the size of one interpolator cycle.
Basic functions
776 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.2 NCU link
Note
These system variables have a lower transfer priority than those of the link variables.
13.2.5.5 Example
A detailed example for parameterizing and programming an axis coupling with lead-link axis is
provided in the Section: "Examples" > "Lead link axis (Page 791)".
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 777
Distributed systems
13.3 Examples
Further information
Function Manual Basic Functions; Velocities, setpoint/actual value systems, closed-loop
control
13.3 Examples
NCU1
Basic functions
778 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.3 Examples
NCU2
The characteristic as a function of time is displayed from top to bottom in the following tables.
The data are valid on condition that only two channels have axes in the container.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 779
Distributed systems
13.3 Examples
13.3.2.3 Axis container rotation by one channel only (e.g. during power up)
Channel 1 Comment
N100 AXCTWE(CT1) Channel 1: Enable of the rotation of axis container CT1
MARKER1:
N200 ... Part program without movement of a container axis
IF $AC_AXCTSWA[CT1] == 1 GOTOB MARKE1 IF rotation of axis container CT1 still active
THEN continue with MARKER1
ELSE (rotation of axis container CT1 completed)
N300 ... Part program with movement of a container axis
Basic functions
780 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.3 Examples
Channel 1 Comment
IDS =1 EVERY $AN_AXCTSWA[CT1] == 1 DO M99 Static synchronized action:
Always output auxiliary function M99 at the beginning of an
axis container rotation.
Further information: Synchronized Actions Function Manual
Note
Although programming system variables $AN_AXCTSWA initiates an implicit preprocessing
stop, the subsequent command sequence cannot be used to uniquely identify the completion
of a requested axis container rotation in the channel:
WHILE ($AN_AXCTSWA[<ID>] == TRUE) ; wait: until the enable for axis
container rotation was canceled
ENDWHILE
While the channel in the command sequence waits for the completion of the axis container
rotation, initiated from another channel, a reorganization could be carried out in the
background. For instance, by transferring a requested axis to another channel. As a
consequence, the system variable would then supply the value FALSE. Even if the axis
container rotation had still not been completed.
Recommended command sequence:
RL = $AN_AXCTAS[<ID>] ; read: actual axis container position
AXCTSWE(<ID>) ; enable: axis container rotation
WHILE (RL == $AN_AXCTAS[<ID>]) ; wait: until the read is not equal to
the actual axis container
; position
ENDWHILE
RL is any random user variable.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 781
Distributed systems
13.3 Examples
Introduction
The following example describes the use of:
● Several NCUs in the NCU link group
● Flexible configuration with axis containers
Basic functions
782 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.3 Examples
Machine description
● Over the circumference of a drum A (front-plane machining), the machine has distributed:
– 4 main spindles, HS1 to HS4
Each main spindle has the possibility of material feed (bars, hydraulic bar feed, axes:
STN1-STN4).
– 4 cross slides
– Each slide has two axes.
– Optionally, a powered tool S1-S4 can operate on each slide.
● Over the circumference of a drum B (back-plane machining), the machine has distributed:
– 4 counterspindles GS1 to GS4
– 4 cross slides
– Each slide has two axes.
– Optionally, a powered tool S5-S8 can operate on each slide.
– Each counterspindle can be moved through a linear axis, for example, for transferring
parts from the main spindle for the rear-plane machining in drum B. (Transfer axes. Axes:
ZG1-ZG4).
● Couplings:
– If drum A rotates, all of the main spindles of this drums are subordinated to a different
group of slides.
– If drum B rotates, all of the counterspindles and all of the transfer axes of this drum are
subordinated to a different group of slides.
– The rotations of drums A and B are autonomous.
– The rotations of drums A and B are limited to 270 degrees.
(range and twisting of supply cables)
Term: Position
Main spindle HSi and counterspindle GSi together with their slides characterize a position.
NCU assignment
The axes and spindles of a position (for this example) are each assigned to an NCU. One of the
NCUs, the master NCU, also controls the axes for rotating drums A and B. The result is 4 NCUs
with a maximum of the following axes:
Number of axes
Per NCUi the following axes/spindles must be configured:
Slide 1: Xi1, Zi1
2: Xi2, Zi2
Spindles: HSi, GSi, powered tools: S1, S2
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 783
Distributed systems
13.3 Examples
Axis container
With rotation of drums A/B, HSi, GSi, ZGi and STNi must be assigned to another NCU and must
therefore be configured as link axes in axis containers.
NCUd
ZG4
STN4
HS4 Part transfer GS4
Position d
NCUc
STN3 ZG3
HS3 GS3
Part transfer
Position c
TRV TRH
NCUa
ZG1
HS1 GS1
Part transfer
Position a
STN1 NCUb
ZG2
Bar feed: HS2 GS2
STN2 Part transfer
Position b
Figure 13-21 Schematic diagram of main spindles HSi, countersp. GSi, bar feed axis STNi and transfer axes ZGi
Basic functions
784 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.3 Examples
;&
=&
3RVLWLRQF
+6
=&
;&
Figure 13-22 Two slides per position can also work together on one spindle.
Note
The axes are given the following names in order to clarify the assignments of axes to slides and
positions:
Xij with i slide (1, 2), j position (A-D)
Zij with i slide (1, 2), j position (A-D)
Whereas the positions and their slides remain in one place, main spindles, counterspindles, bar
feed axes STN and transfer axes ZG move to new positions as the result of rotations of drums
V or H.
For example, the axes to be managed per NC when the slide is taken into account are as
follows for the configurations shown in the above diagrams:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 785
Distributed systems
13.3 Examples
Configuration rules
The following rules were applied for the configuration described below:
● Main spindle, counterspindles and axes that are assigned to different NCUs through drum
rotation while they are operating as illustrated in the above diagram "Main spindle ..." must
be configured in an axis container.
(HSi, GSi, ZGi, STNi).
● All main spindles of drum A are in the same container (No. 1).
● All bar feed axes of drum A are in the same container (No. 2).
● All counterspindles of drum B are in the same container (No. 3).
● All transfer axes of drum B are in the same container (No. 4).
● The main spindles HSi and their counterspindles GSi as well as the transfer axes of the
counterspindle ZGi and the bar feed axes STNi of the main spindle are assigned as follows
for reasons of NCU equal load distribution:
NCUa HS1-STN1,
NCUb HS2-STN2, ... etc.
● Slide axes Xij, Zij are purely local axes with fixed NCU assignment.
● Slides are assigned to a dedicated channel of an NCU in each case.
Slides can therefore be moved autonomously.
Basic functions
786 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.3 Examples
Configuration options
● Main spindles or counterspindles must be flexibly assigned to the slide.
● The speed of the main spindle and the counterspindle can be defined independently in each
position.
Exceptions:
During the parts change from front-plane machining in drum V to rear-plane machining in
drum H, the speeds of the main spindle and the counterspindle must be synchronized
(synchronous spindle coupling).
In cases where slide 2 also participates in front-plane machining so as to "support" slide 1,
the main spindle speed also applies to slide 2. Similarly if slide 1 participates in rear-plane
machining, the counterspindle speed also applies to slide 1.
Channel axis name ..._MA‐ $MN_ Container, slot Machine axis name
CHAX_USE AXCONF_LOGIC_MA‐ entry (string)
D CHAX_TAB
S4 1 AX1: CT1_SL1 11 HS1
NC1_AX1
S3 2 AX2: CT3_SL1 31 GS1
NC1_AX2
X1 3 AX3: X1A
Z1 4 AX4: Z1A
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 787
Distributed systems
13.3 Examples
Channel axis name ..._MA‐ $MN_ Container, slot Machine axis name
CHAX_USE AXCONF_LOGIC_MA‐ entry (string)
D CHAX_TAB
Z3 5 AX5: CT4_SL1 41 ZG1
NC1_AX5
S1 6 AX6: WZ1A
STN 7 AX7: CT2_SL1 21 STN1
NC1_AX7
TRV 11 AX11: TRV
TRH 12 AX12: TRH
x2 *
z2 *
Channel axis name ..._MA‐ $MN_ Container, slot Machine axis name
CHAX_USE AXCONF_LOGIC_MA‐ entry (string)
D CHAX_TAB
S4 1 AX1: CT1_SL1 11 HS1
NC1_AX1
S3 2 AX2: CT3_SL1 31 GS1
NC1_AX2
Z3 5 AX5: CT4_SL1 41 ZG1
NC1_AX5
STN 7 AX7: CT2_SL1 21 STN1
NC1_AX7
X2 8 AX8: X2A
Z2 9 AX9: Z2A
S1 10 AX10: WZ2A
x1 *
z1 *
Note
* due to program coordination via axis positions and 4-axis machining in one position
For the entry in a location of the axis container, the format: "NC1_AX.." is required, with the
meaning NC1 = NCU 1. In the above tables, NCUa is mapped to NC1_..., NCUb to NC2_..., etc.
Basic functions
788 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.3 Examples
Further NCUs
The above listed configuration data must be specified accordingly for NCUb to NCUd. The
following must be observed:
● The axes TRA and TRB are only available for NCUa, channel 1.
● The container numbers are retained for the additional NCUs, as specified for the individual
axes.
● The slot numbers are as follows:
NCUb → 2
NCUc → 3
NCUd → 4.
● The machine axis names are as follows:
NCUb → HS2, GS2, ZG2, STN2
NCUc → HS3, GS3, ZG3, STN3
NCUd → HS4, GS4, ZG4, STN4.
Axis container
The information relating to containers given in Table 7-17 and the container entries of the
similarly configured NCUs, NCUb to NCUd, are specified in the following tables, sorted
according to containers and slots, as they have to be set in machine data:
MD12701 $MN_AXCT_AXCONF_ASSIGN_TAB1[slot]
...
MD12716 $MN_AXCT_AXCONF_ASSIGN_TAB16[slot]
whereby slots: 1-4 must be set for the 4 positions of a multi-spindle turning machine:
Note
For the machine data entry
$MN_AXC_AXCONF_ASSIGN_TABi[slot]
the values (without decimal point and machine axis name) that are entered under initial position
in the above tables must be set.
Table 13-4 Axis containers and their position-dependent contents for drum A
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 789
Distributed systems
13.3 Examples
Table 13-5 Axis containers and their position-dependent contents for drum B
Basic functions
790 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.3 Examples
13.3.5.1 Configuration
X Y Z X Y Z X Y Z
AX 1 AX 3
AX 1 AX 2 AX 3 AX 2 AX 3
Figure 13-24 NCU2 to NCUn use a lead link axis to enable coupling to the machine axis on NCU1 (NCU1-AX3).
The following example refers to the axis coupling section between Y(LAX2, AX2) as following
axis on NCU2 and Z(LAX3, NC1_AX3) as lead link axis.
Machine data
● The machine data of a leading value axis may only be loaded on the home NCU. From this
NCU, the relevant machine data are distributed to the other NCUs where a lead link axis has
been defined.
● Each lead link axis reduces the maximum number of axes that can be traversed on this NCU
by one axis.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 791
Distributed systems
13.3 Examples
$MA_AXCONF_ASSIGN_MASTER_NCK[ AX3 ] = 1
$MC_AXCONF_MACHAX_USED[0]=1 ; X
$MC_AXCONF_MACHAX_USED[1]=2 ; Y
$MC_AXCONF_MACHAX_USED[2]=3 ; Z
13.3.5.2 Programming
Basic functions
792 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.3 Examples
Identifier for NCU2, that the leading axis of NCU1 has been released: Link variable $A_DLB[0]
=0
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 793
Distributed systems
13.4 Data lists
Basic functions
794 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.4 Data lists
13.4.3 Signals
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 795
Distributed systems
13.4 Data lists
Basic functions
796 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Distributed systems
13.4 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 797
Distributed systems
13.4 Data lists
Basic functions
798 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Memory configuration 14
14.1 Introduction
Memory areas
The memory card of the NCU contains two memory areas for storing and managing the data of
the local persistent and non-persistent data of the NC:
● Static NC memory
That static NC memory contains the persistent NC data of the active and passive file system
(Page 799).
● Dynamic NC memory
The dynamic NC memory contains the non-persistent NC data, such as macros, local user
data, buffer memory, etc., generated dynamically by the NC.
Deterministic behavior
To ensure the behavior of the NC is deterministic in all machining situations, all memory areas
of the local static and dynamic NC memory have a settable, but permanent size.
Memory configuration
The memory areas of the local static and dynamic NC memory are set up when the control is
first started based on the standard settings of the machine data that configure the memory.
These settings are adequate in most cases.
Reconfiguration
If necessary, the memory configuration can be adapted to the user-specific requirements. The
necessary reconfiguration of the memory can result in loss of all user data in the static NC
memory. Therefore, after a change to memory-configuring machine data, the Alarm 4400: "MD
change results in reorganization of the buffered memory (loss of data!)" is displayed. Prior to
activating the machine data change or reconfiguration of the memory by an NC reset, a
commissioning archive should be created.
The memory configuration will be changed the next time the NC is started. Then the created
commissioning archive can be read-in for restoring the user data.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 799
Memory configuration
14.2 Active and passive file system
Basic functions
800 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Memory configuration
14.3 Commissioning
14.3 Commissioning
14.3.1 Configuration
The configuration of the local static and dynamic NC memory is set and influenced by the
following machine data:
● Machine data that configure the memory:
– $MN_MM_... (NC-specific, memory-configuring machine data)
– $MC_MM_... (channel-specific memory-configuring machine data)
– $MA_MM_... (axis-specific memory-configuring machine data)
● Number of parameterized channels:
– MD10010 $MN_ASSIGN_CHAN_TO_MODE_GROUP (channel valid in mode group)
14.3.2 Reconfiguration
The first time the controller starts up, the sizes of the memory areas of the local NC memory are
set based on the default settings of the memory-configuring machine data. Generally, these
settings are sufficient for the operation of the control. If the memory areas of the local NC
memory are adapted because of special user-specific requirements, this results in
reconfiguration of the local NC memory. If the active and/or passive file system of the static NC
memory is affected, Alarm 4400 is displayed. The user should then back up the relevant data
by creating a commissioning archive on an external storage medium.
Alarm 4400 is displayed in the following cases:
● Memory-configuring machine data of the passive file system was changed
● Memory-configuring machine data of the active file system was changed and the function
"Automatic Memory Reconfiguration" (AMR) is not active
● Memory-configuring machine data of the active file system was changed, the AMR function
is active, but the data of the active file system cannot be buffered locally
NOTICE
Loss of data due to reconfiguration
A reconfiguration of the local static NC memory can result in the loss of the user data on the
active and/or passive file system. We therefore urgently recommend the back up of all relevant
data by creating a commissioning archive if Alarm 4400 is displayed, before activating the
changed memory configuration by an NC reset.
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 801
Memory configuration
14.4 Configuration of the static user memory
Activation
The "Automatic memory reconfiguration" function (AMR) is activated via machine data:
MD17950 $MN_IS_AUTOMATIC_MEM_RECONFIG = TRUE
Further information
CNC Commissioning Manual: NC, PLC, drive; Saving and managing data
The static NC memory is used jointly by the system and by the user. The area available to the
user is defined as the static user memory. It contains the data from the active and passive file
system.
The following figure shows principle partitioning of the static NC memory:
Basic functions
802 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Memory configuration
14.4 Configuration of the static user memory
0HPRU\XVHGE\WKHV\VWHP
8VHUF\FOHVSDUWSURJUDPV
ZRUNSLHFHV
8
0'01B00B8B),/(B0(0B6,=(
3DVVLYHILOH
V\VWHP
0'01B00B86(5B0(0B%8))(5('
0DFKLQHPDQXIDFWXUHUF\FOHV
0 0'01B00B0B),/(B0(0B6,=(
7RROPDQDJHPHQW
*OREDOXVHUGDWD
$FWLYHILOH
V\VWHP
6WDWLFXVHUPHPRU\
)UHHFDSDFLW\
0'01B,1)2B)5((B0(0B67$7,&
0HPRU\H[SDQVLRQRSWLRQ
Static-user-memory size
The size of the static user memory is displayed in machine data:
MD18230 $MN_MM_USER_MEM_BUFFERED
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 803
Memory configuration
14.4 Configuration of the static user memory
Note
Partition S
Partition S (Siemens = Control manufacturer) of the passive file systems is in the dynamic NC
memory (Page 805).
Note
The memory required to expand the memory areas is displayed in the "Startup" area of the user
interface. This information enables the system startup engineer to estimate the actual memory
requirements for the planned expansion.
14.4.2 Commissioning
You can adjust the default memory division by increasing/decreasing individual memory areas
for each user.
Basic functions
804 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Memory configuration
14.5 Configuration of the dynamic user memory
Basic procedure:
1. Load standard machine data.
Further information
Commissioning Manual CNC: NC, PLC, drive; Requirements for commissioning
2. Determining the maximum possible size of the static user memory (including the optional
memory expansion):
MD18230 $MN_MM_USER_MEM_BUFFERED
3. Optional: modifying the size of the static user memory:
– MD19250 $ON_USER_MEM_BUFFERED
– Perform a power-on reset.
4. Optional: setting the size partitions U and M:
– MD18352 $MN_MM_U_FILE_MEM_SIZE
– MD18353 $MN_MM_M_FILE_MEM_SIZE
5. Optional: setting up additional channels of the control:
MD10010 $MC_ASSIGN_CHAN_TO_MODE_GROUP
6. Optional: setting the size of the memory areas of the active file system (tool management,
global user data, ...):
– Determining the free static user memory:
MD18060 $MN_INFO_FREE_MEM_STATIC
– Setting the size of the memory areas of the active file system in the machine data that
configure memory (...MM_...).
7. Perform a power-on reset.
The memory will be reconfigured the next time the control starts up.
Further information
● List Manual Machine Data and Parameters
The dynamic NC memory is used jointly by the system and by the user. The area available to
the user is defined as the dynamic user memory.
The figure below shows the principle division of the dynamic NC memory:
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 805
Memory configuration
14.5 Configuration of the dynamic user memory
'\QDPLFPHPRU\XVHGE\WKHV\VWHP
6 6LHPHQVF\FOHV
0DFURV
0LVFHOODQHRXVIXQFWLRQVDQGSDUDPHWHUV
0'01B00B86(5B0(0B'<1$0,&
/RFDOXVHUGDWD
+DVKWDEOHV
7DVNV
5HRUJIXQFWLRQ
,QWHUSRODWLRQEXIIHU
'\QDPLFXVHUPHPRU\
&RPSLOHF\FOHV
3URWHFWLRQDUHDV
)UHHFDSDFLW\
0'01B,1)2B)5((B0(0B'<1$0,&
Dynamic-user-memory size
The size of the dynamic user memory is displayed in machine data:
MD18210 $MN_MM_USER_MEM_DYNAMIC
Basic functions
806 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Memory configuration
14.6 Boundary conditions
14.5.2 Commissioning
You can adjust the default memory division by increasing/decreasing individual memory areas
for each user.
Basic procedure:
1. Determining the size of the free dynamic user memory:
MD18050 $MN_INFO_FREE_MEM_DYNAMIC
2. Optional: Setting the size of the memory areas of the dynamic user memory in the machine
data that configure memory (...MM_...):
3. Perform a power-on reset.
The memory will be reconfigured the next time the control starts up.
For further information, see Machine Data and Parameters List Manual.
MD18088 $MN_NUM_TOOL_CARRIER =
<Highest number of tool carriers in one channel> *
<Number of parameterized channels>
The tool carriers are distributed in the control equally among the available channels.
Example
3 channels are parameterized in the NC. The number of tool carriers required in the channels
is:
1. Channel: 3 ⇒ maximum value
2. Channel: 2
3. Channel: 1
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 807
Memory configuration
14.7 Data lists
Basic functions
808 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Memory configuration
14.7 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 809
Memory configuration
14.7 Data lists
Basic functions
810 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Memory configuration
14.7 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 811
Memory configuration
14.7 Data lists
Basic functions
812 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Memory configuration
14.7 Data lists
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 813
Memory configuration
14.7 Data lists
Basic functions
814 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Appendix A
A.1 List of abbreviations
A
O Output
ADI4 (Analog drive interface for 4 axes)
AC Adaptive Control
ALM Active Line Module
ARM Rotating induction motor
AS Automation system
ASCII American Standard Code for Information Interchange: American coding standard for
the exchange of information
ASIC Application-Specific Integrated Circuit: User switching circuit
ASUB Asynchronous subprogram
AUXFU Auxiliary function: Auxiliary function
STL Statement List
UP User Program
B
OP Operating Mode
BAG Mode group
BCD Binary Coded Decimals: Decimal numbers encoded in binary code
BERO Contact-less proximity switch
BI Binector Input
BICO Binector Connector
BIN BINary files: Binary files
BIOS Basic Input Output System
BCS Basic Coordinate System
BO Binector Output
OPI Operator Panel Interface
C
CAD Computer-Aided Design
CAM Computer-Aided Manufacturing
CC Compile Cycle: Compile cycles
CEC Cross Error Compensation
CI Connector Input
CNC Computerized Numerical Control: Computer-Supported Numerical Control
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 815
Appendix
A.1 List of abbreviations
C
CO Connector Output
CoL Certificate of License
COM Communication
CPA Compiler Projecting Data: Configuring data of the compiler
CRT Cathode Ray Tube: picture tube
CSB Central Service Board: PLC module
CU Control Unit
CP Communication Processor
CPU Central Processing Unit: Central processing unit
CR Carriage Return
CST Configured Stop: Configured stop
CTS Clear To Send: Ready to send signal for serial data interfaces
CUTCOM Cutter radius Compensation: Tool radius compensation
D
DAC Digital-to-Analog Converter
DB Data Block (PLC)
DBB Data Block Byte (PLC)
DBD Data Block Double word (PLC)
DBW Data Block Word (PLC)
DBX Data block bit (PLC)
DDE Dynamic Data Exchange
DDS Drive Data Set: Drive data set
DIN Deutsche Industrie Norm
DIO Data Input/Output: Data transfer display
DIR Directory: Directory
DLL Dynamic Link Library
DO Drive Object
DPM Dual Port Memory
DPR Dual Port RAM
DRAM Dynamic memory (non-buffered)
DRF Differential Resolver Function: Differential revolver function (handwheel)
DRIVE-CLiQ Drive Component Link with IQ
DRY Dry Run: Dry run feedrate
DSB Decoding Single Block: Decoding single block
DSC Dynamic Servo Control / Dynamic Stiffness Control
DW Data Word
DWORD Double Word (currently 32 bits)
Basic functions
816 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Appendix
A.1 List of abbreviations
E
I Input
EES Execution from External Storage
I/O Input/Output
ENC Encoder: Actual value encoder
EFP Compact I/O module (PLC I/O module)
ESD Electrostatic Sensitive Devices
EMC ElectroMagnetic Compatibility
EN European standard
ENC Encoder: Actual value encoder
EnDat Encoder interface
EPROM Erasable Programmable Read Only Memory: Erasable, electrically programmable
read-only memory
ePS Network Services Services for Internet-based remote machine maintenance
EQN Designation for an absolute encoder with 2048 sine signals per revolution
ES Engineering System
ESR Extended Stop and Retract
ETC ETC key ">"; softkey bar extension in the same menu
F
FB Function Block (PLC)
FC Function Call: Function Block (PLC)
FEPROM Flash EPROM: Read and write memory
FIFO First In First Out: Memory that works without address specification and whose data is
read in the same order in which they was stored
FIPO Fine interpolator
FPU Floating Point Unit: Floating Point Unit
CRC Cutter Radius Compensation
FST Feed Stop: Feedrate stop
FBD Function Block Diagram (PLC programming method)
FW Firmware
G
GC Global Control (PROFIBUS: Broadcast telegram)
GDIR Global part program memory
GEO Geometry, e.g. geometry axis
GIA Gear Interpolation dAta: Gear interpolation data
GND Signal Ground
GP Basic program (PLC)
GS Gear Stage
GSD Device master file for describing a PROFIBUS slave
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 817
Appendix
A.1 List of abbreviations
G
GSDML Generic Station Description Markup Language: XML-based description language for
creating a GSD file
GUD Global User Data: Global user data
H
HEX Abbreviation for hexadecimal number
AuxF Auxiliary function
HLA Hydraulic linear drive
HMI Human Machine Interface: SINUMERIK user interface
MSD Main Spindle Drive
HW Hardware
I
IBN Commissioning
ICA Interpolatory compensation
IM Interface Module: Interconnection module
IMR Interface Module Receive: Interface module for receiving data
IMS Interface Module Send: Interface module for sending data
INC Increment: Increment
INI Initializing Data: Initializing data
IPO Interpolator
ISA Industry Standard Architecture
ISO International Standardization Organization
J
JOG Jogging: Setup mode
K
KV Gain factor of control loop
Kp Proportional gain
KÜ Transformation ratio
LAD Ladder Diagram (PLC programming method)
L
LAI Logic Machine Axis Image: Logical machine axes image
LAN Local Area Network
LCD Liquid Crystal Display: Liquid crystal display
LED Light Emitting Diode: Light-emitting diode
LF Line Feed
Basic functions
818 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Appendix
A.1 List of abbreviations
L
PMS Position Measuring System
LR Position controller
LSB Least Significant Bit: Least significant bit
LUD Local User Data: User data (local)
M
MAC Media Access Control
MAIN Main program: Main program (OB1, PLC)
MB Megabyte
MCI Motion Control Interface
MCIS Motion Control Information System
MCP Machine Control Panel: Machine control panel
MD Machine Data
MDA Manual Data Automatic: Manual input
MDS Motor Data Set: Motor data set
MSGW Message Word
MCS Machine Coordinate System
MM Motor Module
MPF Main Program File: Main program (NC)
MCP Machine control panel
N
NC Numerical Control: Numerical control with block preparation, traversing range, etc.
NCU Numerical Control Unit: NC hardware unit
NRK Name for the operating system of the NC
IS Interface Signal
NURBS Non-Uniform Rational B-Spline
WO Work Offset
NX Numerical Extension: Axis expansion board
O
OB Organization block in the PLC
OEM Original Equipment Manufacturer
OP Operator Panel: Operating equipment
OPI Operator Panel Interface: Interface for connection to the operator panel
OPT Options: Options
OLP Optical Link Plug: Fiber optic bus connector
OSI Open Systems Interconnection: Standard for computer communications
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 819
Appendix
A.1 List of abbreviations
P
PIQ Process Image Output
PII Process Image Input
PC Personal Computer
PCIN Name of the SW for data exchange with the control
PCMCIA Personal Computer Memory Card International Association:
Plug-in memory card standardization
PCU PC Unit: PC box (computer unit)
PG Programming device
PKE Parameter identification: Part of a PIV
PIV Parameter identification: Value (parameterizing part of a PPO)
PLC Programmable Logic Control: Adaptation control
PN PROFINET
PNO PROFIBUS user organization
PO POWER ON
POU Program Organization Unit
POS Position/positioning
POSMO A Positioning Motor Actuator: Positioning motor
POSMO CA Positioning Motor Compact AC: Complete drive unit with integrated power and control
module as well as positioning unit and program memory; AC infeed
POSMO CD Positioning Motor Compact DC: Like CA but with DC infeed
POSMO SI Positioning Motor Servo Integrated: Positioning motor, DC infeed
PPO Parameter Process data Object: Cyclic data telegram for PROFIBUS DP transmission
and "Variable speed drives" profile
PPU Panel Processing Unit (central hardware for a panel-based CNC, e.g SINUMERIK
828D)
PROFIBUS Process Field Bus: Serial data bus
PRT Program Test
PSW Program control word
PTP Point-To-Point: Point-To-Point
PUD Program global User Data: Program-global user variables
PZD Process data: Process data part of a PPO
Q
QEC Quadrant Error Compensation
R
RAM Random Access Memory: Read/write memory
REF REFerence point approach function
REPOS REPOSition function
RISC Reduced Instruction Set Computer: Type of processor with small instruction set and
ability to process instructions at high speed
ROV Rapid Override: Input correction
Basic functions
820 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Appendix
A.1 List of abbreviations
R
RP R Parameter, arithmetic parameter, predefined user variable
RPA R Parameter Active: Memory area in the NC for R parameter numbers
RPY Roll Pitch Yaw: Rotation type of a coordinate system
RTLI Rapid Traverse Linear Interpolation: Linear interpolation during rapid traverse motion
RTS Request To Send: Control signal of serial data interfaces
RTCP Real Time Control Protocol
S
SA Synchronized Action
SBC Safe Brake Control: Safe Brake Control
SBL Single Block: Single block
SBR Subroutine: Subprogram (PLC)
SD Setting Data
SDB System Data Block
SEA Setting Data Active: Identifier (file type) for setting data
SERUPRO SEarch RUn by PROgram test: Block search, program test
SFB System Function Block
SFC System Function Call
SH Safe standstill
SIM Single in Line Module
SK Softkey
SKP Skip: Function for skipping a part program block
SLM Synchronous Linear Motor
SM Stepper Motor
SMC Sensor Module Cabinet Mounted
SME Sensor Module Externally Mounted
SMI Sensor Module Integrated
SPF Sub Routine File: Subprogram (NC)
PLC Programmable Logic Controller
SRAM Static RAM (non-volatile)
TNRC Tool Nose Radius Compensation
SRM Synchronous Rotary Motor
LEC Leadscrew Error Compensation
SSI Serial Synchronous Interface: Synchronous serial interface
SSL Block search
STW Control word
GWPS Grinding Wheel Peripheral Speed
SW Software
SYF System Files: System files
SYNACT SYNchronized ACTion: Synchronized Action
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 821
Appendix
A.1 List of abbreviations
T
TB Terminal Board (SINAMICS)
TCP Tool Center Point: Tool tip
TCP/IP Transport Control Protocol / Internet Protocol
TCU Thin Client Unit
TEA Testing Data Active: Identifier for machine data
TIA Totally Integrated Automation
TM Terminal Module (SINAMICS)
TO Tool Offset: Tool offset
TOA Tool Offset Active: Identifier (file type) for tool offsets
TRANSMIT Transform Milling Into Turning: Coordination transformation for milling operations on a
lathe
TTL Transistor-Transistor Logic (interface type)
TZ Technology cycle
U
UFR User Frame: Work offset
SR Subprogram
USB Universal Serial Bus
UPS Uninterruptible Power Supply
V
VDI Internal communication interface between NC and PLC
VDI Verein Deutscher Ingenieure [Association of German Engineers]
VDE Verband Deutscher Elektrotechniker [Association of German Electrical Engineers]
VI Voltage Input
VO Voltage Output
FDD Feed Drive
W
SAR Smooth Approach and Retraction
WCS Workpiece Coordinate System
T Tool
TLC Tool Length Compensation
WOP Workshop-Oriented Programming
WPD Workpiece Directory: Workpiece directory
TRC Tool Radius Compensation
T Tool
TO Tool Offset
TM Tool Management
TC Tool change
Basic functions
822 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Appendix
A.2 Documentation overview
X
XML Extensible Markup Language
Z
WOA Work Offset Active: Identifier for work offsets
ZSW Status word (of drive)
You can display the documents or download them in PDF or HTML5 format.
The documentation is divided into the following categories:
● User: Operating
● User: Programming
● Manufacturer/Service: Configure
● Manufacturer/Service: Commissioning
● Manufacturer/Service: Functions
● Safety Integrated
● SINUMERIK Integrate / MindApp
● Information and training
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 823
Appendix
A.3 Available IPCs
Panel IPC
IPC 477E 22" Win 7 6AV7241-3YA04-0FA0
IPC 477E 24" Win 7 6AV7241-5SB04-0FA0
IPC 477E 15" Win10 6AV7241-1WA07-0FA0
IPC 477E 19" Win10 6AV7241-3XB07-0FA0
IPC 477E 22" Win10 6AV7241-3YA07-0FA0
IPC 477E 24" Win10 6AV7241-5SB07-0FA0
Box IPC
IPC 427E (Standard) Win7 6AG4141-1AA14-0FA0
IPC 427E (High) Win7 6AG4141-5AB14-0FA0
IPC 427E (Standard) Win10 6AG4141-1AA17-0FA0
IPC 427E (High) Win10 6AG4141-5AB17-0FA0
Basic functions
824 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Index
$AN_AUXFU_LIST_ENDINDEX, 665
$AN_AXCTAS, 768
$ $AN_AXCTSWA, 768
$AN_LAI_AX_IS_AXCTAX, 768
$A_DP_IN_CONF, 718
$AN_LAI_AX_IS_LEADLINKAX, 768
$A_DP_IN_STATE, 718
$AN_LAI_AX_IS_LINKAX, 768
$A_DP_IN_VALID, 718
$AN_LAI_AX_TO_IPO_NC_CHANAX, 768
$A_DP_OUT_CONF, 718
$AN_LAI_AX_TO_MACHAX, 768
$A_DP_OUT_STATE, 718
$AN_POWERON_TIME, 245
$A_DP_OUT_VALID, 718
$AN_SETUP_TIME, 245
$A_IN, 692
$C_AUX_EXT, 226
$A_INA, 692, 698
$C_AUX_IS_QUICK, 226
$A_INCO, 705
$C_AUX_VALUE, 226
$A_OUT, 692, 694
$C_D, 227
$A_OUTA, 692, 700
$C_D_PROG, 227
$AA_ATOL, 510
$C_DL, 227
$AA_G0MODE, 519
$C_DL_PROG, 227
$AA_ISTEST, 544
$C_DUPLO, 227
$AC_ACT_PROG_NET_TIME, 246
$C_DUPLO_PROG, 227
$AC_ACTUAL_PARTS, 252, 257
$C_M, 226
$AC_ASUP, 182
$C_M_PROG, 226
$AC_AUXFU_EXT, 674
$C_ME, 226
$AC_AUXFU_M_EXT, 674
$C_MTL, 223, 227
$AC_AUXFU_M_STATE, 675
$C_MTL_PROG, 223, 227
$AC_AUXFU_M_TICK, 656
$C_T, 226
$AC_AUXFU_M_VALUE, 675
$C_T_PROG, 226
$AC_AUXFU_PREDEF_INDEX, 661, 674
$C_TCA, 227
$AC_AUXFU_SPEC, 672, 675
$C_TE, 227
$AC_AUXFU_STATE, 675
$C_THNO, 227
$AC_AUXFU_TYPE, 674
$C_THNO_PROG, 227
$AC_AUXFU_VALUE, 675
$C_TS, 227
$AC_AXCTSWA, 768
$C_TS_PROG, 227
$AC_AXCTSWE, 768
$NK_A_OFF, 425, 428, 431
$AC_CTOL, 510
$NK_AXIS, 424, 428
$AC_CTOL_G0_ABS, 523
$NK_NAME, 419
$AC_CUTTING_TIME, 248
$NK_NEXT, 420
$AC_CYCLE_TIME, 248
$NK_OFF_DIR, 423, 426, 429, 431
$AC_DELAYFST, 82
$NK_PARALLEL, 421
$AC_ISTEST, 544
$NK_SWITCH, 435
$AC_OLD_PROG_NET_TIME, 246
$NK_SWITCH_INDEX, 433
$AC_OLD_PROG_NET_TIME_COUNT, 247
$NK_SWITCH_POS, 434
$AC_OPERATING_TIME, 248
$NK_TYPE, 422
$AC_OTOL, 510
$P_CHANNO, 74
$AC_OTOL_ G0_ABS, 523
$P_CTOL, 510
$AC_PROG_NET_TIME_TRIGGER, 247
$P_CTOL_ G0_ABS, 523
$AC_PROGINF, 121
$P_DELAYFST, 82
$AC_REQUIRED_PARTS, 252, 257
$P_DRYRUN, 121
$AC_SPECIAL_PARTS, 252, 257
$P_GFRNUM, 336
$AC_STOLF, 523
$P_IFRAME, 332
$AC_TOTAL_PARTS, 252, 257
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 825
Index
Basic functions
826 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Index
states, 56
status display, 55
B Channel axes, 271
Channel state
Basic block display
Channel active, 37
Activating, 86
Channel interrupted, 37
Configuring, 85
Channel reset, 37
Basic coordinate system (BCS), 265, 295
CLEARM, 529
Basic display
CLRINT, 179
Size of the display buffer, 86
Coarse offset, 266
Block
Collision avoidance
Skip, 101
Fundamentals example, 440
Block search
Commissioning archive, 801
Cascaded, 122
Comparator inputs, 705
with calculation at block end point (type 4), 122
COMPCAD, 499, 502, 503
with calculation at the contour (type 2), 122
COMPCURV, 499, 502
with calculation in program test mode, SERUPRO
Compiling, 576
(type 5), 122
COMPOF, 502, 503
without calculation (type 1), 122
COMPON, 499, 502
Block search SERUPRO
COMPSURF, 499, 502, 503
Basic settings, 166
Continuous-path mode, 453
Conditions for axis functions, 163
Implicit, 457
Control REPOS with NC/PLC interface
Contour
signals, 143
sampling factor, 496
Gear stage change, 164
sampling time, 496
Overlaid movements, 165
tolerance, 506
Path axes, 142
Control system response
REPOS acknowledgments, 143
at the end of the part program, 212
REPOS offset after an axis interchange, 146
at the start of the part program, 212
REPOS offset in the range of validity, 145
during run-up, 212
REPOS offset with synchronous spindle
When resetting, 212
coupling, 146
Controller parameter set switchover, 605
Reposition positioning axes, 141
CORROF, 304
Set REPOS response, 139
Counter pulse, 254
Setpoint and actual value couplings, 160
CT, 766
Time sequence, 136
CTOL, 507
Block search with calculation
CTOLG0, 520
accumulated spindle functions, 127
CTRANS, 266
BLSYNC, 178
Curvature, 494
Boundary conditions, 579
D
C
D functions, 616
Call, 578
D/DL function replacement, 223
Call condition, 579
Data channel, faster, 592
Cascaded block search, 130
DB10
CFINE, 266
DBB4-7, 588
Channel
DBX106.1, 587, 589
Basic settings, 46
DBX56.1, 587, 588, 590
Configuration, 42
DBX56.2, 587, 588
Current, 74
DBX56.4, 599
Properties, 41
DBX56.5, 599
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 827
Index
Basic functions
828 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Index
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 829
Index
Basic functions
830 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Index
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 831
Index
Basic functions
832 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Index
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 833
Index
PRESETON, 285
PRESETONS, 290
Process Datashare, 204 S
Process DataShare, 208
S functions, 614
Processing time, 248
SAVE, 179
Program
SBLOF, 106
action, 57
SBLON, 106
Runtimes, 245
SD41600, 706
states, 55
SD41601, 706
status display, 54
SD42100, 97
test, 91
SD42200, 106
Program handling, 575
SD42220, 115
Program operation, 45
SD42222, 115
Program section
SD42224, 116
repetition, 61
SD42440, 268
Programmed stop, 99
SD42444, 125
Protection level
SD42465, 463, 506
for user ASUP, 182
SD42466, 463, 506
Protection levels, 595
SD42470, 501
programmable, 600
SD42471, 501
SD42472, 501
SD42473, 501
R SD42475, 501
RangeOffset, 719 SD42476, 501
Rapid traverse SD42477, 501
Interpolation types, 512 SD42676, 506
Reduced, 98 SD42678, 507
Reaching simulated target point for LEAD with SD42700, 193
JOG, 161 SD42750, 85
Reduced rapid traverse, 98 SD42990, 83
Reference point R, 279 Secant error, 496
Reference points, 279 Self-acting SERUPRO, 152
RELEASE, 550 SERUPRO
Release guide axis, 551 Automatic interrupt pointer, 155
Relevant standards, 585 -end ASUP, 665
REPEAT, 61 Programmable interrupt pointer, 153
REPEATB, 61 SERUPRO approach
Replacement subprogram, 220 control from the PLC, 143
Reset SERUPRO ASUP
behavior, 212 Special features, 149
RESET seruproMasterChan, 152
Command, 54 SETINT, 168, 177
Residual time SETM, 529, 535
For a workpiece, 247 Simulation, 255
RG0, 98 Single block
Rotary axes, 272 Mode group-specific, 111
Rotation component, 379 SB1, 104
Rounding, 457 SB2, 104
Runtime optimization, 574 SB3, 104
Runtimes Single-block
Program, 245 suppression, 106
Skip blocks, 101
Basic functions
834 Function Manual, 12/2019, 6FC5397-2GP40-0BA0
Index
U
User-defined ASUP
after SERUPRO operation, 137
V
V2 preprocessing
Brief description, 573
W
WAITE, 529
WAITENC, 218
WAITM, 529
Basic functions
Function Manual, 12/2019, 6FC5397-2GP40-0BA0 835
Index
Basic functions
836 Function Manual, 12/2019, 6FC5397-2GP40-0BA0