Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17...

132
Manual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 Version: Date: Order No.:

Transcript of Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17...

Page 1: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Manual

TC3 Robotics mxAutomation

TwinCAT 3

1.42016-11-17TF5120

Version:Date:Order No.:

Page 2: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18
Page 3: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Table of Contents

Table of Contents1 Notes on the documentation .................................................................................................................... 6

2 Safety instructions .................................................................................................................................... 7

3 Introduction................................................................................................................................................ 83.1 Target group .....................................................................................................................................  83.2 Industrial robot documentation .........................................................................................................  83.3 Terms used.......................................................................................................................................  8

4 Product description................................................................................................................................... 94.1 Overview...........................................................................................................................................  9

4.1.1 Components.......................................................................................................................... 94.1.2 Communication ..................................................................................................................... 94.1.3 WorkVisual............................................................................................................................ 9

4.2 Intended use .....................................................................................................................................  94.2.1 Misuse................................................................................................................................... 9

5 Safety........................................................................................................................................................ 10

6 Installation................................................................................................................................................ 116.1 System requirements......................................................................................................................  11

6.1.1 Hardware ............................................................................................................................ 116.1.2 Software.............................................................................................................................. 11

7 Programming ........................................................................................................................................... 127.1 Overview of function blocks ............................................................................................................  127.2 Frequently used input/output signals in the function blocks ...........................................................  16

7.2.1 Input signals........................................................................................................................ 167.2.2 Output signals ..................................................................................................................... 167.2.3 Signal sequence for execution of ExecuteCmd ..................................................................  17

7.3 Frequently used input/output signals in the MC function blocks.....................................................  187.3.1 Input signals........................................................................................................................ 187.3.2 Output signals ..................................................................................................................... 187.3.3 Signal sequence for execution of Execute..........................................................................  19

7.4 Structures for motion programming (STRUCT) ..............................................................................  197.4.1 APO .................................................................................................................................... 207.4.2 PTP_APO (INT) .................................................................................................................. 207.4.3 CP_APO (INT) .................................................................................................................... 207.4.4 COORDSYS ....................................................................................................................... 217.4.5 E6AXIS ............................................................................................................................... 217.4.6 E6POS ................................................................................................................................ 217.4.7 FRAME ............................................................................................................................... 22

7.5 Integer variables .............................................................................................................................  227.5.1 BufferMode ......................................................................................................................... 227.5.2 QueueMode ........................................................................................................................ 237.5.3 CircType.............................................................................................................................. 237.5.4 OriType ............................................................................................................................... 237.5.5 Status.................................................................................................................................. 23

7.6 Data of a Cartesian workspace.......................................................................................................  247.6.1 Origin and orientation.......................................................................................................... 247.6.2 Dimensions ......................................................................................................................... 24

7.7 Data of an axis-specific workspace ................................................................................................  247.7.1 Robot axes.......................................................................................................................... 257.7.2 External axes ...................................................................................................................... 25

7.8 Programming tips for TC3 mxAutomation.......................................................................................  257.8.1 Instancing............................................................................................................................ 257.8.2 ExecuteCmd ....................................................................................................................... 26

TC3 Robotics mxAutomation 3Version: 1.4

Page 4: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Table of Contents

7.8.3 Program override ................................................................................................................ 267.8.4 Approximate positioning...................................................................................................... 26

7.9 Administrative functions..................................................................................................................  267.9.1 Reading PLC-specific communication into a non-PLC-specific structure ...........................  267.9.2 Writing a non-PLC-specific structure into PLC-specific communication .............................  277.9.3 Initializing the mxA interface ............................................................................................... 287.9.4 Setting the program override (POV) ................................................................................... 297.9.5 Activating and reading Automatic External signals from the robot controller......................  307.9.6 Reading the current robot position...................................................................................... 327.9.7 Reading the current axis position........................................................................................ 337.9.8 Reading the current path velocity ....................................................................................... 337.9.9 Reading the current axis velocity ........................................................................................ 347.9.10 Reading the current robot acceleration...............................................................................  357.9.11 Reading a digital input ........................................................................................................ 367.9.12 Reading digital inputs 1 to 8................................................................................................ 367.9.13 Reading multiple digital inputs ............................................................................................ 377.9.14 Reading a digital output ...................................................................................................... 387.9.15 Writing a digital output ........................................................................................................ 397.9.16 Writing digital outputs 1 to 8................................................................................................ 407.9.17 Reading an analog input ..................................................................................................... 407.9.18 Reading an analog output................................................................................................... 417.9.19 Writing an analog output ..................................................................................................... 417.9.20 Wait statement (read digital input) ...................................................................................... 437.9.21 Selecting the tool, base and interpolation mode .................................................................  437.9.22 Reading TOOL data............................................................................................................ 447.9.23 Writing TOOL data .............................................................................................................. 457.9.24 Reading BASE data ............................................................................................................ 457.9.25 Writing BASE data .............................................................................................................. 467.9.26 Reading the load data......................................................................................................... 477.9.27 Writing load data ................................................................................................................. 487.9.28 Reading the software limit switches of the robot axes ........................................................  497.9.29 Reading the software limit switches of the external axes ...................................................  507.9.30 Writing the software limit switches of the robot axes ..........................................................  507.9.31 Writing the software limit switches of the external axes......................................................  517.9.32 Declaring interrupts............................................................................................................. 527.9.33 Activating interrupts ............................................................................................................ 547.9.34 Deactivating interrupts ........................................................................................................ 557.9.35 Reading the state of an interrupt......................................................................................... 557.9.36 Activating a path-related switching action (TRIGGER WHEN DISTANCE)........................  577.9.37 Activating a path-related switching action (TRIGGER WHEN PATH) ................................  587.9.38 Canceling a program........................................................................................................... 607.9.39 Stopping the robot............................................................................................................... 617.9.40 Continuing a program ......................................................................................................... 617.9.41 Automatically starting function blocks and signals..............................................................  62

7.10 Functions for activating motions .....................................................................................................  647.10.1 Jogging to a relative end position ....................................................................................... 647.10.2 Jogging to a relative end position in the TOOL coordinate system.....................................  667.10.3 Jogging to an end position .................................................................................................. 68

7.11 Functions for activating motions (PLC OPEN-compliant) ...............................................................  707.11.1 Moving to a Cartesian position with a LIN motion...............................................................  707.11.2 Moving to a Cartesian position with a LIN_REL motion......................................................  717.11.3 Moving to a Cartesian position with a PTP motion .............................................................  737.11.4 Moving to a Cartesian position with a PTP_REL motion ....................................................  747.11.5 Moving to an axis-specific position with a PTP motion .......................................................  777.11.6 Moving to a Cartesian position with a CIRC motion............................................................  787.11.7 Moving to a Cartesian position with a CIRC_REL motion...................................................  80

7.12 Diagnostic functions........................................................................................................................  827.12.1 Reading the current state of the mxA interface...................................................................  827.12.2 Reading error messages of the mxA interface....................................................................  827.12.3 Resetting error messages of the mxA interface..................................................................  837.12.4 Reading error messages of the robot controller..................................................................  83

TC3 Robotics mxAutomation4 Version: 1.4

Page 5: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Table of Contents

7.12.5 Reading diagnostic signals ................................................................................................. 857.12.6 Reading and acknowledging error states............................................................................  87

7.13 Special functions.............................................................................................................................  897.13.1 Reading system variables................................................................................................... 897.13.2 Writing system variables ..................................................................................................... 907.13.3 Calling a brake test ............................................................................................................. 927.13.4 Calling a mastering test ...................................................................................................... 937.13.5 Reading the safety controller signals .................................................................................. 957.13.6 Reading the state of the TouchUp status keys ...................................................................  967.13.7 Teaching points................................................................................................................... 977.13.8 Modifying settings for the advance run ...............................................................................  977.13.9 Reading values from KRC_SetAdvance .............................................................................  987.13.10Calculating the Cartesian robot position from the axis angles ..........................................  1007.13.11Calculating axis angles from the Cartesian robot position ................................................  1007.13.12Initializing a conveyor........................................................................................................ 1027.13.13Activating a conveyor........................................................................................................ 1037.13.14Tracking a workpiece on the conveyor ............................................................................. 1037.13.15Picking up a workpiece from the conveyor .......................................................................  1057.13.16Activating interrupts for monitoring ................................................................................... 1067.13.17Deactivating interrupts for monitoring ............................................................................... 1087.13.18Activating a motion along a vector .................................................................................... 1087.13.19Deactivating KRC_VectorMoveOn.................................................................................... 1107.13.20Configuring Cartesian workspaces ................................................................................... 1117.13.21Reading the configuration of Cartesian workspaces.........................................................  1127.13.22Configuring axis-specific workspaces ............................................................................... 1127.13.23Reading the configuration of axis-specific workspaces ....................................................  1137.13.24Reading the status of the workspaces .............................................................................. 115

8 Messages ............................................................................................................................................... 1178.1 Error messages of the mxA interface in the robot interpreter .......................................................  1178.2 Error messages of the mxA interface in the submit interpreter.....................................................  1218.3 Errors in the function block ...........................................................................................................  1258.4 ProConOS errors ..........................................................................................................................  128

TC3 Robotics mxAutomation 5Version: 1.4

Page 6: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Notes on the documentation

1 Notes on the documentationThis description is only intended for the use of trained specialists in control and automation engineering whoare familiar with the applicable national standards.It is essential that the documentation and the following notes and explanations are followed when installingand commissioning the components. It is the duty of the technical personnel to use the documentation published at the respective time of eachinstallation and commissioning.

The responsible staff must ensure that the application or use of the products described satisfy all therequirements for safety, including all the relevant laws, regulations, guidelines and standards.

DisclaimerThe documentation has been prepared with care. The products described are, however, constantly underdevelopment.We reserve the right to revise and change the documentation at any time and without prior announcement.No claims for the modification of products that have already been supplied may be made on the basis of thedata, diagrams and descriptions in this documentation.

TrademarksBeckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE®, XFC® and XTS® are registeredtrademarks of and licensed by Beckhoff Automation GmbH.Other designations used in this publication may be trademarks whose use by third parties for their ownpurposes could violate the rights of the owners.

Patent PendingThe EtherCAT Technology is covered, including but not limited to the following patent applications andpatents:EP1590927, EP1789857, DE102004044764, DE102007017835with corresponding applications or registrations in various other countries.

The TwinCAT Technology is covered, including but not limited to the following patent applications andpatents:EP0851348, US6167425 with corresponding applications or registrations in various other countries.

EtherCAT® is registered trademark and patented technology, licensed by Beckhoff Automation GmbH,Germany

Copyright© Beckhoff Automation GmbH & Co. KG, Germany.The reproduction, distribution and utilization of this document as well as the communication of its contents toothers without express authorization are prohibited.Offenders will be held liable for the payment of damages. All rights reserved in the event of the grant of apatent, utility model or design.

TC3 Robotics mxAutomation6 Version: 1.4

Page 7: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Safety instructions

2 Safety instructionsSafety regulationsPlease note the following safety instructions and explanations!Product-specific safety instructions can be found on following pages or in the areas mounting, wiring,commissioning etc.

Exclusion of liabilityAll the components are supplied in particular hardware and software configurations appropriate for theapplication. Modifications to hardware or software configurations other than those described in thedocumentation are not permitted, and nullify the liability of Beckhoff Automation GmbH & Co. KG.

Personnel qualificationThis description is only intended for trained specialists in control, automation and drive engineering who arefamiliar with the applicable national standards.

Description of symbolsIn this documentation the following symbols are used with an accompanying safety instruction or note. Thesafety instructions must be read carefully and followed without fail!

DANGER

Serious risk of injury!Failure to follow the safety instructions associated with this symbol directly endangers thelife and health of persons.

WARNING

Risk of injury!Failure to follow the safety instructions associated with this symbol endangers the life andhealth of persons.

CAUTION

Personal injuries!Failure to follow the safety instructions associated with this symbol can lead to injuries topersons.

Attention

Damage to the environment or devicesFailure to follow the instructions associated with this symbol can lead to damage to the en-vironment or equipment.

Note

Tip or pointerThis symbol indicates information that contributes to better understanding.

Note on safety

DANGER

Familiarize yourself also when reading other documentations with the safety signs usedtherein and with the meaning of these safety signs.Carefully attend to safety signs and notes on safety also within other documentations.

TC3 Robotics mxAutomation 7Version: 1.4

Page 8: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Introduction

3 Introduction

3.1 Target groupThis documentation is aimed at users with the following knowledge and skills:

•   Knowledge of the robot controller system•   Advanced PLC programming skills•   Advanced knowledge of field bus interfaces

Note

For optimal use of KUKA robots, we recommend that our customers take part in a course oftraining at KUKA College. Information about the training program can be found atwww.kuka.com or can be obtained directly from our subsidiaries.

3.2 Industrial robot documentationTo be taken from KUKA documentation.

3.3 Terms usedTerm DescriptionAxis group Depending on the machine data configuration, an axis group contains the

following axes:•   Robot axes A1 to A6•   External axes E1 to E6 (synchronous or asynchronous)

FIFO Method used to process a data memory•   First In First Out: the elements saved first are taken first from the

memory.KR C KUKA Robot ControllerKRL KUKA robot programming language (KUKA Robot Language)KUKA smartHMI User interface of the KUKA robot controller (KUKA smart Human-

Machine Interface)KUKA smartPAD Hand-held operating and programming device for the KUKA industrial

robotmxA interface KUKA.PLC mxAutomation technology package on the robot controllerEtherCAT EtherCAT is an Ethernet-based field bus.Robot interpreter The robot interpreter is a process that works synchronously in which the

current robot program is executed.BCO run The robot is moved to the coordinates of the motion block in which the

block pointer is situated. In this way, the robot position is made to matchthe coordinates of the current point.

PLC Programmable Logic ControllerTwinCAT 3 Run-Time and development environment for Beckhoff controllersSubmit interpreter The Submit interpreter is a cyclical logic program that runs in parallel with

the motion program on the robot controller.WorkVisual Engineering environment for KR C4-controlled robot cells

TC3 Robotics mxAutomation8 Version: 1.4

Page 9: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Product description

4 Product description

4.1 OverviewDie TwinCAT library contains function blocks for programming automation tasks with TwinCAT 3.

4.1.1 ComponentsThe following software components are included in the TwinCAT library:

•   Function blocks for TwinCAT 3

4.1.2 CommunicationFor data exchange between the PLC and the robot controller the terminal EL6695-1001 by KUKA can beused.

4.1.3 WorkVisualThe following software is required for configuring the field buses and mapping the field bus signals:

•   WorkVisual 4.0

4.2 Intended useThe online part of KUKA.PLC mxAutomation may only be used on a KR C4 robot controller with the followingsoftware:

•   KUKA System Software 8.3•   KUKA.PLC ProConOS 4.1•   KUKA.EtherCAT bridge•   KUKA.ConveyorTech 6.0•   KUKA.VectorMove 1.0

The offline part of KUKA.PLC mxAutomation is intended for use with TwinCAT 3.1.4020.14 or higher.

Any other or additional use is considered misuse and is not allowed. The manufacturer cannot be held liablefor any resulting damage. The risk lies entirely with the user.

Operation in accordance with the intended use also requires compliance with the start-up and configurationinstructions in this documentation.

4.2.1 MisuseAny use or application deviating from the intended use is deemed to be misuse and is not allowed. Thisincludes e.g.:

•   Incorrect configuration (not in compliance with this documentation). This might result in the robotexecuting different actions from those planned by the PLC programmer.

•   Use in a programming environment other than TwinCAT 3.1.4020.14 or higher.

TC3 Robotics mxAutomation 9Version: 1.4

Page 10: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Safety

5 SafetyThis documentation contains safety instructions which refer specifically to the software described here.

DANGER

Familiarize yourself also when reading other documentations with the safety signs usedtherein and with the meaning of these safety signs.Carefully attend to safety signs and notes on safety also within other documentations.

The fundamental safety information for the industrial robot can be found in the “Safety” chapter of theOperating and Programming Instructions for System Integrators or the Operating and ProgrammingInstructions for End Users.

DANGER

The “Safety” chapter in the operating and programming instructions of the KUKA SystemSoftware (KSS) must be observed. Death to persons, severe injuries or considerable dam-age to property may otherwise result.

TC3 Robotics mxAutomation10 Version: 1.4

Page 11: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Installation

6 Installation

6.1 System requirements

6.1.1 HardwareRobot controller:

•   KR C4•   Or KR C4 compact

External PLC:

•   Beckhoff TwinCAT 3 controller

6.1.2 SoftwareRobot controller:

•   KUKA System Software 8.3

The following KRL resources must be free:

KRL resource NumberI/Os 2 049 … 4 080

•   KUKA.PLC ProConOS 4-1 4.1

Option with ConveyorTech:

•   KUKA.ConveyorTech 6.0

Option with VectorMove:

•   KUKA.VectorMove 1.0

Standard laptop/PC:

•   WorkVisual 4.0

Industrial PC/Embedded-PC

•   TwinCAT 3.1.4020.14 or higher

TC3 Robotics mxAutomation 11Version: 1.4

Page 12: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7 Programming

7.1 Overview of function blocksAdministrative functionsKRC_ReadAxisGroup  >>> "Reading PLC-specific

communication into a non-PLC-specificstructure". [} 26]

KRC_WriteAxisGroup  >>> "Writing a non-PLC-specific structureinto PLC-specific communication". [} 27]

KRC_Initialize  >>> "Initializing the mxA interface".[} 28]

KRC_SetOverride  >>> "Setting the program override(POV)". [} 29]

KRC_AutomaticExternal  >>> "Activating and reading AutomaticExternal signals from the robot controller".[} 30]

KRC_ReadActualPosition  >>> "Reading the current robot position".[} 32]

KRC_ReadActualAxisPosition  >>> "Reading the current axis position".[} 33]

KRC_ReadActualVelocity  >>> "Reading the current path velocity".[} 33]

KRC_ReadActualAxisVelocity  >>> "Reading the current axis velocity".[} 34]

KRC_ReadActualAcceleration  >>> "Reading the current robotacceleration". [} 35]

KRC_ReadDigitalInput  >>> "Reading a digital input". [} 36]KRC_ReadDigitalInput1To8  >>> "Reading digital inputs 1 to 8".

[} 36]KRC_ReadDigitalInputArray  >>> "Reading multiple digital inputs".

[} 37]KRC_ReadDigitalOutput  >>> "Reading a digital output". [} 38]KRC_WriteDigitalOutput  >>> "Writing a digital output". [} 39]KRC_WriteDigitalOutput1To8  >>> "Writing digital outputs 1 to 8".

[} 40]KRC_ReadAnalogInput  >>> "Reading an analog input". [} 40]KRC_ReadAnalogOutput  >>> "Reading an analog output". [} 41]KRC_WriteAnalogOutput  >>> "Writing an analog output". [} 41]KRC_SetCoordSys  >>> "Selecting the tool, base and

interpolation mode". [} 43]KRC_ReadToolData  >>> "Reading TOOL data". [} 44]KRC_WriteToolData  >>> "Writing TOOL data". [} 45]KRC_ReadBaseData  >>> "Reading BASE data". [} 45]KRC_WriteBaseData  >>> "Writing BASE data". [} 46]KRC_ReadLoadData  >>> "Reading the load data". [} 47]KRC_WriteLoadData  >>> "Writing load data". [} 48]

TC3 Robotics mxAutomation12 Version: 1.4

Page 13: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Administrative functionsKRC_ReadSoftEnd  >>> "Reading the software limit switches

of the robot axes". [} 49]KRC_ReadSoftEndExt  >>> "Reading the software limit switches

of the external axes". [} 50]KRC_WriteSoftEnd  >>> "Writing the software limit switches

of the robot axes". [} 50]KRC_WriteSoftEndExt  >>> "Writing the software limit switches

of the external axes". [} 51]KRC_AutoStart  >>> "Automatically starting function

blocks and signals". [} 62]

Motion programmingKRC_JogLinearRelative  >>> "Jogging to a relative end position".

[} 64]KRC_JogToolRelative  >>> "Jogging to a relative end position in

the TOOL coordinate system". [} 66]KRC_Jog  >>> "Jogging to an end position". [} 68]

Motion programming (PLC OPEN-compliant)MC_MoveLinearAbsolute  >>> "Moving to a Cartesian position with

a LIN motion". [} 70]MC_MoveLinearRelative  >>> "Moving to a Cartesian position with

a LIN_REL motion". [} 71]MC_MoveDirectAbsolute  >>> "Moving to a Cartesian position with

a PTP motion". [} 73]MC_MoveDirectRelative  >>> "Moving to a Cartesian position with

