Siemens SINUMERIK 840D sl Function Manual

Text of the manual

SINUMERIK 840D sl / 828D

Synchronized actions Function Manual Valid for Control SINUMERIK 840D sl / 840DE sl / 828D CNC software Version 4.8 SP3 08/2018 6FC5397-5BP40-6BA2 Preface Fundamental safety instructions 1 Brief description 2 Detailed description 3 Examples 4 Data lists 5 NC/PLC interface signals 6 Appendix A

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. Siemens AG Division Digital Factory Postfach 48 48 90026 NÜRNBERG GERMANY Document order number: 6FC5397-5BP40-6BA2 Ⓟ 08/2018 Subject to change Copyright © Siemens AG 1994 - 2018. All rights reserved

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:[email protected]). 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). Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 3

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 in the Internet at the following address (https://support.industry.siemens.com/sc/ww/en/sc/2090) in the "Contact" area. Preface Synchronized actions 4 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Table of contents

Preface.........................................................................................................................................................3 1 Fundamental safety instructions...................................................................................................................9 1.1 General safety instructions.......................................................................................................9 1.2 Warranty and liability for application examples........................................................................9 1.3 Industrial security...................................................................................................................10 2 Brief description..........................................................................................................................................13 3 Detailed description....................................................................................................................................15 3.1 Definition of a synchronized action........................................................................................15 3.2 Components of synchronized actions....................................................................................16 3.2.1 Validity, identification number (ID, IDS).................................................................................16 3.2.2 Frequency (WHENEVER, FROM, WHEN, EVERY)..............................................................17 3.2.3 G command (condition)..........................................................................................................18 3.2.4 Condition................................................................................................................................19 3.2.5 G command (action)...............................................................................................................19 3.2.6 Action (DO)............................................................................................................................20 3.3 System variables for synchronized actions............................................................................20 3.3.1 Reading and writing...............................................................................................................21 3.3.2 Operators and arithmetic functions .......................................................................................22 3.3.3 Type conversions...................................................................................................................25 3.3.4 Marker/counter ($AC_MARKER)...........................................................................................26 3.3.5 Parameters ($AC_PARAM)....................................................................................................27 3.3.6 R parameters ($R).................................................................................................................28 3.3.7 Machine and setting data ($$M, $$S)....................................................................................29 3.3.8 Timer ($AC_TIMER)...............................................................................................................30 3.3.9 FIFO variables ($AC_FIFO)...................................................................................................31 3.3.10 Path tangent angle ($AC_TANEB).........................................................................................36 3.3.11 Override ($A...OVR)...............................................................................................................36 3.3.12 Capacity evaluation ($AN_IPO ... , $AN/AC_SYNC ... , $AN_SERVO).................................38 3.3.13 Working-area limitation ($SA_WORKAREA_ ... )...................................................................41 3.3.14 SW cam positions and times ($$SN_SW_CAM_ ...)..............................................................41 3.3.15 Path length evaluation / machine maintenance ($AA_TRAVEL ... , $AA_JERK ... )..............42 3.3.16 Polynomial coefficients, parameters ($AC_FCT ...)...............................................................43 3.3.17 Overlaid movements ($AA_OFF)...........................................................................................45 3.3.18 Online tool length compensation ($AA_TOFF)......................................................................48 3.3.19 Current block in the interpolator ($AC_BLOCKTYPE, $AC_BLOCKTYPEINFO, $AC_SPLITBLOCK)...............................................................................................................51 3.3.20 Initialization of array variables (SET, REP)............................................................................54 3.3.21 Grinding-specific system variables ($AC_IN_KEY_G...)........................................................54 3.3.22 Status Synchronized action disabled ($AC_SYNA_STATE)..................................................57 3.4 User-defined variables for synchronized actions...................................................................58 3.5 Language elements for synchronized actions and technology cycles...................................60 Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 5

Language elements for technology cycles only.....................................................................66

3.7 Actions in synchronized actions.............................................................................................67 3.7.1 Output of M, S and H auxiliary functions to the PLC..............................................................67 3.7.2 Reading and writing of system variables................................................................................68 3.7.3 Polynomial evaluation (SYNFCT)..........................................................................................68 3.7.4 Online tool offset (FTOC).......................................................................................................73 3.7.5 Programmed read-in disable (RDISABLE).............................................................................75 3.7.6 Cancel preprocessing stop (STOPREOF).............................................................................76 3.7.7 Delete distance-to-go (DELDTG)...........................................................................................76 3.7.8 Traversing axes, to position (POS)........................................................................................78 3.7.9 Setting the measuring system (G70, G71, G700, G710).......................................................81 3.7.10 Position in specified reference range (POSRANGE).............................................................82 3.7.11 Traversing axes, endless (MOV)............................................................................................83 3.7.12 Axial feedrate (FA).................................................................................................................84 3.7.13 Axis replacement (GET, RELEASE, AXTOCHAN)................................................................85 3.7.14 Traversing spindles (M, S, SPOS).........................................................................................90 3.7.15 Withdrawing the enable for the axis container rotation (AXCTSWEC)..................................92 3.7.16 Actual value setting with loss of the referencing status (PRESETON)..................................94 3.7.17 Actual value setting without loss of the referencing status (PRESETONS)...........................99 3.7.18 Couplings (CP..., LEAD..., TRAIL..., CTAB...)......................................................................105 3.7.19 Measurement (MEAWA, MEAC)..........................................................................................109 3.7.20 Travel to fixed stop (FXS, FXST, FXSW, FOCON, FOCOF, FOC)......................................112 3.7.21 Channel synchronization (SETM, CLEARM).......................................................................114 3.7.22 User-specific error reactions (SETAL).................................................................................115 3.7.23 Cancel the actual subprogram level (CANCELSUB)...........................................................116 3.8 Technology cycles................................................................................................................116 3.8.1 General................................................................................................................................116 3.8.2 Processing mode (ICYCON, ICYCOF)................................................................................118 3.8.3 Definitions (DEF, DEFINE)...................................................................................................120 3.8.4 Parameter transfer...............................................................................................................120 3.8.5 Context variable ($P_TECCYCLE)......................................................................................120 3.9 Protected synchronized actions...........................................................................................121 3.10 Coordination via part program and synchronized action (LOCK, UNLOCK, CANCEL).......122 3.11 Coordination via PLC...........................................................................................................123 3.12 Configuration........................................................................................................................124 3.13 Control behavior in specific operating states.......................................................................125 3.13.1 Power On.............................................................................................................................125 3.13.2 NC reset...............................................................................................................................126 3.13.3 NC stop................................................................................................................................126 3.13.4 Operating mode change.......................................................................................................127 3.13.5 End of program....................................................................................................................128 3.13.6 Block search.........................................................................................................................128 3.13.7 Program interruption by ASUB.............................................................................................129 3.13.8 REPOS.................................................................................................................................129 3.13.9 Response to alarms.............................................................................................................130 3.14 Diagnostics (HMI Advanced only)........................................................................................130 3.14.1 Displaying the status of synchronized actions.....................................................................131 3.14.2 Displaying main run variables..............................................................................................132 Table of contents Synchronized actions 6 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Logging main run variables..................................................................................................133

4 Examples..................................................................................................................................................137 4.1 Examples of conditions in synchronized actions..................................................................137 4.2 Reading and writing of SD/MD from synchronized actions..................................................137 4.3 Examples of adaptive control...............................................................................................139 4.3.1 Clearance control with variable upper limit..........................................................................139 4.3.2 Feedrate control...................................................................................................................141 4.3.3 Control velocity as a function of normalized path.................................................................142 4.4 Monitoring a safety clearance between two axes................................................................143 4.5 Store execution times in R parameters................................................................................143 4.6 "Centering" with continuous measurement..........................................................................144 4.7 Axis couplings via synchronized actions..............................................................................147 4.7.1 Coupling to leading axis.......................................................................................................147 4.7.2 Non-circular grinding via master value coupling..................................................................148 4.7.3 On-the-fly parting.................................................................................................................152 4.8 Technology cycles position spindle......................................................................................153 4.9 Synchronized actions in the TC/MC area.............................................................................154 5 Data lists...................................................................................................................................................159 5.1 Machine data........................................................................................................................159 5.1.1 General machine data..........................................................................................................159 5.1.2 Channelspecific machine data.............................................................................................159 5.1.3 Axis-specific machine data...................................................................................................159 5.2 Setting data..........................................................................................................................160 5.2.1 Axis/spindle-specific setting data.........................................................................................160 5.3 Signals.................................................................................................................................160 5.3.1 Signals to channel................................................................................................................160 5.3.2 Signals from channel............................................................................................................161 6 NC/PLC interface signals.........................................................................................................................163 6.1 Signals to channel (DB21, ...)..............................................................................................163 6.2 Signals from channel (DB21, ...)..........................................................................................164 A Appendix...................................................................................................................................................167 A.1 Overview..............................................................................................................................167 Index.........................................................................................................................................................169 Table of contents Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 7

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 (parameter assignments) against unauthorized access. ● Handle possible malfunctions by taking suitable measures, e.g. emergency stop or emergency off. 1.2 Warranty and liability for application examples Application examples are not binding and do not claim to be complete regarding configuration, equipment or any eventuality which may arise. Application examples do not represent specific customer solutions, but are only intended to provide support for typical tasks. As the user you yourself are responsible for ensuring that the products described are operated correctly. Application examples do not relieve you of your responsibility for safe handling when using, installing, operating and maintaining the equipment. Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 9

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. Siemens’ products and solutions 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. firewalls and/or network segmentation) are in place. For additional information on industrial security measures that may be implemented, please visit: Industrial security (http://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 are available and that 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 (http://www.siemens.com/industrialsecurity) Further information is provided on the Internet: Industrial Security Configuration Manual (https://support.industry.siemens.com/cs/ww/en/ view/108862708) Fundamental safety instructions 1.3 Industrial security Synchronized actions 10 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Unsafe operating states resulting from software manipulation

Software manipulations (e.g. viruses, trojans, malware 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. ● Protect the drive against unauthorized changes by activating the "know-how protection" drive function. Fundamental safety instructions 1.3 Industrial security Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 11

Fundamental safety instructions

1.3 Industrial security Synchronized actions 12 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

A synchronized action consists of a series of related statements within a part program that is

called cyclically in the interpolator clock cycle synchronously to the machining blocks. A synchronized action is essentially divided into two parts, the optional condition and the obligatory action part. The time at which the actions are executed can be made dependent on a specific system state using the condition part. The conditions are evaluated cyclically in the interpolator clock cycle. The actions are then a reaction to user-definable system states. Their execution is not bound to block limits. Furthermore, the validity of the synchronized action (non-modal, modal or static) and the frequency of the execution of the actions (once, repeatedly) can be defined. Examples of permissible actions ● Output of auxiliary functions to PLC ● Writing and reading of main run variables ● Traversing of positioning axes ● Activation of synchronous procedures, such as: – Read-in disable – Delete distance-to-go – End preprocessing stop ● Activation of technology cycles ● Calculation of function values ● Tool offsets ● Activating/deactivating couplings ● Measuring ● Enabling/disabling of synchronized actions Examples of non-permissible actions ● Traversing of path axes Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 13

Schematic diagram of synchronized actions

,QLWLDWHGDFWLRQV QRQPRGDO PRGDO PRGDOVWDWLF DFURVVPRGHV *DWLQJORJLF (YDOXDWLRQRI FRQGLWLRQV 5HDOWLPHHYHQWVDQGYDOXHV 'LJLWDOLQSXWVVLJQDOV 9DOXHVRIV\VWHPYDULDEOHV 0HDVXUHGYDOXHV 'ULYHGDWD ,Q1&.LQWHUSRODWLRQF\FOH Brief description Synchronized actions 14 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Definition of a synchronized action

A synchronized action is defined in a block of a part program. Any further commands that are not part of the synchronized action, must not be programmed within this block. Components of a synchronized action A synchronized action consists of the following components: Validity, ID no. (Page 16) (optional) Condition part (optional) Action part Frequency (Page 17) G command (Page 18) (optional) Condition (Page 19) Keyword G command (Page 19) (optional) Actions (Page 20) --- 1) ID= IDS= --- 1) WHENEVER FROM WHEN EVERY G... Logical expression DO G... Action 1 ... Action n 1) not programmed Syntax Examples: 1. DO 2. [] DO 3. ID= [] DO 4. IDS= [] DO Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 15

Components of synchronized actions

3.2.1 Validity, identification number (ID, IDS) Validity The validity defines when and where the synchronized action will be processed: Validity Meaning --- 1) Non-modal synchronized action A non-modal synchronized action applies: ● As long as the main run block following the synchronized action is active ● Only in the AUTOMATIC mode Example: The synchronized action from N10 takes effect as long as N20 is active. N10 WHEN $A_IN[1]==TRUE DO $A_OUTA[1]=10 N20 G90 F1000 X100 ID= Modal synchronized action A modal synchronized action applies: ● Until the part program has been completed ● Only in the AUTOMATIC mode Range of values: See the paragraph below "Identification number" > "Value range" Example: N20 ID=1 EVERY $A_IN[1]==TRUE DO $A_OUTA[1]=10 IDS= Static synchronized action A static synchronized action applies: ● In all operating modes for an unlimited period of time Range of values: See the paragraph below "Identification number" > "Value range" Example: N30 IDS=1 EVERY $A_IN[1]==TRUE DO $A_OUTA[1]=10 1) Not programmed Note Static synchronized actions Static synchronized actions (IDS) can be defined in an ASUB and activated at any time by activation of the ASUB via the PLC user program. Detailed description 3.2 Components of synchronized actions Synchronized actions 16 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Identification number ID/IDS

Range of values The identification numbers ID/IDS are in various number ranges. The number ranges are assigned to different users. ID/IDS User Directory 1 ... 999 "General area" Any directory "Safety Integrated" function /_N_CST_DIR/_N_SAFE_SPF 1000 ... 1199 Machine manufacturer /_N_CMA_DIR 1200 ... 1399 Siemens /_N_CST_DIR Parallelization If several synchronized actions are to be active in parallel in a channel, their identification numbers ID/IDS must be different. Synchronized actions with the same identification number replace each other within a channel. Sequence of execution Modal and static synchronized actions are executed in the order of their identification numbers ID/IDS. Non-modal synchronized actions are executed after execution of the modal synchronized actions in the order of their programming. Coordination via part programs and synchronized actions Synchronized actions can be coordinated via part programs and synchronized actions based on the identification numbers ID/IDS (see Section "Coordination via part program and synchronized action (LOCK, UNLOCK, CANCEL) (Page 122)"). Coordination via PLC Synchronized actions with identification numbers ID/IDS in the range from 1 to 64 can be coordinated via the NC/PLC interface from the PLC user program (see Section "Coordination via PLC (Page 123)"). 3.2.2 Frequency (WHENEVER, FROM, WHEN, EVERY) The frequency specifies how often the condition is queried and, when the condition is fulfilled, how often the action should be executed. The frequency is part of the condition. Frequency Meaning --- 1) If no frequency is specified, the action is executed cyclically in every interpolator clock cycle. WHENEVER If the condition is fulfilled, the action is executed cyclically in every interpolator clock cycle. FROM After the condition has been fulfilled once, the action is executed cyclically in every interpolator clock cycle for as long as the synchronized action is active. Detailed description 3.2 Components of synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 17

If the condition is fulfilled, the action is executed once and then the condition is no longer checked.

EVERY In the following cases, the action is executed once: ● The condition is already satisfied at the start of the synchronized action (state: TRUE) ● At every state transition of the condition from FALSE to TRUE (rising edge) 1) Not programmed See also Technology cycles (Page 116) 3.2.3 G command (condition) Defined initial state With regard to the part program sequence, synchronized actions can be executed at any time depending on fulfillment of the condition. It is therefore recommended that the measuring system (inch or metric) be defined in a synchronized action before the condition and/or in the action part. This generates a defined initial position for the evaluation of the condition and the execution of the action, irrespective of the current part program state. G commands The following G commands are permissible: ● G70 (Inch dimensions for geometric specifications (lengths)) ● G71 (Metric dimensions for geometric specifications (lengths)) ● G700 (Inch dimensions for geometric and technological specifications (lengths, feedrate)) ● G710 (Metric dimensions for geometric and technological specifications (lengths, feedrate)) Note No other G commands are permitted in synchronized actions except G70, G71, G700 and G710. Validity A G command programmed in the condition part also applies for the action part even if no G command has been programmed in the action part itself. A G command programmed in the action part only applies within the action part. Detailed description 3.2 Components of synchronized actions Synchronized actions 18 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Execution of the action can be made dependent on the fulfillment of a condition. As long as

