Вы находитесь на странице: 1из 288

ActiveRobot User Guide

UMI-R3-220
Rev. Revision History Date
001 Original Issue 00-05
001a CROS v2.8, v3.0 properties added; very minor changes to ARConfig description 02-03

Copyright © 2002 CRS Robotics Corporation

ActiveRobot, RAPL-3, RAPL-II, and RAPL are trademarks of CRS Robotics Corporation and may be used
to describe only CRS Robotics products.

All brand names and product names used in this guide are trademarks, registered trademarks, or trade
names of their respective holders.

The information in this document is subject to change without notice.


CRS Robotics Corporation makes no warranty of any kind with regard to this material, including, but not
limited to, the implied warranties of merchantability and fitness for a particular purpose. CRS Robotics
Corporation assumes no responsibility for any errors that may appear in this document. CRS Robotics
Corporation makes no commitment to update nor to keep current the information contained in this
document.

CRS Robotics Corporation software products shall remain the property of CRS Robotics Corporation.

Additional copies of this guide, or other CRS Robotics literature, may be obtained from the Sales
Department or from your distributor.

ii
About This Guide

This user guide describes the ActiveRobot robot application development


software from CRS Robotics Corporation. This preface contains the following
topics:
• “Who Uses This Guide” on page iv, which describes the type of user who
benefits from ActiveRobot and what that the user needs to know to use
ActiveRobot
• “How to Use This Guide” on page iv, which provides an overview of the
contents of this user guide
• “For More Information” on page v, which provides a brief description of
other information resources on CRS products and services

ActiveRobot User Guide: Preface iii


Preface:

Who Uses This Guide


This guide is intended primarily for developers of applications for CRS
Robotics A255, T265, A465, T475, F3, F3t, CataLyst-3, CataLyst-5, and
CataLyst-T robot systems.

This guide assumes you are familiar with the following subjects:

• Robot application development (though not necessarily with CRS Robotics


systems)

• Microsoft Windows NT/2000 ActiveX application development, using such


tools as Microsoft Visual Basic, Microsoft Visual C++, or Microsoft Access
97/2000

• Microsoft Windows NT/2000

How to Use This Guide


Throughout this manual warnings are marked by a "!" symbol in the left
margin. Failure to comply with these warnings can result in system errors,
memory loss, or damage to the robot and its surroundings.

This manual is task-based and uses navigational aids to help you quickly find
the topics and information you need. It is not intended as a self-teaching
guide. For training, see “Training” on page v.

Before attempting to follow instructions or examples in a section, read the


entire section first.

This guide consists of the following chapters:

• Introducing ActiveRobot, which provides an overview of ActiveRobot’s


features and benefits, its components, and how it works.

• Using ActiveRobot, which describes how to use the ActiveRobot


components to create robot applications. It also describes how to get more
information about ActiveRobot object classes and ActiveRobot
applications, from both this guide and other sources.

• CRSRobot, which provides detailed reference information about the


methods and properties of the CRSRobot object class.

• CRSV3File, which provides detailed reference information about the


methods and properties of the CRSV3File object class.

• CRSLocation, which provides detailed reference information about the


methods and properties of the CRSLocation object class.

• CRSPath, which provides detailed reference information about the


methods and properties of the CRSPath object class.

• CRSRemote, which provides detailed reference information about the


methods and properties of the CRSRemote object class.

iv ActiveRobot User Guide: Preface


Preface:

For More Information


For information about the robot system hardware, refer to the user guides
provided with your system.
You can obtain copies of these user guides or other CRS Robotics literature
from the CRS Technical Services Group.

Training
We offer training courses in ActiveRobot and other CRS Robotics products at
our facility in Burlington, Ontario Canada, or on-site at your facility. For
additional information, contact the Technical Services Group.

Contacts
Surface Mail/Shipping
CRS Robotics Corporation
5344 John Lucas Drive
Burlington, Ontario L7L 6A6
Canada
Telephone
1-905-332-2000 (voice)
1-800-365-7587 (voice: toll free in Canada and United States)
1-905-332-1114 (facsimile)
E-Mail
Sales: sales@crsrobotics.com
Customer Support: support@crsrobotics.com
Training: training@crsrobotics.com
General: info@crsrobotics.com
World Wide Web
www.crsrobotics.com

ActiveRobot User Guide: Preface v


Preface:

vi ActiveRobot User Guide: Preface


Preface: Contents

Contents

Chapter 1 Introducing ActiveRobot . . . . . . . . . . . . . . . . . . . . . . . 1-1


What ActiveRobot Does . . . . . . . . . . . . . . . . . . . . . . . . 1-2
ActiveRobot Features . . . . . . . . . . . . . . . . . . . . . . . 1-2
ActiveRobot Benefits . . . . . . . . . . . . . . . . . . . . . . . . 1-3
How ActiveRobot Works . . . . . . . . . . . . . . . . . . . . . . . 1-3
Accessing ActiveRobot DLLs . . . . . . . . . . . . . . . . . . 1-3
System Communications in
ActiveRobot Applications . . . . . . . . . . . . . . . . . 1-4
ActiveRobot Components . . . . . . . . . . . . . . . . . . . . . . 1-5

Chapter 2 Installing ActiveRobot . . . . . . . . . . . . . . . . . . . . . . . . 2-1


System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
Connecting the PC to the C500C . . . . . . . . . . . . . . . . . 2-2
Installing CROS 2.8 or 3.1 . . . . . . . . . . . . . . . . . . . . . 2-3
Updating Previous Versions of CROS . . . . . . . . . . . 2-3
Backing up Controller Files . . . . . . . . . . . . . . . . . . 2-3
Installing the New Version of CROS on the PC . . . . 2-3
Downloading the New Version of CROS . . . . . . . . . . 2-4
Rebuilding the File System on the Controller . . . . . 2-6
Making the PC the Default Controller User Interface 2-6
Restoring Controller Files . . . . . . . . . . . . . . . . . . . . 2-6
Installing the ActiveRobot Software . . . . . . . . . . . . . . . 2-7
Configuring and Testing ActiveRobot . . . . . . . . . . . . . . 2-8

Chapter 3 Using ActiveRobot . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1


Safety Considerations . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Creating a New ActiveRobot Application . . . . . . . . . . . 3-2
Creating ActiveRobot Applications In
Visual Basic 6.0 . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Creating ActiveRobot Applications In
Visual C++ 6.0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Creating ActiveRobot Applications In Access 2000 . 3-4
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Reference Documentation Conventions . . . . . . . . . . . . 3-5
How Visual C++ Users Can Use the
Reference Documentation . . . . . . . . . . . . . . . . . 3-5
Developing ActiveRobot Applications . . . . . . . . . . . . . . 3-6
The Development Process . . . . . . . . . . . . . . . . . . . . 3-6
Using V3 Files in ActiveRobot Applications . . . . . . . 3-6
Creating and Using ActiveRobot Objects . . . . . . . . . 3-7
Using ActiveRobot Objects In Visual Basic . . . . 3-7
Using ActiveRobot Objects In Visual C++ . . . . . 3-8
Using CRSRobot . . . . . . . . . . . . . . . . . . . . . . . 3-8
Using CRSV3File . . . . . . . . . . . . . . . . . . . . . . . 3-9
Using CRSLocation . . . . . . . . . . . . . . . . . . . . 3-10
Using CRSPath . . . . . . . . . . . . . . . . . . . . . . . 3-11
Using CRSRemote . . . . . . . . . . . . . . . . . . . . . 3-11

ActiveRobot User Guide: Preface vii


Preface: Contents

Co-ordinating ActiveRobot Event Handlers . . . . . . 3-13


Monitoring the Robot System . . . . . . . . . . . . . . . . 3-13
Managing Point of Control . . . . . . . . . . . . . . . . . . 3-14
Processing Abort Commands . . . . . . . . . . . . . . . . 3-14
Example Applications . . . . . . . . . . . . . . . . . . . . . . . . 3-14
V3Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15
PendantVB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15
SimplePNP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15
StatusQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15
PathControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15
TeachPendant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16
AbortMove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16
Using ActiveRobot Configuration . . . . . . . . . . . . . . . . 3-17
Starting ActiveRobot Configuration . . . . . . . . . . . . 3-17
Configuring a Robot System . . . . . . . . . . . . . . . . . 3-18
Testing a Robot System . . . . . . . . . . . . . . . . . . . . 3-19
Performing Utility Robot Motion Operations . . . . . 3-20
Performing Utility Controller Operations . . . . . . . . 3-21
Exiting from ActiveRobot Configuration . . . . . . . . 3-22
Using ActiveRobot Terminal . . . . . . . . . . . . . . . . . . . 3-22
Starting ActiveRobot Terminal . . . . . . . . . . . . . . . 3-22
Selecting the Robot System to Communicate With 3-23
Using the ActiveRobot Terminal Scroll Buffer . . . . 3-23
Viewing the Scroll Buffer . . . . . . . . . . . . . . . . 3-23
Copying the Scroll Buffer . . . . . . . . . . . . . . . . 3-23
Clearing the Scroll Buffer . . . . . . . . . . . . . . . . 3-24
Exiting from ActiveRobot Terminal . . . . . . . . . . . . 3-24
Using ActiveRobot Explorer . . . . . . . . . . . . . . . . . . . . 3-24
Starting ActiveRobot Explorer . . . . . . . . . . . . . . . . 3-24
Selecting the Robot System to Communicate With 3-25
Copying Files With ActiveRobot Explorer . . . . . . . . 3-25
Exiting from ActiveRobot Explorer . . . . . . . . . . . . 3-26

Chapter 4 CRSRobot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1


CRSRobot Methods . . . . . . . ... ... .... ... ... . . . . 4-2
Diagnostics . . . . . . . . . . ... ... .... ... ... . . . . 4-3
FServoStatus . . . . . . ... ... .... ... ... . . . . 4-4
Force Control . . . . . . . . . ... ... .... ... ... . . . . 4-5
ForceCalibrate . . . . . ... ... .... ... ... . . . . 4-6
ForceDataGet . . . . . ... ... .... ... ... . . . . 4-7
ForceSensorOffset . . ... ... .... ... ... . . . . 4-8
Gripper . . . . . . . . . . . . . . ... ... .... ... ... . . . . 4-9
GripperCalibrate . . . ... ... .... ... ... . . . 4-10
GripperClose . . . . . . ... ... .... ... ... . . . 4-11
GripperFinish . . . . . ... ... .... ... ... . . . 4-12
GripperOpen . . . . . . ... ... .... ... ... . . . 4-13
GripperStop . . . . . . . ... ... .... ... ... . . . 4-14
Homing and Calibration . ... ... .... ... ... . . . 4-15
Calibrate . . . . . . . . . ... ... .... ... ... . . . 4-16
CalibrateZeroCross . ... ... .... ... ... . . . 4-17
Home . . . . . . . . . . . . ... ... .... ... ... . . . 4-18
HomeInPlace . . . . . . ... ... .... ... ... . . . 4-19
HomeZeroCross . . . . ... ... .... ... ... . . . 4-20

viii ActiveRobot User Guide: Preface


Preface: Contents

Zero . . . . . . . . . . . . . . . . . . . .... ... ... . . . 4-21


Operator Input . . . . . . . . . . . . . . .... ... ... . . . 4-22
WaitForButton . . . . . . . . . . . .... ... ... . . . 4-23
Motion . . . . . . . . . . . . . . . . . . . . .... ... ... . . . 4-24
Align . . . . . . . . . . . . . . . . . . .... ... ... . . . 4-26
Approach . . . . . . . . . . . . . . . .... ... ... . . . 4-27
ApproachStraight . . . . . . . . . .... ... ... . . . 4-28
CalReady . . . . . . . . . . . . . . . .... ... ... . . . 4-29
ClearAbort . . . . . . . . . . . . . . .... ... ... . . . 4-30
CTPath . . . . . . . . . . . . . . . . .... ... ... . . . 4-31
CTPathGo . . . . . . . . . . . . . . .... ... ... . . . 4-32
Depart . . . . . . . . . . . . . . . . . .... ... ... . . . 4-33
DepartStraight . . . . . . . . . . . .... ... ... . . . 4-34
Finish . . . . . . . . . . . . . . . . . .... ... ... . . . 4-35
JogTool . . . . . . . . . . . . . . . . .... ... ... . . . 4-36
JogToolStraight . . . . . . . . . . .... ... ... . . . 4-37
JogWorld . . . . . . . . . . . . . . . .... ... ... . . . 4-38
JogWorldStraight . . . . . . . . . .... ... ... . . . 4-39
Joint . . . . . . . . . . . . . . . . . . .... ... ... . . . 4-40
Limp . . . . . . . . . . . . . . . . . . .... ... ... . . . 4-41
LockAxes . . . . . . . . . . . . . . . .... ... ... . . . 4-42
Motor . . . . . . . . . . . . . . . . . . .... ... ... . . . 4-43
Move . . . . . . . . . . . . . . . . . . .... ... ... . . . 4-44
MoveStraight . . . . . . . . . . . . .... ... ... . . . 4-45
NoLimp . . . . . . . . . . . . . . . . .... ... ... . . . 4-46
Ready . . . . . . . . . . . . . . . . . .... ... ... . . . 4-47
Abort . . . . . . . . . . . . . . . . . . .... ... ... . . . 4-48
Stop . . . . . . . . . . . . . . . . . . . .... ... ... . . . 4-49
UnlockAxes . . . . . . . . . . . . . .... ... ... . . . 4-50
Point of Control . . . . . . . . . . . . . .... ... ... . . . 4-51
ControlGet . . . . . . . . . . . . . . .... ... ... . . . 4-52
ControlGive . . . . . . . . . . . . . .... ... ... . . . 4-53
ControlRelease . . . . . . . . . . . .... ... ... . . . 4-54
Robot Configuration . . . . . . . . . . .... ... ... . . . 4-55
ConfigSave . . . . . . . . . . . . . . .... ... ... . . . 4-56
Robot Status . . . . . . . . . . . . . . . .... ... ... . . . 4-57
AxisStatus . . . . . . . . . . . . . . .... ... ... . . . 4-58
CommunicationCheck . . . . . .... ... ... . . . 4-59
ClearError . . . . . . . . . . . . . . .... ... ... . . . 4-60
Utility . . . . . . . . . . . . . . . . . . . . . .... ... ... . . . 4-61
MotorToJoint . . . . . . . . . . . . .... ... ... . . . 4-62
ShiftTool . . . . . . . . . . . . . . . .... ... ... . . . 4-63
ShiftWorld . . . . . . . . . . . . . . .... ... ... . . . 4-64
WorldToJoint . . . . . . . . . . . . .... ... ... . . . 4-65
CRSRobot Properties . . . . . . . . . . . . .... ... ... . . . 4-66
Axis Configuration . . . . . . . . . . . .... ... ... . . . 4-67
AxisAcceleration . . . . . . . . . .... ... ... . . . 4-68
AxisDGain . . . . . . . . . . . . . . .... ... ... . . . 4-69
AxisIGain . . . . . . . . . . . . . . . .... ... ... . . . 4-70
AxisLinkLength . . . . . . . . . . .... ... ... . . . 4-71
AxisMaximumJerk . . . . . . . . .... ... ... . . . 4-72
AxisMaximumJointVelocity . .... ... ... . . . 4-73
AxisNegativeLimit . . . . . . . . .... ... ... . . . 4-74
AxisPGain . . . . . . . . . . . . . . .... ... ... . . . 4-75

ActiveRobot User Guide: Preface ix


Preface: Contents

AxisPosition . . . . . . . . . . ... .... ... ... . . . 4-76


AxisPositiveLimit . . . . . . ... .... ... ... . . . 4-77
AxisPulsesPerMotorTurn ... .... ... ... . . . 4-78
AxisTurnsPerUnit . . . . . ... .... ... ... . . . 4-79
Diagnostics . . . . . . . . . . . . . ... .... ... ... . . . 4-80
ServoErrorParam . . . . . . ... .... ... ... . . . 4-81
Force Control . . . . . . . . . . . . ... .... ... ... . . . 4-82
ForceEnable . . . . . . . . . ... .... ... ... . . . 4-83
ForceFrame . . . . . . . . . . ... .... ... ... . . . 4-84
ForceParam . . . . . . . . . . ... .... ... ... . . . 4-85
ForcePassword . . . . . . . . ... .... ... ... . . . 4-88
ForceTrackingEnable . . . ... .... ... ... . . . 4-89
Gripper . . . . . . . . . . . . . . . . . ... .... ... ... . . . 4-90
GripperDistance . . . . . . ... .... ... ... . . . 4-91
GripperFinished . . . . . . . ... .... ... ... . . . 4-92
GripperType . . . . . . . . . . ... .... ... ... . . . 4-93
Input/Output . . . . . . . . . . . . ... .... ... ... . . . 4-94
AnalogInput . . . . . . . . . . ... .... ... ... . . . 4-95
FNetworkInputs . . . . . . . ... .... ... ... . . . 4-96
FNetworkInput . . . . . . . ... .... ... ... . . . 4-97
FNetworkOutput . . . . . . ... .... ... ... . . . 4-98
FNetworkOutputs . . . . . ... .... ... ... . . . 4-99
Input . . . . . . . . . . . . . . . ... .... ... ... . . 4-100
Inputs . . . . . . . . . . . . . . ... .... ... ... . . 4-101
Output . . . . . . . . . . . . . ... .... ... ... . . 4-102
Outputs . . . . . . . . . . . . . ... .... ... ... . . 4-103
PanelButton . . . . . . . . . ... .... ... ... . . 4-104
PanelButtons . . . . . . . . . ... .... ... ... . . 4-105
PanelLight . . . . . . . . . . . ... .... ... ... . . 4-106
Robot Configuration . . . . . . . ... .... ... ... . . 4-107
BaseOffset . . . . . . . . . . . ... .... ... ... . . 4-108
LinearAcceleration . . . . . ... .... ... ... . . 4-109
LinearJerk . . . . . . . . . . . ... .... ... ... . . 4-110
LinearSpeed . . . . . . . . . . ... .... ... ... . . 4-111
RotationalAcceleration . . ... .... ... ... . . 4-112
RotationalSpeed . . . . . . . ... .... ... ... . . 4-113
Speed . . . . . . . . . . . . . . ... .... ... ... . . 4-114
Stance . . . . . . . . . . . . . . ... .... ... ... . . 4-115
ToolTransform . . . . . . . . ... .... ... ... . . 4-116
TotalAxes . . . . . . . . . . . . ... .... ... ... . . 4-117
TrackEnable . . . . . . . . . ... .... ... ... . . 4-118
Units . . . . . . . . . . . . . . . ... .... ... ... . . 4-119
Robot Information . . . . . . . . ... .... ... ... . . 4-120
HomingSwitchOffset . . . ... .... ... ... . . 4-121
MachineAxes . . . . . . . . . ... .... ... ... . . 4-122
ProductType . . . . . . . . . ... .... ... ... . . 4-123
RobotType . . . . . . . . . . . ... .... ... ... . . 4-124
ServerProtocol . . . . . . . . ... .... ... ... . . 4-125
ServerVersion . . . . . . . . ... .... ... ... . . 4-126
TransformAxes . . . . . . . ... .... ... ... . . 4-127
VersionString . . . . . . . . . ... .... ... ... . . 4-128
Robot Mode Control . . . . . . . ... .... ... ... . . 4-129
AllowArmPower . . . . . . . ... .... ... ... . . 4-130
BlendMotion . . . . . . . . . ... .... ... ... . . 4-131

x ActiveRobot User Guide: Preface


Preface: Contents

TrapezoidalProfileEnable . . . . . . . . . . . . . . . 4-132
TriggerEnable . . . . . . . . . . . . . . . . . . . . . . . 4-133
Blended Motion Control . . . . . . . . . . . . . . . . . . . 4-134
LinearBlendRadius . . . . . . . . . . . . . . . . . . . 4-135
MaxAgeInQueue . . . . . . . . . . . . . . . . . . . . . 4-136
PointDeletion . . . . . . . . . . . . . . . . . . . . . . . . 4-137
RotationalBlendRadius . . . . . . . . . . . . . . . . 4-138
Robot Selection . . . . . . . . . . . . . . . . . . . . . . . . . . 4-139
RobotInUse . . . . . . . . . . . . . . . . . . . . . . . . . 4-140
Robot Status . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-141
AsynchError . . . . . . . . . . . . . . . . . . . . . . . . 4-142
BoardTemperature . . . . . . . . . . . . . . . . . . . . 4-144
Finished . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-145
Homed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-146
IsAborted . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-147
IsPowered . . . . . . . . . . . . . . . . . . . . . . . . . . 4-148
MotorLocation . . . . . . . . . . . . . . . . . . . . . . . 4-149
Odometer . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-150
ProcessID . . . . . . . . . . . . . . . . . . . . . . . . . . 4-151
WorldLocation . . . . . . . . . . . . . . . . . . . . . . . 4-152
Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-153
JointToMotor . . . . . . . . . . . . . . . . . . . . . . . . 4-154
JointToWorld . . . . . . . . . . . . . . . . . . . . . . . . 4-155
MotorToWorld . . . . . . . . . . . . . . . . . . . . . . . 4-156
WorldToMotor . . . . . . . . . . . . . . . . . . . . . . . 4-157

Chapter 5 CRSV3File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1


CRSV3File Methods . . .... ... ... .... ... ... . . . . 5-2
Open . . . . . . . . . . . .... ... ... .... ... ... . . . . 5-3
Close . . . . . . . . . . . .... ... ... .... ... ... . . . . 5-4
VariableInfo . . . . . . .... ... ... .... ... ... . . . . 5-5
Create . . . . . . . . . . .... ... ... .... ... ... . . . . 5-6
Delete . . . . . . . . . . . .... ... ... .... ... ... . . . . 5-7
Rewind . . . . . . . . . . .... ... ... .... ... ... . . . . 5-8
GetNextName . . . . . .... ... ... .... ... ... . . . . 5-9
CRSV3File Properties . .... ... ... .... ... ... . . . 5-10
Location . . . . . . . . . .... ... ... .... ... ... . . . 5-11
Value . . . . . . . . . . . .... ... ... .... ... ... . . . 5-12

Chapter 6 CRSLocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1


CRSLocation Properties .... ... ... .... . . . . . . . . . . 6-2
IsMotor . . . . . . . . . . .... ... ... .... . . . . . . . . . . 6-3
IsWorld . . . . . . . . . . .... ... ... .... . . . . . . . . . . 6-4
x .............. .... ... ... .... . . . . . . . . . . 6-5
y............... .... ... ... .... . . . . . . . . . . 6-6
z............... .... ... ... .... . . . . . . . . . . 6-7
zrot . . . . . . . . . . . . .... ... ... .... . . . . . . . . . . 6-8
yrot . . . . . . . . . . . . .... ... ... .... . . . . . . . . . . 6-9
xrot . . . . . . . . . . . . .... ... ... .... . . . . . . . . . 6-10
world . . . . . . . . . . . .... ... ... .... . . . . . . . . . 6-11
motor . . . . . . . . . . . .... ... ... .... . . . . . . . . . 6-12
Value . . . . . . . . . . . .... ... ... .... . . . . . . . . . 6-13

ActiveRobot User Guide: Preface xi


Preface: Contents

IsValid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
IsMetric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15

Chapter 7 CRSPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1


CRSPath Methods . . . . . . . . . . . . . . . . . . . . . . . . ... . 7-2
Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . 7-3
Remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . 7-4
CRSPath Properties . . . . . . . . . . . . . . . . . . . . . . . ... . 7-5
Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . 7-6
Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . 7-7
Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . 7-8

Chapter 8 CRSRemote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1


CRSRemote Methods . . . . . . . . . . . . .... . . . . . . . . . . 8-2
AbortFileTransfer . . . . . . . . . . . . .... . . . . . . . . . . 8-3
CROSVersion . . . . . . . . . . . . . . . .... . . . . . . . . . . 8-4
Delete . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . 8-5
DirNext . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . 8-6
DirRead . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . 8-7
DirRewind . . . . . . . . . . . . . . . . . .... . . . . . . . . . . 8-8
FileSpace . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . 8-9
GetFile . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-10
MkDir . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-11
Ping . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-12
PutFile . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-13
RmDir . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-14
Run . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-15
SendSignal . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-17
Shutdown . . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-18
WaitForExitCode . . . . . . . . . . . . .... . . . . . . . . . 8-19
CRSRemote Properties . . . . . . . . . . .... . . . . . . . . . 8-20
ControllerDate . . . . . . . . . . . . . . .... . . . . . . . . . 8-21
DirFileAttributes . . . . . . . . . . . . . .... . . . . . . . . . 8-22
DirFileDate . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-23
DirFileIdent . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-24
DirFileLinks . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-25
DirFileMajor . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-26
DirFileMinor . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-27
DirFileName . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-28
DirFileSize . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-29
DirFileType . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-30
PercentComplete . . . . . . . . . . . . .... . . . . . . . . . 8-31
ProcessExists . . . . . . . . . . . . . . . .... . . . . . . . . . 8-32
RobotInUse . . . . . . . . . . . . . . . . . .... . . . . . . . . . 8-33

xii ActiveRobot User Guide: Preface


CHAPTER 1

1 Introducing ActiveRobot

This chapter provides an overview of ActiveRobot: its role in robot application


development, its features and benefits, how it works, and its components. It
includes information on the following topics:
• “What ActiveRobot Does” on page 1-2, which provides an overview of
what ActiveRobot does, and its features and benefits
• “How ActiveRobot Works” on page 1-3, which describes how ActiveRobot
functions
• “ActiveRobot Components” on page 1-5, which provides an overview of
the application development objects that comprise ActiveRobot

ActiveRobot User Guide: Introducing ActiveRobot 1-1


Introducing ActiveRobot: What ActiveRobot Does

What ActiveRobot Does


ActiveRobot enables Microsoft Windows NT4/2000 ActiveX applications to
fully access and control up to eight CRS Robotics robot systems from one host
computer. (Each robot system consists of one A255, A465 or F3 articulated
arm, one C500C controller, and up to two additional axes, one of which could
be a track.)

CRS F3

F3only.cdr

RS232 Serial

RS232 Serial

CRS A255

A255only.cd

RS232 Serial

CRS A465

Figure 1-1: Multiple ActiveRobot applications can access multiple robot systems from a
single host computer.

ActiveRobot Features
ActiveRobot has the following features:
• Programming interfaces compliant with the Microsoft Component Object
Model (COM)
• Compatibility with a wide range of ActiveX development tools, such as
Microsoft Visual Basic 6 and Visual C++ 6, and ActiveX-compatible
applications such as Microsoft Access 97/2000 and National Instruments
LabVIEW.
• Access to and control of all C500C operating system features, motion
control capabilities, and input/output capabilities
• Context-sensitive online help

1-2 ActiveRobot User Guide: Introducing ActiveRobot


Introducing ActiveRobot: How ActiveRobot Works

• Detailed example applications in both Visual C++ and Visual Basic

ActiveRobot Benefits
ActiveRobot’s features provide the following benefits:
• Faster, easier, less expensive development and debugging of robot
applications
• Friendlier, more consistent operator interfaces
• More familiar development environment
• Integration with other Windows tools, including process monitoring and
development tools

How ActiveRobot Works


When you set up ActiveRobot on your development, or host, computer, the
installation program adds the following shared Windows dynamic link
libraries (DLL):
• ActiveRobot.dll, which provides an interface to the features of the robot
system
• HCLInterface.dll, which ActiveRobot.dll uses to get reliable
communication with the controller

Accessing ActiveRobot DLLs


To access the ActiveRobot DLLs, you simply make a reference to them within
your preferred Windows development tool. For example, in Visual Basic, you
would take the following steps:
1 Create a new project (standard.exe).

ActiveRobot User Guide: Introducing ActiveRobot 1-3


Introducing ActiveRobot: How ActiveRobot Works

2 Select the References menu item in the Project menu. Visual Basic
opens the References dialog box.

3. Select the CRS ActiveRobot 1.1 Type Library and click OK.

System Communications in ActiveRobot Applications


Figure 1-2 shows how an ActiveRobot application interacts with the robot
system’s C500C controller.
Windows NT/2000 C500C Controller

V3 File
V3 File

CRSV3File
Object Interface to
File Transfer
Daemon CROS
CRSRemote
Object

User Object
GPIO

CRSRobot
User Object Object

Motion
HCLServer HCL Robot Server Control To
To arm
arm
Engine

ActiveRobot
Application

Figure 1-2: This somewhat simplified illustration shows how ActiveRobot components on the
host computer communicate with processes on the C500C controller.

1-4 ActiveRobot User Guide: Introducing ActiveRobot


Introducing ActiveRobot: ActiveRobot Components

ActiveRobot client applications create instances of ActiveRobot components,


and use their methods and properties to send commands to the C500C
controller and to obtain information from the controller. These components
are, in turn, clients of the HCLServer communications server process on the
host computer, which routes commands received from the ActiveRobot
components to the controller and routes information received from the
controller to the destination ActiveRobot component. There is one HCLServer
process for each ActiveRobot-configured serial port on the host computer.

On the C500C controller, a server process called HCL routes commands


received from host computer to one of the following destinations:

• The controller’s robot server process, which handles motion control and
motion-linked I/O commands

• A controller console process, which provides access to operating system


functions

• A file transfer daemon process, which sends or receives requested files

HCLServer and HCL together guarantee the independence and integrity of all
communications between individual instances of ActiveRobot components
and the controller. This enables one host computer to run multiple
ActiveRobot applications, permitting, for example, a Visual Basic application
to control the motion of one or more robot systems, while a Microsoft Access
application gathers statistics about those robot systems’ operations.

ActiveRobot Components
ActiveRobot consists of the following components:

• Interfaces to the following object classes:

• CRSRobot, which enables you to create objects that can access the
robot system’s configuration, motion and I/O.

• CRSV3File, which enables you to create objects that contain robot


system locations and variables.

• CRSLocation, which enables you to create objects that provide


access to robot system locations.

• CRSPath, which are collection objects that encapsulate a sequence of


CRSLocation objects.

• CRSRemote, which enables you to create objects that provide access


