Orientations in 3D can be represented either as:
* A 4-element unit-length Quaternion (x,y,z,w)
* A 3x3 transformation matrix
* A 3-vector of Euler angles
(Tait/Cardan-Bryant) Roll, Pitch, Yaw angles (alpha,beta,gamma).
This is equivelent to EulerXYZ and assumes that the
x-axis points forward, y-axis points right and the z-axis up.
(Aeronautical convention)
Quaternion |
0 |
|
Matrix |
1 |
|
EulerRPY |
2 |
Debug |
0 |
|
Info |
1 |
|
Warn |
2 |
|
Critical |
3 |
A Coordinate Frame is a reference frame in space
against which concrete coordinates are relative.
In 3D space a frame can be represented by an origin
and the direction of the x,y & z axes - explicitly or
otherwise.
* Implicit - the coordinate frame is implicit in its type (e.g. predefined)
(e.g. the base frame is relative to the fixed mount of the robot)
* Transform - the frame is represented by a standard 4x4 transformation matrix
* OffsetOrient - the frame is represented by an origin and orientation in 3D
* OriginPlane - the frame is defined by an origin and two additional points making up a plane
Implicit |
0 |
|
Transform |
1 |
|
OffsetOrient |
2 |
|
OriginPlane |
3 |
Type of predefined coordinate frames (representaton is implicit)
* Joint - the joint space of the robot (dimension equals the number of axes / dof)
* World - Cartesian frame of environment (typically coincident with the robot base)
* Base - Cartesian frame of the base mount of the robot
(for robots not mounted on a moveable base, fixed relative to the robot frame)
* Robot - Cartesian frame of the robot (e.g. from first axis)
* ToolPlate - Cartesian frame of the tool mounting plate
* ToolTip - Cartesian frame of the tip of the tool (i.e. End-Effector)
(this depends on the specific tool)
* User - Cartesian frame configured by user stored in the controller
(multiple user frames can be defined and referenced by index)
* LeaderTool - Cartesian frame of the leader tool for coordinated system
(also known as master tool; API Version 4.4 or Later)
Joint |
1 |
|
World |
2 |
|
Base |
7 |
|
Robot |
3 |
|
ToolPlate |
4 |
|
ToolTip |
5 |
|
User |
6 |
|
LeaderTool |
8 |
|
None |
0 |
None |
0 |
|
Millimeter |
1 |
|
Inch |
2 |
|
Meter |
3 |
None |
0 |
|
Pulse |
1 |
|
Radian |
2 |
|
Degree |
3 |
Specify how to compute inverse kinematics (via transformPositionToFrame()):
Delta: minimize joint coordinate distance between solution and provided Position
Closure: try to match solution arm closure with provided Position
Default: Use controller default method
None: Not applicable/Do nothing
None |
0 |
|
Default |
1 |
|
Delta |
2 |
|
Closure |
3 |
Startup |
0 |
|
Shutdown |
1 |
|
SwitchedScreen |
2 |
|
PopupOpened |
3 |
|
PopupClosed |
4 |
|
UtilityOpened |
5 |
|
UtilityClosed |
6 |
|
UtilityMoved |
7 |
|
Clicked |
8 |
|
Pressed |
9 |
|
Released |
10 |
|
TextEdited |
11 |
|
Accepted |
12 |
|
EditingFinished |
13 |
|
CheckedChanged |
14 |
|
Activated |
15 |
|
PanelOpened |
16 |
|
PanelClosed |
17 |
|
Canceled |
18 |
|
JoggingPanelVisibilityChanged |
19 |
|
VisibleChanged |
20 |
|
IntegrationPointSwitchStateChanged |
21 |
|
ValueChanged |
22 |
|
UtilityCreated |
23 |
|
UtilityDirectOpened |
24 |
|
Other |
16384 |
UtilityWindow |
0 |
|
NavigationPanel |
10 |
|
ProgrammingCommandBar |
20 |
|
ProgrammingHeaderBar |
30 |
|
SmartFrameJogPanelTopLeft |
40 |
|
SmartFrameJogPanelTopRight |
41 |
|
SmartFrameJogPanelTopAny |
44 |
|
SmartFrameJogPanelBottomLeft |
45 |
|
SmartFrameJogPanelBottomCenter |
46 |
|
SmartFrameJogPanelBottomRight |
47 |
|
SmartFrameJogPanelBottomAny |
49 |
|
JogPanelTopCenter |
50 |
|
HomeScreen |
60 |
|
JobTestPanelCenter |
70 |
|
JobTestPanelBottomLeft |
71 |
|
JobTestPanelBottomRight |
72 |
|
JobTestPanelTopLeft |
73 |
|
JobTestPanelTopRight |
74 |
Negative |
1 |
|
Neutral |
0 |
|
Positive |
2 |
All |
0 |
|
Welding |
1 |
Connected |
0 |
|
RobotModel |
1 |
|
ExclusiveControl |
2 |
|
CycleTime |
3 |
|
PowerOnTime |
4 |
|
ServoOnTime |
5 |
|
EnabledOptionsChanged |
6 |
|
OperationMode |
7 |
|
ServoState |
8 |
|
PlaybackState |
9 |
|
SpeedOverride |
10 |
|
ActiveTool |
11 |
|
AlarmActive |
12 |
|
ActiveAlarmsChanged |
13 |
|
RestartRequired |
14 |
|
EStopEngaged |
15 |
|
EnableSwitchActive |
16 |
|
RemoteMode |
17 |
|
JoggingActive |
18 |
|
JoggingSpeedChanged |
19 |
|
JoggingModeChanged |
20 |
|
RobotTCPPosition |
21 |
|
BrakeRelease |
22 |
|
SoftLimitRelease |
23 |
|
SelfInterferenceRelease |
24 |
|
AllLimitsRelease |
25 |
|
ParametersChanged |
26 |
|
PredefinedPositionsChanged |
27 |
|
FeatureAvailabilityChanged |
28 |
|
JointLimitsChanged |
29 |
|
JointMotorPulseDegreeRatioChanged |
30 |
|
FunctionalSafetyHardwareAvailable |
31 |
|
NetworkInterfacesChanged |
32 |
|
CurrentRobot |
33 |
|
JobTagsChanged |
34 |
|
JobListChanged |
35 |
|
JobStackChanged |
36 |
|
CurrentJob |
37 |
|
DefaultJob |
38 |
|
ToolsChanged |
39 |
|
ToolIOsChanged |
40 |
|
UserFramesChanged |
41 |
|
ZonesChanged |
42 |
|
SafetyRobotRangeLimitDataChanged |
43 |
|
SafetyAxisSpeedMonitorDataChanged |
44 |
|
SafetySpeedLimitDataChanged |
45 |
|
SafetyExternalForceMonitorFileChanged |
46 |
|
SafetyIOListChanged |
47 |
|
VariablesChanged |
48 |
|
VariableNamesChanged |
49 |
|
IONamesChanged |
50 |
|
IOValueChanged |
51 |
|
PermissionGranted |
1000 |
|
PermissionRevoked |
1001 |
Automatic - Play
Manual - Teach
Automatic |
0 |
|
Manual |
1 |
Off |
0 |
|
Ready |
1 |
|
On |
2 |
Run |
0 |
|
Hold |
1 |
|
Idle |
2 |
Step |
0 |
|
Once |
1 |
|
Continuous |
2 |
Robot |
0 |
|
Base |
1 |
|
Station |
2 |
|
Combined |
254 |
|
None |
255 |
Local |
0 |
|
Global |
1 |
Variable address space
Unified |
0 |
|
Byte |
1 |
|
Int |
2 |
|
DoubleInt |
3 |
|
Real |
4 |
|
String |
5 |
|
Position |
6 |
|
BasePosition |
7 |
|
StationPosition |
8 |
Status |
0 |
|
Alarm |
1 |
Available modes of jogging
* Joint - the joint space of the robot (dimension equals the number of axes / dof)
* World - Cartesian frame of environment (typically coincident with the robot base)
* Tool - Cartesian frame of the tip of the tool (i.e. End-Effector)
(this depends on the specific tool)
* User - Cartesian frame configured by user stored in the controller
(multiple user frames can be defined and referenced by index)
* Hand - Hand guiding mode for jogging
* Smart - Smart Frame, based on the pendant orientation
(API version 3.0 and later)
Joint |
0 |
|
World |
1 |
|
Tool |
2 |
|
User |
3 |
|
Hand |
4 |
|
Smart |
5 |
Available speeds for jogging
* Low - slowest
* Medium -
* High -
* Top - fastest
(API version 3.0 and later)
Low |
1 |
|
Medium |
2 |
|
High |
3 |
|
Top |
4 |
Available motion types available when using GoToPositionButton
* DefaultInterpolation - uses joint interpolation to move to joint coordinate position, and linear interpolation to move to Cartesian coordinate position.
* JointInterpolation - uses joint interpolation (regardless of position coordinate system)
* LinearInterpolation - uses linear interpolation (regardless of position coordinate system)
(API version 3.1 and later)
DefaultInterpolation |
-1 |
|
JointInterpolation |
0 |
|
LinearInterpolation |
1 |
Represents the joint type for a robot's axis (API Version 3.1 or Later)
Rotary |
0 |
|
Linear |
1 |
Base type: i64
Base type: i64
Base type: i64
Base type: i64
Base type: list<double>
Base type: list<i64>
Base type: Vector
Base type: map<string, Data>
Base type: i32
Base type: i32
Base type: i32
Base type: i32
| Key | Field | Type | Description | Requiredness | Default value |
|---|
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | msg | string |
required |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | rows | i64 |
default | ||
| 2 | cols | i64 |
default | ||
| 3 | m | list<Vector> |
default |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | rep | OrientationRepresentation |
default | OrientationRepresentation.EulerRPY |
|
| 2 | v | Vector |
optional | ||
| 3 | m | Matrix |
optional |
If rep is Quaternion or EulerRPY then v contains the elements,
otherwise if rep is Matrix m contains the 3x3 transform
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | origin | Point |
default | ||
| 2 | xx | Point |
default | ||
| 3 | xy | Point |
default |
Position and Orientaiton in 3D defined by
an origin point and two points that define a plane
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | nmajor | i16 |
default | ||
| 2 | nminor | i16 |
default | ||
| 3 | npatch | i16 |
default | ||
| 4 | release | string |
optional | ||
| 5 | build | string |
optional |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | rep | CoordFrameRepresentation |
default | CoordFrameRepresentation.Implicit |
|
| 2 | predefined | PredefinedCoordFrameType |
default | ||
| 3 | name | string |
optional | ||
| 4 | robot | RobotIndex |
optional | ||
| 5 | tool | ToolIndex |
optional | ||
| 6 | transform | Matrix |
optional | ||
| 7 | vecorient | VectorOrient |
optional | ||
| 8 | userFrame | UserFrameIndex |
optional | ||
| 9 | pointplane | PointPlane |
optional |
Represents a coordinate frame
Used as a reference frame for position coordinates
If rep is Implicit then it represents one of the predefined
frames defined by the physical configuration of the cell, robot and/or tool.
If predefined is:
* Joint - the frame is in the axis space of the robot joints (hence dimension is dof of the robot)
* World - the fixed Cartesian frame of the cell (often coincident with Base)
* Base - the base mount of the robot - requires robot set
* Robot - the robot itself (e.g. origin at first axis) - requires robot set
(unless mounted on a moveable base, fixed offet, possibly 0, from base)
* ToolPlate - toolplate of the end-effector (as when no tool mounted)
* ToolTip - 'business end' of the tool. Depends on which tool is mounted/active
and requires tool be set
* User - User defined frames configured in the controller - requires userFrame set.
User frames also have an associated tool in the YRC Controller, hence requires
tool to be set. pointplane may be set if user frame is defined
via origin point and points in plane
* LeaderTool - the frame attached to the leader tool of coordinated system
(also known as master tool; API Version 4.4 or Later)
If rep is Transform then transform Matrix must be valid
If rep is OffsetOrient, vecorient must be valid
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | frame | CoordinateFrame |
default | ||
| 2 | distUnit | DistanceUnit |
optional | ||
| 3 | orientUnit | OrientationUnit |
default | ||
| 4 | pos | Vector |
optional | ||
| 5 | orient | Orient |
optional | ||
| 6 | joints | Vector |
optional | ||
| 7 | closure | IVector |
optional | ||
| 8 | redundancy | Vector |
optional |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | bValue | bool |
optional | ||
| 2 | iValue | i64 |
optional | ||
| 3 | rValue | double |
optional | ||
| 4 | sValue | string |
optional | ||
| 5 | vValue | Vector |
optional | ||
| 6 | pValue | Position |
optional | ||
| 7 | aValue | list<Any> |
optional | ||
| 8 | mValue | map<string, Any> |
optional |
Useful union for holding one of several data types
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | timestamp | i64 |
default | ||
| 2 | datetime | string |
default | ||
| 3 | level | LoggingLevel |
default | ||
| 4 | entry | string |
default |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | x | Vector |
default | ||
| 2 | y | Vector |
default | ||
| 3 | z | Vector |
optional | ||
| 4 | color | string |
optional | ||
| 5 | vertex | string |
optional | ||
| 6 | style | string |
optional | ||
| 7 | hidden | bool |
optional | ||
| 8 | maxPts | i32 |
optional |
Data structures for passing values to charts for plotting
Series data is used for line and scatter charts, while
category data is used for pie and bar charts
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | v | double |
default | ||
| 2 | color | string |
optional | ||
| 3 | hidden | bool |
optional |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | x | double |
default | ||
| 2 | y | double |
default | ||
| 3 | z | double |
optional |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | sData | Series |
optional | ||
| 2 | cData | Category |
optional |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | path | string |
default | ||
| 2 | volname | string |
default | ||
| 3 | volsize | string |
default |
External File Storage: name, location and volume details
(API version 2.3 and later)
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | eventType | PendantEventType |
required | ||
| 2 | props | map<string, Any> |
optional |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | itemID | string |
required | ||
| 2 | props | map<string, Any> |
required |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | eventType | ControllerEventType |
required | ||
| 2 | props | map<string, Any> |
optional |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | type | ControlGroupType |
default | ||
| 2 | index | i8 |
optional |
A simple control group (of axes)
A Robot, Robot Base (e.g. rail) or Station
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | groups | list<SimpleControlGroup> |
default | ||
| 2 | master | SimpleControlGroup |
optional |
Set of simple control groups combined into a new
control group, optionally designating a master
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | type | ControlGroupType |
default | ||
| 2 | number | i8 |
default | ||
| 3 | sgroup | SimpleControlGroup |
optional | ||
| 4 | cgroup | CombinedControlGroup |
optional |
General control group
May be
* simple, such as a single Robot OR
* a combined control group consisting of multiple
simple control groups.
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | name | string |
default | ||
| 2 | programmingLanguage | string |
default | ||
| 3 | jobType | string |
default | ||
| 4 | editable | bool |
default | ||
| 5 | timestamp | i64 |
default | ||
| 6 | datetime | string |
default | ||
| 7 | comment | string |
default | ||
| 8 | frame | CoordinateFrame |
default | ||
| 9 | controlling | ControlGroup |
default |
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | index | ToolIndex |
default | ||
| 2 | name | string |
optional | ||
| 3 | weight | double |
optional | ||
| 4 | offset | Vector |
optional | ||
| 5 | orient | Orient |
optional | ||
| 6 | centerOfMass | Vector |
optional | ||
| 7 | momentOfInertia | Vector |
optional | ||
| 8 | blockIOName | string |
optional | ||
| 9 | offsetUnit | DistanceUnit |
optional | ||
| 10 | orientUnit | OrientationUnit |
optional |
Default units kg, m and radian
(offsetUnit and orientUnit only available for API version 3.0 and later)
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | scope | Scope |
default | Scope.Global |
|
| 2 | aspace | AddressSpace |
default | AddressSpace.Unified |
|
| 3 | address | i64 |
default |
Variable address (scope, address-space & address/index)
| Key | Field | Type | Description | Requiredness | Default value |
|---|---|---|---|---|---|
| 1 | number | i16 |
default | ||
| 2 | name | string |
optional | ||
| 3 | enabled | bool |
optional | ||
| 4 | action | ZoneAction |
optional | ||
| 5 | minPos | Position |
optional | ||
| 6 | maxPos | Position |
optional |
Zone - a region in space
* In joint space, defined by minimum and maximum joint angles
* In Cartesian space, a lower/min and upper/max corner defining a rectangular prism (a box)
(only Base, Robot and User-Frames are supported for Cartesian zones)
Action determines if an I/O status signal changes in response to zone entry/exit,
or if an Alarm is issued upon entry.
Note: index is 0-based, interface Zone Numbers are 1-based
The Extension API.
Use this interface to initially register the extension with the main pendant
API Service and obtain handle IDs to the Controller and Pendant services.
Note in this function-level documentation, functions of the Controller Service
take an initial ControllerID parameter, Pendant Service functions take an initial PendantID etc.
However, if you are using a Yaskawa supplied client library these may be wrapped as
object methods and hence the initial id should be omitted.
VersionVersion of API the service implements.
Smart Pendant | API version
2.0 | 2.0.4
2.1 | 2.1.0
2.2 | 2.2.0
2.3 | 2.3.0
3.0 | 3.0.0
3.1 | 3.1.0
4.0 | 4.0.2
ExtensionIDRegister extension with Smart Pendant API service.
Extension must exist in the extension database (i.e. through installation)
voidvoidIndicate liveliness
API service will automatically unregister extensions that are unresponsive for some period.
If extension is not regularly calling events(), call ping() to indicate the extension is operational.
ControllerIDObtain ID handle for Robot Conroller API
PendantIDObtain ID handle for Pendant UI API
voidLog message to standard pendant logging facility
Visible to end-users upon plain-text log file export.
Note that Debug level logging is ignored unless in Developer access level.
Note it is asynchronous so no errors/exceptions are thrown.
voidSubscribe to receive log message events via events()
voidlist<LoggingEvent>Obtain list of logging events that have occured since last call
NB: For development troubleshooting only, logging events
only available when development access enabled
list<storageInfo>Obtain a list of ExternalStorageDevice structs corresponding to USB storage
available to the pendant/and or controller. If no storage is available this
list will have no elements.
(API version 2.3 and later)
list<string>list files/directories in external storage for the specified storage path
(API version 2.3 and later)
FileIDOpen files for reading and/or writing
the argument path is the full path to the file of interest
the argument flags can be 'r' (read) or 'w' (write w/ append)
(the FileID will return -1 if it failed to open the file)
(API version 2.3 and later)
voidClose files from reading and/or writing
(API version 2.3 and later)
boolCheck if the file is available for read/write.
(API version 2.3 and later)
stringRead all data from the file.
(API version 2.3 and later)
stringRead a chunk of data from the file.
the argument offset indicates the number of bytes into the file
the argument len indicates the number of bytes to read
(API version 2.3 and later)
voidWrite a string to a file. This will create a new file (and or directory)
if missing, but will simply append if the file already exists.
(API version 2.3 and later)
binaryRead all binary data from the file.
(API version 4.0.3 and later)
binaryRead a chunk of binary data from the file.
the argument offset indicates the number of bytes into the file
the argument len indicates the number of bytes to read
(API version 4.0.3 and later)
voidWrite a binary string to a file. This will create a new file (and or directory)
if missing, but will simply append if the file already exists.
(API version 4.0.3 and later)
voidWrite the file to disk. For files not local to the pendant this
will FTP them to the controller.
(API version 2.3 and later)
stringstringlist<string>The Pendant API provides functions for interacting with and
integrating the main Smart Pendant user-interface.
(Extensions are not required to have a user-interface)
VersionVersion of the Smart Pendant itself
(avoid using this for conditional feature use - use the Extension apiVersion() instead)
voidSubscribe to specified set of Pendant service events. May be called multiple times to add to subscription.
voidUnsubscribe from specified set of Pendant service events.
voidSubscribe to specified set of Pendant service YML Item-specific events.
Specified events will be sent for all specified items. May be called multiple times to add to subscription.
voidUnsubscribe from specified set of Pendant service YML Item-specific events.
list<PendantEvent>Obtain list of Pendant service events that have occured since last call
stringQuery the current UI language of the pendant interface.
Returns IETF language codes (RFCs 5646, 5645, 4647) of languages
(typically ISO 693-1 code when region insignificant)
stringstringThe UI screen currently shown to the pendant user
list<string>Register an Item type described using a YML source code string
Returns a list of parsing errors (0 on success)
voidRegister an image file for later reference by filename (must be uniquely named, with .jpg or .png).
If file cannot be accessed by service, it will be locally read and registerImageData called instead.
voidRegister an image for later reference by name (must be uniquely named, with .jpg or .png extension)
voidRegister a HTML file for later reference by filename (must be uniquely named, with .html).
If file cannot be accessed by service, it will be locally read and registerHTMLData called instead.
voidRegister HTML for later reference by name (must be uniquely named, with .html extension)
voidRegister a translation file (e.g. a Java properties file for a language); extension is used to determine format
voidRegister translation file data (translationName typically filename-like; extension is used to determine format)
voidRegister a menu that utilities can be registered under *
voidUnregisters a user added menu - All Utilities within the menu must be unregistered with 'unregisterUtilityWindow' first
voidRegister a Utility window with the UI.
The itemType references a previously registered YML item instantiated for the window
UI content.
The menuName refers to a previously registered menu that the utility will apear under on the
main menu or if none is specified it will be under 'Utility'
voidvoidvoidOpen (make visible) previously registered Utility Window
voidClose a visible Utility Window (make invisible - state is maintained)
voidCollapse previously registered Utility Window, if in expanded state (and expandCollapseResize true)
voidExpand previously registered Utility Window, if in collapsed state (and expandCollapseResize true)
voidRefresh the Inform grammar for instructions with the specified type *
voidRegister UI content at the specified integration point in the pendant UI.
The itemType should reference a YML item previously registered via registerYML().
voidvoidRegister a Switch component at the specified integraiton point in the pendant UI.
When the switch is toggled, it creates a PendantEvent with a type of IntegrationPointSwitchStateChanged that can be gotten via events()
Switches registered with registerSwitch() can be unregistered with unregisterIntegration()
voidRegisters the extension as a link directly from any given instruction, if the specified tags are in the line
Note: the informTags are treated as disparate cases, not cumulative where all the tags specified have to be active
for the direct open functionality
voidUnregisters the extension as a link directly from the specified inform command
Anyget property of an item by id
voidSet property of an item by id
voidSet several properties (potentially for different items) at once. This is more
efficient that many repeated calls to setProperty().
Note it is asynchronous so no errors/exceptions are thrown
voidSet the configuration of a chart by ID.
AnyGet the configuration of a chart by ID
voidSet the dataset of a chart by ID. In line and scatter charts,
you can set 'right' to true to pass the dataset for a secondary
scale on the right hand side.
DataSetGet the dataset of a chart by ID. In line and scatter charts,
you can set 'right' to true to access the dataset for a secondary
scale on the right hand side.
voidAdd a new key to the dataset of a chart by ID. In line and scatter charts,
you can set 'right' to true to pass the dataset for a secondary
scale on the right hand side.
voidRemoves an existing key from the dataset of a chart by ID. In line and
scatter charts, you can set 'right' to true to remove from the
secondary dataset.
voidHides an existing key from the dataset of a chart by ID. In line and
scatter charts, you can set 'right' to true to hide a key from the
secondary dataset.
voidAppend new data points to a specified key in the data of a chart by ID.
This function will only have an effect on line/scatter charts. Set
'right' to true to pass the dataset for a secondary scale on the right
hand side.
Note it is asynchronous so no errors/exceptions are thrown.
voidIncrements a category value by `val`.
stringExport the current chart contents to the specified filename (must be uniquely named, with .jpg or .png).
Calls exportChartImageData if the extension is unable to access the file.
binaryExport the current chart contents to a binary blob (must be uniquely named, with .jpg or .png extension)
voidShow notice to user.
Notices are automaticlly hidden after a short display period.
Notice messages are logged, if log parameter if provided, that will be logged instead of title & message.
Note it is asynchronous so no errors/exceptions are thrown.
voidShow notice to user with specified disposition.
As for notice() but displayed in a way that connotes the specified disposition.
For example, a Positive disposition may be shown in green.
Note it is asynchronous so no errors/exceptions are thrown.
(API version 2.1 and later)
voidShow error to user.
Errors should only indicate important situations that the user must be aware of and for which deliberate
acknowledgement is required before proceeding. Typically, some action will be required to correct the situation.
Errors are displayed until dismissed by the user.
Error messages are logged, if log parameter if provided, that will be logged instead of title & message.
Note it is asynchronous so no errors/exceptions are thrown.
voidDisplay modal pop-up dialog. Typically, Yes/No, although negativeOption can be omitted
The identifier can be used to associate the corresponding PopupOpened & PopupClosed events triggered by
user positive/negative selection or automatic dismissal/cancellation - for example is screen switched, alarm etc.
voidCancel an open popup dialog. If the dialog has a negative option, behaves as if user selected it, otherwise
no event is generated
stringInserts an instruction, returns a string:
Success,
UnsupportedCommand,
InvalidFormat,
ProgrammingViewClosed,
JobDoesNotExist,
CallingJobFromSameJob,
ExceededMaxArguments,
JobNotEditable,
MultiSelectActive,
TimedOut,
Unknown
stringstringvoidDisplays a standard pendant UI screen by passing a string with the screen identifier. (Only available from SDK API 2.2 onward)
Refer to the YML - URI Links documentation for the list of supported screens and settings.
Do not include the URI "<a href> screen:" portion in the identifier. For example to display the jogging panel use:
pendant.displayScreen("programmingView?panel=jogging");
voidDisplays an html file in a standard Smart Pendant help dialog. (Only available from SDK API 3.0 onward)
stringRetrieves the security level on the controller. Returns:
- Operate
- Edit
- Management
- Safety
- Yaskawa
(API 3.1 and Later)
boolQueries if the current security level is at least specified security level
Accepts:
-"Operate"
-"Edit"
-"Management"
-"Safety"
-"Yaskawa"
Other inputs will return an error.
(API 3.1 and Later)
voidAppend a row to a container
(API 3.5 and Later)
voidInsert a row to a container
(API 3.5 and Later)
voidDelete a row from a container
(API 3.5 and Later)
voidRemove all row from a container
(API 3.5 and Later)
voidAppend rows to a container
(API 3.5 and Later)
Interface to Robot Controllers
In general, a pendant may operate in connected or disconnected states. When connected to a Robot Controller
it may be monitoring or not have exclusive control (i.e. not be the single-point-of-control).
However, typically, once an extension is running, the pendant is connected to the controller and
is the single-point-of-control.
boolRequest specified permissions.
"jobcontrol" permission is used to manipulate jobs
"networking" permission is used to connect to external networks
boolCheck permisions obtained.
voidRelinquish permissions (no effect if not held).
voidConnect to the specified Robot Controller (by IP adress or hostname if DNS available)
Typically, the pendant will already be connected to a controller when extensions are started,
so calling connect() is not required.
voidDisconnect from the connected controller. This leaves the pendant in the 'disconnected' state.
When disconnected, many functions are unavailable or will return default values.
voidSubscribe to the specified events, if not already.
Note: If using a Yaskawa supplied client library with event consumer callback support,
registering an event consumer callback will automatically subscribe to the appropriate event.
voidUnsubscribe from the specified events.
If called directly, this may causes event consumers for the events not to be called.
list<ControllerEvent>Poll the API Service for pending events.
Note: If using a Yaskawa supplied client library, this does not need to be called explicitly.
boolReturns true if the pendant is connected to a robot controller
stringReturns the hostname or IP address of the robot controller to which the pendant is connected, if any
stringThe software version string of the robot controller system software.
list<string>List of the features available on the robot controller system.
(API version 4.4 and later)
boolReturns true if the pendant is only monitoring the robot controller to which it is connected. This
implies that no functions that modify the controller and/or robot state will succeed.
boolReturns true if this pendant is the single-point-of-control for the connected Robot Controller.
If not, most functions that modify the controller and/or robot state will fail.
OperationModeCurrent operation mode of the controller
Automatic (aka Play) - running jobs
Manual (aka Teach) - for editing jobs, teaching points, jogging, setup etc.
ServoStateAre the servo drives engaged?
On - yes, robot(s) are being actively controlled
Off - no. Typically brakes are engaged (unless brake-release engaged)
Ready - ready to engage servos. Typically requires operator to use servo enable switch.
PlaybackStateIndicates if a job us running or stopped.
Run - jobs are running (robot may be moving)
Held - jobs were running but have been held/paused.
Idle - no jobs are running
PlaybackCycleThe playback cycle affects how the controller runs a job.
Step - a job is run line-for-line.
Once - a job is run from the beginning to the end.
Continuous - a job is run indefinitely from the beginning to the end.
(API Version 3.0 and Later)
voidSets the playback cycle mode. (API Version 3.0 and Later)
voidRun the current robot job from the current line. Requires Servos engaged & Automatic/Play operation and 'jobcontrol' permission.
voidPause running job (servoes will remain engaged. 'jobcontrol' permission required.
voidResume running job from paused state. 'jobcontrol' permission required.
voidStop runnng job (will stop motion and disengage servos). 'jobcontrol' permission required.
stringName of the current job (e.g. job being run or edited)
Empty if none.
voidSet the current job. 'jobcontrol' permission required. Pass line=1 for start of job, line=0 for default/no-change.
voidSet the line of the currently active job. 'jobcontrol' permission required. Pass line=1 for start of job.
i32Current job line
stringName of the default (aka master) job. Empty if no default job designated
boolquery if job with specified name exists
RobotJobInfoDetails for the named job (throws if non-existent job)
list<string>List of robot job names (empty if not connected)
list<string>List of robot job names matching the name regular expression AND with the given tag
(empty if not connected or no matches)
voidDuplicate an existing job with a new name for the copy
voiddelete the specified job. The default job cannot be deleted.
stringRead source code for named job (in the programmingLanguage listed in jobDetails() )
voidReplace named job with the source code provided, in given programmingLanguage (e.g. "INFORM"). Note: The inform job header must be included within the source and this requires CRLF endings. Will throw if syntax errors in source.
boolStore a file on the controller. If a file with the same name already exists, it will be overwritten.
* Management mode or higher required to write files to the controller.
boolStore a file on the controller. If a file with the same name already exists, it will be overwritten.
* Management mode or higher required to write files to the controller.
stringRetrieve file content from the controller and save it into a string. If the file does not exist, an empty string will be returned.
voidRetrieve a file from the controller and save it to the specified destName within the Extension folder.
* If the file does not exist, false will be returned.
map<ToolIndex, string>List of tools mapping index -> name.
Unset/defaulted tools are omitted (e.g. those with no name, 0 weight etc.)
Indices (map keys) may not be sequential. Returned map may be empty.
ToolQuery information on a specific tool, by index
i32Return general input number of given input name
i32Return general input group number for group beginning with given input name
i32Return general output nunber of given output name
i32Return general output group number for group beginning with given input name
stringReturn name of specified general input number
stringReturn name of specified general output number
voidSet name of specified general input
Note it is asynchronous so no errors/exceptions are thrown.
voidSet name of specified general output
Note it is asynchronous so no errors/exceptions are thrown.
voidStart monitoring specified general input
Note that I/O monitoring is limited to a maximum 32 I/O signals
voidStart monitoring all general inputs in given input group
Note that I/O monitoring is limited to a maximum 32 I/O signals (1 group = 8 signals)
voidStart monitoring specified general output
Note that I/O monitoring is limited to a maximum 32 I/O signals
voidStart monitoring all general outputs in given output group
Note that I/O monitoring is limited to a maximum 32 I/O signals (1 group = 8 signals)
voidStop monitoring specified general input
voidStop monitoring all general inputs in specified group
voidStop monitoring specified general output
voidStop monitoring all general outputs in specified group
boolReturn value of given general input
i32Return values of general input groups from specified group number (upto 4 contiguous groups/bytes, from least significant byte)
boolReturn the value of given general output
i32Return values of general output groups from specified group number (upto 4 contiguous groups/bytes)
voidSet the value of the specified general output number
Note it is asynchronous so no errors/exceptions are thrown.
voidSet the values of the general outputs in the specified contigous output groups (upto 4 contiguous groups/bytes)
Note it is asynchronous so no errors/exceptions are thrown.
i32Return the logical IO address (e.g. 00010) of the named general input
i32Return the logical IO address (e.g. 00010) of the given general input number
i32Return the logical IO address (e.g. 10010) of the named general output
i32Return the logical IO address (e.g. 10010) of the given general output number
voidStart monitoring a logical IO address for general input (e.g. 00010) or output (e.g. 10010).
Will generate IOValueChanged events.
From SmartPendant version 4.4.0 and after, all types of IO addresses are supported.
Note that I/O monitoring is limited to a maximum 32 I/O signals
voidStop monitoring a logical IO address for general input (e.g. 00010) or output (e.g. 10010).
From SmartPendant version 4.4.0 and after, all types of IO addresses are supported.
(events for address may still be generated if it corresponds to a monitored input or output)
boolReturn the value of the given general input by logicial IO address (e.g. 00010)
boolReturn the value of the given general output by logicial IO address (e.g. 10010)
boolReturn the value of the given logicial IO address (all types)
(API version 3.0 and later)
voidSet the value of the given general output by logical IO address (e.g. 10010)
Note it is asynchronous so no errors/exceptions are thrown.
voidSet the value of the given network input by logical IO address (e.g. 27010)
Note it is asyncronous so no errors/exceptions are thrown (SDK 3.1+)
voidSet the value of the given interface panel input by logical IO address (e.g. 60010)
Note it is asyncronous so no errors/exceptions are thrown (SDK 4.0+)
i32Return the value of the given M-Register by index (e.g. 0 to 999) (SDK 3.1+)
voidSet the value of the given M-Register by index (e.g. 0 to 999)
Note it is asynchronous so no errors/exceptions are thrown.(SDK 3.1+)
i32Obtain input group number (byte) of field bus status input. e.g. busType 'ethip' yields EtherNet/IP status byte group
list<ControlGroup>Return the list of control groups configured on the controller.
If only one robot is connected to the controller, this will return a single element,
containing the simple control group representing the robot.
i8Returns the index of the currently active control group.
i8Returns the number of robots connected to the controller
RobotIndexReturns the index of the currently active robot.
Note: index is 0-based, but in the UI the first robot is Robot 1.
AnyVariable value by name
AnyVariable value by address
voidSet variable value by name
voidSet variable by address
VariableAddressLookup variable address by name and space
VariableAddressLookup variable address by name (less efficient)
voidSet name of variable by address
voidStart monitoring a variable. Will generate VariableChanged events.
Note that a maximum of 1 position variable, 4 string variables and 15 variables of each of the remain types can be monitored at the same time.
(API version 3.0 and later)
voidStop monitoring a variable.
(API version 3.0 and later)
i32Returns the maximum number of variables available for the given space
PositionTransform a Position coordinate values into another coordinate frame (not all conversion are supported or make sense)
Also supports transformation between Joint frame and Cartesian frames of the TCP (Tool Center Point) position (implicitly).
In this case the specific tool that determines the kinematic structure of the robot must be supplied (via the kinematicTool parameter).
Additionally, since Cartesian IK may not be unique, you can select between matching the closure of another provided refPosition (Closure ikScheme)
or minimizing the joint angle coordinate difference to the additionally provided refPosition (Delta ikScheme). Pass ikScheme None if not applicable.
These parameters will be ignored when not relevant.
PositionConvert coordinate values for length and/or angles in pos to the specified units, as appropriate (pass unit None for no-change or if irrelevant)
ZoneQuery information on specified zone, by index (not number)
ZoneIndexCreates a new Zone and returns its index. It will have default values
which can be change via modifyZone()
voidModify Zone information. Only fields set in Zone will be updated.
voidDelete a Zone
map<UserFrameIndex, string>List of user frames mapping index -> name.
NB: Indices (map keys) may not be sequential. Returned map may be empty.
CoordinateFrameQuery information on specified User Frame, by index (not number)
UserFrameIndexCreates a new User Frame with default values and returns its index.
voidSet the specified User Frame to the provided values.
If a user frame at the selected index does not exist, it is created. Otherwise, the user frame at the selected index is replaced.
User Frame can be set in two ways:
1) With VectorOrient defining the transformation from the Robot frame to the UserFrame:
ArrayList<Double> vect = new ArrayList<>();
vect.add(300.0); vect.add(100.0); vect.add(200.0); // XYZ
Orient orient = new Orient();
orient.setV(new ArrayList<>());
orient.v.add(180.0); orient.v.add(0.0); orient.v.add(45.0); // RxRyRz
VectorOrient vectorOrient = new VectorOrient(vect, orient);
frame = new CoordinateFrame(CoordFrameRepresentation.Implicit, PredefinedCoordFrameType.User);
frame.setName("Example1");
frame.setRobot(0);
frame.setVecorient(vectorOrient);
controller.setUserFrame(49, frame); // UF#50
2) With 3 Points defining the Origin, X and Y axes of the UserFrame:
List<Double> orig = new ArrayList<>(Arrays.asList(300.0,200.0,300.0,180.0,0.0,0.0,0.0)); // X,Y,Z,Rx,Ry,Rz,Re
List<Double> xx = new ArrayList<>(Arrays.asList(350.0,250.0,300.0,180.0,0.0,0.0,0.0)); // X,Y,Z,Rx,Ry,Rz,Re
List<Double> xy = new ArrayList<>(Arrays.asList(300.0,300.0,300.0,180.0,0.0,0.0,0.0)); // X,Y,Z,Rx,Ry,Rz,Re
PointPlane pointplane = new PointPlane(orig, xx, xy);
CoordinateFrame frame = new CoordinateFrame(CoordFrameRepresentation.Implicit, PredefinedCoordFrameType.User);
frame.setName("Example2");
frame.setRobot(0);
frame.setTool(0);
frame.setPointplane(pointplane);
controller.setUserFrame(50, frame); // UF#51
(API Version 3.0 with limitations. Broken in Version 4.0. Version 4.3 and later recommended)
voidDelete a User Frame
stringQuery current controller network interface IP address.
controllerInterface must be one of ['LAN1','LAN'/'LAN2' or 'LAN3']
(NB: On YRC1000micro, 'LAN' is the external Ethernet port, corresponding to 'LAN2' on the YRC1000)
i32Request external network access via specified protocol and port originating
from the given controller interface. The controllerInferface may be left blank, in which case
connections will be routed from the controller according to the destination address and
current subnetwork of the external LAN ports).
Access only persists while power is maintained to the controller.
The protocol must be either 'tcp' or 'udp'. controllerInterface must be one of ['LAN1','LAN'/'LAN2' or 'LAN3'].
Returns a handle that can subsequently used to remove the access, or -1 if the access request
failed (may happen in case of network conflicts with other extensions).
Requires 'networking' permision.
voidi32voidstringThe model string of this robot
i32Number of degrees-of-freedom / axes
list<string>Returns the joint labels for each axis of a robot (API Version 3.1 or Later)
list<JointType>Returns the joint types of each axis for the specified robot (API Version 3.1 or Later)
PositionCurrent position of the robot in joint coordinate frame (i.e. axis angles)
PositionCoordinates of the ToolTip (TCP) of of the specified tool
in the given coordinate frame (using active tool if none specified)
boolDoes this robot support force limiting? (collaborative robot?)
boolIs force limiting currently active? (i.e. PFL - Power & Force Limiting)
boolIs the robot stopped due to an over-limit event?
boolIs an end-of-arm switch box installed?
ToolIndexIndex of the currently active tool
voidSet the currently active tool
PositionSet the work home position
(API version 3.0 and later)
voidSet the robots current work home position
(API version 3.0 and later)
PositionSet the second home position
(API version 3.0 and later)
voidSet the robots current second home position
(API version 3.0 and later)
doubleGet a robot's maximum linear speed
(API version 3.0 and later)