the synchronized action is active, the condition is checked cyclically in the interpolator clock cycle. If no condition is specified, the action is executed cyclically in every interpolator clock cycle. All operations that return a truth value (TRUE/FALSE) as the result can be programmed as a condition: ● Comparisons of system variables with constants ● Comparisons of system variables with system variables ● Comparisons of system variables with results of arithmetic operations ● Linking of comparisons through Boolean expressions Examples Comparisons Program code ID=1 WHENEVER $AA_IM[X] > $$AA_IM[Y] DO ... ID=2 WHENEVER $AA_IM[X] > (10.5 * SIN(45)) DO ... Boolean operations Program code ID=1 WHENEVER ($A_IN[1]==1) OR ($A_IN[3]==0) DO ... See also Reading and writing (Page 21) Examples of conditions in synchronized actions (Page 137) System variables for synchronized actions (Page 20) 3.2.5 G command (action) Defined initial state With regard to the part program sequence, synchronized actions can be executed at any time depending on fulfillment of the condition. Therefore, it is advisable to define the required measuring system (inch or metric) in the action part in a synchronized action. This generates a defined initial position for the execution of the action, irrespective of the current part program state. Detailed description 3.2 Components of synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 19

The following G commands are permissible:

● G70 (Inch dimensions for geometric specifications (lengths)) ● G71 (Metric dimensions for geometric specifications (lengths)) ● G700 (Inch dimensions for geometric and technological specifications (lengths, feedrate)) ● G710 (Metric dimensions for geometric and technological specifications (lengths, feedrate)) Validity A G command programmed in the condition part also applies for the action part even if no G command has been programmed in the action part itself. A G command programmed in the action part only applies within the action part. 3.2.6 Action (DO) The action part of a synchronized action is initiated with the keyword DO. One or more actions can be programmed in the action part. These are executed when the appropriate condition is fulfilled. If several actions are programmed in one synchronized action, they are all executed in the same interpolator clock cycle. Example: If the actual value of the Y axis is greater than or equal to 35.7, the auxiliary function M135 is output on the PLC and, at the same time, digital output 1 = 1 is set. Program code WHEN $AA_IM[Y] >= 35.7 DO M135 $A_OUT[1]=1 Technology cycle A technology cycle can be called as an action (see Section "Technology cycles (Page 116)"). 3.3 System variables for synchronized actions The system variables of the NC are listed in the "System Variables" Parameter Manual with their respective properties. System variables that can be read or written in synchronized actions, are marked with an "X" in the corresponding line (Read or Write) of the "SA" (synchronized action) column. Note System variables used in synchronized actions are implicitly read and written synchronous to the main run. Detailed description 3.3 System variables for synchronized actions Synchronized actions 20 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

A comprehensive description of the system variables listed in this function manual can be

found in: ● System Variables Parameter Manual 3.3.1 Reading and writing The reading and writing of variables is performed in the main run in synchronized actions with a few exceptions. Exceptions are: ● User-defined variables: LUD, GUD ● Machine data: $M... ● Setting data: $S... ● R parameters: R or R[] These variables are already read and written during the preprocessing. System variables Generally, all system variables that can be used in synchronized actions are read/written in the main run. These system variables are marked with an "X" in the "Read" and/or "Write" line of the "SA" (synchronized action) column in the "System Variables" Parameter Manual. References: System Variables Parameter Manual System of the identifiers The identifiers of the system variables that are read/written in the main run have the following system: $A... Current main run data $V... Servo data $R... R parameters to be read/written in the main run $$M... Machine data to be read/written in the main run $$S... Setting data to be read/written in the main run Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 21

Operators and arithmetic functions

Operators Arithmetic operators System variables of the REAL and INT type can be linked by the following operators: Operator Meaning + Addition - Subtraction * Multiplication / ● Division in synchronized actions: INT / INT ⇒ INT ● Division in synchronized actions with REAL result by using the function ITOR(): ITOR( INT ) / ITOR( INT ) ⇒ REAL ● Division in NC programs: INT / INT ⇒ REAL DIV Integer division: INT / INT ⇒ INT MOD Modulo division (only for type INT) supplies remainder of an INT division Example: 3 MOD 4 = 3 Note Only variables of the same type may be linked by these operations. Relational operators Operator Meaning == Equal to <> Not equal to < Less than > Greater than <= Less than or equal to >= Greater than or equal to Boolean operators Operator Meaning NOT NOT AND AND OR OR XOR Exclusive OR Detailed description 3.3 System variables for synchronized actions Synchronized actions 22 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Bit logic operators

Operator Meaning B_OR Bit-by-bit OR B_AND Bit-by-bit AND B_XOR Bit-by-bit exclusive OR B_NOT Bit-by-bit negation Priority of the operators The operators have the following priorities for execution in the synchronized action (highest priority: 1): Priori‐ ty Operators Meaning 1 NOT, B_NOT Negation, bit-by-bit negation 2 *, /, DIV, MOD Multiplication, division 3 +, - Addition, subtraction 4 B_AND Bit-by-bit AND 5 B_XOR Bit-by-bit exclusive OR 6 B_OR Bit-by-bit OR 7 AND AND 8 XOR Exclusive OR 9 OR OR 10 << Concatenation of strings, result type STRING 11 ==, <>, <, >, >=, <= Relational operators Note It is strongly recommended that the individual operators are clearly prioritized by setting parentheses "( … )" when several operators are used in an expression. Example of a condition with an expression with several operators: Program code ... WHEN ($AA_IM[X] > VALUE) AND ($AA_IM[Y] > VALUE1) DO ... Arithmetic functions Operator Meaning SIN() Sine COS() Cosine TAN() Tangent ASIN() Arc sine ACOS() Arc cosine ATAN2() Arc tangent 2 SQRT() Square root Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 23

2nd power (square)

TRUNC() Integer component The accuracy for comparison commands can be set using TRUNC ROUND() Round to an integer LN() Natural logarithm EXP() Exponential function A detailed description of the functions can be found in: References Programming Manual, Job Planning; Section "Flexible NC programming" ff. Indexing The index of a system variable of type "Array of …" can in turn be a system variable. The index is also evaluated in the main run in the interpolator clock cycle. Example Program code ... WHEN … DO $AC_PARAM[$AC_MARKER[1]]=3 Restrictions ● It is not permissible to nest indices with further system variables. ● The index must not be formed via preprocessing variables. The following example is therefore not permitted since $P_EP is a preprocessing variable: $AC_PARAM[ 1 ] = $P_EP[ $AC_MARKER[ 0 ] ] Detailed description 3.3 System variables for synchronized actions Synchronized actions 24 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

An implicit type conversion is performed between the following data types for value

assignments and parameter transfers with different data types: ● REAL ● INT ● BOOL Note Conversion REAL to INT For the conversion from REAL to INT, a decimal place value ≧ 0.5 rounded up to the next higher integer. For a decimal place value < 0.5, rounding is to the next lower integer. Behavior in accordance with the ROUND function. If the REAL value is outside the INT value range, an alarm is displayed and a conversion is not performed. Conversion from REAL or INT to BOOL ● Value <> 0 → TRUE ● Value == 0 → FALSE Examples Conversion: INT $AC_MARKER → REAL $AC_PARAM Program code $AC_MARKER[1]=561 ID=1 WHEN TRUE DO $AC_PARAM[1] = $AC_MARKER[1] Conversion: REAL $AC_PARAM → INT $AC_MARKER Program code $AC_PARAM[1]=561.0 ID=1 WHEN TRUE DO $AC_MARKER[1] = $AC_PARAM[1] Conversion: INT $AC_MARKER → BOOL $A_OUT Program code $AC_MARKER[1]=561 ID=1 WHEN $A_IN[1] == TRUE DO $A_OUT[0]=$AC_MARKER[1] Conversion: REAL $R401 → BOOL $A_OUT Program code R401 = 100.542 WHEN $A_IN[0] == TRUE DO $A_OUT[2]=$R401 Conversion: BOOL $A_OUT → INT $AC_MARKER Program code ID=1 WHEN $A_IN[2] == TRUE DO $AC_MARKER[4] = $A_OUT[1] Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 25

Conversion: BOOL $A_OUT → REAL $R10

Program code WHEN $A_IN[3] == TRUE DO $R10 = $A_OUT[3] 3.3.4 Marker/counter ($AC_MARKER) The $AC_MARKER[] variables are channel-specific arrays of system variables for use as markers or counters. Data type: INT (integer) : Array index: 0, 1, 2, ... (max. number – 1) Number per channel The maximum number of $AC_MARKER variables per channel can be set via the machine data: MD28256 $MC_MM_NUM_AC_MARKER = Storage location The storage location of the $AC_MARKER variables can be defined channel-specifically via the machine data: MD28257 $MC_MM_BUFFERED_AC_MARKER = Value Storage location 0 Dynamic memory (default setting) 1 Static memory Note Data backup and memory space ● The $AC_MARKER variables created in the static memory can be saved channel- specifically via the data backup. Data block: _N_CH_ACM ● Please ensure that sufficient memory is available in the selected memory area. An array element requires 4 bytes of memory space. Reset behavior The reset behavior depends on the storage location of the $AC_MARKER variables: ● Dynamic memory: Initialization with the value "0" Static memory: Retention of the current value Detailed description 3.3 System variables for synchronized actions Synchronized actions 26 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

The $AC_PARAM[] variables are channel-specific arrays of system variables for use

as general buffers. Data type: REAL : Array index: 0, 1, 2, ... (max. number - 1) Number per channel The maximum number of $AC_PARAM variables per channel can be set via the machine data: MD28254 $MC_MM_NUM_AC_PARAM = Storage location The storage location of the $AC_PARAM variables can be defined channel-specifically via the machine data: MD28255 $MC_MM_BUFFERED_AC_PARAM = Value Storage location 0 Dynamic memory (default setting) 1 Static memory Note Data backup and memory space ● The $AC_PARAM variables created in the static memory can be saved channel-specifically via the data backup. Data block: _N_CH_ACP ● Please ensure that sufficient memory is available in the selected memory area. An array element requires 4 bytes of memory space. Reset behavior The reset behavior depends on the storage location of the $AC_PARAM variables: ● Dynamic memory: Initialization with the value "0" ● Static memory: Retention of the current value Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 27

R parameters ($R)

Whether R parameters are treated as preprocessing or main run variables depends on whether they are written with or without $ characters. In principle, the notation is freely selectable. For use in synchronized actions, R parameters should be used as main run variables, i.e. with $ characters: ● $R[] ● $R Data type: REAL : Array index: 0, 1, 2, ... : Number of the R parameter: 0, 1, 2, ... The notations with index or number are equivalent. Parameterizable number per channel The maximum number of R parameters per channel can be set via the machine data: MD28050 $MC_MM_NUM_R_PARAM = Reset behavior R parameters are saved persistently in the static memory of the NC. Therefore, R parameters retain their values with all reset types: ● Power on reset ● NC reset ● End of part program reset Example Value assignment to R10 in the action part of the synchronized action and subsequent evaluation in the part program WHEN $A_IN[1]==1 DO $R[10]=$AA_IM[Y] ; assignment G1 X100 F150 STOPRE IF R[10] > 50 ... ; evaluation in the part program Detailed description 3.3 System variables for synchronized actions Synchronized actions 28 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Machine and setting data ($$M, $$S)

Reading and writing MD and SD When machine and setting data is used in synchronized actions, a distinction must be made as to whether this remains unchanged during the execution of the synchronized action, or is changed through parallel processes. Data that remains unchanged can already be read or written by the NC during preprocessing. Data that is changed can only be read or written by the NC during the main run. Data access during preprocessing Machine and setting data that can already be read and written in synchronized actions during preprocessing, is programmed with the same identifiers as in the part program: $M ... or $S ... Program code ; The reversal position of the Z axis $SA_OSCILL_REVERSE_POS2[Z] ; remains unchanged over the entire machining period ID=2 WHENEVER $AA_IM[z]<$SA_OSCILL_REVERSE_POS2[Z]–6 DO $AA_OVR[X]=0 Data access during the main run An additional "$" is added as prefix for machine and setting data that may only be read or written in synchronized actions during the main run: $$M… or $$S… Program code ; The reversal position of the Z axis $SA_OSCILL_REVERSE_POS2[Z] ; can be changed by operator input at any time ID=1 WHENEVER $AA_IM[z] < $$SA_OSCILL_REVERSE_POS2[Z] DO $AA_OVR[X] = 0 Writing during the main run The following requirements must be satisfied for writing during the main run: ● The access authorization at the time of writing must be sufficient for writing. ● The machine or setting data must have the property "Effective immediately". Program code ; The switching position of the SW cam $SN_SW_CAM_ ... must, ; depending on the current setpoint of the X axis in WCS $AA_IW[X], ; only be written during the main run ID=2 WHEN $AA_IW[X] > 10 DO $$SN_SW_CAM_PLUS_POS_TAB_1[0] = 20 $$SN_SW_CAM_MINUS_POS_TAB_1[0]=20 A complete overview of the properties of the machine and setting data can be found in: Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 29

Parameter Manual: Lists (Book 1)

● Parameter Manual: Detailed Machine Data Description 3.3.8 Timer ($AC_TIMER) The $AC_TIMER[] variables are channel-specific arrays of system variables. Data type: REAL : Array index: 0, 1, 2, ... (max. number - 1) Unit: Seconds Number per channel The maximum number of $AC_TIMER variables per channel can be set via the machine data: MD28258 $MC_MM_NUM_AC_TIMER = Function Starting A timer is started by assigning a value ≥ 0: $AC_TIMER[] = ; with starting value ≥ 0 Incrementing The value of the timer is incremented by the duration of the set interpolator clock cycle (MD10071 IPO_CYCLE_TIME) for each interpolator clock cycle. $AC_TIMER[] += Stopping A timer is stopped by assigning a value < 0: $AC_TIMER[] = ; with stopping value < 0 When a stopping value is assigned, only the further incrementing of the timer is stopped. The stopping value is not assigned. After the timer is stopped, the last valid value is retained and can still be read. Note The current value of a timer can be be read when the timer is running or stopped. Detailed description 3.3 System variables for synchronized actions Synchronized actions 30 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Output the actual value of the X axis as voltage value via analog output $A_OUTA[3], 500 ms

after the detection of digital input $A_IN[1]: Program code Comment WHEN $A_IN[1] == 1 DO $AC_TIMER[1]=0 ; Start timer, starting value 0 WHEN $AC_TIMER[1]>=0.5 DO $A_OUTA[3]=$AA_IM[X] $AC_TIMER[1]=-1 3.3.9 FIFO variables ($AC_FIFO) A FIFO variable provides a complex data structure based on R parameters. The data structure comprises one administration part and one user data part. The user data part is structured as a stack according to the FIFO principle (first in, first out). Using the index of the FIFO variables, the different functions are addressed in the administration part as well as the user data.  0' 0&B67$57B$&B),)2 5 Q 5 Q 5 Q0' $&B),)2>@ $&B),)2>@ $&B),)2>@ $&B),)2>P@ 5 5    0' 0&B/(1B$&B),)2 5 Q     ① Administration part ② User data part ③ R parameter range above the FIFO variables: Read and write permitted ④ R parameter range below the FIFO variables: Only read permitted Note The statements regarding R parameters also apply to FIFO variables. See Chapter "R parameters ($R) (Page 28)". Syntax Write $AC_FIFO[] = Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 31

$AC_FIFO[, ] =

Read = $AC_FIFO[] = $AC_FIFO[, ] Meaning $AC_FIFO: FIFO data structure in the R parameters, starting from value in MD28262 $MC_START_AC_FIFO Data type: REAL : Number of FIFO variables Data type: INT Value range: 1, 2, ... max. number (see references below) Detailed description 3.3 System variables for synchronized actions Synchronized actions 32 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Index of the FIFO variables with which the various functions and data within the data

structure of the FIFO variables is accessed. Value range: 0, 1, 2, ... (MD28264 $MC_LEN_AC_FIFO - 1) Value Meaning Administrative data 0 Write A value is written to the FIFO stack by assigning a value to the FIFO stack via index 0 ($AC_FIFO[ 0 ] = ). The assigned value is written to the next free location in the FIFO stack. If all memory locations in the FIFO stack are already occupied, an alarm is displayed: ● When writing in an NC program: Alarm 20149 ● When writing in a synchronized action: Alarm 17020 Read A value is read from the FIFO stack by assigning the FIFO stack to a variable with index 0 ( = $AC_FIFO[ 0 ]). The oldest value is read and then removed from the FIFO stack. Note ● Reading in the NC program / synchronized action If a value is read in an NC program / synchronized action with index 0, the oldest value is read and removed from the FIFO stack as described above. ● Reading on the user interface, e.g. SINUMERIK Operate If a value is read or displayed with index 0 on the user interface, e.g. SINUMERIK Operate: "Diagnosis" > "NC/PLC Variables", the value is read internally with index 1 (oldest value) without changing the FIFO stack. 1 Write / Read: The "oldest" user data is addressed; the FIFO stack is not changed 2 Write / Read: The "newest" user data is addressed; the FIFO stack is not changed 3 Read: Returns the sum of the values of all user data Enable via MD28266 $MC_MODE_AC_FIFO, bit 0 required. See paragraph below "Summation across all user data" 4 Read: Supplies the number of user data currently stored in the FIFO stack. Write: Reset to the initial state is realized by writing the value of 0 to FIFO variable, index 4. Example: $AC_FIFO1[4] = 0 5 Read: Returns the current write index, relative to the beginning of the FIFO stack User data 6 Write/read: The 1st field element of the user data range is addressed 7 Write/read: The 2nd field element of the user data range is addressed n Write/read: The nth field element of the user data range is addressed References List Manual, System Variables Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 33