to the C500C’s operating system and file transfer capabilities.

• Development utilities:

• ActiveRobot Terminal, or ARTerminal, a Windows terminal


emulator that enables you to access the C500C operating system
directly from your keyboard

• ActiveRobot Explorer, or ARExplorer, a Windows file transfer utility


that enables you to copy files from the host computer to the C500C,
and vice versa, using a Windows Explorer-like user interface

ActiveRobot User Guide: Introducing ActiveRobot 1-5


Introducing ActiveRobot: ActiveRobot Components

• ActiveRobot Configuration, a Windows application that enables you


to configure and test various aspects of the system, including
communications between the host computer and each robot system,
and the performance of each robot system.
ActiveRobot also includes online help and several example applications
created in Visual C++ and Visual Basic.
For details on these components, refer to Chapter 3, Using ActiveRobot.

1-6 ActiveRobot User Guide: Introducing ActiveRobot


2 Installing ActiveRobot

This chapter describes how to install ActiveRobot. It covers the following


topics:
• “System Requirements” on page 2-2
• “Connecting the PC to the C500C” on page 2-2
• “Installing CROS 2.8 or 3.1” on page 2-3
• “Installing the ActiveRobot Software” on page 2-7
• “Configuring and Testing ActiveRobot” on page 2-8

ActiveRobot User Guide: Installing ActiveRobot 2–1


Installing ActiveRobot: System Requirements

System Requirements
ActiveRobot requires the following hardware and software:

• A personal computer (PC) configured with the following hardware and


software:

• Microsoft Windows NT 4 or Windows 2000

• Intel Pentium microprocessor, running at 100 MHz or higher

• 64 MB RAM or higher

• 10 MB hard disk storage for ActiveRobot software, plus storage space


for applications

• CD-ROM drive

• 800 x 600 pixel or higher resolution video display

• A Microsoft Common Object Model-compliant application


development tool, such as Visual Basic or Visual C++

• A CRS A255, T265, A465, T475, F3, F3t, CataLyst-3, CataLyst-5, or


CataLyst-T robot

• A CRS C500C controller configured with CROS 2.8 or 3.1

Note: CROS 2.8 does not support the blended motion control properties
provided by ActiveRobot v1.4

Note: The installation program for ActiveRobot v1.4 detects whether the
required version of CROS is installed. For more information about
upgrading CROS, see “Installing CROS 2.8 or 3.1” on page 2-3.

• A serial cable with which to connect the PC and the C500C controller

Connecting the PC to the C500C


To enable the PC to communicate with the C500C, you must connect the two
devices with a serial cable between a serial port on the PC and the Console
port on the C500C.

Note: The computer must be connected via a straight-through RS-232 serial


cable with a female DB-9 connector at the controller end.

To connect the PC to the C500C controller


1 With the PC powered off, connect your serial cable to a serial port on the
PC.

2 With the controller shut down and powered off, connect the other end of
the serial cable to the Console port on the front of the controller.

3 Power up the controller and the PC.

2–2 ActiveRobot User Guide: Installing ActiveRobot


Installing ActiveRobot: Installing CROS 2.8 or 3.1

Installing CROS 2.8 or 3.1


ActiveRobot v1.4 requires either CROS 2.8 or 3.1 installed on the controller.
C500C controllers for the CataLyst-5 with serial numbers of RC50138061 or
higher, and for the F3 with serial numbers of RCF0139150 or higher, have
CROS 3.1 installed at the factory.
• Updating Previous Versions of CROS
• Backing up Controller Files
• Installing the New Version of CROS on the PC
• Downloading the New Version of CROS
• Rebuilding the File System on the Controller
• Making the PC the Default Controller User Interface
• Restoring Controller Files

Updating Previous Versions of CROS


If you have a CRS A255/T265 or A465/T475 robot and a C500C controller,
you can update it to CROS 2.8.
Note: CROS 2.8 does not support the following ActiveRobot motion control
properties: AxisMaximumJerk, LinearJerk, LinearBlendRadius,
MaxAgeInQueue, PointDeletion, and RotationalBlendRadius.

If you have an F3/F3t, CataLyst-3, CataLyst-5, or CataLyst-T controller, you


can update it to CROS 3.1.
To determine what version of CROS you have installed on your controller,
enter the command crosver at the CROS system shell prompt.
To order the updates, contact CRS Customer Support, as described in the
section For More Information in the Preface.

Backing up Controller Files


When you download a new version of CROS, all files on the controller are
erased. Before upgrading from a previous version of CROS, make sure all files
in the /app and /conf directories on the controller are backed up to a safe
location. Attach a PC to the controller and use Robcomm3 or ActiveRobot
Explorer to copy these files to the PC.

Installing the New Version of CROS on the PC


Before you can download a new version of CROS, you must install it on the
PC.

To install CROS 2.8 or 3.2 on the PC


1 If you have a previous version of CROS installed on the PC, use the
Add/Remove Programs applet in the Windows Control Panel to
uninstall it.

ActiveRobot User Guide: Installing ActiveRobot 2–3


Installing ActiveRobot: Installing CROS 2.8 or 3.1

2 Insert the CROS CD in the CD/DVD drive in the PC. If the install program
does not autorun, run the autorun.exe program in the CD’s root
directory. Windows opens the installation utility:

3 Click Read Release Notes to review in your browser the most recent
information about this release of CROS.
4 Click the desired version of CROS from the menu on the right. The CROS
installation program will run and prompt you for the following choices:
• To accept or refuse the end-user licence
• To accept or change the installation directory
• To select a typical, compact, or custom installation
Once you have accepted the end-user licence and responded to the other
prompts, the installation completes.

Downloading the New Version of CROS


You download the new version of CROS from the PC using the Firmware
Download Utility.

2–4 ActiveRobot User Guide: Installing ActiveRobot


Installing ActiveRobot: Installing CROS 2.8 or 3.1

To download CROS 2.8 or 3.1 onto the controller


1 On the PC, start the CROS-500C Firmware Download Utility. The
download utility is located in the CRS Robotics folder under Program
Files on your Windows Start Menu. The download utility opens the
following dialog box:

Note: If you don’t see the download utility on your Start Menu, you can
click Find and select Files or Folders to search for
“download.exe”. Double-click the file to start the download utility.

2 Verify that the settings are correct for your robot system.

Setting Required Value


CommPort The number of the PC COM port that is connected to the robot
system.

Baud Rate The baud rate of the controller Console port. The factory default
setting for the Console port on a C500C is 57600 bps.

Path of Flash File The name and location of the file flash.img on the PC. You can press
the “...” button to search for the file yourself.

Path of MCE File The name and location of the file on the PC. You can press the “...”
button to search for the file yourself.

Path of Remote The name and location of the file remote.exe on the PC. You can
press the “...” button to search for the file yourself.

When the settings are correct, click Download in the Firmware Download
window. The download utility then prompts you to restart the controller in
Diagnostic mode.

3 Restart the controller in Diagnostic mode:

a Shut down the controller by entering the command shutdown now.

b Switch off controller power.

c While holding down the F1, F2, and Pause/Continue buttons, switch
on controller power. The controller boots into Diagnostic Mode.

d Verify that the message “Diagnostic Mode” is displayed on the


controller LCD screen.

4. On the PC, click OK to start the download.

ActiveRobot User Guide: Installing ActiveRobot 2–5


Installing ActiveRobot: Installing CROS 2.8 or 3.1

Rebuilding the File System on the Controller


You must completely rebuild the file system once you have downloaded the
new version of CROS.

To rebuild the file system


1 Switch off controller power.

2 While holding down the F2 and Home buttons, switch on controller power.

3 The controller LCD displays the message Loading new MFS from Flash
while the file system is being rebuilt. When the process is complete, the
controller continues with its normal bootup sequence.

Making the PC the Default Controller User Interface


When you install a new version of the CROS on the controller, it sets the teach
pendant as the default user interface. If one is attached, you will have to
manually command it to release point of control to the controller. If there is no
teach pendant attached, the controller will give point of control to the Console
port (and, hence, the PC attached to it), but there will be a short delay while
the controller determines that a teach pendant is not attached. In both cases,
you will benefit by altering CROS to prevent it automatically assigning point of
control to the teach pendant during startup.

To assign point of control to the Console port at controller startup


1 Power up the controller and let it complete its startup.

2 If a teach pendant is attached to the controller, press the ESC key on the
pendant, followed by the F1 key. The pendant will release point of control.

3 In the Robcomm3 terminal window or ActiveRobot Terminal, enter the


command auto -d at the system shell prompt. This command disables the
automatic execution of the pendant program on controller startup.

Restoring Controller Files


Once you have downloaded CROS and rebuilt the file system, you can restore
your application and configuration files.

To restore your files to the controller


1 Using Robcomm3 or ActiveRobot Explorer, copy your backup copies of the
files from the /app and /conf directories back onto the controller.

2 Shut down and reboot the controller.

3 Re-compile and test all application files on the controller.

2–6 ActiveRobot User Guide: Installing ActiveRobot


Installing ActiveRobot: Installing the ActiveRobot Software

Installing the ActiveRobot Software


Once you have connected the PC to the Console port of the C500C controller
and established communications, you can install the ActiveRobot software.

To install the ActiveRobot software


1 Re-boot your PC to ensure that no ActiveRobot software or applications
are running.
2 If you have a previous version of ActiveRobot installed on the PC, use the
Add/Remove Programs applet in the Windows Control Panel to
uninstall it.
3 Insert the ActiveRobot installation CD in the PC’s CD/DVD drive. After a
few seconds, Windows will launch the ActiveRobot installation utility:

Note: If the installation program does not autorun, run the autorun.exe
program, which is in the root directory of the installation CD.

4 Click Read Release Notes to review in your browser the most recent
information about this release of ActiveRobot.
5 If you do not have Adobe Acrobat Reader 4 or later installed on the PC,
click Acrobat Reader 5 to launch the Acrobat Reader installation
program. (You need Acrobat to view and print the Portable Document
Format version of the ActiveRobot User Guide.)
6 Click ActiveRobot to install the ActiveRobot software. The ActiveRobot
installation program will run and prompt you for the following choices:
• To accept or refuse the end-user licence
• To accept or change the installation directory
• To select a typical, compact, or custom installation

ActiveRobot User Guide: Installing ActiveRobot 2–7


Installing ActiveRobot: Configuring and Testing ActiveRobot

Once you have accepted the end-user licence and responded to the other
prompts, the installation completes.

Configuring and Testing ActiveRobot


Before using ActiveRobot, you must configure and test it. You may also need
to update the version of CROS and the HCL communication program on the
controller. For details see the following procedures:

• “To configure ActiveRobot” on page 2-8

• “To test the ActiveRobot configuration” on page 2-9

• “To update the version of HCL on the controller” on page 2-10

To configure ActiveRobot
1 Select ActiveRobot Configuration in the Windows Start Menu or in the
CRS ActiveRobot directory. When it starts, ActiveRobot Configuration
opens to the General tab:

2 Select the Configure tab to display the configuration dialog box.

2–8 ActiveRobot User Guide: Installing ActiveRobot


Installing ActiveRobot: Configuring and Testing ActiveRobot

3 Select the robot system you wish to configure, using the Robot to
Configure selection box. If you have only one controller connected to the
PC, select 0.
4 Select the PC serial port to use to communicate with the selected robot
system in the Comm Port text box.
5 Select the serial communications rate to use in the Speed selection box
(units are bits/sec). This must match the speed set on the controller,
which by default is 57600 bps.
6 Select the serial communications parity to use in the Parity selection box.
This must match the parity set on the controller, which by default is
none.
7 Select the number of serial communication stop bits to use in the Stop
Bits selection box. This must match the number of stop bits set on the
controller, which by default is one.
8 Select the check box labeled This is the default robot to make this robot
system the default robot system. There must be one and only one robot
system designated as the default robot system.
If you do not want this robot system to be the default one, clear the check
box.
9 If you want to reset the serial communications settings to their defaults,
select Reset Settings.
10 Click Save to store this robot system configuration.

To test the ActiveRobot configuration


1 Click the Test tab to display the Test dialog box.
2 Select the ID of the robot system in the Robot to Test selection box.
3 Select Test to test the robot system. ActiveRobot Configuration will run
through a series of tests, indicating the status of each one as it goes.

Note: All tests must pass before you can use ActiveRobot. If the PC
cannot communicate with the controller, the Remote HCL Speed
test will fail. If it does, check that you have correctly connected the
PC to the controller and set the correct communication settings.

ActiveRobot User Guide: Installing ActiveRobot 2–9


Installing ActiveRobot: Configuring and Testing ActiveRobot

4 If the test is successful, take the following steps:


a Click the Controller tab
b Select the number of the controller in the Controller to use selection
box.
c Click Synchronize to set the controller’s date and time to that of the
PC.
During the test, ActiveRobot Configuration checks the versions of CROS and
the HCL communication program on the controller. If they are not correct, it
will prompt you to update each one.
To update the version of CROS, see “Installing CROS 2.8 or 3.1” on page 2-3.

To update the version of HCL on the controller


1 Run the program ARPatch.exe in the directory CROS3.1Patch on your
ActiveRobot installation CD. Windows opens the ARPatch dialog box:

2 For each controller attached to the PC, take the following steps:
a Select the controller to update from the Robot number selection box.
If you have only one controller connected to the PC, select 0.
b Click Update to start the update process.
c When prompted to apply the patch, click Yes. ARPatch applies the
patch and asks if you want to shut down the controller.
d Click Yes to shutdown the controller. When the controller shuts down,
ARPatch prompts you to power off the controller.
e Power off the controller.
f Wait a few seconds and then power on the controller.
3 When you have finished updating each controller, click Exit to close the
ARPatch program.
4 Before using ActiveRobot, test the ActiveRobot configuration again, as
described in “To test the ActiveRobot configuration” on page 2-9.

2–10 ActiveRobot User Guide: Installing ActiveRobot


3 Using ActiveRobot

This chapter describes how to use ActiveRobot components to develop robot


applications. It consists of the following topics:
• “Safety Considerations” on page 3-2, which describes safety concerns
unique to ActiveRobot
• “Creating a New ActiveRobot Application” on page 3-2, which describes
how to access the ActiveRobot components in Visual Basic 6 and other
tools
• “Getting Help” on page 3-4, which describes how to access online and
printed information about ActiveRobot methods and properties
• “Reference Documentation Conventions” on page 3-5, which describes
how to interpret the method and property syntax information
• “Developing ActiveRobot Applications” on page 3-6, which provides an
overview of the process of creating an ActiveRobot application
• “Example Applications” on page 3-14, which provides an overview of the
example applications included with ActiveRobot
• “Using ActiveRobot Configuration” on page 3-17, which describes how to
use the ActiveRobot Configuration tool
• “Using ActiveRobot Terminal” on page 3-22, which describes how to use
the ActiveRobot Terminal tool
• “Using ActiveRobot Explorer” on page 3-24, which describes how to use
the ActiveRobot Explorer tool

ActiveRobot User Guide: Using ActiveRobot 3-1


Using ActiveRobot: Safety Considerations

Safety Considerations
In addition to considering those safety and performance issues that apply to
the robot system, you must consider the safety and performance issues that
apply specifically to ActiveRobot.

ActiveRobot enables you to control a robot system remotely, which can raise
some safety concerns if the host computer is some distance away from the
robot system. In such circumstances, it is possible that the operator of the
host computer might not be aware of what is happening at the robot system.

If a host computer is running an ActiveRobot application that can control the


motion of the robot arm, heed the following guidelines:

• Place the host computer close to the robot system to ensure that the host
computer’s operator is aware at all times of what’s happening with the
robot system.

• Install an E-stop next to the host computer.

You must also be aware that, unlike the C500C controller, the host computer
does not run a real-time operating system, and cannot offer the same
guarantees on robot application timing and performance. Avoid running non-
ActiveRobot applications that are computationally intensive at the same time
as an ActiveRobot application.

Creating a New ActiveRobot Application


To create an new ActiveRobot application, you simply create a new project
within your preferred Windows development tool and make a reference to the
ActiveRobot DLLs. (To learn how to create instances of ActiveRobot
components, see Creating and Using ActiveRobot Objects.)

Compatible Windows development tools include Microsoft Visual Basic 5.0 or


later, Visual C++ 5.0 or later, Office 97 or later applications, and other
applications that support Microsoft Visual Basic for Applications (VBA).

Note: Visual Basic 5.0, Visual C++ 5.0 and Office 97 applications do not
support ActiveRobot Help. However, you can still open ActiveRobot
Help from either its shortcut in the Windows Start menu or in the CRS
Robotics directory.

• Creating ActiveRobot Applications In Visual Basic 6.0

• Creating ActiveRobot Applications In Visual C++ 6.0

• Creating ActiveRobot Applications In Access 2000

Creating ActiveRobot Applications In Visual Basic 6.0


To create a new ActiveRobot application in Visual Basic, take the following
steps:

1 Start Visual Basic and create a new project.

3-2 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Creating a New ActiveRobot Application

2 Select the References menu item in the Project menu. Visual Basic
opens the References dialog box.

3. Select the CRS ActiveRobot 1.1 Type Library and click OK.

Creating ActiveRobot Applications In Visual C++ 6.0


To create a new ActiveRobot application in Visual C++, take the following
steps:

1 Start Visual C++ and create a new project.

2 In the header (.h) files for classes that access ActiveRobot components,
before the class declarations, import the ActiveRobot type library and
specify its namespace. For example, if you have installed ActiveRobot to
the default location on the C drive, add the following statements:

#import "C:\Program Files\CRS Robotics\ActiveRobot\ActiveRobot.dll"


using namespace ACTIVEROBOTLib;

3 In the implementation (.cpp) files for classes that access ActiveRobot


components, make sure you initialize the COM library before creating any
ActiveRobot objects, as follows:

if FAILED(CoInitialize (NULL))
{
AfxMessageBox("CoInitialize() failed.");
exit(1);
}

You must initialize the COM library every time you create a new thread.

ActiveRobot User Guide: Using ActiveRobot 3-3


Using ActiveRobot: Getting Help

Creating ActiveRobot Applications In Access 2000


To create a new ActiveRobot application in Microsoft Access 2000, take the
following steps:
1 Start Access and create a new database.
2 Select the Modules tab and select New. Access opens a Visual Basic for
Applications programming window.
3 Select the References menu item in the Project menu. Visual Basic
opens the References dialog box.

4. Select the CRS ActiveRobot 1.1 Type Library and click OK.

Getting Help
In Visual Basic 6 and higher, and in applications that support Visual Basic for
Applications, you can get context-sensitive online help from the following
sources:
• ToolTip help will appear every time you select an ActiveRobot object
method or property, providing number and types of arguments.
• If you press F1 while your cursor is in an ActiveRobot method or property,
ActiveRobot Help will open to the page describing that method or
property.
ActiveRobot Help provides search capabilities, hypertext links, and an index to
help you find the information you need quickly.
The ActiveRobot User Guide, an Adobe Acrobat Portable Document Format
(PDF) file installed in your CRS Robotics directory, contains the same
information as the ActiveRobot Help and offers the following additional
capabilities:

3-4 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Reference Documentation Conventions

• It is easier to print from.


• It permits more powerful searching.
• It provides more powerful viewing options.

Reference Documentation Conventions


The Reference chapters, which describe the ActiveRobot objects’ methods and
properties for Visual Basic users, employ the following documentation
conventions:
• The name of each method or property is followed by a description of its
purpose.
• The Syntax section shows you how to use the method or property in your
Visual Basic code, using the following conventions:
• Parts in italics are values. These values can be hard-coded or
variables, as appropriate.
• Parts in bold must be entered exactly as shown.
• Parts surrounded by square brackets are optional.
For example, in the following syntax description for setting and getting the
Output property of a CRSRobot object,
RobotObject.Output(point[,queueBypass]) = outputNState
outputNState = RobotObject.Output(point[,queueBypass])

the parts outputNState, RobotObject, point and queueBypass are all values
or variables, while Output is the name of the property (which must appear
exactly as shown). The square brackets indicate that queueBypass is an
optional part.
Note: All ‘=’, ‘(‘, ‘)’, ‘.’ and ‘,’ characters must appear in code in the
positions shown, but, for the sake of clarity, do not appear in the
syntax description in bold.

The syntax description is followed by a table listing the purpose, type and
possible values of each part.
• The Remarks section, if present, describes any noteworthy aspects of the
method or property, such as restrictions on its use for particular models
of arm, or additional details about using it.
• The See Also section, if present, lists related methods and/or properties.

How Visual C++ Users Can Use the Reference


Documentation
Visual C++ users can also use the reference information if they keep in mind
the following guidelines:
• All the Visual Basic data types described also apply to Visual C++, with
the exception of the following types:

ActiveRobot User Guide: Using ActiveRobot 3-5


Using ActiveRobot: Developing ActiveRobot Applications

• Strings, which in Visual C++ must be declared as objects of type


BSTR.
• Booleans, which in Visual C++ must be declared as objects of type
VARIANT_BOOL.
• The types of the values assigned to or from ActiveRobot properties in
Visual Basic are the same as the values returned by these properties in
Visual C++.

Developing ActiveRobot Applications


The following sections describe how to develop ActiveRobot applications.
• The Development Process
• Using V3 Files in ActiveRobot Applications
• Creating and Using ActiveRobot Objects
• Co-ordinating ActiveRobot Event Handlers
• Monitoring the Robot System
• Managing Point of Control
• Processing Abort Commands

The Development Process


ActiveRobot application development usually consists of the following tasks:
• Teaching locations and variables
• Creating instances of the ActiveRobot objects, including at least one
CRSV3File object and one CRSRobot object
• Creating the application’s user interface
• Creating the application’s process logic
• Debugging the application
• Deploying the application

Using V3 Files in ActiveRobot Applications


ActiveRobot robot applications typically use a v3 file on the host computer.
The v3 file contains teachable location data and application variables required
to run the application. ActiveRobot CRSV3File objects provide an interface to
this file.
When developing new robot applications, you typically teach initial locations
and variables on the controller, and then copy the v3 file to the host computer.
You then use a CRSV3File object to access and modify the v3 file.
To learn more about creating and editing the v3 file on the controller, refer to
the manual Application Shell (ASH), which came with your robot system.
For details on accessing and using the v3 file on the host computer, refer to
Chapter 5, CRSV3File.

3-6 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Developing ActiveRobot Applications

To learn how to transfer v3 files between the host computer and the controller,
see “Using ActiveRobot Explorer” on page 3-24.

Creating and Using ActiveRobot Objects


The ActiveRobot interface includes five object classes:
• CRSRobot, which is the application’s main interface to the robot system.
• CRSV3File, which is the application’s interface to the v3 file
• CRSLocation, which the application can use to create and modify robot
locations
• CRSPath, a collection object that stores the CRSLocation objects that
define a path
• CRSRemote, which the application can use to access the controller’s
operating system
The following sections describe how to create CRSRobot objects in Visual
Basic and Visual C++, and provide an overview of each of these object classes.
• Using ActiveRobot Objects In Visual Basic
• Using ActiveRobot Objects In Visual C++
• Using CRSRobot
• Using CRSV3File
• Using CRSLocation
• Using CRSPath
• Using CRSRemote

Using ActiveRobot Objects In Visual Basic


To create an instance of an ActiveRobot object, you can use the Visual Basic
keywords Dim and New. For example, to create an instance of the CRSRobot
object called RobotObject, you create the following line of code:
Dim RobotObject as New CRSRobot

Thereafter, to access a RobotObject method or property, you would simply add


a period to the name of the instance of the object and specify the method or
property name and any required arguments. For example, to invoke the
RobotObject’s Ready method, which puts the arm into the ready position, you
create the following line of code:
RobotObject.Ready

To get the current value of the RobotObject’s GripperType property, you create
the following line of code:
griptype = RobotObject.GripperType

To set the current value of the RobotObject’s GripperType property, you create
the following line of code:
RobotObject.GripperType = griptype

ActiveRobot User Guide: Using ActiveRobot 3-7


Using ActiveRobot: Developing ActiveRobot Applications

To assign one object to another, you must use the Set command. For example,
to assign a new tool transform (which is a CRSLocation object) to a CRSRobot
object, you would enter the following line of code:
Set RobotObject.ToolTransform = transform
Note that, in Visual Basic, assigning one object to another does not copy the
values of all of the source object’s properties to those of the destination object.
Instead, Visual Basic destroys the destination object and simply creates a
reference with the same name as the destination object to the source object.
Using ActiveRobot Objects In Visual C++
To create instances of ActiveRobot objects in Visual C++, you first declare the
name of each instance and then invoke the object constructor. For example, to
create one instance of each class of ActiveRobot object, you write the following
lines of code:
ICRSRobotPtr Robot;
// declare a CRSRobot object
ICRSRemotePtr Controller;
// declare a CRSRemote object
ICRSV3FilePtr TestV3;
// declare a CRSV3File object
ICRSLocationPtr locA;
// declare a CRSLocation object
ICRSPathPtr Path1;
// declare a CRSPath object
Robot = ICRSRobotPtr(__uuidof(CRSRobot)); // construct a CRSRobot object
Controller = ICRSRemotePtr(__uuidof(CRSRemote)); // construct a CRSRemote object
TestV3 = ICRSV3FilePtr(__uuidof(CRSV3File)); // construct a CRSV3File object
locA = ICRSLocationPtr(__uuidof(CRSLocation)); // construct a CRSLocation object
Path1 = ICRSPathPtr (__uuidof(CRSPath)); // construct a CRSRobot object
(The __uuidof keyword is a non-ANSI feature of Microsoft Visual C++. It
retrieves the globally unique identifier of the object class.)
Do not use the new or delete keywords with ActiveRobot objects. Doing so
can produce memory leaks.

Using CRSRobot
If your application must control the robot system, it must include at least one
instance of a CRSRobot object. This object sends commands to and reflects
the current state and configuration of a single robot system. Your application
can contain multiple instances of CRSRobot objects, but only one CRSRobot
object can have point of control in a robot system at a time.
The following tables list the categories of methods and properties provided by
the CRSRobot object class.
Table 3-1: CRSRobot method categories

Category Description
Diagnostics Retrieves diagnostic information about the robot
system
Force Control Controls the ATI Force Sensor option
Gripper Controls the gripper
Homing and Robot system homing and calibration
Calibration
Operator Input Gets input from a controller panel button
Motion Motion control: move, wait, and so on

3-8 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Developing ActiveRobot Applications

Category Description
Point of Control Sets the process that controls the arm
Robot Configuration Configures aspects of the robot system
Robot Status Retrieves robot system status information
Utility Miscellaneous functions

Table 3-2: CRSRobot property categories.

Category Description
Axis Configuration Get and set the configuration of the robot system’s
axes
Diagnostics Get diagnostic information about the robot system
Force Control Controls the CRS Robotics Force Sensor
Gripper Gripper characteristics
Input/Output Get or set states of GPIO, controller panel buttons
Robot Configuration Get or set configuration characteristics
Robot Information Get fixed information about the robot system
Robot Mode Control Get or set robot system modes
Robot Selection Get or set which physical robot system you are
controlling
Blended Motion Control Get or set blended motion parameters
Robot Status Get robot system status
Utility Miscellaneous properties

For details about creating and using CRSRobot objects, see Chapter 4,
CRSRobot.

Using CRSV3File
If your application must control the robot system (rather than simply monitor
it), it will usually include one instance of a CRSV3File object.

The following tables list the methods and properties provided by the
CRSV3File object class.

Table 3-3: CRSV3File methods

Method Purpose
Open Opens, creates, or resets the length of the specified v3
file
Close Closes the specified v3 file
VariableInfo Extracts information about the specified location or
variable

ActiveRobot User Guide: Using ActiveRobot 3-9


Using ActiveRobot: Developing ActiveRobot Applications

Method Purpose
Create Creates a new location or variable
Delete Deletes the specified location or variable
Rewind Moves the location/variable access pointer to the
beginning of the v3 file
GetNextName Retrieves the name of the location or variable at the
current pointer position in the v3 file

Table 3-4: CRSV3File properties

Property Purpose
Location Gets or sets a location or variable in the v3 file
Value Gets or sets the value of the specified variable in the
v3 file

For details about creating and using CRSV3File objects, see Chapter 5,
CRSV3File.

Using CRSLocation
The CRSV3File object contains CRSLocation objects, which encapsulate robot
system locations. You can use the CRSLocation object’s properties to get the
coordinate data of these locations and copy them to your own instances of
CRSLocation objects.

Note: The robot system can only move to valid locations (those within its
workspace) and only the robot system can determine the validity of a
location. While you can create an undefined location in the host
computer’s v3 file from within an ActiveRobot application, you cannot
set the location’s coordinate data and then command the robot system
to move there without generating an error condition.

The following table lists the properties of the CRSLocation object class.

Table 3-5: CRSLocation properties

Property Purpose
IsMotor Gets whether this location uses motor coordinates
IsWorld Gets whether this locations uses world coordinates
x Gets or sets the x coordinate of this world location
y Gets or sets the y coordinate of this world location
z Gets or sets the z coordinate of this world location
zrot Gets or sets the zrot coordinate of this world location
yrot Gets or sets the yrot coordinate of this world location
xrot Gets or sets the xrot coordinate of this world location

3-10 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Developing ActiveRobot Applications

Property Purpose
world Gets or sets the world coordinate of the specified
world axis
motor Gets or sets the position of the specified motor
Value Gets or sets the coordinate data of this location
IsValid Gets whether the location is valid
IsMetric Gets whether the location’s coordinate data is in
metric units

For details on using CRSLocation properties, see Chapter 6, CRSLocation.

Using CRSPath
CRSPath objects encapsulate robot system paths, which consist of a series of
locations and the triggers associated with each one. You can use the CRSPath
object’s methods and properties to, among other things, add or remove
locations from the path, and set the trigger associated with a location.

The following tables list the methods and properties provided by the CRSPath
object class.

Table 3-6: CRSPath methods

Method Purpose
Add Adds the specified location/trigger member to the
CRSPath collection
Remove Deletes the specified location/trigger member from
the CRSPath collection