a PTP_REL motion". [} 74]MC_MoveAxisAbsolute  >>> "Moving to an axis-specific position

with a PTP motion". [} 77]MC_MoveCircularAbsolute  >>> "Moving to a Cartesian position with

a CIRC motion". [} 78]MC_MoveCircularRelative  >>> "Moving to a Cartesian position with

a CIRC_REL motion". [} 80]

Program execution controlKRC_Abort  >>> "Canceling a program". [} 60]KRC_Interrupt  >>> "Stopping the robot". [} 61]KRC_Continue  >>> "Continuing a program". [} 61]KRC_WaitForInput  >>> "Wait statement (read digital input)".

[} 43]

Interrupt programmingKRC_DeclareInterrupt  >>> "Declaring interrupts". [} 52]

TC3 Robotics mxAutomation 13Version: 1.4

Page 14: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Interrupt programmingKRC_ActivateInterrupt  >>> "Activating interrupts". [} 54]KRC_DeactivateInterrupt  >>> "Deactivating interrupts". [} 55]KRC_ReadInterruptState  >>> "Reading the state of an interrupt".

[} 55]

Path-related switching actions (=Trigger)KRC_SetDistanceTrigger  >>> "Activating a path-related switching

action (TRIGGER WHEN DISTANCE)".[} 57]

KRC_SetPathTrigger  >>> "Activating a path-related switchingaction (TRIGGER WHEN PATH)". [} 58]

Diagnostic functionsKRC_ReadMXAStatus  >>> "Reading the current state of the

mxA interface". [} 82]KRC_ReadMXAError  >>> "Reading error messages of the mxA

interface". [} 82]KRC_ReadKRCError  >>> "Reading error messages of the

robot controller". [} 83]KRC_MessageReset  >>> "Resetting error messages of the

mxA interface". [} 83]KRC_Diag  >>> "Reading diagnostic signals". [} 85]KRC_Error  >>> "Reading and acknowledging error

states". [} 87]

Special functions (general)KRC_ReadSysVar  >>> "Reading system variables". [} 89]KRC_WriteSysVar  >>> "Writing system variables". [} 90]KRC_BrakeTest  >>> "Calling a brake test". [} 92]KRC_MasRef  >>> "Calling a mastering test". [} 93]KRC_ReadSafeOPStatus  >>> "Reading the safety controller

signals". [} 95]KRC_ReadTouchUPState  >>> "Reading the state of the TouchUp

status keys". [} 96]KRC_TouchUP  >>> "Teaching points". [} 97]KRC_SetAdvance  >>> "Modifying settings for the advance

run". [} 97]KRC_GetAdvance  >>> "Reading values from

KRC_SetAdvance". [} 98]KRC_Forward  >>> "Calculating the Cartesian robot

position from the axis angles". [} 100]KRC_Inverse  >>> "Calculating axis angles from the

Cartesian robot position". [} 100]

TC3 Robotics mxAutomation14 Version: 1.4

Page 15: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Special functions (conveyor)KRC_ConvIniOff  >>> "Initializing a conveyor". [} 102]KRC_ConvOn  >>> "Activating a conveyor". [} 103]KRC_ConvFollow  >>> "Tracking a workpiece on the

conveyor". [} 103]KRC_ConvSkip  >>> "Picking up a workpiece from the

conveyor". [} 105]KRC_ActivateConvInterrupt  >>> "Activating interrupts for

monitoring". [} 106]KRC_DeactivateConvInterrupt  >>> "Deactivating interrupts for

monitoring". [} 108]

Note

In order to be able to use these function blocks, the KUKA.ConveyorTech technology pack-age must be installed on the robot controller.

Special functions (VectorMove)KRC_VectorMoveOn  >>> "Activating a motion along a vector".

[} 108]KRC_VectorMoveOff  >>> "Deactivating KRC_VectorMoveOn".

[} 110]

Note

In order to be able to use these function blocks, the KUKA.VectorMove technology packagemust be installed on the robot controller.

Special functions (workspaces)KRC_WriteWorkspace  >>> "Configuring Cartesian workspaces".

[} 111]KRC_ReadWorkspace  >>> "Reading the configuration of

Cartesian workspaces". [} 112]KRC_WriteAxWorkspace  >>> "Configuring axis-specific

workspaces". [} 112]KRC_ReadAxWorkspace  >>> "Reading the configuration of axis-

specific workspaces". [} 113]KRC_ReadWorkstates  >>> "Reading the status of the

workspaces". [} 115]

TC3 Robotics mxAutomation 15Version: 1.4

Page 16: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.2 Frequently used input/output signals in the functionblocks

7.2.1 Input signals

AxisGroupIdxThis signal input is used to set the number of the axis group addressed by a function block.

5 axis groups (robot and external axes) can be controlled by the PLC.

ExecuteCmdIf this signal is set, mxAutomation transfers the associated function block to the robot. The function block isstored in a statement buffer by the robot, provided there is still sufficient space in the buffer. If theExecuteCmd input is reset, mxAutomation deletes the function block from the buffer again unless executionof the statement has already begun.

7.2.2 Output signals

BusyThis signal output indicates that the associated function block is currently being transferred to the robot’sstatement buffer or has already been transferred. It is reset when the ExecuteCmd input is reset.

ActiveThis signal output indicates that the associated function block is currently being executed on the robot. It isreset when the ExecuteCmd input is reset.

Approximate positioning is not possible with the active output because the next motion instruction is not sentuntil the previous motion has been executed. Approximate positioning is only possible if the Busy output ofthe previous function block is connected to the ExecuteCmd input of the following block.

DoneThis signal output indicates that the associated function block has been successfully executed by the robot.It is reset when the ExecuteCmd input is reset.

ErrorThis signal output indicates that an error has occurred during execution of the associated function block onthe robot. In this case, the signal output ErrorID contains an error number. It is reset when the ExecuteCmdinput is reset.

ErrorIDThis signal output contains an error number.

The errors and error causes corresponding to the error number are described here: >>> "Messages". [} 117]

AbortedThis signal output is set either when the function block KRC_Abort is executed or when a statement isexecuted in the ABORTING mode. It is reset when the ExecuteCmd input is reset.

TC3 Robotics mxAutomation16 Version: 1.4

Page 17: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.2.3 Signal sequence for execution of ExecuteCmd

ExampleThe signal diagram applies in the following case:

•   A statement has been transferred by means of ExecuteCmd and successfully executed.

Signal diagram – ExecuteCmd successful

Item Description1 The function block is transferred to the robot (= request to execute

the statement).2 The statement is transferred.3 The statement is currently being executed.4 The statement was completed successfully. Neither has an error

occurred, nor has the statement been aborted, e.g. by KRC_Abort.The Error signal would be set instead of the Done signal in thecase of an error, and the Aborted signal would be set instead of theDone signal if the statement is aborted.

5 If the ExecuteCmd input is reset, the outputs too are reset.

Variations•   ExecuteCmd is reset before Done is set. The statement will be executed in this case but the Done

signal will not be set. This means there is no confirmation that the statement has been executed.•   ExecuteCmd is reset before Error or Aborted is set. The statement will be aborted in this case but

neither the Error nor the Aborted signal will be set. This means there is no confirmation that thestatement has been aborted.

•   ExecuteCmd is reset before Active is set. In this case the function block will be deleted from therobot’s statement buffer.

•   ExecuteCmd is reset before Busy is set. The funcion block will not be transferred to the robot in thiscase and the statement will therefore not be executed.

TC3 Robotics mxAutomation 17Version: 1.4

Page 18: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.3 Frequently used input/output signals in the MCfunction blocks

The MC function blocks differ from the KRC function blocks in that they correspond to the PLC OPENstandard or are closer to it. The behavior of the Busy signal output in particular is different for the MCfunction blocks. Here, the ComDone signal output must be used for linking function blocks.

7.3.1 Input signals

AxisGroupIdxThis signal input is used to set the number of the robot addressed by a function block.

ExecuteIf this signal is set, mxAutomation transfers the associated function block to the robot. The function block isstored in a statement buffer by the robot, provided there is still sufficient space in the buffer. If the Executeinput is reset, mxAutomation deletes the function block from the buffer again unless execution of thestatement has already begun.

7.3.2 Output signals

ComBusyThis signal output indicates that the associated function block has been sent from the PLC to the robot’sstatement buffer and has been correctly transferred.

ComDoneThis signal output indicates that the associated function block has been sent from the PLC to the robot’sstatement buffer and has been correctly transferred. This signal output is identical to the Done signal outputof the KRC function blocks. We recommend using this signal output for the approximation of motions.

BusyThis signal output indicates that execution of the associated function block has begun. However, it ispossible that the function block has not yet been transferred to the robot’s statement buffer. In this respect,this signal output differs from the Busy signal output of the KRC function blocks.

ActiveThis signal output indicates that the associated function block is currently being executed on the robot. It isreset when the Execute input is reset.

Approximation is not possible with the Active output because the next motion instruction is not sent until theprevious one is executed. Approximation is only possible if the ComDone output of the previous functionblock is connected to the Execute input of the subsequent block.

ErrorThis signal output indicates that an error has occurred during execution of the associated function block onthe robot. In this case, the signal output ErrorID contains an error number. It is reset when the Execute inputis reset.

ErrorIDThis signal output contains an error number.

TC3 Robotics mxAutomation18 Version: 1.4

Page 19: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

The errors and error causes corresponding to the error number are described here: >>> "Messages". [} 117]

CommandAbortedThis signal output indicates that execution of a statement or motion has been aborted.

7.3.3 Signal sequence for execution of Execute

ExampleThe signal diagram applies in the following case:

•   A statement has been transferred by means of Execute and successfully executed.

Signal diagram – Execute successful

Item Description1 The function block is transferred to the robot (= request to execute

the statement).2 The statement has been transferred (= is located in the robot’s

statement buffer). The ComDone and ComBusy outputs are set.3 The statement is currently being executed.4 The statement was completed successfully. Neither has an error

occurred, nor has the statement been aborted, e.g. by KRC_Abort.The Error signal would be set instead of the Done signal in thecase of an error, and the Aborted signal would be set instead of theDone signal if the statement is aborted.

5 If the Execute input is reset, the outputs too are reset.

7.4 Structures for motion programming (STRUCT)The data structures used for motion programming are described below.

TC3 Robotics mxAutomation 19Version: 1.4

Page 20: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.4.1 APOApproximation parameters for a KRC_Move motion command

Element Type DescriptionPTP_MODE PTP_APO (INT)  >>> "PTP_APO (INT)". [} 20]CP_MODE CP_APO (INT)  >>> "CP_APO (INT)". [} 20]CPTP INT Approximation distance for PTP motions (= furthest distance

before the end point at which approximate positioning canbegin)

•   1 … 100 %Maximum distance 100 %: half the distance between thestart point and the end point relative to the contour of thePTP motion without approximate positioning

CDIS REAL Distance parameter (unit: mm)Approximation starts, at the earliest, when the distance tothe end point falls below the value specified here.

CORI REAL Orientation parameter (unit: °)Approximation starts, at the earliest, when the dominantorientation angle (rotation or swiveling of the longitudinalaxis of the tool) falls below the angle distance to the endpoint specified here.

CVEL INT Velocity parameter•   1 … 100 %

The approximation parameter specifies the percentage ofthe programmed velocity at which the approximatepositioning process is started, at the earliest, in thedeceleration phase towards the end point.

7.4.2 PTP_APO (INT)Approximate positioning with PTP motions

Value Name Description0 – Without approximate positioning (default)1 C_PTP Causes the end point to be approximated.

The specification C_PTP is sufficient for PTP-PTP approximatepositioning. In the case of PTP-CP approximation, i.e. if theapproximated PTP block is followed by a LIN or CIRC block,another approximate positioning parameter must also bespecified.

2 C_PTP, C_DIS PTP-CP approximation with distance parameter3 C_PTP, C_ORI PTP-CP approximation with orientation parameter4 C_PTP, C_VEL PTP-CP approximation with velocity parameter

7.4.3 CP_APO (INT)Approximate positioning with CP motions (LIN, CIRC)

Value Name Description0 – Without approximate positioning (default)1 C_DIS Approximate positioning with distance parameter2 C_ORI Approximate positioning with orientation parameter3 C_VEL Approximate positioning with velocity parameter

TC3 Robotics mxAutomation20 Version: 1.4

Page 21: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.4.4 COORDSYSCoordinate system to which the Cartesian coordinates of the end position refer in a KRC_Move or KRC_Jogmotion command

Element Type DescriptionTool INT Number of the TOOL coordinate system

•   -1: coordinate system is not changed•   0: NULLFRAME•   1 … 16: TOOL_DATA[1 … 16]

Default: -1Base INT Number of the BASE coordinate system

•   -1: coordinate system is not changed•   0: NULLFRAME•   1 … 32: BASE_DATA[1 … 32]

Default: -1IPO_MODE INT Interpolation mode