Number of FIFO variables per channel

The number of FIFO variables per channel is set using: MD28260 $MC_NUM_AC_FIFO = Beginning of the R parameter range of FIFO variables The R parameter, from which the range of FIFO variables for the channel begins, is set using: MD28262 $MC_START_AC_FIFO = Note Free R parameters Only the R parameters whose numbers are below the start R parameter of the FIFO variables, can be written to the NC program. Number of field elements for each FIFO variable The maximum number of field elements per FIFO variable is set using: MD28264 $MC_LEN_AC_FIFO = Total number of R parameters in the channel The total number of R parameters, which are required in the channel, is set using: MD28050 $MC_MM_NUM_R_PAR‐ AM = MD28262 $MC_START_AC_FIFO + MD28260 $MC_NUM_AC_FIFO * (MD28264 $MC_LEN_AC_FIFO + 6) Summation of all user data The sum of the values of all user data is only provided via $AC_FIFO[ 3 ] if the function is activated via machine data: MD28266 $MC_MODE_AC_FIFO, bit 0 = Value Meaning FALSE The sum of the values of all user data is not provided TRUE The sum of the values of all user data is provided Detailed description 3.3 System variables for synchronized actions Synchronized actions 34 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Serial determination of the length of workpieces that move past an automatic measuring station

on a conveyor belt. /HQJWKPHDVXUHPHQW 'LUHFWLRQRIEHOWWUDYHO      The measurement results are written to or read from the $AC_FIFO1 system variable via synchronized actions. ● Read: With index 0, the "oldest" user data element is read and deleted from the FIFO stack. ● Write: With index 0, the value is written to the next free user data element. 8QGHILQHG 8QGHILQHG 8QGHILQHG 2OGHVWHOHPHQW>@ 0RVWUHFHQWHOHPHQW>@ 6XPRIDOOYDOXHV 3UHYLRXVO\ $IWHUUHDGLQJDQGZULWLQJ 1XPEHURIDVVLJQHGHOHPHQWV &XUUHQWZULWHLQGH[ 8QGHILQHG 8QGHILQHG 8QGHILQHG 8QGHILQHG 2OGHVWHOHPHQW>@ 0RVWUHFHQWHOHPHQW>@ 6XPRIDOOYDOXHV 1XPEHURIDVVLJQHGHOHPHQWV &XUUHQWZULWHLQGH[ 8QGHILQHG :ULWH1H[WHOHPHQW 1$&B),)2>@  5HDG2OGHVWHOHPHQW 15 $&B),)2>@ $&B),)2>@ >@ >@ >@ >@ >@ >@ >@ >@ >@ >@ >@ >@ >@     $&B),)2>@ >@ >@ >@ >@ >@ >@ >@ >@ >@ >@ >@ >@ >@     Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 35

Path tangent angle ($AC_TANEB)

The angle between the tangent at the end point of the current block and the tangent at the start point of the following block can be read via the channel-specific system variable $AC_TANEB (Tangent ANgle at End of Block). Data type: REAL The tangent angle is always specified positive in the range 0.0 to 180.0°. If the tangent angle cannot be determined, the value -180.0° is output. Used only with programmed blocks It is recommended that the tangent angle only be read for programmed blocks, not for intermediate blocks generated by the system. A distinction can be made via the system variable $AC_BLOCKTYPE: $AC_BLOCKTYPE == 0 (programmed block) Example: Program code ID=2 EVERY $AC_BLOCKTYPE==0 DO $R1=$AC_TANEB 3.3.11 Override ($A...OVR) Current override Channel-specific override The path feedrate can be changed via the channel-specific system variable $AC_OVR. Data type: REAL Unit: % Range of val‐ ues: 0.0 to machine data ● For binary-coded override switch MD12100 $MN_OVR_FACTOR_LIMIT_BIN ● For gray-coded override switch MD12030 $MN_OVR_FACTOR_FEEDRATE[30] The system variable $AC_OVR must be written in every interpolator clock cycle, otherwise the value "100%" is effective. Channel-specific rapid traverse override With G0 blocks (rapid traverse), the rapid traverse feedrate can also be influenced via the setting data SD42122 $SC_OVR_RAPID_FACTOR in addition to the system variable $AC_OVR. Requirement: Release of the rapid traverse override via the user interface. Detailed description 3.3 System variables for synchronized actions Synchronized actions 36 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

The axial feedrate can be changed via the axis-specific system variable $AA_OVR:

Data type: REAL Unit: % Range of val‐ ues: 0.0 to machine data ● For binary-coded override switch MD12100 $MN_OVR_FACTOR_LIMIT_BIN ● For gray-coded override switch MD12030 $MN_OVR_FACTOR_FEEDRATE[30] The system variable $AA_OVR must be written in every interpolator clock cycle, otherwise the value "100%" is effective. PLC override Channel-specific override The channel-specific override (DB21, ... DBB4) set via the machine control panel can be read via the channel-specific system variable $AC_PLC_OVR: Data type: REAL Unit: % Range of val‐ ues: 0.0 to maximum value Axis-specific override The axis-specific override (DB31, ... DBB0) set via the machine control panel can be read via the axis-specific system variable $AA_PLC_OVR: Data type: REAL Unit: % Range of val‐ ues: 0.0 to maximum value Effective override Effective channel-specific override The effective channel-specific override can be read via the channel-specific system variable $AC_TOTAL_OVR: Data type: REAL Unit: % Range of val‐ ues: 0.0 to maximum value Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 37

Effective axis-specific override

The effective axis-specific override can be read via the axis-specific system variable $AA_TOTAL_OVR: Data type: REAL Unit: % Range of val‐ ues: 0.0 to maximum value 3.3.12 Capacity evaluation ($AN_IPO ... , $AN/AC_SYNC ... , $AN_SERVO) The values of the current, maximum and average system utilization due to synchronized actions can be read via the following system variables: NC-specific system variable Meaning $AN_IPO_ACT_LOAD Current computing time of the interpolator level (incl. synchron‐ ized actions of all channels) $AN_IPO_MAX_LOAD Longest computing time of the interpolator level (incl. synchron‐ ized actions of all channels) $AN_IPO_MIN_LOAD Shortest computing time of the interpolator level (incl. synchron‐ ized actions of all channels) $AN_IPO_LOAD_PERCENT Current computing time of the interpolator level in relation to the interpolator cycle (%) $AN_SYNC_ACT_LOAD Current computing time for synchronized actions over all chan‐ nels $AN_SYNC_MAX_LOAD Longest computing time for synchronized actions over all chan‐ nels $AN_SYNC_TO_IPO Percentage share that the synchronized actions have of the total computing time (over all channels) $AN_SERVO_ACT_LOAD Current computing time of the position controller $AN_SERVO_MAX_LOAD Longest computing time of the position controller $AN_SERVO_MIN_LOAD Shortest computing time of the position controller Channel-specific system variable Meaning $AC_SYNC_ACT_LOAD Current computing time for synchronized actions in the channel $AC_SYNC_MAX_LOAD Longest computing time for synchronized actions in the channel $AC_SYNC_AVERAGE_LOAD Average computing time for synchronized actions in the channel Detailed description 3.3 System variables for synchronized actions Synchronized actions 38 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Computing time shares of the synchronized actions on the interpolator cycle

Activation The system variables only contain valid values when the "Utilization evaluation via synchronized actions" diagnostic function is active. For this, the following machine data must be greater than zero: MD11510 $MN_IPO_MAX_LOAD > 0 (maximum permissible interpolator utilization) When the function is active, the current values are displayed in the "Time required for synchronized actions" line in the "Diagnostics" > "System utilization" operating area. Note The system variables always contain the values of the previous interpolator cycle. Overload limit An overload limit is specified via the value set via MD11510 $MN_IPO_MAX_LOAD: MD11510 $MN_IPO_MAX_LOAD = If the value set in the machine data is exceeded, the following system variable is set: $AN_IPO_LOAD_LIMIT = TRUE If the value falls below the set value again, the system variable is reset: $AN_IPO_LOAD_LIMIT = FALSE Application A user-specific strategy to avoid a level overflow can be implemented via the system variable $AN_IPO_LOAD_LIMIT. Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 39

Resetting of min./max. values

The following system variables for min./max. values are reset by writing arbitrary values: System variable Meaning $AN_SERVO_MAX_LOAD Longest computing time of the position controller $AN_SERVO_MIN_LOAD Shortest computing time of the position controller $AN_IPO_MAX_LOAD Longest computing time of the interpolator level (incl. synchronized actions of all channels) $AN_IPO_MIN_LOAD Shortest computing time of the interpolator level (incl. synchronized actions of all channels) $AN_SYNC_MAX_LOAD Longest computing time for synchronized actions over all channels $AC_SYNC_MAX_LOAD Longest computing time for synchronized actions in the channel Example Program code Comment $MN_IPO_MAX_LOAD=80 ; Overload limit ; ; Initialization of the min./max. values N01 $AN_SERVO_MAX_LOAD=0 N02 $AN_SERVO_MIN_LOAD=0 N03 $AN_IPO_MAX_LOAD=0 N04 $AN_IPO_MIN_LOAD=0 N05 $AN_SYNC_MAX_LOAD=0 N06 $AC_SYNC_MAX_LOAD=0 ; ; Alarm 63111 when the overload limit is exceeded N10 IDS=1 WHENEVER $AN_IPO_LOAD_LIMIT == TRUE DO M4711 SETAL(63111) ; ; Alarm 63222 when the computing time share of the ; synchronized actions over all channels exceeds 30% of the interpolator cycle N20 IDS=2 WHENEVER $AN_SYNC_TO_IPO > 30 DO SETAL(63222) ; N30 G0 X0 Y0 Z0 ... N999 M30 Detailed description 3.3 System variables for synchronized actions Synchronized actions 40 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Working-area limitation ($SA_WORKAREA_ ... )

Only the activation via the setting data is effective for the traversable command axes in synchronized actions with regard to the programmable working-area limitation G25/G26: ● $SA_WORKAREA_PLUS_ENABLE ● $SA_WORKAREA_MINUS_ENABLE Switching the working-area limitation on and off via the commands WALIMON/WALIMOF in the part program has no effect on the command axes traversable via synchronized actions. 3.3.14 SW cam positions and times ($$SN_SW_CAM_ ...) The values of the SW cam positions and times can be read and written via the following setting data: NC-specific setting data Meaning $SN_SW_CAM_MINUS_POS_TAB_1[0..7] Minus cam positions $SN_SW_CAM_MINUS_POS_TAB_2[0..7] Minus cam positions $SN_SW_CAM_PLUS_POS_TAB_1[0..7] Plus cam positions $SN_SW_CAM_PLUS_POS_TAB_2[0..7] Plus cam positions $SN_SW_CAM_MINUS_TIME_TAB_1[0..7] Minus cam lead or delay time $SN_SW_CAM_MINUS_TIME_TAB_2[0..7] Minus cam lead or delay time $SN_SW_CAM_PLUS_TIME_TAB_1[0..7] Plus cam lead or delay time $SN_SW_CAM_PLUS_TIME_TAB_2[0..7] Plus cam lead or delay time Note The setting of a software cam via synchronized actions must not be performed immediately before the cam is reached. At least three interpolation cycles must be available before the cam is reached. A detailed description of the "Software cam" function can be found in: References Function Manual for Extended Functions, Software Cams, Position-Switching Signals (N3) Examples Program code ; Changing a cam position: ID=1 WHEN $AA_IW[x] > 0 DO $$SN_SW_CAM_MINUS_POS_TAB_1[0] = 50.0 ... ; Changing a lead time ID=1 WHEN $AA_IW[x] > 0 DO $$SN_SW_CAM_MINUS_TIME_TAB_1[0] = 1.0 Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 41

Machine and setting data ($$M, $$S) (Page 29)

3.3.15 Path length evaluation / machine maintenance ($AA_TRAVEL ... , $AA_JERK ... ) The data of the path length evaluation, e.g. for machine maintenance, can be read via the system variables listed below. Activation The activation for the recording of the path length evaluation data is performed via: MD18860 $MN_MM_MAINTENANCE_MON = 1 The data to be recorded for the specific axis can be selected via the following axis-specific machine data: MD33060 $MA_MAINTENANCE_DATA[], bit n = 1 Bit Meaning 0 Recording of total traversing distance, total traversing time and number of traversing operations of the axis. 1 Recording of total traversing distance, total traversing time and number of traversing operations of the axis at high speed. 2 Recording of total number of axis jerks, the time during which the axis is traversed with jerk and the number of traversing operations with jerk. System variable System variable Meaning n $AA_TRAVEL_DIST Total travel distance: Sum of all set position changes in MCS in [mm] or [deg.] 0 $AA_TRAVEL_TIME Total travel time: Sum of IPO cycles of set position changes in MCS in [s] (resolution: 1 IPO cycle) $AA_TRAVEL_COUNT Total travel count: A complete machine axis trip is defined by the following succession of states, as based on set position: standstill > traversing > standstill $AA_TRAVEL_DIST_HS Total traversing distance at high axis velocities 1) 1 $AA_TRAVEL_TIME_HS Total traversing time at high axis velocities 1) $AA_TRAVEL_COUNT_HS Total number of traversing operations at high axis velocities 3) $AA_JERK_TOT Total sum of axis jerks: Sum of all jerk setpoints in [m/s3] or [deg./ s3] 2 $AA_JERK_TIME Total travel time with jerk: Sum of IPO cycles from jerk setpoint changes in [s] (solution: 1 IPO cycle) $AA_JERK_COUNT Total number of traversing operations with jerk 1) Actual machine axis velocity ≥ 80% of the maximum parameterized axis velocity (MD32000 MAX_AX_VELO) Detailed description 3.3 System variables for synchronized actions Synchronized actions 42 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

For a detailed description of the function, refer to:

Function Manual, Special Functions, Section "Path length evaluation (W6)" 3.3.16 Polynomial coefficients, parameters ($AC_FCT ...) Function Using the FCTDEF function, as a maximum, a 3rd degree polynomial can be defined: f(x) = a0 + a1*x + a2*x2 + a3*x3 Note The definition must be made in a part program. Syntax FCTDEF(,,,a0,a1,a2,a3) Meaning Parameter Meaning : Number of the polynomial function : Lower limit of the function values : Upper limit of the function values a0, a1, a2, a3: Polynomial coefficient Note Polynomial coefficients (a2, a3) that are not required can be omitted when programming the FCTDEF(...) function. System variable Read and write access to polynomial coefficients and parameters is also possible from synchronized actions via the following system variables: System variable Meaning $AC_FCTLL[]: Lower limit for function value $AC_FCTUL[]: Upper limit for function value $AC_FCT0[]: a0 $AC_FCT1[]: a1 Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 43

The number specified during the definition of the

polynomial function (see above: Syntax) Part program When writing system variables in the part program, preprocessing stop STOPRE must be programmed explicitly for block-synchronous writing. Note Block-synchronous writing in the part program So that the system variables can be written block-synchronously in the part program, the STOPRE command (preprocessing stop) must be used after writing the system variables. Synchronized action When writing system variables in synchronized actions, they take effect immediately. Use The function value f(x) of the polynomial can be used as input value in synchronized actions, e.g. for the following functions: ● "Polynomial evaluation (SYNFCT) (Page 68)" ● "Online tool offset (FTOC) (Page 73)" Example: Linear dependency D        $FWXDOFXUUHQWYDOXH>$@ /RZHUOLPLW 8SSHUOLPLW )HHGUDWH)>PPPLQ@ $$B&855 Figure 3-2 Example of linear dependency Parameter Meaning : Number of the polynomial, e.g. = 1 : Lower limit of the function values = -100 : Upper limit of the function values = 100 Detailed description 3.3 System variables for synchronized actions Synchronized actions 44 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Axis section on the ordinate (feedrate):

(5 - 4) / 100 = 5 / a0 a0 = 100 * 5 / (5 - 4) = 500 a1: Gradient of the straight line: a1 = 100 / (4 - 5) = -100 a2: = 0 (no square component) a3: = 0 (no cubic component) Program code FCTDEF(1, -100, 100, 500, -100, 0, 0) ; Or in abbreviated notation without parameters a2 and a3 FCTDEF(1, -100, 100, 500, -100) 3.3.17 Overlaid movements ($AA_OFF) Overlaid movements The system variable $AA_OFF can be used to specify a position offset in a channel axis which is traversed immediately: $AA_OFF[] = The following machine data can be used to set whether the position offset of the system variable is to be assigned or summed up (integrated): MD36750 $MA_AA_OFF_MODE, bit 0 = Meaning 0 Assignment: $AA_OFF = 1 Summing (integration): $AA_OFF += Limitation of the overlay velocity The maximum permissible velocity with which the position offset can be traversed can be set via the machine data: MD32070 $MA_CORR_VELO (axis velocity for overlay) Axial jerk limitation Setting the following machine data activates an axial jerk limitation for the $AA_OFF overlaying: MD32420 $MA_JOG_AND_POS_JERK_ENABLE (basic position of axial jerk limitation) = 1 Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 45