Table 3-7: CRSPath properties

Property Purpose
Count Gets the number of location/trigger members in the
CRSPath collection
Item Gets or sets the location component of the specified
member of the CRSPath collection
Trigger Gets or sets the trigger component of the specified
member of the CRSPath collection

For details on using CRSPath objects, see Chapter Chapter 7, CRSPath.

Using CRSRemote
The CRSRemote object class provides an interface to the controller’s operating
system, file transfer daemon and file system.

The following tables list the methods and properties provided by the
CRSRemote object class.

ActiveRobot User Guide: Using ActiveRobot 3-11


Using ActiveRobot: Developing ActiveRobot Applications

Table 3-8: CRSRemote methods

Method Purpose
AbortFileTransfer Cancels the current GetFile or PutFile operation
CROSVersion Retrieves the major version, minor version and build
numbers of the version of CROS running on the robot
controller
Delete Deletes the specified file
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory
FileSpace Retrieves information about filesystem space for the
filesystem containing the specified object
GetFile Copies the specified file on the remote controller to the
specified file on the host computer
MkDir Creates the specified directory on the remote
controller
Ping “Pings” the remote controller to test communications
integrity
PutFile Copies the specified local file to the specified
destination file on the remote controller
RmDir Deletes an empty directory on the remote controller
Run Launches a program on the remote controller using
the specified CROS command line
SendSignal Sends the specified CROS signal to the specified
process on the remote controller
WaitForExitCode Waits for the specified CROS process to complete and
retrieves its exit code

Table 3-9: CRSRemote Properties

Property Purpose
ControllerDate Gets or sets the controller’s date and time
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMajor Gets the major device number for the current DirRead
entry

3-12 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Developing ActiveRobot Applications

Property Purpose
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry
DirFileType Gets the type of the current DirRead entry
PercentComplete Gets the progress of the current GetFile or PutFile file
transfer
ProcessExists Gets whether the specified CROS process exists
RobotInUse Gets or sets the current controller

For details on using the CRSRemote object, see Chapter 8, CRSRemote.

Co-ordinating ActiveRobot Event Handlers


Some ActiveRobot methods can take a considerable amount of time to
complete execution. The Finish method, for example, may take several
seconds while it waits for robot motion to finish. To prevent a Visual Basic
application from appearing to freeze during this wait period, the CRSRobot
object continues to respond to events while it waits for ActiveRobot methods
to complete.

This can introduce a problem: if an event handler invokes a property or


method of a CRSRobot object that is still waiting to complete a previously-
invoked method, an error will occur, and the event handler will be unable to
successfully complete.

To avoid this problem, you must prevent the user or application from
generating events that invoke any of a CRSRobot object’s point of control
methods while that CRSRobot object is still processing one of these methods.
In the user interface, for example, you must disable all user interface elements
that invoke methods of this type as soon as one has been selected by the user,
and only re-enable them once the CRSRobot object has completely processed
the selected command.

Monitoring the Robot System


You can use additional instances of CRSRobot objects to monitor a robot
system while the primary CRSRobot object is controlling the system. This
enables you, for example, to update status indicators for non-motion-related
I/O in your user interface while the the arm is moving.

For example, to poll a controller input while the arm is moving, you can create
another instance of a CRSRobot object, and periodically get its Input property
for the desired input.

Note: If you poll the robot system at a frequency greater than about ten times
per second, you may start to affect its performance.

ActiveRobot User Guide: Using ActiveRobot 3-13


Using ActiveRobot: Example Applications

Managing Point of Control


The robot system permits only one controller process or CRSRobot object to
control the system at a time.
This can affect your development process: if, for example, you are running a
C500C application shell (ash) in an ActiveRobot Terminal window while you
are coding the application, you must exit from the shell before you can run the
application.
This also affects your applications. If, for example, you wish to enable the
operator to use the teach pendant, you must explicitly release point of control
from your application before the operator can use the pendant. (The robot
system will give back point of control to the your application automatically
once the operator has released control from the pendant.)
The CRSRobot object provides three methods for managing point of control:
ControlGet, ControlGive and ControlRelease. For details, see Chapter 4,
CRSRobot.

Processing Abort Commands


As described in the section Co-ordinating ActiveRobot Event Handlers, you
can’t process abort commands in ActiveRobot applications simply by invoking
your primary CRSRobot object’s Abort method while it is processing another
method. Instead, you must invoke the Abort method from another CRSRobot
object.
To implement an effective abort command, you must take the following steps:
1 Create a secondary CRSRobot object.
2 Ensure its RobotInUse property has the same value as the primary
CRSRobot object’s RobotInUse property.
3 Invoke the secondary CRSRobot object’s Abort method when the user
selects the abort command.

If the primary CRSRobot object subsequently tries to issue a command


that requires that it have point of control, an “abort in progress” exception
will occur.
To resume robot arm motion control, invoke the primary CRSRobot object’s
ClearAbort method.

Example Applications
ActiveRobot includes simple example Visual C++ and Visual Basic
applications in the Examples directory of your ActiveRobot directory. The
following sections briefly describe the purpose of each example and how to
open it for viewing in Visual Basic or Visual C++.
For more detailed notes about each example, open the file Notes.htm, in the
Notes sub-directory of each example application.
• V3Example
• PendantVB

3-14 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Example Applications

• SimplePNP
• StatusQuery
• PathControl
• TeachPendant
• AbortMove

V3Example
The V3ExampleVB directory contains the Visual Basic source files for an
application that enables the user to create a sample v3 file and examine its or
another v3 file’s data.
To open the V3ExampleVB project, open the file V3Example.vbp.

PendantVB
The PendantVB directory contains the Visual Basic source files for an
application that enables the user to test and refine a simple pick-and-place
operation. A single pick-and-place can be performed on command; if the
locations or other relevant parameters require changing, the teach pendant
may be called remotely and new locations taught to the robot.
To open the PendantVB project, open the file PendantVB.vbp.

SimplePNP
The PickAndPlaceMFC directory contains the Visual C++ source files for an
application that performs a simple pick-and-place operation using locations
from a pre-existing V3 file.
To open the SimplePNP project, open the file SimplePNP.dsw.

StatusQuery
The StatusQueryMFC directory contains the Visual C++ source files for an
application that runs a simple pick-and-place routine using variable data
from a v3 file. StatusQuery also displays the robot arm’s power and finished
status, the controller board's temperature, and the end-effector's world
position.
To open the StatusQuery project, open the file StatusQuery.dsw.

PathControl
The PathMFC directory contains the Visual C++ source files for an application
that enables the user to manipulate robot path motions. It loads a series of
locations from an existing V3 file and adds them to a path, which is sent to the
robot system. The user can remove single locations from the path or command
the robot to follow the path.
To open the PathControl project, open the file PathControl.dsw.

ActiveRobot User Guide: Using ActiveRobot 3-15


Using ActiveRobot: Example Applications

TeachPendant
The PendantMFC directory contains the Visual C++ source files for an
application that enables the user to test and refine a simple pick-and-place
operation. A single pick-and-place can be performed on command; if the
locations or other relevant parameters require changing, the teach pendant
may be called remotely and new locations taught to the robot.
To open the TeachPendant project, open the file TeachPendant.dsw.

AbortMove
The AbortMoveMFC directory contains the Visual C++ source files for an
application that performs a very simple up-and-down traversal with the robot.
The user has the option to set an observer robot object to ensure that the
vertical traversal does not greatly exceed a preset distance. When the end-
effector's Z co-ordinate exceeds this distance, the observer sends an Abort
signal. The robot object with point-of-control recognizes the Abort signal and
asks the user for confirmation to clear it.
To open the AbortMove project, open the file AbortMove.dsw.

3-16 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Using ActiveRobot Configuration

Using ActiveRobot Configuration


ActiveRobot Configuration enables you to configure and test numerous
aspects of the robot system and the communications between it and the host
computer.

The following sections describe how to start ActiveRobot Configuration and


how to use its four tabs.

• Starting ActiveRobot Configuration

• Configuring a Robot System

• Testing a Robot System

• Performing Utility Robot Motion Operations

• Performing Utility Controller Operations

• Exiting from ActiveRobot Configuration

Starting ActiveRobot Configuration


To start ActiveRobot Configuration, select ActiveRobot Configuration in the
Windows Start Menu or in the CRS ActiveRobot directory.

When it starts, ActiveRobot Configuration opens to the General tab:

Figure 3-1: The General tab in ActiveRobot Configuration displays information about the
current version of the ActiveRobot DLL and the currently configured robot
systems.

ActiveRobot User Guide: Using ActiveRobot 3-17


Using ActiveRobot: Using ActiveRobot Configuration

The General tab in ActiveRobot Configuration (see Figure 2-3) displays the
current version of the ActiveRobot DLL, and the total number of configured
robot systems and their ID numbers. It also provides an Exit command to
close the program.

Configuring a Robot System


The Configure tab enables you to create and edit a communications
configuration for each robot system attached to the host computer.

Figure 3-2: The Configure tab in ActiveRobot Configuration enables you to create and edit a
communications configuration for each robot system attached to the host
computer.

To configure a robot system’s communications


1 Select the Configure tab.

2 Select the robot system you wish to configure, using the Robot to
Configure selection box.

3 Specify the serial port to use to communicate with the selected robot
system in the Comm Port text box.

Note: ActiveRobot Configuration requires you to specify a different serial


port for each robot system; it will not let you select another tab
until you do so.

4 Specify the serial communications rate to use in the Speed selection box
(units are bits/sec). (This must match the speed set on the controller.)

3-18 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Using ActiveRobot Configuration

5 Specify the serial communications parity to use in the Parity selection


box. (This must match the parity set on the controller.)

6 Specify the number of serial communication stop bits to use in the Stop
Bits selection box. (This must match the parity set on the controller.)

7 Select the check box labeled “This is the default robot” to make this robot
system the default robot system. There must be one and only one robot
system designated as the default robot sytsem.

If you do not want this robot system to be the default one, clear the check
box.

8 If you want to reset the serial communications settings to their defaults,


select Reset Settings.

9 Select Save to store this robot system configuration.

To delete a robot system configuration, select Delete robot configuration.

Testing a Robot System


You test the communications of the entire host computer/robot system
configuration using the Test tab.

Figure 3-3: The Test tab of ActiveRobot Configuration enables you to test the
communications of the host computer/robot system configuration.

To test a robot system


1 Select the Test tab.

ActiveRobot User Guide: Using ActiveRobot 3-19


Using ActiveRobot: Using ActiveRobot Configuration

2 Select the ID of the robot system to test in the Robot to Test selection
box.

3 Select Test to test the robot system.

ActiveRobot Configuration will run through a series of tests, indicating the


status of each one as it goes.

Performing Utility Robot Motion Operations


ActiveRobot Configuration provides a Utility tab that enables you to perform
several useful robot motion operations from the host computer, including
homing the arm, setting joint speeds, and moving individual axes.

Figure 3-4: The Utility tab of ActiveRobot Configuration enables you to perform several
useful robot system operations from the host computer.

To perform utility robot sytem operations


1 Select the Utility tab.

2 Select the ID of the robot system to control in the Robot to use selection
box.

3 Perform one or more of the following steps, as desired:

• Specify robot system speed using the arrows in the Speed setting box.

• Specify joint move size in degrees in the Joint Move Size text box.

• Specify track move size in millimetres in the Track Move Size text
box.

3-20 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Using ActiveRobot Configuration

• Select Home to home an A255/T265/CataLyst-3/CataLyst-


5/CataLyst-T robot arm based on its position in a homing bracket.
• Select Home in place to home an A255/T265/CataLyst-3/CataLyst-
5/CataLyst-T robot arm based on its position when the controller was
shutdown.
• Select Ready to move the arm to the ready position.
• Select CalReady to the move the arm to the calibration position.
• Select - while pressing the CTRL key to move the desired axis in a
negative direction.
• Select + while pressing the CTRL key to move the desired axis in a
positive direction.

Performing Utility Controller Operations


ActiveRobot Configuration provides a Controller tab that enables you to
synchronize the real-time clocks of the robot system and the host computer,
and to perform a shutdown of the controller.

Figure 3-5: The Controller tab of ActiveRobot Configuration

To synchronize the date and time


1 Select the Controller tab.
2 Select the ID of the robot system to synchronize with in the Controller to
use selection box.
3 Select Synchronize.

ActiveRobot User Guide: Using ActiveRobot 3-21


Using ActiveRobot: Using ActiveRobot Terminal

To shutdown the controller


1 Select the Controller tab.
2 Select the ID of the robot system to shut down in the Controller to use
selection box.
3 Select Shutdown Controller.

Exiting from ActiveRobot Configuration


To exit from ActiveRobot Configuration, select Exit in any tab or click the close
button in the upper right hand corner of the window.

Using ActiveRobot Terminal


ActiveRobot Terminal provides a simple terminal interface to the controller.
ActiveRobot Terminal uses the non-packetized communications facilities of
HCLServer, passing all characters through as is without error checking or
error correction. This can, under heavy processing loads or in high noise
environments, result in some spurious characters appearing at either the host
or controller, but it does not compromise the data exchanged by ActiveRobot
applications using HCLServer’s packetized communications.
• Starting ActiveRobot Terminal
• Selecting the Robot System to Communicate With
• Using the ActiveRobot Terminal Scroll Buffer
• Exiting from ActiveRobot Terminal

Starting ActiveRobot Terminal


To start ActiveRobot Terminal, select ActiveRobot Terminal in the Windows
Start Menu or in the CRS ActiveRobot directory. When it starts, ActiveRobot
Terminal first determines what robot systems are available for communication
and then attempts to establish a connection with the default system. If it
succeeds, it opens a terminal window:

3-22 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Using ActiveRobot Terminal

Figure 3-6: The ActiveRobot Terminal window maintains a scroll buffer that enables you to
view the output of recent controller commands.

To obtain a controller prompt, press the ENTER key on the host computer.

Selecting the Robot System to Communicate With


If you wish to communicate with a robot system other than the default, select
the desired system in the Robot menu.

Note: You can also select the robot system when you launch ActiveRobot
Terminal from a shortcut, by passing the system’s ID as the one (and
only) argument on the shortcut’s command line, or target. For
example, to specify that, when it starts, ActiveRobot Terminal
establish communications with robot system 2’s controller, you enter
the following (if the ActiveRobot Terminal executable is stored in
C:\Program Files\CRS Robotics\ActiveRobot):

“C:\Program Files\CRS Robotics\ActiveRobot\arterminal.exe” 2

Using the ActiveRobot Terminal Scroll Buffer


ActiveRobot Terminal stores window output in a 200-line scroll buffer. You
can copy text from this buffer, but you cannot paste text from the Windows
clipboard into the ActiveRobot Terminal window.

Viewing the Scroll Buffer


Use the scroll buttons on the right side of the window to view the current page
of the scroll buffer.

Copying the Scroll Buffer


To copy a portion of the current page of the scroll buffer, take the following
steps:

1 Using the mouse or the cursor keys, select the desired portion of text.

ActiveRobot User Guide: Using ActiveRobot 3-23


Using ActiveRobot: Using ActiveRobot Explorer

2 Press the right mouse button to show the context menu, and select Copy
to copy the selected text into the Windows clipboard.

Note: Pressing CTRL-C does not copy the selected text.

To copy the entire contents of the scroll buffer, select Copy Scroll Buffer in
the File menu.

Clearing the Scroll Buffer


To clear the scroll buffer, select Clear Scroll Buffer in the File menu.

Exiting from ActiveRobot Terminal


To exit from ActiveRobot Terminal, select Exit in the File menu or click the
close button in the upper right hand corner of the window.

Using ActiveRobot Explorer


ActiveRobot Explorer provides a Windows Explorer-like interface to the
controller’s file system. You can navigate, view directories, view file attributes,
and create, copy, and delete files and directories just as you would using
Windows Explorer on the host computer.

Since ActiveRobot Explorer works in a very similar fashion to Windows


Explorer, we will not provide an in-depth discussion here of its functions. (For
details on Windows Explorer, select Help Topics in the Windows Explorer
Help menu.)

We will, however, discuss those functions that differ from Windows Explorer:

• Copying files between the controller and the host

• Selecting the robot system to explore

The following sections consist of these topics:

• Starting ActiveRobot Explorer

• Selecting the Robot System to Communicate With

• Copying Files With ActiveRobot Explorer

• Exiting from ActiveRobot Explorer

Starting ActiveRobot Explorer


To start ActiveRobot Explorer, select ActiveRobot Explorer in the Windows
Start Menu or in the CRS ActiveRobot directory.

When it starts, ActiveRobot Explorer first determines what robot systems are
available for communication and then attempts to establish a connection with

3-24 ActiveRobot User Guide: Using ActiveRobot


Using ActiveRobot: Using ActiveRobot Explorer

the default system. If it succeeds, it opens a tree-view window into the


controller’s root directory:

Figure 3-7: The ActiveRobot Explorer window displays the C500C’s directory structure in the
left pane and the contents of the selected directory in the right pane.

Selecting the Robot System to Communicate With


If you wish to communicate with a robot system other than the default, select
the desired system in the Robot menu.
Note: You can also select the robot system when you launch ActiveRobot
Explorer from a shortcut, by passing the system’s ID as the one (and
only) argument on the shortcut’s command line, or target. For
example, to specify that, when it starts, ActiveRobot Explorer establish
communications with robot system 2’s controller, you enter the
following (if the ActiveRobot Explorer executable is stored in
C:\Program Files\CRS Robotics\ActiveRobot):

“C:\Program Files\CRS Robotics\ActiveRobot\arexplorer.exe” 2

Copying Files With ActiveRobot Explorer


You can use drag-and-drop to copy files from the controller to the host
computer, and vice-versa.

To copy files from the controller to the host


1 Open Windows Explorer and use it to display the destination directory on
the host computer.

ActiveRobot User Guide: Using ActiveRobot 3-25


Using ActiveRobot: Using ActiveRobot Explorer

2 In ActiveRobot Explorer, select the file(s) on the controller you want to


copy to the host computer.
3 Holding the left mouse button down, drag the selected files to the
destination directory in Windows Explorer.
4 Watch the copy progress in the ActiveRobot Explorer status bar at the
bottom of the window. It will increase in value as the copy operation
procedes.
5 When the status bar shows that the copy operation has completed (i.e.
the copy progress field is blank), release the left mouse button.
Note: If you release the left mouse button before the ActiveRobot Explorer’s
status bar indicates that a file copy operation has completed, the file
will not be copied.

Note: You can copy controller files to the host computer’s desktop simply by
dragging them there; you don’t have to go through Windows Explorer
in this case.

To copy files from the host to the controller


1 Open ActiveRobot Explorer and use it to display the destination directory
on the controller.
2 In Windows Explorer, select the file(s) on the host computer you want to
copy to the controller.
3 Holding the left mouse button down, drag the selected files to the
destination directory in ActiveRobot Explorer.
Note: You can copy files from the host computer’s desktop simply by
dragging them to the destination directory in ActiveRobot Explorer;
you don’t have to open Windows Explorer in this case.

Exiting from ActiveRobot Explorer


To exit from ActiveRobot Explorer, select Exit in the File menu or click the
close button in the upper right hand corner of the window.

3-26 ActiveRobot User Guide: Using ActiveRobot


4 CRSRobot

The CRSRobot object class enables you to control, configure and monitor the
robot system. This chapter covers the following topics:
• “CRSRobot Methods” on page 4-2, which provides detailed descriptions of
all CRSRobot methods
• “CRSRobot Properties” on page 4-66, which provides detailed
descriptionsn of all CRSRobot properties
Note: The name RobotObject has been used in the following method and
property descriptions as a placeholder for the name of the CRSRobot
object you create to access them.

ActiveRobot User Guide: CRSRobot 4-1


CRSRobot: CRSRobot Methods

CRSRobot Methods
The CRSRobot methods fall into the following categories:

Category Description
Diagnostics Retrieves diagnostic information about the robot
system
Force Control Controls the CRS Robotics Force Sensor
Gripper Controls the gripper
Homing and Robot system homing and calibration
Calibration
Operator Input Gets input from a controller panel button
Motion Motion control: move, wait, and so on
Point of Control Sets the CRSRobot object that controls the arm
Robot Configuration Configures aspects of the robot system
Robot Status Retrieves robot system status information
Utility Miscellaneous functions

4-2 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Diagnostics
You diagnose the robot system with the following method:

Method Purpose
FServoStatus Retrieves the status of the servo network on an F3
robot system

ActiveRobot User Guide: CRSRobot 4-3


CRSRobot: CRSRobot Methods

FServoStatus
The FServoStatus method retrieves the status of the servo network on an F3
robot system.

Syntax
RobotObject.FServoStatus netstat, a1, a2, a3, a4, a5, a6, a7, a8
This method has the following parts:

Part Description
netstat An output long value indicating the status of the servo
network.
a1 An output long value indicating the status of axis one
a2 An output long value indicating the status of axis two
a3 An output long value indicating the status of axis three
a4 An output long value indicating the status of axis four
a5 An output long value indicating the status of axis five
a6 An output long value indicating the status of axis six
a7 An output long value indicating the status of axis seven
a8 An output long value indicating the status of axis eight

Remarks
You must supply all the arguments to the method, even if the robot system
has less than eight axes.

4-4 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Force Control
You control the CRS Robotics Force Sensor with the following methods:

Method Purpose
ForceCalibrate Calibrates the force sensor along the specified world
axis
ForceDataGet Retrieves the forces and torques detected by the force
sensor
ForceSensorOffset Offsets the the force sensor from the tool flange by the
specified transformation

ActiveRobot User Guide: CRSRobot 4-5


CRSRobot: CRSRobot Methods

ForceCalibrate
The ForceCalibrate method calibrates the force sensor along the specified
world axis.

Syntax
RobotObject.ForceCalibrate WorldAxis
This method has the following part:

Part Description
WorldAxis An enumeration value specifying the axis along or
around which to move the tool center point (TCP):
• waX: along X axis
• waY: along Y axis
• waZ: along Z axis
• waXRot: around X axis
• waYRot: around Y axis
• waZRot: around Z axis

Remarks
The end effector must be installed when performing the calibration
commands. Three separate calibrations must be performed with the sensor
flange x-axis aligned to real world +X, -Z, and +Y axes, in that order. For
complete details, refer to the Force Sensor User Guide.

4-6 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

ForceDataGet
The ForceDataGet method retrieves the forces and torques detected by the
force sensor.

Syntax
RobotObject.ForceDataGet Fx, Fy, Fz, Tx, Ty, Tz
This method has the following parts:

Part Description
Fx An output float value indicating in ounces the force
detected along the x world axis
Fy An output float value indicating in ounces the force
detected along the y world axis
Fz An output float value indicating in ounces the force
detected along the z world axis
Tx An output float value indicating in ounce-inches the
torque detected along the x world axis
Ty An output float value indicating in ounce-inches the
torque detected along the y world axis
Tz An output float value indicating in ounce-inches the
torque detected along the z world axis

Remarks
For more information about the force sensor, refer to the Force Sensor User
Guide.

ActiveRobot User Guide: CRSRobot 4-7


CRSRobot: CRSRobot Methods

ForceSensorOffset
The ForceSensorOffset method offsets the the force sensor from the tool flange
by the specified transformation.

Syntax
RobotObject.ForceSensorOffset X, Y, Z, Yaw, Pitch, Roll, DecoupleFlag
This method has the following parts:

Part Description
X A float value specifying the distance in configured
linear units along the x world axis
Y A float value specifying the distance in configured
linear units along the y world axis
Z A float value specifying the distance in configured
linear units along the z world axis
Yaw A float value specifying in degrees the amount of yaw
Pitch A float value specifying in degrees the amount of
pitch
Roll A float value specifying in degrees the amount of roll
DecoupleFlag A boolean value specifying the force sensor’s
decouple status, as follows:
• True: decoupled
• False: not decoupled

Remarks
For more information about the force sensor, refer to the Force Sensor User
Guide.

4-8 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Gripper
You operate the gripper with the following methods:

Method Purpose
GripperCalibrate Calibrates the gripper fingers by setting travel
distance
GripperClose Closes the gripper fingers
GripperFinish Waits until the gripper fingers have stopped moving
GripperOpen Opens the gripper fingers
GripperStop Stops gripper finger motion

ActiveRobot User Guide: CRSRobot 4-9


CRSRobot: CRSRobot Methods

GripperCalibrate
The GripperCalibrate method calibrates the servo gripper by setting the
specified minimum and maximum finger distances.

Syntax
RobotObject.GripperCalibrate MinDistance, MaxDistance
This method has the following parts:

Part Description
MinDistance A float value specifying in the configured linear units
the minimum distance between the fingers
MaxDistance A float value specifying in configured linear units the
maximum distance between the fingers

Remarks
The gripper fingers will move during the calibration process. Refer to the Servo
Gripper User Guide for details.

4-10 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

GripperClose

The GripperClose method closes the gripper fingers. If the robot system is
configured with a servo gripper, the method accepts an optional argument
specifying the force for the gripper to use.

Syntax

RobotObject.GripperClose [force]

This method has the following part:

Part Description
force An optional float value ranging from zero to 100,
specifying the percentage of force to apply when
using a servo gripper

Remarks

If no value for force is specified, the gripper will apply the same force it used
on the previous invocation of GripperClose or GripperOpen.

Gripper fingers can surround an object and grasp it on the outside or be


inserted into a hole and grasp an object by exerting force on the insides of the
hole. If the former, you use GripperClose to grasp the object and GripperOpen
to release it; if the latter, you use GripperOpen to grasp the object and
GripperClose to release it.

Note: Gripping a servo gripper’s fingers at a force above 75 per cent for more
than a few seconds may shorten the life of the servo-gripper. To reduce
the risk of overloading the gripper, reduce the force you apply after
initially making contact with the object. The servo-gripper mechanics
will keep a firm grip on the object.

See Also

Method Purpose
GripperOpen Opens the gripper fingers
GripperStop Stops gripper finger motion
GripperFinish Waits for the gripper fingers to finish moving

Property Purpose
GripperFinished Gets whether the gripper fingers have finished
moving
GripperType Gets or sets the gripper type: servo, pneumatic, or
none
GripperDistance Gets and sets the distance between the fingers of the
servo gripper

ActiveRobot User Guide: CRSRobot 4-11


CRSRobot: CRSRobot Methods

GripperFinish
The GripperFinish method waits until the gripper fingers have stopped
moving. You use this method to ensure that the gripper fingers have
completed all motion before you move the arm or to synchronize gripper finger
movement with input/output operations.

Syntax
RobotObject.GripperFinish
This method has no arguments.

See Also

Method Purpose
GripperClose Closes the gripper fingers
GripperOpen Opens the gripper fingers
GripperStop Stops gripper finger motion
GripperCalibrate Calibrates the gripper fingers by setting travel
distance

Property Purpose
GripperFinished Gets whether the gripper fingers have finished
moving
GripperType Gets or sets the gripper type: servo, pneumatic, or
none
GripperDistance Gets and sets the distance between the fingers of the
servo gripper

4-12 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

GripperOpen

The GripperOpen method opens the gripper fingers. If the robot system is
configured with a servo gripper, the method accepts an optional argument
specifying the force for the gripper to use.

Syntax

RobotObject.GripperOpen [force]

This method has the following part:

Part Description
force An optional float value ranging from zero to 100,
specifying the percentage of force to apply when
using a servo gripper

Remarks

If no value for force is specified, the gripper will apply the same force it used
on the previous invocation of GripperClose or GripperOpen.

Gripper fingers can surround an object and grasp it on the outside, or be


inserted into a hole and grasp the object by exerting force on the insides of the
hole. If the former, you use GripperClose to grasp the object and GripperOpen
to release it; if the latter, you use GripperOpen to grasp the object and
GripperClose to release it.

Note: Gripping with the servo gripper at a force above 75 per cent for more
than a few seconds may shorten the life of the servo-gripper. To reduce
the risk of overloading the gripper, reduce the force you apply after
initially making contact with the object. The servo-gripper mechanics
will keep a firm grip on the object.

See Also

Method Purpose
GripperClose Closes the gripper fingers
GripperStop Stops gripper finger motion
GripperFinish Waits for the gripper fingers to finish moving

Property Purpose
GripperFinished Gets whether the gripper fingers have finished
moving
GripperType Gets or sets the gripper type: servo, pneumatic, or
none
GripperDistance Gets and sets the distance between the fingers of the
servo gripper

ActiveRobot User Guide: CRSRobot 4-13


CRSRobot: CRSRobot Methods

GripperStop
The GripperStop method stops all gripper finger motion.

Syntax
RobotObject.GripperStop
This method has no arguments.

See Also

Method Purpose
GripperClose Closes the gripper fingers
GripperOpen Opens the gripper fingers
GripperFinish Waits for the gripper fingers to finish moving
GripperCalibrate Calibrates the gripper fingers by setting travel
distance

Property Purpose
GripperFinished Gets whether the gripper fingers have finished
moving
GripperType Gets or sets the gripper type: servo, pneumatic, or
none
GripperDistance Gets and sets the distance between the fingers of the
servo gripper

4-14 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Homing and Calibration


You home and calibrate the robot system with the following methods:

Method Purpose
Calibrate Calibrates the specified axis
CalibrateZeroCross Calibrates the specified axis at the next zero pulse of
the axis’s encoder
Home Homes the specified axis or axes of an A255 or
CataLyst arm
HomeInPlace Homes the specified axis or axes of an A255 or
CataLyst arm based on the arm’s position at
shutdown
HomeZeroCross Homes the specified axis by seeking the zero cross
position
Zero Sets all the current motor position registers to zero

ActiveRobot User Guide: CRSRobot 4-15


CRSRobot: CRSRobot Methods

Calibrate
The Calibrate method finds the proximity sensor, backs up to the last zero
cross, and calibrates the specified axis. It writes the calibration data to the file
/conf/robot.cal on the controller. If you do not specify an axis, the Calibrate
method calibrates all axes.

Syntax
RobotObject.Calibrate [axis]
This method has the following part:

Part Description
axis An optional enumeration value specifying the axis or
axes to calibrate, as follows:
• alAxis1: Axis one
• alAxis2: Axis two
• alAxis3: Axis three
• alAxis4: Axis four
• alAxis5: Axis five
• alAxis6: Axis six
• alAxis7: Axis seven
• alAxis8: Axis eight
• alAllAxes: All axes

Remarks
You should normally only need to use this method after a service intervention,
since the arm is calibrated at the factory before shipment. Invoking this method
will overwrite the robot system’s calibration file.

See Also

Method Purpose
CalReady Moves the arm into the calibration position
CalibrateZeroCross Calibrates the specified axis at the next zero pulse of
the axis’s encoder
Home Homes the specified axis or axes
HomeInPlace Homes the specified axis or axes of an A255 arm
based on the arm’s position at shutdown
Zero Sets all the current motor position registers to zero

Property Purpose
Homed Gets the homed status of the arm

4-16 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

CalibrateZeroCross
The CalibrateZeroCross method calibrates the specified axis at the next zero
pulse of the axis’s encoder.

Syntax
RobotObject.CalibrateZeroCross axis, offset
This method has the following parts:

Part Description
axis An input long value specifying the axis to calibrate
offset An output long value indicating the offset in number
of encoder pulses

Remarks
You should normally only need to use this method after a service intervention,
since arm axes and any additional axes (such as that of a track) are calibrated at
the factory before shipment.
This method is only used with additional axes that don’t have homing
switches.

See Also

Method Purpose
CalReady Moves the arm into the calibration position
Calibrate Calibrates the specified axis
Home Moves the arm into the ready position
HomeInPlace Homes the specified axis or axes of an A255 arm
based on the arm’s position at shutdown
HomeZeroCross Homes the specified axis by seeking the zero cross
position
Zero Sets all the current motor position registers to zero

Property Purpose
Homed Gets the homed status of the arm

ActiveRobot User Guide: CRSRobot 4-17


CRSRobot: CRSRobot Methods

Home
The Home method homes the specified axis or axes of A255 or CataLyst arms.
If you do not specify any axes, the Home method homes all of them in
numerical order, starting with axis one.

Syntax
RobotObject.Home [axes]
This method has the following parts:

Part Description
axes An optional enumeration value specifying the axes to
limp:
• alAxis1: Axis one
• alAxis2: Axis two
• alAxis3: Axis three
• alAxis4: Axis four
• alAxis5: Axis five
• alAxis6: Axis six
• alAxis7: Axis seven
• alAxis8: Axis eight
• alAllAxes: All axes

Remarks
The Home method assumes the robot system has been properly calibrated.

See Also

Method Purpose
CalReady Moves the arm into the calibration position
Calibrate Calibrates the specified axis
Ready Moves the arm into the ready position
HomeInPlace Homes the specified axis or axes of an A255 arm
based on the arm’s position at shutdown
HomeZeroCross Homes the specified axis by seeking the zero cross
position

Property Purpose
Homed Gets the homed status of the arm

4-18 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

HomeInPlace
The HomeInPlace method homes the specified axis or axes of an A255 or
CataLyst arm, based on its position at shutdown rather than its position in a
homing bracket. If you do not specify any axes, the HomeInPlace method
homes all of them in numerical order, starting with axis one.

Syntax
RobotObject.Home [axes]

This method has the following parts:

Part Description
axes An optional enumeration value specifying the axes to
limp:
• alAxis1: Axis one
• alAxis2: Axis two
• alAxis3: Axis three
• alAxis4: Axis four
• alAxis5: Axis five
• alAxis6: Axis six
• alAxis7: Axis seven
• alAxis8: Axis eight
• alAllAxes: All axes

Remarks
The HomeInPlace method assumes that the A255 arm has not moved since it
was shut down. It seeks the zero cross position on each axis in turn. If the
zero cross positions are within one per cent of a rotation of the expected
position, the arm position is set accordingly and the robot system is
considered homed. (The arm’s position at shutdown is stored in a file in the
/conf directory on the controller.) The HomeInPlace method assumes the robot
system has been properly calibrated.

See Also

Method Purpose
CalReady Moves the arm into the calibration position
Calibrate Calibrates the specified axis
Ready Moves the arm into the ready position
HomeZeroCross Homes the specified axis by seeking the zero cross
position
Home Homes the specified axis or axes

Property Purpose
Homed Gets the homed status of the arm

ActiveRobot User Guide: CRSRobot 4-19


CRSRobot: CRSRobot Methods

HomeZeroCross
The HomeZeroCross method homes the specified axis by seeking the zero
cross position.

Syntax
RobotObject.HomeZeroCross axis, offset
This method has the following parts:

Part Description
axis An input long value specifying the axis to calibrate
offset An output long value indicating the offset in number
of encoder pulses

Remarks
You only use this method to home non-arm axes that do not have a homing
proximity switch, such as a capper/decapper.

See Also

Method Purpose
CalReady Moves the arm into the calibration position
Ready Moves the arm into the ready position
Home Homes the specified axis or axes
HomeInPlace Homes the specified axis or axes of an A255 arm
based on the arm’s position at shutdown

Property Purpose
Homed Gets the homed status of the arm

4-20 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Zero
The Zero method sets all the current motor position registers to zero.

Syntax
RobotObject.Zero
This method has no arguments.

Remarks
Arbitrary and inappropriate use of this method can result in collisions, and
damage to the robot system and adjacent equipment!

You only use this method when calibrating the robot.

See Also

Method Purpose
CalReady Moves the arm into the calibration position
Calibrate Calibrates the specified axis

Property Purpose
MotorLocation Gets the current arm location as a motor location
WorldLocation Gets the current arm location as a world location

ActiveRobot User Guide: CRSRobot 4-21


CRSRobot: CRSRobot Methods

Operator Input
ICRSRobot provides the following method for obtaining operator input to the
controller:

Method Purpose
WaitForButton Waits until the operator presses the specified panel
button or until the specified timeout occurs

4-22 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

WaitForButton
The WaitForButton method waits until the operator presses the specified
panel button or until the specified timeout occurs. If the timeout occurs,
WaitForButton raises an exception.

Syntax
RobotObject.WaitForButton button, timeout
This method has the following parts:

Part Description
button An enumeration value specifying the panel button to
be pressed:
• cbF1: F1 button
• cbF2: F2 button
• cbPauseCont: Pause/Continue button
• cbHome: Home button
timeout An integer value specifying the timeout period in
milliseconds

See Also

Property Purpose
PanelButton Gets the state of the specified panel button
PanelButtons Gets the states of all panel buttons
PanelLight Gets or sets the state of the specified panel light

ActiveRobot User Guide: CRSRobot 4-23


CRSRobot: CRSRobot Methods

Motion
You control arm motion with the following CRSRobot methods:

Method Purpose
Align Aligns the approach/depart tool axis parallel to the
specified world axis
Approach Moves the TCP along its approach/depart axis to the
specified distance from the specified location using
joint-interpolated motion
ApproachStraight Moves the TCP along its approach/depart axis to the
specified distance from the specified location using
straight line motion
CalReady Moves the arm to the calibrate position
ClearAbort Clears a previously-invoked Abort method
CTPath Creates and stores a continuous path through an
array of locations with triggers for GPIO
CTPathGo Runs a path previously created and stored with the
CTPath method
Depart Moves the TCP along the approach/depart tool axis to
the specified distance from the current location using
joint-interpolated motion
DepartStraight Moves the TCP along the approach/depart tool axis to
the specified distance from the current location using
straight line motion
Finish Waits for the arm to finish moving
JogTool In the tool frame of reference, moves the TCP the
specified distance along or around the specified axis
using joint-interpolated motion
JogToolStraight In the tool frame of reference, moves the TCP the
specified distance along or around the specified axis
using straight-line motion
JogWorld In the world frame of reference, moves the TCP the
specified distance along or around the specified axis
using joint-interpolated motion
JogWorldStraight in the world frame of reference, moves the TCP the
specified distance along or around the specified axis
using straight-line motion
Joint Moves the specified joint by the specified number of
units
Limp Disengages the servo control of the specified motor
LockAxes Locks the specified axes
Motor Rotates the specified motor by the specified number of
encoder pulses

4-24 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Method Purpose
Move Moves the TCP to the specified location using joint-
interpolated motion
MoveStraight Moves the TCP to the specified location using
straight-line motion
NoLimp Engages servo control of the specified set of axes
Ready Moves the robot to the ready position
Abort Halts robot motion and signals the controlling process
Stop Halts robot motion, does not signal controlling process
UnlockAxes Unlocks the specified axes

ActiveRobot User Guide: CRSRobot 4-25


CRSRobot: CRSRobot Methods

Align
The Align method aligns the approach/depart tool axis parallel to the specified
world axis, using joint-interpolated motion.

Syntax
RobotObject.Align axis
This method has the following part:

Part Description
axis An enumeration value, as follows:
• aaNear: aligns to the nearest axis
• aaX: aligns to the X axis
• aaY: aligns to the Y axis
• aaZ: aligns to the Z axis

Remarks
When no tool transform has been set (the tool coordinate system is at its
default, identical to the mechanical interface coordinate system), the
approach/depart tool axis is the axis arising off of, and perpendicular to, the
tool flange (mechanical interface).
The F3 tool coordinate system and the A465/A255 tool coordinate system
have different approach/depart tool axes:
• The F3’s approach/depart tool axis is the Z axis of the F3 tool coordinate
system. The axes of the tool coordinate system are parallel to the
corresponding axes of the world coordinate system when the arm is in the
CalReady position (straight up).
• The the approach/depart tool axis of the A465 or A255 is the X axis of
the A465/A255 tool coordinate system. The axes of the tool coordinate
system are parallel to the corresponding axes of the world coordinate
system when the arm is in the Ready position.

If you have set a tool transform, the Align method aligns the transformed
approach/depart tool axis parallel to the specified axis of the world coordinate
system.

See Also

Method Purpose
ToolTransform Gets or sets the tool frame of reference transformation

4-26 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Approach
The Approach method moves the tool center point (TCP) along the
approach/depart axis to the specified distance from the specified location,
using joint-interpolated motion.
You use Approach to move the arm, usually quickly, to a position near a
location before moving the tool, usually slowly, to the location.

Syntax
RobotObject.Approach location, distance
This method has the following parts:

Part Description
location A CRSLocation object specifying the target location to
approach
distance A float value specifying the distance from the target
location

See Also

Method Purpose
ApproachStraight Like Approach, but in straight-line motion
Depart Moves the TCP along the approach/depart tool axis to
the specified distance from the current location using
joint-interpolated motion
DepartStraight Like Depart, but using straight-line motion

ActiveRobot User Guide: CRSRobot 4-27


CRSRobot: CRSRobot Methods

ApproachStraight
The ApproachStraight method moves the TCP along the approach/depart axis
to the specified distance from the specified location using straight line motion.

Syntax
RobotObject.ApproachStraight location, distance
This method has the following parts:

Part Description
location A CRSLocation object specifying the target location to
approach
distance A float value specifying the distance from the target
location

Remarks
You must set the BlendMotion property to True before using this method.

See Also

Method Purpose
Approach Like ApproachStraight, but using joint-interpolated
motion
Depart Opposite of Approach, moves TCP the specified
distance from the current location using joint-
interpolated motion
DepartStraight Like DepartStraight, but using straight-line motion

4-28 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

CalReady
The CalReady method moves the arm to the calibrate position. For an F3 or
A465, CalReady moves the arm straight up. For an A255, CalReady moves the
arm horizontally outward.

Syntax
RobotObject.CalReady
This method has no arguments.

Remarks
You would normally never need to use this method, since the arm is calibrated
at the factory before shipment.

See Also

Method Description
Calibrate Calibrates the specified axis or axes
CalibrateZeroCross Calibrates the specified axis at the next zero pulse of
the axis’s encoder
Zero Sets all the current motor position registers to zero

ActiveRobot User Guide: CRSRobot 4-29


CRSRobot: CRSRobot Methods

ClearAbort
The ClearAbort method clears a previously-invoked Abort method, setting this
CRSRobot object’s IsAborted property to False and enabling the controlling
process to issue motion commands again.

Syntax
RobotObject.ClearAbort
This method has no arguments.

Remarks
When any CRSRobot object has invoked the Abort method, any method that
requires point of control will fail until the ClearAbort method has been
invoked.

See Also

Method Description
Abort Halts robot motion and sets this CRSRobot object’s
IsAborted property to True
Stop Halts robot motion, but does not set this CRSRobot
object’s IsAborted property

Property Purpose
IsAborted Gets whether this CRSRobot object has received an
abort signal from the robot system

4-30 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

CTPath
The CTPath method creates and initializes a CRSPath object, which defines a
continuous path through an array of locations with triggers for GPIO (general
purpose input/output).
To run the path, you must invoke the CTPathGo method.

Syntax
RobotObject.CTPath PathNumber, Path, Start, Finish[, Speed]
This method has the following parts:

Part Description
PathNumber A long value from 1 to 8 specifying the MCE path
register in which to store this path
Path The CRSPath object containing the location and
trigger values to use
Start A long value specifying the path start location
Finish A long value specifying the path finish location
Speed An optional long value specifying the percentage of
full speed through the path

Remarks
If you do not specify a value for the Speed argument, CTPath will use the
current speed.

See Also

Method Purpose
CTPathGo Runs the path stored in the CRSPath object

ActiveRobot User Guide: CRSRobot 4-31


CRSRobot: CRSRobot Methods

CTPathGo
The CTPathGo method runs the specified path previously created and stored
with the CTPath method.

Syntax
RobotObject.CTPathGo PathNumber
This method has the following part:

Part Description
PathNumber A long value specifying the MCE path register of the
path to run

See Also

Method Purpose
CTPath Creates and initializes a CRSPath object

4-32 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Depart
The Depart method moves the TCP the specified distance from the current
location along the approach/depart axis using joint-interpolated motion.
You invoke this method to move the tool, usually slowly, away from a location
a short distance, before moving the arm, usually quickly, to a location a larger
distance away.

Syntax
RobotObject.Depart distance
This method has the following part:

Part Description
distance A float value specifying the distance from the tool
centre-point’s current position to the depart position

Remarks
It is possible to supply a negative value for distance, which will cause the the
arm to move forward along the approach/depart axis.

See Also

Method Purpose
DepartStraight Like Depart, but in straight line motion
Approach Opposite of Depart, moves to approach position
ApproachStraight Opposite of DepartStraight, moves to approach
position in straight line motion

ActiveRobot User Guide: CRSRobot 4-33


CRSRobot: CRSRobot Methods

DepartStraight
The DepartStraight method moves the TCP the specified distance from the
current location along the approach/depart axis using straight-line motion.

Syntax
RobotObject.DepartStraight distance
This method has the following part:

Part Description
distance A float value specifying the distance from the tool
centre-point’s current position to the depart position

Remarks
It is possible to supply a negative value for distance, which will cause the the
arm to move forward along the approach/depart axis.
You must set the BlendMotion property to True before using this method.

See Also

Method Purpose
Depart Like DepartStraight, but not in straight line motion
Approach Opposite of Depart, moves to approach position
ApproachStraight Opposite of DepartStraight, moves to approach
position in straight line motion

4-34 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Finish
The Finish method waits until the arm has finished moving.

Syntax
RobotObject.Finish [Tolerance]
This method has the following part:

Part Description
Tolerance An optional enumeration value specifying the
distance the arm can move before the next method is
executed:
• ftLoose: 100 motor pulses (default value)
• ftTight: five motor pulses

Remarks
You often use the Finish method to finish the movement of the arm to a
location before closing the gripper at the location, instead of having the gripper
start to close while the arm is still moving. You also use Finish to synchronize
methods, such as input/output, with robot motion.

See Also

Method Purpose
GripperFinish Waits for the gripper to finish moving

Property Purpose
Finished Indicates if the robot has finished moving
GripperFinished Indicates if the gripper has finished moving

ActiveRobot User Guide: CRSRobot 4-35


CRSRobot: CRSRobot Methods

JogTool
The JogTool method moves the TCP along or around the specified axis in the
tool coordinate system by the specified amount, using joint-interpolated
motion.

Syntax
RobotObject.JogTool axis, distance
This method has the following parts:

Part Description
axis An enumeration value specifying the axis in the tool
coordinate system along which to move the TCP:
• taX: X axis
• taY: Y axis
• taZ: Z axis
• taYaw: Normal axis
• taPitch: Orientation axis
• taRoll: Approach/Depart axis
distance A float value specifying the extent of motion along the
axis:
• in configured linear units, for taX, taY, or taZ
• in degrees, for taYaw, taPitch, or taRoll

Remarks
All joints involved in a joint-interpolated motion start and stop at the same
time. The speed of the joint that has to move the farthest is governed by the
speed setting, and other joints rotate slower according to joint interpolation.
The resulting TCP path is not straight.

See Also

Method Purpose
JogToolStraight Like JogTool, but in straight line motion
JogWorld Like JogTool, but in the world frame of reference
JogWorldStraight Like JogWorld, but in straight line motion
Joint Rotates or moves a specified joint by a specified
amount
Motor Rotates a specified motor by a specified number of
encoder pulses

4-36 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

JogToolStraight
The JogToolStraight method moves the TCP along or around the specified axis
in the tool coordinate system by the specified amount using straight-line
motion.

Syntax
RobotObject.JogToolStraight axis, distance
This method has the following parts:

Part Description
axis An enumeration value specifying the axis in the tool
coordinate system along which to move the TCP:
• taX: X axis
• taY: Y axis
• taZ: Z axis
• taYaw: Normal axis
• taPitch: Orientation axis
• taRoll: Approach/Depart axis
distance A float value specifying the extent of motion along the
axis:
• in configured linear units, for taX, taY, or taZ
• in degrees, for taYaw, taPitch, or taRoll

Remarks
For motion along an axis (taX, taY, and taZ), the TCP travels in a straight line
along the axis.
For rotation around an axis (taYaw, taPitch, and taRoll), the TCP stays in its
current position, while the tool rotates around the axis.
You must set the BlendMotion property to True before using this method.

See Also

Method Description
JogTool Like JogToolStraight, but in joint-interpolated motion
JogWorldStraight Like JogToolStraight, but in the world frame of
reference
JogWorld Like JogWorldStraight, but in joint-interpolated
motion
Joint Rotates or moves a specified joint by a specified
amount
Motor Rotates a specified motor by a specified number of
encoder pulses

ActiveRobot User Guide: CRSRobot 4-37


CRSRobot: CRSRobot Methods

JogWorld

The JogWorld method moves the TCP along or around the specified axis in the
world coordinate system by the specified amount using joint-interpolated
motion.

Syntax

RobotObject.JogWorld axis, distance

This method has the following parts:

Part Description
axis An enumeration value specifying the axis in the world
coordinate system along or around which to move the
TCP:
• waX: along X axis
• waY: along Y axis
• waZ: along Z axis
• waXRot: around X axis
• waYRot: around Y axis
• waZRot: around Z axis
distance A float value specifying the distance of motion along
or around the axis:
• in configured linear units, for waX, waY, or waZ
• in degrees, for waXRot, waYRot, or waZRot

Remarks

All joints involved in a joint-interpolated motion start and stop at the same
time. The speed of the joint that has to move the farthest is governed by the
speed setting, and other joints rotate slower according to joint interpolation.
The resulting TCP path is not straight.

See Also

Method Purpose
JogWorldStraight Like JogWorld, but in straight line motion
JogTool Like JogWorld, but in the tool frame of reference
JogToolStraight Like JogTool, but in straight line motion
Joint Rotates or moves a specified joint by a specified
amount
Motor Rotates a specified motor by a specified number of
encoder pulses

4-38 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

JogWorldStraight
The JogWorldStraight method moves the TCP along or around the specified
axis in the world coordinate system by the specified amount using straight
line motion.

Syntax

RobotObject.JogWorldStraight axis, distance

This method has the following parts:

Part Description
axis An enumeration value specifying the axis in the world
coordinate system along or around which to move the
TCP:
• waX: along X axis
• waY: along Y axis
• waZ: along Z axis
• waXRot: around X axis
• waYRot: around Y axis
• waZRot: around Z axis
distance A float value specifying the distance of motion along
or around the axis:
• in configured linear units, for waX, waY, or waZ
• in degrees, for waXRot, waYRot, or waZRot

Remarks

For motion along an axis (waX, waY, and waZ), the TCP moves in a straight
line along the axis for the specified distance.

Similarly for rotation around an axis (waXRot, waYRot, and waZRot), the TCP
remains in place, while the tool itself rotates around the axis.

You must set the BlendMotion property to True before using this method.

See Also

Method Purpose
JogWorld Like JogWorldStraight, but in joint-interpolated
motion
JogToolStraight Like JogWorldStraight, but in the tool frame of
reference
JogTool Like JogToolStraight, but in joint-interpolated motion
Joint Rotates or moves a specified joint by a specified
amount
Motor Rotates a specified motor by a specified number of
encoder pulses

ActiveRobot User Guide: CRSRobot 4-39


CRSRobot: CRSRobot Methods

Joint
The Joint method moves the specified joint by the specified number of units.

Syntax
RobotObject.Joint axis, distance
This method has the following parts:

Part Description
axis An long value specifying the joint to move
distance A float value specifying the extent of motion around
or along the joint:
• in degrees, for rotational joints (such as those on
the arm)
• in configured linear units, for linear joints (such
as the track axis)

See Also

Method Purpose
JogTool In the tool frame of reference, moves the TCP in joint-
interpolated motion
JogToolStraight Like JogTool, but in straight line motion
JogWorld Like JogTool, but in the world frame of reference
JogWorldStraight Like JogWorld, but in straight line motion
Motor Rotates a specified motor by a specified number of
encoder pulses

4-40 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Limp
The Limp method disengages the servo control of the motors at the specified
axes. If no axes are specified, Limp disengages the servo control of all motors.
You invoke the NoLimp method to re-engage servo-control.

Syntax
RobotObject.Limp [axes]
This method has the following parts:

Part Description
axes An optional enumeration value specifying the axes to
limp:
• alAxis1: Axis one
• alAxis2: Axis two
• alAxis3: Axis three
• alAxis4: Axis four
• alAxis5: Axis five
• alAxis6: Axis six
• alAxis7: Axis seven
• alAxis8: Axis eight
• alAllAxes: All axes

Remarks
Limping joints two and three can cause the arm to fall over if it is not vertical,
resulting in possible damage to the arm and adjacent equipment.

See Also

Method Purpose
NoLimp Re-engages servo-control of the motors at the
specified axes

ActiveRobot User Guide: CRSRobot 4-41


CRSRobot: CRSRobot Methods

LockAxes
The LockAxes method locks the specified axes. If no axes are specified,
LockAxes locks all axes. Use the UnlockAxes method to unlock locked axes.

Syntax
RobotObject.LockAxes [axes]
This method has the following part:

Part Description
axes An optional enumeration value specifying the axes to
lock:
• alAxis1: Axis one
• alAxis2: Axis two
• alAxis3: Axis three
• alAxis4: Axis four
• alAxis5: Axis five
• alAxis6: Axis six
• alAxis7: Axis seven
• alAxis8: Axis eight
• alAllAxes: All axes

See Also

Method Purpose
UnlockAxes Unlocks the specified locked axes

4-42 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Motor
The Motor method rotates the specified motor by the specified number of
encoder pulses.

Syntax
RobotObject.Motor axis, pulses[, condition]
This method has the following parts:

Part Description
axis A long value specifying the motor to rotate
distance A long value specifying the number of encoder pulses
by which to rotate the motor
condition An optional enumeration value specifying a stop
condition:
• msmNone: no specific condition
• msmHomingSwitchOn: stop when homing
switch goes ON
• msmHomingSwitchOff: stop when homing
switch goes OFF

Remarks
When you specify a condition for the Motor method, the system will stop
rotating the motor when the homing switch transitions to (or is in) the
specified state, or after the specified number of pulses have been counted,
whichever is first. You typically use the condition argument during homing or
calibration operations.

See Also

Method Description
JogTool In the tool frame of reference, moves the TCP in joint-
interpolated motion
JogToolStraight Like JogTool, but in straight line motion
JogWorld Like JogTool, but in the world frame of reference
JogWorldStraight Like JogWorld, but in straight line motion
Joint Rotates or moves a specified joint by a specified
amount

ActiveRobot User Guide: CRSRobot 4-43


CRSRobot: CRSRobot Methods

Move
The Move method moves the TCP to the specified location using joint-
interpolated motion.

Syntax
RobotObject.Move location
This method has the following part:

Part Description
location A CRSLocation object specifying the location to move
to

Remarks
All joints involved in a joint-interpolated motion start and stop at the same
time. The speed of the joint that has to move the farthest is governed by the
speed setting, and other joints rotate slower according to joint interpolation.
The resulting TCP path is not straight.
The location can be either a world location or a motor location.

See Also

Method Purpose
MoveStraight Like Move, but in straight-line motion
Depart Moves the TCP along the approach/depart tool axis to
the specified distance from the current location using
joint-interpolated motion
DepartStraight Like Depart, but using straight-line motion
Finish Waits for the arm to finish moving

4-44 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

MoveStraight
The MoveStraight method moves the TCP to the specified world location using
straight-line motion.

Syntax
RobotObject.MoveStraight location
This method has the following part:

Part Description
location A CRSLocation object specifying the world location to
move to

Remarks
This method ensures that both arm motion position and orientation are
linearly interpolated. This makes it possible to keep the payload in its current
orientation during the entire move: for example, it enables you to prevent a
container from spilling its contents during the move.
You must set the BlendMotion property to True before using this method.

See Also

Method Purpose
Move Like MoveStraight, but using joint-interpolated
motion
Depart Moves the TCP along the approach/depart tool axis to
the specified distance from the current location using
joint-interpolated motion
DepartStraight Like Depart, but using straight-line motion
Finish Waits for the arm to finish moving

ActiveRobot User Guide: CRSRobot 4-45


CRSRobot: CRSRobot Methods

NoLimp
After the Limp method has been invoked, the NoLimp method re-engages the
servo control of the motors at the specified axes. If no axes are specified,
NoLimp re-engages the servo control of all motors.

Syntax
RobotObject.NoLimp [axes]
This method has the following part:

Part Description
axes An optional enumeration value specifying the axes to
unlimp:
• alAxis1: Axis one
• alAxis2: Axis two
• alAxis3: Axis three
• alAxis4: Axis four
• alAxis5: Axis five
• alAxis6: Axis six
• alAxis7: Axis seven
• alAxis8: Axis eight
• alAllAxes: All axes

See Also

Method Purpose
Limp Disengages servo-control of the motors at the
specified axes

4-46 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Ready
The Ready method moves the arm to the ready position.

Syntax
RobotObject.Ready
This method has no arguments.

See Also

Method Purpose
Home Homes the arm or specified axes

ActiveRobot User Guide: CRSRobot 4-47


CRSRobot: CRSRobot Methods

Abort
The Abort method stops current motion and discards the contents of the robot
controller’s motion queue. It also sets the IsAborted property of each
CRSRobot object to True and prevents the controlling CRSRobot object from
adding another motion command to the queue until a ClearAbort command is
issued.

Syntax
RobotObject.Abort
This method has no arguments.

See Also

Method Purpose
Stop Halts the current motion
ClearAbort Clears a previously-invoked Abort method

Property Purpose
IsAborted Gets whether this CRSRobot object has received an
abort signal from the robot system

4-48 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Stop
The Stop method immediately halts robot motion and flushes the robot
controller’s motion queue. The Stop method can only be used by the
CRSRobot object that has point of control.

Syntax
RobotObject.Stop
This method has no arguments.

Remarks
The Stop method should not be used as a safety stop, since the controlling
CRSRobot object can still issue motion commands.

The Stop method can be used by the controlling CRSRobot object to, for
example, stop a slow Move command when an input has been detected.

See Also

Method Purpose
Abort Halts the current motion and flushes the controller’s
motion queue
ClearAbort Clears a previously-invoked Abort method

ActiveRobot User Guide: CRSRobot 4-49


CRSRobot: CRSRobot Methods

UnlockAxes
After the LockAxes method has been invoked, the UnLockAxes method
unlocks the specified locked axes. If no axes are specified, UnLockAxes
unlocks all axes.

Syntax
RobotObject.UnlockAxes [axes]
This method has the following part:

Part Description
axes An optional enumeration value specifying the axes to
unlock:
• alAxis1: Axis one
• alAxis2: Axis two
• alAxis3: Axis three
• alAxis4: Axis four
• alAxis5: Axis five
• alAxis6: Axis six
• alAxis7: Axis seven
• alAxis8: Axis eight
• alAllAxes: All axes

See Also

Method Purpose
LockAxes Locks the specified axes

4-50 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Point of Control
The point of control methods change which CRSRobot object currently
controls the arm. They include the following methods:

Method Purpose
ControlGet Assigns point of control to this CRSRobot object
ControlGive Assigns point of control to the specified CRSRobot
object
ControlRelease Gives up point of control from this CRSRobot object

ActiveRobot User Guide: CRSRobot 4-51


CRSRobot: CRSRobot Methods

ControlGet
The ControlGet method assigns point of control to this CRSRobot object.

Syntax
RobotObject.ControlGet
This method has no arguments.

Remarks
The ControlGet method will fail if another CRSRobot object currently has
point of control.
Note that all methods and properties that attempt to change the state of the
robot system implicitly execute a ContrlGet and thus will fail if another
CRSRobot object has point of control.

See Also

Method Purpose
ControlRelease Gives up point of control from this CRSRobot object

4-52 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

ControlGive
The ControlGive method explicitly assigns point of control to the specified
CRSRobot object.

Syntax
RobotObject.ControlGive RobotPID
This method has the following parts:

Part Description
RobotPID A long value specifying the ID of the CRSRobot object
to assign point of control to

See Also

Method Purpose
ControlRelease Gives up point of control from this CRSRobot object

Property Purpose
ProcessID Gets the ID of this CRSRobot object

ActiveRobot User Guide: CRSRobot 4-53


CRSRobot: CRSRobot Methods

ControlRelease
The ControlRelease method gives up point of control from this CRSRobot
object.