•   0: The tool is a fixed tool (#BASE).•   1: The tool is mounted on the mounting flange (#TCP).

Default: 0

7.4.5 E6AXISAngular values or translation values of the axes in an axis group for a KRC_MoveAxis motion command

Element Type DescriptionA1 REAL Position of robot axis A1 (unit: mm or °)A2 REAL Position of robot axis A2 (unit: mm or °)A3 REAL Position of robot axis A3 (unit: mm or °)A4 REAL Position of robot axis A4 (unit: mm or °)A5 REAL Position of robot axis A5 (unit: mm or °)A6 REAL Position of robot axis A6 (unit: mm or °)E1 REAL Position of external axis E1 (optional), (unit: mm or °)E2 REAL Position of external axis E2 (optional), (unit: mm or °)E3 REAL Position of external axis E3 (optional), (unit: mm or °)E4 REAL Position of external axis E4 (optional), (unit: mm or °)E5 REAL Position of external axis E5 (optional), (unit: mm or °)E6 REAL Position of external axis E6 (optional), (unit: mm or °)

7.4.6 E6POSCartesian coordinates of the end position for a KRC_Move or KRC_Jog motion command

Element Type DescriptionX REAL Offset in X direction (unit: mm)Y REAL Offset in Y direction (unit: mm)Z REAL Offset in Z direction (unit: mm)A REAL Rotation about Z axis

•   -180° … +180°

TC3 Robotics mxAutomation 21Version: 1.4

Page 22: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Element Type DescriptionB REAL Rotation about Y axis

•   -180° … +180°C REAL Rotation about X axis

•   -180° … +180°S INT Status The position (X, Y, Z) and

orientation (A, B, C) values of theTCP are not sufficient to define therobot position unambiguously, asdifferent axis positions are possiblefor the same TCP. Status and Turnserve to define an unambiguousposition that can be achieved withdifferent axis positions.Note: Further information aboutStatus and Turn is contained in the“Operating and ProgrammingInstructions for SystemIntegrators”.

T INT Turn

E1 REAL Position of external axis E1 (optional), (unit: mm or °)E2 REAL Position of external axis E2 (optional), (unit: mm or °)E3 REAL Position of external axis E3 (optional), (unit: mm or °)E4 REAL Position of external axis E4 (optional), (unit: mm or °)E5 REAL Position of external axis E5 (optional), (unit: mm or °)E6 REAL Position of external axis E6 (optional), (unit: mm or °)

7.4.7 FRAMESpace coordinates and orientation for the TOOL or BASE coordinate system

Element Type DescriptionX REAL Offset in X direction (unit: mm)Y REAL Offset in Y direction (unit: mm)Z REAL Offset in Z direction (unit: mm)A REAL Orientation of the Z axis

•   -180° … +180°B REAL Orientation of the Y axis

•   -180° … +180°C REAL Orientation of the X axis

•   -180° … +180°

7.5 Integer variablesSome of the integer variables used in the function blocks are described below.

7.5.1 BufferModeMode in which a statement is executed on the robot controller

TC3 Robotics mxAutomation22 Version: 1.4

Page 23: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Value Name Description0 DIRECT The statement is executed directly by the Submit interpreter

(Submit program).Note: This mode is not available for certain function blocks.

1 ABORTING The statement is executed immediately by the robotinterpreter (main program). First, all active motions andbuffered statements are aborted and the robot is braked to astandstill.

2 BUFFERED The statement is buffered. Buffered statements are executedby the robot interpreter (main program) according to the FIFOprinciple.

7.5.2 QueueModeMode in which a statement is executed on the robot controller

Value Name Description0 DIRECT The statement is executed directly by the submit interpreter

(Submit program).Note: This mode is not available for certain function blocks.

1 ABORTING The statement is executed immediately by the robotinterpreter (main program). First, all active motions andbuffered statements are aborted and the robot is braked to astandstill.

2 BUFFERED The statement is buffered. Buffered statements are executedby the robot interpreter (main program) according to the FIFOprinciple.

7.5.3 CircTypeOrientation control for circular motion

Value Name Description0 BASE Base-related orientation control during a circular motion1 PATH Path-related orientation control during a circular motion

7.5.4 OriTypeOrientation control for the TCP

Value Name Description0 VAR The orientation of the TCP changes continuously during the

motion.1 CONSTANT The orientation of the TCP remains constant during the

motion.2 JOINT The orientation of the TCP changes continuously during the

motion, but not uniformly. This is done by linear transformation(axis-specific motion) of the wrist axis angles.Note: This orientation type is not suitable if a specificorientation must be maintained exactly.

7.5.5 StatusCurrent state of the mxA interface (function block KRC_ReadMXAStatus)

TC3 Robotics mxAutomation 23Version: 1.4

Page 24: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Value Name Description0 Invalid No function blocks can be processed.

Frequent causes:•   Submit interpreter stopped or deselected•   I/O error due to incorrect bus configuration•   Robot controller not started.

1 Error An mxA error message is active.The error message must be reset with the function blockKRC_MessageReset.

2 ProgramStopped Robot interpreter is not active (main program has beenstopped or deselected).

3 StandBy Robot interpreter is active and waiting for statements, e.g.waiting for an input.

4 Executing Robot interpreter is active (main program is being executed).5 Aborting Robot stopped and all statements aborted.

7.6 Data of a Cartesian workspaceThe data of a Cartesian workspace which are used in certain function blocks are described below.

7.6.1 Origin and orientationThe origin and orientation of a Cartesian workspace are specified with the following elements. These arerelative to the WORLD coordinate system.

Element Data type Unit Minimum MaximumX REAL mm - -Y REAL mm - -Z REAL mm - -A REAL ° -180 180B REAL ° -180 180C REAL ° -180 180

7.6.2 DimensionsThe dimensions of a Cartesian workspace are specified with the following elements.

Element Data type UnitX1 REAL mmX2 REAL mmY1 REAL mmY2 REAL mmZ1 REAL mmZ2 REAL mm

7.7 Data of an axis-specific workspaceThe data of an axis-specific workspace which are used in certain function blocks are described below.

TC3 Robotics mxAutomation24 Version: 1.4

Page 25: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.7.1 Robot axesElement Data type Unit DescriptionA1_N REAL mm/° Lower limit for axis angleA2_N REAL mm/°A3_N REAL mm/°A4_N REAL mm/°A5_N REAL mm/°A6_N REAL mm/°A1_P REAL mm/° Upper limit for axis angleA2_P REAL mm/°A3_P REAL mm/°A4_P REAL mm/°A5_P REAL mm/°A6_P REAL mm/°

7.7.2 External axesElement Data type Unit DescriptionE1_N REAL mm/° Lower limit for axis angleE2_N REAL mm/°E3_N REAL mm/°E4_N REAL mm/°E5_N REAL mm/°E6_N REAL mm/°E1_P REAL mm/° Upper limit for axis angleE2_P REAL mm/°E3_P REAL mm/°E4_P REAL mm/°E5_P REAL mm/°E6_P REAL mm/°

7.8 Programming tips for TC3 mxAutomation

7.8.1 InstancingThe following function blocks may only be instanced once per robot. In the case of multiple instancing, thesignals of the most recently called function block are output.

•   KRC_ReadAxisGroup•   KRC_Intialize•   KRC_SetOverride•   KRC_AutomaticExternal•   KRC_AutoStart•   KRC_Diag•   KRC_WriteAxisGroup

All other function blocks used in the mxAutomation robot program can be created as a multi-instance call.The advantage of this is that not every function block requires a data block of its own.

TC3 Robotics mxAutomation 25Version: 1.4

Page 26: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.8.2 ExecuteCmd•   As far as possible, an ExecuteCmd input should only ever be simultaneously set for a function block

of the same robot.•   After an ExecuteCmd input has been activated, do not reset it again until the function block has

confirmed execution of the statement by means of the Done signal or indicated by means of the Erroror Aborted signal that the statement has not been executed. If the ExecuteCmd input is resetbeforehand, there is no confirmation that the statement has been executed.

•   By linking the Busy output of a function block to the ExecuteCmd input of the following block, it ispossible to transfer a sequence of consecutive functions to the statement buffer and to execute them.

•   ExecuteCmd should not be used as a start signal for a sequence of statements. This might result inthe transfer of the following statements taking up valuable time.

Execution of a statement sequence should be triggered with KRC_WaitForInput instead. Linking the Busyand ExecuteCmd signals ensures that execution of the planned steps can be started without delay as soonas the corresponding input signal is received.

7.8.3 Program override•   If the mxAutomation robot program is started by a RESET at the function block

KRC_AutomaticExternal, set the program override to a value greater than zero. Only then is the robotinterpreter executed in a loop.

•   While the mxAutomation robot program is being executed, the program override can be set to zerowithout problems.

7.8.4 Approximate positioningApproximate positioning means that the motion does not stop exactly at the programmed point. Approximatepositioning is an option that can be selected during motion programming.

•   Approximate positioning is not possible if the motion instruction is followed by an instruction thattriggers an advance run stop.

•   Approximate positioning is only possible if the motion statement is followed by a statement that istransferred in BUFFERED mode.

7.9 Administrative functions

7.9.1 Reading PLC-specific communication into a non-PLC-specificstructure

DescriptionThe function block KRC_ReadAxisGroup translates the TwinCAT-specific interface to the robot controller intothe non-PLC-specific structure of an axis group.

Note

The function block KRC_ReadAxisGroup must always be called at the start of the program.Access to the axis group structure is only permissible between KRC_ReadAxisGroup andKRC_WriteAxisGroup.

TC3 Robotics mxAutomation26 Version: 1.4

Page 27: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Note

The function block may only be instanced once per axis group. In the case of multiple in-stancing, the signals of the most recently called function block are output.

Function block KRC_ReadAxisGroup

InputsParameter Type DescriptionKRC4_Input POINTER TO

BYTEStructure map of the input range of therobot controller

AxisGroupIdx INT Index of axis group•   1 … 5

OutputsParameter Type DescriptionErrorID DINT Error numberError BOOL TRUE = error in function block

7.9.2 Writing a non-PLC-specific structure into PLC-specificcommunication

DescriptionThe function block KRC_WriteAxisGroup translates the non-PLC-specific structure of an axis group into theTwinCAT-specific interface to the robot controller.

Note

The function block KRC_WriteAxisGroup must always be called at the end of the program.Access to the axis group structure is only permissible between KRC_ReadAxisGroup andKRC_WriteAxisGroup.

Note

The function block may only be instanced once per axis group. In the case of multiple in-stancing, the signals of the most recently called function block are output.

Function block KRC_WriteAxisGroup

TC3 Robotics mxAutomation 27Version: 1.4

Page 28: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5KRC4_Output POINTER TO

BYTEStructure map of the output range of therobot controller

OutputsParameter Type DescriptionErrorID DINT Error numberError BOOL TRUE = error in function block

7.9.3 Initializing the mxA interface

DescriptionThe function block KRC_Initialize initializes the mxA interface on the robot controller. Statements cannot betransferred until the interface has been initialized.

During initialization, the versions of the PLC library and mxA interface are compared and checked forcompatibility. The 1st and 2nd digits of the version must match.

Note

The function block may only be instanced once per axis group. In the case of multiple in-stancing, the signals of the most recently called function block are output.

Function block KRC_Initialize

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

Outputs

TC3 Robotics mxAutomation28 Version: 1.4

Page 29: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionErrorID DINT Error numberKRC_Serial DINT Serial number of the robot controllerKRC_Major DINT Version identifier of the mxA interface (1st digit)KRC_Minor DINT Version identifier of the mxA interface (2nd digit)KRC_Revision DINT Version identifier of the mxA interface (3rd digit)PLC_Major DINT Version identifier of the PLC library (1st digit)PLC_Minor DINT Version identifier of the PLC library (2nd digit)PLC_Revision DINT Version identifier of the PLC library (3rd digit)Done BOOL TRUE = initialization successfully completedError BOOL TRUE = error in function block

7.9.4 Setting the program override (POV)

DescriptionThe function block KRC_SetOverride sets the program override.

Program override is the velocity of the robot during program execution. The program override is specified asa percentage of the programmed velocity. The override setting is transferred to the robot during every PLCcycle. If the override setting is changed, this change is detected by the robot and applied.

The override is only applied in Automatic External mode so that the override can be set via the smartPAD inthe test modes T1 and T2, e.g. for teaching.

Note

The function block may only be instanced once per axis group. In the case of multiple in-stancing, the signals of the most recently called function block are output.

Function block KRC_SetOverride

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Override INT Set the program override.

•   0 … 100 %

OutputsParameter Type DescriptionActualOverride INT Current override setting

•   0 … 100%ErrorID DINT Error numberValid BOOL TRUE = data are valid

TC3 Robotics mxAutomation 29Version: 1.4

Page 30: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionError BOOL TRUE = error in function block

7.9.5 Activating and reading Automatic External signals from therobot controller

DescriptionThe function block KRC_AutomaticExternal activates the Automatic External interface and reads theinterface signals.

Note

The function block may only be instanced once per axis group. In the case of multiple in-stancing, the signals of the most recently called function block are output.

Function block KRC_AutomaticExternal

Inputs

Parameter Type Signal name (KRL) DescriptionAxisGroupIdx INT — Index of axis group

•   1 … 5MOVE_ENABLE BOOL $MOVE_ENABLE TRUE = motion enable for the robot

Note: This system variable is monitored bythe robot controller in all operating modes.

CONF_MESS BOOL $CONF_MESS TRUE = acknowledgement of errormessages

DRIVES_ON BOOL $DRIVES_ON TRUE = activation of the robot drivesDRIVES_OFF BOOL $DRIVES_OFF TRUE = deactivation of the robot drivesEXT_START BOOL $EXT_START TRUE = start or continuation of robot

program execution

TC3 Robotics mxAutomation30 Version: 1.4

Page 31: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type Signal name (KRL) DescriptionRESET BOOL — Selects the mxAutomation robot program

in the case of a rising edge of the signaland starts it. First, all buffered statementsare aborted.

ENABLE_T1 BOOL — TRUE = enabling of T1 modeThe signal $MOVE_ENABLE issuppressed in the absence of enabling.The robot cannot be moved.

ENABLE_T2 BOOL — TRUE = enabling of T2 modeThe signal $MOVE_ENABLE issuppressed in the absence of enabling.The robot cannot be moved.

ENABLE_AUT BOOL — TRUE = enabling of Automatic modeThe signal $MOVE_ENABLE issuppressed in the absence of enabling.The robot cannot be moved.

ENABLE_EXT BOOL — TRUE = enabling of Automatic ExternalmodeThe signal $MOVE_ENABLE issuppressed in the absence of enabling.The robot cannot be moved.

Outputs

Parameter Type Signal name (KRL) DescriptionValid BOOL — TRUE = data are validRC_RDY1 BOOL $RC_RDY1 TRUE = robot controller ready for program

startALARM_STOP BOOL $ALARM_STOP FALSE = robot stop by EMERGENCY

STOPUSER_SAFE BOOL $USER_SAF FALSE = operator safety violatedPERI_RDY BOOL $PERI_RDY TRUE = robot drives activatedROB_CAL BOOL $ROB_CAL TRUE = robot axes masteredIO_ACTCONF BOOL $IO_ACTCONF TRUE = Automatic External interface

activeSTOPMESS BOOL $STOPMESS TRUE = safety circuit interrupted (robot

fault)INT_E_STOP BOOL Int. E-Stop TRUE = external EMERGENCY STOP

FALSE = EMERGENCY STOP devicepressed on the smartPAD

PRO_ACT BOOL $PRO_ACT TRUE = process active at robot levelAPPL_RUN BOOL APPL_RUN TRUE = robot program runningPRO_MOVE BOOL $PRO_MOVE TRUE = synchronous robot motion activeON_PATH BOOL $ON_PATH TRUE = robot on programmed pathNEAR_POSRET BOOL $NEAR_POSRET TRUE = robot near most recently saved

position on the programmed path (afterleaving path)

ROB_STOPPED BOOL $ROB_STOPPED TRUE = robot is at standstillT1 BOOL $T1 TRUE = operating mode T1 selectedT2 BOOL $T2 TRUE = operating mode T2 selectedAUT BOOL $AUT TRUE = operating mode Automatic

selected

TC3 Robotics mxAutomation 31Version: 1.4

Page 32: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type Signal name (KRL) DescriptionEXT BOOL $EXT TRUE = operating mode Automatic

External selected

7.9.6 Reading the current robot position

DescriptionThe function block KRC_ReadActualPosition reads the current Cartesian actual position of the robot$POS_ACT. This is updated cyclically.

Function block KRC_ReadActualPosition

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

OutputsParameter Type DescriptionValid BOOL TRUE = data are validPosition E6POS Current Cartesian actual position $POS_ACT

The data structure E6POS contains allcomponents of the Cartesian actual position (=position of the TCP relative to the origin of theBASE coordinate system).

X, Y, Z REAL Current actual position in the X, Y, Z directionsA, B, C REAL Orientation A, B, C in the current actual positionStatus INT Status of the current actual positionTurn INT Turn of the current actual positionTool INT Number of the currently used TOOL coordinate

system $ACT_TOOLBase INT Number of the currently used BASE coordinate

system $ACT_BASEIPOMode INT Current interpolation mode in the main run

$IPO_MODE_C

TC3 Robotics mxAutomation32 Version: 1.4

Page 33: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.9.7 Reading the current axis position

DescriptionThe function block KRC_ReadActualAxisPosition reads the current axis-specific robot position $AXIS_ACT.This is updated cyclically.

Function block KRC_ReadActualAxisPosition

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

OutputsParameter Type DescriptionValid BOOL TRUE = data are validAxisPosition E6AXIS Current axis-specific robot position $AXIS_ACT

The data structure E6AXIS contains all the axispositions of the axis group.

A1 … A6 REAL Current position of robot axes A1 to A6E1 … E6 REAL Current position of external axes E1 to E6

7.9.8 Reading the current path velocity

DescriptionThe function block KRC_ReadActualVelocity reads the current actual velocity at the TCP of the robot$VEL_ACT.

Note

The current path velocity can only be read for CP motions in program mode.

TC3 Robotics mxAutomation 33Version: 1.4

Page 34: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_ReadActualVelocity

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

OutputsParameter Type DescriptionValid BOOL TRUE = data are validValue REAL Current path velocity $VEL_ACT (unit: m/s)

7.9.9 Reading the current axis velocity

DescriptionThe function block KRC_ReadActualAxisVelocity reads the current axis-specific velocity of the robot$VEL_AXIS_ACT.

Function block KRC_ReadActualAxisVelocity

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.

OutputsParameter Type DescriptionErrorID DINT Error number

TC3 Robotics mxAutomation34 Version: 1.4

Page 35: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionA1 … A6 INT Current motor speed (-100% … +100%) of

A1 … A6 in the main run, relative to themaximum motor speed ($VEL_AXIS_MA)Note: The actual resulting speed of the robotaxis is dependent on the gear ratio.

E1 … E6 INT Current motor speed (-100% … +100%) ofE1 … E6 in the main run, relative to themaximum motor speed ($VEL_AXIS_MA)Note: The actual resulting speed of the externalaxis is dependent on the gear ratio.

Done BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

7.9.10 Reading the current robot acceleration

DescriptionThe function block KRC_ReadActualAcceleration reads the current Cartesian acceleration at the TCP of therobot $ACC_CAR_ACT.

Note

The current Cartesian acceleration about angles A, B, C is not evaluated.

Function block KRC_ReadActualAcceleration

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.

OutputsParameter Type DescriptionErrorID DINT Error numberACC_ABS REAL Current Cartesian acceleration relative to the

absolute value of the overall acceleration lX + Y+Zl (unit: m/s2)

TC3 Robotics mxAutomation 35Version: 1.4

Page 36: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionX, Y, Z REAL Current Cartesian acceleration in the X, Y, Z

direction (unit: m/s2)A, B, C REAL Current Cartesian acceleration about angles A,

B, C0 m/s2 (not calculated)

Done BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

7.9.11 Reading a digital input

DescriptionThe function block KRC_ReadDigitalInput polls and reads a digital input of the robot controller. This functionis executed in the Submit interpreter.

Function block KRC_ReadDigitalInput

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.Number INT Number of the digital input

•   1 … 2 048

OutputsParameter Type DescriptionErrorID DINT Error numberDone BOOL TRUE = statement has been executedValue BOOL Value of the digital inputError BOOL TRUE = error in function block

7.9.12 Reading digital inputs 1 to 8

DescriptionThe function block KRC_ReadDigitalInput1To8 polls and reads the digital inputs 1 to 8 of the robot controller.This function is executed in the Submit interpreter. The input values can be read continuously withouttriggering a blockade.

TC3 Robotics mxAutomation36 Version: 1.4

Page 37: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_ReadDigitalInput1To8

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

OutputsParameter Type DescriptionValid BOOL TRUE = data are validIN1 … IN8 BOOL Actual value of the digital input $IN[1] … $IN[8]Error BOOL TRUE = error in function blockErrorID DINT Error number

7.9.13 Reading multiple digital inputs

DescriptionThe function block KRC_ReadDigitalInputArray polls and reads multiple digital inputs of the robot controller.This function is executed in the Submit interpreter.

Function block KRC_ReadDigitalInputArray

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.Startnumber INT Number of the first digital output that is polled

•   1 … 2 048

TC3 Robotics mxAutomation 37Version: 1.4

Page 38: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionLength INT Number of inputs that are polled

•   1 … 2 00Note: If the number of inputs to be readexceeds the 1 … 2048 range, no error messageis generated. Inputs outside of this range are notread.

OutputsParameter Type DescriptionDone BOOL TRUE = statement has been executedValues BOOL[200] Values of the digital inputsError BOOL TRUE = error in function blockErrorID DINT Error number

7.9.14 Reading a digital output

DescriptionThe function block KRC_ReadDigitalOutput polls and reads a digital output of the robot controller. Thisfunction is executed in the Submit interpreter.

Function block KRC_ReadDigitalOutput

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.Number INT Number of the digital output

•   1 … 2 048

OutputsParameter Type DescriptionErrorID DINT Error numberDone BOOL TRUE = statement has been executedValue BOOL Value of the digital outputError BOOL TRUE = error in function block

TC3 Robotics mxAutomation38 Version: 1.4

Page 39: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.9.15 Writing a digital output

DescriptionThe function block KRC_WriteDigitalOutput writes a digital output or a pulse output on the robot controller.This function is executed in the Submit interpreter.

Function block KRC_WriteDigitalOutput

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of the

signal.Number INT Number of the digital output

•   1 … 2 048Note: It must be ensured that no outputs are used that arealready assigned by the system. Example: $OUT[1025] isalways TRUE.

Value BOOL Value of the digital outputPulse REAL Length of the pulse

•   0.0 sNo pulse active

•   0.1 … 3.0 sPulse interval = 0.1 s; pulse durations outside this range ofvalues trigger a program stop.

_Continue BOOL TRUE = output written in advance runBufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

TC3 Robotics mxAutomation 39Version: 1.4

Page 40: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.9.16 Writing digital outputs 1 to 8

DescriptionThe function block KRC_WriteDigitalOutput1To8 writes the digital outputs 1 to 8 on the robot controller. Thisfunction is executed in the Submit interpreter. The output values can be written continuously withouttriggering a blockade.

Function block KRC_WriteDigitalOutput1To8

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5OUT1 … OUT8 BOOL Setpoint value of the output

$OUT[1] … $OUT[8]

OutputsParameter Type DescriptionErrorID DINT Error numberError BOOL TRUE = error in function block

7.9.17 Reading an analog input

DescriptionThe function block KRC_ReadAnalogInput polls and reads an analog input of the robot controller. Thisfunction is executed in the Submit interpreter.

Function block KRC_ReadAnalogInput

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.

TC3 Robotics mxAutomation40 Version: 1.4

Page 41: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionNumber INT Number of the analog input

•   1 … 32

OutputsParameter Type DescriptionErrorID DINT Error numberDone BOOL TRUE = statement has been executedValue REAL Value of the analog inputError BOOL TRUE = error in function block

7.9.18 Reading an analog output

DescriptionThe function block KRC_ReadAnalogOutput polls and reads an analog output of the robot controller. Thisfunction is executed in the Submit interpreter.

Function block KRC_ReadAnalogOutput

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.Number INT Number of the analog output

•   1 … 32

OutputsParameter Type DescriptionValue REAL Value of the analog outputErrorID DINT Error numberDone BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

7.9.19 Writing an analog output

DescriptionThe function block KRC_WriteAnalogOutput polls and writes an analog output of the robot controller. Thisfunction is executed in the Submit interpreter.

TC3 Robotics mxAutomation 41Version: 1.4

Page 42: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_WriteAnalogOutput

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of the

signal.Number INT Number of the analog output

•   1 … 32Value REAL Value of the analog output_Continue BOOL TRUE = output written in advance runBufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

TC3 Robotics mxAutomation42 Version: 1.4

Page 43: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.9.20 Wait statement (read digital input)

DescriptionThe function block KRC_WaitForInput stops the program until a digital input takes the defined value.Program execution is then resumed.

Function block KRC_WaitForInput

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of the

signal.Number INT Number of the digital input

•   1 … 2 048Value BOOL Setpoint value of the digital inputiContinue BOOL TRUE = poll input in advance runBufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredActive BOOL TRUE = statement is currently being executed

(robot is waiting for an input)Done BOOL TRUE = statement has been executedAborted BOOL TRUE = statement has been abortedError BOOL TRUE = error in function block

7.9.21 Selecting the tool, base and interpolation mode

DescriptionThe function block KRC_SetCoordSys can be used to set the tool, base and interpolation mode withouthaving to execute a motion at the same time. This function is required, for example, to read the currentposition in different coordinate systems.

TC3 Robotics mxAutomation 43Version: 1.4

Page 44: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_SetCoordSys

Inputs

Parameter Type DescriptionCoordinateSystem COORDSYS  >>> "COORDSYS". [} 21]AxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of

the signal.BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.9.22 Reading TOOL data

DescriptionThe function block KRC_ReadToolData reads the TOOL data of the robot.

Function block KRC_ReadToolData

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.ToolNo INT Number of the TOOL coordinate system

•   1 … 16: TOOL_DATA[1 … 16]

TC3 Robotics mxAutomation44 Version: 1.4

Page 45: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

OutputsParameter Type DescriptionToolData FRAME  >>> "FRAME". [} 22]ErrorID DINT Error numberDone BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

7.9.23 Writing TOOL data

DescriptionThe function block KRC_WriteToolData writes the TOOL data of the robot.

Function block KRC_WriteToolData

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of the

signal.ToolData FRAME  >>> "FRAME". [} 22]ToolNo INT Number of the TOOL coordinate system

•   1 … 16: TOOL_DATA[1 … 16]BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.9.24 Reading BASE data

DescriptionThe function block KRC_ReadBaseData reads the BASE data of the robot.

TC3 Robotics mxAutomation 45Version: 1.4

Page 46: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_ReadBaseData

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.BaseNo INT Number of the BASE coordinate system

•   1 … 32: BASE_DATA[1 … 32]

OutputsParameter Type DescriptionBaseData FRAME  >>> "FRAME". [} 22]ErrorID DINT Error numberDone BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

7.9.25 Writing BASE data

DescriptionThe function block KRC_WriteBaseData writes the BASE data of the robot.

Function block KRC_WriteBaseData

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of the

signal.BaseData FRAME  >>> "FRAME". [} 22]BaseNo INT Number of the BASE coordinate system

•   1 … 32: BASE_DATA[1 … 32]BufferMode INT  >>> "BufferMode". [} 22]

TC3 Robotics mxAutomation46 Version: 1.4

Page 47: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.9.26 Reading the load data

DescriptionThe function block KRC_ReadLoadData reads the load data of the robot (payload data or supplementaryload data). This function is executed in the Submit interpreter.

Function block KRC_ReadLoadData

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.Tool INT Number of the TOOL coordinate system for

reading the payload data or number for readingthe supplementary load data

•   1 … 16: TOOL_DATA[1 … 16]•   -1: Supplementary load A1•   -2: Supplementary load A2•   -3: Supplementary load A3

OutputsParameter Type DescriptionM REAL MassX, Y, Z REAL Position of the center of gravity relative to the

flange

TC3 Robotics mxAutomation 47Version: 1.4

Page 48: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionA, B, C REAL Orientation of the principal inertia axes relative