The axial jerk is limited to the value set in MD32430 $MA_JOG_AND_POS_MAX_JERK (axial

jerk). Note No predictive velocity control can be made for the overlaid $AA_OFF motion. This can cause a discontinuous velocity change, in particular for clocked specification (via synchronous actions) for $AA_OFF overlay values. In such cases, we recommend the deactivation of the jerk limitation when possible. Upper limit of the compensation value The value of $AA_OFF can be limited via the following setting data: SD43350 $SA_AA_OFF_LIMIT (upper limit of the compensation value $AA_OFF in case of clearance control) The status of the limitation can be read via the following system variable: $AA_OFF_LIMIT[] == Value Meaning -1 Compensation value is limited in the negative direction 1 Compensation value is limited in the positive direction. 0 No limitation of the offset value Reset behavior With static synchronized actions (IDS = DO $AA_OFF = ), deselection of the position offset effective in $AA_OFF results in an immediate new overlaid movement. The reset behavior with regard to $AA_OFF can therefore be set via the following machine data: MD36750 $MA_AA_OFF_MODE, bit 1 = Meaning 0 The position offset in $AA_OFF is deselected with RESET 1 The position offset in $AA_OFF is retained after RESET JOG mode Execution of an overlaid movement because of $AA_OFF can also be enabled for JOG mode: MD36750 $MA_AA_OFF_MODE, bit 2 = Meaning 0 JOG mode: Overlaid movement because of $AA_OFF disabled 1 JOG mode: Overlaid movement because of $AA_OFF enabled A mode change to JOG mode is only possible when the current position offset has been traversed. Otherwise the following alarm is displayed: Detailed description 3.3 System variables for synchronized actions Synchronized actions 46 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Alarm "16907 Action ... only possible in stop state"

Supplementary conditions ● Interrupt routines and ASUB When an interrupt routine is activated, modal motion-synchronous actions are retained and are also effective in the ASUB. If the subprogram return is not made with REPOS, the modal synchronized actions changed in the asynchronous subprogram continue to be effective in the main program. ● REPOS In the remainder of the block, the synchronized actions are treated in the same way as in an interruption block. Modifications to modal synchronized actions in the ASUB are not effective in the interrupted program. Polynomial coefficients programmed with FCTDEF are not affected by ASUB and REPOS. The polynomial coefficients from the calling program are active in the ASUB. The polynomial coefficients from the ASUB continue to be active in the calling program. ● End of program Polynomial coefficients programmed with FCTDEF remain active after the end of program. ● Block search: Collection of the polynomial coefficients During block search with calculation, the polynomial coefficients are collected in the system variables. ● Block search: Deselection of active overlaid movements During block search, the CORROF and DRFOF commands are collected and output in an action block. All the deselected DRF offsets are collected in the last block that contains CORROF or DRFOF. The commands for the deselection of overlaid movements CORROF(, "AA_OFF") are not collected during a block search. If a user wishes to continue to use this block search, this is possible by means of block search via "SERUPRO" program testing. Reference: Function Manual Basic Functions; Mode Group, Channel, Program Operation (K1) ● Deselection of the position offset in case of synchronized actions Alarm 21660 is displayed if a synchronized action is active when the position offset is deselected via the CORROF(,"AA_OFF") command. $AA_OFF is deselected simultaneously and not set again. If the synchronized action becomes active later in the block after CORROF, $AA_OFF remains set and a position offset is interpolated. References: Programming Manual, Fundamentals Note The coordinate system (BCS or WCS) in which a main run variable is defined determines whether frames will or will not be included. Distances are always calculated in the set basic system (metric or inch). A change with G70 or G71 has no effect. DRF offsets, zero offsets external, etc., are only taken into consideration in the case of main run variables that are defined in the MCS. Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 47

Online tool length compensation ($AA_TOFF)

Function In conjunction with an active orientation transformer or an active tool carrier, tool length compensations can be applied during processing/machining in real time. Changing the effective tool length using online tool length compensation produces changes in the compensatory movements of the axes involved in the transformation in the event of changes in orientation. The resulting velocities can be higher or lower depending on machine kinematics and the current axis position. Velocity and acceleration with which specified tool length compensations can be traversed via the system variable $AA_TOFF, can be specified via the following machine data: ● MD21194 $MC_TOFF_VELO (velocity, online offset in tool direction) ● MD21196 $MC_TOFF_ACCEL (acceleration, online offset in tool direction) For further information regarding the activation of the function, see: References: Programming Manual, Job Planning; Section "Transformations "TOFFON, TOFFOF"" Applications in synchronized actions In synchronized actions, tool length compensations can be applied in all three dimensions via the system variable $AA_TOFF. The three geometry axis names X, Y, Z are used as index. All three offset directions can be active at the same time. For an active orientation transformation or for an active tool carrier that can be oriented, the offsets are effective in the respective tool axes. An overlaid motion must be switched off with TOFFOF() before switching a transformation on or off. After deselection of the tool length compensation in one dimension, the value of the system variable $AA_TOFF in this dimension is equal to 0. Mode of operation of the offset in the tool direction The tool length compensations do not change the tool parameters, but are taken into account within the transformation or the tool carrier that can be orientated, so that offsets are obtained in the tool coordinate system. For each dimension, it is possible to define whether the tool length compensation specified in $AA_TOFF should be calculated as an absolute or incremental (integrating) value via the following machine data: MD21190 $MC_TOFF_MODE (operation of tool offset in tool direction) Detailed description 3.3 System variables for synchronized actions Synchronized actions 48 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

The current value of the tool length compensation can be read via the system variable

$AA_TOFF_VAL. Note An evaluation of the variables $AA_TOFF_VAL is only useful in conjunction with an active orientation transformation or an active tool carrier. Examples Selecting the online tool length compensation Machine data for online tool length compensation: ● MD21190 $MC_TOFF_MODE = 1 ● MD21194 $MC_TOFF_VEL[0] = 10000 ● MD21194 $MC_TOFF_VEL[1] = 10000 ● MD21194 $MC_TOFF_VEL[2] = 10000 ● MD21196 $MC_TOFF_ACC[0] = 1 ● MD21196 $MC_TOFF_ACC[1] = 1 ● MD21196 $MC_TOFF_ACC[2] = 1 Activate online tool length compensation in the part program: Program code N5 DEF REAL XOFFSET ; Activate orientation transformation N10 TRAORI ; Activate tool length compensation in the Z direction N20 TOFFON(Z) ; Tool length compensation in the Z direction: 10 mm N30 WHEN TRUE DO $AA_TOFF[Z] = 10 G4 F5 ... ; Static synchronized action: Tool length compensation in the X direction ; corresponds to the position of the X2 axis in the WCS N50 ID=1 DO $AA_TOFF[X] = $AA_IW[X2] G4 F5 ... ; Note: Current total tool length compensation in the X direction N100 XOFFSET = $AA_TOFF_VAL[X] ; Retract the tool length compensation in the X direction to 0 N120 TOFFON(X, -XOFFSET) G4 F5 Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 49

Deselecting the online tool length compensation

Program code ; Activate orientation transformation N10 TRAORI ; Activate tool length compensation in the X direction N20 TOFFON(X) ; Tool length compensation in the X direction: 10 mm N30 WHEN TRUE DO $AA_TOFF[X] = 10 G4 F5 ... ; Delete tool length compensation in the X direction ; No axis is traversed. To the current position in the WCS, ; the position offset in accordance with the current orientation ; is added. N80 TOFFOF(X) N90 TRAFOOF Activating and deactivating in the part program The online tool length compensation is activated in the part program with TOFFON and deactivated with TOFFOF. When activating for the respective offset direction, an offset value can be specified, e.g. TOFFON(Z,25), which is then immediately traversed. The status of the online tool length compensation is activated at the NC/PLC interface via the following signals: ● DB21, ... DBX318.2 (TOFF active) ● DB21, ... DBX318.3 (TOFF movement active) Note The online tool length compensation remains inactive until it is reselected using via TOFFON in the part program. Behavior at reset and power on The behavior at reset can be set via the machine data: MD21190 $MC_TOFF_MODE, bit 0 = (operation of tool offset in tool direction) Value Meaning 0 The tool length offset $AA_TOFF is deselected at reset 1 The tool length offset $AA_TOFF is retained at reset This is always necessary in case of synchronized actions IDS= DO $AA_TOFF[n]=, as otherwise there would be an immediate tool length compensation. Similarly, a transformation or a tool carrier that can be oriented, can be deselected after reset via the following machine data: MD20110 $MC_RESET_MODE_MASK (initial setting after reset) Detailed description 3.3 System variables for synchronized actions Synchronized actions 50 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

The tool length compensation must also be deleted in this case.

If a tool length offset is to remain active extending beyond a reset, and a transformation change or a change of the tool carrier that can be oriented takes place, then alarm 21665 "Channel %1 $AA_TOFF[ ] reset" is output. The tool length compensation is set to 0. After power on, all tool length offsets are set to 0. The function is deactivated after POWER ON. Behavior at change of operating mode The tool length compensation remains active after a change of operating mode. The offset is executed in all operating modes except JOG and REF. If a tool length compensation is traversed because of $AA_TOFF[ ] at a change of operating mode, the operating mode changeover is only carried out after the traversal of the tool length compensation. Alarm 16907 "Channel %1 action %2 possible only in stop state" is displayed. Behavior with REPOS The tool length compensation is active in REPOS mode. Supplementary conditions With an existing tool length offset, the following supplementary conditions must be taken into account: ● A transformation must be switched off with TRAFOOF. ● Before activating a transformation in the part program, an active tool length offset must be deleted with TOFFOF. ● A transformation is switched off when changing over from CP to PTP. A tool length offset must be deleted before the changeover. If a tool length compensation is active when you change to axis-specific manual travel in JOG mode, the change to PTP is not performed. CP remains active until the tool length compensation has been deleted via TOFFOF. ● Before a geometry axis interchange, an active tool length offset in the direction of the geometry axis must be deleted via TOFFOF. ● Before a change of plane, an active tool length offset must be deleted via TOFFOF. ● The TOFFON and TOFFOF are not collected during a block search and not output in the action block. 3.3.19 Current block in the interpolator ($AC_BLOCKTYPE, $AC_BLOCKTYPEINFO, $AC_SPLITBLOCK) Information on the block currently being processed in the main run can be read in synchronized actions via the following system variables. Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 51

$AC_BLOCKTYPE and $AC_BLOCKTYPEINFO

The system variable $AC_BLOCKTYPE contains the block type or the ID for the function that generated the block. The system variable $AC_BLOCKTYPEINFO contains, in addition to the block type (thousands position), the function-specific cause for the generation of the intermediate block. $AC_BLOCKTYPE $AC_BLOCKTYPEINFO Value Meaning: Current block has been gener‐ ated because of ... Value Meaning 0 Programmed block! - - 1 NC as intermediate block 1000 Contains no further information 2 Chamfer/rounding 2001 Straight line 2002 Circle 3 Smooth approach/retraction (SAR) 3001 Approach with straight line 3002 Approach with quadrant 3003 Approach with semicircle 4 Tool offset 4001 Approach block after STOPRE 4002 Connection blocks if intersection point not found 4003 Point-type circle on inner corners (on TRACYL only) 4004 Bypass circle (or conical cut) at outer corners 4005 Approach blocks for offset suppression 4006 Approach blocks on repeated TRC activation 4007 Block split due to excessive curvature 4008 Compensation blocks for 3D front milling (tool vector parallel to plane vector) 5 Corner rounding 5001 Rounding contour through G641 5002 Rounding contour through G642 5003 Rounding contour through G643 5004 Rounding contour through G644 6 Tangential tracking (TLIFT) 6001 Linear movement of the tangential axis without lift movement 6002 Non-linear movement of the tangential axis (polynomial) without lift movement 6003 Lift movement: Tangential axis and lift movement start simul‐ taneously 6004 Lift movement: Tangential axis does not start until a certain lift position is reached 7 Path segmentation 7001 Programmed path segmentation is active without punching or nibbling 7002 Programmed path segmentation with active punching or nib‐ bling 7003 Automatically, internally generated path segmentation 8 Compile cycle x x: ID of the compile cycle application that generated the block 9 Path-relative orientation interpolation (OR‐ IPATH/ORIROTC) 9000 Interpolation of the tool orientation with ORIPATH 9001 Interpolation of the rotation of the tool with ORIROTC Detailed description 3.3 System variables for synchronized actions Synchronized actions 52 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Meaning: Current block has been gener‐

ated because of ... Value Meaning 10 Pole handling with orientation transforma‐ tion 10000 Look-ahead positioning of the pole axis 10001 Traversal of the pole taper $AC_SPLITBLOCK The system variable $AC_SPLITBLOCK can be used to determine whether an internally generated block or a programmed block shortened by the NC is present. $AC_SPLITBLOCK Value Meaning: 0 Programmed block. A block generated by the compressor is also treated as a programmed block. 1 Internally generated block or a shortened original block 3 Last block in a chain of internally generated blocks or shortened original blocks Example Synchronized actions for counting smoothing blocks. The query of the system variable $AC_TIMEC == 0 (interpolation cycles since start of the block) ensures that the block type is determined only once at the start of the block. Program code Comment $AC_MARKER[0]=0 ; Counter for all smoothing blocks $AC_MARKER[1]=0 ; Counter for G641 smoothing blocks $AC_MARKER[2]=0 ; Counter for G642 smoothing blocks ... ; Synchronized action for counting all smoothing blocks ID=1 WHENEVER ($AC_TIMEC==0) AND ($AC_BLOCKTYPE==5) DO $AC_MARKER[0] = $AC_MARKER[0] + 1 ... ; Synchronized action for counting the G641 smoothing blocks ID=2 WHENEVER ($AC_TIMEC==0) AND ($AC_BLOCKTYPEINFO==5001) DO $AC_MARKER[1] = $AC_MARKER[1]+1 ... ; Synchronized action for counting the G642 smoothing blocks ID=3 WHENEVER ($AC_TIMEC==0) AND ($AC_BLOCKTYPEINFO==5002) DO $AC_MARKER[2] = $AC_MARKER[2] + 1 ... Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 53

Initialization of array variables (SET, REP)

Function Array variables can also be initialized in synchronized actions via the SET and REP commands. For a detailed description of the commands, refer to: References Programming Manual, Job Planning; Section "Flexible NC programming" > "Variables" > "Definition and initialization of array variables (DEF, SET, REP)" Example Program code PROC MAIN N10 DEF REAL SYG_IS[3,2] ... WHEN TRUE DO SYG_IS[0,0]=REP(0.0,3) WHEN TRUE DO SYG_IS[1,1]=SET(3,4,5) ... Supplementary conditions ● Only array variables that can be written in synchronized actions are initialized. 3.3.21 Grinding-specific system variables ($AC_IN_KEY_G...) When grinding, input signals asynchronous with the machine operation must be identified and the appropriate actions must be integrated in the program sequence. The following system variables and NC/PLC interface signals are available: System variable NC/PLC interface DB21, ... Description NC-internal communication $AC_IN_KEY_G_ENABLE[1 ... 8] 1 --- Input signal enable on the NC side Communication NC → PLC 2) $AC_IN_KEY_G_ISENABLE[1 ... 8] 1) DBX390.0 ... 7 Input signal enable $AC_IN_KEY_G_RUN_OUT[1 ... 8] DBX391.0 ... 7 Enable request for the action on the NC side (optional) Communication PLC → NC 3) $AC_IN_KEY_G[1 ... 8] DBX385.0 ... 7 Input signal --- DBX386.0 ... 7 1) Input signal inhibit on the PLC side Detailed description 3.3 System variables for synchronized actions Synchronized actions 54 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

NC/PLC interface DB21, ...

Description $AC_IN_KEY_G_RUN_IN[1 ... 8] DBX387.0 ... 7 Enable request for the action on the PLC side (optional) 1) As a result of the ANDlogic operation of the NC enable signal on the NC side in $AC_IN_KEY_G_ENABLE and PLC enable signal NOT(DBX386.0 ... 7), the enable signal is formed in $AC_IN_KEY_G_ISENABLE and DBX390.0 ... 7. 2) The content of the system variable is transferred in the NC/PLC interface 3) The content of the NC/PLC interface is transferred in the system variable Example Inputs ● The main program starts a cycle (ZYKLUS_1), in which grinding is executed as well as the intermediate dressing. ● An operator can request an "intermediate dressing" action asynchronous to the machining operation itself using an input signal of the PLC I/O. ● Identifying the input signal and requesting the action is realized in a technology cycle. Technology cycle ("SIGNAL_IN_x") is called in the action part of the synchronized action (ID ) set up in the cycle. The call schematic, the relevant commands and the signal flow are shown in the following diagram. Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 55

The PLC user program must provide the functions on the PLC side, for example "enable input

signal x". Detailed description 3.3 System variables for synchronized actions Synchronized actions 56 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Call cycle "ZYKLUS_1"

