Author(s): KUKA
Year: 2015
Language: English
Commentary: decrypted from FB8B652C7EE149007A0DCB5DBC5330DB source file
KUKA Sunrise.OS 1.8 KUKA Sunrise.Workbench 1.8
1 Introduction
1.1 Target group
1.2 Industrial robot documentation
1.3 Representation of warnings and notes
1.4 Trademarks
1.5 Terms used
2 Product description
2.1 Overview of the robot system
2.2 Overview of the software components
2.3 Overview of KUKA Sunrise.OS
2.4 Overview of KUKA Sunrise.Workbench
2.5 Intended use of the system software
3 Safety
3.1 Legal framework
3.1.1 Liability
3.1.2 Intended use of the industrial robot
3.1.3 EC declaration of conformity and declaration of incorporation
3.2 Safety functions
3.2.1 Terms used
3.2.2 Personnel
3.2.3 Workspace, safety zone and danger zone
3.2.4 Safety-oriented functions
3.2.4.1 EMERGENCY STOP device
3.2.4.2 Enabling device
3.2.4.3 Operator safety
3.2.4.4 External EMERGENCY STOP device
3.2.4.5 External safety stop 1 (path-maintaining)
3.2.4.6 External enabling device
3.2.4.7 External safe operational stop
3.2.5 Triggers for safety-oriented stop reactions
3.2.6 Non-safety-oriented functions
3.2.6.1 Mode selection
3.2.6.2 Software limit switches
3.3 Additional protective equipment
3.3.1 Jog mode
3.3.2 Labeling on the industrial robot
3.3.3 External safeguards
3.4 Safety measures
3.4.1 General safety measures
3.4.2 Transportation
3.4.3 Start-up and recommissioning
3.4.4 Manual mode
3.4.5 Automatic mode
3.4.6 Maintenance and repair
3.4.7 Decommissioning, storage and disposal
3.4.8 Safety measures for “single point of control”
3.5 Applied norms and regulations
4 Installing KUKA Sunrise.Workbench
4.1 PC system requirements
4.2 Installing Sunrise.Workbench
4.3 Uninstalling Sunrise.Workbench
5 Operation of KUKA Sunrise.Workbench
5.1 Starting Sunrise.Workbench
5.2 Overview of the user interface of Sunrise.Workbench
5.2.1 Repositioning the views
5.2.2 Displaying different perspectives on the user interface
5.2.3 Toolbars
5.3 Creating a Sunrise project with a template
5.4 Creating a new robot application
5.4.1 Creating a new Java package
5.4.2 Creating a robot application with a package
5.4.3 Creating a robot application for an existing package
5.5 Creating a new background task
5.5.1 Creating a background task with a package
5.5.2 Creating a background task for an existing package
5.6 Workspace
5.6.1 Creating a new workspace
5.6.2 Switching to an existing workspace
5.6.3 Switching between the most recently opened workspaces
5.6.4 Archiving projects
5.6.5 Loading projects from archive to the workspace
5.6.6 Loading projects from the directory to the workspace
5.7 Sunrise projects with referenced Java projects
5.7.1 Creating a new Java project
5.7.1.1 Inserting robot-specific class libraries in a Java project
5.7.2 Referencing Java projects
5.7.3 Canceling the reference to Java projects
5.8 Renaming an element in the Package Explorer
5.8.1 Renaming a project or Java package
5.8.2 Renaming a Java file
5.9 Removing an element from Package Explorer
5.9.1 Deleting an element from a project
5.9.2 Removing a project from Package Explorer
5.9.3 Deleting a project from the workspace
5.10 Activating the automatic change recognition
6 Operating the KUKA smartPAD
6.1 KUKA smartPAD control panel
6.1.1 Front view
6.1.2 Rear view
6.2 Switching the robot controller on/off
6.2.1 Switching on the robot controller and starting the system software
6.2.2 Switching off the robot controller
6.3 Automatic update of the smartPAD software
6.4 Performing a PDS firmware update
6.5 KUKA smartHMI user interface
6.5.1 Navigation bar
6.5.2 Status display
6.5.3 Keypad
6.5.4 Station level
6.5.5 Robot level
6.6 Calling the main menu
6.7 Changing the operating mode
6.8 Coordinate systems
6.9 Jogging the robot
6.9.1 “Jogging options” window
6.9.2 Setting the jog override (HOV)
6.9.3 Axis-specific jogging with the jog keys
6.9.4 Cartesian jogging with the jog keys
6.9.4.1 Null space motion
6.10 CRR mode – controlled robot retraction
6.11 Manually guiding the robot
6.12 Resuming the safety controller
6.13 Opening the holding brakes
6.14 Teaching and manually addressing frames
6.14.1 Displaying frames
6.14.2 Teaching frames
6.14.3 Teaching frames with the hand guiding device
6.14.4 “Jogging type” window
6.14.5 Manually addressing frames
6.15 Program execution
6.15.1 Selecting a robot application
6.15.2 Selecting the program run mode
6.15.3 Setting the manual override
6.15.4 Starting a program forwards (manually)
6.15.5 Starting a program forwards (automatically)
6.15.6 Repositioning the robot after leaving the path
6.16 Activating the user keys
6.17 Display functions
6.17.1 Displaying the end frame of the motion currently being executed
6.17.2 Displaying the axis-specific actual position
6.17.3 Displaying the Cartesian actual position
6.17.4 Displaying axis-specific torques
6.17.5 Displaying an I/O group and changing the value of an output
6.17.6 Displaying the IP address and software version
6.17.7 Displaying the robot type and serial number
6.17.8 Displaying messages of the virus scanner
7 Start-up and recommissioning
7.1 Position mastering
7.1.1 Mastering axes
7.1.2 Manually unmastering axes
7.2 Calibration
7.2.1 Tool calibration
7.2.1.1 TCP calibration: XYZ 4-point method
7.2.1.2 Defining the orientation: ABC 2-point method
7.2.1.3 Defining the orientation: ABC World method
7.2.2 Calibrating the base: 3-point method
7.3 Determining tool load data
8 Brake test
8.1 Overview of the brake test
8.2 Creating the brake test application from the template
8.2.1 Adapting the brake test application for testing against the minimum brake holding torque
8.2.2 Changing the motion sequence for torque value determination
8.2.3 Changing the starting position for the brake test
8.3 Programming interface for the brake test
8.3.1 Evaluating the torques generated and determining the maximum absolute value
8.3.2 Polling the evaluation results of the maximum absolute torques
8.3.3 Creating an object for the brake test
8.3.4 Starting the execution of the brake test
8.3.5 Evaluating the brake test
8.3.5.1 Polling the results of the brake test
8.4 Performing a brake test
8.4.1 Evaluation results of the maximum absolute torques (display)
8.4.2 Results of the brake test (display)
9 Project management
9.1 Sunrise projects – overview
9.2 Frame management
9.2.1 Creating a new frame
9.2.2 Designating a frame as a base
9.2.3 Moving frames
9.2.4 Deleting frames
9.2.5 Displaying and modifying the properties of a frame
9.2.6 Inserting a frame in a motion instruction
9.3 Object management
9.3.1 Geometric structure of tools
9.3.2 Geometric structure of workpieces
9.3.3 Creating a tool or workpiece
9.3.4 Creating a frame for a tool or workpiece
9.3.5 Defining a default motion frame
9.3.6 Load data
9.3.6.1 Entering load data
9.3.7 Safety-oriented tools
9.3.7.1 Defining a safety-oriented tool
9.3.8 Safety-oriented workpieces
9.3.8.1 Defining a safety-oriented workpiece
9.4 Overview of project synchronization
9.4.1 Transferring the project to the robot controller
9.4.2 Updating the project on the robot controller or in Sunrise.Workbench
9.5 Loading the project from the robot controller
10 Station configuration and installation
10.1 Opening the station configuration
10.1.1 Configuring parameters for calibration
10.2 Installing the system software
10.2.1 Converting the safety configuration to a new software version
10.3 Installing a language package
10.4 Installing or updating the virus scanner
11 Bus configuration
11.1 Configuration and I/O mapping in WorkVisual – overview
11.2 Overview of field buses
11.3 Creating a new I/O configuration
11.4 Opening an existing I/O configuration
11.5 Creating Sunrise I/Os
11.5.1 “Create I/O signals” window
11.5.2 Creating an I/O group and inputs/outputs within the group
11.5.3 Editing an I/O group
11.5.4 Deleting an I/O group
11.5.5 Changing an input/output of a group
11.5.6 Deleting an input/output of a group
11.5.7 Exporting an I/O group as a template
11.5.8 Importing an I/O group from a template
11.6 Mapping the bus I/Os
11.6.1 I/O Mapping window
11.6.2 Buttons in the “I/O Mapping” window
11.6.3 Mapping Sunrise I/Os
11.7 Exporting the I/O configuration to the Sunrise project
12 External control
12.1 Configuring external control
12.1.1 External control inputs
12.1.2 External control outputs
12.1.3 Signal diagrams
12.1.4 Configuring external control in the project properties
12.2 Selecting a robot application as the default application
12.3 Defining the signal outputs for a project that is not externally controlled
13 Safety configuration
13.1 Overview of safety configuration
13.2 Safety concept
13.3 Permanent Safety Monitoring
13.4 Event-driven Safety Monitoring
13.5 Overview of Atomic Monitoring Functions
13.5.1 Standard Atomic Monitoring Functions
13.5.2 Parameterizable Atomic Monitoring Functions
13.5.3 Extended Atomic Monitoring Functions
13.5.4 Availability of the AMFs depending on the kinematic system
13.6 Safety configuration with KUKA Sunrise.Workbench
13.6.1 Safety configuration and start-up
13.6.2 Opening the safety configuration
13.6.2.1 Evaluating the safety configuration
13.6.2.2 Overview of the graphical user interface for the safety configuration
13.6.3 Configuring the safety functions of the PSM mechanism
13.6.3.1 Opening the Customer PSM table
13.6.3.2 Creating safety functions for the PSM mechanism
13.6.3.3 Deleting safety functions of the PSM mechanism
13.6.3.4 Editing existing safety functions of the PSM mechanism
13.6.4 Configuring the safe states of the ESM mechanism
13.6.4.1 Adding a new ESM state
13.6.4.2 Opening a table for an ESM state
13.6.4.3 Deleting an ESM state
13.6.4.4 Creating a safety function for the ESM state
13.6.4.5 Deleting a safety function of an ESM state
13.6.4.6 Editing an existing safety function of an ESM state
13.6.4.7 Deactivating the ESM mechanism
13.6.4.8 Switching between ESM states
13.6.5 Mapping safety-oriented tools
13.7 Activating the safety configuration on the robot controller
13.7.1 Deactivating the safety configuration
13.7.2 Restoring the safety configuration
13.7.3 Changing the password for activating the safety configuration
13.8 Use and parameterization of the Atomic Monitoring Functions
13.8.1 Evaluating the safety equipment on the KUKA smartPAD
13.8.2 Evaluating the operating mode
13.8.3 Evaluating the motion enable
13.8.4 Monitoring safe inputs
13.8.5 Manual guidance with enabling device and velocity monitoring
13.8.5.1 Monitoring of enabling switches on hand guiding devices
13.8.5.2 Monitoring functions during manual guidance
13.8.5.3 Velocity monitoring during manual guidance
13.8.6 Evaluating the position referencing
13.8.7 Evaluating the torque referencing
13.8.8 Velocity monitoring functions
13.8.8.1 Defining axis-specific velocity monitoring
13.8.8.2 Defining Cartesian velocity monitoring
13.8.8.3 Direction-specific monitoring of Cartesian velocity
13.8.9 Monitoring spaces
13.8.9.1 Defining Cartesian workspaces
13.8.9.2 Defining Cartesian protected spaces
13.8.9.3 Defining axis-specific monitoring spaces
13.8.10 Monitoring the tool orientation
13.8.11 Standstill monitoring (safe operational stop)
13.8.12 Activation delay for safety functions
13.8.13 Monitoring of forces and torques
13.8.13.1 Axis torque monitoring
13.8.13.2 Collision detection
13.8.13.3 TCP force monitoring
13.8.13.4 Direction-specific monitoring of the external force at the TCP
13.9 Example of a safety configuration
13.9.1 Task
13.9.2 Requirement
13.9.3 Suggested solution for the task
13.10 Position and torque referencing
13.10.1 Position referencing
13.10.2 Torque referencing
13.10.3 Creating an application for position and torque referencing
13.11 Safety acceptance overview
13.11.1 Checklist for general safety functions
13.11.2 Checklist for tool selection table
13.11.3 Checklists for safety-oriented tools
13.11.3.1 Pickup frame for fixed tools
13.11.3.2 Pickup frame for activatable tools
13.11.3.3 Tool orientation
13.11.3.4 Tool-specific velocity component
13.11.3.5 Geometry data of the tool
13.11.3.6 Load data of the tool
13.11.4 Checklist for safety-oriented workpieces
13.11.5 Checklist for rows used in the PSM tables
13.11.6 Checklists for ESM states
13.11.6.1 Used ESM states
13.11.6.2 Non-used ESM states
13.11.7 Checklists for AMFs used
13.11.7.1 AMF smartPAD Emergency Stop
13.11.7.2 AMF smartPAD enabling switch inactive
13.11.7.3 AMF smartPAD enabling switch panic active
13.11.7.4 AMF Hand guiding device enabling inactive
13.11.7.5 AMF Hand guiding device enabling active
13.11.7.6 AMF Test mode
13.11.7.7 AMF Automatic mode
13.11.7.8 AMF Reduced-velocity mode
13.11.7.9 AMF High-velocity mode
13.11.7.10 AMF Motion enable
13.11.7.11 AMF Input signal
13.11.7.12 AMF Standstill monitoring of all axes
13.11.7.13 AMF Axis torque monitoring
13.11.7.14 AMF Axis velocity monitoring
13.11.7.15 AMF Position referencing
13.11.7.16 AMF Torque referencing
13.11.7.17 AMF Axis range monitoring
13.11.7.18 AMF Cartesian velocity monitoring
13.11.7.19 AMF Cartesian workspace monitoring / Cartesian protected space monitoring
13.11.7.20 AMF Collision detection
13.11.7.21 AMF TCP force monitoring
13.11.7.22 Base-related TCP force component AMF
13.11.7.23 AMF Time delay
13.11.7.24 AMF Tool orientation
13.11.7.25 AMF Tool-related velocity component
13.11.8 Creating a safety configuration report
14 Basic principles of motion programming
14.1 Overview of motion types
14.2 PTP motion type
14.3 LIN motion type
14.4 CIRC motion type
14.5 SPL motion type
14.6 Spline motion type
14.6.1 Velocity profile for spline motions
14.6.2 Modifications to spline blocks
14.6.3 LIN-SPL-LIN transition
14.7 Manual guidance motion type
14.8 Approximate positioning
14.9 Orientation control with LIN, CIRC, SPL
14.9.1 CIRC – reference system for the orientation control
14.9.2 CIRC – combinations of reference system and type for the orientation control
14.10 Redundancy information
14.10.1 Redundancy angle
14.10.2 Status
14.10.3 Turn
14.11 Singularities
14.11.1 Kinematic singularities
14.11.2 System-dependent singularities
15 Programming
15.1 Java Editor
15.1.1 Opening a robot application in the Java Editor
15.1.2 Structure of a robot application
15.1.3 Edit functions
15.1.3.1 Renaming a variable
15.1.3.2 Auto-complete
15.1.3.3 Templates – Fast entry of Java statements
15.1.3.4 Creating user-specific templates
15.1.3.5 Extracting methods
15.1.4 Displaying Javadoc information
15.1.4.1 Configuration of the Javadoc browser
15.2 Symbols and fonts
15.3 Data types
15.4 Variables
15.5 Network communication via UDP and TCP/IP
15.6 RoboticsAPI version information
15.6.1 Displaying the RoboticsAPI version
15.6.2 Structure of the RoboticsAPI version number:
15.7 Motion programming: PTP, LIN, CIRC
15.7.1 Structure of a motion command (move/moveAsync)
15.7.2 PTP
15.7.3 LIN
15.7.4 CIRC
15.7.5 LIN REL
15.7.6 MotionBatch
15.8 Motion programming: spline
15.8.1 Programming tips for spline motions
15.8.2 Creating a CP spline block
15.8.3 Creating a JP spline block
15.8.4 Using spline in a motion instruction
15.9 Motion parameters
15.9.1 Programming axis-specific motion parameters
15.10 Programming manual guidance
15.10.1 Axis-specific limits for manual guidance
15.11 Using tools and workpieces in the program
15.11.1 Declaring tools and workpieces
15.11.2 Initializing tools and workpieces
15.11.3 Attaching tools and workpieces to the robot
15.11.3.1 Attaching a tool to the robot flange
15.11.3.2 Attaching a workpiece to other objects
15.11.3.3 Detaching objects
15.11.4 Moving tools and workpieces
15.11.5 Defining user-specific object classes
15.11.6 Commanding load changes to the safety controller
15.12 Inputs/outputs
15.12.1 Creating a data array for an I/O group
15.12.2 Initializing a data array for an I/O group
15.12.3 Reading inputs/outputs
15.12.4 Setting outputs
15.13 Polling axis torques
15.14 Reading Cartesian forces and torques
15.14.1 Polling calculated force/torque data
15.14.2 Polling individual force/torque values
15.14.3 Checking the reliability of the calculated force/torque values
15.14.4 Polling individual values of a vector
15.15 Polling the robot position
15.15.1 Polling the axis-specific actual or setpoint position
15.15.2 Polling the Cartesian actual or setpoint position
15.15.3 Polling the Cartesian setpoint/actual value difference
15.16 HOME position
15.16.1 Changing the HOME position
15.17 Polling system states
15.17.1 Polling the HOME position
15.17.2 Polling the mastering state
15.17.3 Polling “ready for motion”
15.17.3.1 Reacting to changes in the “ready for motion” signal
15.17.4 Polling the robot activity
15.17.5 Polling and evaluating safety signals
15.17.5.1 Polling the state of the safety signals
15.17.5.2 Reacting to a change in state of safety signals
15.18 Changing and polling the program run mode
15.19 Changing and polling the override
15.19.1 Reacting to an override change
15.20 Conditions
15.20.1 Conditions in the RoboticsAPI
15.20.2 Complex conditions
15.20.3 Axis torque condition
15.20.4 Force condition
15.20.4.1 Condition for Cartesian force from all directions
15.20.4.2 Condition for normal force
15.20.4.3 Condition for shear force
15.20.5 Force component condition
15.20.6 Condition for Cartesian torque
15.20.6.1 Condition for Cartesian torque from all directions
15.20.6.2 Condition for torque
15.20.6.3 Condition for tilting torque
15.20.7 Torque component condition
15.20.8 Path-related condition
15.20.9 Condition for Boolean signals
15.20.10 Condition for the range of values of a signal
15.21 Break conditions for motion commands
15.21.1 Defining break conditions
15.21.2 Evaluating the break conditions
15.21.2.1 Polling a break condition
15.21.2.2 Polling the robot position at the time of termination
15.21.2.3 Polling a terminated motion (spline block, MotionBatch)
15.22 Path-related switching actions (Trigger)
15.22.1 Programming triggers
15.22.2 Programming a path-related switching action
15.22.3 Evaluating trigger information
15.23 Monitoring processes (Monitoring)
15.23.1 Listener for monitoring conditions
15.23.2 Creating a listener object to monitor the condition
15.23.3 Registering a listener for notification of change in state
15.23.4 Activating or deactivating the notification service for listeners
15.23.5 Programming example for monitoring
15.24 Blocking wait for condition
15.25 Recording and evaluating data
15.25.1 Creating an object for data recording
15.25.2 Specifying data to be recorded
15.25.3 Starting data recording
15.25.4 Ending data recording
15.25.5 Polling states from the DataRecorder object
15.25.6 Example program for data recording
15.26 Defining user keys
15.26.1 Creating a user key bar
15.26.2 Adding user keys to the bar
15.26.3 Defining the function of a user key
15.26.4 Labeling and graphical assignment of the user key bar
15.26.4.1 Assigning a text element
15.26.4.2 Assigning an LED icon
15.26.5 Identifying safety-critical user keys
15.26.6 Publishing a user key bar
15.27 Message programming
15.27.1 Programming user messages
15.27.2 Programming user dialogs
15.28 Program execution control
15.28.1 Pausing an application
15.28.2 Pausing motion execution
15.28.3 FOR loop
15.28.4 WHILE loop
15.28.5 DO WHILE loop
15.28.6 IF ELSE branch
15.28.7 SWITCH branch
15.28.8 Examples of nested loops
15.29 Continuing a paused application in Automatic mode (recovery)
15.30 Error treatment
15.30.1 Handling of failed motion commands
15.30.2 Handling of failed synchronous motion commands
15.30.3 Handling of failed asynchronous motion commands
16 Background tasks
16.1 Using background tasks
16.2 Cyclical background task
16.3 Non-cyclic background task
16.4 Data exchange between tasks
16.4.1 Declaring task functions
16.4.2 Implementing task functions
16.4.3 Creating the providing task
16.4.4 Using task functions
17 Programming with a compliant robot
17.1 Sensors and control
17.2 Available controllers – overview
17.3 Using controllers in robot applications
17.3.1 Creating a controller object
17.3.2 Defining controller parameters
17.3.3 Transferring the controller object as a motion parameter
17.4 Position controller
17.5 Cartesian impedance controller
17.5.1 Calculation of the forces on the basis of Hooke’s law
17.5.2 Parameterization of the Cartesian impedance controller
17.5.2.1 Representation of Cartesian degrees of freedom
17.5.2.2 Defining controller parameters for individual degrees of freedom
17.5.2.3 Controller parameters specific to the degrees of freedom
17.5.2.4 Controller parameters independent of the degrees of freedom
17.6 Cartesian impedance controller with overlaid force oscillation
17.6.1 Overlaying a simple force oscillation
17.6.2 Overlaying superposed force oscillations (Lissajous curves)
17.6.3 Parameterization of the impedance controller with overlaid force oscillation
17.6.3.1 Controller parameters specific to the degrees of freedom
17.6.3.2 Controller parameters independent of the degrees of freedom
17.7 Static methods for impedance controller with superposed force oscillation
17.7.1 Overlaying a constant force
17.7.2 Overlaying a simple force oscillation
17.7.3 Overlaying a Lissajous oscillation
17.7.4 Overlaying a spiral-shaped force oscillation
17.8 Axis-specific impedance controller
17.8.1 Parameterization of the axis-specific impedance controller
17.8.2 Methods of the axis-specific impedance controller
17.9 Holding the position under servo control
18 Diagnosis
18.1 Field bus diagnosis
18.1.1 Displaying general field bus errors
18.1.2 Displaying the error state of I/Os and I/O groups
18.2 Displaying the protocol
18.2.1 “Protocol” view
18.2.2 Filtering log entries
18.3 Display of error messages (Applications view)
18.4 Collecting diagnostic information for error analysis at KUKA
18.4.1 Creating a diagnosis package with the smartHMI
18.4.2 Creating a diagnosis package with the smartPAD
18.4.3 Creating a diagnosis package with Sunrise.Workbench
18.4.4 Loading existing diagnosis packages from the robot controller
19 Appendix
19.1 Compatibility and migration of projects
19.1.1 Modified task functions – adapting the programming
20 KUKA Service
20.1 Requesting support
20.2 KUKA Customer Support
Index