to the flangeJX, JY, JZ REAL Mass moments of inertiaErrorID DINT Error numberDone BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

7.9.27 Writing load data

DescriptionThe function block KRC_WriteLoadData writes the load data of the robot (payload data or supplementaryload data).

Function block KRC_WriteLoadData

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of the

signal.Tool INT Number of the TOOL coordinate system for writing the payload

data or number for writing the supplementary load data•   1 … 16: TOOL_DATA[1 … 16]•   -1: Supplementary load A1•   -2: Supplementary load A2•   -3: Supplementary load A3

M REAL MassX, Y, Z REAL Position of the center of gravity relative to the flangeA, B, C REAL Orientation of the principal inertia axes relative to the flangeJX, JY, JZ REAL Mass moments of inertiaBufferMode INT  >>> "BufferMode". [} 22]

TC3 Robotics mxAutomation48 Version: 1.4

Page 49: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.9.28 Reading the software limit switches of the robot axes

DescriptionThe function block KRC_ReadSoftEnd reads the software limit switches of the robot axes. This function isexecuted in the Submit interpreter.

Function block KRC_ReadSoftEnd

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.

Outputs

Parameter Type DescriptionA1_Min … A6_Min REAL Negative software limit switch of axis A1 … A6A1_Max … A6_Max REAL Positive software limit switch of axis A1 … A6ErrorID DINT Error numberDone BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

TC3 Robotics mxAutomation 49Version: 1.4

Page 50: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.9.29 Reading the software limit switches of the external axes

DescriptionThe function block KRC_ReadSoftEndExt reads the software limit switches of the external axes. Thisfunction is executed in the Submit interpreter.

Function block KRC_ReadSoftEndExt

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.

Outputs

Parameter Type DescriptionE1_Min … E6_Min REAL Negative software limit switch of axis E1 … E6E1_Max … E6_Max REAL Positive software limit switch of axis E1 … E6ErrorID DINT Error numberDone BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

7.9.30 Writing the software limit switches of the robot axes

DescriptionThe function block KRC_WriteSoftEnd writes the software limit switches of the robot axes.

TC3 Robotics mxAutomation50 Version: 1.4

Page 51: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_WriteSoftEnd

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of the

signal.A1_Min … A6_Min REAL Negative software limit switch of axis A1 … A6

(Unit: mm or °)A1_Max … A6_Max REAL Positive software limit switch of axis A1 … A6

(Unit: mm or °)BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.9.31 Writing the software limit switches of the external axes

DescriptionThe function block KRC_WriteSoftEndExt writes the software limit switches of the external axes.

TC3 Robotics mxAutomation 51Version: 1.4

Page 52: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_WriteSoftEndExt

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of the

signal.E1_Min … E6_Min REAL Negative software limit switch of axis E1 … E6

(Unit: mm or °)E1_Max … E6_Max REAL Positive software limit switch of axis E1 … E6

(Unit: mm or °)BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.9.32 Declaring interrupts

DescriptionThe function block KRC_DeclareInterrupt declares an interrupt to a digital input. There are 8 predefinedinterrupts available for this.

SyntaxGLOBAL INTERRUPT DECL 90+Interrupt WHEN $IN[Input] == InputValue DO Subprogram

TC3 Robotics mxAutomation52 Version: 1.4

Page 53: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_DeclareInterrupt

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is buffered in the case of a rising edge of the

signal.Interrupt INT Number of the interrupt

•   1 … 8Input INT Number of the digital input to which the interrupt is declared

•   1 … 2 048Note: It must be ensured that no inputs are used that arealready assigned by the system. Example: $IN[1025] is alwaysTRUE.

InputValue BOOL TRUE = statement is executed in the case of a rising edge ofthe signal.FALSE = statement is executed in the case of a falling edge ofthe signal.

Reaction INT Reaction to the interrupt•   0: BRAKE F + HALT•   1: BRAKE + HALT•   2: BRAKE F + WAIT FOR $IN[Input]<>InputValue•   3: BRAKE + WAIT FOR $IN[Input]<>InputValue•   4: BRAKE F + WAIT FOR KRC_Continue•   5: BRAKE + WAIT FOR KRC_Continue•   6: BRAKE F + WAIT FOR $IN[Input]<>InputValue AND

KRC_Continue•   7: BRAKE + WAIT FOR $IN[Input]<>InputValue AND

KRC_ContinueBufferMode INT  >>> "BufferMode". [} 22]

Outputs

Parameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred or has already

been transferredDone BOOL TRUE = statement has been processed in the advance run

Note: The statement can no longer be aborted. Exception:Program is deselected or reset.

TC3 Robotics mxAutomation 53Version: 1.4

Page 54: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionAborted BOOL TRUE = statement was aborted before it was processed in the

advance runError BOOL TRUE = error in function block

7.9.33 Activating interrupts

DescriptionThe function block KRC_ActivateInterrupt activates a previously declared interrupt. There are 8 predefinedinterrupts available for this.

An interrupt cannot be processed until the interrupt has been activated by the main run of the robotinterpreter. The function block KRC_WaitForInput can be used to monitor and check whether an interrupt isactive.

Function block KRC_ActivateInterrupt

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is buffered in the case of a rising edge of the

signal.Interrupt INT Number of the interrupt

•   1 … 8BufferMode INT  >>> "BufferMode". [} 22]

Outputs

Parameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred or has already

been transferredDone BOOL TRUE = statement has been processed in the advance run

Note: The signal does not indicate whether the interrupt hasreally been triggered or activated by the main run.

Aborted BOOL TRUE = statement was aborted before it was processed in theadvance run

Error BOOL TRUE = error in function block

TC3 Robotics mxAutomation54 Version: 1.4

Page 55: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.9.34 Deactivating interrupts

DescriptionThe function block KRC_DeactivateInterrupt deactivates a previously declared interrupt. There are 8predefined interrupts available for this.

SyntaxINTERRUPT OFF 90+Interrupt

Function block KRC_DeactivateInterrupt

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is buffered in the case of a rising edge of the

signal.Interrupt INT Number of the interrupt

•   1 … 8BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.9.35 Reading the state of an interrupt

DescriptionThe function block KRC_ReadInterruptState reads the state of an interrupt in the advance run. This isupdated cyclically.

A distinction can be made between the state of the interrupt in the advance run and the state in the main run.

TC3 Robotics mxAutomation 55Version: 1.4

Page 56: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_ReadInterruptState

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Interrupt INT Number of the interrupt

•   1 … 8

Outputs

Parameter Type DescriptionErrorID DINT Error numberValue INT State of specified interrupt

•   0: Interrupt has not been declared.•   1: Interrupt has been declared, but not activated.•   2: Interrupt has been declared and activated in the

advance run.•   3: Interrupt has been declared and deactivated while

still in the advance run.•   4: Interrupt has been triggered and is active.•   5: Interrupt has been triggered and the main program

has already been resumed with KRC_Continue.Error BOOL TRUE = error in function blockValid BOOL TRUE = data are valid

TC3 Robotics mxAutomation56 Version: 1.4

Page 57: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.9.36 Activating a path-related switching action (TRIGGER WHENDISTANCE)

DescriptionThe function block KRC_SetDistanceTrigger triggers a path-related switching action in the case of PTP orLIN motions.

The Trigger triggers a defined statement. The statement refers to the start point or end point of the motionblock in which the Trigger is situated in the program. The statement is executed parallel to the robot motion.

The statement can be shifted in time. It is then not triggered exactly at the start or end point, but broughtforward or delayed.

Note

If a trigger calls a subprogram, it counts as an active interrupt until the subprogram hasbeen executed. Up to 16 interrupts may be active at any one time.

Note

Further information on triggers, on offsetting the switching point and on the offset limits canbe found in the documentation by KUKA.

Function block KRC_SetDistanceTrigger

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is buffered in the case of a rising edge of the

signal.Distance INT Switching point of the trigger

•   0: Switching action at the start point•   1: Switching action at the end point

Delay INT Statement delay•   Delay = 0 ms: no delay

The statement cannot be shifted freely in time. The shifts thatare available depend on the value selected for Distance.Further information about this is contained in thedocumentation by KUKA.

TC3 Robotics mxAutomation 57Version: 1.4

Page 58: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionOutput INT Number of the digital output

•   1 … 2 048Note: It must be ensured that no outputs are used that arealready assigned by the system. Example: $OUT[1025] isalways TRUE.

Value BOOL TRUE = activate outputFALSE = deactivate output

Pulse REAL Length of the pulse•   0.0 s

No pulse active•   0.1 … 3.0 s

Pulse interval = 0.1 s; pulse durations outside this range ofvalues trigger a program stop.

BufferMode INT  >>> "BufferMode". [} 22]

Outputs

Parameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred or has already

been transferredDone BOOL TRUE = statement has been processed in the advance run

Note: The statement can no longer be aborted. Exception:Program is deselected or reset. The signal does not indicatewhether the switching action has really been triggered.

Aborted BOOL TRUE = statement was aborted before it was processed in theadvance run

Error BOOL TRUE = error in function block

7.9.37 Activating a path-related switching action (TRIGGER WHENPATH)

DescriptionThe function block KRC_SetPathTrigger triggers a path-related switching action in the case of CP motions.

The Trigger triggers a defined statement. The statement refers to the end point of the motion block in whichthe Trigger is situated in the program. The statement is executed parallel to the robot motion.

The statement can be shifted in time and/or space. It is then not triggered exactly at the end point, butbeforehand or afterwards.

Note

Path triggers can only be activated before CP motions. If the subsequent motion is not aCP motion, the robot controller issues an error message.

TC3 Robotics mxAutomation58 Version: 1.4

Page 59: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Note

If a trigger calls a subprogram, it counts as an active interrupt until the subprogram hasbeen executed. Up to 16 interrupts may be active at any one time.

Note

Further information on triggers, on offsetting the switching point and on the offset limits canbe found in the documentation by KUKA.

Function block KRC_SetPathTrigger

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is buffered in the case of a rising edge of the

signal.Path REAL Statement offset

If the statement is to be shifted in space, the desired distancefrom the end point must be specified here. If this end point isapproximated, Path is the distance to the position on theapproximate positioning arc closest to the end point.

•   Delay = 0.0 mm: no offset•   Delay > 0.0 mm: shifts the statement towards the end

of the motion.•   Delay < 0.0 mm: shifts the statement towards the start

of the motion.Delay INT Statement delay

•   Delay = 0 ms: no delayThe statement cannot be shifted freely in time. The offsets thatare possible depend on the value selected for Path. Furtherinformation about this is contained in the documentation byKUKA.

Output INT Number of the digital output•   1 … 2 048

Note: It must be ensured that no outputs are used that arealready assigned by the system. Example: $OUT[1025] isalways TRUE.

TC3 Robotics mxAutomation 59Version: 1.4

Page 60: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionValue BOOL TRUE = activate output

FALSE = deactivate outputPulse REAL Length of the pulse

•   0.0 sNo pulse active

•   0.1 … 3.0 sPulse interval = 0.1 s; pulse durations outside this range ofvalues trigger a program stop.

BufferMode INT  >>> "BufferMode". [} 22]

Outputs

Parameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred or has already

been transferredDone BOOL TRUE = statement has been processed in the advance run

Note: The statement can no longer be aborted. Exception:Program is deselected or reset. The signal does not indicatewhether the switching action has really been triggered.

Aborted BOOL TRUE = statement was aborted before it was processed in theadvance run

Error BOOL TRUE = error in function block

7.9.38 Canceling a program

DescriptionThe function block KRC_Abort cancels all active and buffered statements and motions.

Function block KRC_Abort

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferred

TC3 Robotics mxAutomation60 Version: 1.4

Page 61: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionDone BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

7.9.39 Stopping the robot

DescriptionThe function block KRC_Interrupt triggers an interrupt with a BRAKE or BRAKE F statement.

Note

If a BRAKE statement is active, no more statements are processed via the mxA interface.The function block KRC_Abort is also no longer processed. KRC_Abort cannot cancel theprogram until it has been resumed with KRC_Continue, i.e. the BRAKE statement is nolonger active.While the BRAKE statement is active, the program can only be canceled by means of aRESET of the function block KRC_AutomaticExternal.

Function block KRC_Interrupt

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Execute BOOL The statement is executed in the case of a rising edge of the

signal.The robot program is interrupted for as long as the inputExecute is set to TRUE.

Fast BOOL TRUE = robot stops with a STOP 1 (BRAKE F statement).FALSE = robot stops with a STOP 2 (BRAKE statement).

Outputs

Parameter Type DescriptionErrorID DINT Error numberBrakeActive BOOL TRUE = statement is active and robot is waiting for enablingError BOOL TRUE = error in function block

7.9.40 Continuing a program

DescriptionThe function block KRC_Continue can be used to resume execution of a program that has been stopped bymeans of an interrupt.

TC3 Robotics mxAutomation 61Version: 1.4

Page 62: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_Continue

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Enable BOOL The statement is executed in the case of a rising

edge of the signal.In the case of an interrupt triggered by a BRAKEor BRAKE F statement, the program can only beresumed when the interrupt is no longer activeand the input Enable is set to TRUE.

OutputsParameter Type DescriptionErrorID DINT Error numberError BOOL TRUE = error in function block

7.9.41 Automatically starting function blocks and signals

DescriptionThe function block KRC_AutoStart controls the existing signals and function blocks in a typical sequence ofstatements. The signals for activating the Automatic External interface are checked prior to starting. If one ormore signals is missing, corresponding error numbers are displayed.

Note

The drives are activated with an edge. For this reason, the DRIVES_ON input on the func-tion block KRC_AutomaticExternal should not be permanently activated.

Function block KRC_AutoStart

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

TC3 Robotics mxAutomation62 Version: 1.4

Page 63: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionExecuteReset BOOL Selects the mxAutomation robot program in the

case of a rising edge of the signal and starts it.The program is reset beforehand and allbuffered statements are aborted.

OutputsParameter Type DescriptionBusy BOOL The sequence is active but not yet completed.Done BOOL The sequence is completed.DispActive BOOL TRUE = robot program is activeResetValid BOOL TRUE = conditions for a RESET at the function

block KRC_AutomaticExternal are metError BOOL TRUE = error in function blockErrorID DINT Error number

TC3 Robotics mxAutomation 63Version: 1.4

Page 64: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.10 Functions for activating motions

Note

Motion instructions can only be executed in ABORTING or BUFFERED mode. If a motion isto be approximated, the following motion must be transferred in BUFFERED mode.

Note

Further information about the basics of motion programming – motion types, orientationcontrol, and approximate positioning – is contained in the operating and programming in-structions for the KUKA System Software.

7.10.1 Jogging to a relative end position

DescriptionThe function block KRC_JogLinearRelative can be used to move to a Cartesian end position with a linearmotion. The coordinates of the end position are relative to the current position. Status and Turn of the endposition are ignored, i.e. the axis positions at the end position are not unambiguously defined.

The function is always executed in ABORTING mode, i.e. all active motions and buffered statements arecanceled, the robot is braked and the linear motion is then executed.

Function block KRC_JogLinearRelative

Inputs

Parameter Type DescriptionPosition E6POS Coordinates of the Cartesian end position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theend position (= position of the TCP relative to the origin ofthe selected coordinate system).

CoordinateSystem COORDSYS  >>> "COORDSYS". [} 21]AxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising edge of the

signal.

TC3 Robotics mxAutomation64 Version: 1.4

Page 65: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionVelocity INT Velocity

•   0 … 100 %Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= velocity is not changed)

Acceleration INT Acceleration•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= acceleration is not changed)

OriType INT  >>> "OriType". [} 23]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredActive BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedAborted BOOL TRUE = statement/motion has been abortedError BOOL TRUE = error in function block

TC3 Robotics mxAutomation 65Version: 1.4

Page 66: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.10.2 Jogging to a relative end position in the TOOL coordinatesystem

DescriptionThe function block KRC_JogToolRelative can be used to move to a Cartesian end position in the TOOLcoordinate system with a linear motion. The coordinates of the end position are relative to the currentposition. Status and Turn of the end position are ignored, i.e. the axis positions at the end position are notunambiguously defined.

The function is always executed in ABORTING mode, i.e. all active motions and buffered statements arecanceled, the robot is braked and the linear motion is then executed.

Function block KRC_JogToolRelative

Inputs

Parameter Type DescriptionPosition E6POS Coordinates of the Cartesian end position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theend position (= position of the TCP relative to the origin ofthe selected coordinate system).

CoordinateSystem COORDSYS  >>> "COORDSYS". [} 21]AxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising edge of the

signal.Velocity INT Velocity

•   0 … 100 %Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= velocity is not changed)

Acceleration INT Acceleration•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= acceleration is not changed)

OriType INT  >>> "OriType". [} 23]

TC3 Robotics mxAutomation66 Version: 1.4

Page 67: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredActive BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedAborted BOOL TRUE = statement/motion has been abortedError BOOL TRUE = error in function block

TC3 Robotics mxAutomation 67Version: 1.4

Page 68: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.10.3 Jogging to an end position

DescriptionThe function block KRC_Jog can be used to move to an end position with a linear motion or a point-to-pointmotion.

The function is always executed in ABORTING mode, i.e. all active motions and buffered statements arecanceled, the robot is braked and the motion is then executed.

Function block KRC_Jog

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5MoveType INT Motion type for Cartesian or axis-specific jogging

•   0: Motion type PTP (axis-specific)•   1: Motion type LIN (Cartesian)•   2: Motion type SPTP (axis-specific)•   3: Motion type SLIN (Cartesian)

TC3 Robotics mxAutomation68 Version: 1.4

Page 69: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionVelocity INT Velocity

•   0 … 100 %Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default value: 0% (= velocity is not changed)

Acceleration INT Acceleration•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default value: 0% (= acceleration is not changed)

CoordinateSystem COORDSYS  >>> "COORDSYS". [} 21]Increment REAL Incremental jogging

•   > 0.0: The robot moves no more than the specifieddistance. For axis-specific jogging, the maximumdistance is automatically limited to the software limitswitches. For Cartesian jogging in the A, B or Cdirection, the maximum distance is limited to 90°. Ifthe input signal is reset before the robot has reachedthe end position, the robot stops immediately.

•   ≤ 0.0: For Cartesian jogging in the X, Y or Zdirection, the maximum distance is limited to100000 mm.

The robot motion restarts each time the input signals arechanged.

A1_X_P BOOL Motion instructionThe motion is started at a rising edge of the signal andstopped at a falling edge of the signal.In motion type PTP, the robot axes can be moved as faras 0.1 mm before the software limit switches. For this, thesoftware limit switch values are read once when the PLCis started. During operation, the software limit switchescan be updated via the input UpdateSoftEnd.Several robot axes can be moved simultaneously. TheTCP can be moved along the axes of several coordinatesystems.If the input signals are changed, the motion is stopped andthen resumed with the modified configuration. If thepositive and negative motion directions are activatedsimultaneously, an error number is displayed.The inputs for axes A1 … A6 have a dual assignment withthe coordinates, e.g. A1 with X, A2 with Y, etc.The inputs that end in "P" (e.g. A2_Y_P) move in thepositive direction. The inputs that end in "M" (e.g.A3_Z_M) move in the negative direction.

A1_X_M BOOLA2_Y_P BOOLA2_Y_M BOOLA3_Z_P BOOLA3_Z_M BOOLA4_A_P BOOLA4_A_M BOOLA5_B_P BOOLA5_B_M BOOLA6_C_P BOOLA6_C_M BOOLE1_P BOOLE1_M BOOLE2_P BOOLE2_M BOOLE3_P BOOLE3_M BOOLE4_P BOOLE4_M BOOLE5_P BOOLE5_M BOOLE6_P BOOLE6_M BOOL

TC3 Robotics mxAutomation 69Version: 1.4

Page 70: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredActive BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedAborted BOOL TRUE = statement/motion has been abortedError BOOL TRUE = error in function block

7.11 Functions for activating motions (PLC OPEN-compliant)

The MC function blocks described below differ from the KRC function blocks in that they correspond to thePLC OPEN standard or are closer to it.

Note

For information on the frequently used signals in the MC function blocks, see >>> "Fre-quently used input/output signals in the MC function blocks". [} 18]

7.11.1 Moving to a Cartesian position with a LIN motion

DescriptionThe function block MC_MoveLinearAbsolute is used to execute a linear motion to a Cartesian end position.The coordinates of the end position are absolute.

Function block MC_MoveLinearAbsolute

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Execute BOOL Starts/buffers the motion in the case of a rising edge of the

signal.

TC3 Robotics mxAutomation70 Version: 1.4