● Cycle "ZYKLUS_1" – Set the enable for input signal x ($AC_IN_KEY_G_ENABLE) – Set up the synchronized action with technology cycle "SIGNAL_IN_x" – Initialize the trigger for action x "intermediate dressing" (R01) – Grind the component ● Technology cycle "SIGNAL_IN_x" (in parallel with the cycle) – Identify the input signal ($AC_IN_KEY_G) with the enable active ($AC_IN_KEY_G_ISENABLE) – Request the enable of action x from the PLC ($AC_IN_KEY_G_RUN_OUT) – Wait for the enable of action x from the PLC ($AC_IN_KEY_G_RUN_IN) – Request action x in cycle (R01) – Feedback signal of the request to the PLC ($AC_IN_KEY_G_RUN_OUT) – Wait for acknowledgment from the PLC ($AC_IN_KEY_G_RUN_IN) ● Cycle "ZYKLUS_1" (after completing grinding) – Reset the enable for input signal x ($AC_IN_KEY_G_ENABLE) – If action x is requested ⇒ execute intermediate dressing – ... (possibly re-execute grinding/intermediate dressing operations etc.) ● PLC user program – Function "Enable input signal x": Set interface signal DBX386.0 ... 7 – Function "Enable input signal x": Logically combine (AND) the input signal from the PLC I/O and the enable of input signal (DBX390.0 ... 7) - and set the result in the interface (DBX385.0 ... 7) – Function "Enable action x": Check/set the interface signals DBX391.0 ... 7 / DBX387.0 ... 7 3.3.22 Status Synchronized action disabled ($AC_SYNA_STATE) System variable $AC_SYNA_STATE outputs in bit code whether a synchronized action is disabled via the PLC (see "Coordination via PLC (Page 123)") or via a synchronized action is disabled (see "Coordination via part program and synchronized action (LOCK, UNLOCK, CANCEL) (Page 122)"). Detailed description 3.3 System variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 57

These bits have the following meaning:

Bit Value Meaning 0 0 Not disabled 1 Disabled via PLC or synchronized action 1 0 Not disabled via PLC 1 Disabled via PLC 2 0 Not disabled via synchronized action 1 Disabled via synchronized action Disabling via PLC or synchronized action have different levels of priority. The following hierarchy of priorities applies: Priority 1 (highest priority): Disabled via PLC across all channels (⇒ all synchronized ac‐ tions in the channel are inhibited) Priority 2: Disabled via synchronized action Priority 3: Individual disabling via PLC (⇒ a single synchronized action in the channel is disabled) $AC_SYNA_STATE only outputs the value of the disable with the highest priority, even if disabling is simultaneously active via PLC and Synchronized action: Status Highest priority $AC_SYNA_STATE Bit 2 Bit 1 Bit 0 Bit-coded value Channel-wide disable via PLC is active. In addition, disable via synchronized action can be active. Channel- wide disable via PLC 0 1 1 3 Channel-wide disable via PLC is not active. Disable via synchronized action is active. Additionally, a single disable can be active via PLC. Disabled via synchron‐ ized action 1 0 1 5 Channel-wide disable via PLC is not active. Disable via synchronized action is not active. Single disable via PLC is active. Single disa‐ ble via PLC 0 1 1 3 No disable is active. - 0 0 0 0 3.4 User-defined variables for synchronized actions GUD variables capable of synchronized actions As well as specific system variables, predefined global synchronized-action user variables (synchronized action GUD) can also be used in synchronized actions. The number of synchronized action GUD items available to the user is parameterized for each specific data type and access using the following machine data: ● MD18660 $MM_NUM_SYNACT_GUD_REAL[] = ● MD18661 $MM_NUM_SYNACT_GUD_INT[] = Detailed description 3.4 User-defined variables for synchronized actions Synchronized actions 58 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

MD18662 $MM_NUM_SYNACT_GUD_BOOL[] =

● MD18663 $MM_NUM_SYNACT_GUD_AXIS[] = ● MD18664 $MM_NUM_SYNACT_GUD_CHAR[] = ● MD18665 $MM_NUM_SYNACT_GUD_STRING[] = The index is used to specify the data block (access rights) and the value to specify the number of synchronized-action GUDs for each data type (REAL, INT, etc.). A 1- dimensional array variable with the following naming scheme is then created in the relevant data block for each data type.: SYG_[]: Index Data type (MD18660 to MD18665) Block REAL INT BOOL AXIS CHAR STRING 0 SGUD SYG_RS[ i ] SYG_IS[ i ] SYG_BS[ i ] SYG_AS[ i ] SYG_CS[ i ] SYG_SS[ i ] 1 MGUD SYG_RM[ i ] SYG_IM[ i ] SYG_BM[ i ] SYG_AM[ i ] SYG_CM[ i ] SYG_SM[ i ] 2 UGUD SYG_RU[ i ] SYG_IU[ i ] SYG_BU[ i ] SYG_AU[ i ] SYG_CU[ i ] SYG_SU[ i ] 3 GUD4 SYG_R4[ i ] SYG_I4[ i ] SYG_B4[ i ] SYG_A4[ i ] SYG_C4[ i ] SYG_S4[ i ] 4 GUD5 SYG_R5[ i ] SYG_I5[ i ] SYG_B5[ i ] SYG_A5[ i ] SYG_C5[ i ] SYG_S5[ i ] 5 GUD6 SYG_R6[ i ] SYG_I6[ i ] SYG_B6[ i ] SYG_A6[ i ] SYG_C6[ i ] SYG_S6[ i ] 6 GUD7 SYG_R7[ i ] SYG_I7[ i ] SYG_B7[ i ] SYG_A7[ i ] SYG_C7[ i ] SYG_S7[ i ] 7 GUD8 SYG_R8[ i ] SYG_I8[ i ] SYG_B8[ i ] SYG_A8[ i ] SYG_C8[ i ] SYG_S8[ i ] 8 GUD9 SYG_R9[ i ] SYG_I9[ i ] SYG_B9[ i ] SYG_A9[ i ] SYG_C9[ i ] SYG_S9[ i ] Where i = 0 to ( - 1) Block: _N_DEF_DIR/_N_ ... _DEF, e.g for SGUD ⇒ _N_DEF_DIR/_N_SGUD_DEF Properties Synchronized-action GUD have the following properties: ● Synchronized-action GUD can be read and written in synchronized actions and part programs/cycles. ● Synchronized-action GUD can be accessed via the OPI. ● Synchronized-action GUD is displayed on the HMI user interface in the "Parameters" operating area. ● Synchronized-action GUD can be used on the HMI in the Wizard, in the variables view and in the variables log. Detailed description 3.4 User-defined variables for synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 59

The array size for STRING type synchronized action GUD is set to a fixed value of 32 (31

characters + \0). ● Even if no definition files have been created manually for global user data (GUD), synchronized-action GUD defined using machine data can be read in the corresponding GUD block from the HMI. Note User variables (GUD, PUD, LUD) can only be defined with the same name as synchronized- action GUD (DEF ... SYG_xy) if no synchronized-action GUD has been parameterized with the same name (MD18660 - MD18665). These user-defined items of GUD cannot be used in synchronized actions. Access rights The access rights defined in a GUD definition file remain valid and refer only to the GUD variables defined in this GUD definition file. Deletion behavior If the content of a particular GUD definition file is reactivated, the old GUD data block in the active file system is deleted first. The configured synchronized-action GUD is also reset at this point. This process is also possible using the HMI in the operator area "Services" > "Define and activated user data (GUD)". 3.5 Language elements for synchronized actions and technology cycles The following language elements can be used in synchronized actions and technology cycles: Fixed addresses L Subprogram number F Feed S 1) 2) Spindle M 1) 2) M function H1) H function 1) Chapter: "Output of M, S and H auxiliary functions to the PLC (Page 67)" 2) Chapter: "Traversing spindles (M, S, SPOS) (Page 90)" Fixed addresses with axis extension: Miscellaneous POS Traversing axes, to position (POS) (Page 78) POSA Modal positioning axis SPOS Spindle positioning Chapter: "Traversing spindles (M, S, SPOS) (Page 90)" MOV 1) Positioning axis Chapter: "Traversing axes, endless (MOV) (Page 83)" Detailed description 3.5 Language elements for synchronized actions and technology cycles Synchronized actions 60 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Fixed addresses with axis extension: Miscellaneous

FA Axial feedrate (FA) (Page 84) OVRA Axial override ACC Axial acceleration MEASA Axial measurement with deletion of distance-to-go MEAWA Axial measurement without deletion of distance-to-go Chapter: "Measurement (MEAWA, MEAC) (Page 109)" MEAC Cyclic measuring Chapter: "Measurement (MEAWA, MEAC) (Page 109)" SCPARA Parameter set changeover VELOLIMA Axial velocity/speed limitation ACCLIMA Axial acceleration limitation JERKLIMA Axial jerk limitation 1) Not permitted in technology cycles Settable addresses: Travel to fixed stop 1) FXS Activate travel to fixed stop FXST Torque limit for travel to fixed stop FXSW Monitoring window for travel to fixed stop FOC Non-modal torque/force limitation FOCON Activate travel with limited torque/force FOCOF Deactivate travel with limited torque/force 1) Chapter: "Travel to fixed stop (FXS, FXST, FXSW, FOCON, FOCOF, FOC) (Page 112)" Settable addresses: Couplings > Generic coupling 1) CPBC Block change criterion with active coupling CPDEF Create coupling module CPDEL Delete coupling module CPFMOF Behavior of the following axis when switching off the coupling CPFMON Behavior of the following axis when switching on the coupling CPFMSON Synchronization mode during coupling CPFPOS Synchronized position of the following axis when switching on CPFRS Reference system for the coupling module of the following axis CPLA 2) Assigning an axis as leading axis to a following axis CPLCTID Number of the curve table for the coupling of the following axis CPLDEF Definition of the reference: Leading axis to following axis CPLDEL Cancellation of the reference: Leading axis to following axis CPLDEN Coupling factor: Numerator CPLNUM Coupling factor: Denominator CPLDYPRIO Priority of the leading axis for the dynamic limitation CPLDYVLL Limitation of the overlaid motion of the leading axis: Lower limit CPLDYVLU Limitation of the overlaid motion of the leading axis: Upper limit Detailed description 3.5 Language elements for synchronized actions and technology cycles Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 61

Settable addresses: Couplings > Generic coupling 1)

CPLINSC Scaling factor for the input value of the leading axis CPLINTR Offset value for the input value of the leading axis CPLOF Coupling of leading axis to following axis: Switch off CPLON Coupling of leading axis to following axis: Switch on CPLOUTSC Scaling of the output value CPLOUTTR Offset of the output value CPLPOS Synchronized position of the leading axis when switching on CPLSETVAL Coupling type of the following axis to the leading axis CPMALARM Define alarm behavior CPMBRAKE 2) Defining the response to a stop signal and commands CPMPRT Define start behavior for program test CPMRESET Define reset behavior CPMSTART Define start behavior CPMVDI Define behavior regarding NC/PLC interface signals CPOF Deactivation of the coupling to all defined leading axes CPON Activation of the coupling to all defined leading axes CPRES 2) Activates the coupling parameter parameterized in the machine data CPSETTYPE Define basic coupling properties CPSYNCOP Position synchronism "coarse" CPSYNCOP2 Position synchronism 2 "coarse" CPSYNFIP Position synchronism "fine" CPSYNFIP2 Position synchronism 2 "fine" CPSYNCOV Velocity synchronism "coarse" CPSYNFIV Velocity synchronism "fine" 1) Chapter: "Couplings (CP..., LEAD..., TRAIL..., CTAB...) (Page 105)" 2) Currently not available in synchronized actions G functions: Set measuring system 1) G70 Inch measuring system G71 Metric measuring system G700 Inch measuring system G710 Metric measuring system 1) Chapter: "Setting the measuring system (G70, G71, G700, G710) (Page 81)" Predefined subprograms: Miscellaneous POLFA Axial retraction position for single axis POLFC Axial retraction position for channel axes STOPREOF Cancel preprocessing stop (STOPREOF) (Page 76) RDISABLE Programmed read-in disable (RDISABLE) (Page 75) DELDTG Delete distance-to-go (DELDTG) (Page 76) LOCK Lock synchronized action Detailed description 3.5 Language elements for synchronized actions and technology cycles Synchronized actions 62 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Predefined subprograms: Miscellaneous

UNLOCK Unlock synchronized action ICYCON Technology cycle: One block per interpolator clock cycle ICYCOF Technology cycle: All blocks in one interpolator clock cycle SYNFCT Polynomial evaluation (SYNFCT) (Page 68) FTOC Tool fine compensation Section: "Online tool offset (FTOC) (Page 73)" SOFTENDSA Software limit switch PROTA Change status of a protection zone SETM Set marker of the channel coordination Section: "Channel synchronization (SETM, CLEARM) (Page 114)" CLEARM Delete marker of the channel coordination Section: "Channel synchronization (SETM, CLEARM) (Page 114)" RET Subprogram return GET Request axis Section: "Axis replacement (GET, RELEASE, AXTOCHAN) (Page 85)" RELEASE Release axis Section: "Axis replacement (GET, RELEASE, AXTOCHAN) (Page 85)" AXTOCHAN Transfer axis to another channel Section: "Axis replacement (GET, RELEASE, AXTOCHAN) (Page 85)" AXCTSWEC Withdrawing the enable for the axis container rotation (AXCTSWEC) (Page 92) SETAL User-specific error reactions (SETAL) (Page 115) IPOBRKA Block change criterion: Deceleration ramp ADISPOSA Tolerance window for end-of-motion criterion Predefined subprograms: Coupling > Coupled motion 1) TRAILON Coupled motion on TRAILOF Coupled motion off 1) Section: "Couplings (CP..., LEAD..., TRAIL..., CTAB...) (Page 105)" Predefined subprograms: Couplings > Master value coupling 1) LEADON Master value coupling on LEADOF Master value coupling off 1) Section: "Couplings (CP..., LEAD..., TRAIL..., CTAB...) (Page 105)" Predefined subprograms: Couplings > Torque coupling (master/slave) MASLON Coupling on MASLOF Coupling off MASLDEF Define coupling MASLDEL Delete coupling MASLOFS Coupling with slave spindle off Detailed description 3.5 Language elements for synchronized actions and technology cycles Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 63

Predefined functions: Coupling > Curve tables 1)

CTAB Calculates the following axis position based on the leading axis posi‐ tion using the curve table CTABINV Calculates the leading axis position based on the following axis posi‐ tion using the curve table CTABID Determines the table number of the curve table CTABLOCK Disable curve table CTABUNLOCK Enable curve table CTABISLOCK Determines the lock status of the curve table CTABEXISTS Checks whether the curve table exists CTABMEMTYP Determines the storage location of the curve table (static/dynamic memory) CTABPERIOD Determines the periodicity of the curve table CTABNO Determines the number of curve tables CTABNOMEM Determines the number of existing curve tables in a specific storage location CTABSEG Determines the number of already used curve segments in a specific storage location CTABSEGID Determines the number of already used curve segments in a specific table CTABFSEG Determines the number of curve segments that are still possible in a specific table CTABMSEG Determines the maximum possible number of curve segments in a specific storage location CTABPOL Determines the number of already used polynomials in a specific stor‐ age location CTABPOLID Determines the number of already used polynomials in a specific table CTABFPOL Determines the number of polynomials that are still possible in a spe‐ cific table CTABMPOL Determines the maximum possible number of polynomials in a specific storage location CTABTSV Determines the following value at the start of the table CTABTEV Determines the following value at the end of the table CTABTSP Determines the leading value at the start of the table CTABTEP Determines the leading value at the end of the table CTABTMIN Determines the minimum following value of the table CTABTMAX Determines the minimum following value of the table CTABFNO Determines the number of curve tables that are still possible in a spe‐ cific storage location CTABSSV Determines the starting value of a table segment for the following axes CTABSEV Determines the end value of a table segment for the following axes 1) Section: "Couplings (CP..., LEAD..., TRAIL..., CTAB...) (Page 105)" Detailed description 3.5 Language elements for synchronized actions and technology cycles Synchronized actions 64 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Predefined functions: Arithmetic

SIN Sine ASIN Arc sine COS Cosine ACOS Arc cosine TAN Tangent ATAN2 Arc tangent 2 SQRT Square root POT 2nd power (square) TRUNC Integer component ROUND Round to next integer ROUNDUP Rounding up of an input value to the next integer ABS Absolute value LN Natural logarithm EXP Exponential function MINVAL Smaller of two values MAXVAL Larger of two values BOUND Check for defined value range Predefined functions: Current machine data values GETMDACT Determines the current value of the machine data GETMDPEAK Determines the maximum value that has occurred in the machine data since the last RESETPEAK GETMDLIM Determines the maximum or minimum limit value of the machine data RESETPEAK Resets the maximum value again for GETMDPEAK Predefined functions: Format conversions ITOR INT → REAL RTOI REAL → INT RTOB REAL → BOOL BTOR BOOL → REAL ITOB INT → BOOL BTOI BOOL → INT Predefined functions: Safety Integrated SIRELAY Activation of the safety functions parameterized with SIRELIN, SIREL‐ OUT and SIRELTIME Detailed description 3.5 Language elements for synchronized actions and technology cycles Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 65

Predefined functions: Miscellaneous