Syntax
RobotObject.ControlRelease
This method has no arguments.

See Also

Method Purpose
ControlGet Assigns point of control to this CRSRobot object

4-54 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Robot Configuration
You save the system configuration data with the following method:

Method Purpose
ConfigSave Saves the system configuration data in robot.cfg

ActiveRobot User Guide: CRSRobot 4-55


CRSRobot: CRSRobot Methods

ConfigSave
The ConfigSave method overwrites the /conf/robot.cfg file on the controller
with the current robot configuration data.

Syntax

RobotObject.ConfigSave

This method has no arguments.

Remarks

The ConfigSave method saves the following information:

• whether or not the robot has a track

• the number of axes on the controller

• the tool transform

• the base offset

• the positive and negative track travel limits

• the gripper type

• the robot units (metric or English)

• the force sensor enable password

Changing these parameters in your application does not change the


/conf/robot.cfg file. Using ConfigSave to write the changes to the
/conf/robot.cfg file makes the changes permanent between controller reboots.

See Also

Property Purpose
ToolTransform Gets or sets the tool transform
GripperType Gets or sets the gripper type: servo, pneumatic, or
none
AxisNegativeLimit Gets or sets the negative travel limit for the specified
axis
AxisPositiveLimit Gets or sets the positive travel limit of the specified
axis
ForcePassword Sets the specified force control enable password
BaseOffset Gets or sets the robot system’s base offset
TotalAxes Gets or sets the total number of axes on the robot
system
TrackEnable Gets or sets the enabled status of the track
Units Gets or sets the configured linear units for linear axes

4-56 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Robot Status
You check the operational integrity of the system with the following methods:

Method Purpose
AxisStatus Retrieves the status of each of the axes in the robot
system
CommunicationCheck Raises an exception on the host computer if robot
system communications fail
ClearError Clears persistent error bits in the controller DSP

ActiveRobot User Guide: CRSRobot 4-57


CRSRobot: CRSRobot Methods

AxisStatus
The AxisStatus method retrieves the status of each of the axes in the robot
system.

Syntax
RobotObject.AxisStatus axis1, axis2, axis3, axis4, axis5, axis6, axis7, axis8
This method has the following parts:

Part Description
axis1 An output long value consisting of status bits
axis2 An output long value consisting of status bits
axis3 An output long value consisting of status bits
axis4 An output long value consisting of status bits
axis5 An output long value consisting of status bits
axis6 An output long value consisting of status bits
axis7 An output long value consisting of status bits
axis8 An output long value consisting of status bits

Remarks
You must supply all arguments for this method, even if there are fewer than
eight axes in the robot system.
The status data of each axis is stored in the following bit positions:

Bit Position Status Data


0 Homing switch: 1 = On; 0 = Off
1-15 Reserved

4-58 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

CommunicationCheck
The CommunicationCheck method raises an exception if communications to
the robot are not working.

Syntax
RobotObject.CommunicationCheck
This method has no arguments.

See Also

Property Purpose
Homed Gets whether the arm is homed
Finished Gets whether the arm has finished moving

ActiveRobot User Guide: CRSRobot 4-59


CRSRobot: CRSRobot Methods

ClearError
The ClearError method clears persistent error bits in the controller DSP,
including runaways, collisions, overspeeds, and encoder faults, so that you
can re-engage arm power.

Syntax
RobotObject.ClearError
This method has no arguments.

Remarks
ClearError is typically used with the AsynchError property.

4-60 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

Utility
The Utility category includes the following methods:

Property Purpose
MotorToJoint Converts a motor location to a set of joint positions
ShiftTool Shifts the specified location in the tool frame of
reference by the specified amount
ShiftWorld Shifts the specified location in the world frame of
reference by the specified amount
WorldToJoint Converts a world location to a set of joint positions

ActiveRobot User Guide: CRSRobot 4-61


CRSRobot: CRSRobot Methods

MotorToJoint
The MotorToJoint method converts a motor location to a set of joint positions.

Syntax

RobotObject.MotorToJoint jLocation, j1, j2, j3, j4, j5, j6, j7, j8

This method has the following parts:

Part Description
jLocation An input CRSLocation object specifying the motor location to
convert
j1 An output float value specifying in degrees the position of joint
one
j2 An output float value specifying in degrees the position of joint
two
j3 An output float value specifying in degrees the position of joint
three
j4 An output float value specifying in degrees the position of joint
four
j5 An output float value specifying in degrees the position of joint
five
j6 An output float value specifying in degrees the position of joint
six
j7 An output float value specifying in degrees the position of joint
seven
j8 An output float value specifying in degrees the position of joint
eight

Remarks

You must supply all arguments for this method, even if there are fewer than
eight joints in the robot system.

You cannot convert a world location with this method: use WorldToJoint
instead.

See Also

Method Purpose
WorldToJoint Converts a world location to a set of joint positions

Property Purpose
JointToMotor Gets a motor location from a set of joint positions
MotorToWorld Gets a world location from a motor location

4-62 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

ShiftTool
The ShiftTool method shifts the coordinates of the specified location in the tool
frame of reference by the specified amounts.

Syntax
RobotObject.ShiftTool location, x, y, z, yaw, pitch, roll
This method has the following parts:

Part Description
location A CRSLocation object specifying the location to shift
x A float value specifying the amount in configured
linear units by which to shift the x coordinate of the
location
y A float value specifying the amount in configured
linear units by which to shift the y coordinate of the
location
z A float value specifying the amount in configured
linear units by which to shift the z coordinate of the
location
yaw A float value specifying the amount in degrees by
which to shift the yaw axis
pitch A float value specifying the amount in degrees by
which to shift the pitch axis
roll A float value specifying the amount in degrees by
which to shift the roll acis

Remarks
You cannot shift a motor location with this method.

See Also

Method Purpose
ShiftWorld Shifts the coordinates of the specified location in the
world frame of reference by the specified amounts

Property Purpose
ToolTransform Gets or sets the tool transform

ActiveRobot User Guide: CRSRobot 4-63


CRSRobot: CRSRobot Methods

ShiftWorld
The ShiftWorld method shifts the coordinates of the specified location in the
world frame of reference by the specified amounts.

Syntax
RobotObject.ShiftWorld location, x, y, z, zrot, yrot, xrot
This method has the following parts:

Part Description
location A CRSLocation object specifying the location to shift
x A float value specifying the amount in configured
linear units by which to shift the x coordinate of the
location
y A float value specifying the amount in configured
linear units by which to shift the y coordinate of the
location
z A float value specifying the amount in configured
linear units by which to shift the z coordinate of the
location
zrot A float value specifying the amount in degrees by
which to shift the zrot coordinate of the location
yrot A float value specifying the amount in degrees by
which to shift the yrot coordinate of the location
xrot A float value specifying the amount in degrees by
which to shift the xrot coordinate of the location

Remarks
You cannot shift a motor location with this method.

See Also

Method Purpose
ShiftTool Shifts the coordinates of the specified location in the
tool frame of reference by the specified amounts

Property Purpose
ToolTransform Gets or sets the tool transform

4-64 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Methods

WorldToJoint
The WorldToJoint method converts a world location to a set of joint positions.

Syntax

RobotObject.WorldToJoint wLocation, j1, j2, j3, j4, j5, j6, j7, j8

This method has the following parts:

Part Description
wLocation An input CRSLocation object specifying the world location to
convert
j1 An output float value specifying in degrees the position of joint
one
j2 An output float value specifying in degrees the position of joint
two
j3 An output float value specifying in degrees the position of joint
three
j4 An output float value specifying in degrees the position of joint
four
j5 An output float value specifying in degrees the position of joint
five
j6 An output float value specifying in degrees the position of joint
six
j7 An output float value specifying in degrees the position of joint
seven
j8 An output float value specifying in degrees the position of joint
eight

Remarks

You must supply all arguments for this method, even if there are fewer than
eight joints in the robot system.

You cannot convert a motor location with this method: use MotorToJoint
instead.

See Also

Method Purpose
MotorToJoint Converts a motor location to a set of joint positions

Property Purpose
JointToMotor Gets a motor location from a set of joint positions
MotorToWorld Gets a world location froma motor location

ActiveRobot User Guide: CRSRobot 4-65


CRSRobot: CRSRobot Properties

CRSRobot Properties
The properties accessible in the CRSRobot object class fall into the following
categories:

Category Description
Axis Configuration Get and set the configuration of the robot system’s
axes
Diagnostics Get or set robot system diagnostic information
Force Control Controls the CRS Robotics Force Sensor
Gripper Gripper characteristics
Input/Output Get or set states of GPIO, controller panel buttons
Robot Configuration Get or set configuration characteristics
Robot Information Get fixed information about the robot system
Robot Mode Control Getting or setting robot system modes
Blended Motion Control Get or set blended motion parameters
Robot Selection Gets or sets the robot system currently being
communicated with
Robot Status Getting robot system status
Utility Miscellaneous

4-66 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Axis Configuration
You get and set the configuration of the arm’s axes using the following
properties:

Property Purpose
AxisAcceleration Gets or sets the acceleration for the specified
axis
AxisDGain Gets or sets the derivative gain (Kd) term for
the specified axis
AxisIGain Gets or sets the integral gain (Ki) term for the
specified axis
AxisLinkLength Gets or sets the link length for the specified
axis
AxisMaximumJerk Gets or sets the allowable jerk for the specified
axis
AxisMaximumJointVelocity Gets or sets the maximum joint velocity for the
specified axis
AxisNegativeLimit Gets or sets the negative travel limit for the
specified axis
AxisPGain Gets or sets the proportional gain (Kp) term for
the specified axis
AxisPosition Gets or sets the current position of the
specified axis
AxisPositiveLimit Gets or sets the positive travel limit of the
specified axis
AxisPulsesPerMotorTurn Gets or sets the number of encoder pulses per
motor turn for the specified axis
AxisTurnsPerUnit Gets or sets the number of motor turns per
current unit for the specified axis

ActiveRobot User Guide: CRSRobot 4-67


CRSRobot: CRSRobot Properties

AxisAcceleration
The AxisAcceleration property gets or sets the acceleration for the specified
axis.

Syntax
RobotObject.AxisAcceleration(axis) = acceleration
acceleration = RobotObject.AxisAcceleration(axis)
This property has the following parts:

Part Description
axis A long value specifying the axis
acceleration A float value specifying or indicating the acceleration,
in the following units:
2
• degrees/sec squared, for rotational axes
2
• configured linear units/sec , for linear axes

Remarks
Increasing axis acceleration beyond the factory-set values can accelerate
wear of the arm mechanism and void the warranty.

You would not set this property for arm axes, since they are fixed. You might
need to set this property for additional axes, such as shuttles or carousels.

See Also

Property Purpose
AxisMaximumJointVelocity Gets or sets the maximum joint velocity for the
specified axis

4-68 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

AxisDGain
The AxisDGain property gets or sets the derivative gain (Kd) term for the
specified axis.

Syntax
RobotObject.AxisDGain(axis) = dGain
dGain = RobotObject.AxisDGain(axis)
This property has the following parts:

Part Description
axis A long value specifying the axis
dGain A float value specifying or indicating the derivative
gain

Remarks
Incorrectly adjusting the servogains of the robot system axes can cause
accelerated wear of the mechanism and unstable motion. Damage to the
robot arm and adjacent equipment can result.
You would not set this property for arm axes, since they are fixed. You might
need to set this property for additional axes, such as shuttles or carousels.

See Also

Property Purpose
AxisIGain Gets or sets the integral gain (Ki) term for the
specified axis
AxisPGain Gets or sets the proportional gain (Ki) term for the
specified axis

ActiveRobot User Guide: CRSRobot 4-69


CRSRobot: CRSRobot Properties

AxisIGain
The AxisIGain property gets or sets the integral gain (Ki) term for the specified
axis.

Syntax
RobotObject.AxisDGain(axis) = iGain
iGain = RobotObject.AxisDGain(axis)
This property has the following parts:

Part Description
axis A long value specifying the axis
iGain A float value specifying or indicating the integral gain

Remarks
Incorrectly adjusting the servogains of the robot system axes can cause
accelerated wear of the mechanism and unstable motion. Damage to the
robot arm and adjacent equipment can result.
You would not set this property for arm axes, since they are fixed. You might
need to set this property for additional axes, such as shuttles or carousels.

See Also

Property Purpose
AxisDGain Gets or sets the derivative gain (Kd) term for the
specified axis
AxisPGain Gets or sets the proportional gain (Ki) term for the
specified axis

4-70 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

AxisLinkLength
The AxisLinkLength property gets or sets the link length of the specified axis.

Syntax
RobotObject.AxisLinkLength(axis) = linkLength
linkLength = RobotObject.AxisLinkLength(axis)
This property has the following part:

Part Description
axis A long value specifying the axis
linkLength A float value specifying or indicating in the configured
linear units the link length of linear axes

Remarks
You cannot set this property for arm axes. You might need to set this property
for additional linear axes, such as tracks or shuttles. It is also useful when a
force sensor is attached to the tool flange, to allow the robot system to take the
extra length of the sensor into account without needing a different tool
transform.

ActiveRobot User Guide: CRSRobot 4-71


CRSRobot: CRSRobot Properties

AxisMaximumJerk
The AxisMaximumJerk property gets or sets the maximum jerk the motion
engine can apply to the specified axis.

Syntax
RobotObject.AxisMaximumJerk(axis) = jointJerk
jointJerk = RobotObject.AxisMaximumJerk(axis)
This property has the following part:

Part Description
axis A long value specifying the axis
jointJerk A float value specifying or indicating the maximum
joint jerk, in the following units:
3
• degrees per sec , for rotational axes
3
• configured linear units per sec , for linear axes

Remarks
Increasing maximum jerk beyond the factory-set values can accelerate wear
of the arm mechanism and void the warranty.

You would not likely need to set this property for arm axes, since they are
initially set at the factory. You might need to set this property for additional
axes, such as shuttles or carousels.
Note: This property is only valid when CROS 3.1 or higher is installed on the
controller.

4-72 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

AxisMaximumJointVelocity
The AxisMaximumJointVelocity property gets or sets the maximum joint
velocity for joint-interpolated moves.

Syntax
RobotObject.AxisMaximumJointVelocity(axis) = jointVelocity
jointVelocity = RobotObject.AxisMaximumJointVelocity(axis)
This property has the following part:

Part Description
axis A long value specifying the axis
jointVelocity A float value specifying or indicating the maximum
joint velocity, in the following units:
• degrees per sec, for rotational axes
• configured linear units per sec, for linear axes

Remarks
Increasing maximum joint velocity beyond the factory-set values can
accelerate wear of the arm mechanism and void the warranty.

You would not likely need to set this property for arm axes, since they are
initially set at the factory. You might need to set this property for additional
axes, such as shuttles or carousels.

ActiveRobot User Guide: CRSRobot 4-73


CRSRobot: CRSRobot Properties

AxisNegativeLimit
The AxisNegativeLimit property gets or sets the negative travel limit for the
specified axis.

Syntax
RobotObject.AxisNegativeLimit(axis) = nTravelLimit
nTravelLimit = RobotObject.AxisNegativeLimit(axis)
This property has the following parts:

Part Description
axis A long value specifying the axis
nTravelLimit A float value specifying or indicating the negative
travel limit, in the following units:
• degrees, for rotational axes
• configured linear units, for linear axes

Remarks
You cannot set this property for arm axes. You might need to set this property
for additional axes, such as shuttles or carousels.

4-74 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

AxisPGain
The AxisPGain property gets or sets the proportional gain (Kp) term for the
specified axis.

Syntax
RobotObject.AxisDGain(axis) = pGain
pGain = RobotObject.AxisDGain(axis)
This property has the following parts:

Part Description
axis A long value specifying the axis
pGain A float value specifying or indicating the proportional
gain

Remarks
Incorrectly adjusting the servogains of the robot system axes can cause
accelerated wear of the mechanism and unstable motion. Damage to the
robot arm and adjacent equipment can result.
You cannot set this property for arm axes, since they are fixed. You might need
to set this property for additional axes, such as shuttles or carousels.

See Also

Property Purpose
AxisIGain Gets or sets the integral gain (Ki) term for the
specified axis
AxisDGain Gets or sets the derivative gain (Kd) term for the
specified axis

ActiveRobot User Guide: CRSRobot 4-75


CRSRobot: CRSRobot Properties

AxisPosition
The AxisPosition property gets or sets the current position of the specified
axis, in motor pulses.

Syntax
RobotObject.AxisPosition(axis,positionType) = axisPosition
axisPosition = RobotObject.AxisPosition(axis,positionType)
This property has the following part:

Part Description
axis A long value specifying the axis
positionType An optional enumeration value specifying the robot
system’s position type, as follows:
• ptActual: the actual position
• ptCommanded: the position the robot system
was commanded to take
• ptEndpoint: the end position
• ptHold: the hold position
• ptError: indicates an error
axisPosition A long value specifying or indicating in motor pulses
the position of the axis

Remarks
Arbitrarily resetting the position of root axes and then moving the robot can
result in damage to the robot system and adjacent equipment.

Do not supply a value for the positionType argument when setting the
property.
You cannot set this property for arm axes, since they are fixed. You might need
to set this property for additional axes, such as shuttles or carousels.

4-76 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

AxisPositiveLimit
The AxisPositiveLimit property gets or sets the positive travel limit of the
specified axis.

Syntax
RobotObject.AxisPositiveLimit(axis) = pTravelLimit
pTravelLimit = RobotObject.AxisPositiveLimit(axis)
This property has the following part:

Part Description
axis A long value specifying the axis
pTravelLimit A float value specifying or indicating the negative
travel limit in the configured linear units

Remarks
You cannot set this property for arm axes. You might need to set this property
for additional axes, such as shuttles or carousels.

ActiveRobot User Guide: CRSRobot 4-77


CRSRobot: CRSRobot Properties

AxisPulsesPerMotorTurn
The AxisPulsesPerMotorTurn property gets or sets the number of encoder
pulses per motor turn for the specified axis.

Syntax
RobotObject.AxisNegativeLimit(axis) = pulsesPerMotor
pulsesPerMotor = RobotObject.AxisNegativeLimit(axis)
This property has the following part:

Part Description
axis A long value specifying the axis
pulsesPerMotor A long value specifying or indicating the number of
encoder pulses per motor

Remarks
You cannot set this property for arm axes, since they are fixed. You might need
to set this property for additional axes, such as shuttles or carousels.

4-78 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

AxisTurnsPerUnit
The AxisTurnsPerUnit property gets or sets the number of motor turns per
current unit for the specified axis.

Syntax
RobotObject.AxisNegativeLimit(axis) = turnsPerUnit
turnsPerUnit = RobotObject.AxisNegativeLimit(axis)
This property has the following part:

Part Description
axis A long value specifying the axis
turnsPerUnit A float value specifying or indicating the number of
motor turns per current unit

Remarks
For rotational axes, the units are always degrees. For linear axes, the units are
either inches or millimetres, as defined with the controller’s /diag/setup
program.
You cannot set this property for arm axes, since they are fixed. You might need
to set this property for additional axes, such as shuttles or carousels.

ActiveRobot User Guide: CRSRobot 4-79


CRSRobot: CRSRobot Properties

Diagnostics
You perform robot system diagnostics with the following method:

Property Purpose
ServoErrorParam Gets or sets the F3 servo error parameters for the
specified axis

4-80 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

ServoErrorParam
The ServoErrorParam property gets or sets the F3 servo error parameters for
the specified axis.

Syntax
RobotObject.ServoErrorParam(axis,parameter) = servoErrParams
servoErrParams = RobotObject.ServoErrorParam(axis,parameter)
This property has the following parts:

Part Description
axis A long value specifying the axis
parameter A long value specifying the parameter
servoErrParams A long value specifying or indicating the servo error
parameters

Remarks
Setting these parameters incorrectly can result in hazardous conditions that can
result in damage to the robot system and to adjacent equipment and personnel.

ActiveRobot User Guide: CRSRobot 4-81


CRSRobot: CRSRobot Properties

Force Control
You get and set control information for the CRS Robotics Force Sensor using
the following properties:

Property Purpose
ForceEnable Sets the operational status of the force sensor
system
ForceFrame Sets the force sensor’s coordinate system to the
specified frame of reference
ForceParam Gets or sets the specified force control parameter
ForcePassword Sets the specified force control enable password
ForceTrackingEnable Sets whether force-based tracking is enabled

4-82 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

ForceEnable
The ForceEnable property sets the operational status of the force sensor
system. When you set this property to True, the controller intializes all force
sensor parameters to their default values and sets its coordinate system to the
sensor frame of reference.

Syntax
RobotObject.ForceEnable = forceEnableState
This property has the following part:

Part Description
forceEnableState A boolean value specifying the status of the force
sensor:
• True: Force sensor enabled
• False: Force sensor disabled

Remarks
Refer to the Force Sensor User Guide for details.

ActiveRobot User Guide: CRSRobot 4-83


CRSRobot: CRSRobot Properties

ForceFrame
The ForceFrame property sets the force sensor’s coordinate system to the
specified frame of reference.

Syntax
RobotObject.ForceFrame = frameForce
This property has the following part:

Part Description
frameForce An enumeration value specifying the frame of
reference:
• ffSensor: sensor’s frame of reference
• ffWorld: world frame of reference
• ffTool: tool frame of reference

Remarks
When you set the ForceFrame property to ffSensor, both forces and torques
are resolved in the sensor frame of reference.
When you set the ForceFrame propety to ffWorld, only forces are resolved in
the world frame of reference. Torques cannot be meaningfully represented in
the world frame of reference and are resolved in the tool frame of reference
instead.
When you set the ForceFrame property to ffTool, forces and torques are
resolved about the tool tip. When using this frame of reference, it is
particularly important that you set the tool transform and the link length
offset correctly. You set the tool transform with the ToolTransform property,
and the link length offset with the AxisLinkLength property.
Refer to the Force Sensor User Guide for details about these values.

4-84 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

ForceParam
The ForceParam property gets or sets the specified force control parameter.

Syntax
RobotObject.ForceParam(parameter) = forceParameter
forceParameter = RobotObject.ForceParam(parameter)
This property has the following part:

Part Description
forceParameter A long value specifying or indicating the value of the
force control parameter
parameter An enumeration value specifying which force control
parameter to get or set, as follows:
• fpResolvedFx: sensed force resolved in the x
direction (get only)
• fpResolvedFy: sensed force resolved in the y
direction (get only)
• fpResolvedFz: sensed force resolved in the z
direction (get only)
• fpResolvedTx: sensed torque resolved in the x
direction (get only)
• fpRelsolvedTy: sensed torque resolved in the y
direction (get only)
• fpResolvedTz: sensed torque resolved in the z
direction (get only)
• fpResolvedFr: resultant sensed force (get only)
• fpResolvedTr: resultant sensed torque (get only)
• fpTrackingOffsetX: positional tracking offset in
the x direction (get only)
• fpTrackingOffsetY: positional tracking offset in
the y direction (get only)
• fpTrackingOffsetZ: positional tracking offset in
the z direction (get only)
• fpTrackingOffsetYaw: positional tracking offset
for yaw (get only)
• fpTrackingOffsetPitch: positional tracking offset
in pitch (get only)
• fpTrackingOffsetRoll: positional tracking offset
for roll (get only)
• fpMaxSensedFx: maximum sensed force resolved
in the x direction (get only)
• fpMaxSensedFy: maximum sensed force resolved
in the y direction (get only)
• fpMaxSensedFz: maximum sensed force resolved
in the z direction (get only)
• fpMaxSensedTx: maximum sensed torque
resolved in the x direction (get only)
• fpMaxSensedTy: maximum sensed torque
resolved in the y direction (get only)

ActiveRobot User Guide: CRSRobot 4-85


CRSRobot: CRSRobot Properties

Part Description
• fpMaxSensedTz: maximum sensed torque
resolved in the z direction (get only)
• fpMaxSensedFr: maximum resultant sensed
force (get only)
• fpMaxSensedTr: maximum resultant sensed
torque (get only)
• fpPGainFx: proportional gain for sensed force
resolved in the x direction
• fpPGainFy: proportional gain for sensed force
resolved in the y direction
• fpPGainFz: proportional gain for sensed force
resolved in the z direction
• fpPGainTx: proportional gain for sensed torque
resolved in the x direction
• fpPGainTy: proportional gain for sensed torque
resolved in the y direction
• fpPGainTz: proportional gain for sensed torque
resolved in the z axis
• fpDGainFx: differential gain for sensed force
resolved in the x direction
• fpDGainFy: differential gain for sensed force
resolved in the y direction
• fpDGainFz: differential gain for sensed force
resolved in the z direction
• fpDGainTx: differential gain for sensed torque
resolved in the x direction
• fpDGainTy: differential gain for sensed torque
resolved in the y direction
• fpDGainTz: differential gain for sensed torque
resolved in the z direction
• fpThresholdFx: threshold for sensed force
resolved in the x direction
• fpThresholdFy: threshold for sensed force
resolved in the x direction
• fpThresholdFz: threshold for sensed force
resolved in the x direction
• fpThresholdTx: threshold for sensed torque
resolved in the x direction
• fpThresholdTy: threshold for sensed torque
resolved in the y direction
• fpThresholdTz: threshold for sensed torque
resolved in the z direction
• fpSetpointFx: setpoint for sensed force resolved
in the x direction
• fpSetpointFy: setpoint for sensed force resolved
in the y direction
• fpSetpointFz: setpoint for sensed force resolved
in the z direction
• fpSetpointTx: setpoint for sensed torque resolved
in the x direction
• fpSetpointTy: setpoint for sensed torque resolved
in the y direction
• fpSetpointTz: setpoint for sensed torque resolved
in the z direction

4-86 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Part Description
• fpSensorDataScalingFx: units conversion factor
for sensed force resolved in the x direction
• fpSensorDataScalingFy: units conversion factor
for sensed force resolved in the y direction
• fpSensorDataScalingFz: units conversion factor
for sensed force resolved in the z direction
• fpSensorDataScalingTx: units conversion factor
for sensed torque resolved in the x direction
• fpSensorDataScalingTy: units conversion factor
for sensed torque resolved in the y direction
• fpSensorDataScalingTz: units conversion factor
for sensed torque resolved in the z direction
• fpLimitClampX: limit clamp for positional
tracking offset in the x direction
• fpLimitClampY: limit clamp for positional
tracking offset in the y direction
• fpLimitClampZ: limit clamp for positional
tracking offset in the z direction
• fpLimitClampYaw: limit clamp for positional
tracking offset of yaw
• fpLimitClampPitch: limit clamp for positional
tracking offset of pitch
• fpLimitClampRoll: limit clamp for positional
tracking offset of roll

Remarks
Although the parameters fpMaxSensedFx, fpMaxSensedFy,
fpMaxSensedFz, fpMaxSensedTx, fpMaxSensedTy, fpMaxSensedTz,
fpMaxSensedFr, and fpMaxSensedTr are listed as get only, you can set them
to zero to reset the maxima.
Refer to the Force Sensor User Guide for details about these parameters.

ActiveRobot User Guide: CRSRobot 4-87


CRSRobot: CRSRobot Properties

ForcePassword
The ForcePassword property sets the specified force control enable password.

Syntax
RobotObject.ForcePassword = password
This property has the following part:

Part Description
password A long value specifying the password

Remarks
CRS supplies the correct force password for your robot system. If your system
was puchased with a force sensor, then this value is already set.

4-88 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

ForceTrackingEnable
The ForceTrackingEnable property sets whether force-based tracking is
enabled.

Syntax
RobotObject.ForceTrackingEnable = trackingEnabledStatus
This property has the following part:

Part Description
trackingEnabledStatus A boolean value specifying the enabled status, as
follows:
• True: force-based tracking enabled
• False: force-based tracking disabled

Remarks
Refer to the Force Sensor User Guide for details about using the force sensor.

ActiveRobot User Guide: CRSRobot 4-89


CRSRobot: CRSRobot Properties

Gripper
You read and/or write the robot system’s gripper characteristics with the
following properties:

Property Purpose
GripperDistance Gets or sets the servo gripper open distance
GripperFinished Gets whether the servo gripper fingers have finished
moving
GripperType Gets or sets the gripper type: servo, pneumatic or
none

4-90 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

GripperDistance
The GripperDistance property gets or sets the servo gripper finger opening
distance.

Syntax
RobotObject.GripperDistance = distance
distance = RobotObject.GripperDistance
This property has the following part:

Part Description
distance A float value specifying in configured linear units the
gripper fingers opening distance, ranging from zero
(fingers closed) to the maximum distance the fingers
can open

Remarks
Do not use this property to grasp objects — use GripperClose and
GripperOpen instead.
You normally use this property to position the gripper fingers prior to grasping
an object.
Refer to the Servo Gripper User Guide for details.

See Also

Method Purpose
GripperClose Closes the gripper fingers
GripperStop Stops all gripper finger motion
GripperFinish Waits for the gripper fingers to finish moving
GripperCalibrate Calibrates the servo gripper by setting finger travel
distance

Property Purpose
GripperFinished Gets whether the gripper fingers have finished
moving
GripperType Gets or sets the gripper type: servo, pneumatic, or
none

ActiveRobot User Guide: CRSRobot 4-91


CRSRobot: CRSRobot Properties

GripperFinished
The GripperFinished property gets whether the gripper fingers have finished
moving.

Syntax
gripperfinishedState = RobotObject.GripperFinished
This property has the following part:

Part Description
gripperfinishedState A boolean value specifying the motion status of the
gripper fingers:
• True: Gripper finger motion finished
• False: Gripper fingers still moving

See Also

Method Purpose
GripperClose Closes the gripper fingers
GripperStop Stops all gripper finger motion
GripperFinish Waits for the gripper fingers to finish moving
GripperCalibrate Calibrates the servo gripper by setting finger travel
distance

Property Purpose
GripperDistance Gets or sets the gripper finger opening distance
GripperType Gets or sets the gripper type: servo, pneumatic, or
none

4-92 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

GripperType
The GripperType property gets or sets the gripper type: servo, pneumatic, or
none.

Syntax
RobotObject.GripperType = toolType
toolType = RobotObject.GripperType
This property has the following part:

Part Description
toolType An enumeration value specifying the type of gripper
attached to the arm:
• gtServo: servo
• gtAir: pneumatic
• gtNone: none

Remarks
You set this property to gtAir for any pneumatic end effector, not just the ones
available from CRS Robotics.
You set this property to gtServo only when using the CRS Robotics servo
gripper.
For other types of end effectors, set this property to gtNone.

See Also

Method Purpose
GripperClose Closes the gripper fingers
GripperStop Stops all gripper finger motion
GripperFinish Waits for the gripper fingers to finish moving
GripperCalibrate Calibrates the gripper by setting finger travel distance

Property Purpose
GripperFinished Gets whether the gripper fingers have finished
moving
GripperDistance Gets or sets the gripper fingers opening distance

ActiveRobot User Guide: CRSRobot 4-93


CRSRobot: CRSRobot Properties

Input/Output
You perform robot system input and output using the following properties:

Property Purpose
AnalogInput Gets a sample from the specified analog input
FNetworkInputs Gets the state of the specified FNetwork input
channels
FNetworkInput Gets the state of the specified FNetwork input channel
FNetworkOutput Sets or gets the state of the specified FNetwork output
channel
FNetworkOutputs Gets or sets the states of the specified FNetwork
output channels
Input Gets the state of the specified GPIO input
Inputs Gets the states of all the GPIO inputs
Output Gets or sets the state of the specified GPIO output
Outputs Gets or sets the states of all the GPIO outputs
PanelButton Gets the state of the specified panel button
PanelButtons Gets the states of all the panel buttons
PanelLight Gets or sets the state of the specified panel button
light

4-94 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

AnalogInput
The AnalogInput property gets a sample from the specified analog input.

Syntax
analogSample = RobotObject.AnalogInput(inputChannel)
This property has the following parts:

Part Description
inputChannel An enumeration value specifying the analog input
channel, as follows:
• anaUser1: user analog input 1
analogSample A float value indicating the value of the sample

Remarks
You can use the analog input on the back of the robot controller to obtain 8-
bit samples of voltages between zero and +5 V.

See Also

Property Purpose
Input Gets the state of the specified GPIO input
Inputs Gets the states of all the GPIO inputs
Output Gets or sets the state of the specified GPIO output
Outputs Gets or sets the states of all the GPIO outputs

ActiveRobot User Guide: CRSRobot 4-95


CRSRobot: CRSRobot Properties

FNetworkInputs
The FNetworkInputs property gets the state of the specified FNetwork input
channels.

Syntax
fnetworkInputStates = RobotObject.FNetworkInputs(inputsMask)
This property has the following parts:

Part Description
inputsMask A long value specifying a mask that selects the input
channels
fnetworkInputStates A long value indicating the states of the selected input
channels

Remarks
The FNetwork interconnects devices on the arm and the controller. It is
typically used to communicate with the end-of-arm input/output interface.
Setting a bit in the inputsMask argument selects the input channel
corresponding to the bit’s position in the mask. To select input channel one,
for example, you set bit one; to select input channel 32, you set bit 32.
You evaluate the value you get from the FNetworkInputs property in a
similar way: if a bit in the value is set (1), it means that the input channel
corresponding to the bit’s position is ON; if a bit is clear (0), it means that the
input channel corresponding to the bit’s position is OFF.
The end-of-arm I/O connector has pins 4, 5, 6 and 7 reserved for user input.
These correspond to input channels 1, 2, 3 and 4 respectively.

See Also

Property Purpose
FNetworkInput Gets the state of the specified FNetwork input channel
FNetworkOutput Sets or gets the state of the specified FNetwork output
channel
FNetworkOutputs Gets or sets the states of the specified FNetwork
output channels

4-96 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

FNetworkInput
The FNetworkInput state gets the state of the specified FNetwork input
channel.

Syntax
fnetworkInputState = RobotObject.FNetworkInput(fnInput)
This property has the following parts:

Part Description
fnInput A long value specifying the input channel
fnetworkInputState A boolean value indicating the state of the input
channel

Remarks
The FNetwork interconnects devices in the arm and the controller. It is
typically used to communicate with the end-of-arm input/output interface.
The end-of-arm I/O connector has pins 4, 5, 6 and 7 reserved for user input.
These correspond to input channels 1, 2, 3 and 4 respectively.

See Also

Property Purpose
FNetworkInputs Gets the state of the specified FNetwork input
channels
FNetworkOutput Sets or gets the state of the specified FNetwork output
channel
FNetworkOutputs Gets or sets the states of the specified FNetwork
output channels

ActiveRobot User Guide: CRSRobot 4-97


CRSRobot: CRSRobot Properties

FNetworkOutput
The FNetworkOutput property sets or gets the state of the specified FNetwork
output channel.

Syntax
fnetworkOutputState = RobotObject.FNetworkOutput(fnOutput)
This property has the following parts:

Part Description
fnOutput A long value specifying the output channel
fnetworkOutputState A boolean value indicating or specifying the state of
the output channel

Remarks
The FNetwork interconnects devices on the arm and the controller. It is
typically used to communicate with the end-of-arm input/output interface.
The end-of-arm I/O connector has pins 8, 9, 10 and 11 reserved for user
output. These correspond to output channels 1, 2, 3 and 4 respectively.
Note: You cannot use output channels 1 and 2 if you have a pneumatic
gripper attached to the arm.

See Also

Property Purpose
FNetworkInputs Gets the state of the specified FNetwork input
channels
FNetworkInput Gets the state of the specified FNetwork input channel
FNetworkOutputs Gets or sets the states of the specified FNetwork
output channels

4-98 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

FNetworkOutputs
The FNetworkOutputs property gets or sets the states of the specified
FNetwork output channels.

Syntax
fnetworkOutputStates = RobotObject.FNetworkOutputs(outputsMask)
This property has the following parts:

Part Description
outputsMask A long value specifying a mask that selects the output
channels
fnetworkoutputStates A long value indicating the states of the selected
output channels

Remarks
The FNetwork interconnects devices on the arm and the controller. It is
typically used to communicate with the end-of-arm input/output interface.
Setting a bit in the outputsMask argument selects the output channel
corresponding to the bit’s position in the mask. To select output channel
one, for example, you set bit one; to select output channel 32, you set bit 32.
You evaluate the value you get from the FNetworkOutputs property in a
similar way: if a bit in the value is set (1), it means that the output channel
corresponding to the bit’s position is ON; if a bit is clear (0), it means that the
output channel corresponding to the bit’s position is OFF.
The end-of-arm I/O connector has pins 8, 9, 10 and 11 reserved for user
output. These correspond to output channels 1, 2, 3 and 4 respectively.
Note: You cannot use output channels 1 and 2 if you have a pneumatic
gripper attached to the arm.

See Also

Property Purpose
FNetworkInputs Gets the state of the specified FNetwork input
channels
FNetworkInput Gets the state of the specified FNetwork input channel
FNetworkOutputs Gets or sets the states of the specified FNetwork
output channels

ActiveRobot User Guide: CRSRobot 4-99


CRSRobot: CRSRobot Properties

Input
The Input property gets the state of the specified general purpose
input/output (GPIO) input.

Syntax
inputNState = RobotObject.Input(point)
This property has the following parts:

Part Description
point A long value specifying the input to get the state of
inputNState A boolean value indicating the state of the input:
• True: input ON
• False: input OFF

Remarks
Refer to the GPIO pinout diagram in your robot system user guide to
determine which value to specify for point.

See Also

Property Purpose
AnalogInput Gets a sample from the specified analog input
Inputs Gets the states of all GPIO inputs
Output Sets the state of the specified GPIO output
Outputs Sets the states of all the GPIO outputs

4-100 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Inputs
The Inputs property gets the states of all GPIO inputs at once.

Syntax
inputStates = RobotObject.Inputs
This property has the following part:

Part Description
inputStates A long value indicating the states of all the inputs

Remarks
The lower 16 bits of the value returned by the Inputs property each
correspond to one of the 16
th
GPIO inputs: the least signficant bit indicates the
state of input one, the 16 most significant bit indicates the state of input 16.
A value of one for each bit means the input is ON; a value of zero means the
input is OFF.
Refer to the GPIO pinout diagram in your robot system user guide to
determine which input corresponds to which pin on the GPIO connector.

See Also

Property Purpose
AnalogInput Gets a sample from the specified analog input
Input Gets the state of the specified GPIO input
Output Gets or sets the state of the specified GPIO output
Outputs Gets or sets the states of all the GPIO outputs

ActiveRobot User Guide: CRSRobot 4-101


CRSRobot: CRSRobot Properties

Output
The Output property gets or sets the specified GPIO output, optionally
bypassing the online motion queue.

Syntax

RobotObject.Output(point[,queueBypass]) = outputNState

outputNState = RobotObject.Output(point[,queueBypass])

This property has the following parts:

Part Description
point A long value specifying the output to get or set the
state of
queueBypass An optional boolean value specifying whether the
property get/set should bypass the online motion
queue:
• True: bypass queue
• False: place in queue (default)
outputNState A boolean value indicating or specifying the state of
the output:
• True: output ON
• False: output OFF

Remarks

You set the Output property when you want to turn a GPIO output ON or OFF.
You get the Output property when you want to know the current state of a
GPIO output.

The optional queueBypass value controls synchronization of the get/set of the


Output property to arm motion: by default, it is synchronized.

Note: This CRSRobot object must have point of control to use queued
outputs; outputs that bypass the queue do not require point of control
to use.

Refer to the GPIO pinout diagram in your robot system user guide to
determine which output corresponds to which pin on the GPIO connector.

See Also

Property Purpose
AnalogInput Gets a sample from the specified analog input
Input Gets the state of the specified GPIO input
Inputs Gets the states of all the GPIO inputs
Outputs Gets or sets the states of all the GPIO outputs

4-102 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Outputs
The Output property gets or sets the states of all the GPIO outputs at once,
optionally bypassing the online motion queue.

Syntax
RobotObject.Outputs([queueBypass]) = outputStates
outputStates = RobotObject.Outputs([queueBypass])
This property has the following part:

Part Description
outputStates A long value indicating or specifying the states of all
the outputs

Remarks
The lower 16 bits of the value in outputStates each correspond to one of the 16th
GPIO inputs: the least signficant bit indicates the state of input one, the 16
most significant bit indicates the state of input 16. A value of one for each bit
means the output is ON; a value of zero means the output is OFF.
Note: This CRSRobot object must have point of control to use queued
outputs; outputs that bypass the queue do not require point of control
to use.

Refer to the GPIO pinout diagram in your robot system user guide to
determine which output corresponds to which pin on the GPIO connector.

See Also

Property Purpose
AnalogInput Gets a sample from the specified analog input
Input Gets the state of the specified GPIO input
Inputs Gets the states of all the GPIO inputs
Output Gets or sets the state of the specified GPIO output

ActiveRobot User Guide: CRSRobot 4-103


CRSRobot: CRSRobot Properties

PanelButton
The PanelButton property gets the state of the specified panel button.

Syntax
buttonNState = RobotObject.PanelButton(button)
This property has the following parts:

Part Description
button An enumeration value specifying the panel button to
get the state of:
• cbF1: Function 1 button
• cbF2: Function 2 button
• cbPauseCont: Pause/Continue button
• cbHome: Home button
buttonNState A boolean value indicating the state of the panel
button:
• True: button ON
• False: button OFF

Remarks
The controller latches a button press so that PanelButton can read it after it
has been pressed. However, each time you use the PanelButton property, it
clears the latches after reading them. If you want your program to wait for a
specific button press, you should clear any previous latches with this property
first.

See Also

Property Purpose
PanelButtons Gets the states of all panel buttons
PanelLight Gets or sets the state of the specified panel button
light

4-104 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

PanelButtons
The PanelButtons property gets the states of all of the panel buttons at once,
enabling you to detect if more than one button is being pressed
simultaneously.

Syntax
buttonStates = RobotObject.PanelButtons
This property has the following part:

Part Description
buttonStates A long value indicating the states of the panel buttons.
Use the following enumeration values as masks to
determine the state of each button:
• cbF1: Function 1 button
• cbF2: Function 2 button
• cbPauseCont: Pause/Continue button
• cbHome: Home button

Remarks
The controller latches button presses so that PanelButtons can read them
after they have been pressed. However, each time you use the PanelButtons
property, it clears the latches after reading them. If you want your program to
wait for specific button presses, you should clear any previous latches with
this property first.

See Also

Property Purpose
PanelButton Gets the state of the specified panel buttons
PanelLight Gets or sets the state of the specified panel button
light

ActiveRobot User Guide: CRSRobot 4-105


CRSRobot: CRSRobot Properties

PanelLight
The PanelLight property gets or sets the state of the specified panel button
light.

Syntax
RobotObject.PanelLight(buttonlight) = buttonlightNState
buttonlightNState = RobotObject.PanelLight(buttonlight)
This property has the following parts:

Part Description
buttonlight An enumeration value specifying the panel button
light:
• cbF1: F1 button light
• cbF2: F2 button light
• cbPauseCont: Pause/Continue button light
• cbHome: Home button light (get only)
buttonlightNState A boolean value indicating the state of the panel
button light:
• True: button light ON
• False: button light OFF

Remarks
You can only get the Home button light; you cannot set it.

See Also

Property Purpose
PanelButtons Gets the states of all panel buttons
PanelLight Gets or sets the state of the specified panel button
light

4-106 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Robot Configuration
You get or set robot system configuration with the following properties:

Property Purpose
BaseOffset Gets or sets the robot system’s base offset
LinearAcceleration Gets or sets the linear acceleration for straight-line
moves performed using motion blending
LinearJerk Gets or sets the allowable rate of change of
acceleration (jerk)
LinearSpeed Gets or sets the linear speed for straight-line moves
performed using motion blending
RotationalAcceleration Gets or sets the maximum rotational acceleration
for straight-line moves performed using motion
blending
RotationalSpeed Gets or sets the maximum rotational speed for
straight-line moves performed using motion
blending
Speed Gets or sets the speed of the arm
Stance Gets or sets the arm stance
ToolTransform Gets or sets the tool frame of reference
transformation
TotalAxes Gets or sets the total number of axes on the robot
system
TrackEnable Gets or sets the enabled status of the track
Units Gets or sets the configured units for linear axes

ActiveRobot User Guide: CRSRobot 4-107


CRSRobot: CRSRobot Properties

BaseOffset
The BaseOffset property gets or sets the base offset, a world CRSLocation
object that translates the default origin and orientation of the robot system’s
world coordinate system.

Syntax
Set RobotObject.BaseOffset = bOffset
Set bOffset = RobotObject.BaseOffset
This property has the following part:

Part Description
bOffset A CRSLocation object indicating or specifying the
offset

See Also

Property Purpose
ShiftWorld Shifts the specified location in the world frame of
reference by the specified amount
ToolTransform Gets or sets the tool frame of reference
transformation

4-108 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

LinearAcceleration
The LinearAcceleration property gets or sets the linear acceleration for
straight-line moves performed using motion blending.

Syntax
RobotObject.LinearAcceleration = lAcceleration
lAcceleration = RobotObject.LinearAcceleration
This property has the following part:

Part Description
lAcceleration A float value indicating or specifying the acceleration
2
in the configured linear units per sec

See Also

Property Purpose
LinearSpeed Gets or sets the linear speed for straight-line moves
performed using motion blending
LinearJerk Gets or sets the allowable rate of change of
acceleration for arm straight-line motion and the
motion of attached linear axes
RotationalAcceleration Gets or sets the maximum rotational acceleration
for straight-line moves performed using motion
blending
RotationalSpeed Gets or sets the maximum rotational speed for
straight-line moves performed using motion
blending

ActiveRobot User Guide: CRSRobot 4-109


CRSRobot: CRSRobot Properties

LinearJerk
The LinearJerk property gets or sets the allowable rate of change of
acceleration (jerk) for arm straight-line motion and the motion of attached
linear axes (such as the track). It does not affect joint-interpolated motion.

Syntax
RobotObject.LinearJerk = lJerk
lJerk = RobotObject.LinearJerk
This property has the following part:

Part Description
lJerk A float value indicating or specifying the jerk in the
3
configured linear units per sec

See Also

Property Purpose
LinearSpeed Gets or sets the linear speed for straight-line moves
performed using motion blending
RotationalAcceleration Gets or sets the maximum rotational acceleration
for straight-line moves performed using motion
blending
RotationalSpeed Gets or sets the maximum rotational speed for
straight-line moves performed using motion
blending

Note: This property is only valid when CROS 3.1 or higher is installed on the
controller.

4-110 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

LinearSpeed
The LinearSpeed property gets or sets the linear speed for straight-line moves
performed using motion blending.

Syntax
RobotObject.LinearSpeed = lSpeed
lSpeed = RobotObject.LinearSpeed
This property has the following part:

Part Description
lSpeed A float value indicating or specifying the speed in the
configured linear units per sec

See Also

Property Purpose
LinearAcceleration Gets or sets the linear acceleration for straight-line
moves performed using motion blending
RotationalAcceleration Gets or sets the maximum rotational acceleration
for straight-line moves performed using motion
blending
LinearJerk Gets or sets the allowable rate of change of
acceleration for arm straight-line motion and the
motion of attached linear axes
RotationalSpeed Gets or sets the maximum rotational speed for
straight-line moves performed using motion
blending

ActiveRobot User Guide: CRSRobot 4-111


CRSRobot: CRSRobot Properties

RotationalAcceleration
The RotationalAcceleration property gets or sets the maximum rotational
acceleration for straight-line moves performed using motion blending.

Syntax
RobotObject.RotationalAcceleration = rAcceleration
rAcceleration = RobotObject.RotationalAcceleration
This property has the following part:

Part Description
rAcceleration A float value indicating or specifying the acceleration
2
in degrees per sec

See Also

Property Purpose
LinearAcceleration Gets or sets the linear acceleration for straight-line
moves performed using motion blending
LinearSpeed Gets or sets the linear speed for straight-line moves
performed using motion blending
LinearJerk Gets or sets the allowable rate of change of
acceleration for arm straight-line motion and the
motion of attached linear axes
RotationalSpeed Gets or sets the maximum rotational speed for
straight-line moves performed using motion
blending

4-112 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

RotationalSpeed
The RotationalSpeed property gets or sets the maximum rotational speed for
straight-line moves performed using motion blending.

Syntax
RobotObject.RotationalSpeed = rSpeed
rSpeed = RobotObject.RotationalSpeed
This property has the following part:

Part Description
rSpeed A float value indicating or specifying the speed in
degrees per sec

See Also

Property Purpose
LinearAcceleration Gets or sets the linear acceleration for straight-line
moves performed using motion blending
LinearSpeed Gets or sets the linear speed for straight-line moves
performed using motion blending
LinearJerk Gets or sets the allowable rate of change of
acceleration for arm straight-line motion and the
motion of attached linear axes
RotationalAcceleration Gets or sets the maximum rotational acceleration
for straight-line moves performed using motion
blending

ActiveRobot User Guide: CRSRobot 4-113


CRSRobot: CRSRobot Properties

Speed
The Speed property gets or sets the speed of the arm.

Syntax
RobotObject.Speed = armSpeed
armSpeed = RobotObject.Speed
This property has the following part:

Part Description
armSpeed A long value specifying or indicating the percentage of
full arm speed, i.e. between 1 and 100

4-114 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Stance
The Stance property gets or sets the robot stance.

Syntax
RobotObject.Stance = armStance
armStance = RobotObject.Stance[(physical)]
This property has the following parts:

Part Description
armStance A three-character string value specifying or indicating the
arm stance, as follows:
• first character (reach): f (front), b (back), or x (free)
• second character (elbow): u (up), d (down), or x (free)
• third character (wrist): f (flip), n (no-flip), or x (free)
physical An optional boolean value specifying the arm stance:
• True: requested stance (default)
• False: physical stance

Remarks
Note that you can only set the requested stance.

ActiveRobot User Guide: CRSRobot 4-115


CRSRobot: CRSRobot Properties

ToolTransform
The ToolTransform property gets or sets the tool frame of reference
transformation.

Syntax
Set RobotObject.ToolTransform = transform
Set transform = RobotObject.ToolTransform
This property has the following part:

Part Description
transform A CRSLocation object indicating or specifying the
transformation

Remarks
The x, y, and z properties of the transform object indicate or specify the
coordinates of the tool origin translation. The zrot, yrot, and xrot properties of
the transform object indicate or specify the coordinates of the tool axes
rotations.

See Also

Method Purpose
BaseOffset Gets or sets the arm’s base offset

4-116 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

TotalAxes
The TotalAxes property gets or sets the total number of axes on the robot
system.

Syntax
RobotObject.TotalAxes = tAxes
tAxes = RobotObject.TotalAxes
This property has the following part:

Part Description
tAxes A long value specifying or indicating the number of
axes in the robot system

Remarks
You typically use this property only when adding an extra axis.

See Also

Property Purpose
MachineAxes Gets the number of axes in the robot arm only
TransformAxes Gets the number of robot arm and track axes

ActiveRobot User Guide: CRSRobot 4-117


CRSRobot: CRSRobot Properties

TrackEnable
The TrackEnable property sets or gets the enabled status of the track.

Syntax
RobotObject.TrackEnable = trackEnableStatus
trackEnableStatus = RobotObject.TrackEnable
This property has the following parts:

Part Description
trackEnableStatus An enumeration value specifying or indicating the
enabled status of the track, as follows:
• tfNoTrack: track not present
• tfHaveTrack: track present and enabled

4-118 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Units
The Units property gets or sets the robot system units for linear distances:
either millimetres or inches.

Syntax
RobotObject.Units = unitsType
unitsType = RobotObject.Units
This property has the following part:

Part Description
unitsType An enumeration value indicating or specifying the
unit type:
• utMetric: millimetres (default for F3 arm)
• utEnglish: inches (default for all other arms)

Remarks
You cannot use a CRSLocation object with world coordinate properties
specified in millimetres when you have set the Units property to inches, and
vice versa.

ActiveRobot User Guide: CRSRobot 4-119


CRSRobot: CRSRobot Properties

Robot Information
You get general robot system information from the following properties:

Property Purpose
HomingSwitchOffset Gets the offset of the homing switch from the
calibration position of the specified axis
MachineAxes Gets the number of axes in the robot arm only
ProductType Gets the robot arm’s product type code
RobotType Gets the robot type code
ServerProtocol Gets the server protocol version
ServerVersion Gets the server version
TransformAxes Gets the number of robot arm and track axes
VersionString A string value indicating the version of the motion
control engine software

4-120 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

HomingSwitchOffset
The HomingSwitchOffset property gets the offset of the homing switch from
the calibration position of the specified axis.

Syntax
hsOffset = RobotObject.HomingSwitchOffset
This property has the following part:

Part Description
hsOffset A long value indicating in encoder pulses the offset

See Also

Method Purpose
Calibrate Calibrates the specified axis
CalibrateZeroCross Calibrates the specified axis at the next zero pulse of
the axis’s encoder
Home Homes the specified axis or axes
HomeZeroCross Homes the specified axis by seeking the zero cross
position
Zero Sets all the current motor position registers to zero

ActiveRobot User Guide: CRSRobot 4-121


CRSRobot: CRSRobot Properties

MachineAxes
The MachineAxes property gets the number of axes in the robot arm only.

Syntax
armAxes = RobotObject.MachineAxes
This property has the following part:

Part Description
armAxes A long value indicating the number of axes

See Also

Property Purpose
TotalAxes Gets or sets the total number of axes on the robot
system
TransformAxes Gets the number of robot arm and track axes

4-122 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

ProductType
The ProductType gets the robot arm’s product type code.

Syntax
pType = RobotObject.ProductType
This property has the following part:

Part Description
pType An enumeration value indicating the product type, as
follows:
• proM4Series: A465 or T475
• proFSeries: F3 or F3t
• proM1ASeries: A255, T265, CataLyst-3,
CataLyst-5, or CataLyst-T

See Also

Property Purpose
RobotType Gets the robot type code

ActiveRobot User Guide: CRSRobot 4-123


CRSRobot: CRSRobot Properties

RobotType
The RobotType property gets the robot type code.

Syntax
rType = RobotObject.RobotType
This property has the following part:

Part Description
rType An enumeration value indicating the robot type, as
follows:
• robM4: A465 or T475
• robF3: F3 or F3t
• robM1A: A255 or T265
• robCAT3: CataLyst-3
• robCAT4: CataLyst-4
• robCAT5: CataLyst-5 or CataLyst-T

See Also

Property Purpose
ProductType Gets the robot arm’s product type code

4-124 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

ServerProtocol
The ServerProtocol property gets the server protocol version.

Syntax
sProtocol = RobotObject.ServerProtocol
This property has the following part:

Part Description
sProtocol A long value indicating the server protocol version

Remarks
The upper 16 bits of the return value is the major version code; the lower 16
bits is the minor version code.

See Also

Property Purpose
ServerVersion Gets the server version

ActiveRobot User Guide: CRSRobot 4-125


CRSRobot: CRSRobot Properties

ServerVersion
The ServerVersion property gets the server version.

Syntax
sVersion = RobotObject.ServerVersion
This property has the following part:

Part Description
sVersion A long value indicating the server version

Remarks
The upper 16 bits of the return value is the major version code; the lower 16
bits is the minor version code.

See Also

Property Purpose
ServerProtocol Gets the server protocol version

4-126 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

TransformAxes
The TransformAxes property gets the number of robot arm and track axes.

Syntax
tAxes = RobotObject.TransformAxes
This property has the following part:

Part Description
tAxes A long value indicating the number of axes

Remarks
If the robot system has no track, then the value of the TransformAxes property
is equal to that of the MachineAxes property; if there is a track, the value of
the TransformAxes property is one higher than the MachineAxes property.

See Also

Property Purpose
MachineAxes Gets the number of axes in the robot arm only
TransformAxes Gets the number of robot arm and track axes

ActiveRobot User Guide: CRSRobot 4-127


CRSRobot: CRSRobot Properties

VersionString
The VersionString property gets the motion control engine software version
string.

Syntax
mceVersion = RobotObject.VersionString
This property has the following part:

Part Description
mceVersion A string value indicating the version of the motion
control engine software

4-128 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Robot Mode Control


You get or set robot system operational modes using the following properties:

Property Purpose
AllowArmPower Sets the enabled status of the arm power switch
BlendMotion Gets or sets the motion blending mode
TrapezoidalProfileEnable Sets the enabled status of trapezoidal motion
profiles
TriggerEnable Sets whether triggers are enabled or disabled

ActiveRobot User Guide: CRSRobot 4-129


CRSRobot: CRSRobot Properties

AllowArmPower
The AllowArmPower property sets the enabled status of the arm power switch.

Syntax
RobotObject.AllowArmPower = armpowerstatus
This property has the following parts:

Part Description
armpowerstatus A boolean value specifying the enabled status of the
arm power switch:
• True: enabled
• False: disabled (no power to arm)

Remarks
When you set the AllowArmPower property to False, you cut arm power. When
you set it to True, you enable the operator to use the switch to control arm
power.

4-130 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

BlendMotion
The BlendMotion property gets or sets the motion blending mode.

Syntax
RobotObject.BlendMotion = motionBlendmode
motionBlendmode = RobotObject.BlendMotion
This property has the following part:

Part Description
motionBlendmode A boolean value indicating or specifying the motion
blend mode:
• True: motion blending enabled
• False: motion blending disabled

Remarks
In BlendMotion mode (known as online mode in RAPL-3), the motion engine
enqueues as many as eight motions.
The BlendMotion property must be set to True before using any straight-line
motion methods, such as MoveStraight or JogWorldStraight.

See Also

Property Purpose
LinearAcceleration Gets or sets the linear acceleration for straight-line
moves performed using motion blending
LinearSpeed Gets or sets the linear speed for straight-line moves
performed using motion blending
LinearJerk Gets or sets the allowable rate of change of
acceleration for arm straight-line motion and the
motion of attached linear axes
RotationalAcceleration Gets or sets the maximum rotational acceleration
for straight-line moves performed using motion
blending
RotationalSpeed Gets or sets the maximum rotational speed for
straight-line moves performed using motion
blending

ActiveRobot User Guide: CRSRobot 4-131


CRSRobot: CRSRobot Properties

TrapezoidalProfileEnable
The TrapezoidalProfileEnable property sets the enabled status of trapezoidal
motion profiles.

Syntax
RobotObject.TrapezoidalProfileEnable = trapProfileStatus
This property has the following part:

Part Description
trapProfileStatus A boolean value specifying the enabled status of
trapezoidal motion profiles, as follows:
• True: enabled
• False: disabled

Remarks
Trapezoidal motion profiles permit the arm to move more quickly, but at a cost
of reduced positional accuracy. You typically enable them when performing
motions with long trajectories, such as track motions.

4-132 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

TriggerEnable
The TriggerEnable property sets whether triggers are enabled or disabled.

Syntax
RobotObject.Units = triggersStatus
This property has the following part:

Part Description
triggersStatus A boolean value specifying the triggers status:
• True: enabled
• False: disabled

Remarks
You typically use the TriggerEnable property to disable triggers while fine-
tuning a continous path application and enabling them once the fine-tuning
is complete.

See Also

Method Purpose
CTPath Creates and initializes a CRSPath object
CTPathGo Runs the specified path

ActiveRobot User Guide: CRSRobot 4-133


CRSRobot: CRSRobot Properties

Blended Motion Control


If you have CROS v3.1 or higher installed on the controller, you can control
blended motion using the following properties:

Property Purpose
LinearBlendRadius Gets or sets the radius for blending segments of
straight-line motion
MaxAgeInQueue Gets or sets the maximum time the first motion
command waits in the motion queue before the
motion engine starts planning how to blend it
PointDeletion Gets or sets whether the motion engine is
permitted to delete locations when moving the
arm in blended motion among a series of
locations
RotationalBlendRadius Gets or sets the radius for blending between arcs
of joint-interpolated motion

Note: These properties are valid only for CROS 3.1 and higher, and when
blended motion is enabled (see the property “BlendMotion” on page 4-
131).

4-134 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