Page 71: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionPosition E6POS Coordinates of the Cartesian end position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theend position (= position of the TCP relative to the origin ofthe BASE coordinate system).

Velocity INT Velocity•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= velocity is not changed)

Acceleration INT Acceleration•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= acceleration is not changed)

CoordinateSystem COORDSYS Coordinate system to which the Cartesian coordinates ofthe end position refer

 >>> "COORDSYS". [} 21]Note: In the case of a LIN motion, the Cartesiancoordinates always refer to the BASE coordinate system.

OriType INT  >>> "OriType". [} 23]Approximate APO  >>> "APO". [} 20]QueueMode INT  >>> "QueueMode". [} 23]

OutputsParameter Type DescriptionComDone BOOL TRUE = statement was completely transferred

and confirmed by the robot controller.ComBusy BOOL TRUE = statement is currently being transferred

and has not yet been confirmed by the robotcontroller.

Busy BOOL TRUE = function block has not yet beenexecuted completely.

Active BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedCommandAborted

BOOL TRUE = statement/motion has been aborted

Error BOOL TRUE = error in function blockErrorID DINT Error number

7.11.2 Moving to a Cartesian position with a LIN_REL motion

DescriptionThe function block MC_MoveLinearRelative is used to execute a linear motion to a Cartesian end position.The coordinates of the end position are relative to the current position.

TC3 Robotics mxAutomation 71Version: 1.4

Page 72: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Note

A REL statement always refers to the current position of the robot. For this reason, if a RELmotion is interrupted, the robot executes the entire REL motion again, starting from the po-sition at which it was interrupted.

Function block MC_MoveLinearRelative

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Execute BOOL Starts/buffers the motion in the case of a rising edge of the

signal.Position E6POS Coordinates of the Cartesian end position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theend position (= position of the TCP relative to the origin ofthe selected coordinate system).

Velocity INT Velocity•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= velocity is not changed)

Acceleration INT Acceleration•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= acceleration is not changed)

CoordinateSystem COORDSYS Coordinate system to which the Cartesian coordinates ofthe end position refer

 >>> "COORDSYS". [} 21]Note: In the case of a LIN_REL motion, the Cartesiancoordinates can refer to the BASE or TOOL coordinatesystem.

OriType INT  >>> "OriType". [} 23]Approximate APO  >>> "APO". [} 20]QueueMode INT  >>> "QueueMode". [} 23]

TC3 Robotics mxAutomation72 Version: 1.4

Page 73: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

OutputsParameter Type DescriptionComDone BOOL TRUE = statement was completely transferred

and confirmed by the robot controller.ComBusy BOOL TRUE = statement is currently being transferred

and has not yet been confirmed by the robotcontroller.

Busy BOOL TRUE = function block has not yet beenexecuted completely.

Active BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedCommandAborted

BOOL TRUE = statement/motion has been aborted

Error BOOL TRUE = error in function blockErrorID DINT Error number

7.11.3 Moving to a Cartesian position with a PTP motion

DescriptionThe function block MC_MoveDirectAbsolute executes a point-to-point motion to a Cartesian end position.The coordinates of the end position are absolute.

Function block MC_MoveDirectAbsolute

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Execute BOOL Starts/buffers the motion in the case of a rising edge of the

signal.Position E6POS Coordinates of the Cartesian end position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theend position (= position of the TCP relative to the origin ofthe BASE coordinate system).

Velocity INT Velocity•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0%

TC3 Robotics mxAutomation 73Version: 1.4

Page 74: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionAcceleration INT Acceleration

•   0 … 100 %Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= velocity is not changed)

CoordinateSystem COORDSYS Coordinate system to which the Cartesian coordinates ofthe end position refer

 >>> "COORDSYS". [} 21]Note: In the case of a PTP motion, the Cartesiancoordinates always refer to the BASE coordinate system.

Approximate APO  >>> "APO". [} 20]QueueMode INT  >>> "QueueMode". [} 23]

OutputsParameter Type DescriptionComDone BOOL TRUE = statement was completely transferred

and confirmed by the robot controller.ComBusy BOOL TRUE = statement is currently being transferred

and has not yet been confirmed by the robotcontroller.

Busy BOOL TRUE = function block has not yet beenexecuted completely.

Active BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedCommandAborted

BOOL TRUE = statement/motion has been aborted

Error BOOL TRUE = error in function blockErrorID DINT Error number

7.11.4 Moving to a Cartesian position with a PTP_REL motion

DescriptionThe function block MC_MoveDirectRelative executes a point-to-point motion to a Cartesian end position. Thecoordinates of the end position are relative to the current position.

Note

A REL statement always refers to the current position of the robot. For this reason, if a RELmotion is interrupted, the robot executes the entire REL motion again, starting from the po-sition at which it was interrupted.

TC3 Robotics mxAutomation74 Version: 1.4

Page 75: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block MC_MoveDirectRelative

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Execute BOOL Starts/buffers the motion in the case of a rising edge of the

signal.Position E6POS Coordinates of the Cartesian end position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theend position (= position of the TCP relative to the origin ofthe selected coordinate system).

Velocity INT Velocity•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= velocity is not changed)

Acceleration INT Acceleration•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= acceleration is not changed)

CoordinateSystem COORDSYS Coordinate system to which the Cartesian coordinates ofthe end position refer

 >>> "COORDSYS". [} 21]Note: In the case of a PTP_REL motion, the Cartesiancoordinates always refer to the BASE coordinate system.

Approximate APO  >>> "APO". [} 20]QueueMode INT  >>> "QueueMode". [} 23]

OutputsParameter Type DescriptionComDone BOOL TRUE = statement was completely transferred

and confirmed by the robot controller.ComBusy BOOL TRUE = statement is currently being transferred

and has not yet been confirmed by the robotcontroller.

TC3 Robotics mxAutomation 75Version: 1.4

Page 76: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionBusy BOOL TRUE = function block has not yet been

executed completely.Active BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedCommandAborted

BOOL TRUE = statement/motion has been aborted

Error BOOL TRUE = error in function blockErrorID DINT Error number

TC3 Robotics mxAutomation76 Version: 1.4

Page 77: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.11.5 Moving to an axis-specific position with a PTP motion

DescriptionThe function block MC_MoveAxisAbsolute is used to execute a point-to-point motion to an axis-specific endposition. The axis positions are absolute.

Function block MC_MoveAxisAbsolute

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Execute BOOL Starts/buffers the motion in the case of a rising edge of the

signal.AxisPosition E6AXIS Axis-specific end position

 >>> "E6AXIS". [} 21]The data structure E6Axis contains the angle values ortranslation values for all axes of the axis group in the endposition.

Velocity INT Velocity•   0 … 100 %

Refers to the maximum value specified in the machine data.The maximum value depends on the robot type and theselected operating mode.Default: 0% (= velocity is not changed)

Acceleration INT Acceleration•   0 … 100 %

Refers to the maximum value specified in the machine data.The maximum value depends on the robot type and theselected operating mode.Default: 0% (= acceleration is not changed)

Approximate APO  >>> "APO". [} 20]QueueMode INT  >>> "QueueMode". [} 23]

OutputsParameter Type DescriptionComDone BOOL TRUE = statement was completely transferred

and confirmed by the robot controller.ComBusy BOOL TRUE = statement is currently being transferred

and has not yet been confirmed by the robotcontroller.

TC3 Robotics mxAutomation 77Version: 1.4

Page 78: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionBusy BOOL TRUE = function block has not yet been

executed completely.Active BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedCommandAborted

BOOL TRUE = statement/motion has been aborted

Error BOOL TRUE = error in function blockErrorID DINT Error number

7.11.6 Moving to a Cartesian position with a CIRC motion

DescriptionThe function block MC_MoveCircularAbsolute executes a circular motion to a Cartesian end position. Inorder for the robot controller to be able to calculate the circular motion, an auxiliary position must bespecified in addition to the end position.

The coordinates of the auxiliary position and end position are absolute. The auxiliary position cannot beapproximated. The motion always stops exactly at this point.

Function block MC_MoveCircularAbsolute

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Execute BOOL Starts/buffers the motion in the case of a rising edge of the

signal.Position E6POS Coordinates of the Cartesian end position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theend position (= position of the TCP relative to the origin ofthe BASE coordinate system).

CircHP E6POS Coordinates of the Cartesian auxiliary position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theauxiliary position (= position of the TCP relative to theorigin of the BASE coordinate system).

TC3 Robotics mxAutomation78 Version: 1.4

Page 79: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionAngle REAL Circular angle (= overall angle of the circular motion)

The circular angle makes it possible to extend the motionbeyond the programmed end point or to shorten it. Theactual end point thus no longer corresponds to theprogrammed end point.The circular angle is not limited, i.e. a circular anglegreater than ±360° can be specified:

•   > 0.0°: In the case of a positive angle, the motion iscarried out from the start point via CircHP towardsPosition.

•   < 0.0°: In the case of a negative angle, the motionis carried out from the start point via Positiontowards CircHP.

•   = 0.0°: The circular angle is ignored. End position isPosition. The radius of the circle is calculated on thebasis of the start position, CircHP and Position.

Default: 0.0°Velocity INT Velocity

•   0 … 100 %Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= velocity is not changed)

Acceleration INT Acceleration•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= acceleration is not changed)

CoordinateSystem COORDSYS Coordinate system to which the Cartesian coordinates ofthe auxiliary or end position refer

 >>> "COORDSYS". [} 21]Note: In the case of a CIRC motion, the Cartesiancoordinates always refer to the BASE coordinate system.

OriType INT  >>> "OriType". [} 23]CircType INT  >>> "CircType". [} 23]Approximate APO  >>> "APO". [} 20]QueueMode INT  >>> "QueueMode". [} 23]

OutputsParameter Type DescriptionComDone BOOL TRUE = statement was completely transferred

and confirmed by the robot controller.ComBusy BOOL TRUE = statement is currently being transferred

and has not yet been confirmed by the robotcontroller.

Busy BOOL TRUE = function block has not yet beenexecuted completely.

Active BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stopped

TC3 Robotics mxAutomation 79Version: 1.4

Page 80: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionCommandAborted

BOOL TRUE = statement/motion has been aborted

Error BOOL TRUE = error in function blockErrorID DINT Error number

7.11.7 Moving to a Cartesian position with a CIRC_REL motion

DescriptionThe function block MC_MoveCircularRelative executes a circular motion to a Cartesian end position. In orderfor the robot controller to be able to calculate the circular motion, an auxiliary position must be specified inaddition to the end position.

The coordinates of the auxiliary position and end position are relative to the current position (= start positionof the circular motion). The auxiliary position cannot be approximated. The motion always stops exactly atthis point.

Note

A REL statement always refers to the current position of the robot. For this reason, if a RELmotion is interrupted, the robot executes the entire REL motion again, starting from the po-sition at which it was interrupted.

Function block MC_MoveCircularRelative

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5Execute BOOL Starts/buffers the motion in the case of a rising edge of the

signal.Position E6POS Coordinates of the Cartesian end position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theend position (= position of the TCP relative to the origin ofthe BASE coordinate system).

TC3 Robotics mxAutomation80 Version: 1.4

Page 81: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionCircHP E6POS Coordinates of the Cartesian auxiliary position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theauxiliary position (= position of the TCP relative to theorigin of the BASE coordinate system).

Angle REAL Circular angle (= overall angle of the circular motion)The circular angle makes it possible to extend the motionbeyond the programmed end point or to shorten it. Theactual end point thus no longer corresponds to theprogrammed end point.The circular angle is not limited, i.e. a circular anglegreater than ±360° can be specified:

•   > 0.0°: In the case of a positive angle, the motion iscarried out from the start point via CircHP towardsPosition.

•   < 0.0°: In the case of a negative angle, the motionis carried out from the start point via Positiontowards CircHP.

•   = 0.0°: The circular angle is ignored. End position isPosition. The radius of the circle is calculated on thebasis of the start position, CircHP and Position.

Default: 0.0°Velocity INT Velocity

•   0 … 100 %Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= velocity is not changed)

Acceleration INT Acceleration•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= acceleration is not changed)

CoordinateSystem COORDSYS Coordinate system to which the Cartesian coordinates ofthe auxiliary or end position refer

 >>> "COORDSYS". [} 21]Note: In the case of a CIRC_REL motion, the Cartesiancoordinates always refer to the BASE coordinate system.

OriType INT  >>> "OriType". [} 23]CircType INT  >>> "CircType". [} 23]Approximate APO  >>> "APO". [} 20]QueueMode INT  >>> "QueueMode". [} 23]

OutputsParameter Type DescriptionComDone BOOL TRUE = statement was completely transferred

and confirmed by the robot controller.ComBusy BOOL TRUE = statement is currently being transferred

and has not yet been confirmed by the robotcontroller.

TC3 Robotics mxAutomation 81Version: 1.4

Page 82: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionBusy BOOL TRUE = function block has not yet been

executed completely.Active BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedCommandAborted

BOOL TRUE = statement/motion has been aborted

Error BOOL TRUE = error in function blockErrorID DINT Error number

7.12 Diagnostic functions

7.12.1 Reading the current state of the mxA interface

DescriptionThe function block KRC_ReadMXAStatus reads the current state of the mxA interface.

Function block KRC_ReadMXAStatus

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

OutputsParameter Type DescriptionStatus INT  >>> "Status". [} 23]ErrorID DINT Error numberError BOOL TRUE = error in function block

7.12.2 Reading error messages of the mxA interface

DescriptionThe function block KRC_ReadMXAError is used to read the current error state of an axis group. Only errormessages generated by the mxA interface are displayed.

Function block KRC_ReadMXAError

TC3 Robotics mxAutomation82 Version: 1.4

Page 83: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

OutputsParameter Type DescriptionErrorID DINT Error numberError BOOL TRUE = error in function block

7.12.3 Resetting error messages of the mxA interface

DescriptionThe function block KRC_MessageReset resets the current error state of an axis group. Only error messagesgenerated by the mxA interface are reset.

Error messages from the robot controller are reset by means of the function block KRC_AutomaticExternal(input CONF_MESS).

Note

Messages can only be reset if the robot is stationary.

Function block KRC_MessageReset

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5MessageReset BOOL TRUE = reset message

OutputsParameter Type DescriptionErrorID DINT Error numberError BOOL TRUE = error in function block

7.12.4 Reading error messages of the robot controller

DescriptionThe function block KRC_ReadKRCError reads the current error state of the robot controller. Only errormessages generated by the robot controller are displayed.

TC3 Robotics mxAutomation 83Version: 1.4

Page 84: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Error messages from the robot controller are reset by means of the function block KRC_AutomaticExternal(input CONF_MESS).

Note

Messages can only be reset if the robot is stationary.

Function block KRC_ReadKRCError

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of the

signal.Offset INT If there are more than 10 messages in the message buffer, the

desired start index of the message buffer can be selected usingthe offset.Example: If there are 15 messages in the message buffer, theoffset must be 6 in order to read messages 6 to 15.

Outputs

Parameter Type DescriptionErrorID DINT Error numberMessageCount INT Number of messages in the message bufferMessage1 …Message10

DINT The numbers of up to 10 messages in the message buffer can beoutput.

Done BOOL TRUE = data are validError BOOL TRUE = error in function blockSTOPMESS BOOL TRUE = safety circuit is interrupted (robot fault)

TC3 Robotics mxAutomation84 Version: 1.4

Page 85: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.12.5 Reading diagnostic signals

DescriptionThe function block KRC_Diag reads the diagnostic signals of the robot controller.

Note

The function block may only be instanced once per axis group. In the case of multiple in-stancing, the signals of the most recently called function block are output.

Function block KRC_Diag

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ShowTrace BOOL TRUE = activate display of the active function blocks in the

message window of the KUKA smartHMI.FALSE = deactivate display of the active function blocks in themessage window of the KUKA smartHMI.Note: Only activate the display for test and diagnostic purposes. Ifthe display is active, approximate positioning is no longer possibleand the cycle time of the submit interpreter is adversely affected.

MaxSubmitCycle INT Maximum cycle time of the submit interpreterDefault: 1 000 msNote: If the maximum cycle time is exceeded, the$MOVE_ENABLE signal for motion enable is reset.

TC3 Robotics mxAutomation 85Version: 1.4

Page 86: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Outputs

Parameter Type DescriptionQueueCount INT Number of buffered statements

•   1 … 90SubmitHeartbeat INT Heartbeat signal of the submit interpreter (counter is

incremented by 1 every Submit cycle)•   1 … 245

SubmitCyc_Act REAL Current cycle time of the submit interpreter; unit: msMean value over 1,000 ms = 1/number of cycles per second

SubmitCyc_Min REAL Shortest cycle time of the submit interpreter since the lastbroken connection; unit: ms

SubmitCyc_Max REAL Longest cycle time of the submit interpreter since the lastbroken connection; unit: ms

SubmitCyc_Avg INT Mean value of the cycle time of the submit interpreter during thecalculation period Avg_Duration; unit: ms

Avg_Duration DINT Duration of the current calculation period for the mean value ofthe cycle time; unit: msThe calculation period is restarted after a break in theconnection to the submit interpreter or, at the latest, after 60minutes.

ProconosHeartbeat INT Life sign from ProConOS (counter is incremented by 1 everyProConOS cycle)

ProconosCyc_Act INT Current cycle time of ProConOS; unit: msMean value over 1,000 ms = 1/number of cycles per second

ProconosCyc_Min INT Shortest cycle time of ProConOS since the last brokenconnection; unit: ms

ProconosCyc_Max INT Longest cycle time of ProConOS since the last brokenconnection; unit: ms

ProconosCyc_Avg INT Mean value of the cycle time of ProConOS during thecalculation period Avg_Duration; unit: ms

ActivePosOrderID DINT Order ID of the KRC_Move motion command that is currentlybeing executed

ActiveOrderIDB DINT Order ID of the current KRC_Move motion command in theadvance run

ErrorID_RI DINT Robot interpreter error numberErrorID_SI DINT Submit interpreter error numberErrorID_PLC DINT PLC error numberErrorID_PCOS DINT ProConOS error numberErrorID DINT Error numberValid BOOL TRUE = data are validPosActValid BOOL TRUE = position data are valid (BCO)BrakeActive BOOL TRUE = robot is stopped by means of a BRAKE statementError BOOL TRUE = error in function block

TC3 Robotics mxAutomation86 Version: 1.4

Page 87: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.12.6 Reading and acknowledging error states

DescriptionThe function block KRC_Error collectively reads and acknowledges the current error state of the mxAinterface, the error state of the robot controller and the error state of the function blocks.

If more than one error has occurred in the function block at the same time, only the error number of the mostrecent error is displayed. Errors in a function block cause the motion enable to be canceled.

If more than one error has occurred at the same time, these errors are displayed with the following priorityranking:

1.   Errors of the mxA interface in the robot interpreter

2.   Errors of the mxA interface in the submit interpreter

3.   ProConOS errors

4.   Errors in the PLC

5.   Errors in a function block of the local PLC

6.   Errors in the robot controller

The function block KRC_Error contains all diagnostic function blocks, which means that this block displaysall important diagnostic data.

Note

The $STOPMESS signal can only be reset if there is no error and the drives are switchedon. The drives must therefore be activated with the DRIVES_ON signal via the functionblock KRC_Error. The drives are activated with an edge. For this reason, the DRIVES_ONinput on the function block KRC_AutomaticExternal should not be permanently activated.

Function block KRC_Error

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

TC3 Robotics mxAutomation 87Version: 1.4

Page 88: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionMessageReset BOOL Resets error messages of the mxA interface and the robot

controller via the function block KRC_AutomaticExternal (inputCONF_MESS). Activates the drives.TRUE = reset messageNote: The messages can only be reset if the robot isstationary.

Outputs

Parameter Type DescriptionError BOOL TRUE = error in function blockErrorID INT Error numberNoHeartbeatKRC BOOL The submit interpreter is not sending a life signNoHeartbeatPCOS BOOL ProConOS is not sending a life signNotOnline BOOL No connection to robot controllerNotInitialized BOOL No statements can be executed, as the connection has not

been initialized.NoOpModeExt BOOL Robot is not in Automatic External modeNoMoveEnable BOOL No motion enable present.UserSafeNotOK BOOL The operator safety is violated. The $USER_SAF signal of the

Automatic External interface is not active.KrcErrorActive BOOL Error messages of the robot controller are active. The

$STOPMESS signal of the Automatic External interface isactive.

DrivesNotReady BOOL The drives are not ready. The $PERI_RDY signal of theAutomatic External interface is not active.

NoProgActive BOOL The robot program is not active. The $PRO_ACT signal of theAutomatic External interface is not active.

TC3 Robotics mxAutomation88 Version: 1.4