POSRANGE Position in specified reference range (POSRANGE) (Page 82) PRESETON Actual value setting with loss of the referencing status (PRESETON) (Page 94) PRESETONS Actual value setting without loss of the referencing status (PRESE‐ TONS) (Page 99) Predefined procedures: Miscellaneous CANCELSUB Cancel the actual subprogram level (CANCELSUB) (Page 116) References For detailed descriptions of the language elements not described in this manual, refer to: ● Programming Manual, Fundamentals ● Programming Manual, Job Planning 3.6 Language elements for technology cycles only The following language elements may only be used in technology cycles: Jump statements IF Branch GOTO Jump to label, search direction forward, then backward GOTOF Jump to label, search direction forward GOTOB Jump to label, search direction backward End of program M02 End of program M17 End of program M30 End of program RET End of program References For detailed descriptions of the statements not described in this manual, refer to: ● Programming Manual, Fundamentals ● Programming Manual, Job Planning Detailed description 3.6 Language elements for technology cycles only Synchronized actions 66 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Actions in synchronized actions

3.7.1 Output of M, S and H auxiliary functions to the PLC Output timing Auxiliary functions of the M, S and H type can be output from synchronized actions. The output to the PLC is immediate, i.e. directly in the interpolator clock cycle in which the action is executed. Any output times set via the machine data for auxiliary functions have no effect when output from synchronized actions: ● MD11110 $MN_AUXFU_GROUP_SPEC (auxiliary function group specification) ● MD22200 $MC_AUXFU_M_SYNC_TYPE (output time of M functions) ● MD22210 $MC_AUXFU_S_SYNC_TYPE (output time of the S functions) ● MD22230 $MC_AUXFU_H_SYNC_TYPE (output time of the H functions) Maximum number General A maximum of 10 auxiliary functions can be output simultaneously from the part program and the active synchronized actions of a channel, i.e. in one OB40 cycle of the PLC. Synchronized-action-specific The maximum permissible number of auxiliary functions in the action part of a synchronized action is: ● M functions: 5 ● S functions: 3 ● H functions: 3 Non-modal synchronized actions In non-modal synchronized actions (without specification of ID or IDS), auxiliary functions can only be output in conjunction with the scanning frequency WHEN or EVERY. Predefined M functions Predefined M functions generally must not be output in synchronized actions. Exceptions: M3, M4, M5, M40, M41, M42, M43, M44, M45, M70 and M17 See also Frequency (WHENEVER, FROM, WHEN, EVERY) (Page 17) Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 67

Reading and writing of system variables

The system variables of the NC are listed in the "System Variables" Parameter Manual with their respective properties. System variables that can be read or written in the action part of synchronized actions are marked with an "X" in the corresponding line (Read or Write) of the "SA" (synchronized action) column. Note System variables used in synchronized actions are implicitly read and written synchronous to the main run. References: System Variables Parameter Manual 3.7.3 Polynomial evaluation (SYNFCT) Application A variable that is evaluated via a polynomial can be read with the SYNFCT function in the main run and the result can be written to another variable. Application examples: ● Feedrate as a function of drive load ● Position as a function of a sensor signal ● Laser power as a function of path velocity Syntax SYNFCT(,,) Meaning Parameter Meaning : Number of the polynomial defined with FCTDEF: f(x) = a0 + a1*x + a2*x2 + a3*x3 : System variable, output: = f(x) : System variable, input: x = For information on FCTDEF, see Chapter "Polynomial coefficients, parameters ($AC_FCT ...) (Page 43)" Example: Additive override of the path feedrate An override value is added to the programmed feedrate (F word): Detailed description 3.7 Actions in synchronized actions Synchronized actions 68 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Factive = Fprogrammed + FAC

Meaning $AC_VC additive path feedrate override $AA_VC[axis] additive axial feedrate override Input value is the actual current value $AA_CURR of the X axis. The operating point is set to 5 A. The feedrate may be altered by ±100 mm/min and the axial current deviation may be ±1 A. D        $FWXDOFXUUHQWYDOXH>$@ $$B&855>;@ /RZHUOLPLW 8SSHUOLPLW )HHGUDWH>PPPLQ@ Figure 3-3 Example: Additive control of path feed Determining the parameters of the FCTDEF function: FCTDEF(,,,a0,a1,a2,a3) : = 1 (example) : = -100 : = 100 Polynomial: f(x) = a0 + a1x +a2x2 + a3x3 a0: 1 / 100 = 5 / a0 ⇒ a0 = 500 a1 = 100 mm/min / -1 A = -100 [mm/min / A] a2 = 0 (not a square component) a3 = 0 (not a cubic component) Calculation of the override value: SYNFCT(,,) : = 1 : $AC_VC (additive path feedrate override) : $AA_CURR (drive actual current value) Programming: Program code N100 FCTDEF(1, -100, 100, 500, -100) Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 69

N110 ID=1 DO SYNFCT(1, $AC_VC[X], $AA_CURR[X])

Example: Multiplicative override of the path feedrate The programmed feedrate is multiplied by a percentage factor (additional override): Factive = Fprogrammed * FactorAC Meaning $AC_OVR Path override can be specified via synchronized action Input value is the percentage drive load $AA_LOAD of the X axis. The operating point is set to 100% at 30% drive load. The axis must stop at 80% load. An excessive velocity corresponding to the programmed value +20% is permissible. 2SHUDWLQJSRLQW 8SSHUOLPLW 'ULYHORDG>@ $$B/2$'  D      2YHUULGH>@ Figure 3-4 Example: Multiplicative control Determining the parameters of the FCTDEF function: FCTDEF(,,,a0,a1,a2,a3) : = 2 (example) : = 0 : = 120 Polynomial: f(x) = a0 + a1x +a2x2 + a3x3 a0: 50 / 100 = 80 / a0 ⇒ a0 = 160 a1 = 100 % / -50 % = -2 a2 = 0 (not a square component) a3 = 0 (not a cubic component) Calculation of the override value: SYNFCT(,,) : = 2 Detailed description 3.7 Actions in synchronized actions Synchronized actions 70 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

$AC_OVR (path override can be specified via synchronized action)

: $AA_LOAD (drive load) Programming: Program code N100 FCTDEF(2, 0, 120, 160, -2) N110 ID=1 DO SYNFCT(2, $AC_OVR[X], $AA_LOAD[X]) Example: Clearance control 6XUIDFH &OHDUDQFHVHQVRU = ;   >PP@ Figure 3-5 Clearance control: Principle The clearance control of the infeed axis Z is performed via the FCTDEF and SYNFCT functions as well as by the system variables $AA_OFF and $A_INA. Supplementary conditions: ● The analog voltage of the clearance sensor is connected via the analog input $A_INA[3]. ● The position deviations are summated in $AA_OFF (integrated): MD36750 $MA_AA_OFF_MODE, bit 0 = 1 ● If the upper limit of the Z axis is exceeded by 1 mm, the X axis is stopped: SD43350 $SA_AA_OFF_LIMIT[Z] = 1 See also Chapter "Overlaid movements ($AA_OFF) (Page 45)." Note $AA_OFF is effective in the basic coordinate system (BCS) The offset is effective before the kinematic transformation in the basic coordinate system (BCS). The example therefore cannot be used for a clearance control in the orientation direction of the tool (workpiece coordinate system WCS). For clearance control system with high dynamic response or 3D clearance control, see: References: Function Manual Special Functions; Clearance Control (TE1) Customized responses When the limit value SD43350 $SA_AA_OFF_LIMIT is reached, customized responses can be triggered, for example: ● Chapter "Override ($A...OVR) (Page 36)" ● Chapter "User-specific error reactions (SETAL) (Page 115)" Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 71

Determining the parameters of the FCTDEF function:

FCTDEF(,,,a0,a1,a2,a3) : = 1 (example) : = 0.2 : = 0.5 Polynomial: f(x) = a0 + a1x +a2x2 + a3x3 a0: 10 / x = 20 / 0.3 ⇒ a0 = x + 0.2 = 0.15 + 0.2 = 0.35 a1 = 0.15 mm / 10 V = 1.5 * 10-2 mm/V a2 = 0 (not a square component) a3 = 0 (not a cubic component) Calculation of the override value: SYNFCT(,,) : = 1 : $AA_OFF (overlaid movement of an axis) : $A_INA (analog input) Programming: Program code: %_N_AON_SPF Comment PROC AON ; Clearance control "ON" FCTDEF(1, 0.2, 0.5, 0.35, 1.5 EX-2) ; Polynomial definition ID=1 DO SYNFCT(1,$AA_OFF[Z],$A_INA[3]) ; Clearance control ID=2 WHENEVER $AA_OFF_LIMIT[Z]<>0 DO $AA_OVR[X] = 0 ; Limit value test RET ENDPROC Program code: %_N_AOFF_SPF Comment PROC AOFF ; Clearance control "OFF" CANCEL(1) ; Delete clearance control CANCEL(2) ; Delete limit value check RET Detailed description 3.7 Actions in synchronized actions Synchronized actions 72 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Program code: %_N_AOFF_SPF

Comment ENDPROC Program code: %_N_MAIN_MPF Comment N100 $SA_AA_OFF_LIMIT[Z]=1 N110 AON ; Clearance control "ON" ... N200 G1 X100 F1000 N210 AOFF ; Clearance control "OFF" M30 See also Online tool offset (FTOC) (Page 73) 3.7.4 Online tool offset (FTOC) The FTOC function enables the overlaid movement of a geometry axis for the online tool offset, depending on a reference value, e.g. the actual value of an arbitrary axis. The offset value is calculated on the basis of a polynomial defined with FCTDEF (see Section "Polynomial coefficients, parameters ($AC_FCT ...) (Page 43)"). The coefficient a0 specified in the polynomial definition is also evaluated by FTOC. Example: Machining and dressing in the "Grinding" technology :RUNSLHFH 'UHVVLQJDPRXQW *ULQGLQJZKHHO /HQJWKWREHFRUUHFWHG $%HIRUHGUHVVLQJ %$IWHUGUHVVLQJ % $ 'UHVVLQJUROO Figure 3-7 Dressing during machining using a dressing roller References: Function Manual, Extended Functions; Grinding (W4) Syntax FTOC(,,[,,]) Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 73

Number of the polynomial defined with FCTDEF

: Arbitrary system variable of the REAL type that can be used in synchronized actions. : Wear parameter (length 1, 2 or 3) in which the offset value is added. : Target channel in which the offset must be applied. This enables si‐ multaneous dressing from a parallel channel. In the target channel of the offset, the online offset must be switched on with FTOCON. If no channel number is programmed, the offset acts in the active channel. : The spindle number is programmed if a non-active grinding wheel needs to be dressed. Requirement: One of the following functions is active ● "Constant grinding wheel peripheral speed" ● "Tool monitoring" If no spindle number is programmed, the active tool is compensated. Example Compensate length of an active grinding wheel Program code Comment FCTDEF(1, -1000, 1000, -$AA_IW[V], 1) ; FTOC: ; Polynomial no.: 1 ; System variable: $AA_IW[V] (axial actual value of the V axis) ; Wear parameter: Length 3 ; Target channel: Channel 1 ID=1 DO FTOC(1, $AA_IW[V], 3, 1) WAITM (1,1,2) ; Synchronization with the machining channel G1 V-0.05 F0.01 G91 ; Traversing motion of the V axis ... CANCEL(1) ; Deselect online offset ... Note Because no frequency and no condition has been specified in the synchronized action, the action part is executed in every interpolator clock cycle. Detailed description 3.7 Actions in synchronized actions Synchronized actions 74 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Programmed read-in disable (RDISABLE)

Function The RDISABLE command in the active section causes block processing to be stopped when the relevant condition is fulfilled. Processing of programmed motion-synchronous actions still continues. The read-in disable is canceled again as soon as the condition for the RDISABLE is no longer fulfilled. An exact stop is initiated at the end of the block containing RDISABLE irrespective of whether or not the read-in disable is still active. The exact stop is also triggered if the control is in the continuous-path mode (G64, G641 ... G645). RDISABLE can be programmed with reference to the block or also modal (ID=, IDS=)! Application Using RDISABLE, for example, the program can be started in the interpolator clock cycle as a function of external inputs. Example Program code Comment WHENEVER $A_INA[2]<7000 DO RDISABLE ; Program processing is stopped if the voltage at input 2 drops to below 7 V (assuming that the value 1000 cor- responds to 1 V). ... N10 G01 X10 ; RDISABLE acts at the end of N10, if the condition is fulfilled during its processing. N20 Y20 ... Supplementary conditions Read-in disable RDISABLE in conjunction with axis exchange Acts via the synchronized actions RDISABLE read-in disable and axis exchange (e.g. path axis → positioning axes) together in one block, RDISABLE does not act on the action block, but the re-approach block REPOSA implicitly generated as a result of the axis exchange: Program code Comment N100 G0 G60 X300 Y300 N105 WHEN TRUE DO POS[X]=20 FA[X]=20000 ; Synchronized action → REORG → REPOSA N110 WHENEVER $AA_IM[X]<>20 DO RDISABLE ; RDISABLE acts on REPOSA N115 G0 Y20 ; 1. X-axis, 2nd Y axis N120 Y-20 N125 M30 Path axis X becomes a positioning axis as a result of the synchronized action in the block N105. REORG is therefore executed in the channel with REPOSA. Therefore, RDISABLE in N110 Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 75

does not act on block N115 – but instead on the internal REPOSA block. As a consequence, to

start, positioning axis X is traversed to its programmed position and then in block N115, the Y axis to its programmed position. An explicit release of path axis X before traversing as positioning axis (synchronized action in N105) with RELEASE(X) avoids the REORG operation, and the X and Y axes traverse together in block N115. Program code Comment N100 G0 G60 X300 Y300 N101 RELEASE(X) ; Explicit release N105 WHEN TRUE DO POS[X]=20 FA[X]=20000 ... 3.7.6 Cancel preprocessing stop (STOPREOF) With the STOPREOF command, an existing preprocessing stop can be cancelled from a synchronized action. Note The STOPREOF command can only be programmed in non-modal synchronized actions (without specification of ID or IDS) and only in conjunction with the scanning frequency WHEN. Example ● N10: Non-modal synchronized action. If the path distance-to-go $AC_DTEB is less than 5 mm, the existing preprocessing stop due to the reading of the analog input $A_INA is cancelled. ● N20: Traversing block whose path distance-to-go is evaluated via $AC_DTEB. ● N30: Branch that triggers the preprocessing stop due to the reading of $A_INA. Due to the synchronized action, input $A_INA is not evaluated at the end of the N20 block, but already 5 mm before the end of the block. If the voltage is then greater than 5 V at input $A_INA, there is a branch to "MARKE_1". Program code N10 WHEN $AC_DTEB < 5 DO STOPREOF N20 G01 X100 N30 IF $A_INA[7] > 5000 GOTOF MARKE_1 3.7.7 Delete distance-to-go (DELDTG) The path distance-to-go can be deleted with the DELDTG command and axial distances-to-go can be deleted with the DELDTG (...) function in synchronized actions. Detailed description 3.7 Actions in synchronized actions Synchronized actions 76 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

After deletion of the distance-to-go, the value of the deleted distance-to-go can be read via a

system variable: ● Path distance-to-go: $AC_DELT ● Axial distance-to-go: $AA_DELT Syntax DELDTG DELDTG([,, ... ]) Meaning Parameter Meaning DELDTG Deletion of the path distance-to-go DELDTG(...) Deletion of the axial distances-to-go of the specified channel axes : Channel axis Supplementary conditions Path-specific and axial delete distance-to-go Path-specific and axial delete distance-to-go can only be executed in a non-modal synchronized action (without specification of ID or IDS). Path-specific delete distance-to-go ● The deletion of the path distance-to-go can only be executed in a non-modal synchronized action (without specification of ID or IDS). ● The deletion of the path distance-to-go must not be used with active tool radius compensation. Axial delete distance-to-go Delete distance-to-go for indexing axes: ● Without Hirth tooth system: The axis is braked immediately ● With Hirth tooth system: The axis traverses to the next indexing position Examples Delete path distance-to-go If the input $A_IN is set during the traversing block N20, the path distance-to-go is deleted. Program code N10 WHEN $A_IN[1]==1 DO DELDTG N20 G01 X100 Y100 F1000 Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 77

Delete axial distances-to-go