LinearBlendRadius
The LinearBlendRadius property gets or sets the radius for blending segments
of straight-line motion.

Syntax
RobotObject.LinearBlendRadius = lBlendRadius
lBlendRadius = RobotObject.LinearBlendRadius
This property has the following parts:

Part Description
lBlendradius A float value specifying the radius in the configured
linear units (default is 2 in. (50.8 mm))

Remarks
When moving from one location to a second location in blended motion mode,
the path the robot’s tool center point (TCP) follows will remain straight until it
lies within the specified radius of the second location. As the TCP moves to a
third location, the path will become straight again by the specified distance
from the second location.
Note: This property is only valid when CROS 3.1 or higher is installed on the
controller.

See Also

Property Purpose
MaxAgeInQueue Gets or sets the maximum time the first motion
command waits in the motion queue before the
motion engine starts planning how to blend it
PointDeletion Gets or sets whether the motion engine is
permitted to delete locations when moving the
arm in blended motion among a series of
locations
RotationalBlendRadius Gets or sets the radius for blending between arcs
of joint-interpolated motion

ActiveRobot User Guide: CRSRobot 4-135


CRSRobot: CRSRobot Properties

MaxAgeInQueue
The MaxAgeInQueue property gets or sets the maximum time the first motion
command waits in the motion queue before the motion engine starts planning
how to blend it with the other motion commands in the queue.

Syntax
RobotObject.MaxAgeInQueue = maxQtime
maxQtime = RobotObject.MaxAgeInQueue
This property has the following part:

Part Description
maxQtime A long value indicating or specifying the maximum
time in msec (default is 50 msec)

Remarks
For the motion engine to plan efficient blended motions, several motion
commands must be in the motion queue. The motion engine only begins
planning motions when it receives a Finish command or when it detects that
the first motion command has been in the motion queue longer than the
period defined in the MaxAgeInQueue property. Increasing this period may
give smoother, better blended motions. Setting it to 1 msec will result in very
choppy stop-to-stop motions. Applications that require extensive use of
blended motion (such as dispensing applications or those requiring smooth
handling of delicate payloads) may benefit by significantly increasing the
default value of 50 msec for this property.
Note: This property is only valid when CROS 3.1 or higher is installed on the
controller.

See Also

Property Purpose
LinearBlendRadius Gets or sets the radius for blending segments of
straight-line motion
PointDeletion Gets or sets whether the motion engine is
permitted to delete locations when moving the
arm in blended motion among a series of
locations
RotationalBlendRadius Gets or sets the radius for blending between arcs
of joint-interpolated motion

4-136 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

PointDeletion
The PointDeletion property gets or sets whether the motion engine is
permitted to skip some locations when moving the arm in blended motion
among a series of locations.

Syntax
pDeletion = RobotObject.PointDeletion
RobotObject.PointDeletion = pDeletion
This property has the following part:

Part Description
pDeletion A boolean value specifying or indicating the status of
point deletion:
• True: permitted
• False: not permitted (default)

Remarks
Some adjacent locations in a blended motion path might be so close together
as to fall within each other’s blend radius. Forcing the motion engine to
include all of these adjacent locations in the path it plans might result in the
robot slowing down as it moves through these locations. Setting the
PointDeletion property to True permits the motion engine to skip a location
that lies within an adjacent location’s blend radius, speeding the motion of the
robot along the path.
Note: This property is only valid when CROS 3.1 or higher is installed on the
controller.

See Also

Property Purpose
LinearBlendRadius Gets or sets the radius for blending segments of
straight-line motion
MaxAgeInQueue Gets or sets the maximum time the first motion
command waits in the motion queue before the
motion engine starts planning how to blend it
RotationalBlendRadius Gets or sets the radius for blending between arcs
of joint-interpolated motion

ActiveRobot User Guide: CRSRobot 4-137


CRSRobot: CRSRobot Properties

RotationalBlendRadius
The RotationalBlendRadius property gets or sets the radius for blending
between arcs of joint-interpolated motion.

Syntax
RobotObject.RotationalBlendRadius = rBlendRadius
rBlendRadius = RobotObject.RotationalBlendRadius
This property has the following parts:

Part Description
rBlendradius A float value specifying the radius in degrees (default
is 20 degrees)

Remarks
When moving from one location to a second location using joint-interpolated
motion, the motion engine will rotate each joint of the arm to within the
specified radius of the second location’s joint positions before blending the
joint rotations to move to a third location.
Note: This property is only valid when CROS 3.1 or higher is installed on the
controller.

See Also

Property Purpose
LinearBlendRadius Gets or sets the radius for blending segments of
straight-line motion
MaxAgeInQueue Gets or sets the maximum time the first motion
command waits in the motion queue before the
motion engine starts planning how to blend it
PointDeletion Gets or sets whether the motion engine is
permitted to delete locations when moving the
arm in blended motion among a series of
locations

4-138 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Robot Selection
You set which physical robot system you are controlling with the following
property:

Property Purpose
RobotInUse Gets or sets the robot system currently being
communicated with

ActiveRobot User Guide: CRSRobot 4-139


CRSRobot: CRSRobot Properties

RobotInUse
The RobotInUse property gets or sets the robot system currently being
communicated with.

Syntax
RobotObject.RobotInUse = currentRobot
currentRobot = RobotObject.RobotInUse
This property has the following part:

Part Description
currentRobot A long value indicating or specifying the ID of the
robot system (a value from 0 to 7)

Remarks
The value of the RobotInUse property corresponds to the IDs defined in the
ActiveRobot Configuration program. If you do not set RobotInUse, it will have
a value of the ID of the default robot system.

4-140 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Robot Status
You get or set the current status of the robot system with the following
methods:

Property Purpose
AsynchError Gets the latest asynchronous error code from the
controller
BoardTemperature Gets the temperature of the robot controller’s main
board
Finished Gets whether the arm has finished moving
Homed Gets whether the robot system is homed
IsPowered Gets whether the arm is powered
MotorLocation Gets the current arm location as a motor location
Odometer Gets the total number of seconds that robot arm
power has been on
ProcessID Gets the ID associated with this CRSRobot object
WorldLocation Gets the current arm location as a world location

ActiveRobot User Guide: CRSRobot 4-141


CRSRobot: CRSRobot Properties

AsynchError
The AsynchError property gets the latest asynchronous error code from the
controller.

Syntax
asychErr = RobotObject.AsynchError
This property has the following part:

Part Description
asynchErr An enumeration value indicating the error code, as
follows:
• ecNoError
• ecGeneric
• ecNoSuchFile
• ecNoSuchProcess
• ecInterrupted
• ecIOError
• ecNoDevice
• ecTooBig
• ecNotExecutable
• ecBadFileDescriptor
• ecNoChildren
• ecPermissionDenied
• ecOutOfMemory
• ecAccessDenied
• ecBusy
• ecFileExists
• ecOpNotSupportedByDevice
• ecNotADirectory
• ecIsADirectory
• ecInvalidArgument
• ecTooManyFilesS
• ecTooManyFilesP
• ecIOCTLNotSupported
• ecFileBusy

4-142 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Part Description
• ecDeviceFull
• ecIllegalOnFifoOrSocket
• ecOutOfRange
• ecTemporarilyUnavailable
• ecTimedOut
• ecNotASocket
• ecNoServer
• ecNoClient
• ecDeviceIsBeingReset
• ecDirectoryNotEmpty
• ecOperationNotSupported
• ecIllegalSLMove
• ecIllegalOperand
• ecForceLockedOut
• ecJointLimitExceeded
• ecOutOfReach
• ecAxisIsLimp
• ecNotHomed
• ecPathError
• ecPowerOff
• ecGripTypeNotSet
• ecIllegalGripType
• ecAxisIsLocked
• ecMotionError
• ecAbortInProgress
• ecAxisOverspeed
• ecAxisRunaway
• ecCollision

Remarks
If there is no current asynchronous error, then this property gets a value of
ecNoError.
Asynchronous errors occur when events related to robot motion occur
between motion commands. For example, arm power going off (because an E-
stop was pressed) and collisions will gie rise to asynchronous errors.
After an asynchronous error has been dealt with, the controlling CRSRobot
object should invoke the ClearError method before proceeding.

See Also

Method Purpose
ClearError Clears persistent error bits in the controller DSP

ActiveRobot User Guide: CRSRobot 4-143


CRSRobot: CRSRobot Properties

BoardTemperature
The BoardTemperature property gets the temperature of the robot controller’s
main board.

Syntax
temperature = RobotObject.BoardTemperature
This property has the following part:

Part Description
temperature A float value indicating the temperature in degrees
Celsius

4-144 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Finished
The Finished property gets whether the arm has finished moving.

Syntax
armFinishedState = RobotObject.Finished[(finishTolerance)]
This property has the following parts:

Part Description
finishTolerance An optional enumeration value specifying the
distance the arm can move before it can be
considered to have finished moving:
• ftLoose: 100 motor pulses (default value)
• ftTight: five motor pulses
armFinishedState A boolean value indicating the arm motion status:
• True: finished moving
• False: still moving

See Also

Method Purpose
Finish Waits for the arm to finish moving
GripperFinish Waits for the gripper to finish moving

Property Purpose
GripperFinished Gets whether the gripper has finished moving

ActiveRobot User Guide: CRSRobot 4-145


CRSRobot: CRSRobot Properties

Homed
The Homed property gets whether the robot is homed.

Syntax
armHomedState = RobotObject.Homed
This property has the following part:

Part Description
armHomedState A boolean value indicating the arm motion status:
• True: homed
• False: not homed

See Also

Method Purpose
Home Homes the arm
HomeInPlace Homes the specified axis or axes of an A255 arm
based on the arm’s position at shutdown
HomeZeroCross Moves the arm to the ready position
Ready Moves the arm to the ready position

Property Purpose
HomingSwitchOffset Homes the arm

4-146 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

IsAborted
The IsAborted property gets whether this CRSRobot object has received an
abort signal from the robot system.

Syntax
abortState = RobotObject.IsAborted
This property has the following part:

Part Description
abortState A boolean value indicating the abort status:
• True: aborted
• False: not aborted

Remarks
The robot system signals an abort when the following conditions occur:
• The E-Stop button is hit, and arm power shuts off.
• A path error occurs.
• Another CRSRobot object invokes the Abort method.
The robot system does not send an abort signal when the Stop method has
been invoked.

See Also

Method Purpose
ClearAbort Clears a previously-invoked Abort method
Abort Halts robot motion and signals the controlling process

ActiveRobot User Guide: CRSRobot 4-147


CRSRobot: CRSRobot Properties

IsPowered
The IsPowered property gets whether the arm has power and is ready to
respond to motion commands.

Syntax
armPowerState = RobotObject.IsPowered
This property has the following part:

Part Description
armPowerState A boolean value indicating the arm power status:
• True: powered
• False: not powered

See Also

Property Purpose
AllowArmPower Sets the enabled status of the arm power switch

4-148 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

MotorLocation
The MotorLocation property gets the current arm location as a motor location.

Syntax
Set location = RobotObject.MotorLocation[(positionType)]
This property has the following parts:

Part Description
positionType An optional enumeration value specifying the arm
position to get:
• ptActual: the actual arm position
• ptCommanded: the commanded arm position
• ptEndpoint: the arm endpoint position
location A CRSLocation object indicating the arm location

See Also

Property Purpose
WorldLocation Gets the current arm location as a world location

ActiveRobot User Guide: CRSRobot 4-149


CRSRobot: CRSRobot Properties

Odometer
The Odometer property gets the total number of seconds that robot arm power
has been on.

Syntax
armPowerElapsed = RobotObject.Odometer
This property has the following part:

Part Description
armPowerElapsed A long value indicating the number of seconds

4-150 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

ProcessID
The ProcessID property gets the ID associated with this CRSRobot object.

Syntax
pid = RobotObject.ProcessID
This property has the following part:

Part Description
pid A long value indicating the process ID

See Also

Method Purpose
ControlGive Assigns point of control to the specified process

ActiveRobot User Guide: CRSRobot 4-151


CRSRobot: CRSRobot Properties

WorldLocation
The WorldLocation property gets the current arm location as a world location.

Syntax
Set location = RobotObject.WorldLocation[(positionType)]
This property has the following parts:

Part Description
positionType An optional enumeration value specifying the arm
position to get:
• ptActual: the actual arm position
• ptCommanded: the commanded arm position
• ptEndpoint: the arm endpoint position
location A CRSLocation object indicating the arm location

See Also

Property Purpose
MotorLocation Gets the current arm location as a world location

4-152 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

Utility
You convert between different location types with the following properties:

Property Purpose
JointToMotor Gets a motor location from a set of joint positions
JointToWorld Gets a world location from a set of joint positions
MotorToWorld Gets a world location from a motor location
WorldToMotor Gets a motor location from a world location

ActiveRobot User Guide: CRSRobot 4-153


CRSRobot: CRSRobot Properties

JointToMotor
The JointToMotor property gets a motor location from a set of joint positions.

Syntax
Set plocation = RobotObject.JointToMotor(j1,j2,j3,j4,j5,j6,j7,j8)
This property has the following parts:

Part Description
j1 A float value specifying the position in degrees of joint
one
j2 A float value specifying the position in degrees of joint
two
j3 A float value specifying the position in degrees of joint
three
j4 A float value specifying the position in degrees of joint
four
j5 A float value specifying the position in degrees of joint
five
j6 A float value specifying the position in degrees of joint
six
j7 A float value specifying the position in degrees of joint
seven
j8 A float value specifying the position in degrees of joint
eight
plocation A CRSLocation object indicating a motor location

See Also

Property Purpose
JointToWorld Gets a world location from a set of joint positions

4-154 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

JointToWorld
The JointToWorld property gets a world location from a set of joint positions.

Syntax
Set clocation = RobotObject.JointToWorld(j1,j2,j3,j4,j5,j6,j7,j8)
This property has the following parts:

Part Description
j1 A float value specifying the position in degrees of joint
one
j2 A float value specifying the position in degrees of joint
two
j3 A float value specifying the position in degrees of joint
three
j4 A float value specifying the position in degrees of joint
four
j5 A float value specifying the position in degrees of joint
five
j6 A float value specifying the position in degrees of joint
six
j7 A float value specifying the position in degrees of joint
seven
j8 A float value specifying the position in degrees of joint
eight
clocation A CRSLocation object indicating a world location

See Also

Property Purpose
JointToMotor Gets a motor location from a set of joint positions

ActiveRobot User Guide: CRSRobot 4-155


CRSRobot: CRSRobot Properties

MotorToWorld
The MotorToWorld property gets aworld world location from a motor location.

Syntax
Set worldLocation = RobotObject.MotorToWorld(motorLocation)
This property has the following parts:

Part Description
motorLocation A CRSLocation object specifying a motor location
worldLocation A CRSLocation object indicating a world location

See Also

Property Purpose
WorldToMotor Gets a motor location from a world location

4-156 ActiveRobot User Guide: CRSRobot


CRSRobot: CRSRobot Properties

WorldToMotor
The WorldToMotor property gets a motor location from a world location.

Syntax
Set motorLocation = RobotObject.WorldToMotor(worldLocation)
This property has the following parts:

Part Description
motorLocation A CRSLocation object specifying a motor location
worldLocation A CRSLocation object indicating a world location

Remarks
World locations do not necessarily map uniquely into motor locations; there is
more than one robot configuration for many TCP locations.
The conversion done by the WorldToMotor property is guided by the current
requested stance.

See Also

Property Purpose
MotorToWorld Gets a world location from a motor location
Stance Gets or sets the robot stance

ActiveRobot User Guide: CRSRobot 4-157


CRSRobot: CRSRobot Properties

4-158 ActiveRobot User Guide: CRSRobot


5 CRSV3File

The CRSV3File object class provide access to v3 files, files in which you can
store and retrieve robot locations and other teachable variables.
Typically, your application takes the following steps:
1 Soon after it starts, it creates an instance of a CRSV3File object and
invokes its Open method to open the v3 file containing the robot
application locations and teachable variables.
2 It uses the Location and Value properties to retrieve the locations and
variables from the v3 file.
3 It invokes the Close method to close the v3 file.
If the application is not aware in advance of the variable names and types
stored in the v3 file, it can invoke the GetNextName and VariableInfo methods
to determine them.
Note: The name V3fileObject has been used in the following method and
property descriptions as a placeholder for the name of the CRSV3File
object you create to access them.

This chapter covers the following topics:


• “CRSV3File Methods” on page 5-2, which describes in detail CRSV3File
methods
• “CRSV3File Properties” on page 5-10, which describes in detail
CRSV3File methods

ActiveRobot User Guide: CRSV3File 5–1


CRSV3File: CRSV3File Methods

CRSV3File Methods
You manage v3 files using the following methods:

Method Purpose
Open Opens, creates, or resets the length of the specified v3
file
Close Closes the specified v3 file
VariableInfo Extracts information about the specified location or
variable
Create Creates a new location or variable
Delete Deletes the specified location or variable
Rewind Moves the location/variable access pointer to the
beginning of the v3 file
GetNextName Retrieves the name of the location or variable at the
current pointer position in the v3 file

5–2 ActiveRobot User Guide: CRSV3File


CRSV3File: CRSV3File Methods

Open
The Open method opens, creates, or resets the length of the specified v3 file.

Syntax
V3fileObject.Open v3filename[, flags]
This method has the following parts:

Part Description
v3filename An input string value specifying the path and full
name of the v3 file to open
flags An optional enumeration value consisting of one of
the following options:
• v3fOpen: Open an existing v3 file
• v3fCreate: Create a new v3 file
• v3fTruncate: Reset the length of the v3 file to
zero
• v3fReadOnly: Opens a v3 file for reading only

Remarks
You cannot use the v3fCreate or v3fTruncate flags with the v3fReadOnly
flag.

See Also

Property Purpose
Close Closes the specified v3 file

ActiveRobot User Guide: CRSV3File 5–3


CRSV3File: CRSV3File Methods

Close
The Close method closes the currently-open v3 file.

Syntax
V3fileObject.Close
This method has no arguments.

See Also

Property Purpose
Open Opens, creates, or resets the length of the specified v3
file

5–4 ActiveRobot User Guide: CRSV3File


CRSV3File: CRSV3File Methods

VariableInfo
The VariableInfo method extracts information about the specified location or
variable from the CRSV3File object.

Syntax
V3fileObject.VariableInfo locvarName, dataType, dim1, dim2, flags
This method has the following parts:

Part Description
locvarName An input string value specifying the name of the
location or variable to extract
dataType An output enumeration value indicating the data
type of the location or variable:
• v3tLong: long variable
• v3tFloat: float variable
• v3tString: string variable
• v3tMotorLocation: a motor location (ploc)
• v3tWorldLocation: a world location (cloc)
dim1 An output long value specifying the size of the first
dimension of a location or variable array
dim2 An output long value specifying the size of the second
dimension of a location or variable array
flags An output enumeration value consisting of the
following flag:
• v3vTaught: location or variable initialized
(taught)

Remarks
The flag value is actually a bit vector; at present only the v3vTaught bit is
significant.

See Also

Property Purpose
Create Creates the specified location or variable
Delete Deletes the specified location or variable

ActiveRobot User Guide: CRSV3File 5–5


CRSV3File: CRSV3File Methods

Create
The Create method creates a new location or variable.

Syntax
V3fileObject.Create locvarName, dataType[, dim1, dim2]
This method has the following parts:

Part Description
locvarName An input string value specifying the name of the
location or variable to create
dataType An enumeration value indicating the data type of the
location or variable:
• v3tLong: long variable
• v3tFloat: float variable
• v3tString: string variable
• v3tMotorLocation: a motor location (ploc)
• v3tWorldLocation: a world location (cloc)
dim1 An optional long value specifying the size of the first
dimension of a location or variable array
dim2 An optional long value specifying the size of the
second dimension of a location or variable array

See Also

Property Purpose
VariableInfo Obtains information about the specified location or
variable
Delete Deletes the specified location or variable

5–6 ActiveRobot User Guide: CRSV3File


CRSV3File: CRSV3File Methods

Delete
The Delete method deletes the specified location or variable.

Syntax
V3fileObject.Delete locvarName
This method has the following part:

Part Description
locvarName An input string value specifying the name of the
location or variable to delete

See Also

Property Purpose
VariableInfo Obtains information about the specified location or
variable
Create Creates the specified location or variable

ActiveRobot User Guide: CRSV3File 5–7


CRSV3File: CRSV3File Methods

Rewind
The Rewind method moves the location/variable access pointer to the
beginning of the v3 file. You use the GetNextName method to retrieve the
name of the location or variable at the current pointer position.

Syntax
V3fileObject.Rewind
This method has no arguments.

See Also

Property Purpose
GetNextName Gets the name of the next location or variable in the
v3 file

5–8 ActiveRobot User Guide: CRSV3File


CRSV3File: CRSV3File Methods

GetNextName
The GetNextName method retrieves the name of the location or variable at the
current pointer position in the v3 file. You use the Rewind method to move the
pointer to the beginning of the file.

Syntax
V3fileObject.GetNextName locvarName
This method has the following part:

Part Description
locvarName An output string value indicating the name of the
next location or variable

See Also

Property Purpose
Rewind Moves the pointer to the start of the v3 file

ActiveRobot User Guide: CRSV3File 5–9


CRSV3File: CRSV3File Properties

CRSV3File Properties
You access locations or variables in the v3 file using the following properties:

Property Purpose
Location Gets or sets a location or variable in the v3 file
Value Gets or sets the value of the specified variable in the
v3 file

5–10 ActiveRobot User Guide: CRSV3File


CRSV3File: CRSV3File Properties

Location
The Location property gets or sets a location or variable in the v3 file.

Syntax
Set V3fileObject.Location(locvarName[,dim1,dim2]) = locationObject
Set locationObject = V3fileObject.Location(locvarName[,dim1,dim2])
This method has the following parts:

Part Description
locationObject A CRSLocation object specifying or indicating the
location
locvarName A string value specifying the name of the location or
variable
dim1 An optional long value specifying the index into the
first dimension of the location or variable array
dim2 An optional long value specifying the index into the
second dimension of the location or variable array

See Also

Property Purpose
VariableInfo Obtains information about the specified location or
variable
Create Creates the specified location or variable
Delete Deletes the specified location or variable

ActiveRobot User Guide: CRSV3File 5–11


CRSV3File: CRSV3File Properties

Value
The Value method gets or sets the value of the specified variable in the v3 file.

Syntax
V3fileObject.Value(locvarName) = varvalue
varvalue = V3fileObject.Value (locvarName)
This property has the following parts:

Part Description
locvarName A string value specifying the name of the location or
variable
varvalue A variant value indicating or specifying the value of
the location or variable

Remarks
If the variable is an array, then varvalue is an array of the appropriate type of
values.

5–12 ActiveRobot User Guide: CRSV3File


6 CRSLocation

The properties of the CRSLocation object define world and precisian locations
in the robot workspace. Using the “CRSLocation Properties” on page 6-2, you
can access the individual elements of the location, find out what type it is, and
modify it.
Note: The name LocationObject has been used in the following method and
property descriptions as a placeholder for the name of the
CRSLocation object you create to access them.

ActiveRobot User Guide: CRSLocation 6–1


CRSLocation: CRSLocation Properties

CRSLocation Properties
You get or set a CRSLocation object’s attributes using the following properties:

Property Purpose
IsMotor Gets whether this location uses motor coordinates
IsWorld Gets whether this locations uses world coordinates
x Gets or sets the x coordinate of this world location
y Gets or sets the y coordinate of this world location
z Gets or sets the z coordinate of this world location
zrot Gets or sets the zrot coordinate of this world location
yrot Gets or sets the yrot coordinate of this world location
xrot Gets or sets the xrot coordinate of this world location
world Gets or sets the world coordinate of the specified
world axis
motor Gets or sets the position of the specified motor
Value Gets or sets the coordinate data of this location
IsValid Gets whether the location is valid
IsMetric Gets whether the location’s coordinate data is in
metric units

6–2 ActiveRobot User Guide: CRSLocation


CRSLocation: CRSLocation Properties

IsMotor
The IsMotor property gets whether this location uses motor coordinates.

Syntax
locationType = LocationObject.IsMotor
This property has the following part:

Part Description
locationType A boolean value indicating the type of location:
• True: motor
• False: not motor

See Also

Property Purpose
IsWorld Gets whether this location uses world coordinates

ActiveRobot User Guide: CRSLocation 6–3


CRSLocation: CRSLocation Properties

IsWorld
The IsWorld property gets whether this location uses world coordinates.

Syntax
locationType = LocationObject.IsWorld
This property has the following part:

Part Description
locationType A boolean value indicating the type of location:
• True: world
• False: not world

See Also

Property Purpose
IsMotor Gets whether this location uses motor coordinates

6–4 ActiveRobot User Guide: CRSLocation


CRSLocation: CRSLocation Properties

x
The x property gets or sets the x coordinate in a world location.

Syntax
LocationObject.x = locationX
locationX = LocationObject.x
This property has the following part:

Part Description
locationX A float value indicating or specifying the x coordinate
in configured linear units

See Also

Property Purpose
y Gets or sets the y coordinate of this world location
z Gets or sets the z coordinate of this world location
zrot Gets or sets the zrot coordinate of this world location
yrot Gets or sets the yrot coordinate of this world location
xrot Gets or sets the xrot coordinate of this world location
world Gets or sets the world coordinate of the specified
world axis

ActiveRobot User Guide: CRSLocation 6–5


CRSLocation: CRSLocation Properties

y
The y property gets or sets the y coordinate in a world location.

Syntax
LocationObject.y = locationY
locationY = LocationObject.y
This property has the following part:

Part Description
locationY A float value indicating or specifying the y coordinate
in configured linear units

See Also

Property Purpose
x Gets or sets the x coordinate of this world location
z Gets or sets the z coordinate of this world location
zrot Gets or sets the zrot coordinate of this world location
yrot Gets or sets the yrot coordinate of this world location
xrot Gets or sets the xrot coordinate of this world location
world Gets or sets the world coordinate of the specified
world axis

6–6 ActiveRobot User Guide: CRSLocation


CRSLocation: CRSLocation Properties

z
The z property gets or sets the z coordinate in a world location.

Syntax
LocationObject.z = locationZ
locationZ = LocationObject.z
This property has the following part:

Part Description
locationZ A float value indicating or specifying the z coordinate
in configured linear units

See Also

Property Purpose
x Gets or sets the x coordinate of this world location
y Gets or sets the y coordinate of this world location
zrot Gets or sets the zrot coordinate of this world location
yrot Gets or sets the yrot coordinate of this world location
xrot Gets or sets the xrot coordinate of this world location
world Gets or sets the world coordinate of the specified
world axis

ActiveRobot User Guide: CRSLocation 6–7


CRSLocation: CRSLocation Properties

zrot
The zrot property gets or sets the zrot coordinate in a world location.

Syntax
LocationObject.zrot = locationZrot
locationZrot = LocationObject.zrot
This property has the following part:

Part Description
locationZrot A float value indicating or specifying the zrot
coordinate in configured linear units

See Also

Property Purpose
x Gets or sets the x coordinate of this world location
y Gets or sets the y coordinate of this world location
z Gets or sets the z coordinate of this world location
yrot Gets or sets the yrot coordinate of this world location
xrot Gets or sets the xrot coordinate of this world location
world Gets or sets the world coordinate of the specified
world axis

6–8 ActiveRobot User Guide: CRSLocation


CRSLocation: CRSLocation Properties

yrot
The yrot property gets or sets the yrot coordinate in a world location.

Syntax
LocationObject.xrot = locationYrot
locationYrot = LocationObject.yrot
This property has the following part:

Part Description
locationYrot A float value indicating or specifying the yrot
coordinate in configured linear units

See Also

Property Purpose
x Gets or sets the x coordinate of this world location
z Gets or sets the z coordinate of this world location
y Gets or sets the y coordinate of this world location
zrot Gets or sets the zrot coordinate of this world location
xrot Gets or sets the xrot coordinate of this world location
world Gets or sets the world coordinate of the specified
world axis

ActiveRobot User Guide: CRSLocation 6–9


CRSLocation: CRSLocation Properties

xrot
The xrot property gets or sets the xrot coordinate in a world location.

Syntax
LocationObject.xrot = locationXrot
locationXrot = LocationObject.xrot
This property has the following part:

Part Description
locationXrot A float value indicating or specifying the xrot
coordinate in configured linear units

See Also

Property Purpose
x Gets or sets the x coordinate of this world location
y Gets or sets the y coordinate of this world location
z Gets or sets the z coordinate of this world location
zrot Gets or sets the zrot coordinate of this world location
yrot Gets or sets the yrot coordinate of this world location
world Gets or sets the world coordinate of the specified
world axis

6–10 ActiveRobot User Guide: CRSLocation


CRSLocation: CRSLocation Properties

world
The world property gets or sets the world coordinate for the specified world
axis.

Syntax
LocationObject.world(axis) = cartesianCoordinate
cartesianCoordinate = LocationObject.world(axis)
This property has the following part:

Part Description
axis A long value from one to eight specifying the world
axis on which the coordinate lies
cartesianCoordinate A float value indicating or specifying the coordinate in
configured linear units

See Also

Property Purpose
x Gets or sets the x coordinate of this world location
y Gets or sets the y coordinate of this world location
z Gets or sets the z coordinate of this world location
zrot Gets or sets the zrot coordinate of this world location
yrot Gets or sets the yrot coordinate of this world location
xrot Gets or sets the xrot coordinate of this world location

ActiveRobot User Guide: CRSLocation 6–11


CRSLocation: CRSLocation Properties

motor
The motor property gets or sets the position for the specified motor.

Syntax
LocationObject.motor(axis) = motorNpulses
motorNpulses = LocationObject.motor(axis)
This property has the following part:

Part Description
axis A long value from one to eight specifying the motor for
which to get or set the position
motorNpulses A long value indicating or specifying the motor
position in pulses

6–12 ActiveRobot User Guide: CRSLocation


CRSLocation: CRSLocation Properties

Value
The Value property gets or sets this location’s coordinate data.