Page 89: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13 Special functions

7.13.1 Reading system variables

DescriptionThe function block KRC_ReadSysVar reads a system variable. This function is executed in the Submitinterpreter.

Function block KRC_ReadSysVar

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.Index INT Index of the system variable

•   1: $ADVANCE

Note

So far, only the system variable $ADVANCE can be read. If required for the customer-spe-cific application, the list of readable system variables can be expanded by KUKA.

OutputsParameter Type DescriptionValue1 …Value10

REAL Value of the system variableIf the system variable is a structure type, up to10 components of the structure can be read.

ErrorID DINT Error numberDone BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

TC3 Robotics mxAutomation 89Version: 1.4

Page 90: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13.2 Writing system variables

DescriptionThe function block KRC_WriteSysVar writes a system variable.

Function block KRC_WriteSysVar

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising edge of the

signal.Index INT Index of the system variable

•   1: $ADVANCEValue1 … Value10 REAL Value of the system variable

If the system variable is a structure type, up to 10 componentsof the structure can be written.

Continue BOOL TRUE = write to system variable without advance run stopNote: Only possible for specific system variables.

BufferMode INT  >>> "BufferMode". [} 22]

Note

So far, only the system variable $ADVANCE can be written. If required for the customer-specific application, the list of writable system variables can be expanded by KUKA.

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executed

TC3 Robotics mxAutomation90 Version: 1.4

Page 91: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

TC3 Robotics mxAutomation 91Version: 1.4

Page 92: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13.3 Calling a brake test

DescriptionThe function block KRC_BrakeTest calls the program for the brake test. The brake test is started at theposition at which the robot is located when the program is called.

Note

The brake test must be performed with a program override of 100% (function blockKRC_SetOverride).

During the brake test, all brakes are checked to see whether the wear limit has been reached. For thispurpose, the robot accelerates to a defined velocity limit. Once the robot has reached the velocity, the brakeis applied and the result for this braking operation is displayed.

If the brake test is successful, the robot is located back at the start position at the end of the measurement.

If the brake test fails, i.e. a brake has been identified as being defective, the robot moves directly to a parkingposition. The coordinates of the parking position must be specified in the function block.

Parking positionThe parking position must be selected in a position where no persons are endangered if the robot sagsbecause of the defective brake. The transport position, for example, can be selected as the parking position.

Note

Further information about the transport position is contained in the robot operating or as-sembly instructions.

Note

Detailed information about the brake test is contained in the documentation by KUKA.

Function block KRC_BrakeTest

Inputs

TC3 Robotics mxAutomation92 Version: 1.4

Page 93: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionParkPosition E6POS Coordinates of the Cartesian parking position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of theparking position (= position of the TCP relative to the originof the selected coordinate system).

ParkCoordinateSystem

COORDSYS  >>> "COORDSYS". [} 21]

AxisGroupIdx INT Index of axis group•   1 … 5

ExecuteCmd BOOL Starts/buffers the motion in the case of a rising edge of thesignal.

ParkVelocity INT Velocity•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= velocity is not changed)

ParkAcceleration INT Acceleration•   0 … 100 %

Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= acceleration is not changed)

BufferMode INT  >>> "BufferMode". [} 22]

Outputs

Parameter Type DescriptionResult DINT Result of the brake test

•   0: brake test failed (brake identified as defective or noconnection to robot controller)

•   1: brake test successful (no brake defective, but at leastone brake has reached the wear limit)

•   2: brake test successful (no brake defective or reachedwear limit)

ErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred or has already

been transferredActive BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedAborted BOOL TRUE = statement/motion has been abortedError BOOL TRUE = error in function block

7.13.4 Calling a mastering test

DescriptionThe function block KRC_MasRef is used to execute the mastering test.

TC3 Robotics mxAutomation 93Version: 1.4

Page 94: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

After the function block has been called, the robot moves in a linear direction from the current position to thereference position. Once the robot has reached the reference position, the current axis values are comparedwith the axis values which have been saved in KUKA.SafeOperation. The robot then moves back to the startposition (= position before the function block was called).

Note

The reference position is defined in the function block with the input parameter Positionand corresponds to the reference position defined with KUKA.SafeOperation.

If the deviation between the current position and the reference position is too great, the mastering test hasfailed.

Note

Detailed information about the mastering test can be found in the documentationKUKA.SafeOperation.

Function block KRC_MasRef

Inputs

Parameter Type DescriptionPosition E6POS Coordinates of the Cartesian reference position

 >>> "E6POS". [} 21]The data structure E6POS contains all components of thereference position (= position of the TCP relative to theorigin of the selected coordinate system).

CoordinateSystem COORDSYS  >>> "COORDSYS". [} 21]AxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising edge of the

signal.Velocity INT Velocity

•   0 … 100 %Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= velocity is not changed)

TC3 Robotics mxAutomation94 Version: 1.4

Page 95: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionAcceleration INT Acceleration

•   0 … 100 %Refers to the maximum value specified in the machinedata. The maximum value depends on the robot type andthe selected operating mode.Default: 0% (= acceleration is not changed)

BufferMode INT  >>> "BufferMode". [} 22]

Outputs

Parameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred or has already

been transferredActive BOOL TRUE = motion is currently being executedDone BOOL TRUE = motion has stoppedAborted BOOL TRUE = statement/motion has been abortedError BOOL TRUE = error in function blockMasRefRequest BOOL TRUE = mastering test has been requested internally by the

robot controller.

7.13.5 Reading the safety controller signals

DescriptionThe function block KRC_ReadSafeOPStatus reads signals of the safety controller. (Only relevant ifKUKA.SafeOperation is installed.)

Function block KRC_ReadSafeOPStatus

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5MASTERINGTEST_REQ_EXT BOOL TRUE = mastering test requested by the PLC.BRAKETEST_REQ_EXT BOOL TRUE = brake test requested by the PLC.

TC3 Robotics mxAutomation 95Version: 1.4

Page 96: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Outputs

Parameter Type DescriptionErrorID DINT Error numberValid BOOL TRUE = data are validBRAKETEST_REQ_INT BOOL TRUE = brake test requested by the safety

controller.MASTERINGTEST_REQ_INT BOOL TRUE = mastering test requested by the safety

controller.BRAKETEST_MONTIME BOOL TRUE = robot was stopped due to elapsed brake

test monitoring time.BRAKETEST_WORK BOOL TRUE = brake test is currently being performedBRAKES_OK BOOL Edge TRUE --> FALSE: A brake has been

identified as defective.BRAKETEST_WARN BOOL Edge FALSE --> TRUE: At least 1 brake has been

detected as having reached the wear limit.MASTERINGTESTSWITCH_OK BOOL TRUE = reference switch is OK.Error BOOL TRUE = error in function block

7.13.6 Reading the state of the TouchUp status keys

DescriptionThe function block KRC_ReadTouchUPState reads the current state of the TouchUp status keys on thesmartPAD. In order to be able to teach points using the status keys on the smartPAD, the function blockmust be linked to the function block KRC_TouchUP.

Function block KRC_ReadTouchUPState

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

OutputsParameter Type DescriptionIndex INT Number selected using the status key on the

smartPAD to teach a position•   1 … 100

ErrorID DINT Error numberValid BOOL TRUE = data are validTouchUP BOOL State of the TouchUp status key on the

smartPADTRUE = TouchUp status key has been pressed.

Error BOOL TRUE = error in function block

TC3 Robotics mxAutomation96 Version: 1.4

Page 97: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13.7 Teaching points

DescriptionThe function block KRC_TouchUP can be used to teach a point directly in the PLC. Tool, base andinterpolation mode of this point are automatically set by the function block.

Function block KRC_TouchUP

Memory

Parameter Type DescriptionPositionArray Array[100] List of the taught positions

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL TRUE = the point is taught.Index INT Number under which the taught point is saved in

the PLC•   1 … 100

OutputsParameter Type DescriptionErrorID DINT Error numberDone BOOL TRUE = statement has been executedError BOOL TRUE = error in function block

7.13.8 Modifying settings for the advance run

DescriptionThe settings for the advance run are modified using the function block KRC_SetAdvance.

The advance run is the maximum number of motion blocks that the robot controller calculates and plans inadvance during program execution. The actual number is dependent on the capacity of the computer. Theadvance run is required, for example, in order to be able to calculate approximate positioning motions.

Note

If the program execution is reset, the set values are reset to the default values.

TC3 Robotics mxAutomation 97Version: 1.4

Page 98: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_SetAdvance

Inputs

Parameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is buffered in the case of a rising edge of the

signal.Count INT Number of functions to be transferred before the first robot

motion•   1 … 50

Default value: 2MaxWaitTime INT Maximum wait time before the beginning of program execution

if the set number of functions is not reached in the parametercount.

•   1 … 60 000 msDefault value: 300 ms

Mode INT Wait mode•   0: The currently set mode is not changed.•   1: If the first instruction is an approximated motion

instruction, the system waits for further instructions.•   2: The system always waits for the number of set

functions or for the maximum wait time to elapse.Default value: 1

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionBusy BOOL TRUE = statement has been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement has been abortedError BOOL TRUE = error in function blockErrorID DINT Error number

7.13.9 Reading values from KRC_SetAdvance

DescriptionFunction block KRC_GetAdvance reads the values that have been set in the function blockKRC_SetAdvance.

TC3 Robotics mxAutomation98 Version: 1.4

Page 99: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_GetAdvance

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL The statement is executed in the case of a rising

edge of the signal.

Outputs

Parameter Type DescriptionDone BOOL TRUE = statement has been executedCount INT Number of functions to be transferred before the first robot motion

•   1 … 50Default value: 2

MaxWaitTime INT Maximum wait time before the beginning of program execution if theset number of functions is not reached in the parameter count.

•   1 … 60 000 msDefault value: 300 ms

Mode INT Wait mode•   0: The currently set mode is not changed.•   1: If the first instruction is an approximated motion

instruction, the system waits for further instructions.•   2: The system always waits for the number of set functions

or for the maximum wait time to elapse.Default value: 1

Error BOOL TRUE = error in function blockErrorID DINT Error number

TC3 Robotics mxAutomation 99Version: 1.4

Page 100: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13.10 Calculating the Cartesian robot position from the axis angles

DescriptionThe function block KRC_Forward uses specified axis angles to calculate the Cartesian robot position. Thefunction block can only be executed by the robot interpreter.

Function block KRC_Forward

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the statement at a rising edge of

the signal.Axis_Values E6AXIS Axis-specific values that are to be converted to

Cartesian coordinatesThe data structure E6AXIS contains the anglevalues or translation values for all axes of theaxis group in this position.

CheckSoftEnd BOOL Checks whether the specified axis angles liewithin the software limit switches. If not, an errornumber is displayed.

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedPosition E6POS Cartesian robot position calculated from the

specified axis anglesAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function blockErrorID DINT Error number

7.13.11 Calculating axis angles from the Cartesian robot position

DescriptionThe function block KRC_Inverse uses a specified Cartesian robot position to calculate the axis angles. Thefunction block can only be executed by the robot interpreter.

TC3 Robotics mxAutomation100 Version: 1.4

Page 101: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_Inverse

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the statement at a rising edge of

the signal.Position E6POS Cartesian robot positionPosValidS BOOL TRUE = The Status value contained in the

Position parameter is valid.FALSE = The Status value is unknown.

PosValidT BOOL TRUE = The Turn value contained in thePosition parameter is valid.FALSE = The Turn value is unknown.

Start_Axis E6Axis Axis-specific values at the start point of themotionThe start point is the axis-specific position fromwhich the robot moves to the position that is tobe calculated.

CheckSoftEnd BOOL Checks whether the values from the Start_Axisparameter lie within the software limit switches.If not, an error number is displayed.

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAxisPosition E6AXIS Axis angles that have been calculated from the

specified Cartesian robot positionThe data structure E6AXIS contains all the axispositions of the axis group.

Aborted BOOL TRUE = statement was aborted before it wasprocessed in the advance run

Error BOOL TRUE = error in function blockErrorID DINT Error number

TC3 Robotics mxAutomation 101Version: 1.4

Page 102: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13.12 Initializing a conveyor

DescriptionThe function block KRC_ConvIniOff is used to initialize a conveyor. The AMI is set to the state #INITIALIZEDand the conveyor distance to 0.

Function block KRC_ConvIniOff

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.ConveyorNumber

INT Number of the conveyor•   1 … 3

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

TC3 Robotics mxAutomation102 Version: 1.4

Page 103: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13.13 Activating a conveyor

DescriptionThe function block KRC_ConvOn activates the AMI, i.e. sets it to the #ACTIVE state. If the AMI is activated,the synchronization signals at the input of interface X33 (Fast Measurement) are evaluated.

The conveyor offset can be detected out in the background leaving the robot controller free to perform othertasks. This allows the robot to carry out on-the-fly tracking of a part on the conveyor.

Function block KRC_ConvOn

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.ConveyorNumber

INT Number of the conveyor•   1 … 3

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.13.14 Tracking a workpiece on the conveyor

DescriptionThe function block KRC_ConvFollow enables the robot to follow a workpiece on the conveyor.KRC_ConvFollow can be used to define a range on the conveyor in which the robot starts to track theworkpiece.

If the workpiece has already exceeded the maximum conveyor distance (input MaxDistance) when thefunction block is called, the output MaxDistanceReached is set.

Note

This function block can only be executed if the AMI has been activated using KRC_Con-vOn.

TC3 Robotics mxAutomation 103Version: 1.4

Page 104: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_ConvFollow

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.ConveyorNumber

INT Number of the conveyor•   1 … 3

StartDistance REAL Distance traveled by the workpiece while therobot waits before starting to track the workpieceon the conveyor.

•   In the case of a linear conveyor:Specification in millimeters

•   In the case of a circular conveyor:Specification in degrees

MaxDistance REAL Maximum distance traveled by the workpiecebefore the robot starts to synchronize itself withthe workpiece.

•   In the case of a linear conveyor:Specification in millimeters

•   In the case of a circular conveyor:Specification in degrees

Note: This input is not monitored duringsynchronized motions of the conveyor. Thedistance covered by the workpiece is monitoredby an interrupt. The corresponding settings aremade in WorkVisual.

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement has been abortedMaxDistanceReached

BOOL TRUE = the maximum distance traveled by theworkpiece (input MaxDistance) was alreadyexceeded at the time of execution. Thestatement was not executed. Execution of theprogram is stopped (WAIT FOR FALSE) and iswaiting for the program to be aborted.

Error BOOL TRUE = error in function block

TC3 Robotics mxAutomation104 Version: 1.4

Page 105: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionErrorID DINT Error number

7.13.15 Picking up a workpiece from the conveyor

DescriptionThe function block KRC_ConvSkip is used to determine which workpieces are to be picked up, e.g. everysecond workpiece, every third workpiece, etc. A total of up to 1024 workpieces can be monitored in thebackground.

If the workpiece has already exceeded the maximum conveyor distance (input MaxDistance) when thefunction block is called, the output MaxDistanceReached is set.

Note

This function block can only be executed if the AMI has been activated using KRC_Con-vOn.

Function block KRC_ConvSkip

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.ConveyorNumber

INT Number of the conveyor•   1 … 3

PieceNumber INT The number entered specifies which workpiecesare to be picked up.Examples:

•   1: Every workpiece is picked up.•   3: Every 3rd workpiece is picked up.•   5: Every 5th workpiece is picked up.

StartDistance REAL Distance traveled by the workpiece while therobot waits before starting to track the workpieceon the conveyor.

•   In the case of a linear conveyor:Specification in millimeters

•   In the case of a circular conveyor:Specification in degrees

TC3 Robotics mxAutomation 105Version: 1.4

Page 106: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionMaxDistance REAL Maximum distance traveled by the workpiece

before the robot starts to synchronize itself withthe workpiece.

•   In the case of a linear conveyor:Specification in millimeters

•   In the case of a circular conveyor:Specification in degrees

Note: This input is not monitored duringsynchronized motions of the conveyor. Thedistance covered by the workpiece is monitoredby an interrupt. The corresponding settings aremade in WorkVisual.

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement has been abortedMaxDistanceReached

BOOL TRUE = the maximum distance traveled by theworkpiece (input MaxDistance) was alreadyexceeded at the time of execution. Thestatement was not executed. Execution of theprogram is stopped (WAIT FOR FALSE) and iswaiting for the program to be aborted.

Error BOOL TRUE = error in function blockErrorID DINT Error number

7.13.16 Activating interrupts for monitoring

DescriptionThe function block KRC_ActivateConvInterrupt activates the following interrupts:

•   Alarm distance monitoring•   Maximum distance monitoring•   $STOPMESS error monitoring

An interrupt cannot be processed until the interrupt has been activated by the main run of the robotinterpreter.

The monitoring functions are activated by the function blocks KRC_ConvFollow and KRC_ConvSkip insofaras these have been successfully synchronized with a workpiece. Calling this function block is only necessaryif the monitoring function is to be ended and reactivated.

Function block KRC_ActivateConvInterrupt

TC3 Robotics mxAutomation106 Version: 1.4

Page 107: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.ConveyorNumber

INT Number of the conveyor•   1 … 3

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

TC3 Robotics mxAutomation 107Version: 1.4

Page 108: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13.17 Deactivating interrupts for monitoring

DescriptionThe function block KRC_DeactivateConvInterrupt deactivates the following interrupts:

•   Alarm distance monitoring•   Maximum distance monitoring•   $STOPMESS error monitoring

Note

It is advisable to call this function block if leaving the conveyor area, or if monitoring is notdesired.

Function block KRC_DeactivateConvInterrupt

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.ConveyorNumber

INT Number of the conveyor•   1 … 3

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.13.18 Activating a motion along a vector

DescriptionThe function block KRC_VectorMoveOn is used to move a robot along a defined vector in Cartesian space.Here, the robot is moved by an external force.

TC3 Robotics mxAutomation108 Version: 1.4

Page 109: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_VectorMoveOn

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.X REAL Defines the direction of the vector

The vector must be specified in relation to theTCP of the TOOL coordinate system. The lasttaught point before the function block is called isthe root point of the vector.Limits:

•   Translational motion (X, Y, Z): max.200 mm in the positive and negativedirections

•   Rotational motion (A, B, C): max. 30° inthe positive and negative directions

Y REALZ REALA REALB REALC REAL

VectorLimit REAL Permissible vector length limit; unit: %If this value is exceeded, the robot is stoppedwith ramp-down braking.

MaxDuration REAL Length of time after which VectorMove isdeactivated if an error has occurred

TorqueOffsetValue

REAL Defines the resistance torque of the robotThe resistance torque is the torque with whichthe robot acts against the external force. It hasthe effect that the robot only begins to movewhen a specific amount of force is exerted.The resistance torque can be defined in additionto the holding torque. The holding torquedepends on the robot position, type, size andadditional load.

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executed

TC3 Robotics mxAutomation 109Version: 1.4

Page 110: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.13.19 Deactivating KRC_VectorMoveOn

DescriptionThe function block KRC_VectorMoveOff is used to deactivate the function block KRC_VectorMoveOn.

Function block KRC_VectorMoveOff

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

TC3 Robotics mxAutomation110 Version: 1.4

Page 111: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13.20 Configuring Cartesian workspaces

DescriptionThe function block KRC_WriteWorkspace is used to configure Cartesian (= cubic) workspaces for the robot.Workspaces serve to protect the system. A maximum of 8 Cartesian workspaces can be configured at anyone time. The workspaces may overlap.

Function block KRC_WriteWorkspace

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.WorkspaceNo INT Number of workspace

•   1 … 8WorkspaceMode

INT Mode for workspaces•   0: #OFF•   1: #INSIDE•   2: #OUTSIDE•   3: #INSIDE_STOP•   4: #OUTSIDE_STOP

Note: Further information about the mode forworkspaces is contained in the operating andprogramming instructions for the KUKA SystemSoftware (KSS).

WorkspaceData

BOX  >>> "Data of a Cartesian workspace". [} 24]

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

TC3 Robotics mxAutomation 111Version: 1.4

Page 112: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13.21 Reading the configuration of Cartesian workspaces

DescriptionThe function block KRC_ReadWorkspace reads the configuration of the Cartesian workspaces for the robot.

Function block KRC_ReadWorkspace

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.WorkspaceNo INT Number of workspace

•   1 … 8

OutputsParameter Type DescriptionDone BOOL TRUE = statement has been executedWorkspaceMode

INT Mode for workspaces•   0: #OFF•   1: #INSIDE•   2: #OUTSIDE•   3: #INSIDE_STOP•   4: #OUTSIDE_STOP

Note: Further information about the mode forworkspaces is contained in the operating andprogramming instructions for the KUKA SystemSoftware (KSS).