N10: If input 1 is set at any time within the part program, the V axis is started as a positioning axis in the positive traversing direction. N100: Non-modal synchronized action to delete distance-to-go of the V axis, depending on digital input 2. N110: Non-modal synchronized action to delete distance-to-go of the X1 axis, depending on digital input 3. N120: The X1 axis is positioned modally. The Y and Z axes are traversed as path axes. The non-modal synchronized actions from N100 and N110 are executed together with N120. The non-modal synchronized actions are also terminated with the end of block N120. For this reason, the distances-to-go of the X1 and V axes can only be deleted as long as N120 is active. Program code N10 ID=1 WHEN $A_IN[1]==1 DO MOV[V]=1 FA[V]=700 ... N100 WHEN $A_IN[2]==1 DO DELDTG(V) N110 WHEN $A_IN[3]==1 DO DELDTG(X1) N120 POSA[X1]=100 FA[X1]=10 G1 Y100 Z100 F1000 3.7.8 Traversing axes, to position (POS) With the POS command, an axis can be traversed using a synchronized action. The axis is then called the command axis. It is possible to traverse the axis alternating via the part program and the synchronized action. If a command axis traversed via synchronized actions is subsequently traversed via the part program, a preprocessing stop with reorganization (STOPRE) is executed in the channel of the part program. Examples: Example 1: Alternate traversing via part program and synchronized action Program code Comment N10 G01 X100 Y200 F1000 ; Traversing via part program ... ; Traversing via static synchronized action when input 1 is set N20 ID=1 WHEN $A_IN[1]==1 DO POS[X]=150 FA[X]=200 ... CANCEL(1) ; Deselect synchronized action ... ; Traversing again via part program => implicit preprocessing stop ; with reorganization, if the X axis in the meantime has been ; traversed via synchronized action N100 G01 X240 Y200 F1000 Example 2: Alternate traversing of the X-axis via two synchronized actions Detailed description 3.7 Actions in synchronized actions Synchronized actions 78 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

If the traversing motion of one synchronized action is still active when the traversing motion of

the other synchronized action is started, the second traversing motion replaces the first. Program code ; 1st traversing motion ID=1 EVERY $A_IN[1]>=1 DO POS[V]=100 FA[V]=560 ; 2nd traversing motion ID=2 EVERY $A_IN[2]>=1 DO POS[V]=$AA_IM[V] FA[V]=790 Dimensions: Absolute/incremental The commands G90/G91 to specify the dimensions (absolute/incremental) cannot be programmed in synchronized actions. Therefore by default, the dimensions that were active in the part program at the time of execution of the synchronized action is also effective in the synchronized action. The following commands can be programmed in the action part to specify the dimensions within a synchronized action: Command Meaning IC(…) Incremental AC(…) Absolute DC(...) Direct, i.e. position rotary axis via shortest route ACN(...) Position modulo rotary axis absolutely in negative direction of motion ACP(...) Position modulo rotary axis absolutely in positive direction of motion CAC(...) Traverse axis to coded position absolutely CIC(...) Traverse axis to coded position incrementally CDC(...) Traverse rotary axis to coded position via shortest route CACN(...) Traverse modulo rotary axis to coded position in negative direction CACP(...) Traverse modulo rotary axis to coded position in positive direction Examples: Program code ; Incremental traversing by 10 mm ID=1 EVERY G710 $AA_IM[B]>75 DO POS[X]=IC(10) ... ; Absolute traversing ID=1 EVERY G710 $AA_IM[B]>75 DO POS[X]=AC($AA_MW[V]-$AA_IM[W]+13.5) Behavior with active axial frames If programmable and settable frames and tool length compensations are not explicitly deactivated for inclusion in the calculation for synchronized actions via the following machine data, the frame and/or tool length compensation active in the part program at the time the synchronized action is executed in parallel, takes effect: MD32074 $MA_FRAME_OR_CORRPOS_NOTALLOWED, bit 9 = 1 Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 79

Example 1: Traversing with active frames / tool length compensations (bit 9 == 0):

Program code Comment N100 TRANS X20 ; Zero offset in X: 20 mm. ; Synchronized action: The X axis traverses to position 60 mm IDS=1 EVERY G710 $A_IN==1 DO POS[X]=40 ... ; Zero offset in X: -10 mm. => ; Synchronized action: The X axis now traverses to position 30 mm N130 TRANS X-10 ... Example 2: Traversing with deactivated frames / tool length compensations (bit 9 == 1): Program code Comment N100 TRANS X=0.001 ; Zero offset in X: 0.001 degrees N120 POS[X]=270 ; X traverses to position 270.001 degrees ... ; With $A_IN=1, X traverses to position 180.000 degrees. IDS=1 EVERY G710 $A_IN==1 DO POS[X]=180 ... ; X traverses to position 90.001 degrees N130 POS[X]=90 ... ; Coded position 1 = 100 degrees => X traverses to 100.001 degrees N140 POS[X]=CAC(1) ... ; Coded position 2 = 200 degrees => X traverses to 200.000 degrees N150 POS[X]=CIC(1) Note If a command axis travels to indexing positions incrementally, the axial frames have no effect on this command axis. Takeover of the control of a command axis by the PLC The control of a command axis that has been started via a static synchronized action (IDS) is taken over by the PLC irrespective of the status of the part program containing the synchronized action: DB31, ... DBX28.7 == 1 (request for PLC to control axis) References: Function Manual, Extended Functions; Chapter "P2: positioning axes" Detailed description 3.7 Actions in synchronized actions Synchronized actions 80 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Parameterizable axis status

The behavior with regard to the axis status after the end of the part program and NC Reset can be parameterized via the following machine data: MD30450 $MA_IS_CONCURRENT_POS_AX[] = Axis status before PP end / NC RESET 1) Axis status after PP end / NC RESET 1) 0 Channel axis Channel axis 0 Command axis Channel axis 1 Channel axis Command axis 1 Command axis Command axis 1) PP end: Part program end See also Technology cycles (Page 116) 3.7.9 Setting the measuring system (G70, G71, G700, G710) If a specific measuring system (inch/metric) is not explicitly defined in a synchronized action with G70, G71, G700, G710, the measuring system active in the part program at the time the synchronized action is executed takes effect: ● G70/G71 active in the part program: – All the programmed position values are interpreted in the programmed measuring system. – All the read position data is interpreted in the parameterized basic system. ● G700/G710 active in the part program: – All the programmed position values are interpreted in the programmed measuring system. – All the read position data is interpreted in the parameterized basic system. The following rules apply when defining the measuring system in the synchronized action: ● If a measuring system is programmed in the condition part, this also takes effect in the action part if a measuring system has not been specifically programmed there. ● If there is only a measuring system programmed in the action part, the system which is currently activated in the part program takes effect in the condition part. ● Different systems of units can be programmed in the condition and action parts. ● The measuring system programmed in the synchronized action has no effect on the part program. Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 81

N10 ID=1 EVERY $AA_IM[Z]>200 DO POS[Z2]=10

; ; ; $AA_IM: 200: 10: # # # N20 ID=2 EVERY $AA_IM[Z]>200 DO G70 POS[Z2]=10 ; ; ; $AA_IM: 200: 10: # # inch N30 ID=3 EVERY G71 $AA_IM[Z]>200 DO POS[Z2]=10 ; ; ; $AA_IM: 200: 10: # mm mm N40 ID=4 EVERY G71 $AA_IM[Z]>200 DO G70 POS[Z2]=10 ; ; ; $AA_IM: 200: 10: # mm inch N50 ID=5 EVERY $AA_IM[Z]>200 DO G700 POS[Z2]=10 ; ; ; $AA_IM: 200: 10: # # inch N60 ID=6 EVERY G710 $AA_IM[Z]>200 DO POS[Z2]=10 ; ; ; $AA_IM: 200: 10: mm mm mm N70 ID=7 EVERY G710 $AA_IM[Z]>200 DO G700 POS[Z2]=10 ; ; ; $AA_IM: 200: 10: mm mm inch #: The unit depends on the parameterized basic system (MD10240 $MN_SCALING_SYS- TEM_IS_METRIC) and the measuring system programmed in the part program Note Measuring system and technology cycles If a technology cycle is being used, the measuring system can also be programmed in the technology cycle instead of the measuring system having to be assigned in the action part of the synchronized action. 3.7.10 Position in specified reference range (POSRANGE) Function The POSRANGE function can be used to determine whether the current position of an axis is within the tolerance range around a specified reference position. Note With modulo axes, the modulo offset is taken into account. Detailed description 3.7 Actions in synchronized actions Synchronized actions 82 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

POSRANGE(, , , [] )

Meaning Function return value Type: BOOL TRUE: The current position of the axis is within the tolerance range. FALSE: The current position of the axis is not within the toler‐ ance range. Name of the channel axis Type: AXIS Reference position Type: REAL Permissible tolerance around the reference position Type: REAL The tolerance is specified as an absolute value. The tolerance range results from: Reference position +/- tolerance Optional: Coordinate system Type: INT Range of values: 0 = MCS (machine coordinate system) 1 = BCS (basic coordinate system) 2 = SZS (settable zero system) 3 = WCS (workpiece coordinate system) 3.7.11 Traversing axes, endless (MOV) Function An axis can be traversed endlessly, i.e. without specifying an end position, in a specific direction via the MOV command. The axis traverses so long in the specified direction until it is stopped or another traversing direction is specified by a MOV command. Application example: Endlessly rotating rotary axes Syntax MOV[] = Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 83

Traversing command for a command axis

Channel axis name Type: AXIS Traversing direction Type: INT Range of values: > 0: Positive traversing direction (default: +1) < 0: Negative traversing direction (default: -1) = 0: Stop Note Indexing axis If an indexing axis is stopped with MOV[] = 0, it stops at the next indexing position. Technology cycle The MOV command must not be used in technology cycles. See also Axial feedrate (FA) (Page 84) 3.7.12 Axial feedrate (FA) An axial feedrate can be specified in a synchronized action via the FA command. The axial feedrate is modal. Examples Constant feedrate value: Program code ID=1 EVERY $AA_IM[B]>75 DO POS[U]=100 FA[U]=990 Variable feedrate value: Program code ID=1 EVERY $AA_IM[B] > 75 DO POS[U]=100 FA[U]=$AA_VACTM[W]+100 IDS=2 WHENEVER $A_IN[1] == 1 DO POS[X]=100 FA[X]=$R1 Detailed description 3.7 Actions in synchronized actions Synchronized actions 84 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

The default value for the feedrate of positioning axes is set via axial machine data:

MD32060 $MA_POS_AX_VELO (initial setting for positioning axis velocity) ● The axial feedrate can be specified as a linear or revolutional feedrate. The feedrate type can be set via the setting data: SD43300 $SA_ASSIGN_FEED_PER_REV_SOURCE (revolutional feedrate for positioning axes / spindles) ● The feedrate type can be switched synchronous to the part program via the FPRAON and FPRAOF commands. Refer to: References: /FB1/ Function Manual Basic Functions; Feedrates (V1) Note So that technology cycles executed in parallel do not obstruct each other, the axial feedrate from synchronized actions is not output as an auxiliary function to the NC/PLC interface. See also Traversing axes, endless (MOV) (Page 83) 3.7.13 Axis replacement (GET, RELEASE, AXTOCHAN) Command axes can be interchanged between channels via the GET, RELEASE and AXTOCHAN commands. Requirement The command axis that is interchanged between the channels must be known and parameterized as command axis in the respective channel. Programming Syntax GET( [{, }]) RELEASE(( [{, }]) AXTOCHAN(, [{, , }]) Meaning GET: Request to replace an axis in the same channel RELEASE: Release of an axis for an axis replacement AXTOCHAN: Request for an axis for replacement in the specified channel : Machine axis name Type: AXIS Range of values: Machine axis names defined in the channel Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 85

Range of values:

1 ... maximum channel number Axis type and axis status regarding axis replacement The axis type and axis status currently valid at the time of the synchronized action activation can be queried via the $AA_AXCHANGE_TYP or $AA_AXCHANGE_STAT system variable. Depending on the channel that has the current interpolation authorization for this axis and depending on the status for the permissible axis replacement, a different sequence results from the synchronized action. An axis can be requested with GET from a synchronized action, if ● Another channel has the write or interpolation authorization for the axis ● The requested axis is already assigned to the requested channel ● The axis in the neutral axis state is controlled by the PLC ● The axis is a command axis, oscillating axis, or concurrent PLC axis ● The axis is already assigned to the NC program of the channel Note Supplementary condition: An "axis controlled exclusively by the PLC" or a "permanently assigned PLC axis" cannot be assigned to the NC program. An axis can be released from a synchronized action with RELEASE, if the axis: ● Was previously assigned to the NC program of the channel. ● Is already in the neutral axis state. ● Already has another channel that has the interpolation authorization of this axis Request axis from another channel If, when the GET action is activated, another channel has the interpolation authorization for the axis $AA_AXCHANGE_TYP[axis] == 2, axis replacement is used to fetch the axis from this channel $AA_AXCHANGE_TYP[axis] == 6 and assign it to the requesting channel as soon as possible. The axis then becomes the neutral axis ($AA_AXCHANGE_TYP[axis]==3). The state change to a neutral axis does not result in reorganization in the requesting channel. Requested axis was already requested as neutral axis: $AA_AXCHANGE_TYP[axis]==6, the axis is required for the NC program $AA_AXCHANGE_TYP[axis] == 5 and assigned as soon as possible to the NC program of the channel $AA_AXCHANGE_TYP[axis] == 0. Note This assignment results in a reorganization. Detailed description 3.7 Actions in synchronized actions Synchronized actions 86 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Axis is already assigned to the requested channel

If the requested axis has already been assigned to this channel at the point of activation, and its status is that of a neutral axis not controlled by the PLC $AA_AXCHANGE_TYP[axis]==3, it is assigned to the NC program $AA_AXCHANGE_TYP[axis]==0. This results in a reorganization procedure. Axis in the state of the neutral axis is controlled from the PLC If the axis in neutral axis state is controlled by the PLC $AA_AXCHANGE_TYP[axis]==4), the axis is requested as a neutral axis $AA_AXCHANGE_TYP[axis] == 8. This disables the axis for automatic axis replacement between channels (Bit 0 == 0) in accordance with the value of bit 0 in machine data: MD10722 $MN_AXCHANGE_MASK (parameterization of the axis replacement behavior) This corresponds to $AA_AXCHANGE_STAT[axis] == 1. Axis is active as command axis / assigned to the PLC If the axis is active as a command axis or oscillating axis or a concurrent positioning axis (PLC axis) ($AA_AXCHANGE_TYP[] == 1), the axis is requested as a neutral axis ($AA_AXCHANGE_TYP[] == 8). Depending on the setting in the following machine data, the axis is blocked for an automatic axis replacement between channels: MD10722 $MN_AXCHANGE_MASK (parameterization of the axis replacement behavior) This corresponds to $AA_AXCHANGE_STAT[] == 1. With a further GET request, the axis is then requested for the NC program ⇒ $AA_AXCHANGE_TYP[axis] == 7. Axis already assigned to the NC program of the channel If the axis is already assigned to the NC program of the channel ($AA_AXCHANGE_TYP[] == 0) or if this assignment is requested, e.g. axis replacement triggered by the NC program ($AA_AXCHANGE_TYP[] == 5 or $AA_AXCHANGE_TYP[] == 7), there is no state change. Release axis for axis replacement If the axis is assigned to the NC program at the time of release ($AA_AXCHANGE_TYP[] == 0), it is transferred to the neutral axis state ($AA_AXCHANGE_TYP[] == 3) and if required, released for axis replacement in another channel. This results in a reorganization procedure. Axis to be released is already a neutral axis: If the axis is already in the neutral axis state ($AA_AXCHANGE_TYP[] == 3) or active as command or oscillating axis or assigned to the PLC as concurrent positioning axis ($AA_AXCHANGE_TYP[] == 1), the axis is released for an automatic axis replacement between channels. Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 87

$AA_AXCHANGE_STAT[] is reset from 1 to 0 if there is no other reason to link the axis

to the channel. Such a link of the axis is present, for example, with: ● Active axis coupling ● Active fast retraction ● Active transformation ● JOG request ● Rotating frame with PLC, command or oscillating axis motion Another channel already has the interpolation authorization If another channel already has the interpolation authorization ($AA_AXCHANGE_TYP[] == 2), there is no state change. This also means that waiting for an axis, triggered by NC program ($AA_AXCHANGE_TYP[] == 5) or a previous GET request from a synchronized action ($AA_AXCHANGE_TYP[] == 6) cannot be aborted by a RELEASE from a synchronized action. Supplementary conditions ● If several GET and RELEASE requests are programmed for the same axis, they may mutually cancel each other under certain circumstances and only the last respective requests are performed. Example: Programming: GET(X,Y) RELEASE(Y,Z) GET(Z) Execution: GET(X) RELEASE(Y) GET(Z) ● If further commands are programmed in the action part of a synchronized action in addition to GET/RELEASE, there is no waiting period until the GET/RELEASE request is completed before these commands are executed. This can lead to an error if, for example, an axis requested for the positioning motion with GET is not yet available: GET[] POS[] Example 1: GET and RELEASE as action in synchronized actions in two channels Requirement: The Z axis must be known in the 1st and 2nd channels 1. Program sequence in the first channel: Program code Comment WHEN TRUE DO RELEASE(Z) ; Z axis becomes neutral ; Read-in disable as long as Z axis is program axis WHENEVER $AA_TYP[Z] == 1 DO RDISABLE N110 G4 F0.1 ... ; Z axis returns to status as NC program axis WHEN TRUE DO GET(Z) ; Read-in disable until Z axis is program axis Detailed description 3.7 Actions in synchronized actions Synchronized actions 88 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

WHENEVER($AA_TYP[Z]<>1) DO RDISABLE

