Professional Documents
Culture Documents
Legal information
Use of application examples
Application examples illustrate the solution of automation tasks through an interaction of several
components in the form of text, graphics and/or software modules. The application examples are
a free service by Siemens AG and/or a subsidiary of Siemens AG (“Siemens”). They are non-
binding and make no claim to completeness or functionality regarding configuration and
equipment. The application examples merely offer help with typical tasks; they do not constitute
customer-specific solutions. You yourself are responsible for the proper and safe operation of the
products in accordance with applicable regulations and must also check the function of the
respective application example and customize it for your system.
Siemens grants you the non-exclusive, non-sublicensable and non-transferable right to have the
application examples used by technically trained personnel. Any change to the application
examples is your responsibility. Sharing the application examples with third parties or copying the
application examples or excerpts thereof is permitted only in combination with your own products.
The application examples are not required to undergo the customary tests and quality inspections
of a chargeable product; they may have functional and performance defects as well as errors. It is
your responsibility to use them in such a manner that any malfunctions that may occur do not
result in property damage or injury to persons.
Disclaimer of liability
Siemens shall not assume any liability, for any legal reason whatsoever, including, without
limitation, liability for the usability, availability, completeness and freedom from defects of the
application examples as well as for related information, configuration and performance data and
any damage caused thereby. This shall not apply in cases of mandatory liability, for example
under the German Product Liability Act, or in cases of intent, gross negligence, or culpable loss of
life, bodily injury or damage to health, non-compliance with a guarantee, fraudulent
non-disclosure of a defect, or culpable breach of material contractual obligations. Claims for
damages arising from a breach of material contractual obligations shall however be limited to the
© Siemens AG 2019 All rights reserved
foreseeable damage typical of the type of agreement, unless liability arises from intent or gross
negligence or is based on loss of life, bodily injury or damage to health. The foregoing provisions
do not imply any change in the burden of proof to your detriment. You shall indemnify Siemens
against existing or future claims of third parties in this connection except where Siemens is
mandatorily liable.
By using the application examples you acknowledge that Siemens cannot be held liable for any
damage beyond the liability provisions described.
Other information
Siemens reserves the right to make changes to the application examples at any time without
notice. In case of discrepancies between the suggestions in the application examples and other
Siemens publications such as catalogs, the content of the other documentation shall have
precedence.
The Siemens terms of use (https://support.industry.siemens.com) shall also apply.
Security information
Siemens provides products and solutions with industrial security functions that support the secure
operation of plants, systems, machines and networks.
In order to protect plants, systems, machines and networks against cyber threats, it is necessary
to implement – and continuously maintain – a holistic, state-of-the-art industrial security concept.
Siemens’ products and solutions constitute one element of such a concept.
Customers are responsible for preventing unauthorized access to their plants, systems, machines
and networks. Such systems, machines and components should only be connected to an
enterprise network or the Internet if and to the extent such a connection is necessary and only
when appropriate security measures (e.g. firewalls and/or network segmentation) are in place.
For additional information on industrial security measures that may be implemented, please visit
https://www.siemens.com/industrialsecurity.
Siemens’ products and solutions undergo continuous development to make them more secure.
Siemens strongly recommends that product updates are applied as soon as they are available
and that the latest product versions are used. Use of product versions that are no longer
supported, and failure to apply the latest updates may increase customer’s exposure to cyber
threats.
To stay informed about product updates, subscribe to the Siemens Industrial Security RSS Feed
at: https://www.siemens.com/industrialsecurity.
Table of contents
Legal information ......................................................................................................... 2
1 Introduction ........................................................................................................ 5
1.1 Overview............................................................................................... 5
1.2 Principle of operation............................................................................ 5
1.3 Aim of this application example ............................................................ 7
1.4 Components used ................................................................................ 7
2 Basics ................................................................................................................. 9
2.1 Structure of an industrial robot ............................................................. 9
2.2 DENSO Command Slave ................................................................... 10
2.2.1 Overview............................................................................................. 10
2.2.2 Block library DENSO Command Slave .............................................. 11
2.2.3 Interpreter on the DENSO robot controller ......................................... 11
2.3 Configuration of the block library ........................................................ 11
2.3.1 Block inputs and outputs .................................................................... 11
2.3.2 MC_SetDynamic ................................................................................ 14
3 Creating a program .......................................................................................... 15
3.1 Hardware configuration ...................................................................... 15
3.1.1 Robot as PROFINET device .............................................................. 15
3.1.2 Installing the GSDML file of the robot ................................................ 15
3.1.3 Integrating a robot into the hardware configuration ........................... 16
© Siemens AG 2019 All rights reserved
1 Introduction
The use of industrial robots continues to grow. They are increasingly being used in
machines and plants. Their standardized mechanics are well-developed and highly
flexible in terms of their movement; as a result, robots are increasingly replacing
expensive specialist mechanics. This also enables production from the first
production batch without expensive modifications to machines and plants.
Unfortunately, plant controllers and robot controllers usually constitute two different
systems. Communication between the two controllers usually occurs solely on the
bit level and the movement programs of the robot are stored on the robot controller
and may only be called up by the plant controller. It is therefore difficult to trigger
flexible robot reactions to specific plant events.
Also, the plant controller and the robot are usually very different in terms of their
programming, which means that it is not possible for one person to control both
systems. Interface and coordination problems are therefore pre-programmed.
1.1 Overview
A complete integration of the actuation and the movement control of the robot into
the machine and plant controller should make the use of the industrial robot in a
production plant easier and more flexible.
The following requirements are imposed on the automation task:
• The robot should be fully programmable via the machine and plant controller
© Siemens AG 2019 All rights reserved
(PLC).
• The robot can be operated via the same HMI of the PLC/machine (Single Point
of Operation).
• Robot diagnostics should be fully possible via the PLC.
• Further functions, such as Safety Integrated, should be integrable and
controllable via the PLC.
Diagram
The following diagram provides a schematic representation of the most important
components of the application example:
SIMATIC CPU
S7-1500
VS-050
RC8
PROFINET IE
The motion control of the DENSO industrial robot is completely programmed in the
SIMATIC controller using the DENSO Command Slave block library. The robot is
assigned to the SIMATIC controller via a PROFINET connection as an I/O device.
© Siemens AG 2019 All rights reserved
The DENSO industrial robot consists of the DENSO RC8 robot controller and the
robot arm. The interpreter for the commands of the DENSO Command Slave block
library is installed on the robot controller. The interpreter receives the SIMATIC
controller commands and executes these, including the kinematics transformation,
via the robot mechanics.
Advantages
Programming a DENSO industrial robot via a SIMATIC S7-1500 controller using
the DENSO Command Slave block library in the TIA portal offers the following
advantages:
• All programming of robots and plants is performed in the TIA Portal. Training in
a robot manufacturer-specific development environment is not necessary.
• The movement program of the robot is fully integrated into the plant control
program and can be archived together with this program.
• The robot cell can be fully integrated into the SIMATIC plant controller.
• The operation of the robot can be integrated into the HMI user interface of the
plant.
• Diagnostic messages of the robot are sent to the SIMATIC controller where
they can be further processed and displayed on the HMI user interface of the
plant.
• Remote access to the SIMATIC controller for service and maintenance is
possible via standard functions and can be extended to the robot.
The application example is suitable for programming a basic control of the robot in
the SIMATIC controller.
On the basis of this application example, a further example can be requested via
Siemens Robotics Support, in which the use of a DENSO industrial robot with an
extended range of functions, including the HMI user interface required for this, is
© Siemens AG 2019 All rights reserved
A detailed description of the function and the application of the block library
DENSO Command Slave can be found in the DENSO documentation for the library
DENSO Command Slave, which is mentioned in section 5.4.
Required knowledge
Basic knowledge of the creation of a user program on the SIMATIC S7-1500 in the
TIA Portal or the hardware configuration is not taught in this application example,
but is assumed.
In addition, this application example is not an introduction to robotics. Basic
knowledge of the application and the capabilities of an industrial robot are also
required.
Table 1-3
Component File name Note
Documentation 109761432_S7-1500_DENSO_ This document
CommandSlave_DOCU_v11_en.pdf
TIA V15.1 Project DENSO_BASIC_EXAMPLE_1516F.zip Example program
Note In this application example, the DENSO RC8 robot controller is used. The
DENSO RC8A robot controller can also be used in the same way. In this case,
© Siemens AG 2019 All rights reserved
the Denso Command Slave interface is already installed on the robot controller
and only needs to be activated via a corresponding license. To do this, please
contact DENSO Robotics Support (see 5.3.1). The use of an RC8A enables the
use of the optional MRK functionality “Safety Motion” (see 4.1).
2 Basics
This section is intended to provide you with basic functions and background
information for using a DENSO industrial robot in connection with the DENSO
Command Slave block library.
2
1
3
© Siemens AG 2019 All rights reserved
Table 2-1
No. Component Function
1 Manipulator The manipulator represents the actual
robot mechanics, i.e. the kinematics,
which executes the ordered
commands.
2 Programming handset Teaching Pendant Settings on the robot controller can be
entered and checked via the Teaching
3 Connecting cable/ Teaching Pendant Pendant programming handset. The
robot can also be moved manually and
automatically using the programming
handset.
4 Robot controller The robot controller coordinates the
movements of the robot. The
5 Connection cable/ data cable/ engine calculation of the coordinate
cable transformation for the robot
movements and the control of the
robot axis motors occur in this
controller.
The robot controller may also contain
the power units for the robot axis
motors.
The following graphic gives an overview of how the DENSO Command Slave block
library works.
Fieldbus
SIMATIC interface
PLC
PROFINET IE
Fieldbus
interface
Reading
The instructions
DENSO
Robot controller RC8
Program sequence
In the figure, the robot program, based on the block library DENSO Command
Slave, is embedded in the program sequence of the machine program in the
SIMATIC controller. The following functions of the robot program are executed with
each program cycle:
1. Reading of robot data.
2. Ordering the robot movement via the function blocks of the block library
DENSO Command Slave.
3. Writing of robot data.
In the robot controller, in addition to the active robot movement, the subsequent
movement is also stored in an intermediate memory. Only when the active
movement has been completed and the following movement has been transferred
to the program memory is the next movement order transferred to the robot
© Siemens AG 2019 All rights reserved
controller.
The DENSO Command Slave block library provides various blocks for controlling a
DENSO industrial robot. The desired functions of the DENSO robot can be
controlled by simply calling the corresponding block from the block library.
By calling a function block from the block library, the corresponding commands are
transferred to the DENSO robot controller and interpreted there.
The interpreter on the DENSO robot controller accepts the commands of the
function blocks from the DENSO Command Slave block library in the robot
controller. There it processes one command in its own cycle, while another is
stored in the buffer. When the active command is completed, the command moves
from the cache and a new command is moved to the cache.
The function blocks of the DENSO Command Slave block library are designed
according to the PLCopen standard. The motion blocks basically have the following
inputs and outputs:
Table 2-2: Input and output parameters of the PLCopen movement blocks
Interface Description
Inputs
AxesGroup Index of the axis group (as defined in
section 3.4.1)
Execute Starts / buffers movement at positive edge.
© Siemens AG 2019 All rights reserved
Interface Description
Deceleration Deceleration of the path movement in %.
• 0.0 < Value < 100:
Specified value is used
• Value = 0.0:
Smallest possible value 0.001 is used
• Value = -1.0:
Defined default value is used (see
section 2.3.2)
• Value < 0.0 and ≠ -1.0:
Not allowed, leads to error message
and shutdown of robot drives
Buffermode Buffer mode selection (see section 3.6.5)
TransitionMode Transition mode selection (see section
3.6.5)
Transition parameters Definition of the transition parameters (see
section 3.6.5)
Outputs
Done Movement has been completed
successfully.
NextActionPermit The next function block can be processed.
Busy Function block has not yet been completely
© Siemens AG 2019 All rights reserved
executed.
Active Movement is currently being executed.
CommandAborted Instruction / movement aborted.
Error Error during execution of the function block.
ErrorID Indicates the origin of the error.
• 2800: Error in PLC
• 2801: Error in robot control
ErrorIDEx Error number
The assignment to the corresponding error
message can be found in the DENSO user
manual under "Error Code List".
2.3.2 MC_SetDynamic
Using the function block "MC_SetDynamic" (FB 2044), preset values for speed,
acceleration and deceleration can be defined. These are stored in the data block
"DB_DENSO_ROBOTS" and always called when the corresponding input
parameter of a motion block is assigned the value -1.0.
Figure 2-4: Define default values for speed, acceleration and deceleration
3 Creating a program
This section explains how the Example Program for the application example was
set up.
This section explains the following:
• Integration of the robot in the hardware configuration of the TIA Portal project.
• Integration of the block library DENSO Command Slave.
• Programming of the basic functions of the robot.
• Programming of selected movement sequences of the robot.
The DENSO robot is integrated into the hardware configuration of the TIA Portal
project as a PROFINET IO device. The robot is integrated via an additional
GSDML file to be integrated into the TIA Portal which contains the hardware
description of the robot and the possible data telegrams for the data exchange
between the SIMATIC controller and the robot.
The GSDML file of the robot is stored on the robot controller. To access the file,
open the following link with any Internet browser:
http://<RC8 Ethernet IP-Adresse>/eds/
Note Make sure that the IP address of the Ethernet interface is entered instead of the
IP address of the PROFINET interface.
Open the link of the GDSML file, copy the contents and save the file as a .xml file.
The GSDML file generated in this way can then be integrated into the TIA Portal
using the management function for GSD files.
Once the GSDML file has been integrated into the TIA portal, the DENSO RC8
robot controller in the corresponding firmware version can be integrated into the
hardware configuration of the TIA portal using drag & drop.
Double-clicking on the robot controller in the hardware configuration allows further
configuration of the components for data exchange with the SIMATIC controller.
So that the data necessary for controlling the robot by the SIMATIC controller can
be exchanged, the necessary data exchange telegrams with the robot controller
must still be configured in the hardware configuration. For this purpose, one
telegram each for 256 bytes in input and output direction must be integrated into
the Robot Control component of the hardware configuration by drag & drop from
the telegram selection.
Figure 3-4: Selection of the DENSO robot from the hardware catalog
© Siemens AG 2019 All rights reserved
Figure 3-5: Data exchange between SIMATIC controller and the robot
Finally, the robot controller and the SIMATIC controller must be connected to each
other via PROFINET connection. For this purpose suitable IP addresses must be
assigned to the individual devices or in the hardware configuration.
Note Optionally, an HMI device, which can be used to control and monitor the robot
functions, can also be integrated into the configuration.
Using a suitable SIMATIC controller and the DENSO Command Slave block library,
up to ten DENSO robots can be controlled separately in the standard configuration.
Demarcation is defined in the library. On the SIMATIC control side, the remanence
of the memory has a limiting effect. The greater the number of robot positions
which have to be stored, the more retentive memory is required. However, the
remanence memory can be increased by a corresponding power supply module,
whereby even smaller controllers could store more robot positions and theoretically
control more than ten robots.
The data block supplied with the DENSO Command Slave block library contains
ten data arrays for data exchange between the SIMATIC controller and the robot.
The data are assigned to the corresponding robot via the defined telegram
addresses in the IO area of the SIMATIC controller, as defined in the hardware
configuration.
The assignment of the function blocks or the robot functions to the individual robots
in the user program is made via the AxesGroup input of the blocks, which
represents the index of the data array in the DB_DENSO_ROBOTS data block.
This functionality will be explained in more detail in the following sections.
Figure 3-8: Data pool for ten robots in data block DB_DENSO_ROBOTS
Before you can use the block library DENSO Command Slave in your user
© Siemens AG 2019 All rights reserved
program, the function blocks of the block library must be transferred to the TIA
Portal project.
The DENSO Command Slave block library for the TIA Portal is delivered as a
global library from which all function blocks of the block library can be transferred to
a TIA Portal project via drag&drop.
To make the global library usable for the TIA Portal, extract the global library
archive to a convenient location on the hard drive of your programming device.
Note The DENSO Command Slave block library for the TIA portal can be requested
directly from DENSO Robotics or downloaded from the DENSO website. The
version of the library must match the interpreter on the robot controller.
After unpacking, you can open the global library via the access functions of the TIA
Portal.
The block library DENSO Command Slave is stored as a copy template in the
global library.
The block library DENSO Command Slave is transferred to your user program by
simple drag&drop from the global library. Both the necessary PLC data types and
the function and data blocks from the copy templates of the global library must be
transferred to your TIA Portal project. All templates are in the "Master copies"
folder.
• First drag the object "Copy of PLC data types in DN_UDT" to the folder "PLC
data types" in your project. A subfolder is automatically created there which
contains all PLC data types of the DENSO Command Slave block library.
• Then drag the remaining objects into the "Program blocks" folder of your TIA
Portal project. A subfolder is also automatically created there which contains all
function blocks and data blocks of the DENSO Command Slave block library.
Now all necessary data types and blocks of the block library DENSO Command
Slave are contained in your TIA Portal project. The functions of the block library
can now be used in your user program.
MC_
Main Siemens
ReadAxes
Cycle Denso
Group
See
Denso
detailed
Control
graphic
See
PickPlace detailed
graphic
See
Circle detailed
graphic
© Siemens AG 2019 All rights reserved
MC_
WriteAxes
Group
The complete robot program is summarized in a function (FC) for better structuring.
In this FC, the blocks required for the robot are then called from the DENSO block
library and additional function blocks (FB) which contain special motion programs
of the robot.
The function "SiemensDenso" has the following structure:
• Reading the robot data via the block "MC_ReadAxesGroup".
• Executing the basic functions of the robot via the "DensoControl" block.
• Calling a block to execute a simple pick & place movement. This movement is
summarized in the "PickPlace" block.
• Calling a block to execute a simple circular movement. This movement is
summarized in the "Circle" block.
• Write the robot data via the block "MC_WriteAxesGroup".
Note The function block "DensoControl" contains accesses to global DBs of the
DENSO Command Slave library. It can therefore only be used as a library
element in conjunction with the DENSO Command Slave block library.
Open the newly created function and add the blocks "MC_ReadAxesGroup"
(FB2301) and "MC_WriteAxesGroup" (FB2302) from the DENSO Command Slave
library.
3.4.1 MC_ReadAxesGroup
Via the "AxesGroup" input, which corresponds to the index of the data array in the
"DB_DENSO_ROBOTS" data block, and the "InAdress" input, at which the
hardware address of the configured telegram is communicated from the robot
controller to the SIMATIC controller, the assignment of the data to the
corresponding robot connected to the SIMATIC controller is established.
For the "InAdress" input, select the hardware address that was automatically
generated during the project engineering of the robot controller in section 3.1.3.
Type in the symbolic name. You can also find it in the standard variable table under
System constants. It consists of the names of the head module and the other
modules.
Note The index of the "AxesGroup" input can then be used to assign the robot to the
program blocks of the robot program in the SIMATIC.
3.4.2 MC_WriteAxesGroup
The inputs of this block are connected according to the function block
"MC_ReadAxesGroup" from section 3.4.1.
CAUTION When entering the hardware addresses of the robot for reading and writing
the robot data, make sure that they are correctly assigned to the desired
robot.
The "Override" input also determines the percentage override of the programmed
speed:
• For axis-related movement commands, the override acts on the specified axis
velocity.
• For path-related movement commands, the override acts on the specified path
velocity.
The following example is provided to explain this connection in more detail. In the
figure, the maximum velocity, the programmed velocity and the resulting velocity
with the override are given as a percentage of the maximum velocity.
Max. velocity
Programmed velocity
Override: 50%
Resulting velocity
Velocity
25% 50% 100%
If a travel command is defined at half the maximum possible velocity, the override
refers to this value. An override of 50% would therefore set the velocity of the robot
to a quarter of the maximum possible velocity.
Now create the three function blocks "DensoControl", "PickPlace" and "Circle"
analog to "SiemensDenso".
Denso MC_
Control Initialize
MC_
© Siemens AG 2019 All rights reserved
Read
ErrorID
MC_Reset
MC_Power
MC_
ReadActual
Position
MC_
MoveJog
Joint
MC_
MoveJog
Work
MC_
Teach
Position
Create the input variable "axesGroup" of the data type INT. This variable
communicates the identity of the robot to be controlled to all subsequent function
blocks.
3.5.1 MC_Initialize
Before data can be exchanged between the SIMATIC controller and the robot, the
interface of DENSO Command Slave must be initialized. To do this, call the block
"MC_Initialize" (FB2304).
The successful initialization of the interface is reported back to the user program
via the output "Done".
In addition, the block returns the following information:
• Interpreter version at the outputs:
– "RC_Major "
– "RC_Minor"
– "RC_Revision"
•
© Siemens AG 2019 All rights reserved
3.5.2 MC_ReadErrorID
Now call the function block "MC_ReadErrorID" (FB2130) to read out the current
message buffer.
The robot controller contains a message buffer for several error messages. Up to
ten messages can be read from the message buffer simultaneously with a call of
the function block "MC_ReadErrorID".
In addition, the block also contains an offset input via which the remaining error
messages can be read out in groups of ten messages each.
Example
If there are 15 messages in the message buffer, the function block
"MC_ReadErrorID" must be called twice as follows:
• Call with offset 0 to read message 1 to 10
• Call with offset 6 to read message 6 to 15
3.5.3 MC_Reset
With the help of the function block "MC_Reset" (FB2134), the current error status
© Siemens AG 2019 All rights reserved
3.5.4 MC_Power
Now call the function block "MC_Power" (FB2300) to switch on the drives of the
robot.
3.5.5 MC_ReadActualPosition
The output "ActualPosition" outputs the current position in the defined structure
"eRC_PosDensoRobot". This contains all single values for the Cartesian position in
space including currently selected reference coordinate systems as well as the
positions of all axes.
3.5.6 MC_MoveJogJoint
Using the function block "MC_MoveJogJoint" (FB2013), the individual axes of the
robot can be moved in jog mode.
Via the inputs "Axis1_Plus" to "Axis6_Minus" the robot axes can be rotated in the
corresponding direction. The inputs "Axis7_Plus" to "Axis8_Minus" are intended for
additional axes that can be influenced by the robot controller.
3.5.7 MC_MoveJogWork
Using the function block "MC_MoveJogWork" (FB2014), the Tool Center Point
(TCP), i.e. the tool tip, can be moved in the Cartesian coordinate system.
© Siemens AG 2019 All rights reserved
Via the inputs "X_Plus" to "RZ_Minus" the tool tip is moved along the
corresponding coordinate axes of the currently selected reference coordinate
system.
The currently active coordinate systems are used as reference coordinate systems.
If a jog function is called during an active movement, the active and buffered
commands are aborted, the robot is braked and the drives are switched off with an
error message. The error message must then be acknowledged and the robot can
be switched on again.
© Siemens AG 2019 All rights reserved
Note Alternatively, the function block "MC_MoveJogTool" (FB 2015) can be used. This
block is used to move the tool tip in relation to its own coordinate system. Thus,
for example, movements in the direction of action of the tool are possible.
3.5.8 MC_TeachPosition
The position and the current coordinate system to which the Cartesian position
refers are stored in the data block "DB_DENSO_POSITIONS " (DB2999).
The storage location of the data in the position array of the data block is defined in
the "Index". The data block is located in the block library in the
CommandSlave/DN_DB directory.
Figure 3-33: Movement sequence of the simple pick & place application
MC_MoveAxisAbsolute (FB2000)
Move the robot in a linear path to a MC_MoveLinearAbsolute (FB2004)
Cartesian position
PickPlace MC_Group
Stop
MC_Group
Interrupt
MC_Group
Continue
MC_Move
Axis
Absolute
MC_Move
Linear
Absolute
MC_Move
Linear
Absolute
…
MC_Move MC_Move
© Siemens AG 2019 All rights reserved
Linear Linear
Absolute Absolute
3.6.1 MC_GroupStop
First call up the function block "MC_GroupStop" (FB2201). This interrupts the
active as well as the buffered instruction or movement on a rising edge at the
"Execute" input.
3.6.2 MC_GroupInterrupt
the robot are deactivated and the last active and the buffered command are
aborted. Instructions are only accepted again if the program was continued with
"MC_GroupContinue".
3.6.3 MC_GroupContinue
CAUTION If motion tasks are still active in the robot controller, they are continued
immediately by triggering the "MC_GroupContinue".
The following parameters are used to define how successive motion commands
are to be processed:
• Buffermode
• TransitionMode
• Transition parameters
These parameters are specified at the inputs of each individual motion block. If the
behavior of a path is to be identical for all segments, variables can be created for
this purpose. These are assigned fixed values as shown below.
When a block is called, these variables are linked at the corresponding inputs.
• 6: Overgrinding
– Robot is approaching the current
target position
– Robot terminates motion command
after "TransitionMode".
– Next motion command is executed
• 7: Aborting OP1
– Robot brakes at 100%
– Robot does not come to a standstill
– Next motion command is executed
• 8: Aborting OP2
– Robot decelerates with current
braking rate
– Robot comes to a standstill
– Next motion command is executed
• 9: Aborting OP3
– Robot decelerates with current
braking rate
– Robot does not come to a standstill
– Next motion command is executed
Parameters Description
TransitionMode Relevant when "BufferMode" = 6:
Specifies how the target point of a
movement is smoothed over.
• 0: Robot comes to a standstill (Encoder
value check Motion (axis coordinate
system))
• 3: Blending with distance parameters
• 10: Robot does not come to a standstill
• 11: Robot comes to a standstill
(Encoder value check Motion
(Cartesian coordinate system))
Transition parameters Relevant when "TransitionMode" = 3:
Distance to the target point in millimeters,
the earliest point from which the blending
should start.
Example
If distance-controlled grinding is required for two consecutive linear movements,
the parameters must be defined as shown below.
3.6.6 MC_MoveAxisAbsolute
© Siemens AG 2019 All rights reserved
For the motion sequence of the robot, the function block "MC_MoveAxisAbsolute"
(FB2000) is first called to bring the robot arm into a basic position. This movement
block moves all axes of the robot to the axis values defined by the user. The
positions of each individual axis must be transferred to this block as the position.
The structure "eRC_Joint" collectively contains all single values.
• Value = 0.0:
Smallest possible value 0.001 is used
• Value = -1.0:
Defined default value is used (see
section 2.3.2)
• Value < 0.0 and ≠ -1.0:
Not allowed, leads to error message
and shutdown of robot drives
Interface Description
BufferMode Mode in which instructions are executed
• 0: Aborting OP0
– Robot brakes at 100%
– Robot comes to a standstill
– Next motion command is executed
• 1: Attaching
– Robot moves to current target
position
– Robot comes to a standstill
– Next motion command is executed
• 6: Overgrinding
– Robot is approaching the current
target position
– Robot terminates motion command
after "TransitionMode".
– Next motion command is executed
• 7: Aborting OP1
– Robot brakes at 100%
– Robot does not come to a standstill
– Next motion command is executed
• 8: Aborting OP2
– Robot decelerates with current
© Siemens AG 2019 All rights reserved
braking rate
– Robot comes to a standstill
– Next motion command is executed
• 9: Aborting OP3
– Robot decelerates with current
braking rate
– Robot does not come to a standstill
– Next motion command is executed
TransitionMode Relevant when "BufferMode" = 6:
Specifies how the target point of a
movement is smoothed over.
• 0: Robot comes to a standstill (Encoder
value check Motion (axis coordinate
system))
• 3: Blending with distance parameters
• 10: Robot does not come to a standstill
• 11: Robot comes to a standstill
(Encoder value check Motion
(Cartesian coordinate system))
Transistion parameters Relevant when "TransitionMode" = 3:
Distance to the target point in millimeters,
the earliest point from which the blending
should start.
Outputs
Done Movement has been completed
successfully.
NextActionPermit Instruction has been completely transferred
and confirmed by the robot controller.
Busy Function block has not yet been completely
executed.
Active Movement is currently being executed.
Interface Description
CommandAborted Instruction / movement aborted.
Error Error during execution of the function block.
ErrorID Indicates the origin of the error.
• 2800: Error in PLC
• 2801: Error in robot control
ErrorIDEx Error number
The assignment to the corresponding error
message can be found in the DENSO user
manual under "Error Code List".
3.6.7 MC_MoveLinearAbsolute
The other positions of the robot are approached linearly using the function block
"MC_MoveLinearAbsolute" (FB2004). In a linear movement, the target position is
given in Cartesian form. The robot controller interpolates a straight path between
the current position and the target position. During such a movement, the robot
always moves its tool along the shortest (but not necessarily the fastest) path to the
target point.
Since the position is not specified by axis but by Cartesian, the input expects the
data type "eRC_Position". It contains all components of the Cartesian item (see
also section 3.7.1).
Interface Description
BufferMode Mode in which instructions are executed
• 0: Aborting OP0
– Robot brakes at 100%
– Robot comes to a standstill
– Next motion command is executed
• 1: Attaching
– Robot moves to current target
position
– Robot comes to a standstill
– Next motion command is executed
• 6: Overgrinding
– Robot is approaching the current
target position
– Robot terminates motion command
after "TransitionMode".
– Next motion command is executed
• 7: Aborting OP1
– Robot brakes at 100%
– Robot does not come to a standstill
– Next motion command is executed
• 8: Aborting OP2
– Robot decelerates with current
© Siemens AG 2019 All rights reserved
braking rate
– Robot comes to a standstill
– Next motion command is executed
• 9: Aborting OP3
– Robot decelerates with current
braking rate
– Robot does not come to a standstill
– Next motion command is executed
TransitionMode Relevant when "BufferMode" = 6:
Specifies how the target point of a
movement is smoothed over.
• 0: Robot comes to a standstill (Encoder
value check Motion (axis coordinate
system))
• 3: Blending with distance parameters
• 10: Robot does not come to a standstill
11: Robot comes to a standstill (Encoder
value check Motion (Cartesian
coordinate system))
Transistion parameters Relevant when "TransitionMode" = 3:
Distance to the target point in millimeters,
the earliest point from which the blending
should start.
Outputs
Done Movement has been completed
successfully.
NextActionPermit Instruction has been completely transferred
and confirmed by the robot controller.
Busy Function block has not yet been completely
executed.
Active Movement is currently being executed.
Interface Description
CommandAborted Instruction / movement aborted.
Error Error during execution of the function block.
ErrorID Indicates the origin of the error.
• 2800: Error in PLC
• 2801: Error in robot control
ErrorIDEx Error number
The assignment to the corresponding error
message can be found in the DENSO user
manual under "Error Code List".
Circle MC_Group
Stop
MC_Group
Interrupt
MC_Group
Continue
MC_Define
PositionVar
MC_Define
PositionVar
MC_Define
PositionVar
MC_Move
© Siemens AG 2019 All rights reserved
Direct
Absolute
MC_Move
Circular
Absolute
MC_Move
Direct
Absolute
3.7.1 MC_DefinePositionVar
3.7.2 MC_MoveDirectAbsolute
Since the position is Cartesian, the input "Position" expects the data type
"eRC_Position".
Interface Description
BufferMode Mode in which instructions are executed
• 0: Aborting OP0
– Robot brakes at 100%
– Robot comes to a standstill
– Next motion command is executed
• 1: Attaching
– Robot moves to current target
position
– Robot comes to a standstill
– Next motion command is executed
• 6: Overgrinding
– Robot is approaching the current
target position
– Robot terminates motion command
after "TransitionMode".
– Next motion command is executed
• 7: Aborting OP1
– Robot brakes at 100%
– Robot does not come to a standstill
– Next motion command is executed
• 8: Aborting OP2
– Robot decelerates with current
© Siemens AG 2019 All rights reserved
braking rate
– Robot comes to a standstill
– Next motion command is executed
• 9: Aborting OP3
– Robot decelerates with current
braking rate
– Robot does not come to a standstill
– Next motion command is executed
TransitionMode Relevant when "BufferMode" = 6:
Specifies how the target point of a
movement is smoothed over.
• 0: Robot comes to a standstill (Encoder
value check Motion (axis coordinate
system))
• 3: Blending with distance parameters
• 10: Robot does not come to a standstill
• 11: Robot comes to a standstill
(Encoder value check Motion
(Cartesian coordinate system))
Transition parameters Relevant when "TransitionMode" = 3:
Distance to the target point in millimeters,
the earliest point from which the blending
should start.
Outputs
Done Movement has been completed
successfully.
NextActionPermit Instruction has been completely transferred
and confirmed by the robot controller.
Busy Function block has not yet been completely
executed.
Active Movement is currently being executed.
Interface Description
CommandAborted Instruction / movement aborted.
Error Error during execution of the function block.
ErrorID Indicates the origin of the error.
• 2800: Error in PLC
• 2801: Error in robot control
ErrorIDEx Error number
The assignment to the corresponding error
message can be found in the DENSO user
manual under "Error Code List".
Since the path of a PTP movement is not known, inadequate testing can
result in considerable personal injury and material damage.
WARNING
3.7.3 MC_MoveCircularAbsolute
circular path, an auxiliary position must be specified next to the target position.
Interface Description
BufferMode Mode in which instructions are executed
• 0: Aborting OP0
– Robot brakes at 100%
– Robot comes to a standstill
– Next motion command is executed
• 1: Attaching
– Robot moves to current target
position
– Robot comes to a standstill
– Next motion command is executed
• 6: Overgrinding
– Robot is approaching the current
target position
– Robot terminates motion command
after "TransitionMode".
– Next motion command is executed
• 7: Aborting OP1
– Robot brakes at 100%
– Robot does not come to a standstill
– Next motion command is executed
• 8: Aborting OP2
– Robot decelerates with current
© Siemens AG 2019 All rights reserved
braking rate
– Robot comes to a standstill
– Next motion command is executed
• 9: Aborting OP3
– Robot decelerates with current
braking rate
– Robot does not come to a standstill
– Next motion command is executed
TransitionMode Relevant when "BufferMode" = 6:
Specifies how the target point of a
movement is smoothed over.
• 0: Robot comes to a standstill (Encoder
value check Motion (axis coordinate
system))
• 3: Blending with distance parameters
• 10: Robot does not come to a standstill
• 11: Robot comes to a standstill
(Encoder value check Motion
(Cartesian coordinate system))
Transition parameters Relevant when "TransitionMode" = 3:
Distance to the target point in millimeters,
the earliest point from which the blending
should start.
Outputs
Done Movement has been completed
successfully.
NextActionPermit Instruction has been completely transferred
and confirmed by the robot controller.
Busy Function block has not yet been completely
executed.
Active Movement is currently being executed.
Interface Description
CommandAborted Instruction / movement aborted.
Error Error during execution of the function block.
ErrorID Indicates the origin of the error.
• 2800: Error in PLC
• 2801: Error in robot control
ErrorIDEx Error number
The assignment to the corresponding error
message can be found in the DENSO user
manual under "Error Code List".
© Siemens AG 2019 All rights reserved
3.8 Operation
If the HMI is loaded or simulated via Runtime, the following interface opens.
3 2
© Siemens AG 2019 All rights reserved
The status bar contains basic information about the status of the robot as well as
the control of the override.
1 2 3 4
The control functions can be used to control administrative functions of the robot.
4. "Abort" aborts all active and buffered commands, such as the Example
Programs.
The robot can be moved in either an axial or Cartesian manner in jog mode. To do
this, the corresponding mode must be selected as shown below.
1. Press one of the two buttons to switch to the corresponding jog mode. "Jog in
Axis" moves the robot axially. With "Jog in Base", the robot is moved along the
coordinate axes. The inactive mode is greyed out.
2. Use the plus and minus buttons to move the corresponding axis (here A2) in
the positive or negative direction. The displayed axis value describes the
current axis position.
3. The "TEACH" button saves the current position. The index is defined by "Point
No.". When the operation is completed successfully, "Done" lights up. In the
event of a fault, "Error" lights up.
4. "Axis Overview" shows the assignment of the axis numbers to the actual axes
of the robot arm.
The example programs described in sections 3.6 and 3.7 can be started using the
buttons shown below.
When one of the buttons is pressed, the entire Example Program is run.
Problem
On the user interface, rhombuses are displayed instead of the robot data.
Solution
The rhombuses indicate that the HMI has no connection to the SIMATIC controller.
If you are using a real panel, check whether the PROFINET connection to the
panel exists. To do this, first check the cable connection to your SIMATIC
controller. If there is no error here, terminate the runtime on the panel and open the
system settings. Select "PROFINET" and make sure that the check mark
"PROFINET IO enabled" is set.
If you use a runtime on your local machine, check whether the PG/PC interface is
configured correctly. To do this, select the HMI in the project tree in the TIA Portal
and open "Connections".
Check the configured access point of the HMI. Now open the Windows Control
Panel and select "Configure PG/PC Interface". In the window that opens, select the
access point in the drop-down menu (here: S7ONLINE) and assign the interface
that is connected to the SIMATIC controller.
Problem
There is no connection to the robot controller. The device is not found via
PROFINET.
Solution
Make sure that all cable connections are correctly seated. The DENSO RC8 has
two separate interfaces for connection via Profinet and Ethernet. By default, the
robot controller has an Ethernet interface marked "LAN". The Profinet interface is
located on an additional plug-in card marked "Profinet".
Problem
The connection to the robot has been established, but the robot cannot be moved.
Initialization has not been completed successfully. The block "MC_Initialize" does
not send a Done signal.
Solution
Check whether the hardware IDs of the input and output modules configured in the
hardware configuration match the inputs "InAddress" and "OutAddress" of the
© Siemens AG 2019 All rights reserved
4 Additional function
This section is intended to give you a brief overview of additional functions that go
beyond the basic control of a DENSO industrial robot using the DENSO Command
Slave library.
5 Appendix
5.1 Advanced example
In addition to the basic application example described here, there is also a more
extensive example. This can currently be requested from Siemens Support.
The Advanced Example is designed so that it can be used directly on a real
machine because of its functionality. The visualization on the SIMATIC panel
accordingly offers significantly more operating options. The following functions, in
addition to others, are included in addition to the functions described in the basic
example:
Technical Support
The Technical Support of Siemens Industry provides you fast and competent
support regarding all technical queries with numerous tailor-made offers
– ranging from basic support to individual support contracts. Please send queries
to Technical Support via Web form:
www.siemens.com/industry/supportrequest
We support you with our globally available training courses for industry with
practical experience, innovative learning methods and a concept that’s tailored to
the customer’s specific needs.
For more information on our offered trainings and courses, as well as their
locations and dates, refer to our web page:
www.siemens.com/sitrain
Service offer
Our range of services includes the following:
• Plant data services
• Spare parts services
• Repair services
• On-site and maintenance services
• Retrofitting and modernization services
• Service programs and contracts
You can find detailed information on our range of services in the service catalog
web page:
support.industry.siemens.com/cs/sc
No. Topic
\1\ Siemens Industry Online Support
https://support.industry.siemens.com
\2\ Link to the article page of the application example with DENSO robot
https://support.industry.siemens.com/cs/ww/en/view/109761432
\3\ Link to the article page of the application example with KUKA robot
https://support.industry.siemens.com/cs/document/109482123
\4\ Link to the article page of the application example with STÄUBLI robot
https://support.industry.siemens.com/cs/document/109762450
Siemens SIMATIC S7
\5\ SIMATIC STEP 7 Professional V15
System manual
Output: 12/2017
Document ID: Printout of the online help
Order number: -
https://support.industry.siemens.com/cs/ww/en/view/109755202
\6\ SIMATIC PROFINET system description
System manual
Output: 03/2012
Document ID: A5E00298287-06
Order number: -
https://support.industry.siemens.com/cs/ww/en/view/19292127
DENSO Command Slave
\7\ DENSO Robotics
https://www.densorobotics-europe.com
\8\ DENSO ROBOT User Manuals
https://www.denso-wave.com/en/robot/download/manual
\9\ DENSO ROBOT User Manuals CommandSlave
https://www.denso-wave.com/en/robot/download/application