Click or drag to resize

ABB.Robotics.Controllers

Controller API

To access the functions of the robot controller you utilize the class libraries of the FlexPendant SDK called Controller Application Programming Interface or Controller API. The assembly you need to reference to use controller functionality is ABB.Robotics.Controllers.dll.

Controller API domains

The top Controller API object is the ABB.Robotics.Controllers.Controller, which has to be created before any access to the robot controller.

The class libraries are organized in different domains (namespaces), as shown in the following screenshot, by the contents tab of the Reference Manual FlexPendant SDK. The name of a domain tells you something about the kind of services you can expect from it.

abb 1

Controller API and controller domains

This is a simplified illustration of how some ABB.Robotics.Controllers domains communicate with their respective domains in the robot controller:

abb 2

Note Note

In the normal case, a single Controller object is created and used throughout the application, its lifetime corresponding to that of the application.

What controller functionality is provided?

Plenty of robot controller functionality is offered by the classes and methods of the FlexPendant SDK.

This table presents short descriptions of the kind of services that the different Controller API domains provide:

Controller API domain

Services

Controllers

Information about the controller, such as IP address, current user, Mac address, operating mode, controller state and so on. Notification when operating mode, state or mastership has changed. Backup and restore. Check if you have the required UAS grant and so on.

ConfigurationDomain

Read or write the value of a configuration parameter to the configuration database of the controller.

EventLogDomain

Notification when a new event log message has been written to the controller. Title, message, category, sequence number and time stamp of the message.

FileSystemDomain

Create, rename or remove files and directories in the controller file system. Retrieve a file from the controller and store it on the FlexPendant and vice versa.

IOSystemDomain

Read and modify I/O signals. Notify when a signal value has changed.

MotionDomain

Get/set the coordinate system and motion mode for jogging of the active mechanical unit. Information whether the mechanical unit is calibrated or not. Provide name, task, number of axes, active tool and work object and so on. of the mechanical unit. Notify when data of the mechanical unit has changed. Send a start jogging or a stop jogging request to the robot controller.

RapidDomain

Notification when execution status has changed. Start and stop RAPID execution. Load Rapid programs. Create, read and write RAPID data. Notification when RAPID data or RAPID program has changed. Notification when program pointer has changed. Search for RAPID symbols and so on.

SystemInfoDomain

Information about the active system of the robot controller, for example RobotWare version, system name, release and system paths, existing system options and installed additional options.

Releasing memory

Using Controller API you will create objects that reference unmanaged resources. (For more information, see Definitions.) It is necessary to explicitly deallocate the memory of such objects by calling their Dispose method when they are no longer needed (at application shut down at the latest). Otherwise your application will leak memory, which is a scarce resource on the FlexPendant platform.

Note Note

You may prevent memory leaks and other pitfalls, by studying the chapter ABB.Robotics.Controllers.

FlexPendant SDK reference documentation

Although this manual covers a great deal of the FlexPendant SDK functionality, it is by no means complete. The Reference Manual FlexPendant SDK, which you open from Windows button, is the complete reference to the functionality offered by the class libraries.

It also gives valuable code samples and remarks about methods requiring different UAS grants and so on, which is not included in this manual.