N120 G4 F0.1 ... WHEN TRUE DO RELEASE(Z) ; Z axis becomes neutral ; Read-in disable as long as Z axis is program axis WHENEVER $AA_TYP[Z] == 1 DO RDISABLE N130 G4 F0.1 ... N140 START(2) ; Start 2nd channel N150 ; See below: "3. Continuation: Program sequence in the first channel" 2. Program sequence in the second channel: Program code Comment WHEN TRUE DO GET(Z) ; Move Z axis to second channel (neutral) ; Read-in disable as long as Z axis is in other channel WHENEVER $AA_TYP[Z] == 0 DO RDISABLE N210 G4 F0.1 ... WHEN TRUE DO GET(Z) ;Z axis is NC program axis ; Read-in disable until Z axis is program axis WHENEVER($AA_TYP[Z]<>1) DO RDISABLE N220 G4 F0.1 ... WHEN TRUE DO RELEASE(Z) ; Z axis in second channel is neutral axis ; Read-in disable as long as Z axis is program axis WHENEVER $AA_TYP[Z] == 1 DO RDISABLE N230 G4 F0.1 ... N250 WAITM(10,1,2) ;Synchronize with channel 1 N999 M30 3. Continuation: Program sequence in the first channel: Program code Comment N150 WAITM(10,1,2) ;Synchronize with channel 2 ... WHEN TRUE DO GET(Z) ;Move Z axis to this channel ; Read-in disable as long as Z axis is in other channel WHENEVER $AA_TYP[Z] == 0 DO RDISABLE N160 G4 F0.1 ... N199 WAITE(2) ;Wait for end of program in channel 2 N999 M30 Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 89

Transfer axis to another channel (AXTOCHAN)

An axis can be requested for an arbitrary channel from a synchronized action with the AXTOCHAN command. If the axis is already assigned to the NC program of the channel ($AA_AXCHANGE_TYP[] == 0), there is no state change. If an axis is requested for the same channel from a synchronized action, AXTOCHAN is mapped on the GET command. ● With the first request for the same channel, the axis becomes a neutral axis. ● With the second request, the axis is assigned to the NC program. Supplementary condition A "PLC-controlled axis" corresponds to a "concurrent positioning axis" where special supplementary conditions must be carefully observed. For further details, see: References: /FB2/ Function Manual, Extended Functions; Positioning Axes (P2) Note A PLC axis cannot replace the channel. An axis controlled exclusively by the PLC cannot be assigned to the NC program. 3.7.14 Traversing spindles (M, S, SPOS) Spindles can be started, positioned and stopped via synchronized actions. The programming is performed in the action part of the synchronized action with the same syntax as in the part program. Without numeric extension the commands for the master spindle apply. By specifying a numeric extension, it is possible to program each spindle individually: Program code Comment ID = 1 EVERY $A_IN[1]==1 DO M3 S1000 ; Master spindle ID = 2 EVERY $A_IN[2]==1 DO SPOS=270 ; Master spindle ID = 1 EVERY $A_IN[1]==1 DO M1=3 S1=1000 SPOS[2]=90 If concurrent commands are specified for a spindle through synchronized actions that are active in parallel, the chronological sequence decides the activation. User-specific spindle enable The start of spindle motions at defined times can be achieved via synchronized actions by blocking the motion programmed in the part program. Example: Detailed description 3.7 Actions in synchronized actions Synchronized actions 90 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

The spindle is programmed within a part program and should not start at the beginning of the

block, but only when input 1 is set. The synchronized action holds the spindle override at 0% until the enable via input 1. See Section "Override ($A...OVR) (Page 36)". Program code ; As long as input 1 is not set => spindle override = 0% ID=1 WHENEVER $A_IN[1]==0 DO $AA_OVR[S1]=0 ... ; The start of the spindle is triggered ; The spindle is enabled when input 1 is set G01 X100 F1000 M3 S1=1000 Transition between command axis and spindle Since several synchronized actions can be active simultaneously, the situation may arise where a spindle motion is started when the spindle is already active. In this case, the most recently activated motion is applicable. At a reversal in the direction of motion, the spindle is first braked and then traversed in the opposite direction. Direction of rotation, speed and position can also be changed during the motion. Examples Program code Comment ID=1 EVERY $AC_TIMER[1] >= 5 DO M3 S300 ; Speed and direction of rotation ID=2 EVERY $AC_TIMER[1] >= 7 DO M4 S500 ; Speed and direction of rotation ID=3 EVERY $A_IN[1]==1 DO S1000 ; Speed ID=4 EVERY ($A_IN[4]==1) AND ($A_IN[1]==0) DO SPOS=0 ; Spindle positioning Transitions between axis and spindle In state ↓ To → POS MOV<>0 MOV=0 SPOS M3/M4 M5 LEADON TRAIL ON during traversing Axis x x x x x x x x Position-controlled spindle x x x x x x - - Speed-controlled spindle - - - x x x - - in motion Axis x x x - - - x x Position-controlled spindle - - - - - - - - Speed-controlled spindle - - - x x x - - Transitions marked with x are permitted: The transitions marked with - are rejected with an alarm. See also Couplings (CP..., LEAD..., TRAIL..., CTAB...) (Page 105) Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 91

Withdrawing the enable for the axis container rotation (AXCTSWEC)

Function Using the command AXCTSWEC an already issued enable signal to rotate the axis container can be withdrawn again. The command triggers a preprocessing stop with reorganization (STOPRE). The following conditions must be fulfilled so that in the channel, the enable signal to rotate the axis container is withdrawn again: ● In the channel, the axis container rotation must already have been enabled: – AXCTSWE() – $AC_AXCTSWA[] == 1 ● Axis container rotation was still not started: – $AN_AXCTSWA[] == 0 As feedback signal for the successful withdrawal of the enable signal, the following channel- specific system variable is reset: $AC_AXCTSWA[] == 0 For a detailed description of the system variables, refer to: References: Parameter Manual System Variables Syntax DO AXCTSWEC() Meaning AXCTSWEC: Withdrawing the enable for the axis container rotation for the channel : Name of axis container: Possible data include: ● CT: The number of the axis container is attached to the CT letter combination. Example: CT3 ● : Individual name of the axis container set using MD12750 $MN_AXCT_NAME_TAB. Example: A_CONT3 ● : Axis name of a container axis known in the channel. Example Program code Comment ; Initialization of the global counter for the technology cycle CTSWEC Detailed description 3.7 Actions in synchronized actions Synchronized actions 92 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

N110 ID=1 DO CTSWEC

; For technology cycle CTSWEC, see below. NEXT: N200 G0 X30 Z1 N210 G95 F.5 N220 M3 S1000 N230 G0 X25 N240 G1 Z-10 N250 G0 X30 N260 M5 ; Enable of the axis container rotation for container spindle S1. N270 AXCTSWE(S1) N200 GOTO NEXT Program code Comment PROC CTSWEC( STRING _ex_CT="CT1" INT _ex_CTsl_BITmask=1H INT _ex_CT_SL_Number=1 INT _ex_WAIT_number_of_IPOs=1000 ) DISPLOF ICYCOF DEFINE _ex_number_of_IPOs AS $AC_MARKER[0] IF ($AC_STOP_COND[0] + $AC_STOP_COND[1] + $AC_STOP_COND[2] + $AC_STOP_COND[3] + $AC_STOP_COND[4] + $AC_STOP_COND[5] + $AC_STOP_COND[6] + $AC_STOP_COND[7] + $AC_STOP_COND[8] + $AC_STOP_COND[9] + $AC_STOP_COND[10]) > 0) ; Increment IPO cycle counter _ex_number_of_IPOs = _ex_number_of_IPOs + 1 ; If a stop condition for longer than "_ex_WAIT_number_of_IPOs" ; IPO cycles is present AND its own slot has not been enabled IF ( _ex_number_of_IPOs >= _ex_WAIT_number_of_IPOs) AND ($AN_AXCTSWEC[_ex_CT] == _ex_CTsl_BITmask ) AXCTSWEC ; Cancel the enable of the axis container rotation. ENDIF ELSE ; Reset IPO cycle counter _ex_number_of_IPOs = 0 ENDIF RET Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 93

Time of execution of synchronized actions

Program code ; Enable of the axis container rotation. N10 AXCTSWE(CT3) ; Traversing of the container axis AX_A => before the axis is traversed, there ; is a waiting period for the end of the axis container rotation: $AN_AXCTSWA[CT3]==0 N20 AX_A = 10 ; Cancellation of the enable. No effect! WHEN DO AXCTSWEC(AX_A) N30 G4 F1 Because after the enable of the axis container rotation in block N10, an axis of the axis container (AX_A) is used in block N20 and this use leads to the system waiting for the end of the axis container rotation, the synchronized action only comes together with the program block N30 in the main run and has therefore no effect. Remedy: Program code Comment ; Enable of the axis container rotation. N11 AXCTSWE(CT3) ; Cancellation of the enable. WHEN DO AXCTSWEC(AX_A) N21 ... ; Executable NC block ; Traversing of the container axis AX_A => before the axis is traversed, there ; is a waiting period for the end of the axis container rotation: $AN_AXCTSWA[CT3]==0 N31 AX_A = 10 Note Without the executable block N21, the synchronized action would only be implemented after the end of the axis container rotation with the next executable program block N31 in the main run and would therefore have no effect, just the same as in the example above. 3.7.16 Actual value setting with loss of the referencing status (PRESETON) Function The PRESETON() procedure sets new actual values in the machine coordinate system (MCS) from synchronized actions for one axis. This corresponds to work offset of the axis MCS. The axis is not traversed. From synchronized actions, PRESETON must only be used on command axes, i.e. on axes that have been started from a synchronized action. The axis must also be assigned to the channel, Detailed description 3.7 Actions in synchronized actions Synchronized actions 94 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

i.e. this channel must have the interpolation right for this axis. The axis is not requested from

another channel via axis replacement. 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. 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 WHEN | EVERY ... DO PRESETON(,) Meaning WHEN, EVERY: Only WHEN and EVERY must be used as frequency (Page 17). PRESETON: Actual value setting with loss of the referencing status : Machine axis name Type: AXIS Range of values: Machine axis names defined in the channel : New actual value of the machine axis in the machine coordinate system (MCS) The input is made in the current valid system of units (inch/metric) An active diameter programming (DIAMON) is taken into account Type: REAL 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 = $AC_PRESET + "current actual position of the axis in the MCS" - "PRESETON actual position" The work offset can be undone with the system variables: Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 95

PRESETON(, $VA_IM + $AC_PRESET[]) ; "current actual

position of the axis in the MCS'" + "offsets" Example Program code N10 G1 X=10 F5000 ; Traverse the X axis as command axis to position 200 N20 WHEN TRUE DO G71 POS[X]=200 ; IF set position of the X axis in the MCS ($AA_IM[X]) >= 80 ; THEN "actual position of the X axis in the MCS" = "set position of the X axis in the MCS" + "offset" ; = 80 + 70 = 150 ; "progr. end position of the X axis" = "progr. end position of the X axis" + "offset" ; = 200 + 70 = 270 ; $AC_PRESET = $AC_PRESET - 70 N30 WHEN G71 $AA_IM[X] >= 80 DO PRESETON(X, $AA_IM[X]+70) N40 G4 F3 Supplementary conditions Axes for which PRESETON must not be used ● Traversing command axes in spindle mode ● Traversing concurrent positioning axes (FC18) ● Axes involved in a transformation ● Traversing path axes ● Reciprocating axes ● Axes on which one or more of the following safety functions (Safety Integrated) are active – Enable safe limit switch MD36901 $MA_SAFE_FUNCTION_ENABLE[], bit 1 = 1 – Enable safe cam, pair 1 ... 4, cam +/- MD36901 $MA_SAFE_FUNCTION_ENABLE[], bits 8 ... 15 = 1 ● Hirth axes ● Synchronized axes of a gantry grouping ● Axes for which the reference point approach from the part program (G74) is active ● Slave axis of a speed/torque coupling (master-slave) Detailed description 3.7 Actions in synchronized actions Synchronized actions 96 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

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 Program code Comment N10 G0 X0 Y0 ; X, Y: Geometry axes N15 RELEASE(Y) 1) ; Neutral axis N20 ID=1 WHEN 20.0 < $AA_IM[X] DO PRESETON(Y,20) ; $AA_IM: Set position in the MCS N30 G0 X40 ; Geometry axis X traverses N40 M30 1) Note The release of an axis in the action part of a synchronized action does not ensure that the release is on time. N20 ID=1 WHEN 20.0 < $AA_IM[X] DO RELEASE(Y) PRESETON(Y,20) ; NOT recommended! Example: A further geometry (X) is traversing at the same time as command axis Program code Comment N10 G0 X0 Y0 ; X, Y: Geometry axes N20 ID=1 WHEN TRUE DO POS[X]=40 FA[X]=1000 ; X command axis N30 ID=2 WHEN 20.0 < $AA_IM[X] DO PRESETON(Y,20) ; $AA_IM: Set position in the MCS N40 M30 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: PRESETON in synchronized action Spindle mode Traversing sta‐ tus Assigned to the NC program Main axis Speed control mode In motion Alarm 17601 Alarm 17601 Stationary + + Positioning mode SPOS In motion Alarm 17601 Alarm 17601 Stationary + + Positioning across block bounda‐ ries SPOSA In motion Alarm 17601 - Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 97

PRESETON in synchronized action

Spindle mode Traversing sta‐ tus Assigned to the NC program Main axis Axis mode In motion Alarm 17601 + Stationary + + +: Possible -: Not possible PRESETON in the NC program Spindle mode Traversing sta‐ tus Assigned to the NC program Main axis Speed control mode In motion Alarm 22324 Alarm 22324 Stationary + + Positioning mode SPOS In motion - + Stationary + + Positioning across block bounda‐ ries SPOSA In motion Alarm 10610 - Axis mode In motion - + Stationary + + +: Possible -: Not possible 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. Software limit switches, operating range limit, protection areas ● If the axis position is outside the specified limits after a work offset by PRESETON, an alarm is not displayed until an attempt is made to traverse the axis. Block search with calculation PRESETON commands are collected during the block search and executed with the NC start to continue the NC program. Detailed description 3.7 Actions in synchronized actions Synchronized actions 98 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Position-dependent NC/PLC interface signals

● The status of the position-dependent NC/PLC interface signals is redetermined based on the new actual position. Example: Fixed point positions – Parameterized fixed point positions: MD30600 $MA_FIX_POINT_POS[0...3] = – NC/PLC interface signals DB31, ... DBX75.3 ... 5 (JOG approach fixed point: reached) If the axis is at a fixed point position with the exact stop tolerance, the associated NC/PLC interface signal is set. The NC/PLC interface signal is reset when the actual value is set by PRESETON to a different value outside the exact stop tolerance around the fixed point position. DRF offset ● A DRF offset of the axis is deleted by PRESETON. Overlaid movement $AA_OFF ● An overlaid movement ($AA_OFF) (Page 45) is not affected by PRESETON. Online tool offset FTOC ● An active online tool offset (FTOC) (Page 73) remains active even after PRESETON. Axis-specific compensations Axis-specific compensations remain active after PRESETON. JOG mode ● PRESETON must only be used on a stationary axis. JOG mode, REF machine function ● PRESETON must not be used. See also On-the-fly parting (Page 152) 3.7.17 Actual value setting without loss of the referencing status (PRESETONS) Function The PRESETONS() procedure sets new actual values in the machine coordinate system (MCS) from synchronized actions for one axis. This corresponds to work offset of the axis MCS. The axis is not traversed. From synchronized actions, PRESETONS must only be used on command axes, i.e. on axes that have been started from a synchronized action. The axis must also be assigned to the channel, i.e. this channel must have the interpolation right for this axis. The axis is not requested from another channel via axis replacement. Detailed description 3.7 Actions in synchronized actions Synchronized actions Function Manual, 08/2018, 6FC5397-5BP40-6BA2 99

By setting a new actual value in the machine coordinate system (MCS) with PRESETONS, the

referencing status of the machine axis is not changed. Requirements ● Encoder type PRESETONS is only possible with the following encoder types of the active measuring system: – MD30240 $MA_ENC_TYPE[] = 0 (simulated encoder) – MD30240 $MA_ENC_TYPE[] = 1 (raw signal encoder) ● Referencing mode PRESETONS is only possible with the following referencing mode of the active measuring system: – MD34200 $MA_ENC_REFP_MODE[] = 0 (no reference point approach possible) – MD34200 $MA_ENC_REFP_MODE[] = 1 (referencing of incremental, rotary or linear measuring systems: zero pulse on the encoder track) Startup Axis-specific machine data Actual value setting without loss of the referencing status (PRESETONS) must be set axis- specifically: MD30460 $MA_BASE_FUNCTION_MASK, bit 9 = 1 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 ... DO PRESETONS(, ) Meaning : Only WHEN and EVERY must be used as frequency (Page 17). PRESETONS: Actual value setting with loss of the referencing status : Machine axis name Type: AXIS Range of values: Machine axis names defined in the channel Detailed description 3.7 Actions in synchronized actions Synchronized actions 100 Function Manual, 08/2018, 6FC5397-5BP40-6BA2

Other Control Unit Manuals