Release Notes
RobotStudio SDK
5.14.03
-The information in this manual is subject to change without notice and should not be construed as a commitment by ABB. ABB assumes no responsibility for any errors that may appear in this manual.
Except as may be expressly stated anywhere in this manual, nothing herein shall be construed as any kind of guarantee or warranty by ABB for losses, damages to persons or property, fitness for a specific purpose or the like.
In no event shall ABB be liable for incidental or consequential damages arising from use of this manual and products described herein.
This manual and parts thereof must not be reproduced or copied without ABB's written permission.
Additional copies of this manual may be obtained from ABB.
The original language for this publication is English. Any other languages that are supplied have been translated from English.
© Copyright 2008 - 2012 ABB All rights reserved. ABB AB
Robotics Products SE-721 68 Västerås
Overview
5
1 Release Information
6
1.1 General 6 1.2 Contents 62 What’s New in 5.14.03?
7
2.1 Pictures in Markups 72.2 Detect “Not a Number” in Vectors and Matrices elements 7
2.3 Decal texture blending mode 7
3 What’s New in 5.14.02?
8
3.1 Added ABB.Robotics.RobotStudio.Controllers to documentation 8
4 What’s New in 5.14.01?
9
4.1 Energy Quantity 9
4.2 Multiline string properties on SmartComponents 9 4.3 Controller I/O Signals does not need to have Access Level ALL 9 4.4 Face.GetU/VRange not limited to spline faces 9
5 What’s New in 5.14?
10
5.1 General 10
5.2 Leveraging new features of RobotStudio 10
5.3 New types and methods 13
5.3.1 ABB.Robotics.Math
13
© Copyright 2012 ABB All rights reserved
4
6.2 Solved Product Defect Documents (PDD) since RobotStudio SDK 5.14.02 21 6.3 Solved Product Defect Documents (PDD) since RobotStudio SDK 5.14.01 21 6.4 Solved Product Defect Documents (PDD) since RobotStudio SDK 5.14 21
7 Known Limitations
22
7.1 Development Environment 22
8 Installation Information
23
8.1 Hardware and Software requirements 23
Overview
Description
This document provides information about the new features, problems corrected, and
installation of RobotStudio SDK.
Product Overview
RobotStudio SDK is included in the RobotStudio installation and can be used for free
by anyone who wants to develop on the RobotStudio platform. It could be scripts,
Add-Ins or applications that can provide new functionality and/or customized user interfaces
in RobotStudio.
It is also possible to call PC SDK to access real or virtual IRC5 controller functionality
from the Add-In.
Custom Smart Components with Code Behind can also be developed using the
RobotStudio SDK.
Visit our web site at http://www.abb.com/roboticssoftware for information and updates.
RobotStudio, including RobotStudio SDK, can be downloaded from the Download
section.
To get started, or to learn more, visit our Developer Center:
http://developercenter.robotstudio.com
Here you will also find the User Forum, where developers discuss software
problems and solutions online:
1 Release Information
1.1 General
Release Name
The release name is RobotStudio SDK 5.14.03 and the build number is 5.14.4766.3069.
For information about RobotStudio, please refer to the document
‘Release Notes
RobotStudio 5.14.03.pdf’
.
Release Date
The release date is 11
thof April, 2012.
1.2 Contents
Overview
The installation includes software, documentation and tools as specified below.
Software
ABB.Robotics.Math.dll
ABB.Robotics.Environment.dll
ABB.Robotics.RobotStudio.Documents.dll
ABB.Robotics.RobotStudio.dll
ABB.Robotics.RobotStudio.Controllers.dll
ABB.Robotics.RobotStudio.Stations.dll
ABB.Robotics.RobotStudio.Stations.Forms.dll
Documentation
Reference Manual – RobotStudio SDK (Html Help).
After installation the documentation can be launched from the RobotStudio Help Menu,
and Windows Start Menu\Programs\ABB Industrial IT\Robotics IT\Robot Studio
5.14\SDK.
Tools
LibraryCompiler.exe
– A tool for batch creation for RobotStudio libraries such as
SmartComponents and Mechanisms.
Visual Studio Project Templates
RobotStudio Add-In – template for a standard Add-In
RobotStudio Smart Component – template for a Smart Component with Code Behind
and XML description.
2 What’s New in 5.14.03?
Overview
This section contains information about new features in this release.
2.1 Pictures in Markups
You can now specify a bitmap to be rendered by a markup, using the new property
Bitmap
on the
Markup
class.
2.2 Detect “Not a Number” in Vectors and Matrices elements
It is now possible to write more robust code that handles vectors and matrices
containing invalid decimal values.
The poprerty
IsNaN
on the
Matrix4
and
Vector3
classes returns a value indicating
whether any elements evaluates to a value that is not a number (NaN).
2.3 Decal texture blending mode
A texture can now be applied to a material in
Decal
mode, using the new
BlendMode
property of the
Material
class. In this mode the texture replaces the underlying color
when the alpha level is 1 in the texture, and the color shines thrugh when the alpha level
is 0.
3 What’s New in 5.14.02?
Overview
This section contains information about corrected problems in RobotStudio SDK
5.14.02.
3.1 Added ABB.Robotics.RobotStudio.Controllers to documentation
The namespace ABB.Robotics.RobotStudio.Controllers was missing in the API
reference documentation and has now been added.
4 What’s New in 5.14.01?
Overview
This section contains information about the new features in 5.14.01. Corrected
problems are listed in chapter 6.4.
4.1 Energy Quantity
Threre
is a new quantity representing Energy. You can use it by the new property
Quantity.Energy
and the enumeration value
BuiltinQuantity.Energy
.
4.2 Multiline string properties on SmartComponents
It is now possible to have a dynamic property on a SmartComponent that is of type
String but contains multiple lines of text.
When a
DynamicProperty
of type
String
is tagged with the attribute
KnownAttributeKey.Multiline
it will be displayed using a multi line text box in the
RobotStudio User Interface. Lines are separated by the
Environment.NewLine
character.
When building your SmartComponent with the library compiler use the
Multiline
attribute of the DynamicProperty element to specify a multi line string property.
4.3 Controller I/O Signals does not need to have Access Level ALL
RobotStudio can now change the value of an input signal in the Virtual Controller even
if the Acess Level is not ALL. For example you can now always change the value of a
Station Logic signal that is connected to a signal in the Virtual Controller regardless of
the accress level.
Setting a signal in this manner is identical to setting a physical I/O signal (that is to
apply +24V or 0V). The Access Level cannot not stop +24V to be connected to a
physical signal. Now the Virtual environment behaves the same.
Hint:
Using PC SDK you can change a signals value in the same manner by using the
property
Signal.InputAsPhysical.
4.4 Face.GetU/VRange not limited to spline faces
The methods
Face.GetVRange
and
Face.URange
are no longer limited to return a
valid result for spline faces.
5 What’s New in 5.14?
5.1 General
Overview
This section contains information about the new features in 5.14.
Section 5.2 describes how you can take advantage of new RobotStudio features in your
application. Sections 5.3 contains a list of new methods and types sorted by namespace.
5.2 Leveraging new features of RobotStudio
Fluent UI
The RobotStudio 5.14 user interface is redesigned and now uses the Microsoft Office
2010 Fluent user interface. Applications built for previous version of RobotStudio that
added user interface elements in the Ribbon does not need to be updated in order to take
advantage of the new style.
The main difference compared to Office 2007 look and style, besides the visual
appearance and color scheme, is the Backstage tab.
The backstage tab replaces the application menu of RobotStudio 5.13.
It is currently not possible for applications to add their own content to the backstage
tab.
Document Manager References
References to files and folder can be added to a station through the new
Station.Documents property.
You can use the enumeration ProjectDocumentType to decide if a reference to a file
or folder, or a an entire file, shall be added to the station.
Accelerated simulation
An option to run the simulation as fast as possible has been added to the Simulation
Accuracy section of the RobotStudio options.
This option corresponds to the new property Simulator.FullSpeed.
It is possible to set the resolution (virtual time step size) and simulation speed (how fast
the virtual clock is advancing) using the properties Simulator.Resolution and
Simulator.SimulationSpeed.
When the simulator is running in full speed it will execute the next time step as soon as
the calculation for the previous one is completed, as fast as the CPU allows. The
predicted execution times for the Virtual Controllers will not be affected.
Simulation Step / Pause / Resume
The methods Simulator.Step, Simulator.Pause and Simulator.Resume,
can be used to be used to step the simulation forward one time step at the time, and to
pause and then resume the simulation.
The ScreenRecorder class now has support Windows Media version 8 and 9. In
addition, movies can be recorded using the H.264 / MPEG-4 encoder that creates
high-quality recordings with a high compression ratio.
The ScreenRecorderFileFormat enumeration has the new elements Wmv and mp4.
Target Reference Frame
The reference frame of a target has now been exposed in the RobotStudio user
interface.
Applications can access modify the reference frame using the property
RsTarget.ReferenceFrame. The target reference frame allows a target to be
modified relative to the original position. This is useful if your application lets the user
create targets using a CAD-model. Your application can define its own specific
relations between the current and original position. For example spin angle, and travel
angle are terms used in arc welding.
Markups
The new Markup class together with the Station.Markups property can be used to
annotate your station. The markups will be persisted in the station file, as opposed to
temporary graphic text boxes.
The performance of the methods that retrieves a list of all available configurations has
been greatly improved. It is now possible for applications to have interactive user
interfaces which needs to constantly retrieve the available configurations.
There new overload
Mechanism.GetAllConfigurations(RsTarget target, RsToolData tool,
Boolean includeTurns) lets you decide if you want to get only the base
configuration, or also all configurations resulting from rotations of 4 and 6.
DataRecorder
The new Signals Analyzer feature is built on top of the DataRecorder API which allows
applications to both provide their own signals which then be selected and analyzed in
the user interface, and also lets applications subscribe to signal changes.
The DataRecorder class is the hub which collects data from all its souces, and
distributes it to its clients, or sinks.
Use the class DataRecorderSource if you would like to provide your own signals to
users, and inherit the base class DataRecorderSink to get notified when a signals
changes value.
The class BuiltInDataRecorderSignals can be used to programmatically access
the signals built in to RobotStudio.
In addition to I/O signals and the EventLog, the following signals can be analyzed:
Signal name
RW availability
Controller Signals / <system name> / EventLog
<domain> Any RW version
Controller Signals / <system name> / Mechanical Units / I/O System
<all signals> Any RW version
Controller Signals / <system name> / Mechanical Units / ROB_x / Joint
J1-J6 Any RW version
Near Limit Any RW version
Controller Signals / <system name> / Mechanical Units / ROB_x / Target
Fine Point Any RW version
Target Reached Any RW version
Controller Signals / <system name> / Mechanical Units / ROB_x / TCP
Maximum Linear Acceleration in World1 RW version 5.14 Orientation Q1-Q4 Current Workobject RW version 5.14 Orientation Speed in Current Workobject RW version 5.14 Pos X, Y, Z in Current Workobject RW version 5.14 Robot Configuration cf1, cf4, cf6, cfx RW version 5.14 Speed in Current Workobject RW version 5.14 Total Motor Power RW version 5.14
Smart Components
<all signals> <no RW needed>
1
5.3 New types and methods
Overview
This section contains information about the new types in the API, and existing types
which has been extended with new methods.
5.3.1 ABB.Robotics.Math
New Types
class LogicExpression
Parses and evaluates a logic
(boolean)expression
class Matrix
Arbitrary-sized matrix
struct Ray
Represents a 3D ray with an origin and a direction.Extended Types
class BoundingBox
Double Distance(Vector3 point)
Returns the distance between this
BoundingBox and a point.
static Double Distance(BoundingBoxlhs, BoundingBox rhs) Returns the distance between two bounding boxes. BoundingBox Expand(Double amount) Returns a BoundingBox expanded
by an amount in all directions. static Boolean
Intersects(BoundingBox lhs,
BoundingBox rhs)
Returns true if two bounding boxes intersects.
static Boolean
Intersects(BoundingBox lhs,
BoundingBox rhs, Double tolerance)
Returns true if two bounding boxes intersects.
class MathExpression
String ErrorText { get; } If the expression is invalid (IsValid returns false), this property may return more information why. Double[]
GetLinearCoefficients(String[]
variables)
Returns the linear coefficients,
if this expression is linear in the set of given variables. Otherwise it returns null. Boolean TrySetVariableValue(String
variable, Double val) Sets the value of a variable, which will be used the next time the expression is evaluated.
struct Matrix4
Plane rhs)
static Boolean operator!=(Plane lhs,
Plane rhs); Inequality operator
struct Quaternion
Double this[Int32 index] Array access.
Vector2
static Boolean operator==(Vector2
lhs, Vector2 rhs); Equality operator
static Boolean operator!=(Vector2
lhs, Vector2 rhs); Inequality operator
struct Vector3
Double[] ToArray();5.3.2 ABB.Robotics.RobotStudio.Environment
Extended Types
class ApplicationMenu
CommandBarControlActiveBackstageControl Gets or sets the active tab of the Backstage (file) menu event EventHandler
ActiveBackstageControlChanged Raised when the ActiveBackstageControl property changes
class UIEnvironment
static Boolean BackstageVisible True if the Backstage (File) tab is currently active, false otherwise.
static event EventHandler
BackstageVisibleChanged Raised when the BackstageVisible property has been changed static event ExceptionEventHandler
Exception Raised when an exception is thrown by an event handler and caught by the environment.
5.3.3 ABB.Robotics.RobotStudio
New Types
class DataRecorderBase
A data recorder collects data from
all its souces, and distributes it to
its sinks.
class DataRecorderSignal
Represents a piece of information that can be recorder by a DataRecorderstruct DataRecorderSignalInfo
Represents information such as dataType and quantity of a DataRecorderSignal.
class DataRecorderSinkBase
A data recorder sink will get notified when signals subscribed by the data recorder is updated.class
DataRecorderSubscribeSignalResult
Represents information about the reason for success or failure to subscribe to a signal.
class ProjectDocument
Represents a document associated with a project.enum ProjectDocumentFlags
Specifies values for the Flags property.enum ProjectDocumentType
Specifies the type of aProjectDocument
enum SignalDataType
Specifies the data type of a DataRecorderSignalenum SignalInterpolationType
Specifies the type of interpolation for a DataRecorderSignalExtended Types
class AttributeCollection
Boolean TryGetValue<T>(String key,
out T value) Gets the value with the specified key.
Boolean TryGetValue(String key, out
Object value) Gets the value with the specified key.
enum BuiltinQuantity
Power
class ExceptionLogMessage
String GetErrorString() Returns a string containing the aggregated stack
traces and exception messages of the associated exception, and its inner exceptions.
class Logger
static void AddMessage(String
message) Adds an log message to the logger.
class Options
static void Save() Commits all options to disk.
class ProjectObject
IEnumerable<ProjectObject> Children Enumerates all child objects.
enum ProjectObjectChangeType
UndoRedo The object was changed as a result of an undo or redo operation.
struct Vector4
Boolean AlmostEquals(Vector4 vec,
Double tolerance) Comparison method for vectors with tolerance.
Double[] ToArray(); Returns the elements (x,y,z,w) as an array.
5.3.4 ABB.Robotics.RobotStudio.Controllers
New Types
class
ControllerObjectSelectionTypes
Gives access to the controller object types which can be selected in the Online or Offline browser.
Extended Types
class
ControllerObjectReference
ControllerObjectType ObjectType Specifies the type of controller object that is referenced by a ControllerObjectReference.
class
ControllerReferenceCollection
ControllerObjectReference this[Guid
systemId] Gets the controller reference at the specified index.
5.3.5 ABB.Robotics.RobotStudio.Diagnostics
Extended Types
class ApplicationLogger
static String CurrentLogFile Returns the location of the log file for the current session.
static void LogException(Exception ex) Adds an exception error message and flushes the log to disk.
static void LogException(String message,
Exception ex) Adds an exception error message and flushes the log to disk. static void LogException(Exception ex,
Boolean toOutput) Adds an exception error message and flushes the log to disk. static void LogException(String message,
Exception ex, Boolean toOutput) Adds an exception error message and flushes the log to disk. static void LogExceptionOnce(String
message, Exception ex, Boolean toOutput) Adds an exception error message and flushes the log to disk.
5.3.6 ABB.Robotics.RobotStudio.Stations
New Types
class
BuiltInControllerSourceSignals
Gives access to built in data recorder signals, that represents information
enum
BuiltInDataRecorderMotionSignal
Specifies information from the robot motion system that can be recorded.
class BuiltInDataRecorderSignals
Gives access to the identities of thebuilt in data recorder signals.
class
BuiltInSmartComponentSourceSignals
Gives access to built in data recorder signals, that represents information from SmartComponents.
class Markup
Represents a text and pointermarkup displayed in the 3D graphics.
class SimulationDataRecorder
A data recorder than can recordsignals from a simulation. It is synchronized with virtual time.
Extended Types
class Body
FaceCollection Faces Gets the FaceCollection that the Shell belongs to.
WireCollection Wires Gets the WireCollection that the Shell belongs to.
static Body CreateFromFace(Face
face) Creates a new Body consisting only of a copy of the given Face
class Camera
Double FieldOfView Gets or sets the field of view, in degrees.
Vector3 UpDirection Gets or sets the up direction vector.
class CollisionDetector
static CollisionType
CheckCollision(GraphicComponent
object1, GraphicComponent object2, Double nearMiss, DetectableUsage detectableUsage, out Part part1, out Part part2)
Calculates whether two objects intersect, or whether an object intersects any other object, and returns the intersecting Parts.
enum DetailLevels
Default
class Face
Boolean GetCenterPoint(out Vector3
centerPoint) Returns the center point of a planar surface.
Edge[] GetEdges() Returns an array contianing the edges of this face.
class Material
Material Clone()
class Mechanism
Matrix4 ModelBaseFrame Returns the nominal base frame of this model.
ConfigurationData[]
GetAllConfigurations(RsTarget
target, RsToolData tool, Boolean includeTurns)
Returns reachable arm configurations for the specified target.
Matrix4 GetCalibrationPosition(Int32
jointIndex) Returns the calibration transform for a joint.
Matrix4 GetJointTransform(Int32
jointIndex) Get the transform for a joint The index of the joint for which the transform shall be retrieved. Boolean
GetParentJoint(GraphicComponent
link, out Int32 jointIndex)
Returns the joint index of a link, or -1.
Boolean GetParentLink(Int32 jointIndex, out GraphicComponent link)
Returns the parent link of a joint.
class Mesh
MeshPart Closest(DetailLevels
detailLevel) Returns the available detail level, which is close as possible to the one specified.
void Save(String fileName) Saves this Mesh to an .rsgfx file.
static Mesh Load(String fileName) Loads a Mesh from an .rsgfx file.
class MeshBody
MeshBody Clone() Returns a deep clone of this MeshBody.
class MeshFace
MeshFace Clone() Returns a deep clone of this MeshFace.
class MeshPart
MeshPart Clone() Returns a deep clone of this MeshPart.
class Part
void Facet(DetailLevels
detailLevels) Re-creates the graphical representation of this Part.
void Facet(DetailLevels
detailLevels, Boolean surfaceModel) Re-creates the graphical representation of this Part. void Facet(DetailLevels
detailLevels, Boolean surfaceModel, ProgressNotification progress)
Re-creates the graphical representation of this Part.
class
PropertyBindingCollection
void Clear()class
RsIrc5ConveyorEncoderUnit
if true an object is connected.
Double Speed Gets or sets the speed of the conveyor.
class RsTarget
void JumpTo(RsToolData tool,
ConfigurationData configuration) Jumps the tool and the attached robot to the target with specified configuration. Completely ignores the configuration already defined.
class Simulator
static Boolean FullSpeed Gets or sets a value indicating if the simulation should run at maximum possible speed.
static Double CurrentTime Gets the current simulation time (in milliseconds). static SimulationDataRecorder
DataRecorder Gets the data recorder that records simulation data.
static void Step() Advances the current simulation one time step.
static event EventHandler
ActiveConfigurationChanged Raised when the ActiveConfiguration property changes.
class SmartComponent
Boolean IsBaseComponent Returns true if this is a built-in base component.
class SmartComponentCodeBehind
virtual void
OnLibraryReplaced(SmartComponent
component)
Called if the library containing the SmartComponent has been replaced virtual void OnLoad(SmartComponent
component) Called when the library or station containing the SmartComponent has been loaded.
class Station
BuiltInDataRecorderSignals
BuiltInDataRecorderSignals Gives access to the identities of the built in data recorder signals. MarkupCollection Markups Gets a MarkupCollection object that represents all
the markups on this Station object. ProjectDocumentCollection Documents Gets a the collection of ProjectDocuments
associated with this Station.
class Texture
static Texture CreateParallaxBumpMap Creates a combined normal map and bump map from two images,
5.3.7 ABB.Robotics.RobotStudio.Stations.Forms
New Types
class RefFrameCoordSys
Extended Types
class GraphicPicker
static event EventHandler<AfterFreehandEventArgs> AfterFreehandOccurs when an object has been moved or rotated by freehand manipulation.
class TemporaryGraphic
String Text Sets the text of this TemporaryGraphic object
class
TemporaryGraphicCollection
TemporaryGraphic DrawMesh(Matrix4
6 Problems Corrected
Overview
This section describes the problems solved in RobotStudio SDK.
6.1 Solved Product Defect Documents (PDD) since RobotStudio SDK 5.14.03
No solved PDDs.
6.2 Solved Product Defect Documents (PDD) since RobotStudio SDK 5.14.02
No solved PDDs.
6.3 Solved Product Defect Documents (PDD) since RobotStudio SDK 5.14.01
No solved PDDs.
6.4 Solved Product Defect Documents (PDD) since RobotStudio SDK 5.14
ID
Title
PDD10178 GetURange and GetVRange