Академический Документы
Профессиональный Документы
Культура Документы
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
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.
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 guide assumes you are familiar with the following subjects:
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.
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
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
IsValid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
IsMetric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15
1 Introducing ActiveRobot
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
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
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.
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.
• The controller’s robot server process, which handles motion control and
motion-linked I/O commands
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:
• CRSRobot, which enables you to create objects that can access the
robot system’s configuration, motion and I/O.
• Development utilities:
System Requirements
ActiveRobot requires the following hardware and software:
• 64 MB RAM or higher
• CD-ROM drive
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
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.
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.
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.
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.
c While holding down the F1, F2, and Pause/Continue buttons, switch
on controller power. The controller boots into Diagnostic Mode.
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.
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.
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
Once you have accepted the end-user licence and responded to the other
prompts, the installation completes.
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:
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.
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.
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.
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.
• 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.
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.
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.
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.
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:
if FAILED(CoInitialize (NULL))
{
AfxMessageBox("CoInitialize() failed.");
exit(1);
}
You must initialize the COM library every time you create a new thread.
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:
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.
To learn how to transfer v3 files between the host computer and the controller,
see “Using ActiveRobot Explorer” on page 3-24.
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
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
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
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.
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
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
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.
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
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
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.
Method Purpose
Add Adds the specified location/trigger member to the
CRSPath collection
Remove Deletes the specified location/trigger member from
the CRSPath collection
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
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.
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
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
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
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.
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.
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
• 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.
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.
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.
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.
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.
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.
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.)
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.
Figure 3-3: The Test tab of ActiveRobot Configuration enables you to test the
communications of the host computer/robot system configuration.
2 Select the ID of the robot system to test in the Robot to Test selection
box.
Figure 3-4: The Utility tab of ActiveRobot Configuration enables you to perform several
useful robot system operations from the host computer.
2 Select the ID of the robot system to control in the Robot to use selection
box.
• 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.
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.
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):
1 Using the mouse or the cursor keys, select the desired portion of text.
2 Press the right mouse button to show the context menu, and select Copy
to copy the selected text into the Windows clipboard.
To copy the entire contents of the scroll buffer, select Copy Scroll Buffer in
the File menu.
We will, however, discuss those functions that differ from Windows Explorer:
When it starts, ActiveRobot Explorer first determines what robot systems are
available for communication and then attempts to establish a connection with
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.
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.
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.
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
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
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.
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
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.
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.
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.
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
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.
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]
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.
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
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
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]
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.
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
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
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
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
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
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
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]
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
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
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!
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Robot Configuration
You save the system configuration data with the following method:
Method Purpose
ConfigSave Saves the system configuration data in robot.cfg
ConfigSave
The ConfigSave method overwrites the /conf/robot.cfg file on the controller
with the current robot configuration data.
Syntax
RobotObject.ConfigSave
Remarks
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
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
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:
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
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.
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
MotorToJoint
The MotorToJoint method converts a motor location to a set of joint positions.
Syntax
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
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
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
WorldToJoint
The WorldToJoint method converts a world location to a set of joint positions.
Syntax
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
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
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
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
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
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.
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
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.
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.
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)
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
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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])
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.
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
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
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
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
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
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
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
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
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.
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
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
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
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
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.
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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.
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
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.
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
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).
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
DirRead
The DirRead method retrieves a listing of the contents of the specified
controller directory.
Syntax
RemoteObject.DirRead RemoteDir
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
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
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
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
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
Ping
The Ping method “pings” the remote controller to test communications
integrity.
Syntax
RemoteObject.Ping
This method has no arguments.
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
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
Run
The Run method launches a program on the remote controller using the
specified CROS command line.
Syntax
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
Property Purpose
ProcessExists Gets whether the specified CROS process exists
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
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.
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
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
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
DirFileAttributes
The DirFileAttributes property gets the attributes of the current DirRead
entry.
Syntax
DFAttribs = RemoteObject.DirFileAttributes
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
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
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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
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
PathControl 3-15
PendantVB 3-15
Point of control
Managing 3-14
Methods 3-14
Teach pendant 3-14
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