WorkspaceData

BOX  >>> "Data of a Cartesian workspace". [} 24]

Error BOOL TRUE = error in function blockErrorID DINT Error number

7.13.22 Configuring axis-specific workspaces

DescriptionThe function block KRC_WriteAxWorkspace is used to configure axis-specific workspaces for the robot.These serve to protect the system. A maximum of 8 axis-specific workspaces can be configured at any onetime. The workspaces may overlap.

TC3 Robotics mxAutomation112 Version: 1.4

Page 113: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_WriteAxWorkspace

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.WorkspaceNo INT Number of workspace

•   1 … 8WorkspaceMode

INT Mode for workspaces•   0: #OFF•   1: #INSIDE•   2: #OUTSIDE•   3: #INSIDE_STOP•   4: #OUTSIDE_STOP

Note: Further information about the mode forworkspaces is contained in the operating andprogramming instructions for the KUKA SystemSoftware (KSS).

WorkspaceData

AXBOX  >>> "Data of an axis-specific workspace". [} 25]

BufferMode INT  >>> "BufferMode". [} 22]

OutputsParameter Type DescriptionErrorID DINT Error numberBusy BOOL TRUE = statement is currently being transferred

or has already been transferredDone BOOL TRUE = statement has been executedAborted BOOL TRUE = statement was aborted before it was

processed in the advance runError BOOL TRUE = error in function block

7.13.23 Reading the configuration of axis-specific workspaces

DescriptionThe function block KRC_ReadAxWorkspace reads the configuration of the axis-specific workspaces for therobot.

TC3 Robotics mxAutomation 113Version: 1.4

Page 114: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Function block KRC_ReadAxWorkspace

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5ExecuteCmd BOOL Starts/buffers the motion in the case of a rising

edge of the signal.WorkspaceNo INT Number of workspace

•   1 … 8

OutputsParameter Type DescriptionDone BOOL TRUE = statement has been executedWorkspaceMode

INT Mode for workspaces•   0: #OFF•   1: #INSIDE•   2: #OUTSIDE•   3: #INSIDE_STOP•   4: #OUTSIDE_STOP

Note: Further information about the mode forworkspaces is contained in the operating andprogramming instructions for the KUKA SystemSoftware (KSS).

WorkspaceData

AXBOX  >>> "Data of an axis-specific workspace". [} 25]

Error BOOL TRUE = error in function blockErrorID DINT Error number

TC3 Robotics mxAutomation114 Version: 1.4

Page 115: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

7.13.24 Reading the status of the workspaces

DescriptionThe function block KRC_ReadWorkstates reads the current status of the workspaces. The status of theworkspaces is updated cyclically.

Function block KRC_ReadWorkstates

InputsParameter Type DescriptionAxisGroupIdx INT Index of axis group

•   1 … 5

OutputsParameter Type DescriptionValid BOOL TRUE = data are validWORKSTATE1 BOOL Status of the workspacesWORKSTATE2 BOOLWORKSTATE3 BOOLWORKSTATE4 BOOLWORKSTATE5 BOOLWORKSTATE6 BOOLWORKSTATE7 BOOLWORKSTATE8 BOOLAXWORKSTATE1 BOOLAXWORKSTATE2 BOOLAXWORKSTATE3 BOOLAXWORKSTATE4 BOOLAXWORKSTATE5 BOOLAXWORKSTATE6 BOOLAXWORKSTATE7 BOOLAXWORKSTATE8 BOOLError BOOL TRUE = error in function block

TC3 Robotics mxAutomation 115Version: 1.4

Page 116: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Programming

Parameter Type DescriptionErrorID DINT Error number

TC3 Robotics mxAutomation116 Version: 1.4

Page 117: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

8 Messages

8.1 Error messages of the mxA interface in the robotinterpreter

No. Message text Cause Remedy0 — — —1 INTERNAL

ERRORInternal exceptional error Contact service.

2 ASSERT FAILED Internal exceptional error3 OVERFLOW

STATUSRETURNQUEUE (MAIN)

There are more than 100 checkback signals relating tostatus changes waiting to be transferred from the robotcontroller to the PLC.The transmission rate is considerably lower than theprocessing speed.

If this is not possible,contact service.

4 OVERFLOWSTATUSRETURNQUEUE(TRIGGER)

5 INVALIDCOMMANDQUEUE INDEX

Internal exceptional error Contact service.

6 INVALIDCOMMANDSTATE

Internal exceptional error

7 INVALIDCOMMAND ID

Internal exceptional error

8 INVALID MOVETYPE

Internal exceptional error

9 OVERFLOWTRIGGER FIFO

Internal exceptional error

10 UNDERFLOWTRIGGER FIFO

Internal exceptional error

11 INVALIDTRIGGER FIFOINDEX

Internal exceptional error

12 EXECUTION OFT_AFTERMISSING

Internal exceptional error

13 EXECUTION OFT_STARTMISSING

Internal exceptional error

14 INVALIDADVANCE_ACT

Internal exceptional error

16 TIMEOUTHEARTBEATFROM PLC

Connection to PLC interrupted: Restore connection, thenacknowledge error:

PLC program stopped Restart the PLC program.Connecting cable defective or not correctly connected Exchange connecting

cable or connect itcorrectly.

17 INVALIDORDERID(INVERSE)

Internal exceptional error Contact service.

TC3 Robotics mxAutomation 117Version: 1.4

Page 118: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy30 INVALID PTP

APOAn invalid approximation parameter has beentransferred for a PTP motion.

 >>> "APO". [} 20]

31 INVALID CP APO An invalid approximation parameter has beentransferred for a CP motion (LIN, CIRC).

32 INVALID BASENUMBER

An invalid number has been programmed in thefunction block KRC_ReadBaseData orKRC_WriteBaseData for the BASE coordinate system.

Specify the number of theBASE coordinate systemthat is currently being usedin the robot controller(parameter BaseNo).

•   1 … 32An invalid number has been programmed in aKRC_Move or KRC_Jog function block for the BASEcoordinate system.

 >>> "COORDSYS". [} 21]

33 INVALID TOOLNUMBER

An invalid number has been programmed in thefunction block KRC_ReadToolData orKRC_WriteToolData for the TOOL coordinate system.

Specify the number of theTOOL coordinate systemthat is currently being usedin the robot controller(parameter ToolNo).

•   1 … 16An invalid number has been programmed in aKRC_Move or KRC_Jog function block for the TOOLcoordinate system.

 >>> "COORDSYS". [} 21]

34 INVALIDVELOCITY

An invalid value has been programmed in a functionblock for the velocity.

Program a valid value(parameter Velocity):

•   0 … 100 %35 INVALID

ACCELERATIONAn invalid value has been programmed in a functionblock for the acceleration.

Program a valid value(parameter Acceleration):

•   0 … 100 %36 INVALID C_PTP An invalid approximation distance has been transferred

for a PTP motion. >>> "APO". [} 20]

37 INVALID C_DIS An invalid distance parameter has been transferred foran approximated motion.

38 INVALID C_VEL An invalid velocity parameter has been transferred foran approximated motion.

39 INVALID C_ORI An invalid orientation parameter has been transferredfor an approximated motion.

40 INVALIDORI_TYPE

An invalid value has been programmed in aKRC_Move or KRC_Jog function block for theorientation control of the TCP.

 >>> "OriType". [} 23]

41 POSITION DATANOTINITIALIZED

No end position transferred when calling a KRC_Movefunction block.

 >>> "E6POS". [} 21]

42 AXISPOSITIONDATA NOTINITIALIZED

No axis position transferred when calling aKRC_MoveAxis function block.

 >>> "E6AXIS". [} 21]

43 INVALIDTRIGGERDISTANCE

An invalid value has been programmed in aKRC_SetDistanceTrigger function block for theswitching point of the trigger.

Program a valid value(parameter Distance):

•   0: Switching actionat the start point

•   1: Switching actionat the end point

44 INVALIDTRIGGER IO

An invalid output has been programmed in aKRC_SetDistanceTrigger or KRC_SetPathTriggerfunction block.

Program a valid value(parameter Output):

•   1 … 2 048

TC3 Robotics mxAutomation118 Version: 1.4

Page 119: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy45 INVALID

TRIGGERPULSE

An invalid value has been programmed in aKRC_SetDistanceTrigger or KRC_SetPathTriggerfunction block for the length of the pulse.

Program a valid value(parameter Pulse):

•   0.1 … 3.0 s•   0.0 s (No pulse

active)46 INVALID

CIRC_HPNo auxiliary position transferred when calling aKRC_MoveCirc function block.

 >>> "E6AXIS". [} 21]

47 INVALIDINTERRUPT IO

The number of the digital input to which the interrupt isdeclared is invalid (function blockKRC_DeclareInterrupt).

Program a valid value(parameter Input):

•   1 … 2 04848 INVALID

INTERRUPTPRIORITY

An invalid number was transferred when calling aKRC_…Interrupt function block.

Program a valid value(parameter Interrupt):

•   1 … 849 INTERRUPT

NOT DECLAREDInterrupt has not been declared.  >>> "Declaring

interrupts". [} 52]50 INVALID

INTERRUPTACTION

The interrupt reaction programmed when the theinterrupt was declared is invalid.

 >>> "Declaringinterrupts". [} 52]

51 INVALID IONUMBER

The number of the digital input to which the interrupt isdeclared is invalid (function blockKRC_DeclareInterrupt).

Program a valid value(parameter Input):

•   1 … 2 04852 INVALID PULSE

DURATIONAn invalid value has been programmed in the functionblock KRC_WriteDigitalOutput for the length of thepulse.

Program a valid value(parameter Pulse):

•   0.1 … 3.0 s•   0.0 s (No pulse

active)53 INVALID

BUFFER_MODEAn invalid BufferMode has been programmed in afunction block, e.g. DIRECT mode is not available forcertain function blocks.

 >>> "BufferMode". [} 22]

54 INVALID TOOLNUMBER FORLOAD_DATA

An invalid number has been programmed in thefunction block KRC_ReadLoadData orKRC_WriteLoadData for reading or writing the loaddata or supplementary load data.

 >>> "Writing load data".[} 48]

55 INVALIDANALOG IONUMBER

An invalid value has been programmed in a functionblock for the analog input or output.

Program a valid value(parameter Number):

•   1 … 3256 INVALID

IPO_MODEAn invalid value has been programmed in a functionblock for the interpolation mode, e.g. in a KRC_Movefunction block.

 >>> "COORDSYS". [} 21]

57 INVALIDCIRC_TYPE

An invalid value has been programmed in aKRC_MoveCirc function block for the orientationcontrol during the circular motion.

 >>> "CircType". [} 23]

58 INVALID FRAMEDATA

Invalid TOOL or BASE data have been programmed ina KRC_WriteToolData or KRC_WriteBaseDatafunction block.

 >>> "Writing BASE data".[} 46]

59 INVALID LOADDATA

Invalid load data have been programmed in aKRC_WriteLoadData function block.

 >>> "Writing load data".[} 48]

60 INVALIDSOFT_END(REVERSED)

Error writing the software limit switches: positivesoftware limit switch < negative software limit switch(function block KRC_WriteSoftEnd orKRC_WriteSoftEndEx)

Program lower values forthe negative software limitswitch than for the positivesoftware limit switch.

TC3 Robotics mxAutomation 119Version: 1.4

Page 120: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy61 INVALID

INTERRUPTSTATE

Internal exceptional error Contact service.

62 INVALID SYSVAR INDEX

An index for which no system variable is stored hasbeen transferred in a KRC_ReadSysVar orKRC_WriteSysVar function block.

Program a valid value(parameter Index).

63 INVALID SYSVAR VALUE

An invalid value has been programmed in aKRC_WriteSysVar function block for the systemvariable.

Program a valid value(parameter Value1 …Value10).

64 SYS VAR NOTWRITEABLE

An error occurred when writing a system variable.The specified system variable does not exist or may not be written in the currentoperating state.

65 INVALID REALVALUE

The programmed Real value is invalid. Program a valid value:•   -2,147,483,500 …

+2,147,483,50066 ERROR

SETTINGOUTPUT

Error writing a digital output. The output may alreadybe assigned by the system.

Use a different digitaloutput (parameterNumber):

•   1 … 2 04867 ERROR

SETTINGSOFTEND

Error writing the software limit switches: One possibleerror, for example, is writing a rotational axis with avalue outside the range +/-360°.

Program valid values forthe software limit switches(see machine data).

68 INVALID TECHFUNCTIONINDEX

A TechFunctionID for which no technology function isstored has been transferred in a KRC_TechFunctionfunction block.

Contact service.

69 INVALID TECHFUNCTIONPARAMETER

An invalid value has been programmed in aKRC_TechFunction function block for a parameter.

Contact service.

70 INVALIDPARAMETERVALUE

An invalid value has been programmed in the calledfunction block for one or more parameters.

Program valid values forthe parameters.

TC3 Robotics mxAutomation120 Version: 1.4

Page 121: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

8.2 Error messages of the mxA interface in the submitinterpreter

No. Message text Cause Remedy401 INTERNAL

ERRORInternal exceptional error Contact service.

402 ASSERT FAILED Internal exceptional error403 INVALID

COMMAND IDInternal exceptional error

404 INVALIDCOMMANDSTATE

Internal exceptional error

405 OVERFLOWCOMMANDQUEUE

Internal exceptional error

406 INVALIDCOMMANDQUEUE INDEX

Internal exceptional error

407 INVALIDCOMMAND(PRE) QUEUEINDEX

Internal exceptional error

408 INVALIDWRITE_Q_IDXANDWRITE_PRE_Q_IDX

Internal exceptional error

409 OVERFLOWSTATUSRETURNQUEUE(SUBMIT)

There are more than 100 checkback signals relating tostatus changes waiting to be transferred from the robotcontroller to the PLC.The transmission rate is considerably lower than theprocessing speed.

If this is not possible,contact service.

410 INVALIDFIELDBUSTELEGRAMMLENGTH

Internal exceptional error Contact service.

411 TIMEOUTABORT_REQUEST

Internal exceptional error

412 INVALIDCHECKSUM PLC-> KRC

The checksum for data transmission from the PLC to the robot controller is invalid:Error during start-up:

•   EtherCAT configuration in WorkVisual orTwinCAT faulty

Check configuration inWorkVisual and TwinCATand configure EtherCATcorrectly.

Error during operation:•   Bit error during data transfer

Contact service.

413 INVALID MOVETYPE

Internal exceptional error Contact service.

414 TIMEOUTHEARTBEATFROM PLC

Connection to PLC interrupted: Restore connection, thenacknowledge error:

PLC program stopped Restart the PLC program.Submit interpreter deselected or stopped Restart submit interpreter.Connecting cable defective or not correctly connected Exchange connecting

cable or connect itcorrectly.

TC3 Robotics mxAutomation 121Version: 1.4

Page 122: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy416 SYS VAR NOT

INITIALIZEDAn error occurred when reading a system variable.The specified system variable does not exist or may not be read in the currentoperating state.Example: $POS_ACT cannot be accessed until a BCO run has been carried out.

417 UNDERFLOWOF NIBBLE

Internal exceptional error Contact service.

418 OVERFLOW OFNIBBLE

Internal exceptional error

419 UNDERFLOWOF BYTE

Internal exceptional error

420 OVERFLOW OFBYTE

Internal exceptional error

421 UNDERFLOWOF INT16

Internal exceptional error

422 OVERFLOW OFINT16

Internal exceptional error

423 UNDERFLOWOF INT32

Internal exceptional error

424 OVERFLOW OFINT32

Internal exceptional error

425 UNDERFLOWOF REAL

Internal exceptional error

426 OVERFLOW OFREAL

Internal exceptional error

430 INVALID PTPAPO

An invalid approximation parameter has beentransferred for a PTP motion.

 >>> "APO". [} 20]

431 INVALID CP APO An invalid approximation parameter has beentransferred for a CP motion (LIN, CIRC).

432 INVALID BASENUMBER

An invalid number has been programmed in thefunction block KRC_ReadBaseData orKRC_WriteBaseData for the BASE coordinate system.

Specify the number of theBASE coordinate systemthat is currently being usedin the robot controller(parameter BaseNo).

•   1 … 32An invalid number has been programmed in aKRC_Move or KRC_Jog function block for the BASEcoordinate system.

 >>> "COORDSYS". [} 21]

433 INVALID TOOLNUMBER

An invalid number has been programmed in thefunction block KRC_ReadToolData orKRC_WriteToolData for the TOOL coordinate system.

Specify the number of theTOOL coordinate systemthat is currently being usedin the robot controller(parameter ToolNo).

•   1 … 16An invalid number has been programmed in aKRC_Move or KRC_Jog function block for the TOOLcoordinate system.

 >>> "COORDSYS". [} 21]

434 INVALIDVELOCITY

An invalid value has been programmed in a functionblock for the velocity.

Program a valid value(parameter Velocity):

•   0 … 100 %435 INVALID

ACCELERATIONAn invalid value has been programmed in a functionblock for the acceleration.

Program a valid value(parameter Acceleration):

•   0 … 100 %

TC3 Robotics mxAutomation122 Version: 1.4

Page 123: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy436 INVALID C_PTP An invalid approximation distance has been transferred

for a PTP motion. >>> "APO". [} 20]

437 INVALID C_DIS An invalid distance parameter has been transferred foran approximated motion.

438 INVALID C_VEL An invalid velocity parameter has been transferred foran approximated motion.

439 INVALID C_ORI An invalid orientation parameter has been transferredfor an approximated motion.

440 INVALIDORI_TYPE

An invalid value has been programmed in aKRC_Move or KRC_Jog function block for theorientation control of the TCP.

 >>> "OriType". [} 23]

441 POSITION DATANOTINITIALIZED

No end position transferred when calling a KRC_Movefunction block.

 >>> "E6POS". [} 21]

442 AXISPOSITIONDATA NOTINITIALIZED

No axis position transferred when calling aKRC_MoveAxis function block.

 >>> "E6AXIS". [} 21]

443 INVALIDTRIGGERDISTANCE

An invalid value has been programmed in theKRC_SetDistanceTrigger function block for theswitching point of the trigger.

Program a valid value(parameter Distance):

•   0: Switching actionat the start point

•   1: Switching actionat the end point

444 INVALIDTRIGGER IO

An invalid output has been programmed in aKRC_SetDistanceTrigger or KRC_SetPathTriggerfunction block.

Program a valid value(parameter Output):

•   1 … 2 048445 INVALID

TRIGGERPULSE

An invalid value has been programmed in aKRC_SetDistanceTrigger or KRC_SetPathTriggerfunction block for the length of the pulse.

Program a valid value(parameter Pulse):

•   0.1 … 3.0 s•   0.0 s (No pulse

active)446 INVALID

CIRC_HPNo auxiliary position transferred when calling aKRC_MoveCirc function block.

 >>> "E6AXIS". [} 21]

447 INVALIDINTERRUPT IO

The number of the digital input to which the interrupt isdeclared is invalid (function blockKRC_DeclareInterrupt).

Program a valid value(parameter Input):

•   1 … 2 048448 INVALID

INTERRUPTNUMBER/PRIORITY

An invalid number was transferred when calling aKRC_…Interrupt function block.

Program a valid value(parameter Interrupt):

•   1 … 8

449 INTERRUPTNOT DECLARED

Interrupt has not been declared.  >>> "Declaringinterrupts". [} 52]

450 INVALIDINTERRUPTACTION

The interrupt reaction programmed when the theinterrupt was declared is invalid.

 >>> "Declaringinterrupts". [} 52]

451 INVALID IONUMBER

The number of the digital input to which the interrupt isdeclared is invalid (function blockKRC_DeclareInterrupt).

Program a valid value(parameter Input):

•   1 … 2 048452 INVALID PULSE

DURATIONAn invalid value has been programmed in the functionblock KRC_WriteDigitalOutput for the length of thepulse.

 >>> "Writing a digitaloutput". [} 39]

453 INVALIDBUFFER_MODE

An invalid BufferMode has been programmed in afunction block, e.g. DIRECT mode is not available forcertain function blocks.

 >>> "BufferMode". [} 22]

TC3 Robotics mxAutomation 123Version: 1.4

Page 124: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy454 INVALID TOOL

NUMBER FORLOAD_DATA

An invalid number has been programmed in thefunction block KRC_ReadLoadData orKRC_WriteLoadData for reading or writing the loaddata or supplementary load data.

 >>> "Writing load data".[} 48]

455 INVALIDANALOG IONUMBER

An invalid number has been programmed for theanalog input or output in a function block.

Program a valid number(parameter Number):

•   1 … 32456 INVALID

