Standard Robot Command Interface (SRCI) – How-to Guide
Programming your Universal Robots cobot via your PLC may have advantages in some use case, and the Standard Robot Command Interface (SRCI) enables that. This how-to guide tells you what you need to know to get started.
SRCI moves the entire integration of a robotic application to the PLC including the programming of the robot being integrated. With SRCI, functionality for commanding robot motions and for providing an interface for robot programming is added on top of all the common functionalities of the PLC such as workcell logic control and safeguarding. This ‘one to rule them all’ philosophy lifts the burden off the shoulders of the integrator of having to master the many ways different robots are integrated. If you are familiar with PLC programming and SRCI you can integrate any robot.
SRCI is a command-based protocol working over PROFINET. It is an open standard developed and maintained by PROFINET International. SRCI defines many commands for basic and advanced use cases. Some are mandatory and some are optional. UR SRCI implements the set of commands known as the “CORE PROFILE” and is built according to version 1.3 of the SRCI standard.
UR SRCI interpreter has been released in two versions:
- Limited Release version URCap : Supports 20 "Profile : Core" functions and is free to use.
- Broad Release version URCap: Supports all 29 "Profile : Core" functions and requires a paid license.
The limited release version URcap supports the limited functionality of the core profile. This includes the following functions:
- RobotTask: Handles multiple mechanisms that are required for the RI to work. It must be
called once per RA - ReadRobotData: Read robot-specific data from the RC
- EnableRobot: Enable/Disable robot into RA power state "Enabled"
- GroupReset: Resets and acknowledges info, warning and error messages
- ReadActualPosition: Reads the current position of the TCP relative to the selected or currently used
tool and frame and the positions of the robot axes - ReadActualPositionCyclic: Reads the current position of the robot cyclically
- ExchangeConfiguration: Reads and writes specific configuration parameters on RC that are required for
the RI to work - ChangeSpeedOverride: Commands a speed override from the PLC to the RC
- ReadMessages: Read pending info, warning and error messages and move them into user data
block "RobotData" - GroupJog: Manually jog the TCP or the robot joints.
- MoveLinearAbsolute: Commands an interpolated linear movement of the robot arm to an absolute
cartesian position - MoveDirectAbsolute: Commands movement without a specific path (PTP) of the robot arm to an
absolute cartesian position - MoveAxesAbsolute: Commands movement without a specific path (PTP) of the robot arm to an
absolute position specified in Joint Position - GroupStop: Aborts and deletes all active and buffered commands from the sequence buffer
of the active sequence - GroupInterrupt: Interrupts the processing of the currently active sequence (e.g. active
movements) - GroupContinue: Continues the processing of the currently active sequence (e.g. interrupted
movements) - ReadToolData: Gets the offset of the tool.
- WriteToolData: Sets the offset of the tool.
- ReadFrameData: Gets a user-frame in the workspace of the robot.
- WriteFrameData: Sets a user-frame in the workspace of the robot.
The limited functionality mainly takes away commands for defining payloads, for using a secondary sequence of execution of commands, and for changing the dynamic parameters used during motion.
The broad release version of URcap (full version) supports an additional nine core profile functions, totaling 29 functions including those from the limited version. These additional functions include:
- SetSequence: Set active sequence
- ReadRobotDefaultDynamics: Read default values of robot dynamic parameters used by move commands
- WriteRobotDefaultDynamics: Write default values of robot dynamic parameters used by move commands
- ReadRobotReferenceDynamics: Read reference values of robot dynamics for path movement
- WriteRobotReferenceDynamics: Write reference values of robot dynamics for path movement
- ReadLoadData: Read content of selected payload number
- WriteLoadData: Change configuration of selected payload number
- ReadRobotSWLimits: Read actual software limits of the axes
- ReturnToPrimary: Return to path left during active interrupt
Prerequisites
Using SRCI with your Universal Robots cobot requires several prerequisites to be met:
- SRCI Controller: With SRCI the PLC takes charge of controlling the cobot’s motions, and therefore, you need a PLC with SRCI Controller functionality. While SRCI is an open standard, it is currently only Siemens supplying this functionality. You need the SIMATIC Robot Integrator software package (version 1.0.1 or later) running on a SIMATIC S7-1500 family of controllers (firmware version 2.8 or later) and configured via the TIA Portal (version 16 or later). For more information please visit: Robot integration - Siemems Global
- UR SRCI URCap: SRCI is not standard functionality of your UR cobot. You need the UR SRCI URCap, and you need to purchase a license to activate this. Please contact your local sales representative. For the limited release the license will be free of charge.
- PolyScope 5.15.0: Using the UR SRCI URCap requires PolyScope 5.15.0 or later. Currently, PolyScope X does not support UR SRCI. UR SRCI works with any e-Series cobot arm. Supported version of PolyScope is downloadable from our download page.
Getting Started
To enable your UR cobot to use the SRCI protocol follow these steps:
- Install UR SRCI URCap: Download the URCap and put it on a USB-stick. Insert the stick into your Control Box or Teach Pendant and install the URCap via PolyScope (goto Settings -> System -> URCaps). After installation, remember to restart the robot for changes to take effect. It is important to turn off the URCap after use, otherwise it will disable the robot automatically.
- Install UR SRCI license: After purchase, your UR SRCI license is available for download via MyUR. Download the license to a USB-stick. Insert the stick into your Control Box or Teach Pendant and install the license via PolyScope (goto Settings -> System -> Licenses)
- Configure program and installation: A special program which must be named ‘srci.urp’ (case sensitive) needs to be saved on the cobot. During the enable sequence before powering on and brake releasing the cobot arm SRCI loads and executes this program. In essence, the program's purpose is to suspend normal program execution by activating the Interpreter Mode, the interface used for interactive command execution during SRCI operation. Most often ‘srci.urp’ is a very simple program with only a single ‘interpreter_mode()’ script node but it may include any kind of initialization as long as it ends with activation of Interpreter Mode.
The program might look like this:
It is via this program, installation and safety settings are loaded and applied. As any other program ‘srci.urp’ references an installation file holding this data. A copy of a sample ‘srci.urp’ program is provided together with the UR SRCI software package. - Enable interfaces: In PolyScope, enable PROFINET (goto Installation -> Fieldbusses -> PROFINET) and then enable SRCI (goto Installation -> URCaps -> SRCI).
The onscreen traffic light status indicator will tell you the state of the connection to the SRCI Controller. - Provision PROFINET: The TIA Portal manages all PROFINET units on the network, and it is via the TIA Portal that you provision the PROFINET connection from the PLC to your cobot. Please consult existing technical documentation on this topic here: PROFINET how to guide
- Engage Remote Control: Your cobot is now no longer controlled from the Teach Pendent and it must therefore be in Remote Control mode. Enable Remote Control in PolyScope (goto Settings -> System -> Remote Control) and enable it by toggling the mode selector at the top of the PolyScope screen.
Your cobot is now in a stage where it can use SRCI for communicating with the PLC. For information on provisioning and usage of the SRCI Controller (SIMATIC Robot Integrator) please refer to the documentation provided by the manufacturer hereof.
Troubleshooting
SIMATIC Robot Integrator stops working after two hours: The SIMATIC Robot Library, which is used by SIMATIC Robot Integrator, needs a license, and without, it will run for two hours only. When two hours expires user interaction is needs only to restart the PLC. This behavior is intended, and it enables you to try the software before purchasing a license. Siemens is the supplier of SIMATIC Robot Library licenses.
Remote Control: SRCI enables your PLC to control your cobot. This is a clear remote control use case. Therefore, SRCI will be able to enable the cobot only when it is in remote control mode. If you experience trouble enabling your cobot via SRCI, please make sure the cobot is set to remote control.
Safeguarding: Your safety assessment, which is always mandatory when deploying cobots, will tell you which safeguarding provisions are necessary to keep people safe from harm when working with or around your cobot. SRCI is not a safety protocol, and it conveys no information about operating mode or the state of integrated safeguarding devices. Safety signals must be connected to the cobot via existing interfaces (eg. wired IO)
RELEASE NOTES
UR SRCI URCap v. 1.0.2
Provides the entire core profile functionality.
UR SRCI URCap v. 0.2.5
Provides the limited functionality commands of the core profile.