Syntax
LocationObject.Value = coordinates
coordinates = LocationObject.Value
This property has the following part:

Part Description
coordinates A string value indicating or specifying the coordinate
data

Remarks
This property exists primarily to enable you to copy the coordinate data from
one CRSLocation object to another. Visual Basic does not permit you to simply
assign the value of one entire object to another; you can only assign the value
of one fundamental data type to another. For example, the line
set locA = locB
where locA and locB are CRSLocation objects, does not assign the value of all
locB’s properties to locA’s properties. Instead, it destroys the object referred to
by locA and simply sets locA to refer to the locB object. To assign the
coordinate data of the locB object to the locA object, therefore, you must write
the following line of code:
locA.Value = locB.Value

Note: The string stored in the Value property is in binary form; do not
attempt to treat it as conventional ASCII string text.

ActiveRobot User Guide: CRSLocation 6–13


CRSLocation: CRSLocation Properties

IsValid
The IsValid property gets whether the location is valid. The robot system can
only move to valid locations.

Syntax
validStatus = LocationObject.IsValid
This property has the following part:

Part Description
validStatus A boolean value indicating whether the location is
valid:
• True: location valid
• False: location not valid

Remarks
Valid locations are those that have been taught or that have been derived from
a taught location.

6–14 ActiveRobot User Guide: CRSLocation


CRSLocation: CRSLocation Properties

IsMetric
The IsMetric property gets whether the location’s coordinates use metric
units.

Syntax
unitsType = LocationObject.IsMetric
This property has the following part:

Part Description
unitsType A boolean value indicating whether the location uses
metric units, as follows:
• True: metric units used
• False: English units used

ActiveRobot User Guide: CRSLocation 6–15


CRSLocation: CRSLocation Properties

6–16 ActiveRobot User Guide: CRSLocation


7 CRSPath

CRSPath objects are collection objects containing pairs of CRSLocation


objects and their associated trigger values. CRSPath objects are passed as
arguments to the CRSRobot CTPath method.
Note: The name PathObject has been used in the following method and
property descriptions as a placeholder for the name of the CRSPath
object you create to access them.

This chapter covers the following topics:


• “CRSPath Methods” on page 7-2, which describes in detail the CRSPath
methods
• “CRSPath Properties” on page 7-5, which describes in detail the CRSPath
properties

ActiveRobot User Guide: CRSPath 7–1


CRSPath: CRSPath Methods

CRSPath Methods
You manage the collection of locations and triggers that make up a path using
the following methods:

Method Purpose
Add Adds the specified location/trigger member to the
CRSPath collection
Remove Deletes the specified location/trigger member from
the CRSPath collection

7–2 ActiveRobot User Guide: CRSPath


CRSPath: CRSPath Methods

Add
The Add method adds the specified location/trigger member to the CRSPath
collection.

Syntax
PathObject.Add location[, trigger, before, after]
This method has the following parts:

Part Description
location A CRSLocation object specifying the location to add
trigger An optional long value specifying the trigger
associated with this location
before An optional long value specifying the index of the
location before which to add this location
after An optional long value specifying the index of the
location after which to add this location

See Also

Method Purpose
Remove Deletes the specified location/trigger member from
the CRSPath collection

ActiveRobot User Guide: CRSPath 7–3


CRSPath: CRSPath Methods

Remove
The Remove method deletes the specified location/trigger member from the
CRSPath collection.

Syntax
PathObject.Remove locationIndex
This method has the following parts:

Part Description
locationIndex A long value specifying the index of the
location/trigger member to remove

See Also

Method Purpose
Add Adds the specified location/trigger member to the
CRSPath collection

7–4 ActiveRobot User Guide: CRSPath


CRSPath: CRSPath Properties

CRSPath Properties
You access the values of the locations and triggers in the CTPath object using
the following properties:

Property Purpose
Count Gets the number of location/trigger members in the
CRSPath collection
Item Gets or sets the location component of the specified
member of the CRSPath collection
Trigger Gets or sets the trigger component of the specified
member of the CRSPath collection

ActiveRobot User Guide: CRSPath 7–5


CRSPath: CRSPath Properties

Count
The Count method gets the number of location/trigger members in the
CRSPath collection.

Syntax
pathMembers = PathObject.Count
This property has the following part:

Part Description
pathMembers A long value indicating the number of location/trigger
members

7–6 ActiveRobot User Guide: CRSPath


CRSPath: CRSPath Properties

Item
The Item method gets or sets the location component of the specified member
of the CRSPath collection.

Syntax
Set PathObject.Item(pathMember) = locationObjectN
Set locationObjectN = PathObject.Item(pathMember)
This property has the following part:

Part Description
pathMember A long value specifying the index of the CRSPath
collection member
locationObjectN A CRSLocation object indicating or specifying the
location associated with the CRSPath member

See Also

Property Purpose
Trigger Gets or sets the trigger component of the specified
member of the CRSPath collection

ActiveRobot User Guide: CRSPath 7–7


CRSPath: CRSPath Properties

Trigger
The Trigger method gets or sets the trigger component of the specified member
of the CRSPath collection.

Syntax
PathObject.Trigger(pathMember) = triggerN
triggerN = PathObject.Trigger(pathMember)
This property has the following part:

Part Description
pathMember A long value specifying the index of the CRSPath
collection member
triggerN A long value indicating or specifying the trigger

See Also

Property Purpose
Item Gets or sets the location component of the specified
member of the CRSPath collection

7–8 ActiveRobot User Guide: CRSPath


8 CRSRemote

The CRSRemote object class includes methods and properties that enable you
to access a controller’s operating system.
Note: The name RemoteObject has been used in the following method and
property descriptions as a placeholder for the name of the CRSRemote
object you create to access them.

This chapter covers the following topics:


• “CRSRemote Methods” on page 8-2, which describes in detail the
CRSRemote methods
• “CRSRemote Properties” on page 8-20, which describes in detail the
CRSRemote properties

ActiveRobot User Guide: CRSRemote 8–1


CRSRemote: CRSRemote Methods

CRSRemote Methods
You interact with the controller’s operating system using the following
methods:

Method Purpose
AbortFileTransfer Cancels the current GetFile or PutFile operation
CROSVersion Retrieves the major version, minor version and build
numbers of the version of CROS running on the robot
controller
Delete Deletes the specified file on the controller
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory
FileSpace Retrieves information about filesystem space for the
filesystem containing the specified object
GetFile Copies the specified file on the remote controller to the
specified file on the host computer
MkDir Creates the specified directory on the remote
controller
Ping “Pings” the remote controller to test communications
integrity
PutFile Copies the specified local file to the specified
destination file on the remote controller
RmDir Deletes an empty directory on the remote controller
Run Launches a program on the remote controller using
the specified CROS command line
SendSignal Sends the specified CROS signal to the specified
process on the remote controller
Shutdown Initiates a controlled shutdown of the controller
WaitForExitCode Waits for the specified CROS process to complete and
retrieves its exit code

8–2 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Methods

AbortFileTransfer
The AbortFileTransfer method cancels the current GetFile or PutFile
operation.

Syntax
RemoteObject.AbortFileTransfer
This method has no arguments.

See Also

Method Purpose
GetFile Copies the specified file on the remote controller to the
specified file on the host computer
PutFile Copies the specified local file to the specified
destination file on the remote controller

Property Purpose
PercentComplete Gets the progress of the current GetFile or PutFile file
transfer

ActiveRobot User Guide: CRSRemote 8–3


CRSRemote: CRSRemote Methods

CROSVersion
This method retrieves the major version, minor version and build numbers of
the version of CROS running on the robot controller.

Syntax
RemoteObject.CROSVersion Major, Minor, Build
This method has the following parts:

Part Description
Major An output long value indicating the major version
number
Minor An output long value indicating the minor version
number
Build An output long value indicating the build version
number

8–4 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Methods

Delete
The Delete method erases the specified file on a remote controller.

Syntax
RemoteObject.Delete RemoteFile
This method has the following parts:

Part Description
RemoteFile A string value specifying the full path and name of
the file to delete

ActiveRobot User Guide: CRSRemote 8–5


CRSRemote: CRSRemote Methods

DirNext
The DirNext method selects the next entry in the current DirRead directory.

Syntax
RemoteObject.DirNext
This method has no arguments.

Remarks
When the last entry has been reached, the DirFileName property will contain
a null string.

See Also

Method Purpose
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory

Property Purpose
DirFileName Gets the name of the current DirRead entry

8–6 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Methods

DirRead
The DirRead method retrieves a listing of the contents of the specified
controller directory.

Syntax

RemoteObject.DirRead RemoteDir

This method has the following part:

Part Description
RemoteDir A string value specifying the full path and name of
the directory

Remarks

Once you have retrieved the directory listing with DirRead, you can get the
names and other information about the individual entries in the listing using
the DirFileName, DirFileSize, DirFileType, DirFileAttributes, DirFileDate,
DirFileIdent, and DirFileLinks properties.

You use the DirNext and DirRewind methods to step through the entries.

See Also

Method Purpose
DirNext Selects the next entry in the current DirRead directory
DirRewind Selects the first entry in the current DirRead directory

Property Purpose
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMajor Gets the major device number for the current DirRead
entry
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry
DirFileType Gets the type of the current DirRead entry

ActiveRobot User Guide: CRSRemote 8–7


CRSRemote: CRSRemote Methods

DirRewind
The DirRewind method selects the first entry in the current DirRead directory.

Syntax
RemoteObject.DirRewind
This method has no arguments.

See Also

Method Purpose
DirRead Retrieves a listing of the contents of the specified
controller directory
DirNext Selects the next entry in the current DirRead directory

8–8 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Methods

FileSpace
The FileSpace method retrieves information about filesystem space for the
filesystem containing the specified object.

Syntax
RemoteObject.FileSpace Objname, FSType, BlockSize, BlocksFree, BlocksTotal, InodesFree, InodesTotal
This method has the following parts:

Part Description
Objname A string value specifying the name of the object
FSType An output enumerated value indicating the type of
the filesystem space, as follows:
• fstMFS: non-volatile memory filesystem
• fstCFS: CROSnt filesystem
• fstRFS: remote filesystem
• fstHFS: host filesystem
BlockSize An output long value indicating the block size of the
filesystem
BlocksFree An output long value indicating the number of free
blocks in the filesystem
BlocksTotal An output long value indicating the total number of
blocks in the filesystem
InodesFree An output long value indicating the number of free
inodes in the filesystem
InodesTotal An output long value indicating the total number of
inodes in the filesystem

ActiveRobot User Guide: CRSRemote 8–9


CRSRemote: CRSRemote Methods

GetFile
The GetFile method copies the specified file on the remote controller to the
specified file on the host computer.

Syntax
RemoteObject.GetFile LocalDstFile, RemoteSrcFile, Options
This method has the following parts:

Part Description
LocalDstFile A string value specifying the path and name of the
destination file on the host computer
RemoteSrcFile A string value specifying the path and name of the
source file on the remote controller
Options An enumerated value specifying the file copy options,
as follows:
• ftoOverWrite: enable overwriting of the
destination file
• ftoNoOverWrite: disable overwriting of the
destination file

Remarks
If you do not specify a path for the LocalDstFile value, the Getfile method
defaults to the application’s working directory.

See Also

Method Purpose
AbortFileTransfer Cancels the current GetFile or PutFile operation
PutFile Copies the specified local file to the specified
destination file on the remote controller

Property Purpose
PercentComplete Gets the progress of the current GetFile or PutFile file
transfer

8–10 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Methods

MkDir
The MkDir method creates the specified directory on the remote controller.

Syntax
RemoteObject.MkDir RemoteDirName
This method has the following part:

Part Description
RemoteDirName A string value specifying the full path and name of
the new directory

See Also

Method Purpose
RmDir Deletes an empty directory on the remote controller

ActiveRobot User Guide: CRSRemote 8–11


CRSRemote: CRSRemote Methods

Ping
The Ping method “pings” the remote controller to test communications
integrity.

Syntax
RemoteObject.Ping
This method has no arguments.

8–12 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Methods

PutFile
The PutFile method copies the specified local file to the specified destination
file on the remote controller.

Syntax
RemoteObject.GetFile LocalSrcFile, RemoteDstFile, Options
This method has the following parts:

Part Description
LocalSrcFile A string value specifying the path and name of the
source file on the host computer
RemoteDstFile A string value specifying the path and name of the
destination file on the remote controller
Options An enumerated value specifying the file copy options,
as follows:
• ftoOverWrite: enable overwriting of the
destination file
• ftoNoOverWrite: disable overwriting of the
destination file

Remarks
If you do not specify a path for the LocalSrcFile value, the PutFile method
defaults to the application’s working directory.

See Also

Method Purpose
AbortFileTransfer Cancels the current GetFile or PutFile operation
GetFile Copies the specified file on the remote controller to the
specified file on the host computer

Property Purpose
PercentComplete Gets the progress of the current GetFile or PutFile file
transfer

ActiveRobot User Guide: CRSRemote 8–13


CRSRemote: CRSRemote Methods

RmDir
The RmDir method deletes an empty directory on the remote controller.

Syntax
RemoteObject.RmDir RemoteDirName
This method has the following part:

Part Description
RemoteDirName A string value specifying the full path and name of
the directory to delete

See Also

Method Purpose
MkDir Creates the specified directory on the remote
controller

8–14 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Methods

Run
The Run method launches a program on the remote controller using the
specified CROS command line.

Syntax

RemoteObject.Run RemoteCmdLine, Options, CROSPid[, StdinFile, StdoutFile, StderrFile]

This method has the following parts:

Part Description
RemoteCmdLine An input string value specifying the CROS command
line required to launch the program
Options An input enumerated value specifying the standard
output and standard error options, as follows:
• roStdoutAppend: open the file specified in
StdoutFile as create/append
• roStdoutTruncate: open the file specified in
StdoutFile as create/truncate
• roStderrAppend: open the file specified in
StderrFile as create/append
• roStderrTruncate: open the file specified in
StderrFile as create/truncate
CROSPid An output long value indicating the CROS process ID
of the launched program
StdinFile An optional input string value specifying the name of
the file for standard input to the launched program
StdoutFile An optional input string value specifying the name of
the file for standard output from the launched
program
StderrFile An optional input string value specifying the name of
the file for standard error output from the launched
program

Remarks

You can specify any file as the standard input/output/error file for the created
process, allowing output to be redirected for later retrieval.

You can use the WaitForExitCode method to wait for the process to complete.

See Also

Method Purpose
SendSignal Sends the specified CROS signal to the specified
process on the remote controller
WaitForExitCode Waits for the specified CROS process to complete and
retrieves its exit code

ActiveRobot User Guide: CRSRemote 8–15


CRSRemote: CRSRemote Methods

Property Purpose
ProcessExists Gets whether the specified CROS process exists

8–16 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Methods

SendSignal
The SendSignal method sends the specified CROS signal to the specified
process on the remote controller.

Syntax
RemoteObject.SetSignal CROSPid, Signal
This method has the following parts:

Part Description
CROSPid A long value specifying the ID of the process to signal
Signal An enumerated value specifying the name of the
source file on the remote controller:
• csSIGKILL : kill the process
• csSIGINT: interrupt the process

Remarks
You should only specify a value of csSIGKILL for Signal as a last resort, to
stop an errant process. If you want to abort programs, you should specify
csSIGINT.

See Also

Method Purpose
Run Launches a program on the remote controller using
the specified CROS command line
WaitForExitCode Waits for the specified CROS process to complete and
retrieves its exit code

Property Purpose
ProcessExists Gets whether the specified CROS process exists

ActiveRobot User Guide: CRSRemote 8–17


CRSRemote: CRSRemote Methods

Shutdown
The Shutdown method initiates a controlled shutdown of the controller.

Syntax
RemoteObject.Shutdown
This method has no arguments.

Remarks
Once the controller has shut down, you must release all CRSRemote and
CRSRobot objects. Any attempt to use either will cause a communication
error.

8–18 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Methods

WaitForExitCode
The WaitForExitCode method waits for the specified CROS process to
complete and retrieves its exit code.

Syntax
RemoteObject.WaitForExitCode CROSPid, ExitPid, ExitCode, Timeout
This method has the following parts:

Part Description
CROSPid An input long value specifying the ID of the CROS
process to complete
ExitPid An output long value indicating the ID of the process
that completed
ExitCode An output long value indicating the exit code of the
completed process
Timeout An input long value specifying the period in
milliseconds to wait before a timeout occurs

Remarks
If you set the CROSPid value to -1, the WaitForExitCode method will wait for
any child process to complete.

See Also

Method Purpose
Run Launches a program on the remote controller using
the specified CROS command line
SendSignal Sends the specified CROS signal to the specified
process on the remote controller
GripperCalibrate Calibrates the gripper by setting travel distance

Property Purpose
ProcessExists Gets whether the specified CROS process exists

ActiveRobot User Guide: CRSRemote 8–19


CRSRemote: CRSRemote Properties

CRSRemote Properties
You get and/or set controller characteristics using the following properties:

Property Purpose
ControllerDate Gets or sets the controller’s real-time clock
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMajor Gets the major device number for the current DirRead
entry
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry
DirFileType Gets the type of the current DirRead entry
PercentComplete Gets the progress of the current GetFile or PutFile file
transfer
ProcessExists Gets whether the specified CROS process exists
RobotInUse Gets or sets the current controller

8–20 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Properties

ControllerDate
The ControllerDate property gets or sets the controller’s real-time clock.

Syntax
RemoteObject.ControllerDate = CtrlrDate
CtrlrDate = RemoteObject.ControllerDate
This property has the following part:

Part Description
CtrlrDate A date value specifying or indicating the current date
and time

ActiveRobot User Guide: CRSRemote 8–21


CRSRemote: CRSRemote Properties

DirFileAttributes
The DirFileAttributes property gets the attributes of the current DirRead
entry.

Syntax
DFAttribs = RemoteObject.DirFileAttributes

This property has the following part:

Part Description
DFAttribs One or more of the following enumeration values
indicating the attributes of the current entry:
• faPFlash: primary flash memory file
• faSys: system file
• faRead: reading is allowed
• faWrite: writing is allowed
• faExecute: execution is allowed

Remarks
The DFAttribs part is a bit vector.

See Also

Property Purpose
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMajor Gets the major device number for the current DirRead
entry
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry
DirFileType Gets the type of the current DirRead entry

Method Purpose
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory

8–22 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Properties

DirFileDate
The DirFileDate property gets the modification date and time of the current
DirRead entry.

Syntax
DFDate = RemoteObject.DirFileDate
This property has the following part:

Part Description
DFDate A date value indicating the date and time of the entry

See Also

Property Purpose
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMajor Gets the major device number for the current DirRead
entry
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry
DirFileType Gets the type of the current DirRead entry

Method Purpose
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory

ActiveRobot User Guide: CRSRemote 8–23


CRSRemote: CRSRemote Properties

DirFileIdent
The DirFileIdent property gets the unique identifier, or inode number, of the
current DirRead entry.

Syntax
DFIdent = RemoteObject.DirFileIdent
This property has the following part:

Part Description
DFIdent A long value indicating the inode number of the entry

See Also

Property Purpose
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMajor Gets the major device number for the current DirRead
entry
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry
DirFileType Gets the type of the current DirRead entry

Method Purpose
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory

8–24 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Properties

DirFileLinks
The DirFileLinks property gets the number of links for the current DirRead
entry.

Syntax
DFLinks = RemoteObject.DirFileLinks
This property has the following part:

Part Description
DFLinks A long value indicating the number of links for the
entry

See Also

Property Purpose
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileMajor Gets the major device number for the current DirRead
entry
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry
DirFileType Gets the type of the current DirRead entry

Method Purpose
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory

ActiveRobot User Guide: CRSRemote 8–25


CRSRemote: CRSRemote Properties

DirFileMajor
The DirFileMajor property gets the major device number for the current
DirRead entry. It is only useful for dntDevice nodes.

Syntax
DFMajor = RemoteObject.DirFileMajor
This property has the following part:

Part Description
DFMajor A long value indicating the major device number of
the entry

See Also

Property Purpose
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry
DirFileType Gets the type of the current DirRead entry

Method Purpose
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory

8–26 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Properties

DirFileMinor
The DirFileMinor property gets the minor device number for the current
DirRead entry. It is only useful for dntDevice nodes.

Syntax
DFMinor = RemoteObject.DirFileMinor
This property has the following part:

Part Description
DFMinor A long value indicating the minor device number of
the entry

See Also

Property Purpose
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMajor Gets the major device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry
DirFileType Gets the type of the current DirRead entry

Method Purpose
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory

ActiveRobot User Guide: CRSRemote 8–27


CRSRemote: CRSRemote Properties

DirFileName
The DirFileName property gets the name of the current DirRead entry.

Syntax
DFName = RemoteObject.DirFileName
This property has the following part:

Part Description
DFName A string value indicating the name of the entry

Remarks
This property gets a null string when the end of the list is reached. Use the
DirRewind method to select the first entry in the current DirRead directory.

See Also

Property Purpose
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMajor Gets the major device number for the current DirRead
entry
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry
DirFileType Gets the type of the current DirRead entry

Method Purpose
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory

8–28 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Properties

DirFileSize
The DirFileSize property gets the size in bytes of the current DirRead entry.

Syntax
DFSize = RemoteObject.DirFileSize
This property has the following part:

Part Description
DFSize A long value indicating the size in bytes of the entry

See Also

Property Purpose
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMajor Gets the major device number for the current DirRead
entry
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileType Gets the type of the current DirRead entry

Method Purpose
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory

ActiveRobot User Guide: CRSRemote 8–29


CRSRemote: CRSRemote Properties

DirFileType
The DirFileType property gets the type of the current DirRead entry.

Syntax
DFType = RemoteObject.DirFileType
This property has the following part:

Part Description
DFType An enumerated value indicating the type of the entry:
• dntFile: regular file
• dntDirectory: folder or directory
• dntDevice: I/O device
• dntSocket: interprocess communication socket
• dntFifo: named fifo

See Also

Property Purpose
DirFileAttributes Gets the attributes of the current DirRead entry
DirFileDate Gets the modification date and time of the current
DirRead entry
DirFileIdent Gets the unique identifier, or inode number, of the
current DirRead entry
DirFileLinks Gets the number of links for the current DirRead
entry
DirFileMajor Gets the major device number for the current DirRead
entry
DirFileMinor Gets the minor device number for the current DirRead
entry
DirFileName Gets the name of the current DirRead entry
DirFileSize Gets the size in bytes of the current DirRead entry

Method Purpose
DirNext Selects the next entry in the current DirRead directory
DirRead Retrieves a listing of the contents of the specified
controller directory
DirRewind Selects the first entry in the current DirRead directory

8–30 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Properties

PercentComplete
The PercentComplete property gets the progress of the current GetFile or
PutFile file transfer.

Syntax
CopyProgress = RemoteObject.PercentComplete
This property has the following part:

Part Description
CopyProgress A long value indicating the percentage of completion
of the current file transfer

Remarks
The PercentComplete property is automatically set to zero when the file
transfer operation completes.
You normally cannot use more than one method or property of CRSRemote at
a time. You are permitted, however, to have a file transfer in progress and use
a timer to check the current value of the PercentComplete property.

See Also

Method Purpose
AbortFileTransfer Cancels the current GetFile or PutFile operation
GetFile Copies the specified file on the remote controller to the
specified file on the host computer
PutFile Copies the specified local file to the specified
destination file on the remote controller

ActiveRobot User Guide: CRSRemote 8–31


CRSRemote: CRSRemote Properties

ProcessExists
The ProcessExists property gets whether the specified CROS process exists.

Syntax
CROSPExists = RemoteObject.ProcessExists(CROSPid)
This property has the following parts:

Part Description
CROSPid An input long value specifying the ID of the CROS
process to check
CROSPExists A boolean value indicating whether the specified
process exists:
• True: process exists
• False: process does not exist

Remarks
You obtain the value of CROSPid from the Run method.

See Also

Method Purpose
Run Launches a program on the remote controller using
the specified CROS command line
SendSignal Sends the specified CROS signal to the specified
process on the remote controller
WaitForExitCode Waits for the specified CROS process to complete and
retrieves its exit code

8–32 ActiveRobot User Guide: CRSRemote


CRSRemote: CRSRemote Properties

RobotInUse
The RobotInUse property gets or sets the current controller.

Syntax
RemoteObject.RobotInUse = CurrentCtrlr
CurrentCtrlr = RemoteObject.RobotInUse
This property has the following part:

Part Description
CurrentCtrlr A long value specifying or indicating the ID of the
current controller

ActiveRobot User Guide: CRSRemote 8–33


CRSRemote: CRSRemote Properties

8–34 ActiveRobot User Guide: CRSRemote


Index: A

Abort commands
Abort method 3-14
ClearAbort method 3-14
Processing 3-14
RobotInUse method 3-14
AbortMove 3-16
Access 2000
Creating an ActiveRobot project 3-4
ActiveRobot
Accessing ActiveRobot DLLs 1-3
ActiveRobot Help 3-4
Application development process 3-6
Compatible development tools 3-2
Components 1-5
Configuring 2-8
Co-ordinating event handlers 3-13
Creating ActiveRobot applications 1-3, 3-2
Development utilities 1-5
Dynamic link libraries 1-3
Example applications 3-14
Features 1-2
HCLServer 1-5
Help
Context-sensitivity 3-2
How ActiveRobot Works 1-3
Installing 2-1
Monitoring the robot system 3-13
Object classes 1-5
Objects
Creating and using 3-7
In Visual Basic 3-7
In Visual C++ 3-8
Overview 1-1
Purpose 1-2
References 1-3
Safety considerations 3-2
System communications 1-4
System requirements 2-2
Testing 2-8
User interface 3-13
ActiveRobot Configuration
Configure tab 3-18
Controller tab 3-21
Exiting from 3-22
General tab 3-18
Overview 3-17
Starting 3-17
Test tab 3-19
Testing communications 3-19
Using 3-17
Utility tab 3-20

ActiveRobot User Guide: Index I-1


Index: B

ActiveRobot Explorer
Copying files 3-25
Exiting 3-26
Launching from a shortcut 3-25
Overview 3-24
Selecting the robot system to communicate with 3-25
Starting 3-24
Using 3-24
ActiveRobot Help 3-4
Documentation Conventions 3-5
ActiveRobot Terminal
Exiting 3-24
Launching from a shortcut 3-23
Overview 3-22
Point of control 3-14
Scroll buffer 3-23
Selecting a robot system to communicate with 3-23
Starting 3-22
Using 3-22
ActiveRobot.dll 1-3
Application development process 3-6

Backing up controller files 2-3

COM 1-2
Configuration 3-18
Configuring
ActiveRobot 2-8
Configuring a robot system 3-18
Connecting the PC to the C500C 2-2
Controller
Backing up files 2-3
Diagnostic mode 2-5
File system, rebuilding 2-6
Front panel pushbutton sequences 2-5
Restoring files 2-6
Creating ActiveRobot applications 3-2
CROS 2.8 2-2, 2-3
CROS 3.1 2-3
CRSLocation
Overview 3-10
Properties 3-10
Using 3-10
CRSPath
Methods 3-11
Overview 3-11

I-2 ActiveRobot User Guide: Index


Index: D

Properties 3-11
Using 3-11
CRSRemote
Methods 3-12
Overview 3-11
Properties 3-12
Using 3-11
CRSRobot
Errors 3-13
Method categories 3-8
Overview 3-8
Property categories 3-9
Using 3-8
CRSV3File
Methods 3-9
Overview 3-9
Properties 3-10
Using 3-9

Development tools 3-2


Diagnostic mode 2-5
Documentation Conventions 3-5
Remarks 3-5
See Also heading 3-5
Syntax 3-5
Visual C++ 3-5
Dynamic link libraries 1-3
Accessing 1-3

Errors
CRSRobot 3-13
Event Handlers 3-13
Event handlers
Co-ordinating 3-13
Errors 3-13
Examples 3-14
AbortMove 3-16
Notes 3-14
PathControl 3-15
PendantVB 3-15
SimplePNP 3-15
StatusQuery 3-15
TeachPendant 3-16
V3Example 3-15

ActiveRobot User Guide: Index I-3


Index: H

HCL 1-5
HCLInterface.dll 1-3
HCLServer 1-5
Help
ActiveRobot User Guide 3-4
Documentation Conventions 3-5
Examples 3-14
For Visual Basic users 3-4
For Visual C++ users 3-5
Getting 3-4
Online 3-2, 3-4

Installing
ActiveRobot 2-1
ActiveRobot software 2-7
CROS 2.8 or 3.1 2-3

Monitoring the robot system 3-13

Object classes 3-7

PathControl 3-15
PendantVB 3-15
Point of control
Managing 3-14
Methods 3-14
Teach pendant 3-14

Rebuilding the controller file system 2-6


Remarks 3-5
Restoring controller files 2-6
Robot System
Testing communications 3-19

I-4 ActiveRobot User Guide: Index


Index: S

Robot system 3-18


Definition 1-2
Monitoring with ActiveRobot 3-13
Point of control 3-14

Safety considerations 3-2


See Also heading 3-5
Serial cable 2-2
SimplePNP 3-15
StatusQuery 3-15
Syntax 3-5
System requirements 2-2

Teach pendant
Point of control 3-14
TeachPendant 3-16
Testing
ActiveRobot 2-8
Communications with a robot system 3-19
ToolTip help 3-4
Triggers 3-11

Updating
HCL 2-8, 2-10
Previous versions of CROS 2-3, 2-8
User interface 3-13

V3 Files
Definition 3-6
Using 3-6
V3Example 3-15
Visual Basic
Creating an ActiveRobot project 3-2
Documentation Conventions 3-5
Example ActiveRobot applications 3-14
Help 3-4
Using ActiveRobot objects 3-7
Visual C++
Creating an ActiveRobot project 3-3

ActiveRobot User Guide: Index I-5


Index: V

Documentation Conventions 3-5


Example ActiveRobot applications 3-14
Using ActiveRobot Objects 3-8

I-6 ActiveRobot User Guide: Index

Вам также может понравиться