IPO_MODEAn invalid value has been programmed in a functionblock for the interpolation mode, e.g. in a KRC_Movefunction block.

 >>> "COORDSYS". [} 21]

457 INVALIDCIRC_TYPE

An invalid value has been programmed in aKRC_MoveCirc function block for the orientationcontrol during the circular motion.

 >>> "CircType". [} 23]

458 INVALID FRAMEDATA

Invalid TOOL or BASE data have been programmed ina KRC_WriteToolData or KRC_WriteBaseDatafunction block.

 >>> "Writing BASE data".[} 46]

459 INVALID LOADDATA

Invalid load data have been programmed in aKRC_WriteLoadData function block.

 >>> "Writing load data".[} 48]

460 INVALIDSOFT_END(REVERSED)

Error writing the software limit switches: Positivesoftware limit switch < negative software limit switch

Program lower values forthe negative software limitswitch than for the positivesoftware limit switch.

461 INVALIDINTERRUPTSTATE

Internal exceptional error Contact service.

462 INVALID SYSVAR INDEX

An index for which no system variable is stored hasbeen transferred in a KRC_ReadSysVar orKRC_WriteSysVar function block.

Program a valid value(parameter Index).

463 INVALID SYSVAR VALUE

An invalid value has been programmed in aKRC_WriteSysVar function block for the systemvariable.

Program a valid value(parameter Value1 …Value10).

464 SYS VAR NOTWRITEABLE

An error occurred when writing a system variable.The specified system variable does not exist or may not be written in the currentoperating state.

465 INVALID REALVALUE

The programmed Real value is invalid. Program a valid value:•   -2,147,483,500 …

+2,147,483,500466 ERROR

SETTINGOUTPUT

Error writing an output. The output may already beassigned by the system.

Use a different digitaloutput (parameterNumber):

•   1 … 2 048467 ERROR

SETTINGSOFTEND

An error occurred when writing a software limit switch.One possible error, for example, is writing a rotationalaxis with a value outside the range +/-360°.

Program valid values forthe software limit switches(see machine data).

468 INVALID TECHFUNCTIONINDEX

A TechFunctionID for which no technology function isstored has been transferred in a KRC_TechFunctionfunction block.

Contact service.

469 INVALID TECHFUNCTIONPARAMETER

An invalid value has been programmed in aKRC_TechFunction function block for a parameter.

Contact service.

TC3 Robotics mxAutomation124 Version: 1.4

Page 125: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy470 INVALID

PARAMETERVALUE

An invalid value has been programmed in the calledfunction block for one or more parameters.

Program valid values forthe parameters.

8.3 Errors in the function blockNo. Message text Cause Remedy501 INTERNAL

ERRORInternal exceptional error Contact service.

502 INVALIDBUFFER_MODE

BufferMode 0: DIRECT is not permissible for thisfunction block.

Program the correct mode:•   1: ABORTING•   2: BUFFERED

503 INVALID MXAVERSION

The software versions of the mxA interface and PLClibrary are not compatible.

 >>> "Initializing the mxAinterface". [} 28]

504 INVALIDOVERRIDE

Invalid override value in the function blockKRC_SetOverride

Program a valid value(parameter Override).

•   0 … 100 %505 MAX GROUP

REF IDXREACHED

The axis group index specified in the function blockKRC_ReadAxisGroup is already assigned.

Only instance theKRC_ReadAxisGroupfunction block once in aprogram.

506 INVALIDGROUPREFIDX

The axis group index specified in the function block isinvalid.

Specify a valid index forthe axis group (parameterAxisGroupIdx).

507 INVALID FBORDER

The order in which the function blocks were called isinvalid.

Program the functionblocks in the correct order.

508 CONNECTIONNOTINITIALIZED

No statements can be transferred, as the mxAinterface has not been initialized.

 >>> "Initializing the mxAinterface". [} 28]

509510

NOCONNECTIONTO KRCTIMEOUTHEARTBEATFROM KRC

Connection to robot controller interrupted: Restore connection, thenacknowledge error:

Robot controller is switched off Reboot the robotcontroller.

Submit interpreter deselected or stopped Restart submit interpreter.Bus error or I/O configuration faulty Check I/O configuration.Connecting cable defective or not correctly connected Exchange connecting

cable or connect itcorrectly.

Maximum cycle time of the submit interpreter is tooshort (only for message no. 510)

Increase the value forMaxSubmitCycle in thefunction block KRC_DIAG.

511 TIMEOUT CMDINTERFACEBLOCKED

The ExecuteCmd input was reset before the Busysignal was set.

Acknowledge the messageand in future do not resetthe ExecuteCmd input untilthe Done, Error or Abortedsignal has been set.

512 INVALIDCHECKSUMKRC -> PLC

The checksum for data transmission from the robot controller to the PLC is invalid.Error during start-up:

•   EtherCAT configuration in WorkVisual orTwinCAT faulty

Check configuration inWorkVisual and TwinCATand configure EtherCATcorrectly.

Error during operation:•   Bit error during data transfer

Contact service.

TC3 Robotics mxAutomation 125Version: 1.4

Page 126: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy513 INVALID

POSITIONINDEX

An invalid number for the position to be taught wastransferred in the function block KRC_TouchUP.

Program a valid value(parameter Index):

•   1 … 100514 POS_ACT

INVALIDThe current position cannot be taught, as the positiondata are invalid (no BCO).

Establish BCO with aRESET at the functionblockKRC_AutomaticExternal.

517 INVALIDCOMMAND SIZE

Internal exceptional error Contact service.

518 KRC STOPMESSACTIVE

Group error which prevents motion enable Check how the error wastriggered and eliminate theerror.

•   Analyze themessages in themessage window ofthe KUKA smartHMI.

•   Read the currenterror state of therobot controller withthe function blockKRC_ReadKRCError.

519 INVALIDABSOLUTEVELOCITY

An invalid value has been programmed for theparameter AbsoluteVelocity in a KRC_Move functionblock.

Contact service.

520 VELOCITYCONFLICT

More than one value has been programmed for thevelocity in a KRC_Move function block.

Contact service.

521 INVALIDPARAMETERCOUNT

An invalid value has been programmed for theparameter ParameterCount in a KRC_TechFunctionfunction block.

Contact service.

522 INVALIDPARAMETERUSAGE

The parameter ParameterCount has been incorrectlyconfigured in the KRC_TechFunction function block.

Contact service.

523 INVALIDOPERATIONMODE

The robot is in the incorrect operating mode. Select Automatic Externalmode.

524 USER_SAFSIGNAL NOTACTIVE

The operator safety is violated. Close the safeguard andacknowledge the closedstate.

525 ALARM_STOPSIGNAL NOTACTIVE

The safety configuration is incorrect and anEMERGENCY STOP has been triggered.

Check and modify thesafety configuration of thesystem (robot controllerand PLC).

No connection to the EMERGENCY STOP of thesystem

Check the EMERGENCYSTOP of the system andreestablish the connection.

The inputs and outputs of the Automatic Externalinterface are incorrectly configured.

1.   In the main menu,select Display > Inputs/outputs > AutomaticExternal.2.   Check and modify theconfiguration of the inputsand outputs.

TC3 Robotics mxAutomation126 Version: 1.4

Page 127: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy526 APPL_RUN

SIGNAL ACTIVERESET cannot be carried out because a robot programis running.

1.   Wait until the robotprogram has beenexecuted.2.   Execute the statementagain.

527 TIMEOUTMESSAGECONFIRM

The message cannot be acknowledged by the PLC. Acknowledge the messageon the robot controller.

528 TIMEOUT MXAMESSAGECONFIRM

An error cannot be acknowledged in the function blockKRC_AutoStart.

Contact service.

529 TIMEOUTSWITCHINGDRIVES ON

Internal exceptional error Contact service.

530 TIMEOUTPROGRAMSELECTION

Internal exceptional error

531 TIMEOUTPROGRAMSTART

Internal exceptional error

532 MOVE_ENABLESIGNAL NOTACTIVE

The robot does not have motion enable Issue motion enable withthe parameterMOVE_ENABLE.

533 INVALIDAXIS_VALUES

In the function block KRC_Forward, not all axis anglesrequired for execution are defined.

Define the missing axisangles in the function blockKRC_Forward.

534 INVALID $BASE Internal exceptional error Contact service.535 INVALID $TOOL Internal exceptional error536 INVALID

SOFTENDError in the function block KRC_Forward:The specified axis angles lie outside of the softwarelimit switches.

Enter axis angles that liewithin the software limitswitches (parameterAxis_Values).or: Modify the softwarelimit switches.

537 ERR MATHTRAFO

Error in the function block KRC_Forward:The robot cannot reach the specified axis angles.

Enter axis angles that therobot can reach(parameter Axis_Values).

538 INVALIDAXIS_VALUES

Error in the function block KRC_Inverse:•   The Cartesian robot position has not been fully

specified.•   The axis-specific values at the start point of the

motion have not been fully specified.

•   Fully specify theCartesian robotposition (parameterPosition).

•   Fully specify theaxis-specific valuesat the start point ofthe motion(parameterStart_Axis).

539 INVALID $BASE Internal exceptional error Contact service.540 INVALID $TOOL Internal exceptional error541 INVALID

SOFTENDError in the function block KRC_Inverse:The specified axis-specific values at the start point ofthe motion lie outside of the software limit switches.

Enter values that lie withinthe software limit switches(parameter Start_Axis).or: Modify the softwarelimit switches.

TC3 Robotics mxAutomation 127Version: 1.4

Page 128: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy542 ERR MATH

TRAFOError in the function block KRC_Inverse:The robot cannot reach the specified axis-specificvalues at the start point of the motion.

Enter values that the robotcan reach (parameterStart_Axis).

543 INVALIDEXECUTE

During a linked motion capable of being approximated,the Execute input was reset before the ComDonesignal was set by the function block.

Acknowledge the messageand in the future do notreset the Execute inputuntil the ComDone signalhas been set by thefunction block.

544 INVALIDDEV_VEL_CP

Initialization of the mxA interface on the robot controllerhas not yet been completed or has an error.

Check whether the Doneoutput on the functionblock KRC_Initialize isactive.

8.4 ProConOS errorsNo. Message text Cause Remedy701 INTERNAL ERROR Internal exceptional error Contact service.702 ASSERT FAILED Internal exceptional error703 INVALID COMMAND

IDInternal exceptional error

704 INVALID HEADERDATA

Internal exceptional error

709 ERROR READINGSOFTPLC

Internal exceptional error

710 ERROR FROM KRCSUBMIT

Internal exceptional error

712 INVALIDCHECKSUM PLC -> KRC

The checksum for datatransmission from the PLC to therobot controller is invalid.

Contact service.

713 INVALID MOVETYPE

An invalid value has beenprogrammed in a KRC_Movefunction block for the parameterMoveType.

Contact service.

730 INVALID PTP APO An invalid approximationparameter has been transferredfor a PTP motion.

 >>> "APO". [} 20]

731 INVALID CP APO An invalid approximationparameter has been transferredfor a CP motion (LIN, CIRC).

732 INVALID BASENUMBER

An invalid number has beenprogrammed in the function blockKRC_ReadBaseData orKRC_WriteBaseData for theBASE coordinate system.

Specify the number of the BASEcoordinate system that iscurrently being used in the robotcontroller (parameter BaseNo).

•   1 … 32An invalid number has beenprogrammed in a KRC_Move orKRC_Jog function block for theBASE coordinate system.

 >>> "COORDSYS". [} 21]

TC3 Robotics mxAutomation128 Version: 1.4

Page 129: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy733 INVALID TOOL

NUMBERAn invalid number has beenprogrammed in the function blockKRC_ReadToolData orKRC_WriteToolData for theTOOL coordinate system.

Specify the number of the TOOLcoordinate system that iscurrently being used in the robotcontroller (parameter ToolNo).

•   1 … 16An invalid number has beenprogrammed in a KRC_Move orKRC_Jog function block for theTOOL coordinate system.

 >>> "COORDSYS". [} 21]

734 INVALID VELOCITY An invalid value has beenprogrammed in a function blockfor the velocity.

Program a valid value (parameterVelocity):

•   0 … 100 %735 INVALID

ACCELERATIONAn invalid value has beenprogrammed in a function blockfor the acceleration.

Program a valid value (parameterAcceleration):

•   0 … 100 %736 INVALID C_PTP An invalid approximation distance

has been transferred for a PTPmotion.

 >>> "APO". [} 20]

737 INVALID C_DIS An invalid distance parameterhas been transferred for anapproximated motion.

738 INVALID C_VEL An invalid velocity parameter hasbeen transferred for anapproximated motion.

739 INVALID C_ORI An invalid orientation parameterhas been transferred for anapproximated motion.

740 INVALID ORI_TYPE An invalid value has beenprogrammed in a KRC_Move orKRC_Jog function block for theorientation control of the TCP.

 >>> "OriType". [} 23]

741 POSITION DATANOT INITIALIZED

No end position transferred whencalling a KRC_Move functionblock.

 >>> "E6POS". [} 21]

742 AXISPOSITIONDATA NOTINITIALIZED

No axis position transferred whencalling a KRC_MoveAxis functionblock.

 >>> "E6AXIS". [} 21]

743 INVALID TRIGGERDISTANCE

An invalid value has beenprogrammed in aKRC_SetDistanceTriggerfunction block for the switchingpoint of the trigger.

Program a valid value (parameterDistance):

•   0: Switching action at thestart point

•   1: Switching action at theend point

744 INVALID TRIGGERIO

An invalid output has beenprogrammed in aKRC_SetDistanceTrigger orKRC_SetPathTrigger functionblock.

Program a valid value (parameterOutput):

•   1 … 2 048

745 INVALID TRIGGERPULSE

An invalid value has beenprogrammed in aKRC_SetDistanceTrigger orKRC_SetPathTrigger functionblock for the length of the pulse.

Program a valid value (parameterPulse):

•   0.1 … 3.0 s•   0.0 s (No pulse active)

746 INVALID CIRC_HP No auxiliary position transferredwhen calling a KRC_MoveCircfunction block.

 >>> "E6AXIS". [} 21]

TC3 Robotics mxAutomation 129Version: 1.4

Page 130: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy747 INVALID

INTERRUPT IOThe number of the digital input towhich the interrupt is declared isinvalid (function blockKRC_DeclareInterrupt).

Program a valid value (parameterInput):

•   1 … 2 048

748 INVALIDINTERRUPTPRIORITY

An invalid number wastransferred when calling aKRC_…Interrupt function block.

Program a valid value (parameterInterrupt):

•   1 … 8750 INVALID

INTERRUPT ACTIONThe interrupt reactionprogrammed when the theinterrupt was declared is invalid.

 >>> "Declaring interrupts".[} 52]

751 INVALID IO NUMBER The number of the digital input towhich the interrupt is declared isinvalid (function blockKRC_DeclareInterrupt).

Program a valid value (parameterInput):

•   1 … 2 048

752 INVALID PULSEDURATION

An invalid value has beenprogrammed in the function blockKRC_WriteDigitalOutput for thelength of the pulse.

Program a valid value (parameterPulse):

•   0.1 … 3.0 s•   0.0 s (No pulse active)

753 INVALIDBUFFER_MODE

An invalid BufferMode has beenprogrammed in a function block,e.g. DIRECT mode is notavailable for certain functionblocks.

 >>> "BufferMode". [} 22]

754 INVALID TOOLNUMBER FORLOAD_DATA

An invalid number has beenprogrammed in the function blockKRC_ReadLoadData orKRC_WriteLoadData for readingor writing the load data orsupplementary load data.

 >>> "Writing load data". [} 48]

755 INVALID ANALOG IONUMBER

An invalid value has beenprogrammed in a function blockfor the analog input or output.

Program a valid value (parameterNumber):

•   1 … 32756 INVALID IPO_MODE An invalid value has been

programmed in a function blockfor the interpolation mode, e.g. ina KRC_Move function block.

 >>> "COORDSYS". [} 21]

757 INVALID CIRC_TYPE An invalid value has beenprogrammed in a KRC_MoveCircfunction block for the orientationcontrol during the circular motion.

 >>> "CircType". [} 23]

758 INVALID FRAMEDATA

Invalid TOOL or BASE data havebeen programmed in aKRC_WriteToolData orKRC_WriteBaseData functionblock.

 >>> "Writing BASE data". [} 46]

759 INVALID LOAD DATA Invalid load data have beenprogrammed in aKRC_WriteLoadData functionblock.

 >>> "Writing load data". [} 48]

760 INVALID SOFT_END(REVERSED)

Error writing the software limitswitches: positive software limitswitch < negative software limitswitch (function blockKRC_WriteSoftEnd orKRC_WriteSoftEndEx)

Program lower values for thenegative software limit switchthan for the positive software limitswitch.

TC3 Robotics mxAutomation130 Version: 1.4

Page 131: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy765 INVALID REAL

VALUEThe programmed Real value isinvalid.

•   -2,147,483,500 …+2,147,483,500

770 INVALIDPARAMETER VALUE

An invalid value has beenprogrammed in the calledfunction block for one or moreparameters.

Program valid values for theparameters.

771 INVALID ADVANCECOUNT

In the function blockKRC_SetAdvance, an invalidvalue has been programmed forthe number of functions whichare to be transferred prior to thefirst robot motion.

Program a valid value (parameterCount):

•   1 … 50

772 INVALIDMAXWAITTIME

In the function blockKRC_SetAdvance, an invalidvalue has been programmed forthe maximum wait time beforethe start of program execution ifthe set number of functions in theparameter Count is not reached.

Program a valid value (parameterMaxWaitTime):

•   1 … 60 000 ms

773 INVALID ADVANCEMODE

In the function blockKRC_SetAdvance, an invalidvalue has been programmed forWait mode.

Program a valid value (parameterMode):

•   0 … 2

774 INVALID DISTARTNUMBER

In the function blockKRC_ReadDigitalInputArray, aninvalid value has beenprogrammed for the number ofthe first digital input that is called.

Program a valid value (parameterStartnumber):

•   1 … 2 048

775 INVALID DI LENGTH In the function blockKRC_ReadDigitalInputArray, aninvalid value has beenprogrammed for the number ofinputs that are polled.

Program a valid value (parameterLength):

•   1 … 2 00

776 INVALIDCONVEYORNUMBER

In the called function block, aninvalid number has beenprogrammed for the number ofthe conveyor.

Program a valid value (parameterConveyorNumber):

•   1 … 3

777 INVALIDCONVEYORSTARTDISTANCE

In the function blockKRC_ConvFollow orKRC_ConvSkip, an invalid valuehas been programmed for thedistance traveled by theworkpiece while the robot waitsbefore starting to track theworkpiece on the conveyor.

Program a valid value (parameterStartDistance):

•   In the case of a linearconveyor: Specification inmillimeters

•   In the case of a circularconveyor: Specification indegrees

778 INVALIDCONVEYORMAXDISTANCE

In the function blockKRC_ConvFollow orKRC_ConvSkip, an invalid valuehas been programmed for themaximum distance traveled bythe workpiece before the robotstarts to synchronize itself withthe workpiece.

Program a valid value (parameterMaxDistance):

•   In the case of a linearconveyor: Specification inmillimeters

•   In the case of a circularconveyor: Specification indegrees

TC3 Robotics mxAutomation 131Version: 1.4

Page 132: Manual TC3 Robotics mxAutomation - BeckhoffManual TC3 Robotics mxAutomation TwinCAT 3 1.4 2016-11-17 TF5120 ... For optimal use of KUKA robots, ... training at KUKA . · 2016-11-18

Messages

No. Message text Cause Remedy779 INVALID

CONVEYORPIECENUMBER

In the function blockKRC_ConvSkip, an invalid valuehas been programmed for thenumber specifying whichworkpieces are to be picked up.

Program a valid value (parameterPieceNumber).Examples:

•   1: Every workpiece ispicked up.

•   3: Every 3rd workpiece ispicked up.

780 INVALIDWORKSPACENO

In the called function block, aninvalid number has beenprogrammed for the number ofthe workspace.

Program a valid value (parameterWorkspaceNo):

•   1 … 8

781 INVALIDWORKSPACEMODE

In the called function block, aninvalid number has beenprogrammed for the mode forworkspaces.

Program a valid value (parameterWorkspaceMode):

•   0 … 4

782 INVALIDWORKSPACEPART

Internal exceptional error Contact service.

801 STOPMESS ACTIVE Group error which preventsmotion enable

Check how the error wastriggered and eliminate the error.

•   Analyze the messages inthe message window of theKUKA smartHMI.

•   Read the current errorstate of the robot controllerwith the function blockKRC_ReadKRCError.

TC3 Robotics mxAutomation132 Version: 1.4